glotfile 1.1.1 → 1.1.2
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.
|
@@ -5,7 +5,7 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
|
|
|
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 pf=()=>fetch(`/api/scan`,{method:`POST`}).then(e=>Y(e)),mf=()=>fetch(`/api/scan`).then(e=>Y(e)),hf=e=>fetch(`/api/scan/usage?key=${encodeURIComponent(e)}`).then(e=>Y(e)),gf=()=>fetch(`/api/scan/used`).then(e=>Y(e)),_f=e=>fetch(`/api/config`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),vf=()=>fetch(`/api/ui-prefs`).then(e=>Y(e)),yf=e=>fetch(`/api/ui-prefs`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),bf=()=>fetch(`/api/local-settings`).then(e=>Y(e)),xf=e=>fetch(`/api/local-settings`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),Sf=()=>fetch(`/api/ai-profiles`).then(e=>Y(e)),Cf=(e,t)=>fetch(`/api/ai-profiles/${encodeURIComponent(e)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}).then(Y),wf=e=>fetch(`/api/ai-profiles/${encodeURIComponent(e)}`,{method:`DELETE`}).then(Y),Tf=e=>fetch(`/api/ai-profiles/active`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({name:e})}).then(Y),Ef=()=>fetch(`/api/ai-test`,{method:`POST`}).then(e=>Y(e)),Df=e=>fetch(`/api/dictionary`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({word:e})}).then(Y),Of=()=>fetch(`/api/glossary`).then(e=>Y(e)),kf=e=>fetch(`/api/glossary`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(Y),Af=e=>fetch(`/api/glossary/${encodeURIComponent(e)}`,{method:`DELETE`}).then(Y),jf=()=>fetch(`/api/glossary/suggestions`).then(e=>Y(e)),Mf=e=>fetch(`/api/glossary/suggestions/dismiss`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({term:e})}).then(Y),Nf=e=>fetch(`/api/glossary/suggestions/${encodeURIComponent(e)}`,{method:`DELETE`}).then(Y);async function*Pf(e,t){let n;try{n=await fetch(`/api/glossary/suggest`,{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(`
|
|
6
6
|
`);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 Ff=(e,t)=>{let n=new FormData;return n.append(`file`,t),fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`POST`,body:n}).then(Y)},If=e=>fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`DELETE`}).then(Y),Lf=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({text:t})}).then(e=>Y(e)),Rf=(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),zf=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes/${encodeURIComponent(t)}`,{method:`DELETE`}).then(Y),Bf=()=>fetch(`/api/log`).then(e=>Y(e)),Vf=()=>fetch(`/api/export/preview`).then(e=>Y(e)),Hf=()=>fetch(`/api/export`,{method:`POST`}).then(e=>Y(e)),Uf=()=>fetch(`/api/file`).then(e=>Y(e)),Wf=()=>fetch(`/api/files`).then(e=>Y(e)),Gf=e=>fetch(`/api/file`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}).then(e=>Y(e)),Kf=e=>e.length===0?Promise.resolve({issues:[],spellPending:!1}):fetch(`/api/checks?checks=${e.join(`,`)}`).then(e=>Y(e)),qf=(e={})=>fetch(`/api/lint${e.includeSuppressed?`?includeSuppressed=1`:``}`).then(e=>Y(e)),Jf=(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),Yf=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/suppressions?rule=${encodeURIComponent(t)}&locale=${encodeURIComponent(n)}`,{method:`DELETE`}).then(Y),Xf=(e={})=>fetch(`/api/lint/accept`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>Y(e)),Zf=()=>fetch(`/api/import/detect`).then(e=>Y(e)),Qf=e=>fetch(`/api/import`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>Y(e)),$f=()=>fetch(`/api/sync`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`}).then(e=>Y(e)),ep=e=>fetch(`/api/sync`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({apply:!0,...e})}).then(e=>Y(e));function tp(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 np(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 rp(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var ip=(e,t)=>Math.abs(e-t)<1.01,ap=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},op,sp=()=>{if(op!==void 0)return op;if(typeof navigator>`u`)return op=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return op=!0;let e=navigator.maxTouchPoints;return op=navigator.platform===`MacIntel`&&e!==void 0&&e>0},cp=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},lp=e=>e,up=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},dp=(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(cp(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(cp(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},fp={passive:!0},pp=typeof window>`u`?!0:`onscrollend`in window,mp=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&pp,o=0,s=a?null:ap(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,fp),a&&r.addEventListener(`scrollend`,u,fp),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},hp=(e,t)=>mp(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),gp=(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`]},_p=(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})},vp=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:lp,rangeExtractor:up,onChange:()=>{},measureElement:gp,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=np(()=>(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,!(!sp()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,fp),e.addEventListener(`touchend`,n,fp),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&&(sp()&&(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=np(()=>[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=np(()=>[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=tp(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=np(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?bp({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=np(()=>{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=np(()=>[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 rp(t[yp(0,t.length-1,r?e=>n[e*2]:e=>rp(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&&(sp()&&(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&&ip(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()}},yp=(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 bp({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=yp(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 xp(e){let t=new vp(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 Sp(e){return xp(q(()=>({observeElementRect:dp,observeElementOffset:hp,scrollToFn:_p,...N(e)})))}function Cp(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()===``:(n.value??``).trim()===``:!0}function wp(e,t,n,r){return n===`missing`?r?Cp(t,r):e.config.locales.some(n=>n!==e.config.sourceLocale&&Cp(t,n)):r?t.values[r]?.state===n:Object.values(t.values).some(e=>e.state===n)}function Tp(e){try{return new RegExp(e,`i`)}catch{return null}}function Ep(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(`^`)?Tp(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&&!Cp(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=>wp(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 Dp=[`untranslated`,`placeholder`,`spelling`,`length`,`glossary`],Op=[`untranslated`,`placeholder`,`length`,`glossary`],kp=[`missing`,`machine`,`needs-review`,`reviewed`],Ap=[`plural`,`single`],jp={untranslated:`Untranslated`,placeholder:`Placeholder mismatch`,spelling:`Spelling`,length:`Too long`,glossary:`Glossary`},Mp={missing:`Missing`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},Np={plural:`Plural`,single:`Single`};function Pp(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 Fp=[`key-asc`,`key-desc`,`created`,`updated`],Ip=[`multilingual`,`bilingual`],Lp={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1};function Rp(e){let t=e.get(`q`)??``,n=e.get(`tag`)??``,r=(e.get(`states`)??``).split(`,`).map(e=>e.trim()).filter(e=>kp.includes(e)),i=(e.get(`issues`)??``).split(`,`).map(e=>e.trim()).filter(e=>Dp.includes(e)),a=(e.get(`plurality`)??``).split(`,`).map(e=>e.trim()).filter(e=>Ap.includes(e)),o=e.get(`sort`)??``,s=Fp.includes(o)?o:`key-asc`,c=e.get(`view`)??``,l=Ip.includes(c)?c:`multilingual`,u=e.get(`locale`)??``;return{filter:{...Lp,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 zp(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 Bp=[`editor`,`analytics`,`glossary`,`screenshots`,`settings`,`activity`,`docs`];function Vp(){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:Bp.includes(n)?n:`editor`,search:r}}var Hp=M(Vp().route);window.addEventListener(`hashchange`,()=>{Hp.value=Vp().route});var Up=null;function Wp(e){Up=e}function Gp(e,t){Up&&!Up(e)||(location.hash=t?`${e}?${t}`:e)}function Kp(){return Zt(Hp)}function qp(){return new URLSearchParams(Vp().search)}function Jp(e){let t=e.toString(),n=`#${Vp().route}${t?`?${t}`:``}`;history.replaceState(null,``,n)}function Yp(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=Yp(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Xp(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Yp(e))&&(r&&(r+=` `),r+=t);return r}var Zp=(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},Qp=(e,t)=>({classGroupId:e,validator:t}),$p=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),em=`-`,tm=[],nm=`arbitrary..`,rm=e=>{let t=om(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return am(e);let n=e.split(em);return im(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Zp(i,t):t:i||tm}return n[e]||tm}}},im=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=im(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(em):e.slice(t).join(em),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},am=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?nm+r:void 0})(),om=e=>{let{theme:t,classGroups:n}=e;return sm(n,t)},sm=(e,t)=>{let n=$p();for(let r in e){let i=e[r];cm(i,n,r,t)}return n},cm=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];lm(i,t,n,r)}},lm=(e,t,n,r)=>{if(typeof e==`string`){um(e,t,n);return}if(typeof e==`function`){dm(e,t,n,r);return}fm(e,t,n,r)},um=(e,t,n)=>{let r=e===``?t:pm(t,e);r.classGroupId=n},dm=(e,t,n,r)=>{if(mm(e)){cm(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Qp(n,e))},fm=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];cm(o,pm(t,a),n,r)}},pm=(e,t)=>{let n=e,r=t.split(em),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=$p(),n.nextPart.set(t,i)),n=i}return n},mm=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,hm=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)}}},gm=`!`,_m=`:`,vm=[],ym=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),bm=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===_m){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(gm)?(c=s.slice(0,-1),l=!0):s.startsWith(gm)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return ym(t,l,c,u)};if(t){let e=t+_m,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):ym(vm,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},xm=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}},Sm=e=>({cache:hm(e.cacheSize),parseClassName:bm(e),sortModifiers:xm(e),postfixLookupClassGroupIds:Cm(e),...rm(e)}),Cm=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},wm=/\s+/,Tm=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(wm),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?_+gm:_,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},Em=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Dm(n))&&(i&&(i+=` `),i+=r);return i},Dm=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Dm(e[r]))&&(n&&(n+=` `),n+=t);return n},Om=(e,...t)=>{let n,r,i,a,o=o=>(n=Sm(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=Tm(e,n);return i(e,a),a};return a=o,(...e)=>a(Em(...e))},km=[],Am=e=>{let t=t=>t[e]||km;return t.isThemeGetter=!0,t},jm=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Mm=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Nm=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Pm=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Fm=/\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$/,Im=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Lm=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Rm=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zm=e=>Nm.test(e),Bm=e=>!!e&&!Number.isNaN(Number(e)),Vm=e=>!!e&&Number.isInteger(Number(e)),Hm=e=>e.endsWith(`%`)&&Bm(e.slice(0,-1)),Um=e=>Pm.test(e),Wm=()=>!0,Gm=e=>Fm.test(e)&&!Im.test(e),Km=()=>!1,qm=e=>Lm.test(e),Jm=e=>Rm.test(e),Ym=e=>!X(e)&&!Z(e),Xm=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)),Zm=e=>fh(e,gh,Km),X=e=>jm.test(e),Qm=e=>fh(e,_h,Gm),$m=e=>fh(e,vh,Bm),eh=e=>fh(e,bh,Wm),th=e=>fh(e,yh,Km),nh=e=>fh(e,mh,Km),rh=e=>fh(e,hh,Jm),ih=e=>fh(e,xh,qm),Z=e=>Mm.test(e),ah=e=>ph(e,_h),oh=e=>ph(e,yh),sh=e=>ph(e,mh),ch=e=>ph(e,gh),lh=e=>ph(e,hh),uh=e=>ph(e,xh,!0),dh=e=>ph(e,bh,!0),fh=(e,t,n)=>{let r=jm.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},ph=(e,t,n=!1)=>{let r=Mm.exec(e);return r?r[1]?t(r[1]):n:!1},mh=e=>e===`position`||e===`percentage`,hh=e=>e===`image`||e===`url`,gh=e=>e===`length`||e===`size`||e===`bg-size`,_h=e=>e===`length`,vh=e=>e===`number`,yh=e=>e===`family-name`,bh=e=>e===`number`||e===`weight`,xh=e=>e===`shadow`,Sh=Om(()=>{let e=Am(`color`),t=Am(`font`),n=Am(`text`),r=Am(`font-weight`),i=Am(`tracking`),a=Am(`leading`),o=Am(`breakpoint`),s=Am(`container`),c=Am(`spacing`),l=Am(`radius`),u=Am(`shadow`),d=Am(`inset-shadow`),f=Am(`text-shadow`),p=Am(`drop-shadow`),m=Am(`blur`),h=Am(`perspective`),g=Am(`aspect`),_=Am(`ease`),v=Am(`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=()=>[zm,`full`,`auto`,...w()],E=()=>[Vm,`none`,`subgrid`,Z,X],D=()=>[`auto`,{span:[`full`,Vm,Z,X]},Vm,Z,X],ee=()=>[Vm,`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=()=>[zm,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],ae=()=>[zm,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],oe=()=>[zm,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],k=()=>[e,Z,X],se=()=>[...b(),sh,nh,{position:[Z,X]}],ce=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],le=()=>[`auto`,`cover`,`contain`,ch,Zm,{size:[Z,X]}],ue=()=>[Hm,ah,Qm],de=()=>[``,`none`,`full`,l,Z,X],fe=()=>[``,Bm,ah,Qm],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=()=>[Bm,Hm,sh,nh],ge=()=>[``,`none`,m,Z,X],_e=()=>[`none`,Bm,Z,X],ve=()=>[`none`,Bm,Z,X],A=()=>[Bm,Z,X],ye=()=>[zm,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Um],breakpoint:[Um],color:[Wm],container:[Um],"drop-shadow":[Um],ease:[`in`,`out`,`in-out`],font:[Ym],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Um],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Um],shadow:[Um],spacing:[`px`,Bm],text:[Um],"text-shadow":[Um],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,zm,X,Z,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Z,X]}],"container-named":[Xm],columns:[{columns:[Bm,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:[Vm,`auto`,Z,X]}],basis:[{basis:[zm,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[Bm,zm,`auto`,`initial`,`none`,X]}],grow:[{grow:[``,Bm,Z,X]}],shrink:[{shrink:[``,Bm,Z,X]}],order:[{order:[Vm,`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,ah,Qm]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,dh,eh]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Hm,X]}],"font-family":[{font:[oh,th,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":[Bm,`none`,Z,$m]}],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:[Bm,`from-font`,`auto`,Z,Qm]}],"text-decoration-color":[{decoration:k()}],"underline-offset":[{"underline-offset":[Bm,`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:[Vm,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`]},Vm,Z,X],radial:[``,Z,X],conic:[Vm,Z,X]},lh,rh]}],"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":[Bm,Z,X]}],"outline-w":[{outline:[``,Bm,ah,Qm]}],"outline-color":[{outline:k()}],shadow:[{shadow:[``,`none`,u,uh,ih]}],"shadow-color":[{shadow:k()}],"inset-shadow":[{"inset-shadow":[`none`,d,uh,ih]}],"inset-shadow-color":[{"inset-shadow":k()}],"ring-w":[{ring:fe()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:k()}],"ring-offset-w":[{"ring-offset":[Bm,Qm]}],"ring-offset-color":[{"ring-offset":k()}],"inset-ring-w":[{"inset-ring":fe()}],"inset-ring-color":[{"inset-ring":k()}],"text-shadow":[{"text-shadow":[`none`,f,uh,ih]}],"text-shadow-color":[{"text-shadow":k()}],opacity:[{opacity:[Bm,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":[Bm]}],"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":[Bm]}],"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:[Bm,Z,X]}],contrast:[{contrast:[Bm,Z,X]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,uh,ih]}],"drop-shadow-color":[{"drop-shadow":k()}],grayscale:[{grayscale:[``,Bm,Z,X]}],"hue-rotate":[{"hue-rotate":[Bm,Z,X]}],invert:[{invert:[``,Bm,Z,X]}],saturate:[{saturate:[Bm,Z,X]}],sepia:[{sepia:[``,Bm,Z,X]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Z,X]}],"backdrop-blur":[{"backdrop-blur":ge()}],"backdrop-brightness":[{"backdrop-brightness":[Bm,Z,X]}],"backdrop-contrast":[{"backdrop-contrast":[Bm,Z,X]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,Bm,Z,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Bm,Z,X]}],"backdrop-invert":[{"backdrop-invert":[``,Bm,Z,X]}],"backdrop-opacity":[{"backdrop-opacity":[Bm,Z,X]}],"backdrop-saturate":[{"backdrop-saturate":[Bm,Z,X]}],"backdrop-sepia":[{"backdrop-sepia":[``,Bm,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:[Bm,`initial`,Z,X]}],ease:[{ease:[`linear`,`initial`,_,Z,X]}],delay:[{delay:[Bm,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:[Vm,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:[Bm,ah,Qm,$m]}],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 Ch(...e){return Sh(Xp(e))}async function wh(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 Th={class:`pointer-events-none fixed bottom-4 right-4 z-[200] flex w-80 flex-col gap-2`},Eh=[`onClick`],Dh=F({__name:`Toaster`,setup(e){let t=Ph();return(e,n)=>(z(),V(Vr,{to:`body`},[H(`div`,Th,[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(Ch)(`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(Nh)(e.id)},j(e.message),11,Eh))),128))]),_:1})])]))}}),Oh=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},kh=Oh(Dh,[[`__scopeId`,`data-v-e9967100`]]),Ah=Yt({toasts:[]}),jh=0;function Mh(e,t,n=4e3){let r=jh++;Ah.toasts.push({id:r,message:e,variant:t}),window.setTimeout(()=>Nh(r),n)}function Nh(e){let t=Ah.toasts.findIndex(t=>t.id===e);t!==-1&&Ah.toasts.splice(t,1)}var Q=Object.assign(e=>Mh(e,`default`),{success:e=>Mh(e,`success`),error:e=>Mh(e,`error`),info:e=>Mh(e,`default`)});function Ph(){return Ah}var Fh=new Set,Ih=null;function Lh(){Ih||(Ih=new EventSource(`/api/events`),Ih.addEventListener(`state-changed`,()=>Rh()))}function Rh(){Q(`Reloaded — external change detected`);for(let e of[...Fh])try{e()}catch{}}function zh(e){Fh.add(e),Yi(()=>{Fh.delete(e)})}var Bh=M(null);function Vh(e){Bh.value=e,Gp(`editor`)}var Hh=M(null);function Uh(e){Hh.value=e,Vh({text:e})}var Wh=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Gh=Xp,Kh=(e,t)=>n=>{if(t?.variants==null)return Gh(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=Wh(t)||Wh(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 Gh(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 qh(e){return typeof e==`string`?`'${e}'`:new Jh().serialize(e)}var Jh=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 Yh(e,t){return e===t||qh(e)===qh(t)}function Xh(e,t,n){let r=e.findIndex(e=>Yh(e,t)),i=e.findIndex(e=>Yh(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 Zh(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function Qh(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 $h(){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 eg(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 tg(e){return e==null}function ng(e,t){let n=un();return Cr(()=>{n.value=e()},{...t,flush:t?.flush??`sync`}),Zt(n)}function rg(e,t){return Ne()?(Pe(e,t),!0):!1}function ig(){let e=new Set,t=t=>{e.delete(t)};return{on:n=>{e.add(n);let r=()=>t(n);return rg(r),{off:r}},off:t,trigger:(...t)=>Promise.all(Array.from(e).map(e=>e(...t))),clear:()=>{e.clear()}}}function ag(e){let t=!1,n,r=Me(!0);return((...i)=>(t||=(n=r.run(()=>e(...i)),!0),n))}var og=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var sg=e=>e!==void 0,cg=Object.prototype.toString,lg=e=>cg.call(e)===`[object Object]`,ug=dg();function dg(){var e,t;return og&&!!(!((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 fg(e){return Array.isArray(e)?e:[e]}function pg(e){return e||Es()}function mg(e){if(!og)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))),rg(i),n))}function hg(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 gg(e){return hg(q(e))}function _g(e,...t){let n=t.flat(),r=n[0];return gg(()=>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 vg(e,t=1e4){return vn((n,r)=>{let i=mn(e),a,o=()=>setTimeout(()=>{i=mn(e),r()},mn(t));return rg(()=>{clearTimeout(a)}),{get(){return n(),i},set(e){i=e,r(),clearTimeout(a),a=o()}}})}function yg(e,t){pg(t)&&Ji(e,t)}function bg(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,og&&l()),rg(c),{isPending:Qt(a),start:l,stop:c}}function xg(e,t,n){return Er(e,t,{...n,immediate:!0})}var Sg=og?window:void 0;og&&window.document,og&&window.navigator,og&&window.location;function Cg(e){let t=mn(e);return t?.$el??t}function wg(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=q(()=>{let t=fg(mn(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return xg(()=>[n.value?.map(e=>Cg(e))??[Sg].filter(e=>e!=null),fg(mn(n.value?e[1]:e[0])),fg(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=lg(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 Tg(){let e=un(!1),t=Es();return t&&Gi(()=>{e.value=!0},t),e}function Eg(e){let t=Tg();return q(()=>(t.value,!!e()))}function Dg(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Og(...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=Sg,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Dg(t);return wg(i,a,e=>{e.repeat&&mn(s)||c(e)&&n(e)},o)}function kg(e){return JSON.parse(JSON.stringify(e))}function Ag(e,t,n={}){let{window:r=Sg,...i}=n,a,o=Eg(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=Er(q(()=>{let t=mn(e);return Array.isArray(t)?t.map(e=>Cg(e)):[Cg(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 rg(l),{isSupported:o,stop:l}}function jg(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):kg(e):e,g=()=>sg(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 Mg(e){return e?e.flatMap(e=>e.type===R?Mg(e.children):[e]):[]}var Ng=[`INPUT`,`TEXTAREA`];function Pg(e,t,n,r={}){if(!t||r.enableIgnoredElement&&Ng.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=Fg(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 Fg(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`?Fg(e,o,n,r):o:null}var[Ig,Lg]=Qh(`ConfigProvider`);function Rg(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 zg(e,t,n=`.`,r){if(!Rg(t))return zg(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]]:Rg(a)&&Rg(i[t])?i[t]=zg(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function Bg(e){return(...t)=>t.reduce((t,n)=>zg(t,n,``,e),{})}var Vg=Bg(),Hg=mg(()=>{let e=M(new Map),t=M(),n=q(()=>{for(let t of e.value.values())if(t)return!0;return!1}),r=Ig({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??``,ug&&i?.(),t.value=void 0};return Er(n,(e,o)=>{if(!og)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`?Vg({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`),ug&&(i=wg(document,`touchmove`,e=>Gg(e),{passive:!1})),Qn(()=>{n.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function Ug(e){let t=Math.random().toString(36).substring(2,7),n=Hg();n.value.set(t,e??!1);let r=q({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return yg(()=>{n.value.delete(t)}),r}function Wg(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:Wg(t)}}function Gg(e){let t=e||window.event,n=t.target;return n instanceof Element&&Wg(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function Kg(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 qg(e){let t=Ig({dir:M(`ltr`)});return q(()=>e?.value||t.dir?.value||`ltr`)}function Jg(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 Yg(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 Xg=0;function Zg(){Cr(e=>{if(!og)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??Qg()),document.body.insertAdjacentElement(`beforeend`,t[1]??Qg()),Xg++,e(()=>{Xg===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),Xg--})})}function Qg(){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 $g(e){return q(()=>mn(e)?!!Cg(e)?.closest(`form`):!0)}function e_(){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:Cg(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 t_(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 n_(e,t){let n=t_(e),r=t?Jg(t):{};return q(()=>({...n.value,...r}))}function r_(e,t){let n=vg(!1,300);rg(()=>{n.value=!1});let r=M(null),i=ig();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=a_(a,i_(a,i.getBoundingClientRect()),1),s=o_(t.getBoundingClientRect());r.value=c_([...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=!s_(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 i_(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 a_(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 o_(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 s_(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 c_(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)),l_(t)}function l_(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 u_=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},d_=new WeakMap,f_=new WeakMap,p_={},m_=0,h_=function(e){return e&&(e.host||h_(e.parentNode))},g_=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=h_(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})},__=function(e,t,n,r){var i=g_(t,Array.isArray(e)?e:[e]);p_[n]||(p_[n]=new WeakMap);var a=p_[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=(d_.get(e)||0)+1,l=(a.get(e)||0)+1;d_.set(e,c),a.set(e,l),o.push(e),c===1&&i&&f_.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(),m_++,function(){o.forEach(function(e){var t=d_.get(e)-1,i=a.get(e)-1;d_.set(e,t),a.set(e,i),t||(f_.has(e)||e.removeAttribute(r),f_.delete(e)),i||e.removeAttribute(n)}),m_--,m_||(d_=new WeakMap,d_=new WeakMap,f_=new WeakMap,p_={})}},v_=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||u_(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),__(r,i,n,`aria-hidden`)):function(){return null}};function y_(e){let t;Er(()=>Cg(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=v_(e):t&&t()}),Yi(()=>{t&&t()})}var b_=0;function x_(e,t=`reka`){if(e)return e;let n;return n=`useId`in uu?ai?.():Ig({useId:void 0}).useId?.()??`${++b_}`,t?`${t}-${n}`:n}function S_(){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 C_(e){let t=M(),n=q(()=>t.value?.width??0),r=q(()=>t.value?.height??0);return Gi(()=>{let n=Cg(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 w_(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 T_(e){let t=vg(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=$h(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=D_(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 E_(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function D_(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=E_(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 O_(e,t){let n=M({}),r=M(`none`),i=M(e),a=e.value?`mounted`:`unmounted`,o,s=t.value?.ownerDocument.defaultView??Sg,{state:c,dispatch:l}=w_(a,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),u=e=>{if(og){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=k_(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=k_(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=k_(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=k_(t.value);r.value=c.value===`mounted`?e:`none`});return Yi(()=>{p(),m()}),{isPresent:q(()=>[`mounted`,`unmountSuspended`].includes(c.value))}}function k_(e){return e&&getComputedStyle(e).animationName||`none`}var A_=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}=O_(r,a);n({present:o});let s=t.default({present:o.value});s=Mg(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(`
|
|
7
7
|
`)].join(`
|
|
8
|
-
`))}return()=>i.value||r.value||o.value?Ks(t.default({present:o.value})[0],{ref:e=>{let t=Cg(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),j_=F({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=Mg(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)}}}),M_=[`area`,`img`,`input`],N_=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`&&M_.includes(r)?()=>Ks(r,t):r===`template`?()=>Ks(j_,t,{default:n.default}):()=>Ks(e.as,t,{default:n.default})}});function P_(){let e=M();return{primitiveElement:e,currentElement:q(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Cg(e))}}var[F_,I_]=Qh(`DialogRoot`),L_=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=jg(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=M(),a=M(),{modal:o}=yn(n);return I_({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})}}),R_=F({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;e_();let n=F_();return(e,r)=>(z(),V(N(N_),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`]))}}),z_=`dismissableLayer.pointerDownOutside`,B_=`dismissableLayer.focusOutside`;function V_(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 H_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1),a=M(()=>{});return Cr(o=>{if(!og||!mn(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(V_(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){eg(z_,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 U_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1);return Cr(a=>{if(!og||!mn(n))return;let o=async n=>{if(!t?.value)return;await Qn(),await Qn();let r=n.target;!t.value||!r||V_(t.value,r)||n.target&&!i.value&&eg(B_,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 W_=Yt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),G_=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}=e_(),o=q(()=>a.value?.ownerDocument??globalThis.document),s=q(()=>W_.layersRoot),c=q(()=>a.value?Array.from(s.value).indexOf(a.value):-1),l=q(()=>W_.layersWithOutsidePointerEventsDisabled.size>0),u=q(()=>{let e=Array.from(s.value),[t]=[...W_.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return c.value>=n}),d=H_(async e=>{let t=[...W_.branches].some(t=>t?.contains(e.target));!u.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await Qn(),e.defaultPrevented||r(`dismiss`))},a),f=U_(e=>{[...W_.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},a);return Og(`Escape`,e=>{c.value===s.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),Cr(e=>{a.value&&(n.disableOutsidePointerEvents&&(W_.layersWithOutsidePointerEventsDisabled.size===0&&(W_.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents=`none`),W_.layersWithOutsidePointerEventsDisabled.add(a.value)),s.value.add(a.value),e(()=>{n.disableOutsidePointerEvents&&W_.layersWithOutsidePointerEventsDisabled.size===1&&!tg(W_.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=W_.originalBodyPointerEvents)}))}),Cr(e=>{e(()=>{a.value&&(s.value.delete(a.value),W_.layersWithOutsidePointerEventsDisabled.delete(a.value))})}),(e,t)=>(z(),V(N(N_),{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`]))}}),K_=ag(()=>M([]));function q_(){let e=K_();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=J_(e.value,t),e.value.unshift(t)},remove(t){e.value=J_(e.value,t),e.value[0]?.resume()}}}function J_(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var Y_=`focusScope.autoFocusOnMount`,X_=`focusScope.autoFocusOnUnmount`,Z_={bubbles:!1,cancelable:!0};function Q_(e,{select:t=!1}={}){let n=$h();for(let r of e)if(iv(r,{select:t}),$h()!==n)return!0}function $_(e){let t=ev(e);return[tv(t,e),tv(t.reverse(),e)]}function ev(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 tv(e,t){for(let n of e)if(!nv(n,{upTo:t}))return n}function nv(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 rv(e){return e instanceof HTMLInputElement&&`select`in e}function iv(e,{select:t=!1}={}){if(e&&e.focus){let n=$h();e.focus({preventScroll:!0}),e!==n&&rv(e)&&t&&e.select()}}var av=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}=e_(),o=M(null),s=q_(),c=Yt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Cr(e=>{if(!og)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:iv(o.value,{select:!0})}function i(e){if(c.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||iv(o.value,{select:!0}))}function s(e){let n=o.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||iv(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=$h();if(!t.contains(n)){let e=new CustomEvent(Y_,Z_);t.addEventListener(Y_,e=>r(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(Q_(ev(t),{select:!0}),$h()===n&&iv(t))}e(()=>{t.removeEventListener(Y_,e=>r(`mountAutoFocus`,e));let e=new CustomEvent(X_,Z_),i=e=>{r(`unmountAutoFocus`,e)};t.addEventListener(X_,i),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||iv(n??document.body,{select:!0}),t.removeEventListener(X_,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=$h();if(t&&r){let t=e.currentTarget,[i,a]=$_(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&iv(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&iv(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(z(),V(N(N_),{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`]))}}),ov=`menu.itemSelect`,sv=[`Enter`,` `],cv=[`ArrowDown`,`PageUp`,`Home`],lv=[`ArrowUp`,`PageDown`,`End`],uv=[...cv,...lv];[...sv],[...sv];function dv(e){return e?`open`:`closed`}function fv(e){let t=$h();for(let n of e)if(n===t||(n.focus(),$h()!==t))return}function pv(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 mv(e,t){return t?pv({x:e.clientX,y:e.clientY},t):!1}function hv(e){return e.pointerType===`mouse`}var gv=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=F_(),{forwardRef:a,currentElement:o}=e_();return i.titleId||=x_(void 0,`reka-dialog-title`),i.descriptionId||=x_(void 0,`reka-dialog-description`),Gi(()=>{i.contentElement=o,$h()!==document.body&&(i.triggerElement.value=$h())}),(e,t)=>(z(),V(N(av),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),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(dv)(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`]))}}),_v=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=F_(),a=Jg(r),{forwardRef:o,currentElement:s}=e_();return y_(s),(e,t)=>(z(),V(gv,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`]))}}),vv=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=Jg(t);e_();let i=F_(),a=M(!1),o=M(!1);return(e,t)=>(z(),V(gv,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))}}),yv=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=F_(),a=Jg(r),{forwardRef:o}=e_();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(_v,K({key:0,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(vv,K({key:1,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),bv=F({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;e_();let n=F_();return(e,r)=>(z(),V(N(N_),K(t,{id:N(n).descriptionId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),xv=F({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=F_();return Ug(!0),e_(),(e,n)=>(z(),V(N(N_),{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`]))}}),Sv=F({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=F_(),{forwardRef:n}=e_();return(e,r)=>N(t)?.modal.value?(z(),V(N(A_),{key:0,present:e.forceMount||N(t).open.value},{default:P(()=>[U(xv,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)}}),Cv=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=Tg();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)}}),wv=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Tv=F({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=F_();return e_(),(e,r)=>(z(),V(N(N_),K(t,{id:N(n).titleId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ev=`data-reka-collection-item`;function Dv(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(`[${Ev}]`)),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}=P_();return Er(a,()=>{i.collectionRef.value=a.value}),()=>Ks(j_,{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}=P_();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(j_,{...n,[Ev]:``,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 Ov=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(N_),{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`]))}}),kv=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}=P_();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(Ov,K({ref_key:`primitiveElement`,ref:n},{...t,...e.$attrs},{as:`input`}),null,16))}}),Av=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(kv,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(kv,K({key:n.name},{ref_for:!0},{...t,...e.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`]))),128))],2112))}});function jv(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Mv(e,t,n)):Mv(e,t,n)}function Mv(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]:Yh(e,t)}var Nv=`rovingFocusGroup.onEntryFocus`,Pv={bubbles:!1,cancelable:!0},Fv={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Iv(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Lv(e,t,n){let r=Iv(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Fv[r]}function Rv(e,t=!1){let n=$h();for(let r of e)if(r===n||(r.focus({preventScroll:t}),$h()!==n))return}function zv(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Bv,Vv]=Qh(`ListboxRoot`),Hv=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}=Dv({isProvider:!0}),{handleTypeaheadSearch:f}=T_(),{primitiveElement:p,currentElement:m}=P_(),h=S_(),g=qg(u),_=$g(m),v=M(),y=M(!1),b=M(!0),x=jg(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=>Mv(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`&&Mv(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=ig(),ee=ig(),te=ig();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=>Mv(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=Lv(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=Xh(n.map(e=>e.value),v.value,r)}}async function fe(e,t=!0){if(og)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}),Vv({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(N_),{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(Av),{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`]))}}),Uv=F({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:t}=Dv(),n=Bv(),r=vg(!1,10);return(e,i)=>(z(),V(N(t),null,{default:P(()=>[U(N(N_),{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}))}}),Wv=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=jg(n,`modelValue`,t,{defaultValue:``,passive:n.modelValue===void 0}),i=Bv(),{primitiveElement:a,currentElement:o}=P_(),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}=Kg(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(N_),{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`]))}}),Gv=`listbox.select`,[Kv,qv]=Qh(`ListboxItem`),Jv=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=x_(void 0,`reka-listbox-item`),{CollectionItem:a}=Dv(),{forwardRef:o,currentElement:s}=e_(),c=Bv(),l=q(()=>s.value!=null&&s.value===c.highlightedElement.value),u=q(()=>jv(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){eg(Gv,f,{originalEvent:e,value:n.value})}return qv({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(N_),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`]))}}),Yv=F({__name:`ListboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;e_();let n=Kv();return(e,r)=>N(n).isSelected.value?(z(),V(N(N_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),[Xv,Zv]=Qh(`PopperRoot`),Qv=F({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=M();return Zv({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),$v=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}=e_(),i=Xv();return wr(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(z(),V(N(N_),{ref:N(n),as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function ey(e){return e!==null}function ty(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]=ny(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 ny(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var ry=[`top`,`right`,`bottom`,`left`],iy=Math.min,ay=Math.max,oy=Math.round,sy=Math.floor,cy=e=>({x:e,y:e}),ly={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function uy(e,t,n){return ay(e,iy(t,n))}function dy(e,t){return typeof e==`function`?e(t):e}function fy(e){return e.split(`-`)[0]}function py(e){return e.split(`-`)[1]}function my(e){return e===`x`?`y`:`x`}function hy(e){return e===`y`?`height`:`width`}function gy(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function _y(e){return my(gy(e))}function vy(e,t,n){n===void 0&&(n=!1);let r=py(e),i=_y(e),a=hy(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Dy(o)),[o,Dy(o)]}function yy(e){let t=Dy(e);return[by(e),t,by(t)]}function by(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var xy=[`left`,`right`],Sy=[`right`,`left`],Cy=[`top`,`bottom`],wy=[`bottom`,`top`];function Ty(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Sy:xy:t?xy:Sy;case`left`:case`right`:return t?Cy:wy;default:return[]}}function Ey(e,t,n,r){let i=py(e),a=Ty(fy(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(by)))),a}function Dy(e){let t=fy(e);return ly[t]+e.slice(t.length)}function Oy(e){return{top:0,right:0,bottom:0,left:0,...e}}function ky(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Oy(e)}function Ay(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 jy(e,t,n){let{reference:r,floating:i}=e,a=gy(t),o=_y(t),s=hy(o),c=fy(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(py(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 My(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}=dy(t,e),p=ky(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ay(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=Ay(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 Ny=50,Py=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:My},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=jy(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<Ny&&(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}=jy(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Fy=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}=dy(e,t)||{};if(l==null)return{};let d=ky(u),f={x:n,y:r},p=_y(i),m=hy(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=iy(d[_],T),D=iy(d[v],T),ee=E,te=C-h[m]-D,ne=C/2-h[m]/2+w,O=uy(ee,ne,te),re=!c.arrow&&py(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}}}),Iy=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}=dy(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=fy(r),_=gy(o),v=fy(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Dy(o)]:yy(o)),x=p!==`none`;!d&&x&&b.push(...Ey(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=vy(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`&&_!==gy(t))||T.every(e=>gy(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=gy(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 Ly(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ry(e){return ry.some(t=>e[t]>=0)}var zy=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=dy(e,t);switch(i){case`referenceHidden`:{let e=Ly(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Ry(e)}}}case`escaped`:{let e=Ly(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Ry(e)}}}default:return{}}}}},By=new Set([`left`,`top`]);async function Vy(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=fy(n),s=py(n),c=gy(n)===`y`,l=By.has(o)?-1:1,u=a&&c?-1:1,d=dy(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 Hy=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 Vy(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}}}}},Uy=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}=dy(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=gy(fy(i)),p=my(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=uy(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=uy(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}}}}}},Wy=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}=dy(e,t),u={x:n,y:r},d=gy(i),f=my(d),p=u[f],m=u[d],h=dy(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=By.has(fy(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}}}},Gy=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}=dy(e,t),u=await o.detectOverflow(t,l),d=fy(i),f=py(i),p=gy(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=iy(h-u[g],v),x=iy(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=ay(u.left,0),t=ay(u.right,0),n=ay(u.top,0),r=ay(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:ay(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:ay(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 Ky(){return typeof window<`u`}function qy(e){return Xy(e)?(e.nodeName||``).toLowerCase():`#document`}function Jy(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Yy(e){return((Xy(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Xy(e){return Ky()?e instanceof Node||e instanceof Jy(e).Node:!1}function Zy(e){return Ky()?e instanceof Element||e instanceof Jy(e).Element:!1}function Qy(e){return Ky()?e instanceof HTMLElement||e instanceof Jy(e).HTMLElement:!1}function $y(e){return!Ky()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Jy(e).ShadowRoot}function eb(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=db(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function tb(e){return/^(table|td|th)$/.test(qy(e))}function nb(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var rb=/transform|translate|scale|rotate|perspective|filter/,ib=/paint|layout|strict|content/,ab=e=>!!e&&e!==`none`,ob;function sb(e){let t=Zy(e)?db(e):e;return ab(t.transform)||ab(t.translate)||ab(t.scale)||ab(t.rotate)||ab(t.perspective)||!lb()&&(ab(t.backdropFilter)||ab(t.filter))||rb.test(t.willChange||``)||ib.test(t.contain||``)}function cb(e){let t=pb(e);for(;Qy(t)&&!ub(t);){if(sb(t))return t;if(nb(t))return null;t=pb(t)}return null}function lb(){return ob??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ob}function ub(e){return/^(html|body|#document)$/.test(qy(e))}function db(e){return Jy(e).getComputedStyle(e)}function fb(e){return Zy(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function pb(e){if(qy(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||$y(e)&&e.host||Yy(e);return $y(t)?t.host:t}function mb(e){let t=pb(e);return ub(t)?e.ownerDocument?e.ownerDocument.body:e.body:Qy(t)&&eb(t)?t:mb(t)}function hb(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=mb(e),i=r===e.ownerDocument?.body,a=Jy(r);if(i){let e=gb(a);return t.concat(a,a.visualViewport||[],eb(r)?r:[],e&&n?hb(e):[])}else return t.concat(r,hb(r,[],n))}function gb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function _b(e){let t=db(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Qy(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=oy(n)!==a||oy(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function vb(e){return Zy(e)?e:e.contextElement}function yb(e){let t=vb(e);if(!Qy(t))return cy(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=_b(t),o=(a?oy(n.width):n.width)/r,s=(a?oy(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var bb=cy(0);function xb(e){let t=Jy(e);return!lb()||!t.visualViewport?bb:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Sb(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Jy(e)?!1:t}function Cb(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=vb(e),o=cy(1);t&&(r?Zy(r)&&(o=yb(r)):o=yb(e));let s=Sb(a,n,r)?xb(a):cy(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=Jy(a),t=r&&Zy(r)?Jy(r):r,n=e,i=gb(n);for(;i&&r&&t!==n;){let e=yb(i),t=i.getBoundingClientRect(),r=db(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=Jy(i),i=gb(n)}}return Ay({width:u,height:d,x:c,y:l})}function wb(e,t){let n=fb(e).scrollLeft;return t?t.left+n:Cb(Yy(e)).left+n}function Tb(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-wb(e,n),y:n.top+t.scrollTop}}function Eb(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Yy(r),s=t?nb(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=cy(1),u=cy(0),d=Qy(r);if((d||!d&&!a)&&((qy(r)!==`body`||eb(o))&&(c=fb(r)),d)){let e=Cb(r);l=yb(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Tb(o,c):cy(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 Db(e){return Array.from(e.getClientRects())}function Ob(e){let t=Yy(e),n=fb(e),r=e.ownerDocument.body,i=ay(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=ay(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+wb(e),s=-n.scrollTop;return db(r).direction===`rtl`&&(o+=ay(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var kb=25;function Ab(e,t){let n=Jy(e),r=Yy(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=lb();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=wb(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<=kb&&(a-=o)}else l<=kb&&(a+=l);return{width:a,height:o,x:s,y:c}}function jb(e,t){let n=Cb(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Qy(e)?yb(e):cy(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Mb(e,t,n){let r;if(t===`viewport`)r=Ab(e,n);else if(t===`document`)r=Ob(Yy(e));else if(Zy(t))r=jb(t,n);else{let n=xb(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ay(r)}function Nb(e,t){let n=pb(e);return n===t||!Zy(n)||ub(n)?!1:db(n).position===`fixed`||Nb(n,t)}function Pb(e,t){let n=t.get(e);if(n)return n;let r=hb(e,[],!1).filter(e=>Zy(e)&&qy(e)!==`body`),i=null,a=db(e).position===`fixed`,o=a?pb(e):e;for(;Zy(o)&&!ub(o);){let t=db(o),n=sb(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||eb(o)&&!n&&Nb(e,o))?r=r.filter(e=>e!==o):i=t,o=pb(o)}return t.set(e,r),r}function Fb(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?nb(t)?[]:Pb(t,this._c):[].concat(n),r],o=Mb(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=Mb(t,a[e],i);s=ay(n.top,s),c=iy(n.right,c),l=iy(n.bottom,l),u=ay(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Ib(e){let{width:t,height:n}=_b(e);return{width:t,height:n}}function Lb(e,t,n){let r=Qy(t),i=Yy(t),a=n===`fixed`,o=Cb(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=cy(0);function l(){c.x=wb(i)}if(r||!r&&!a)if((qy(t)!==`body`||eb(i))&&(s=fb(t)),r){let e=Cb(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?Tb(i,s):cy(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 Rb(e){return db(e).position===`static`}function zb(e,t){if(!Qy(e)||db(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Yy(e)===n&&(n=n.ownerDocument.body),n}function Bb(e,t){let n=Jy(e);if(nb(e))return n;if(!Qy(e)){let t=pb(e);for(;t&&!ub(t);){if(Zy(t)&&!Rb(t))return t;t=pb(t)}return n}let r=zb(e,t);for(;r&&tb(r)&&Rb(r);)r=zb(r,t);return r&&ub(r)&&Rb(r)&&!sb(r)?n:r||cb(e)||n}var Vb=async function(e){let t=this.getOffsetParent||Bb,n=this.getDimensions,r=await n(e.floating);return{reference:Lb(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Hb(e){return db(e).direction===`rtl`}var Ub={convertOffsetParentRelativeRectToViewportRelativeRect:Eb,getDocumentElement:Yy,getClippingRect:Fb,getOffsetParent:Bb,getElementRects:Vb,getClientRects:Db,getDimensions:Ib,getScale:yb,isElement:Zy,isRTL:Hb};function Wb(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Gb(e,t){let n=null,r,i=Yy(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=sy(d),h=sy(i.clientWidth-(u+f)),g=sy(i.clientHeight-(d+p)),_=sy(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:ay(0,iy(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&&!Wb(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 Kb(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=vb(e),u=i||a?[...l?hb(l):[],...t?hb(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Gb(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?Cb(e):null;c&&g();function g(){let t=Cb(e);h&&!Wb(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 qb=Hy,Jb=Uy,Yb=Iy,Xb=Gy,Zb=zy,Qb=Fy,$b=Wy,ex=(e,t,n)=>{let r=new Map,i={platform:Ub,...n},a={...i.platform,_c:r};return Py(e,t,{...i,platform:a})};function tx(e){return typeof e==`object`&&!!e&&`$el`in e}function nx(e){if(tx(e)){let t=e.$el;return Xy(t)&&qy(t)===`#comment`?null:t}return e}function rx(e){return typeof e==`function`?e():N(e)}function ix(e){return{name:`arrow`,options:e,fn(t){let n=nx(rx(e.element));return n==null?{}:Qb({element:n,padding:e.padding}).fn(t)}}}function ax(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ox(e,t){let n=ax(e);return Math.round(t*n)/n}function sx(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=q(()=>rx(n.open)??!0),a=q(()=>rx(n.middleware)),o=q(()=>rx(n.placement)??`bottom`),s=q(()=>rx(n.strategy)??`absolute`),c=q(()=>rx(n.transform)??!0),l=q(()=>nx(e.value)),u=q(()=>nx(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=ox(u.value,d.value),n=ox(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...ax(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;ex(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 cx={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},[lx,ux]=Qh(`PopperContent`),dx=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}},{...cx}),emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,i=Xv(),{forwardRef:a,currentElement:o}=e_(),s=M(),c=M(),{width:l,height:u}=C_(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(ey),altBoundary:p.value.length>0})),h=q(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),g=ng(()=>[qb({mainAxis:n.sideOffset+u.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Yb({...m.value,...h.value}),n.avoidCollisions&&Jb({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?$b():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&Yb({...m.value,...h.value}),Xb({...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&&ix({element:c.value,padding:n.arrowPadding}),ty({arrowWidth:l.value,arrowHeight:u.value}),n.hideWhenDetached&&Zb({strategy:`referenceHidden`,...m.value})]),{floatingStyles:_,placement:v,isPositioned:y,middlewareData:b,update:x}=sx(q(()=>n.reference??i.anchor.value),s,{strategy:n.positionStrategy,placement:d,whileElementsMounted:(...e)=>Kb(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:g}),S=q(()=>ny(v.value)[0]),C=q(()=>ny(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)}),ux({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(N_),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))}}),[fx,px]=Qh(`ComboboxRoot`),mx=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}=P_(),{multiple:s,disabled:c,ignoreFilter:l,resetSearchTermOnSelect:u,openOnFocus:d,openOnClick:f,dir:p,resetModelValueOnClear:m,highlightOnHover:h}=yn(r),g=qg(p),_=jg(r,`modelValue`,i,{defaultValue:r.defaultValue??(s.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),v=jg(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=ig(),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}=Yg({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}),px({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(Qv),null,{default:P(()=>[U(N(Hv),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}))}}),hx=F({__name:`ComboboxAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{forwardRef:t}=e_();return(e,n)=>(z(),V(N($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),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`]))}}),[gx,_x]=Qh(`ComboboxContent`),vx=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=fx(),o=q(()=>a.ignoreFilter.value?a.allItems.value.size===0:a.filterState.value.count===0),{forwardRef:s,currentElement:c}=e_();Ug(n.bodyLock),Zg(),y_(a.parentElement);let l=t_(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)`};_x({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=$h();d.value&&(!e||e===document.body)&&a.triggerElement.value?.focus()}),(e,t)=>(z(),V(N(Uv),{"as-child":``},{default:P(()=>[U(N(av),{"as-child":``,onMountAutoFocus:t[5]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[6]||=Jl(()=>{},[`prevent`])},{default:P(()=>[U(N(G_),{"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(dx):N(N_)),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}))}}),yx=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=n_(e,t),{forwardRef:r}=e_(),i=fx();return i.contentId||=x_(void 0,`reka-combobox-content`),(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[U(vx,K({...N(n),...e.$attrs},{ref:N(r)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`]))}}),bx=F({__name:`ComboboxEmpty`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=fx(),r=q(()=>n.ignoreFilter.value?n.allItems.value.size===0:n.filterState.value.count===0);return(e,n)=>r.value?(z(),V(N(N_),ye(K({key:0},t)),{default:P(()=>[L(e.$slots,`default`,{},()=>[n[0]||=W(`No options`)])]),_:3},16)):G(`v-if`,!0)}}),[xx,Sx]=Qh(`ComboboxGroup`),Cx=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=fx(),a=Bv(),{primitiveElement:o,currentElement:s}=P_(),c=jg(n,`modelValue`,r,{passive:n.modelValue===void 0});Gi(()=>{s.value&&i.onInputElementChange(s.value)});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Kg(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(Wv),{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`]))}}),wx=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=x_(void 0,`reka-combobox-item`),a=fx(),o=xx(null),{primitiveElement:s,currentElement:c}=P_();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(Jv),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)}}),Tx=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(Yv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Ex=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Dx=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}=e_(),i=fx(),a=q(()=>t.disabled||i.disabled.value||!1);return Gi(()=>{r.value&&i.onTriggerElementChange(r.value)}),(e,r)=>(z(),V(N(N_),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 Ox(e){let t=Ig({nonce:M()});return q(()=>e?.value||t.nonce?.value)}var kx=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}=e_(),{nonce:r}=yn(t),i=Ox(r),a=fx();return(e,r)=>(z(),B(R,null,[U(N(N_),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(N_),{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))}}),[Ax,jx]=Qh(`RovingFocusGroup`),Mx=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=qg(s),l=jg(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=M(!1),d=M(!1),f=M(0),{getItems:p,CollectionSlot:m}=Dv({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(Nv,Pv);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Rv([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}),jx({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(N_),{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}))}}),Nx=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=Ax(),r=x_(),i=q(()=>t.tabStopId||r),a=q(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=Dv();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=Lv(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?zv(i,t+1):i.slice(t+1)}Qn(()=>Rv(i))}}return(e,t)=>(z(),V(N(s),null,{default:P(()=>[U(N(N_),{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}))}}),Px=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($v),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}});function Fx(){let e=M(!1);return Gi(()=>{wg(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),wg([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var Ix=mg(Fx),[Lx,Rx]=Qh([`MenuRoot`,`MenuSub`],`MenuContext`),[zx,Bx]=Qh(`MenuRoot`),Vx=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=qg(a),s=jg(n,`open`,r),c=M(),l=Ix();return Rx({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),Bx({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(z(),V(N(Qv),null,{default:P(()=>[L(e.$slots,`default`)]),_:3}))}}),[Hx,Ux]=Qh(`MenuContent`),Wx=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}},{...cx}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=Lx(),a=zx(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=yn(n);Zg(),Ug(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}=e_(),{handleTypeaheadSearch:y}=T_(),b=M();function x(e){let t=Pg(e,b.value||$h(),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&&mv(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=Pg(e,$h(),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||!uv.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];lv.includes(e.key)&&u.reverse(),fv(u)}function ee(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function te(e){if(!hv(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){hv(e)&&C.value&&C.value.focus()}return Ux({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes($h()?.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(av),{"as-child":``,trapped:N(o),onMountAutoFocus:E,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),{"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(Mx),{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(dx),{ref:N(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":N(dv)(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`]))}}),Gx=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=Hx(),{forwardRef:r,currentElement:i}=e_(),{CollectionItem:a}=Dv(),o=M(!1),s=q(()=>o.value||i.value!=null&&n.highlightedElement.value===i.value);async function c(e){if(!(e.defaultPrevented||!hv(e))){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes($h()?.tagName||``)||t.focus({preventScroll:!0})}}}async function l(e){await Qn(),!e.defaultPrevented&&hv(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(N_),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`]))}}),Kx=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}=e_(),o=zx(),s=Hx(),c=M(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(ov,{bubbles:!0,cancelable:!0});r(`select`,e),await Qn(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(z(),V(Gx,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(sv).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),qx=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=n_(n,r),a=Lx(),{forwardRef:o,currentElement:s}=e_();return y_(s),(e,t)=>(z(),V(Wx,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`]))}}),Jx=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=n_(e,t),r=Lx();return(e,t)=>(z(),V(Wx,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))}}),Yx=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=n_(e,t),r=Lx(),i=zx();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(r).open.value},{default:P(()=>[N(i).modal.value?(z(),V(qx,ye(K({key:0},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Jx,ye(K({key:1},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Xx,Zx]=Qh(`MenuGroup`),Qx=F({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Xx({id:``});return(e,r)=>(z(),V(N(N_),K(t,{id:N(n).id||void 0}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),$x=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),eS=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(N_),K(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),[tS,nS]=Qh(`PopoverRoot`),rS=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=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return nS({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(a),close:()=>a.value=!1})]),_:3}))}}),iS=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=t_(_g(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:a}=e_(),o=tS();return Zg(),(e,t)=>(z(),V(N(av),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),{"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(dx),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`]))}}),aS=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=tS(),a=M(!1);Ug(!0);let o=n_(n,r),{forwardRef:s,currentElement:c}=e_();return y_(c),(e,t)=>(z(),V(iS,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`]))}}),oS=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=tS(),a=M(!1),o=M(!1),s=n_(n,r);return(e,t)=>(z(),V(iS,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))}}),sS=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=tS(),a=n_(n,r),{forwardRef:o}=e_();return i.contentId||=x_(void 0,`reka-popover-content`),(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(aS,K({key:0},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(oS,K({key:1},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),cS=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),lS=F({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=tS(),{forwardRef:r,currentElement:i}=e_();return n.triggerId||=x_(void 0,`reka-popover-trigger`),Gi(()=>{n.triggerElement.value=i.value}),(e,i)=>(z(),V(ia(N(n).hasCustomAnchor.value?N(N_):N($v)),{"as-child":``},{default:P(()=>[U(N(N_),{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}))}}),[uS,dS]=Qh(`DropdownMenuRoot`),fS=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;e_();let i=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=M(),{modal:o,dir:s}=yn(n),c=qg(s);return dS({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(Vx),{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`]))}}),pS=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=n_(e,t);e_();let r=uS(),i=M(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=x_(void 0,`reka-dropdown-menu-content`),(e,t)=>(z(),V(N(Yx),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`]))}}),mS=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=Jg(t);return e_(),(e,t)=>(z(),V(N(Kx),ye(hs({...n,...N(r)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),hS=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return e_(),(e,n)=>(z(),V(N(Qx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),gS=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($x),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_S=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return e_(),(e,n)=>(z(),V(N(eS),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),vS=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=uS(),{forwardRef:r,currentElement:i}=e_();return Gi(()=>{n.triggerElement=i}),n.triggerId||=x_(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(z(),V(N(Px),{"as-child":``},{default:P(()=>[U(N(N_),{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}))}}),yS=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 e_(),(e,n)=>(z(),V(N(N_),K(t,{onMousedown:n[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),bS=[` `,`Enter`,`ArrowUp`,`ArrowDown`],xS=[` `,`Enter`];function SS(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>CS(e,t,n)):CS(e,t,n)}function CS(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]:Yh(e,t)}function wS(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var TS={key:0,value:``},[ES,DS]=Qh(`SelectRoot`),OS=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=jg(n,`modelValue`,r,{defaultValue:n.defaultValue??(o.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),l=jg(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:tg(c.value));Dv({isProvider:!0});let m=qg(s),h=$g(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=>CS(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=>SS(e,t.value,n.by))}return DS({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c),open:N(l)}),N(h)&&e.name?(z(),V(kS,{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(tg)(N(c))?(z(),B(`option`,TS)):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}))}}),kS=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=ES();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(Ov),{"as-child":``},{default:P(()=>[H(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[L(e.$slots,`default`)],16)]),_:3}))}}),AS=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=t_(e);return(e,n)=>(z(),V(N(dx),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))}}),jS={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[MS,NS]=Qh(`SelectContent`),PS=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=ES();Zg(),Ug(n.bodyLock);let{CollectionSlot:a,getItems:o}=Dv(),s=M();y_(s);let{search:c,handleTypeaheadSearch:l}=T_(),u=M(),d=M(),f=M(),p=M(!1),m=M(!1),h=M(!1);function g(){d.value&&s.value&&fv([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(()=>fv(t)),e.preventDefault()}}let b=t_(q(()=>n.position===`popper`?n:{}).value);return NS({content:s,viewport:u,onViewportChange:e=>{u.value=e},itemRefCallback:(e,t,n)=>{let r=!m.value&&!n,a=SS(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;(SS(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(av),{"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(G_),{"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`?AS:LS),K({...e.$attrs,...N(b)},{id:N(i).contentId,ref:e=>{if(!e)return;let t=N(Cg)(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}))}}),[FS,IS]=Qh(`SelectItemAlignedPosition`),LS=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}=Dv(),a=ES(),o=MS(),s=M(!1),c=M(!0),l=M(),{forwardRef:u,currentElement:d}=e_(),{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=Zh(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=Zh(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 Ag(a.triggerElement,()=>{g()}),IS({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(N_),K({ref:N(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)],4))}}),RS=F({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return DS(e.context),NS(jS),(e,t)=>L(e.$slots,`default`)}}),zS={key:1},BS=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=n_(n,t),i=ES(),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(A_),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:P(()=>[U(PS,ye(hs({...N(r),...e.$attrs})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(z(),B(`div`,zS,[(z(),V(Vr,{to:a.value},[U(RS,{context:N(i)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):G(`v-if`,!0)}}),VS=F({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(N_),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`,{},()=>[t[0]||=W(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[HS,US]=Qh(`SelectItem`),WS=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=ES(),o=MS(),{forwardRef:s,currentElement:c}=e_(),{CollectionItem:l}=Dv(),u=q(()=>SS(a.modelValue?.value,n.value,a.by)),d=M(!1),f=M(n.textValue??``),p=x_(void 0,`reka-select-item-text`);async function m(e){e.defaultPrevented||eg(`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===$h()&&o.onItemLeave?.()}async function v(e){await Qn(),!e.defaultPrevented&&(o.searchRef?.value!==``&&e.key===` `||(xS.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)}),US({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(N_),{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`]))}}),GS=F({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=HS();return(e,r)=>N(n).isSelected.value?(z(),V(N(N_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),KS=F({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=ES(),r=MS(),i=HS(),{forwardRef:a,currentElement:o}=e_(),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(N_),K({id:N(i).textId,ref:N(a)},{...t,...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),qS=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),JS=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=ES(),{forwardRef:r,currentElement:i}=e_(),a=q(()=>n.disabled?.value||t.disabled);n.contentId||=x_(void 0,`reka-select-content`),Gi(()=>{n.onTriggerChange(i.value)});let{getItems:o}=Dv(),{search:s,handleTypeaheadSearch:c,resetTypeahead:l}=T_();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($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),{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(wS)(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(bS).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`]))}}),YS=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}=e_(),i=ES();Gi(()=>{i.valueElement=r});let a=q(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>SS(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(N_),{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`]))}}),XS=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=Ox(n),i=MS(),a=i.position===`item-aligned`?FS():void 0,{forwardRef:o,currentElement:s}=e_();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(N_),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(N_),{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))}}),[ZS,QS]=Qh(`SwitchRoot`),$S=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=jg(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}=e_(),u=$g(l),d=q(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return QS({checked:o,toggleCheck:s,disabled:i}),(e,t)=>(z(),V(N(N_),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(Av),{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`]))}}),eC=F({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=ZS();return e_(),(e,n)=>(z(),V(N(N_),{"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`]))}}),[tC,nC]=Qh(`TabsRoot`),rC=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=qg(o);e_();let c=jg(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=M(),u=un(new Set);return nC({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:x_(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(N_),{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 iC(e,t){return`${e}-trigger-${t}`}function aC(e,t){return`${e}-content-${t}`}var oC=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}=e_(),i=tC();return i.tabsList=r,(e,r)=>(z(),V(N(Mx),{"as-child":``,orientation:N(i).orientation.value,dir:N(i).dir.value,loop:N(t)},{default:P(()=>[U(N(N_),{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`]))}}),sC=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}=e_(),r=tC(),i=q(()=>iC(r.baseId,t.value)),a=q(()=>r.contentIds.value.has(t.value)?aC(r.baseId,t.value):void 0),o=q(()=>t.value===r.modelValue.value);return(e,t)=>(z(),V(N(Nx),{"as-child":``,focusable:!e.disabled,active:o.value},{default:P(()=>[U(N(N_),{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`]))}}),[cC,lC]=Qh(`TooltipProvider`),uC=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);e_();let c=M(!0),l=M(!1),{start:u,stop:d}=bg(()=>{c.value=!0},n,{immediate:!1});return lC({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`)}}),dC=`tooltip.open`,[fC,pC]=Qh(`TooltipRoot`),mC=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;e_();let i=cC(),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=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});Er(u,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(dC))):i.onClose())});let d=M(!1),f=M(),p=q(()=>u.value?d.value?`delayed-open`:`instant-open`:`closed`),{start:m,stop:h}=bg(()=>{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 pC({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(u)})]),_:3}))}}),hC=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=fC(),a=cC(),{forwardRef:o,currentElement:s}=e_(),c=q(()=>n.ariaLabel||s.value?.textContent),l=q(()=>{let{ariaLabel:e,...t}=n;return Vg(t,a.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return Gi(()=>{wg(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),wg(window,dC,i.onClose)}),(e,t)=>(z(),V(N(G_),{"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(dx),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(Ov),{id:N(i).contentId,role:`tooltip`},{default:P(()=>[W(j(c.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),gC=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=t_(e),{forwardRef:n,currentElement:r}=e_(),{trigger:i,onClose:a}=fC(),o=cC(),{isPointerInTransit:s,onPointerExit:c}=r_(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),V(hC,K({ref:N(n)},N(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_C=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=fC(),a=n_(n,r),{forwardRef:o}=e_();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[(z(),V(ia(N(i).disableHoverableContent.value?hC:gC),K({ref:N(o)},N(a)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),vC=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),yC=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=fC(),r=cC();n.contentId||=x_(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:a}=e_(),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($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),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(N_),{as:e.as,"as-child":e.asChild,class:A(N(Ch)(N(bC)({variant:e.variant,size:e.size}),t.class))},{default:P(()=>[L(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),bC=Kh(`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`}}),xC=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(Ch)(`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]])}}),SC=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(JS),K(N(n),{class:N(Ch)(`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(VS),{"as-child":``},{default:P(()=>[U(N(Ou),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`class`]))}}),CC=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=n_(n,t);return(t,i)=>(z(),V(N(qS),null,{default:P(()=>[U(N(BS),K(N(r),{class:N(Ch)(`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(XS),{class:A(N(Ch)(`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}))}}),wC={class:`absolute left-2 flex size-3.5 items-center justify-center`},TC=F({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(WS),K(N(n),{class:N(Ch)(`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`,wC,[U(N(GS),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),U(N(KS),null,{default:P(()=>[L(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),EC=F({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(oC),K(t,{class:N(Ch)(`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`]))}}),DC=F({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(sC),K(N(n),{class:N(Ch)(`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`]))}}),OC=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=n_(n,t);return(e,t)=>(z(),V(N(cS),null,{default:P(()=>[U(N(sS),K(N(r),{class:N(Ch)(`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}))}}),kC=F({__name:`Badge`,props:{variant:{},class:{}},setup(e){return(t,n)=>(z(),B(`span`,{class:A(N(Ch)(N(AC)({variant:e.variant}),t.$props.class))},[L(t.$slots,`default`)],2))}}),AC=Kh(`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`}}),jC=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=n_(n,t);return(e,t)=>(z(),V(N($S),K(N(r),{class:N(Ch)(`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(eC),{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`]))}}),MC={class:`flex flex-col gap-3`},NC=[`aria-checked`,`onClick`],PC=[`aria-checked`],FC=[`aria-checked`,`disabled`],IC={key:0,class:`ml-[30px] text-[11px] text-muted-foreground`},LC=[`aria-checked`],RC={class:`border-t pt-2`},zC=[`aria-checked`,`onClick`],BC={class:`border-t pt-2`},VC=[`aria-checked`],HC={class:`border-t pt-2`},UC=[`aria-checked`,`disabled`,`onClick`],WC={class:`truncate`},GC=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`,MC,[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(kp),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(Mp)[t]),1)],8,NC))),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,PC),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,FC),e.scanIndexed?G(``,!0):(z(),B(`p`,IC,`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,LC)]),H(`div`,RC,[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(Ap),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(Np)[t]),1)],8,zC))),128))]),H(`div`,BC,[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,VC)]),H(`div`,HC,[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(Dp),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`,WC,j(N(jp)[t]),1)],8,UC),U(N(jC),{"model-value":i.value.has(t),"aria-label":`Enable ${N(jp)[t]} check`,"onUpdate:modelValue":e=>c(t,e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])]))),128))])]))}}),KC=F({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(yS),{for:t.for,class:A(N(Ch)(`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`]))}}),qC=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=n_(n,t);return(e,t)=>(z(),V(N(wv),null,{default:P(()=>[U(N(Sv),{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(yv),K(N(r),{class:N(Ch)(`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(R_),{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}))}}),JC=F({__name:`DialogHeader`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(Ch)(`flex flex-col gap-1.5 text-center sm:text-left`,e.$props.class))},[L(e.$slots,`default`)],2))}}),YC=F({__name:`DialogFooter`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(Ch)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e.$props.class))},[L(e.$slots,`default`)],2))}}),XC=F({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(Tv),{class:A(N(Ch)(`text-lg font-semibold leading-none tracking-tight`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),ZC=F({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(bv),{class:A(N(Ch)(`text-sm text-muted-foreground`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),QC=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=n_(n,t);return(e,t)=>(z(),V(N(gS),null,{default:P(()=>[U(N(pS),K(N(r),{class:N(Ch)(`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}))}}),$C=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(mS),K(N(n),{class:N(Ch)(`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`]))}}),ew=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(hS),{class:A(N(Ch)(`px-2 py-1.5 text-sm font-semibold`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),tw=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(_S),{class:A(N(Ch)(`-mx-1 my-1 h-px bg-border`,t.class))},null,8,[`class`]))}}),nw={class:`flex flex-wrap items-center gap-2`},rw={class:`grid gap-2`},iw={class:`flex flex-wrap gap-2`},aw=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(()=>Ld(n.keys,n.locales),`Cleared translations for ${n.keys.length} key${n.keys.length===1?``:`s`}`),f=()=>u(()=>Rd(n.keys),`Deleted ${n.keys.length} key${n.keys.length===1?``:`s`}`,!0),p=e=>u(()=>zd(n.keys,n.locales,e),`Marked ${n.keys.length} key${n.keys.length===1?``:`s`} ${e}`),m=e=>u(()=>Bd(n.keys,{skipTranslate:e}),e?`Marked skip-translate`:`Cleared skip-translate`),h=()=>u(()=>Bd(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(()=>Bd(n.keys,{addTags:[e]}),`Added tag "${e}"`).then(()=>l.value=``)},_=e=>u(()=>Bd(n.keys,{removeTags:[e]}),`Removed tag "${e}"`);return(t,n)=>(z(),B(`div`,nw,[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(fS),null,{default:P(()=>[U(N(vS),{"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(QC),{align:`end`,class:`w-52`},{default:P(()=>[U(N(ew),null,{default:P(()=>[W(`Status · `+j(e.scopeLabel),1)]),_:1}),U(N($C),{"data-testid":`bulk-mark-reviewed`,onSelect:n[3]||=e=>p(`reviewed`)},{default:P(()=>[...n[23]||=[W(`Mark reviewed`,-1)]]),_:1}),U(N($C),{"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(tw)),U(N(ew),null,{default:P(()=>[...n[25]||=[W(`Tags · key`,-1)]]),_:1}),U(N($C),{onSelect:n[5]||=e=>s.value=!0},{default:P(()=>[...n[26]||=[W(`Add tag…`,-1)]]),_:1}),U(N($C),{disabled:!e.tagsOnSelection.length,onSelect:n[6]||=e=>c.value=!0},{default:P(()=>[...n[27]||=[W(`Remove tag…`,-1)]]),_:1},8,[`disabled`]),U(N(tw)),U(N(ew),null,{default:P(()=>[...n[28]||=[W(`Context · key`,-1)]]),_:1}),U(N($C),{onSelect:h},{default:P(()=>[...n[29]||=[W(`Clear context`,-1)]]),_:1}),U(N(tw)),U(N(ew),null,{default:P(()=>[...n[30]||=[W(`Translation · key`,-1)]]),_:1}),U(N($C),{onSelect:n[7]||=e=>m(!0)},{default:P(()=>[...n[31]||=[W(`Skip translate`,-1)]]),_:1}),U(N($C),{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(L_),{open:a.value,"onUpdate:open":n[11]||=e=>a.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[34]||=[W(`Clear translations`,-1)]]),_:1}),U(N(ZC),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(YC),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(L_),{open:o.value,"onUpdate:open":n[13]||=e=>o.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[37]||=[W(`Delete keys`,-1)]]),_:1}),U(N(ZC),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(YC),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(L_),{open:s.value,"onUpdate:open":n[16]||=e=>s.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[40]||=[W(`Add tag`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[W(`Add a tag to `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+`.`,1)]),_:1})]),_:1}),H(`div`,rw,[U(N(KC),{for:`bulk-add-tag`},{default:P(()=>[...n[41]||=[W(`Tag`,-1)]]),_:1}),U(N(xC),{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(YC),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(L_),{open:c.value,"onUpdate:open":n[18]||=e=>c.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[44]||=[W(`Remove tag`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...n[45]||=[W(`Remove a tag from the selected keys.`,-1)]]),_:1})]),_:1}),H(`div`,iw,[(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(YC),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 ow(){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 sw=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=n_(n,t);return(e,t)=>(z(),V(N(vC),null,{default:P(()=>[U(N(_C),K(N(r),{class:N(Ch)(`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}))}}),cw=6e4,lw=60*cw,uw=24*lw;function dw(e,t=Date.now()){let n=new Date(e).getTime();if(!Number.isFinite(n))return``;let r=t-n;return r<cw?`just now`:r<lw?`${Math.floor(r/cw)}m ago`:r<uw?`${Math.floor(r/lw)}h ago`:`${Math.floor(r/uw)}d ago`}var fw=M(null),pw=M(!1),mw=M(!1),hw=q(()=>pw.value?`scanning…`:mw.value?`scan failed`:fw.value?`scanned ${dw(fw.value.scannedAt)}`:`not scanned`),gw=q(()=>{if(pw.value)return`Scanning your codebase…`;if(mw.value)return`Last scan failed — try again.`;if(fw.value){let{files:e,refs:t,scannedAt:n}=fw.value;return`Last scan: ${dw(n)} · ${e.toLocaleString()} files · ${t.toLocaleString()} refs`}return`Not scanned yet.`});async function _w(){if(!pw.value)try{let e=await mf();e.indexed&&e.scannedAt&&(fw.value={files:e.files,refs:e.refs,scannedAt:e.scannedAt})}catch{}}async function vw(){if(pw.value)return!1;pw.value=!0,mw.value=!1;try{let e=await pf();return fw.value={files:e.files,refs:e.refs,scannedAt:e.scannedAt},!0}catch{return mw.value=!0,!1}finally{pw.value=!1}}var yw=[`zero`,`one`,`two`,`few`,`many`,`other`];function bw(e){let t;try{t=new Intl.PluralRules(e.replace(/_/g,`-`),{type:`cardinal`}).resolvedOptions().pluralCategories}catch{t=[`other`]}let n=new Set(t);return yw.filter(e=>n.has(e))}function xw(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 bw(t).some(e=>(n[e]??``)===``)}return r?.value?!e.values[t]?.value:!1}function Sw(e,t,n){return t.filter(t=>xw(e,t,n))}function Cw(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 ww=new Intl.DisplayNames([`en`],{type:`language`}),Tw=new Map;function Ew(e){if(!Tw.has(e)){let t;try{t=new Intl.DisplayNames([e],{type:`language`}).of(e)??void 0}catch{t=void 0}Tw.set(e,t)}return Tw.get(e)}function Dw(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 Ow=new Set([`ar`,`he`,`iw`,`fa`,`ur`,`ps`,`sd`,`ug`,`yi`,`dv`,`ckb`,`ks`,`nqo`,`rhg`]);function kw(e){let t=e.split(/[-_]/)[0]?.toLowerCase()??``;return Ow.has(t)}function Aw(e,t){let n=e.replace(/_/g,`-`),r=n,i=!1;try{r=Intl.getCanonicalLocales(n)[0]??n,Dw(r)&&(i=!0)}catch{i=!0}let a=e;t?.name===void 0?i||(a=ww.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:Ew(r),flagRegion:o,isCustom:i,rtl:kw(e)}}var jw=[`aria-label`],Mw=`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]`,Nw=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(Ch)(Mw,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(Ch)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state]),1)],2)):(z(),V(N(fS),{key:1},{default:P(()=>[U(N(vS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(Ch)(Mw,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(Ch)(`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,jw)]),_:1}),U(N(QC),{align:`end`,class:`min-w-[10rem]`},{default:P(()=>[(z(),B(R,null,I(i,e=>U(N($C),{key:e,onSelect:t=>r(`setState`,e)},{default:P(()=>[H(`span`,{class:A(N(Ch)(`size-[7px] shrink-0 rounded-full`,s[e]))},null,2),W(` `+j(a[e])+` `,1),U(N(Du),{class:A(N(Ch)(`ml-auto size-4`,e===n.state?`opacity-100`:`opacity-0`))},null,8,[`class`])]),_:2},1032,[`onSelect`])),64))]),_:1})]),_:1}))}}),Pw=new RegExp([`\\{\\s*[A-Za-z0-9_]+\\s*,\\s*(?:plural|select|selectordinal)\\s*,(?:[^{}]|\\{[^{}]*\\})*\\}`,`\\{\\s*[A-Za-z0-9_.]+\\s*\\}`].join(`|`),`g`);function Fw(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 Iw(e){if(!e)return[];let t=Fw(e),n=e=>t.some(([t,n])=>e>=t&&e<n),r=[],i=0;Pw.lastIndex=0;let a;for(;(a=Pw.exec(e))!==null;){if(a[0].length===0){Pw.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 Lw=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(Ch)(`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]])}}),Rw={class:`min-w-0`},zw={key:0,class:`flex flex-col gap-1`},Bw={class:`whitespace-pre-wrap break-words`},Vw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Hw=F({__name:`ValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{}},emits:[`changed`,`edit-start`],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(()=>Iw(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,r(`edit-start`),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 Vd(n.keyName,{source:e}):await Hd(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`,Rw,[i.value?(z(),B(`div`,zw,[U(N(Lw),{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(Ch)(`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`,Bw,[(z(!0),B(R,null,I(l.value,(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,Vw,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`})]))]))}}),Uw={class:`flex min-w-0 flex-col gap-2`},Ww={class:`min-w-0 flex-1`},Gw={key:0,class:`flex flex-col gap-1`},Kw={class:`font-mono text-[10px] font-semibold uppercase tracking-wide text-primary`},qw=[`onClick`],Jw={class:`whitespace-pre-wrap break-words`},Yw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Xw=[`onClick`],Zw=F({__name:`PluralValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},arg:{},forms:{},sourceForms:{},maxLength:{}},emits:[`changed`,`edit-start`],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))),...bw(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 Iw(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,r(`edit-start`),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 Gd(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`,Uw,[(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(Ch)(`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`,Ww,[o.value===t?(z(),B(`div`,Gw,[H(`span`,Kw,`Plural: `+j(t),1),U(N(Lw),{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(Ch)(`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`,Jw,[(z(!0),B(R,null,I(f(t),(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,Yw,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,qw)):(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,Xw))])]))),128))]))}}),Qw=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`}),$w=new Map;for(let[e,t]of Object.entries(Qw)){let n=e.match(/\/([^/]+)\.svg$/);n&&$w.set(n[1].toLowerCase(),t)}function eT(e){return $w.get(e.toLowerCase())}var tT=[`src`,`alt`,`width`,`height`],nT=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?eT(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,tT)):(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`]))}}),rT={class:`inline-flex min-w-0 items-start gap-2`},iT={class:`flex min-w-0 flex-col leading-tight`},aT={class:`flex items-center gap-1.5`},oT={class:`font-mono text-[11.5px] font-semibold tracking-wide`},sT={key:0,class:`truncate text-[11px] text-muted-foreground`},cT={class:`inline-flex min-w-0 items-center gap-1.5`},lT={key:0,class:`truncate`},uT=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(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,rT,[U(nT,{code:e.code,override:e.override,size:e.size,class:`mt-0.5 shrink-0`},null,8,[`code`,`override`,`size`]),H(`span`,iT,[H(`span`,aT,[H(`span`,oT,j(e.code.toUpperCase()),1),n.value.rtl?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...r[1]||=[W(`Right-to-left`,-1)]]),_:1})]),_:1})):G(``,!0)]),e.showName?(z(),B(`span`,sT,j(n.value.name),1)):G(``,!0)])])]),_:1}),U(N(sw),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1})):(z(),V(N(mC),{key:1},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,cT,[U(nT,{code:e.code,override:e.override,size:e.size},null,8,[`code`,`override`,`size`]),e.showName?(z(),B(`span`,lT,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(sw),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1}))}}),dT=[`data-state`],fT={class:`flex flex-wrap items-start gap-2 pt-0.5`},pT={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`},mT=[`dir`],hT={key:0,"data-testid":`filling-hint`,class:`flex items-center gap-1.5 text-sm italic text-muted-foreground`},gT={key:0,class:`flex items-center justify-end gap-1.5 pt-0.5`},_T={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`},vT={class:`flex flex-col gap-1`},yT={key:0,class:`mt-2 border-t pt-2`},bT={class:`flex flex-wrap gap-1`},xT=[`onClick`],ST=[`disabled`],CT=F({__name:`TranslationRow`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{},issues:{},labelChars:{},plural:{},sourceForms:{},filling:{type:Boolean}},emits:[`changed`,`edit-start`],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(()=>kw(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 Df(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 Wd(n.keyName,n.locale),Q.success(`Cleared`),r(`changed`)}catch(e){Q.error(e.message)}}async function g(e){try{await Ud(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 Jd({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(Ch)(`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`,fT,[U(uT,{code:e.locale,layout:`stacked`,"show-name":``,size:15},null,8,[`code`]),i.value?(z(),B(`span`,pT,`Source`)):G(``,!0)]),H(`div`,{class:`flex min-w-0 flex-col gap-2`,dir:l.value?`rtl`:`ltr`},[e.filling?(z(),B(`div`,hT,[U(N($u),{class:`size-3.5 shrink-0 animate-spin`}),n[4]||=W(` filling… `,-1)])):s.value?(z(),V(Zw,{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`),onEditStart:n[1]||=e=>r(`edit-start`)},null,8,[`key-name`,`locale`,`source-locale`,`arg`,`forms`,`source-forms`,`max-length`])):(z(),V(Hw,{key:2,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,value:o.value,"max-length":e.maxLength,onChanged:n[2]||=e=>r(`changed`),onEditStart:n[3]||=e=>r(`edit-start`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`]))],8,mT),i.value?G(``,!0):(z(),B(`div`,gT,[d.value?(z(),V(N(rS),{key:0},{default:P(()=>[U(N(lS),{"as-child":``},{default:P(()=>[H(`button`,_T,[U(N(Td),{class:`size-3.5`})])]),_:1}),U(N(OC),{align:`end`,class:`w-fit max-w-xs text-xs`},{default:P(()=>[H(`ul`,vT,[(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`,yT,[n[5]||=H(`p`,{class:`mb-1 text-[11px] font-medium text-muted-foreground`},`Add to dictionary`,-1),H(`div`,bT,[(z(!0),B(R,null,I(f.value,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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,xT)]),_:2},1024),U(N(sw),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(mC),{key:1},{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...n[6]||=[W(`Clear translation`,-1)]]),_:1})]),_:1})):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"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,ST)]),_:1}),U(N(sw),null,{default:P(()=>[...n[7]||=[W(`AI translate`,-1)]]),_:1})]),_:1}),U(Nw,{state:a.value,editable:!0,onSetState:g},null,8,[`state`])]))],10,dT))}}),wT=[`aria-pressed`],TT={key:0,class:`pointer-events-none absolute inset-0 z-[3] border-2 border-primary`,"aria-hidden":`true`},ET={key:1,class:`pointer-events-none absolute inset-y-0 left-0 z-[4] w-1 bg-primary`,"aria-hidden":`true`},DT={class:`sticky top-3`},OT=[`aria-checked`],kT={class:`absolute right-0 top-0`},AT=[`disabled`],jT=[`innerHTML`],MT={key:0,class:`mt-1.5 flex flex-wrap items-center gap-1.5 pl-6`},NT={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`},PT={class:`font-medium normal-case text-muted-foreground`},FT={"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`},IT={key:1,class:`mt-2 flex flex-wrap gap-1.5 pl-6`},LT=[`onClick`],RT=[`data-testid`,`disabled`],zT={key:3,"data-testid":`translating-missing`,class:`ml-6 mt-2.5 inline-flex items-center gap-1 text-[11px] text-primary`},BT=[`disabled`],VT={class:`min-w-0 flex-1 [&>*:nth-child(even)]:bg-zebra`},HT={class:`grid gap-2`},UT={class:`break-all rounded bg-muted px-1 py-0.5 font-mono text-sm`},WT=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,`&`).replace(/</g,`<`).replace(/>/g,`>`).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(()=>Sw(n.entry,n.locales,n.sourceLocale)),p=q(()=>Cw(n.entry,n.locales,n.sourceLocale));async function m(){d.value=!0;try{let e=await Jd({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 Jd({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 Bd([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 Vd(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 Id(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(Ch)(`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`,TT)):G(``,!0),e.selected?(z(),B(`span`,ET)):G(``,!0),H(`div`,{class:A(N(Ch)(`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`,DT,[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,OT),H(`div`,kT,[U(N(fS),null,{default:P(()=>[U(N(vS),{"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(QC),{align:`end`},{default:P(()=>[f.value.length>0?(z(),V(N($C),{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($C),{onSelect:y},{default:P(()=>[U(N(ad),{class:`size-4`}),n[10]||=W(` Rename `,-1)]),_:1}),U(N($C),{"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($C),{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[11]||=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,jT),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`,MT,[e.entry.plural?(z(),B(`span`,NT,[n[12]||=W(`PLURAL`,-1),H(`span`,PT,`· `+j(e.entry.plural.arg),1)])):G(``,!0),e.entry.skipTranslate?(z(),V(N(mC),{key:1},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[...n[13]||=[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(sw),null,{default:P(()=>[...n[14]||=[W(`Excluded from translation`,-1)]]),_:1})]),_:1})):G(``,!0),(e.issues?.length??0)>0?(z(),V(N(mC),{key:2},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,FT,[U(N(Td),{class:`size-3`}),W(j(e.issues.length),1)])]),_:1}),U(N(sw),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`,IT,[(z(!0),B(R,null,I(e.entry.tags,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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,LT)]),_:2},1024),U(N(sw),null,{default:P(()=>[W(`Filter by tag: `+j(e),1)]),_:2},1024)]),_:2},1024))),128))])):G(``,!0),f.value.length>0?(z(),V(N(mC),{key:2},{default:P(()=>[U(N(yC),{"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,RT)]),_:1}),U(N(sw),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`,zT,[U(N($u),{class:`size-3 animate-spin`}),n[15]||=W(` Translating… `,-1)])):G(``,!0),p.value.length>0?(z(),V(N(mC),{key:4},{default:P(()=>[U(N(yC),{"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,BT)]),_:1}),U(N(sw),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`,VT,[(z(!0),B(R,null,I(e.locales,t=>(z(),V(CT,{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`),onEditStart:n[4]||=e=>a(`select`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`,`issues`,`plural`,`source-forms`,`filling`]))),128))]),U(N(L_),{open:o.value,"onUpdate:open":n[7]||=e=>o.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[16]||=[W(`Rename key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...n[17]||=[W(`Use dot notation, e.g. `,-1),H(`span`,{class:`font-mono`},`home.title`,-1),W(`.`,-1)]]),_:1})]),_:1}),H(`div`,HT,[U(N(KC),{for:`rename-key`},{default:P(()=>[...n[18]||=[W(`New key`,-1)]]),_:1}),U(N(xC),{id:`rename-key`,modelValue:s.value,"onUpdate:modelValue":n[5]||=e=>s.value=e,class:`font-mono`,onKeydown:Xl(Jl(b,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[6]||=e=>o.value=!1},{default:P(()=>[...n[19]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:l.value,onClick:b},{default:P(()=>[...n[20]||=[W(`Rename`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(L_),{open:c.value,"onUpdate:open":n[9]||=e=>c.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[21]||=[W(`Delete key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[n[22]||=W(` Delete `,-1),H(`code`,UT,j(e.keyName),1),n[23]||=W(` and all its translations? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[8]||=e=>c.value=!1},{default:P(()=>[...n[24]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:l.value,onClick:x},{default:P(()=>[...n[25]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])],10,wT))}}),GT=[{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}`}],KT=`vscode`,qT=e=>GT.some(t=>t.id===e),JT=M(KT);function YT(e){qT(e)&&(JT.value=e,xf({editor:e}).catch(()=>{}))}async function XT(){try{let{editor:e}=await bf();qT(e)&&(JT.value=e)}catch{}}function ZT(e,t){return(GT.find(e=>e.id===JT.value)??GT[0]).buildUrl(e,t)}function QT(){return{dirs:new Map,files:new Map}}function $T(e){let t=QT();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=QT(),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 eE={class:`flex flex-col gap-2`},tE={class:`flex items-center gap-1.5`},nE={key:0,class:`flex flex-col gap-2`},rE={class:`mt-1 flex gap-2`},iE={class:`flex items-center justify-between`},aE={class:`font-mono text-[10px] text-muted-foreground`},oE={class:`flex gap-1.5`},sE=[`onClick`],cE=[`onClick`],lE={class:`whitespace-pre-wrap break-words text-[12.5px] leading-snug`},uE=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 Lf(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 Rf(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 zf(n.keyName,e),r(`changed`)}catch(e){Q.error(`Could not delete note: ${e.message}`)}}return(t,n)=>(z(),B(`div`,eE,[H(`div`,tE,[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`,nE,[(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(Lw),{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`,rE,[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`,iE,[H(`span`,aE,j(i(e.at)),1),H(`span`,oE,[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,sE),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,cE)])]),H(`p`,lE,j(e.text),1)],64))]))),128))])):G(``,!0),U(N(Lw),{"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`])]))}}),dE={class:`flex shrink-0 flex-col overflow-y-auto border-l border-border bg-card max-[1080px]:hidden`},fE={key:0,class:`flex flex-1 flex-col items-center justify-center gap-2.5 p-10 text-center text-muted-foreground`},pE={key:1,class:`flex flex-col gap-4 px-5 pb-10 pt-[18px]`},mE={class:`flex flex-col gap-0.5`},hE=[`innerHTML`],gE={class:`flex flex-wrap items-center gap-2`},_E={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`},vE={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`},yE=[`disabled`],bE=[`disabled`],xE={key:0,class:`flex flex-col gap-1.5`},SE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-destructive`},CE={class:`font-mono text-[11px] font-semibold`},wE={class:`ml-auto rounded border border-destructive px-1.5 py-0.5 text-[10.5px] font-semibold text-destructive`},TE=[`disabled`,`onClick`],EE={key:1,class:`flex flex-col gap-1.5`},DE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},OE={class:`font-mono text-[11px] font-semibold`},kE={class:`flex flex-col gap-1.5`},AE={class:`flex items-center gap-1.5`},jE={key:0,class:`ml-auto text-[11.5px] text-muted-foreground`},ME={key:0,class:`text-[12px] text-muted-foreground`},NE={key:0,class:`rounded-md border border-border-soft bg-accent px-2 py-1.5 text-[12px] text-muted-foreground`},PE={key:1,class:`flex flex-col gap-0.5 text-[11.5px]`},FE={class:`min-w-0 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},IE=[`href`],LE={key:1,class:`min-w-0 shrink truncate font-mono text-foreground`},RE={class:`flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5`},zE=[`href`],BE={key:1,class:`shrink-0 font-mono text-muted-foreground`},VE={key:2,class:`flex flex-col gap-1`},HE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},UE={class:`flex flex-col gap-1`},WE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},GE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},KE={class:`shrink-0 font-mono`},qE={key:3,class:`flex flex-col gap-1`},JE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},YE={class:`flex flex-col gap-1`},XE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},ZE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},QE={class:`shrink-0 font-mono`},$E={class:`flex flex-col gap-1.5`},eD={class:`flex items-center gap-1.5`},tD={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`},nD=[`disabled`],rD={class:`flex flex-col gap-1.5`},iD={class:`flex items-center gap-1.5`},aD={class:`flex flex-col gap-1.5`},oD={class:`flex items-center gap-1.5`},sD={class:`flex flex-col gap-2`},cD={class:`flex items-center gap-1.5`},lD={key:0,class:`flex flex-col gap-2`},uD=[`src`,`alt`],dD={class:`flex gap-2`},fD=[`disabled`],pD={class:`flex flex-col gap-1.5 text-[11.5px] text-muted-foreground`},mD={class:`flex items-center justify-between gap-3`},hD={class:`font-mono text-[11px] text-foreground`},gD={class:`flex items-center justify-between gap-3`},_D={class:`font-mono text-[11px] text-foreground`},vD=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,`&`).replace(/</g,`<`).replace(/>/g,`>`).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(){wh(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 Jf(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=>xw(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 Ff(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 If(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 ff({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 hf(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=>ZT(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:ZT(e,ne.value?.project??``)}))),se=q(()=>$T(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 Kd(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 qd(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 Vd(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 Vd(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`,dE,[!e.keyName||!e.entry?(z(),B(`div`,fE,[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`,pE,[H(`div`,mE,[n[7]||=H(`span`,{class:`text-[10.5px] font-bold uppercase tracking-wide text-muted-foreground`},`Key`,-1),U(N(mC),{"disable-closing-trigger":``},{default:P(()=>[U(N(yC),{"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,hE)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(c.value?`Copied`:`Click to copy`),1)]),_:1})]),_:1})]),H(`div`,gE,[s.value?(z(),B(`span`,_E,`PLURAL`)):(z(),B(`span`,vE,`SINGLE`)),s.value?(z(),B(R,{key:2},[n[8]||=H(`span`,{class:`text-[11.5px] text-muted-foreground`},`arg`,-1),U(N(xC),{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,yE)],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,bE))]),f.value.length||g.value.length?(z(),B(`div`,{key:0,class:A(N(Ch)(`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`,xE,[H(`div`,SE,[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(nT,{code:e.locale,size:14},null,8,[`code`]),H(`span`,CE,j(e.locale.toUpperCase()),1),H(`span`,wE,j(d[e.check]??e.check),1),p[e.check]?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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,TE)]),_:2},1024),U(N(sw),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`,EE,[H(`div`,DE,[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(nT,{code:e,size:14},null,8,[`code`]),H(`span`,OE,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`,kE,[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`,jE,j(ne.value.count)+` reference`+j(ne.value.count===1?``:`s`),1)):G(``,!0)]),!ne.value||!ne.value.indexed?(z(),B(`p`,ME,` 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`,NE,` Not referenced in the last scan — this key may be unused. `)):G(``,!0),ae.value.length?(z(),B(`div`,PE,[(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(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,FE,j(e.label),1)]),_:2},1024),U(N(sw),{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(mC),null,{default:P(()=>[U(N(yC),{"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,IE)):(z(),B(`span`,LE,j(e.name),1))]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(ce(e.refs)?`Open ${e.name}`:e.name),1)]),_:2},1024)]),_:2},1024),H(`span`,RE,[(z(!0),B(R,null,I(e.refs,(t,n)=>(z(),B(R,{key:n},[t.url?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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,zE)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(`Open `+j(e.name)+`:`+j(t.line),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,BE,`:`+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`,VE,[H(`p`,HE,[U(N(xu),{class:`size-3`}),n[13]||=W(` Possible usage (dynamic keys) `,-1)]),H(`ul`,UE,[(z(!0),B(R,null,I(oe.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(mC),null,{default:P(()=>[U(N(yC),{"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`,WE,j(e.file),1),H(`span`,GE,j(e.prefix)+`*`,1),H(`span`,KE,`:`+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(sw),{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`,qE,[H(`p`,JE,[U(N(xu),{class:`size-3`}),n[14]||=W(` Possible usage (string literals) `,-1)]),H(`ul`,YE,[(z(!0),B(R,null,I(k.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(mC),null,{default:P(()=>[U(N(yC),{"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`,XE,j(e.file),1),H(`span`,ZE,`'`+j(e.literal)+`'`,1),H(`span`,QE,`:`+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(sw),{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`,$E,[H(`div`,eD,[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(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,tD,[U(N(vd),{class:`size-2.5`}),n[15]||=W(` AI `,-1)])]),_:1}),U(N(sw),null,{default:P(()=>[W(j(e.entry.contextAt?`AI-generated ${i(e.entry.contextAt)}`:`AI-generated`),1)]),_:1})]),_:1})):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"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,nD)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(T.value?`Suggesting…`:`Suggest context with AI`),1)]),_:1})]),_:1})]),U(N(Lw),{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`,rD,[H(`div`,iD,[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(xC),{id:`detail-tags`,modelValue:C.tags,"onUpdate:modelValue":n[3]||=e=>C.tags=e,placeholder:`comma, separated`},null,8,[`modelValue`])]),H(`div`,aD,[H(`div`,oD,[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(xC),{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(uE,{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`,sD,[H(`div`,cD,[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`,lD,[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,uD),H(`div`,dD,[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,fD))]),n[27]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,pD,[H(`div`,mD,[n[23]||=H(`span`,null,`Created`,-1),H(`span`,hD,j(i(e.entry.createdAt)),1)]),H(`div`,gD,[n[24]||=H(`span`,null,`Last updated`,-1),H(`span`,_D,j(i(o.value)),1)])])]))]))}}),yD={class:`grid gap-3`},bD={class:`grid gap-1.5`},xD={class:`grid gap-1.5`},SD={class:`flex items-center justify-between gap-2 rounded-md border p-2.5`},CD={class:`flex flex-col`},wD={key:0,class:`grid gap-1.5`},TD={key:1,class:`text-sm text-destructive`},ED=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 Fd(e,a.value,{arg:l.value.trim()||`count`}):await Fd(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(L_),{open:n.value,"onUpdate:open":t[5]||=e=>n.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[6]||=[W(`Add key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...t[7]||=[W(`Create a new translation key using dot notation.`,-1)]]),_:1})]),_:1}),H(`div`,yD,[H(`div`,bD,[U(N(KC),{for:`add-key`},{default:P(()=>[...t[8]||=[W(`Key `,-1),H(`span`,{class:`text-destructive`},`*`,-1)]]),_:1}),U(N(xC),{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`,xD,[U(N(KC),{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(xC),{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`,SD,[H(`div`,CD,[U(N(KC),{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(jC),{id:`add-plural`,modelValue:c.value,"onUpdate:modelValue":t[2]||=e=>c.value=e},null,8,[`modelValue`])]),c.value?(z(),B(`div`,wD,[U(N(KC),{for:`add-plural-arg`},{default:P(()=>[...t[12]||=[W(`Count argument`,-1)]]),_:1}),U(N(xC),{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`,TD,j(o.value),1)):G(``,!0)]),U(N(YC),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`]))}}),DD={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`},OD={key:1,class:`text-sm text-destructive`},kD={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`},jD={class:`flex items-center gap-1.5 font-medium`},MD={class:`list-inside list-disc pl-1`},ND={class:`grid min-h-0 flex-1 grid-cols-[16rem_1fr] gap-3 overflow-hidden`},PD={class:`min-h-0 overflow-y-auto rounded-md border`},FD=[`onClick`],ID={key:0,class:`px-3 py-2 text-xs text-muted-foreground`},LD={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]`},RD={key:1,class:`flex min-h-0 items-center justify-center rounded-md border text-sm text-muted-foreground`},zD=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 Vf();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 Hf();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(L_),{open:t.value,"onUpdate:open":d[1]||=e=>t.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] w-full max-w-5xl flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...d[2]||=[W(`Export preview`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...d[3]||=[W(`Review the files that will be written to disk.`,-1)]]),_:1})]),_:1}),r.value?(z(),B(`p`,DD,[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`,OD,j(o.value),1)):G(``,!0),i.value?(z(),B(`div`,kD,` Generating preview… `)):o.value?G(``,!0):(z(),B(R,{key:3},[c.value.length?(z(),B(`div`,AD,[H(`p`,jD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` warning`+j(c.value.length===1?``:`s`),1)]),H(`ul`,MD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:t},j(e),1))),128))])])):G(``,!0),H(`div`,ND,[H(`ul`,PD,[(z(!0),B(R,null,I(s.value,e=>(z(),B(`li`,{key:e.path},[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(Ch)(`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,FD)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(e.path),1)]),_:2},1024)]),_:2},1024)]))),128)),s.value.length===0?(z(),B(`li`,ID,` No files to write. `)):G(``,!0)]),u.value?(z(),B(`pre`,LD,j(u.value.contents),1)):(z(),B(`div`,RD,` Select a file to preview its contents. `))])],64)),U(N(YC),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`]))}}),BD={class:`relative h-2 w-full overflow-hidden rounded-full bg-muted`},VD={key:0,class:`gf-progress-indeterminate absolute inset-y-0 w-1/3 rounded-full bg-primary`},HD=Oh(F({__name:`Progress`,props:{modelValue:{},indeterminate:{type:Boolean}},setup(e){return(t,n)=>(z(),B(`div`,BD,[e.indeterminate?(z(),B(`div`,VD)):(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`]]),UD={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},WD={class:`font-medium text-foreground`},GD={key:0,class:`mt-0.5`},KD={key:1,class:`mt-1`},qD={class:`mt-1`},JD={key:1,class:`flex min-h-0 flex-col gap-1.5`},YD={class:`flex justify-between text-xs text-muted-foreground`},XD={key:0},ZD={key:0,class:`mt-1 flex max-h-56 min-h-0 flex-col overflow-y-auto rounded-md border text-sm`},QD={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},$D={class:`flex items-center gap-1.5 font-medium`},eO={key:3,class:`flex min-h-0 flex-col gap-1.5`},tO={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},nO={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},rO={class:`inline-flex items-center gap-1.5 font-mono text-xs`},iO={class:`text-muted-foreground`},aO=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)xw(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 Xd();x.value=e.supported&&!e.pending}catch{}}async function w(){S.value=!0;try{let e=await Zd({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 Yd({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 df(...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(L_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Translate missing strings`,-1)]]),_:1}),U(N(ZC),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`,UD,[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`,WD,`≈ `+j(D(T.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),T.value.pricing?G(``,!0):(z(),B(`p`,GD,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `)),T.value.perLocale.length>1?(z(),B(`details`,KD,[t[5]||=H(`summary`,{class:`cursor-pointer select-none`},`Per-language breakdown`,-1),H(`ul`,qD,[(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`,JD,[H(`div`,YD,[H(`span`,null,j(c.value.toLocaleString())+` / `+j(l.value.toLocaleString())+` translated`,1),a.value&&d.value.length?(z(),B(`span`,XD,j(p.value)+` of `+j(d.value.length)+` language`+j(d.value.length===1?``:`s`)+` active`,1)):G(``,!0)]),U(N(HD),{"model-value":l.value>0?c.value/l.value*100:0},null,8,[`model-value`]),d.value.length?(z(),B(`ul`,ZD,[(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(uT,{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`,QD,[H(`p`,$D,[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`,eO,[H(`p`,tO,[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`,nO,[(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`,rO,[W(j(e.key)+` @ `,1),U(uT,{code:e.locale,size:12},null,8,[`code`])]),H(`span`,iO,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(YC),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`]))}}),oO={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},sO={class:`font-medium text-foreground`},cO={key:0,class:`mt-0.5`},lO={key:1,class:`flex flex-col gap-1.5`},uO={class:`flex justify-between text-xs text-muted-foreground`},dO={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},fO={class:`flex items-center gap-1.5 font-medium`},pO={key:3,class:`flex min-h-0 flex-col gap-1.5`},mO={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},hO={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},gO={class:`font-mono text-xs`},_O={class:`text-muted-foreground`},vO=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(null),p=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),m=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,h=q(()=>{let e=f.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${m(e/2)} (50% off)`});async function g(){f.value=null;try{f.value=await ef({keys:n.keys})}catch{}}let _=M(!1),v=M(!1);async function y(){_.value=!1;try{let e=await tf();_.value=e.supported&&!e.pending}catch{}}async function b(){v.value=!0;try{let e=await nf({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{v.value=!1}}Er(r,e=>{e?(s.value=``,c.value=[],l.value=0,u.value=0,g(),y()):o.value?.abort()});function x(){o.value?.abort()}async function S(){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 ff({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(L_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Build context`,-1)]]),_:1}),U(N(ZC),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}),f.value&&f.value.keys>0&&d.value>0&&!a.value&&l.value===0?(z(),B(`div`,oO,[H(`p`,null,[W(` ≈ `+j(f.value.keys.toLocaleString())+` key`+j(f.value.keys===1?``:`s`)+` · `+j(f.value.batches.toLocaleString())+` batch`+j(f.value.batches===1?``:`es`)+` · ~`+j(p(f.value.inputTokens))+` in / ~`+j(p(f.value.outputTokens))+` out tokens`,1),f.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[3]||=W(` · `,-1),H(`span`,sO,`≈ `+j(m(f.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),f.value.pricing?G(``,!0):(z(),B(`p`,cO,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `))])):G(``,!0),a.value||l.value>0?(z(),B(`div`,lO,[H(`div`,uO,[H(`span`,null,j(l.value.toLocaleString())+` / `+j(u.value.toLocaleString())+` built`,1)]),U(N(HD),{"model-value":u.value>0?l.value/u.value*100:0},null,8,[`model-value`])])):G(``,!0),s.value?(z(),B(`div`,dO,[H(`p`,fO,[U(N(Td),{class:`size-4`}),t[5]||=W(` Build failed `,-1)]),H(`p`,null,j(s.value),1)])):G(``,!0),c.value.length?(z(),B(`div`,pO,[H(`p`,mO,[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`,hO,[(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`,gO,j(e.key),1),H(`span`,_O,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(YC),null,{default:P(()=>[a.value?(z(),V(N($),{key:0,variant:`outline`,onClick:x},{default:P(()=>[...t[6]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>r.value=!1},{default:P(()=>[...t[7]||=[W(`Close`,-1)]]),_:1})),d.value>0&&_.value?(z(),V(N($),{key:2,variant:`outline`,disabled:a.value||v.value,onClick:b},{default:P(()=>[W(j(v.value?`Submitting…`:h.value),1)]),_:1},8,[`disabled`])):G(``,!0),d.value>0?(z(),V(N($),{key:3,disabled:a.value||v.value,onClick:S},{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`]))}}),yO={key:0,class:`flex items-center gap-3 rounded-md border bg-muted/40 px-3 py-2 text-sm`},bO={class:`flex min-w-0 flex-1 flex-col gap-1`},xO={class:`truncate`},SO=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{let e;e=r.kind===`context`?await tf():r.kind===`glossary-suggest`?await sf():await Xd(),a.value=e.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 rf(),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 if(r.kind===`glossary-suggest`){let e=await lf(),t=[e.retried?`${e.retried} retried`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Glossary batch applied — ${e.added} new term(s)${t?` (${t})`:``}`)}else{let e=await Qd(),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{r.kind===`context`?await af():r.kind===`glossary-suggest`?await uf():await $d(),await c()}catch(e){Q.error(e.message)}}return(e,t)=>a.value?(z(),B(`div`,yO,[(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`,bO,[H(`span`,xO,[r.kind===`context`?(z(),B(R,{key:0},[W(`Batch context build (`+j(a.value.total.toLocaleString())+` keys)`,1)],64)):r.kind===`glossary-suggest`?(z(),B(R,{key:1},[W(`Batch glossary scan (`+j(a.value.total.toLocaleString())+` sources)`,1)],64)):(z(),B(R,{key:2},[W(`Batch translation (`+j(a.value.total.toLocaleString())+` strings)`,1)],64)),l.value?(z(),B(R,{key:3},[W(` — finished, ready to apply`)],64)):(z(),B(R,{key:4},[W(` — processing…`)],64))]),l.value?G(``,!0):(z(),V(N(HD),{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)}}),CO={key:1,class:`text-muted-foreground`},wO={class:`flex items-center gap-2 border-b px-3`},TO={class:`absolute left-2 flex size-3.5 items-center justify-center`},EO={class:`flex w-full min-w-0 items-center justify-between gap-2`},DO={class:`shrink-0 font-mono text-xs text-muted-foreground`},OO=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(mx),{modelValue:n.value,"onUpdate:modelValue":c[1]||=e=>n.value=e,open:r.value,"ignore-filter":``,"onUpdate:open":s},{default:P(()=>[U(N(hx),{"as-child":``},{default:P(()=>[U(N(Dx),{class:A(N(Ch)(`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(uT,{key:0,code:n.value,"show-name":``,"show-code":!1,size:14},null,8,[`code`])):(z(),B(`span`,CO,j(e.placeholder??`Locale`),1)),U(N(Ou),{class:`size-4 shrink-0 opacity-50`})]),_:1},8,[`class`])]),_:1}),U(N(Ex),null,{default:P(()=>[U(N(yx),{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`,wO,[U(N(pd),{class:`size-4 shrink-0 opacity-50`}),U(N(Cx),{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(kx),{class:`max-h-72 p-1`},{default:P(()=>[U(N(bx),{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(wx),{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`,TO,[U(N(Tx),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),H(`span`,EO,[U(uT,{code:e,"show-name":``,"show-code":!1,size:14},null,8,[`code`]),H(`span`,DO,j(e.toUpperCase()),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`open`]))}}),kO={class:`relative w-0 shrink-0`},AO=[`aria-valuenow`,`aria-valuemin`,`aria-valuemax`],jO=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`,kO,[H(`div`,{class:A(N(Ch)(`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,AO)]))}});function MO(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)),yf({[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 NO=MO(`keyColumnWidth`,272,180,560),PO=MO(`detailPanelWidth`,420,320,720);async function FO(e){try{let t=e??await vf();NO.syncValue(t.keyColumnWidth),PO.syncValue(t.detailPanelWidth)}catch{}}var IO={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`},RO={class:`relative`},zO={key:0,class:`rounded bg-primary px-1.5 text-xs text-primary-foreground`},BO=[`aria-label`],VO={class:`ml-auto flex items-center gap-2`},HO={class:`mr-1 text-xs text-muted-foreground tabular-nums`},UO={key:0,class:`flex shrink-0 flex-wrap items-center gap-1.5 border-b px-4 py-1.5`},WO=[`aria-label`,`onClick`],GO=[`aria-label`,`onClick`],KO=[`aria-label`,`onClick`],qO={class:`flex flex-col gap-2 px-4 py-2 empty:hidden`},JO={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`},YO=[`aria-checked`,`aria-label`],XO={class:`text-sm font-medium tabular-nums`},ZO={class:`text-sm text-muted-foreground`},QO={key:1,for:`select-all-checkbox`,class:`cursor-pointer select-none text-sm text-muted-foreground`},$O={class:`relative min-w-0 flex-1 overflow-hidden`},ek={key:0,class:`flex h-full items-center justify-center gap-2 p-8 text-sm text-muted-foreground`},tk={key:1,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},nk=[`data-index`],rk=`glotfile:enabledChecks`,ik=F({__name:`EditorView`,setup(e){let t=NO.width,n=PO.width,r=un(null),{filter:i,sort:a,view:o,locale:s}=Rp(qp()),c=M(i),l=ow();function u(){try{let e=localStorage.getItem(rk);if(e){let t=JSON.parse(e);return Dp.filter(e=>t.includes(e))}}catch{}return[...Op]}let d=M(u()),f=M(new Map),p=M(null),m=M(!1),h=M(0);async function g(){try{let e=await gf();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 Kf(d.value);f.value=Pp(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(rk,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})],()=>{Jp(zp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},{deep:!0}),Er(()=>c.value.text,()=>{C&&clearTimeout(C),C=setTimeout(()=>{Jp(zp({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(Bh.value){let e=Bh.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=Dp.filter(e=>t.has(e))}e.locale&&(x.value=`bilingual`,S.value=e.locale),Bh.value=null}let te=M(null),ne=M(null),O=M(null);Hh.value&&=(te.value=Hh.value,null);let re=M(!1),ie=M(!1),ae=M(!1),oe=M(!1);Er(fw,()=>void g());let k=M(null),se=M(!0),ce=M(!1);async function le(){r.value=await jd(),y()}zh(le);let ue=setTimeout(()=>{se.value&&(ce.value=!0)},250);le().finally(()=>{se.value=!1,ce.value=!1,clearTimeout(ue)});let de=q(()=>r.value?.config.sourceLocale??``),fe=q(()=>r.value?.config.locales??[]),pe=q(()=>fe.value.filter(e=>e!==de.value));Er(pe,e=>{!S.value&&e.length>0&&(S.value=e[0])},{immediate:!0});let he=q(()=>{if(x.value===`bilingual`)return S.value?[de.value,S.value]:[de.value];let e=fe.value.filter(e=>e!==de.value);return[de.value,...e]}),ge=q(()=>{let e=r.value;if(!e)return[];let t=x.value===`bilingual`&&S.value?S.value:void 0;return Ep(e,{...c.value,locale:t},f.value,p.value??void 0)}),_e=q(()=>{let e=r.value,t=ge.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}),ve=q(()=>x.value===`bilingual`?S.value?[S.value]:[]:pe.value),ye=q(()=>x.value===`bilingual`?S.value||`—`:`all ${pe.value.length} targets`),be=q(()=>l.keys()),xe=q(()=>l.count.value),Se=q(()=>l.allSelected(_e.value)),Ce=q(()=>l.someSelected(_e.value)),we=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 Te(){l.allSelected(_e.value)?l.clear():l.selectAll(_e.value)}function Ee(e,t){t?l.toggleRange(e,_e.value):l.toggle(e)}Er(_e,e=>l.pruneTo(e));let De=q(()=>r.value&&te.value?r.value.keys[te.value]??null:null),Oe=Sp(q(()=>({count:_e.value.length,getScrollElement:()=>k.value,estimateSize:()=>Math.max(56,he.value.length*64),overscan:2,getItemKey:e=>_e.value[e]??e}))),ke=q(()=>Oe.value.getVirtualItems()),Ae=q(()=>Oe.value.getTotalSize());function je(e){te.value=e}let Me=M(null);function Ne(){let e=Me.value?.$el;e?.focus?.(),e?.select?.()}function Pe(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(),Ne();return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||n||r)return;let i=_e.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,Oe.value.scrollToIndex(o,{align:`auto`}))}Gi(()=>window.addEventListener(`keydown`,Pe)),Yi(()=>{window.removeEventListener(`keydown`,Pe),C&&clearTimeout(C)}),Gi(()=>void g());async function Fe(e,t){te.value===e&&(te.value=t),await le()}async function Ie(e){await le(),te.value=e,c.value.text=`"${e}"`}return(e,i)=>(z(),V(N(uC),{"delay-duration":400},{default:P(()=>[H(`div`,IO,[H(`div`,LO,[H(`div`,RO,[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(xC),{ref_key:`searchInput`,ref:Me,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(rS),null,{default:P(()=>[U(N(lS),{"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`,zO,j(w.value),1)):G(``,!0)]),_:1})]),_:1}),U(N(OC),{align:`start`,class:`w-64`},{default:P(()=>[U(GC,{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,BO)):G(``,!0)]),_:1},8,[`variant`,`aria-checked`]),U(N(OS),{modelValue:b.value,"onUpdate:modelValue":i[12]||=e=>b.value=e},{default:P(()=>[U(N(SC),{class:`h-8 w-[160px]`},{default:P(()=>[U(N(YS),{placeholder:`Sort`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`key-asc`},{default:P(()=>[...i[33]||=[W(`Key A→Z`,-1)]]),_:1}),U(N(TC),{value:`key-desc`},{default:P(()=>[...i[34]||=[W(`Key Z→A`,-1)]]),_:1}),U(N(TC),{value:`created`},{default:P(()=>[...i[35]||=[W(`Recently created`,-1)]]),_:1}),U(N(TC),{value:`updated`},{default:P(()=>[...i[36]||=[W(`Recently updated`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),U(N(rC),{modelValue:x.value,"onUpdate:modelValue":i[13]||=e=>x.value=e},{default:P(()=>[U(N(EC),{class:`h-8`},{default:P(()=>[U(N(DC),{value:`bilingual`,class:`text-xs`},{default:P(()=>[...i[37]||=[W(`Bilingual`,-1)]]),_:1}),U(N(DC),{value:`multilingual`,class:`text-xs`},{default:P(()=>[...i[38]||=[W(`Multilingual`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),x.value===`bilingual`?(z(),V(OO,{key:0,modelValue:S.value,"onUpdate:modelValue":i[14]||=e=>S.value=e,locales:pe.value,class:`h-8 w-[170px]`},null,8,[`modelValue`,`locales`])):G(``,!0),H(`div`,VO,[H(`span`,HO,j(_e.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:N(pw),onClick:N(vw)},{default:P(()=>[N(pw)?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),W(` `+j(N(pw)?`Scanning…`:`Run scan`),1)]),_:1},8,[`disabled`,`onClick`]),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`,UO,[(z(!0),B(R,null,I(c.value.states,e=>(z(),V(N(kC),{key:`s-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(Mp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(Mp)[e]} filter`,onClick:t=>E(e)},[U(N(kd),{class:`size-3`})],8,WO)]),_:2},1024))),128)),(z(!0),B(R,null,I(c.value.plurality,e=>(z(),V(N(kC),{key:`p-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(Np)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(Np)[e]} filter`,onClick:t=>ee(e)},[U(N(kd),{class:`size-3`})],8,GO)]),_:2},1024))),128)),c.value.emptySource?(z(),V(N(kC),{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(kC),{key:`i-${e}`,variant:`outline`,class:`gap-1`},{default:P(()=>[W(j(N(jp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(jp)[e]} filter`,onClick:t=>D(e)},[U(N(kd),{class:`size-3`})],8,KO)]),_:2},1024))),128)),c.value.aiContextUnreviewed?(z(),V(N(kC),{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(kC),{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(kC),{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`,qO,[U(SO,{ref_key:`translateBanner`,ref:ne,onChanged:le},null,512),U(SO,{ref_key:`contextBanner`,ref:O,kind:`context`,onChanged:le},null,512)]),_e.value.length?(z(),B(`div`,JO,[H(`button`,{id:`select-all-checkbox`,type:`button`,role:`checkbox`,"aria-checked":Se.value?`true`:Ce.value?`mixed`:`false`,"data-testid":`select-all`,class:A([`flex size-4 items-center justify-center rounded border transition-colors`,Se.value||Ce.value?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":Se.value?`Deselect all`:`Select all`,onClick:Te},[Se.value?(z(),V(N(Du),{key:0,class:`size-3`})):Ce.value?(z(),V(N(td),{key:1,class:`size-3`})):G(``,!0)],10,YO),xe.value?(z(),B(R,{key:0},[H(`span`,XO,j(xe.value.toLocaleString())+` selected`,1),H(`span`,ZO,`· `+j(ye.value),1)],64)):(z(),B(`label`,QO,`Select all`)),xe.value?(z(),V(aw,{key:2,class:`ml-auto`,keys:be.value,locales:ve.value,"scope-label":ye.value,"tags-on-selection":we.value,onChanged:le,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`,$O,[H(`div`,{ref_key:`parent`,ref:k,class:`h-full overflow-auto`},[ce.value?(z(),B(`div`,ek,[U(N($u),{class:`size-4 animate-spin`}),i[45]||=W(` Loading… `,-1)])):!se.value&&_e.value.length===0?(z(),B(`div`,tk,` No keys match the current filter. `)):(z(),B(`div`,{key:2,style:me({height:`${Ae.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(ke.value,e=>(z(),B(`div`,{key:e.key,ref_for:!0,ref:e=>N(Oe).measureElement(e),"data-index":e.index,style:me({position:`absolute`,top:`${e.start}px`,left:`0`,width:`100%`})},[r.value&&_e.value[e.index]?(z(),V(WT,{key:0,"key-name":_e.value[e.index],entry:r.value.keys[_e.value[e.index]],"source-locale":de.value,locales:he.value,selected:te.value===_e.value[e.index],issues:f.value.get(_e.value[e.index])??[],checked:N(l).has(_e.value[e.index]),onSelect:t=>je(_e.value[e.index]),onChanged:le,onRenamed:t=>Fe(_e.value[e.index],t),onFilterTag:i[24]||=e=>c.value.text=e,onToggleSelect:t=>Ee(_e.value[e.index],t.shift)},null,8,[`key-name`,`entry`,`source-locale`,`locales`,`selected`,`issues`,`checked`,`onSelect`,`onRenamed`,`onToggleSelect`])):G(``,!0)],12,nk))),128))],4))],512),_e.value.length?(z(),B(`div`,{key:0,class:`absolute inset-y-0`,style:me({left:`${N(t)}px`})},[U(jO,{side:`right`,class:`h-full`,width:N(t),min:N(NO).min,max:N(NO).max,"onUpdate:width":N(NO).set,onCommit:N(NO).commit,onReset:N(NO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`])],4)):G(``,!0)]),U(jO,{side:`left`,class:`max-[1080px]:hidden`,width:N(n),min:N(PO).min,max:N(PO).max,"onUpdate:width":N(PO).set,onCommit:N(PO).commit,onReset:N(PO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`]),U(vD,{"key-name":te.value,entry:De.value,issues:te.value?f.value.get(te.value)??[]:[],locales:fe.value,"source-locale":de.value,"usage-revision":h.value,style:me({width:`${N(n)}px`}),onChanged:le},null,8,[`key-name`,`entry`,`issues`,`locales`,`source-locale`,`usage-revision`,`style`])],4),U(ED,{open:re.value,"onUpdate:open":i[25]||=e=>re.value=e,onCreated:Ie},null,8,[`open`]),U(zD,{open:ie.value,"onUpdate:open":i[26]||=e=>ie.value=e,"export-locales":r.value?.config.exportLocales??[]},null,8,[`open`,`export-locales`]),U(aO,{open:ae.value,"onUpdate:open":i[27]||=e=>ae.value=e,state:r.value,"filtered-keys":be.value,"target-locale":x.value===`bilingual`?S.value:void 0,onChanged:le,onBatchSubmitted:i[28]||=e=>ne.value?.refresh()},null,8,[`open`,`state`,`filtered-keys`,`target-locale`]),U(vO,{open:oe.value,"onUpdate:open":i[29]||=e=>oe.value=e,state:r.value,keys:be.value,onChanged:le,onBatchSubmitted:i[30]||=e=>O.value?.refresh()},null,8,[`open`,`state`,`keys`])])]),_:1}))}}),ak={"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`},ok={"empty-translation":`untranslated`,"placeholder-mismatch":`placeholder`,"glossary-violation":`glossary`,"max-length":`length`,spelling:`spelling`};function sk(e){if(e.ruleId===`empty-translation`)return{text:e.key,states:[`missing`]};if(e.ruleId===`output-stale`)return{};let t=ok[e.ruleId],n=e.locale?{locale:e.locale}:{};return t?{...n,issues:[t]}:{...n,text:e.key}}function ck(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()!==``:(n.value??``).trim()!==``:!1}function lk(e,t){if(!ck(e,t))return`missing`;let n=e.values[t].state;return n===`reviewed`?`reviewed`:n===`needs-review`?`needsReview`:`machine`}function uk(e,t){let n=e.values[t];return n?e.plural?n.forms?.other??``:n.value??``:``}function dk(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function fk(e,t){return`${e} ${t}${e===1?``:`s`}`}function pk(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=lk(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(fk(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+dk(uk(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:mk(l,m)}}function mk(e,t){let n=[];for(let e of t.breaking)n.push({id:`b:${e.locale}:${e.key}:${e.ruleId}`,priority:`breaking`,title:`Fix ${ak[e.ruleId].toLowerCase()}`,where:e.locale?`${e.locale.toUpperCase()} · ${e.key}`:e.key,detail:e.message,filter:e.ruleId===`output-stale`?void 0:sk(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 ${fk(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 ${fk(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 ${fk(t.length,`${ak[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:sk(t[0]),count:t.length});return n}var hk={class:`min-h-0 flex-1 overflow-y-auto p-6`},gk={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},_k={key:1,class:`mt-8 text-center text-sm text-muted-foreground`},vk={key:2,class:`mx-auto flex max-w-[1080px] flex-col gap-4`},yk={class:`flex flex-wrap divide-x rounded-xl border bg-card px-2 py-3 shadow-sm`},bk={class:`flex flex-col px-5`},xk={class:`text-lg font-semibold tabular-nums`},Sk={class:`flex flex-col px-5`},Ck={class:`text-lg font-semibold tabular-nums`},wk={class:`flex flex-col px-5`},Tk={class:`text-lg font-semibold tabular-nums`},Ek={class:`flex flex-col px-5`},Dk={class:`text-lg font-semibold tabular-nums`},Ok=[`disabled`],kk={class:`flex flex-col px-5`},Ak={class:`text-lg font-semibold tabular-nums`},jk={class:`flex flex-wrap items-start justify-between gap-6`},Mk={class:`min-w-0`},Nk={class:`mt-1.5 flex items-center gap-2.5 text-2xl font-semibold tracking-tight`},Pk={class:`mt-1.5 text-sm text-muted-foreground`},Fk={class:`text-emerald-600 dark:text-emerald-400`},Ik={class:`text-amber-600 dark:text-amber-400`},Lk={class:`text-red-600 dark:text-red-400`},Rk={key:0,class:`mt-2 flex flex-col gap-1`},zk={class:`font-semibold`},Bk={class:`font-mono text-muted-foreground`},Vk={class:`text-muted-foreground`},Hk={class:`flex gap-2`},Uk={class:`text-[11px] uppercase tracking-wide text-muted-foreground`},Wk={class:`mt-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-t pt-3.5`},Gk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Kk={class:`flex items-center gap-1 text-xs text-muted-foreground`},qk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Jk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Yk={class:`rounded-2xl border bg-card p-5 shadow-sm`},Xk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Zk={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(218px,1fr))] gap-3`},Qk=[`data-test`,`onClick`],$k={class:`flex items-start justify-between gap-2`},eA={class:`flex min-w-0 flex-col`},tA={class:`truncate font-mono text-xs font-semibold uppercase`},nA=[`title`],rA={class:`text-2xl font-semibold tabular-nums leading-none`},iA={class:`flex h-[7px] w-full overflow-hidden rounded-full bg-muted`},aA={class:`flex min-h-[20px] items-center gap-1.5 text-xs text-muted-foreground`},oA={class:`truncate`},sA={class:`rounded-2xl border bg-card p-5 shadow-sm`},cA={class:`mb-4`},lA={class:`mt-0.5 text-sm text-muted-foreground`},uA={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},dA={key:1,class:`flex flex-col gap-2`},fA=[`disabled`,`onClick`],pA={class:`flex min-w-0 flex-col gap-0.5`},mA={class:`flex items-center gap-2 text-sm font-semibold`},hA={class:`truncate font-mono text-xs text-muted-foreground`},gA={key:0,class:`grid grid-cols-1 gap-4 lg:grid-cols-2`},_A={class:`rounded-2xl border bg-card p-5 shadow-sm`},vA={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},yA={key:1,class:`flex flex-col gap-2.5`},bA=[`disabled`,`onClick`],xA={class:`flex flex-1 flex-col`},SA={class:`text-sm font-semibold`},CA={class:`text-xs text-muted-foreground`},wA={key:0,class:`border-t`},TA={class:`flex items-center justify-between gap-2 border-b bg-muted/40 px-3.5 py-1.5`},EA={class:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`},DA=[`disabled`,`title`,`onClick`],OA=[`onClick`,`onKeydown`],kA=[`title`],AA={class:`truncate font-medium`},jA={class:`font-mono text-muted-foreground`},MA={class:`truncate text-muted-foreground`},NA={class:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`},PA=[`disabled`,`title`,`onClick`],FA=[`disabled`,`onClick`],IA={key:2,class:`mt-3 overflow-hidden rounded-xl border`},LA={key:0,class:`border-t`},RA={class:`font-mono font-semibold uppercase`},zA={class:`truncate`},BA={class:`font-mono`},VA={class:`truncate`},HA=[`disabled`,`onClick`],UA={class:`rounded-2xl border bg-card p-5 shadow-sm`},WA=[`onClick`],GA={class:`flex min-w-0 items-center gap-2`},KA={class:`flex min-w-0 flex-col`},qA={class:`whitespace-nowrap font-mono uppercase leading-tight`},JA=[`title`],YA={class:`text-center font-mono tabular-nums`},XA={key:1,class:`rounded-2xl border bg-card p-5 shadow-sm`},ZA={class:`flex items-center gap-3 rounded-xl bg-muted p-4`},QA=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?pk(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(),qf({includeSuppressed:!0}).catch(()=>null)]);t.value=e,r&&(n.value=r)}zh(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`,()=>Jf(e.key,e.ruleId,e.locale)),h=e=>p(`Restored ${ak[e.ruleId].toLowerCase()} on ${e.key}`,()=>Yf(e.key,e.ruleId,e.locale)),g=(e,t)=>p(`Dismissed ${t} warning${t===1?``:`s`}`,()=>Xf({rules:[e]})),_=e=>{let t=f(e);t&&p(`Added "${t}" to the dictionary`,()=>Df(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,...sk(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=>sk(e).issues??[]))];return t.length?{issues:t}:{needsAttention:!0}}return(e,t)=>(z(),B(`div`,hk,[r.value?(z(),B(`div`,gk,`Loading analytics…`)):s.value?(z(),B(`div`,_k,` No keys yet — add keys in the Editor to see analytics. `)):o.value?(z(),B(`div`,vk,[H(`section`,yk,[H(`div`,bk,[H(`span`,xk,j(o.value.totals.keys),1),t[2]||=H(`span`,{class:`text-xs text-muted-foreground`},`keys`,-1)]),H(`div`,Sk,[H(`span`,Ck,j(o.value.totals.locales),1),t[3]||=H(`span`,{class:`text-xs text-muted-foreground`},`locales`,-1)]),H(`div`,wk,[H(`span`,Tk,j(o.value.totals.translatedPct)+`%`,1),t[4]||=H(`span`,{class:`text-xs text-muted-foreground`},`translated`,-1)]),H(`div`,Ek,[H(`span`,Dk,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(Vh)({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,Ok),H(`div`,kk,[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`,jk,[H(`div`,Mk,[t[12]||=H(`div`,{class:`font-mono text-[11px] uppercase tracking-wider text-muted-foreground`},`Can I ship?`,-1),H(`h1`,Nk,[(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`,Pk,[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`,Fk,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`,Ik,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`,Lk,j(o.value.totals.blocked),1),t[11]||=W(` blocked`,-1)],64)):G(``,!0)],64))]),o.value.project.length?(z(),B(`ul`,Rk,[(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`,zk,j(N(ak)[e.ruleId]),1),H(`span`,Bk,j(e.key),1),H(`span`,Vk,j(e.message),1)],2))),128))])):G(``,!0)]),H(`div`,Hk,[(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`,Uk,j(e.label),1)]))),128))])]),H(`div`,Wk,[t[17]||=H(`span`,{class:`font-mono text-[10px] uppercase tracking-wider text-muted-foreground`},`Release gate`,-1),H(`span`,Gk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[13]||=W(` 100% translated`,-1)]),H(`span`,Kk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[14]||=W(` 0 lint errors`,-1)]),H(`span`,qk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[15]||=W(` outputs exported`,-1)]),H(`span`,Jk,[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`,Yk,[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`,Xk,[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`,Zk,[(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(Vh)(T(e))},[H(`div`,$k,[H(`span`,eA,[H(`span`,tA,j(e.locale),1),H(`span`,{class:`truncate text-[11px] text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,nA)]),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`,rA,[W(j(e.pct),1),t[20]||=H(`span`,{class:`ml-0.5 text-xs text-muted-foreground`},`%`,-1)]),H(`div`,iA,[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`,aA,[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`,oA,j(w(e)),1)])],10,Qk))),128))]))]),H(`section`,sA,[H(`header`,cA,[t[22]||=H(`h2`,{class:`text-base font-semibold`},`Needs attention`,-1),H(`p`,lA,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`,dA,[(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(Vh)(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`,pA,[H(`span`,mA,[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`,hA,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,fA)]))),128))])):(z(),B(`div`,uA,[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`,XA,[t[32]||=H(`h2`,{class:`mb-4 text-base font-semibold`},`Quality`,-1),H(`div`,ZA,[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`,gA,[H(`section`,_A,[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`,yA,[(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(Vh)(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`,xA,[H(`span`,SA,j(e.label),1),H(`span`,CA,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,bA),o.value.risk[e.key].length?(z(),B(`div`,wA,[(z(!0),B(R,null,I(v(e.key),n=>(z(),B(R,{key:n.ruleId},[H(`div`,TA,[H(`span`,EA,j(N(ak)[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,DA)):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(Vh)(N(sk)(e)),onKeydown:Xl(t=>N(Vh)(N(sk)(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,kA),H(`span`,AA,[H(`span`,jA,j(e.key),1)]),H(`span`,MA,j(e.message),1),H(`span`,NA,[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,PA)):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,FA)):G(``,!0)])],40,OA))),128))],64))),128))])):G(``,!0)])),64))])):(z(),B(`div`,vA,[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`,IA,[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`,LA,[(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`,RA,j(e.locale||`—`),1),H(`span`,zA,[W(j(N(ak)[e.ruleId])+` · `,1),H(`span`,BA,j(e.key),1)]),H(`span`,VA,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,HA)]))),128))])):G(``,!0)])):G(``,!0)]),H(`section`,UA,[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(Vh)(T(e))},[H(`span`,GA,[H(`span`,{class:A([`size-2 shrink-0 rounded-full`,y[e.verdict].bar])},null,2),H(`span`,KA,[H(`span`,qA,j(e.locale),1),H(`span`,{class:`truncate text-xs leading-tight text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,JA)])]),H(`span`,YA,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,WA))),128))])]))])):G(``,!0)]))}});function $A(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 ej={class:`grid gap-4`},tj={class:`grid gap-1.5`},nj={key:0,class:`text-xs text-muted-foreground`},rj={class:`flex items-center justify-between`},ij={class:`flex items-center justify-between`},aj={class:`flex items-center justify-between`},oj={class:`grid gap-1.5`},sj={key:0,class:`grid gap-2 border-t pt-3`},cj={key:1,class:`text-sm text-destructive`},lj=F({__name:`GlossaryEntryDialog`,props:Oa({entry:{},prefill:{},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,wholeWord:!0,notes:``,translations:{}}),o=M(!1),s=M(``),c=M(!1);Er(r,e=>{if(!e)return;let t=n.entry??n.prefill??null;c.value=n.entry!==null,a.term=t?.term??``,a.doNotTranslate=t?.doNotTranslate??!1,a.caseSensitive=t?.caseSensitive??!1,a.wholeWord=t?.wholeWord??!0,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.wholeWord||(n.wholeWord=!1),a.notes.trim()&&(n.notes=a.notes.trim()),Object.keys(t).length>0&&(n.translations=t),o.value=!0,s.value=``;try{await kf(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(L_),{open:r.value,"onUpdate:open":n[6]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`max-h-[85vh] max-w-lg overflow-y-auto`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[W(j(c.value?`Edit term`:`Add term`),1)]),_:1}),U(N(ZC),null,{default:P(()=>[...n[7]||=[W(` Guide AI translations with do-not-translate terms and forced translations. `,-1)]]),_:1})]),_:1}),H(`div`,ej,[H(`div`,tj,[U(N(KC),{for:`glossary-term`},{default:P(()=>[...n[8]||=[W(`Term`,-1)]]),_:1}),U(N(xC),{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`,nj,` The term is the entry's identity and can't be changed. `)):G(``,!0)]),H(`div`,rj,[H(`div`,null,[U(N(KC),{for:`glossary-dnt`},{default:P(()=>[...n[9]||=[W(`Do not translate`,-1)]]),_:1}),n[10]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keep this term verbatim in every language.`,-1)]),U(N(jC),{id:`glossary-dnt`,modelValue:a.doNotTranslate,"onUpdate:modelValue":n[1]||=e=>a.doNotTranslate=e},null,8,[`modelValue`])]),H(`div`,ij,[H(`div`,null,[U(N(KC),{for:`glossary-cs`},{default:P(()=>[...n[11]||=[W(`Case sensitive`,-1)]]),_:1}),n[12]||=H(`p`,{class:`text-xs text-muted-foreground`},`Only match the exact casing.`,-1)]),U(N(jC),{id:`glossary-cs`,modelValue:a.caseSensitive,"onUpdate:modelValue":n[2]||=e=>a.caseSensitive=e},null,8,[`modelValue`])]),H(`div`,aj,[H(`div`,null,[U(N(KC),{for:`glossary-ww`},{default:P(()=>[...n[13]||=[W(`Whole word`,-1)]]),_:1}),n[14]||=H(`p`,{class:`text-xs text-muted-foreground`},` Apply this term only as a standalone word (e.g. "Pro" won't match "Process"). Turn off to also match inside larger words. `,-1)]),U(N(jC),{id:`glossary-ww`,modelValue:a.wholeWord,"onUpdate:modelValue":n[3]||=e=>a.wholeWord=e},null,8,[`modelValue`])]),H(`div`,oj,[U(N(KC),{for:`glossary-notes`},{default:P(()=>[...n[15]||=[W(`Notes`,-1)]]),_:1}),U(N(Lw),{id:`glossary-notes`,modelValue:a.notes,"onUpdate:modelValue":n[4]||=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`,sj,[n[16]||=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(KC),{for:`glossary-tr-${e}`,class:`text-xs text-muted-foreground`},{default:P(()=>[U(uT,{code:e,"show-name":``,"show-code":!1,size:12},null,8,[`code`])]),_:2},1032,[`for`]),U(N(xC),{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`,cj,j(s.value),1)):G(``,!0)]),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:o.value,onClick:n[5]||=e=>r.value=!1},{default:P(()=>[...n[17]||=[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`]))}}),uj={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},dj={class:`font-medium text-foreground`},fj={key:1,class:`flex flex-col gap-1.5`},pj={class:`flex justify-between text-xs text-muted-foreground`},mj={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},hj={class:`flex items-center gap-1.5 font-medium`},gj=F({__name:`GlossarySuggestDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:Oa([`found`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=Xa(e,`open`),r=t,i=M(!1),a=M(null),o=M(``),s=M(0),c=M(0),l=M(null),u=M(!1),d=M(!1),f=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),p=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,m=q(()=>{let e=l.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${p(e/2)} (50% off)`});async function h(){l.value=null,u.value=!1;try{l.value=await of({})}catch{}try{let e=await sf();u.value=e.supported&&!e.pending}catch{}}async function g(){d.value=!0;try{let e=await cf({});Q.success(`Glossary batch of ${e.total} source(s) submitted — applies when processing finishes`),r(`batch-submitted`),n.value=!1}catch(e){o.value=e.message}finally{d.value=!1}}Er(n,e=>{e?(o.value=``,s.value=0,c.value=0,h()):a.value?.abort()});function _(){a.value?.abort()}async function v(){i.value=!0,o.value=``,s.value=0,c.value=0,a.value=new AbortController;let e=!1;try{for await(let t of Pf({},a.value.signal))t.type===`start`?c.value=t.total:t.type===`progress`?(s.value=t.done,c.value=t.total):t.type===`done`&&(e=!0,s.value=c.value,r(`found`),t.added>0?(Q.success(`Found ${t.added} candidate term${t.added===1?``:`s`}`),n.value=!1):Q.info(`No new candidate terms found`))}catch(e){o.value=e.message}finally{!e&&a.value?.signal.aborted&&Q(`Suggestion scan cancelled after ${s.value} of ${c.value} keys`),a.value=null,i.value=!1}}return(e,t)=>(z(),V(N(L_),{open:n.value,"onUpdate:open":t[1]||=e=>n.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Find glossary terms`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...t[3]||=[W(` Scan your translation keys with AI to suggest new glossary terms — brand names, technical terms, and phrases that should be translated consistently. `,-1)]]),_:1})]),_:1}),l.value&&l.value.sources>0&&!i.value&&s.value===0?(z(),B(`div`,uj,[H(`p`,null,[W(` ≈ `+j(l.value.sources.toLocaleString())+` source`+j(l.value.sources===1?``:`s`)+` · `+j(l.value.batches.toLocaleString())+` batch`+j(l.value.batches===1?``:`es`)+` · ~`+j(f(l.value.inputTokens))+` in / ~`+j(f(l.value.outputTokens))+` out tokens`,1),l.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[4]||=W(` · `,-1),H(`span`,dj,`≈ `+j(p(l.value.estimatedCost)),1),t[5]||=W(` (±20%)`,-1)],64))])])):G(``,!0),i.value||s.value>0?(z(),B(`div`,fj,[H(`div`,pj,[H(`span`,null,j(s.value.toLocaleString())+` / `+j(c.value.toLocaleString())+` scanned`,1)]),U(N(HD),{"model-value":c.value>0?s.value/c.value*100:0},null,8,[`model-value`])])):G(``,!0),o.value?(z(),B(`div`,mj,[H(`p`,hj,[U(N(Td),{class:`size-4`}),t[6]||=W(` Scan failed `,-1)]),H(`p`,null,j(o.value),1)])):G(``,!0),U(N(YC),null,{default:P(()=>[i.value?(z(),V(N($),{key:0,variant:`outline`,onClick:_},{default:P(()=>[...t[7]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>n.value=!1},{default:P(()=>[...t[8]||=[W(`Close`,-1)]]),_:1})),u.value?(z(),V(N($),{key:2,variant:`outline`,disabled:i.value||d.value,onClick:g},{default:P(()=>[W(j(d.value?`Submitting…`:m.value),1)]),_:1},8,[`disabled`])):G(``,!0),U(N($),{disabled:i.value||d.value,onClick:v},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(i.value?`Scanning…`:`Find terms`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),_j={class:`min-h-0 flex-1 overflow-y-auto`},vj={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},yj={key:1,class:`mx-auto flex max-w-3xl flex-col gap-4 p-6`},bj={class:`flex items-center justify-between`},xj={class:`flex items-center gap-2`},Sj={class:`relative`},Cj={key:0,class:`flex flex-col gap-2`},wj={class:`flex flex-col gap-2`},Tj={class:`min-w-0 flex-1`},Ej={class:`flex flex-wrap items-center gap-2`},Dj={class:`font-mono text-sm font-medium`},Oj={key:0,class:`mt-1 text-sm text-muted-foreground`},kj={key:1,class:`mt-1 text-xs text-muted-foreground`},Aj={class:`flex shrink-0 items-center gap-1`},jj={key:1,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},Mj={key:2,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},Nj={key:3,class:`flex flex-col gap-2`},Pj={class:`min-w-0 flex-1`},Fj={class:`flex flex-wrap items-center gap-2`},Ij={class:`font-mono text-sm font-medium`},Lj={key:0,class:`mt-1 text-sm text-muted-foreground`},Rj={key:1,class:`mt-2 flex flex-wrap gap-1.5`},zj={class:`flex shrink-0 items-center gap-1`},Bj={class:`font-mono`},Vj=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(()=>$A(t.value,l.value)),d=q(()=>r.value.filter(e=>e!==n.value)),f=M(null),p=M([]),m=M(!1),h=M(null),g=M(null);async function _(){p.value=await jf()}async function v(){let[e,a]=await Promise.all([Of(),jd()]);t.value=e,n.value=a.config.sourceLocale,r.value=a.config.locales,i.value=!0}v(),_(),zh(()=>{v(),_()});function y(){o.value=null,h.value=null,g.value=null,a.value=!0}function b(e){o.value=e,h.value=null,g.value=null,a.value=!0}function x(e){g.value=e.term,o.value=null,h.value={term:e.term,doNotTranslate:e.doNotTranslate,caseSensitive:e.caseSensitive,wholeWord:e.wholeWord,notes:e.note},a.value=!0}async function S(e){await Mf(e.term),await _()}async function C(){g.value&&=(await Nf(g.value),null),await Promise.all([v(),_()])}function w(e){return Object.entries(e.translations??{}).map(([e,t])=>`${e}: ${t}`)}async function T(){let e=s.value;if(e){c.value=!0;try{await Af(e.term),Q.success(`Deleted ${e.term}`),s.value=null,await v()}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}}return(e,n)=>(z(),B(`div`,_j,[i.value?(z(),B(`div`,yj,[H(`div`,bj,[n[11]||=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),H(`div`,xj,[U(N($),{variant:`outline`,onClick:n[0]||=e=>m.value=!0},{default:P(()=>[U(N(vd),{class:`size-4`}),n[9]||=W(` Suggest terms with AI `,-1)]),_:1}),U(N($),{onClick:y},{default:P(()=>[U(N(od),{class:`size-4`}),n[10]||=W(` Add term `,-1)]),_:1})])]),H(`div`,Sj,[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(xC),{modelValue:l.value,"onUpdate:modelValue":n[1]||=e=>l.value=e,placeholder:`Search terms, notes, translations…`,class:`h-8 w-full pl-8 pr-8`,onKeydown:n[2]||=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[3]||=e=>l.value=``},[U(N(kd),{class:`size-4`})])):G(``,!0)]),U(SO,{ref_key:`suggestBanner`,ref:f,kind:`glossary-suggest`,onChanged:_},null,512),p.value.length?(z(),B(`div`,Cj,[n[17]||=H(`p`,{class:`text-sm font-medium`},`AI term suggestions`,-1),H(`ul`,wj,[(z(!0),B(R,null,I(p.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`,Tj,[H(`div`,Ej,[H(`span`,Dj,j(e.term),1),e.doNotTranslate?(z(),V(N(kC),{key:0,variant:`secondary`},{default:P(()=>[...n[12]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(kC),{key:1,variant:`outline`},{default:P(()=>[...n[13]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0),e.wholeWord===!1?(z(),V(N(kC),{key:2,variant:`outline`},{default:P(()=>[...n[14]||=[W(`Substring`,-1)]]),_:1})):G(``,!0)]),e.note?(z(),B(`p`,Oj,j(e.note),1)):G(``,!0),typeof e.occurrences==`number`?(z(),B(`p`,kj,` used in `+j(e.occurrences)+` key`+j(e.occurrences===1?``:`s`),1)):G(``,!0)]),H(`div`,Aj,[U(N($),{size:`sm`,"aria-label":`Accept ${e.term}`,onClick:t=>x(e)},{default:P(()=>[...n[15]||=[W(`Accept`,-1)]]),_:1},8,[`aria-label`,`onClick`]),U(N($),{variant:`ghost`,size:`sm`,"aria-label":`Dismiss ${e.term}`,onClick:t=>S(e)},{default:P(()=>[...n[16]||=[W(`Dismiss`,-1)]]),_:1},8,[`aria-label`,`onClick`])])]))),128))])])):G(``,!0),t.value.length===0?(z(),B(`div`,jj,` No glossary terms yet — add do-not-translate terms and forced translations to guide AI. `)):u.value.length===0?(z(),B(`div`,Mj,` No terms match your search. `)):(z(),B(`ul`,Nj,[(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`,Pj,[H(`div`,Fj,[H(`span`,Ij,j(e.term),1),e.doNotTranslate?(z(),V(N(kC),{key:0,variant:`secondary`},{default:P(()=>[...n[18]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(kC),{key:1,variant:`outline`},{default:P(()=>[...n[19]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0),e.wholeWord===!1?(z(),V(N(kC),{key:2,variant:`outline`},{default:P(()=>[...n[20]||=[W(`Substring`,-1)]]),_:1})):G(``,!0)]),e.notes?(z(),B(`p`,Lj,j(e.notes),1)):G(``,!0),w(e).length?(z(),B(`div`,Rj,[(z(!0),B(R,null,I(w(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`,zj,[U(N($),{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.term}`,onClick:t=>b(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`,vj,` Loading glossary… `)),U(lj,{open:a.value,"onUpdate:open":n[4]||=e=>a.value=e,entry:o.value,prefill:h.value,"target-locales":d.value,onSaved:C},null,8,[`open`,`entry`,`prefill`,`target-locales`]),U(gj,{open:m.value,"onUpdate:open":n[5]||=e=>m.value=e,onFound:_,onBatchSubmitted:n[6]||=e=>f.value?.refresh()},null,8,[`open`]),U(N(L_),{open:s.value!==null,"onUpdate:open":n[8]||=e=>{e||(s.value=null)}},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[21]||=[W(`Delete term`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[n[22]||=W(` Delete `,-1),H(`span`,Bj,j(s.value?.term),1),n[23]||=W(` from the glossary? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:c.value,onClick:n[7]||=e=>s.value=null},{default:P(()=>[...n[24]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:c.value,onClick:T},{default:P(()=>[...n[25]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),Hj=[{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`}],Uj=Object.fromEntries(Hj.map(e=>[e.id,e.default]));function Wj(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 Gj(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:{...Uj,...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 Kj(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:Wj(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])=>Uj[e]!==void 0&&t!==Uj[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 qj=M(0),Jj={class:`flex items-center gap-2 p-2`},Yj=[`aria-label`],Xj={class:`!flex items-center gap-2`},Zj={class:`truncate font-medium`},Qj={class:`flex items-center gap-2`},$j={key:0,class:`grid gap-5 border-t border-border p-4`},eM={key:0,class:`grid gap-1.5`},tM={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},nM=[`onClick`],rM={key:1,class:`grid gap-1.5`},iM={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},aM=[`onClick`],oM={key:2,class:`grid gap-1.5`},sM={class:`flex items-center gap-2`},cM={key:0,class:`text-xs text-muted-foreground`},lM={class:`flex items-center gap-2`},uM={key:3,class:`grid gap-1.5`},dM={class:`flex items-center gap-2`},fM={key:0,class:`text-xs text-muted-foreground`},pM={class:`flex items-center gap-2`},mM={class:`text-xs text-muted-foreground`},hM={key:4,class:`grid gap-1.5`},gM={class:`flex items-center gap-2`},_M={class:`text-xs text-muted-foreground`},vM={class:`grid gap-1.5`},yM={class:`flex w-full items-center justify-between gap-4`},bM={class:`font-mono text-xs text-muted-foreground`},xM={class:`grid gap-1.5`},SM={class:`mt-1 grid gap-2`},CM={key:0,class:`text-xs text-muted-foreground`},wM={class:`w-24 shrink-0 font-mono text-xs font-semibold`},TM={key:1},EM={class:`!flex items-center gap-1.5`},DM={class:`border-t border-border pt-4`},OM={class:`mt-2 grid gap-2`},kM={key:0,class:`text-xs text-muted-foreground`},AM={class:`flex h-8 shrink-0 items-center gap-1.5`},jM={class:`font-mono text-xs font-semibold`},MM={class:`flex flex-1 flex-wrap items-center gap-1.5`},NM=[`onClick`],PM={key:1},FM={class:`!flex items-center gap-1.5`},IM=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`],"next-intl-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===`laravel-php`?`Default (Laravel: 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`,"next-intl-json":`Next.js (next-intl)`,"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,"next-intl-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`||e===`next-intl-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`,Jj,[U(N(mC),null,{default:P(()=>[U(N(yC),{"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,Yj)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(i.value?`Collapse`:`Expand options`),1)]),_:1})]),_:1}),U(N(OS),{"model-value":e.output.adapter,"onUpdate:modelValue":x},{default:P(()=>[U(N(SC),{class:`w-44 shrink-0`},{default:P(()=>[H(`span`,Xj,[(z(),V(ia(v(e.output.adapter)),{class:`size-3.5 shrink-0 text-primary`})),H(`span`,Zj,j(h(e.output.adapter)),1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(g.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[H(`span`,Qj,[(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(TC),{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(xC),{"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`,$j,[c(`emptyAs`)?(z(),B(`div`,eM,[U(N(KC),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`,tM,[(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,nM)),64))])])):G(``,!0),c(`style`)?(z(),B(`div`,rM,[U(N(KC),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`,iM,[(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,aM)),64))])])):G(``,!0),c(`indent`)?(z(),B(`div`,oM,[H(`div`,sM,[U(N(KC),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`,cM,`Inherited · `+j(e.formatIndent),1))]),H(`div`,lM,[U(N(xC),{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`,uM,[H(`div`,dM,[U(N(KC),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`,fM,`Inherited · `+j(e.formatFinalNewline?`on`:`off`),1))]),H(`div`,pM,[U(N(jC),{"model-value":C.value,"onUpdate:modelValue":n[6]||=e=>y({finalNewline:e})},null,8,[`model-value`]),H(`span`,mM,j(C.value?`Enabled`:`Disabled`),1)])])):G(``,!0),c(`includeLocale`)?(z(),B(`div`,hM,[U(N(KC),{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`,gM,[U(N(jC),{"model-value":e.output.includeLocale??!0,"onUpdate:modelValue":n[7]||=e=>y({includeLocale:e})},null,8,[`model-value`]),H(`span`,_M,j(e.output.includeLocale??!0?`Enabled`:`Disabled`),1)])])):G(``,!0),H(`div`,vM,[U(N(KC),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(OS),{"model-value":f.value,"onUpdate:modelValue":p},{default:P(()=>[U(N(SC),{class:`w-72`,"aria-label":`Locale code format`},{default:P(()=>[U(N(YS))]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`default`},{default:P(()=>[W(j(d(e.output.adapter)),1)]),_:1}),(z(),B(R,null,I(u,e=>U(N(TC),{key:e.value,value:e.value},{default:P(()=>[H(`span`,yM,[H(`span`,null,j(e.label),1),H(`span`,bM,j(e.example),1)])]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),H(`div`,xM,[U(N(KC),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`,SM,[oe.value.length===0?(z(),B(`p`,CM,`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`,wM,j(e),1),U(N(bu),{class:`size-3 shrink-0 text-muted-foreground`}),U(N(xC),{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`,TM,[U(N(OS),{"model-value":``,"onUpdate:modelValue":ce},{default:P(()=>[U(N(SC),{class:`w-56 text-muted-foreground`,"aria-label":`Add locale override`},{default:P(()=>[H(`span`,EM,[U(N(od),{class:`size-3.5`}),n[20]||=W(` Add override…`,-1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(k.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])]),H(`div`,DM,[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`,OM,[D.value.length===0?(z(),B(`p`,kM,`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`,AM,[H(`span`,jM,j(e),1),U(N(bu),{class:`size-3 text-muted-foreground`})]),H(`div`,MM,[(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(mC),null,{default:P(()=>[U(N(yC),{"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,NM)]),_:2},1024),U(N(sw),null,{default:P(()=>[...n[22]||=[W(`Remove`,-1)]]),_:1})]),_:2},1024)]))),128)),U(N(xC),{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(mC),null,{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...n[23]||=[W(`Remove alias`,-1)]]),_:1})]),_:2},1024)]))),128)),ee.value.length>0?(z(),B(`div`,PM,[U(N(OS),{"model-value":``,"onUpdate:modelValue":ne},{default:P(()=>[U(N(SC),{class:`w-56 text-muted-foreground`},{default:P(()=>[H(`span`,FM,[U(N(od),{class:`size-3.5`}),n[24]||=W(` Add locale alias…`,-1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(ee.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])])])):G(``,!0)],2))}}),LM={class:`grid gap-1.5`},RM={class:`flex flex-wrap gap-2`},zM=[`aria-label`,`onClick`],BM={key:0,class:`text-sm text-muted-foreground`},VM={class:`flex max-w-sm gap-2`},HM={key:0,class:`flex items-center gap-1.5 text-xs text-destructive`},UM=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`,LM,[U(N(KC),null,{default:P(()=>[W(j(e.label),1)]),_:1}),L(t.$slots,`help`),H(`div`,RM,[(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,zM)],2))),128)),e.items.length===0?(z(),B(`p`,BM,`None — auto-detect.`)):G(``,!0)]),H(`div`,VM,[U(N(xC),{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`,HM,[U(N(Td),{class:`size-3.5`}),W(` `+j(a.value),1)])):G(``,!0)]))}}),WM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},GM={class:`p-6`},KM={class:`flex items-start gap-3 pr-6`},qM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 text-primary`},JM={class:`min-w-0`},YM={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`},XM={class:`mt-4 grid grid-cols-4 gap-2`},ZM={class:`mt-1.5 text-[17px] font-semibold leading-none tabular-nums`},QM={class:`mt-1 whitespace-nowrap text-[10.5px] text-muted-foreground`},$M={class:`mt-2 text-center text-[11px] text-muted-foreground`},eN={class:`mt-4 divide-y divide-border overflow-hidden rounded-lg border border-border`},tN={key:0},nN=[`onClick`],rN={class:`ml-auto font-mono text-[11px] text-muted-foreground tabular-nums`},iN={key:0,class:`max-h-36 divide-y divide-border/50 overflow-auto border-t border-border bg-muted/20 gf-content-fade`},aN={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`},oN={class:`flex items-start gap-2.5`},sN={class:`text-[13px] font-medium`},cN={class:`flex items-center gap-2 border-t border-border px-6 py-4`},lN={class:`ml-auto`},uN={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},dN={class:`p-6`},fN={class:`flex flex-col items-center gap-3 pt-1 text-center`},pN={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},mN={class:`font-semibold text-foreground`},hN={class:`font-semibold text-foreground`},gN={class:`font-semibold text-foreground`},_N={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},vN={class:`whitespace-nowrap text-[13px] font-medium text-warning`},yN={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},bN={class:`flex items-center border-t border-border px-6 py-4`},xN={class:`ml-auto`},SN={class:`p-6`},CN={class:`flex items-start gap-3 pr-6`},wN={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},TN={class:`min-w-0`},EN={class:`flex items-center border-t border-border px-6 py-4`},DN={class:`ml-auto`},ON=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 $f();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 ep({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(L_),{open:i.value,"onUpdate:open":y},{default:P(()=>[U(N(wv),null,{default:P(()=>[U(N(Sv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(yv),{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(Tv),{class:`sr-only`},{default:P(()=>[...t[9]||=[W(`Comparing files`,-1)]]),_:1}),H(`div`,WM,[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`,GM,[H(`div`,KM,[H(`div`,qM,[U(N(sd),{class:`size-5`})]),H(`div`,JM,[U(N(Tv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[11]||=[W(`Sync from files`,-1)]]),_:1}),U(N(bv),{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`,YM,[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`,XM,[(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`,ZM,j(e.keys.length),1),H(`span`,QM,j(e.label),1)]))),128))]),H(`p`,$M,j(o.value.unchanged.toLocaleString())+` key`+j(o.value.unchanged===1?``:`s`)+` unchanged `,1),H(`div`,eN,[(z(!0),B(R,null,I(g.value,e=>(z(),B(R,{key:e.id},[e.keys.length?(z(),B(`div`,tN,[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`,rN,j(e.keys.length),1)],8,nN),f.value[e.id]?(z(),B(`ul`,iN,[(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`,aN,[H(`div`,oN,[U(N(wd),{class:`mt-0.5 size-4 shrink-0 text-destructive`}),H(`div`,null,[H(`div`,sN,`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(jC),{"data-testid":`prune-toggle`,modelValue:u.value,"onUpdate:modelValue":t[1]||=e=>u.value=e},null,8,[`modelValue`])])):G(``,!0)],64))]),H(`div`,cN,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[2]||=e=>r(`dismiss`)},{default:P(()=>[W(j(h.value?`Close`:`Cancel`),1)]),_:1}),H(`div`,lN,[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(Tv),{class:`sr-only`},{default:P(()=>[...t[16]||=[W(`Applying changes`,-1)]]),_:1}),H(`div`,uN,[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`,dN,[H(`div`,fN,[H(`div`,pN,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[18]||=[W(`Sync complete`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,mN,`+`+j(c.value.plan.added.length),1),t[19]||=W(` added, `,-1),H(`span`,hN,`~`+j(c.value.plan.sourceChanged.length),1),t[20]||=W(` changed, `,-1),H(`span`,gN,j(c.value.plan.removed.length),1),t[21]||=W(` removed. `,-1)]),_:1})])]),c.value.warnings.length?(z(),B(`div`,_N,[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`,vN,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`,yN,[(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`,bN,[H(`div`,xN,[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`,SN,[H(`div`,CN,[H(`div`,wN,[U(N(Td),{class:`size-5`})]),H(`div`,TN,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[23]||=[W(`Couldn't sync`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(l.value),1)]),_:1})])])]),H(`div`,EN,[H(`div`,DN,[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`]))}}),kN={key:0,class:`flex flex-1 items-center justify-center text-sm text-muted-foreground`},AN={key:1,class:`flex min-h-0 flex-1 overflow-hidden`},jN={class:`flex w-60 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted p-3`},MN=[`onClick`],NN={class:`min-w-0 flex-1`},PN={class:`block text-[13px] font-[570] leading-tight`},FN={class:`mt-0.5 block truncate text-[11px] opacity-70`},IN={key:0,class:`size-2 shrink-0 rounded-full bg-primary ring-2 ring-primary/25`},LN={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`},RN=[`onClick`],zN={class:`min-w-0 flex-1`},BN={class:`block text-[13px] font-[570] leading-tight`},VN={class:`mt-0.5 block truncate text-[11px] opacity-70`},HN={class:`relative flex min-w-0 flex-1 flex-col`},UN={class:`flex-1 overflow-y-auto px-8 pb-28 pt-7`},WN={class:`max-w-[680px]`},GN={class:`mb-6`},KN={class:`flex items-center gap-2.5 text-[21px] font-bold tracking-tight`},qN={key:0,class:`size-2 rounded-full bg-primary ring-2 ring-primary/25`},JN={key:0,class:`mt-1.5 text-sm text-muted-foreground`},YN={key:1,class:`mt-1.5 text-sm text-muted-foreground`},XN={key:2,class:`mt-1.5 text-sm text-muted-foreground`},ZN={key:3,class:`mt-1.5 text-sm text-muted-foreground`},QN={key:4,class:`mt-1.5 text-sm text-muted-foreground`},$N={key:5,class:`mt-1.5 text-sm text-muted-foreground`},eP={key:6,class:`mt-1.5 text-sm text-muted-foreground`},tP={key:7,class:`mt-2 flex items-center gap-1.5 text-sm text-muted-foreground`},nP={key:0,class:`flex flex-col gap-5`},rP={class:`grid max-w-sm gap-1.5`},iP={key:0},aP={class:`grid gap-1.5`},oP={class:`ml-1.5 font-normal text-muted-foreground`},sP={class:`flex flex-wrap gap-2`},cP={key:0,class:`font-mono text-[10px] italic text-muted-foreground`},lP=[`aria-label`,`onClick`],uP={class:`mt-1 flex items-center gap-1.5 text-xs text-destructive`},dP={class:`grid max-w-sm gap-1.5`},fP={class:`flex gap-2`},pP={key:0,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},mP={key:1,class:`flex flex-col gap-6`},hP={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},gP={class:`flex items-start gap-2.5`},_P={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},vP={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},yP={class:`flex items-start gap-2.5`},bP={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},xP={class:`rounded-lg border p-3.5`},SP={class:`flex items-center justify-between gap-4`},CP={class:`flex items-start gap-2.5`},wP={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`},TP={key:0,class:`mt-3 border-t pt-3`},EP={class:`flex flex-wrap gap-2`},DP=[`aria-checked`,`onClick`],OP={class:`mt-2 flex items-center gap-1.5 text-xs text-amber-600 dark:text-amber-400`},kP={class:`mt-2 divide-y rounded-lg border`},AP={class:`flex items-center justify-between gap-4 p-3.5`},jP={class:`flex items-center gap-2`},MP={class:`flex items-center justify-between gap-4 p-3.5`},NP={class:`flex items-center gap-2 text-sm font-medium`},PP={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`},FP={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`},IP={class:`flex items-center justify-between gap-4 p-3.5`},LP={class:`mt-2 flex flex-col gap-2.5`},RP={key:0,class:`text-sm text-muted-foreground`},zP={key:2,class:`flex flex-col gap-4`},BP={class:`flex items-center gap-2 rounded-lg border p-3`},VP={key:1,class:`flex-1 text-sm text-muted-foreground`},HP={class:`grid max-w-sm gap-4`},UP={class:`grid gap-1.5`},WP={class:`flex items-center gap-2`},GP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},KP={class:`text-xs text-muted-foreground`},qP={class:`grid gap-1.5`},JP={key:0,class:`text-xs text-muted-foreground`},YP=[`onClick`],XP={key:0},ZP={key:1,class:`text-xs text-muted-foreground`},QP={key:0,class:`grid gap-1.5`},$P={key:1,class:`grid gap-1.5`},eF={key:0,class:`text-xs text-muted-foreground`},tF={key:1,class:`text-xs text-muted-foreground`},nF={class:`grid gap-1.5`},rF={class:`flex flex-wrap items-center gap-2`},iF={key:0,class:`flex items-center gap-1 text-xs font-medium text-emerald-600 dark:text-emerald-400`},aF={key:0,class:`flex items-start gap-1.5 rounded-md border border-destructive/30 bg-destructive/5 px-2.5 py-2 text-xs text-destructive`},oF={class:`grid gap-1.5`},sF={class:`grid gap-1.5`},cF={class:`grid gap-1.5`},lF={class:`grid gap-1.5`},uF={key:2,class:`flex items-center gap-3`},dF={class:`grid gap-0.5`},fF={key:3,class:`grid gap-1.5`},pF={class:`grid gap-1.5`},mF={class:`flex flex-wrap items-center gap-2`},hF={key:0,class:`text-xs text-muted-foreground`},gF={key:1,class:`text-xs text-muted-foreground`},_F={class:`relative`},vF={class:`text-xs text-muted-foreground`},yF={key:0,class:`space-y-2 rounded-lg border bg-muted/30 p-2.5`},bF={class:`flex items-center justify-between gap-2 text-[11px]`},xF={class:`truncate font-mono`},SF={class:`flex shrink-0 items-center gap-1.5`},CF={class:`tabular-nums text-muted-foreground`},wF=[`aria-label`,`onClick`],TF={class:`h-1.5 w-full rounded-sm bg-muted`},EF={class:`h-1.5 w-full rounded-sm bg-muted`},DF={class:`-mx-1 flex-1 overflow-y-auto`},OF=[`onClick`],kF={class:`flex min-w-0 items-center gap-1.5`},AF={key:1,class:`size-3 shrink-0`},jF={class:`truncate font-mono`},MF={class:`shrink-0 tabular-nums text-muted-foreground`},NF={key:0,class:`px-1 py-6 text-center text-sm text-muted-foreground`},PF={class:`grid gap-1.5`},FF={class:`grid gap-1.5`},IF={key:3,class:`flex flex-col gap-6`},LF={class:`flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/30 p-3.5`},RF={class:`min-w-0`},zF={class:`mt-0.5 font-mono text-xs text-muted-foreground`},BF={key:4,class:`flex flex-col gap-6`},VF={class:`mt-2 divide-y rounded-lg border`},HF={class:`min-w-0`},UF={class:`flex items-center gap-2 text-sm font-medium`},WF={class:`rounded border bg-muted px-1 py-0.5 font-mono text-[10px] text-muted-foreground`},GF={class:`mt-0.5 text-xs text-muted-foreground`},KF={key:5,class:`flex flex-col gap-4`},qF={class:`flex flex-wrap gap-2`},JF=[`aria-label`,`onClick`],YF={key:0,class:`text-sm text-muted-foreground`},XF={class:`grid max-w-sm gap-1.5`},ZF={class:`flex gap-2`},QF={key:6,class:`flex flex-col gap-4`},$F={class:`grid max-w-sm gap-1.5`},eI={class:`flex items-center gap-2`},tI={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},nI={class:`flex items-center gap-1.5 text-sm text-muted-foreground`},rI={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`},iI={class:`font-semibold`},aI={class:`relative`},oI={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`},sI={class:`mt-1 text-xs leading-relaxed text-muted-foreground`},cI={class:`mt-3 flex justify-end gap-2`},lI={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`},uI={id:`leave-warning-title`,class:`flex items-center gap-2 text-[15px] font-semibold`},dI={class:`mt-1.5 text-[13px] leading-relaxed text-muted-foreground`},fI={class:`font-medium text-foreground`},pI={class:`block`},mI={class:`mt-4 flex items-center gap-2`},hI={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`},gI=200,_I=8,vI=F({__name:`SettingsView`,setup(e){let t=[`languages`,`outputs`,`ai`,`scan`,`quality`,`dictionary`,`editor`],n=[`flutter-arb`,`laravel-php`,`vue-i18n-json`,`next-intl-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:[`eu.anthropic.claude-sonnet-4-6`,`eu.amazon.nova-pro-v1:0`,`eu.anthropic.claude-3-5-sonnet-20241022-v2: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=qp().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(Gj(e.config)),b(),await O(),l.value=!0,le()}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([bf(),Sf()]);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 Cf(w.value,e),S.value={...S.value,[w.value]:e}):await xf({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=M(!1),oe=M(null);async function k(){let e=ie();if(JSON.stringify(e)!==ne){te&&clearTimeout(te);try{w.value?(await Cf(w.value,e),S.value={...S.value,[w.value]:e}):await xf({ai:e}),ne=JSON.stringify(e)}catch(e){oe.value={ok:!1,error:e.message};return}}ae.value=!0,oe.value=null;try{let e=await Ef();oe.value={ok:e.ok,error:e.error}}catch(e){oe.value={ok:!1,error:e.message}}finally{ae.value=!1}}Er(()=>[E.provider,E.model,E.region,E.endpoint,w.value],()=>{oe.value=null});let se=M(null),ce=M(!1);async function le(){try{se.value=await Md()}catch{}}async function ue(){ce.value=!0;try{let e=await Nd();Q.success(`Updated ${e.modelCount} model prices from ${e.source}.`),he.value=!1,await le()}catch(e){Q.error(e.message)}finally{ce.value=!1}}let de=q(()=>{let e=se.value?.fetchedAt;if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toLocaleDateString()}),fe=M(!1),pe=M([]),he=M(!1),ge=M(``);async function _e(){if(fe.value=!0,!he.value)try{pe.value=(await Pd()).models,he.value=!0}catch(e){Q.error(e.message)}}let ve=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,``),ye=q(()=>{let e=ge.value.trim().split(/\s+/).map(ve).filter(Boolean);return e.length?pe.value.filter(t=>{let n=ve(t.id);return e.every(e=>n.includes(e))}):pe.value}),be=q(()=>ye.value.slice(0,gI)),xe=q(()=>Math.max(0,ye.value.length-gI)),Se=M([]),Ce=e=>Se.value.includes(e);function we(e){let t=Se.value.indexOf(e);t>=0?Se.value.splice(t,1):Se.value.length>=_I?Q.error(`Compare up to ${_I} models at once.`):Se.value.push(e)}let Te=q(()=>{let e=new Map(pe.value.map(e=>[e.id,e]));return Se.value.map(t=>e.get(t)).filter(e=>!!e)}),Ee=q(()=>Math.max(1,...Te.value.flatMap(e=>[e.inputPerMTok,e.outputPerMTok]))),De=e=>`${Math.max(1.5,e/Ee.value*100)}%`,Oe=[`languages`,`outputs`,`scan`,`quality`,`dictionary`],ke=[`ai`,`editor`];function Ae(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 je=q(()=>Oe.filter(e=>!Ae(e))),Me=q(()=>je.value.length),Ne=q(()=>je.value.map(e=>Re[e].title));Er(Me,e=>{qj.value=e},{immediate:!0}),Yi(()=>{qj.value=0});let Pe=q(()=>GT.find(e=>e.id===JT.value)?.label??`VS Code`),Fe=M(!1),Ie=null;function Le(e){YT(e),Fe.value=!0,Ie&&clearTimeout(Ie),Ie=setTimeout(()=>{Fe.value=!1},1700)}let Re={languages:{title:`Languages`},outputs:{title:`Export targets`},ai:{title:`AI`},scan:{title:`Scan`},quality:{title:`Quality checks`},dictionary:{title:`Custom dictionary`},editor:{title:`Editor`}},ze=[{id:`languages`,title:`Languages`},{id:`outputs`,title:`Export targets`},{id:`scan`,title:`Scan`},{id:`quality`,title:`Quality checks`},{id:`dictionary`,title:`Custom dictionary`}];function Be(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])=>Uj[e]!==void 0&&t!==Uj[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 Ve(){if(Me.value!==0){u.value=!0;try{await _f(Kj(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 He(){o.value&&y(o.value),f.value=!1}function Ue(e){return e===`settings`||Me.value===0?!0:(g.value=e,!1)}function We(e){g.value=null,Gp(e)}function Ge(){g.value=null}function Ke(){let e=g.value;He(),e&&We(e)}async function qe(){let e=g.value;await Ve(),e&&Me.value===0&&We(e)}function Je(e){Me.value>0&&(e.preventDefault(),e.returnValue=``)}function Ye(e){if(e.key===`Escape`&&g.value){e.preventDefault(),Ge();return}(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),Ve())}Gi(()=>{window.addEventListener(`keydown`,Ye),window.addEventListener(`beforeunload`,Je),window.addEventListener(`hashchange`,h),Wp(Ue)}),Yi(()=>{window.removeEventListener(`keydown`,Ye),window.removeEventListener(`beforeunload`,Je),window.removeEventListener(`hashchange`,h),Wp(null)});let Xe=M(``);function Ze(){let e=Xe.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),Xe.value=``}}function Qe(e){e!==c.sourceLocale&&(c.locales=c.locales.filter(t=>t!==e))}function $e(){c.outputs.push({adapter:`flutter-arb`,path:``,emptyAs:`omit`,style:`nested`,indent:null,finalNewline:null,includeLocale:!0,localeAliases:{}})}function et(e){c.outputs.splice(e,1)}let tt=q(()=>c.exportLocales.length>0);function nt(e){c.exportLocales=e?[...c.locales]:[]}function rt(e){c.exportLocales=c.exportLocales.includes(e)?c.exportLocales.filter(t=>t!==e):[...c.exportLocales,e]}let it=q(()=>E.provider===`bedrock`),at=q(()=>E.provider===`ollama`),ot=q(()=>a[E.provider]??``),st=q(()=>i[E.provider]??[]),ct=q(()=>st.value[0]??``);async function lt(e){w.value=e,T.value=e??``,await Tf(e),re(e?S.value[e]??ie():(await bf()).ai)}async function ut(){let e=`Profile ${Object.keys(S.value).length+1}`,t=ie();await Cf(e,t),S.value={...S.value,[e]:t},await lt(e)}async function dt(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 Cf(n,r),await wf(e);let i={...S.value};delete i[e],i[n]=r,S.value=i,await lt(n)}async function ft(){if(!w.value)return;let e=w.value;await wf(e);let t={...S.value};delete t[e],S.value=t,await lt(null)}let pt=M(``);function mt(){let e=pt.value.trim();if(e){if(c.customWords.includes(e)){Q.error(`${e} is already in the dictionary`);return}c.customWords=[...c.customWords,e].sort(),pt.value=``}}function ht(e){c.customWords=c.customWords.filter(t=>t!==e)}function gt(e){try{return new RegExp(e),null}catch(e){return`Invalid regex: ${e.message}`}}let _t=M(!1),vt=M(null);function yt(){location.reload()}return(e,t)=>(z(),B(R,null,[l.value?(z(),B(`div`,AN,[H(`nav`,jN,[t[35]||=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(ze,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`,NN,[H(`span`,PN,j(e.title),1),H(`span`,FN,j(Be(e.id)),1)]),!e.autosave&&je.value.includes(e.id)?(z(),B(`span`,IN)):G(``,!0),e.autosave?(z(),B(`span`,LN,`Auto`)):G(``,!0)],10,MN)),64)),t[36]||=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(ke,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`,zN,[H(`span`,BN,j(Re[e].title),1),H(`span`,VN,j(e===`editor`?Pe.value:Be(e)),1)])],10,RN)),64))]),H(`div`,HN,[H(`div`,UN,[H(`div`,WN,[H(`div`,GN,[H(`h2`,KN,[W(j(Re[d.value].title)+` `,1),je.value.includes(d.value)?(z(),B(`span`,qN)):G(``,!0)]),d.value===`languages`?(z(),B(`p`,JN,` The source language is translated into every other language. `)):d.value===`outputs`?(z(),B(`p`,YN,[...t[37]||=[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`,XN,[...t[38]||=[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`,ZN,` 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`,QN,[...t[39]||=[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`,$N,` Words the spell checker should never flag. Added here or from a cell's warning. `)):d.value===`editor`?(z(),B(`p`,eP,[...t[40]||=[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),ke.includes(d.value)?(z(),B(`p`,tP,[U(N(Ad),{class:`size-3.5`}),t[41]||=W(` Changes here save automatically. `,-1)])):G(``,!0)]),d.value===`languages`?(z(),B(`div`,nP,[H(`div`,rP,[U(N(KC),{for:`source-locale`},{default:P(()=>[...t[42]||=[W(`Source language`,-1)]]),_:1}),U(N(OS),{modelValue:c.sourceLocale,"onUpdate:modelValue":t[0]||=e=>c.sourceLocale=e},{default:P(()=>[U(N(SC),{id:`source-locale`},{default:P(()=>[c.sourceLocale?(z(),B(`span`,iP,[U(uT,{code:c.sourceLocale,"show-name":``,size:14},null,8,[`code`])])):(z(),V(N(YS),{key:1,placeholder:`Select source`}))]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(c.locales,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[U(uT,{code:e,"show-name":``,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,aP,[U(N(KC),null,{default:P(()=>[t[43]||=W(` Languages `,-1),H(`span`,oP,j(c.locales.length),1)]),_:1}),H(`div`,sP,[(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(uT,{code:e,"show-name":``,size:14},null,8,[`code`]),e===c.sourceLocale?(z(),B(`span`,cP,`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=>Qe(e)},[U(N(kd),{class:`size-3`})],8,lP))],2))),128))]),H(`p`,uP,[U(N(Td),{class:`size-3.5`}),t[44]||=W(` Removing a language deletes its translations. `,-1)])]),H(`div`,dP,[U(N(KC),{for:`add-locale`},{default:P(()=>[...t[45]||=[W(`Add language`,-1)]]),_:1}),H(`div`,fP,[U(N(xC),{id:`add-locale`,modelValue:Xe.value,"onUpdate:modelValue":t[1]||=e=>Xe.value=e,class:`font-mono`,placeholder:`es`,onKeydown:Xl(Jl(Ze,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:Ze},{default:P(()=>[U(N(od),{class:`size-4`}),t[46]||=W(` Add`,-1)]),_:1})]),Xe.value.trim()?(z(),B(`p`,pP,[t[47]||=W(` Preview: `,-1),U(uT,{code:Xe.value.trim(),"show-name":``,size:14},null,8,[`code`])])):G(``,!0)])])):d.value===`outputs`?(z(),B(`div`,mP,[H(`div`,hP,[H(`div`,gP,[H(`span`,_P,[U(N(Ad),{class:`size-4`})]),t[48]||=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(jC),{modelValue:c.autoExport,"onUpdate:modelValue":t[2]||=e=>c.autoExport=e},null,8,[`modelValue`])]),H(`div`,vP,[H(`div`,yP,[H(`span`,bP,[U(N(sd),{class:`size-4`})]),t[49]||=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=>_t.value=!0},{default:P(()=>[U(N(sd),{class:`size-4`}),t[50]||=W(` Sync `,-1)]),_:1})]),H(`div`,xP,[H(`div`,SP,[H(`div`,CP,[H(`span`,wP,[U(N(Zu),{class:`size-4`})]),t[51]||=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(jC),{"model-value":tt.value,"onUpdate:modelValue":nt},null,8,[`model-value`])]),tt.value?(z(),B(`div`,TP,[H(`div`,EP,[(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=>rt(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(uT,{code:e,"show-name":``,size:14},null,8,[`code`])],10,DP))),128))]),H(`p`,OP,[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[59]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Format defaults`,-1),t[60]||=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`,kP,[H(`div`,AP,[t[53]||=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`,jP,[U(N(xC),{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[52]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])]),H(`div`,MP,[H(`div`,null,[H(`div`,NP,[t[55]||=W(` Sort keys `,-1),H(`span`,PP,[U(N(ed),{class:`size-2.5`}),t[54]||=W(` Locked`,-1)])]),t[56]||=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`,FP,[U(N(Du),{class:`size-3`}),t[57]||=W(` Always alphabetical`,-1)])]),H(`div`,IP,[t[58]||=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(jC),{modelValue:c.finalNewline,"onUpdate:modelValue":t[5]||=e=>c.finalNewline=e},null,8,[`modelValue`])])])]),H(`div`,null,[t[62]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Export targets`,-1),H(`div`,LP,[(z(!0),B(R,null,I(c.outputs,(e,t)=>(z(),V(IM,{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=>et(t)},null,8,[`output`,`format-indent`,`format-final-newline`,`locales`,`onUpdate:output`,`onRemove`]))),128)),c.outputs.length===0?(z(),B(`p`,RP,`No export targets configured.`)):G(``,!0),H(`div`,null,[U(N($),{variant:`ghost`,size:`sm`,class:`mt-1 pl-2`,onClick:$e},{default:P(()=>[U(N(od),{class:`size-4`}),t[61]||=W(` Add export target `,-1)]),_:1})])])])])):d.value===`ai`?(z(),B(`div`,zP,[H(`div`,BP,[U(N(OS),{"model-value":w.value??`__none__`,"onUpdate:modelValue":t[6]||=e=>lt(e===`__none__`?null:e)},{default:P(()=>[U(N(SC),{class:`w-44`},{default:P(()=>[U(N(YS),{placeholder:`No profile`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`__none__`},{default:P(()=>[...t[63]||=[W(`No profile`,-1)]]),_:1}),(z(!0),B(R,null,I(C.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),w.value?(z(),V(N(xC),{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=>dt(w.value,T.value),onKeydown:t[9]||=Xl(Jl(e=>dt(w.value,T.value),[`prevent`]),[`enter`])},null,8,[`modelValue`])):(z(),B(`span`,VP,`Using default settings`)),U(N($),{variant:`outline`,size:`sm`,class:`shrink-0`,onClick:ut},{default:P(()=>[U(N(od),{class:`size-4`}),t[64]||=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:ft},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])]),H(`div`,HP,[H(`div`,UP,[H(`div`,WP,[U(N(KC),{for:`ai-provider`},{default:P(()=>[...t[65]||=[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`,GP,[U(N(Du),{class:`size-3`}),t[66]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(OS),{modelValue:E.provider,"onUpdate:modelValue":t[10]||=e=>E.provider=e},{default:P(()=>[U(N(SC),{id:`ai-provider`},{default:P(()=>[U(N(YS),{placeholder:`Select provider`})]),_:1}),U(N(CC),null,{default:P(()=>[(z(),B(R,null,I(r,e=>U(N(TC),{key:e.value,value:e.value},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),H(`p`,KP,j(ot.value),1)]),H(`div`,qP,[U(N(KC),{for:`ai-model`},{default:P(()=>[...t[67]||=[W(`Model`,-1)]]),_:1}),U(N(xC),{id:`ai-model`,modelValue:E.model,"onUpdate:modelValue":t[11]||=e=>E.model=e,class:`font-mono`,placeholder:ct.value},null,8,[`modelValue`,`placeholder`]),st.value.length?(z(),B(`p`,JP,[t[68]||=W(` Examples: `,-1),(z(!0),B(R,null,I(st.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,YP),t<st.value.length-1?(z(),B(`span`,XP,` · `)):G(``,!0)],64))),128))])):G(``,!0),it.value?(z(),B(`p`,ZP,[...t[69]||=[W(` For on-demand use, prefix the id with your region group — `,-1),H(`code`,{class:`font-mono`},`eu.`,-1),W(`, `,-1),H(`code`,{class:`font-mono`},`us.`,-1),W(` or `,-1),H(`code`,{class:`font-mono`},`apac.`,-1),W(` — so it resolves to an inference profile. `,-1)]])):G(``,!0)]),it.value?(z(),B(`div`,QP,[U(N(KC),{for:`ai-region`},{default:P(()=>[...t[70]||=[W(`Region`,-1)]]),_:1}),U(N(xC),{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[71]||=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`,$P,[U(N(KC),{for:`ai-endpoint`},{default:P(()=>[...t[72]||=[W(`Endpoint`,-1)]]),_:1}),U(N(xC),{id:`ai-endpoint`,modelValue:E.endpoint,"onUpdate:modelValue":t[13]||=e=>E.endpoint=e,class:`font-mono`,placeholder:at.value?`http://localhost:11434/v1`:`Default (leave empty)`},null,8,[`modelValue`,`placeholder`]),at.value?(z(),B(`p`,eF,[...t[73]||=[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`,tF,`Optional — for an in-region or self-hosted / OpenAI-compatible gateway.`))])),H(`div`,nF,[H(`div`,rF,[U(N($),{type:`button`,variant:`outline`,size:`sm`,disabled:ae.value,onClick:k},{default:P(()=>[ae.value?(z(),V(N(sd),{key:0,class:`size-3.5 animate-spin`})):(z(),V(N(Ad),{key:1,class:`size-3.5`})),W(` `+j(ae.value?`Testing…`:`Test connection`),1)]),_:1},8,[`disabled`]),oe.value?.ok?(z(),B(`span`,iF,[U(N(Du),{class:`size-3.5`}),t[74]||=W(` Connected `,-1)])):G(``,!0)]),oe.value&&!oe.value.ok?(z(),B(`div`,aF,[U(N(Td),{class:`mt-0.5 size-3.5 shrink-0`}),H(`span`,null,j(oe.value.error),1)])):G(``,!0),t[75]||=H(`p`,{class:`text-xs text-muted-foreground`},`Runs one throwaway translation to verify credentials, model access and connectivity.`,-1)]),t[101]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Translation`,-1),H(`div`,oF,[U(N(KC),{for:`ai-batch`},{default:P(()=>[...t[76]||=[W(`Batch size`,-1)]]),_:1}),U(N(xC),{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[77]||=H(`p`,{class:`text-xs text-muted-foreground`},`Strings sent per request.`,-1)]),H(`div`,sF,[U(N(KC),{for:`ai-concurrency`},{default:P(()=>[...t[78]||=[W(`Parallel locales`,-1)]]),_:1}),U(N(xC),{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[79]||=H(`p`,{class:`text-xs text-muted-foreground`},`How many locales to translate at once.`,-1)]),t[102]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context build`,-1),H(`div`,cF,[U(N(KC),{for:`ai-context-batch`},{default:P(()=>[...t[80]||=[W(`Batch size`,-1)]]),_:1}),U(N(xC),{id:`ai-context-batch`,modelValue:E.contextBatchSize,"onUpdate:modelValue":t[16]||=e=>E.contextBatchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.batchSize||25),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[81]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keys per request. Defaults to translation batch size.`,-1)]),H(`div`,lF,[U(N(KC),{for:`ai-context-concurrency`},{default:P(()=>[...t[82]||=[W(`Concurrency`,-1)]]),_:1}),U(N(xC),{id:`ai-context-concurrency`,modelValue:E.contextConcurrency,"onUpdate:modelValue":t[17]||=e=>E.contextConcurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.concurrency||3),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[83]||=H(`p`,{class:`text-xs text-muted-foreground`},`Parallel context requests. Defaults to parallel locales.`,-1)]),at.value?(z(),B(`div`,uF,[U(N(jC),{id:`ai-vision`,modelValue:E.vision,"onUpdate:modelValue":t[18]||=e=>E.vision=e},null,8,[`modelValue`]),H(`div`,dF,[U(N(KC),{for:`ai-vision`},{default:P(()=>[...t[84]||=[W(`Vision`,-1)]]),_:1}),t[85]||=H(`p`,{class:`text-xs text-muted-foreground`},`Enable for models that support image input (e.g. translategemma, llava).`,-1)])])):G(``,!0),at.value?(z(),B(`div`,fF,[U(N(KC),{for:`ai-prompt-style`},{default:P(()=>[...t[86]||=[W(`Prompt style`,-1)]]),_:1}),U(N(OS),{"model-value":E.promptStyle||`__default__`,"onUpdate:modelValue":t[19]||=e=>E.promptStyle=e===`__default__`?``:e},{default:P(()=>[U(N(SC),{id:`ai-prompt-style`},{default:P(()=>[U(N(YS),{placeholder:`Default`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`__default__`},{default:P(()=>[...t[87]||=[W(`Default`,-1)]]),_:1}),U(N(TC),{value:`translategemma`},{default:P(()=>[...t[88]||=[W(`TranslateGemma`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`]),t[89]||=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),t[103]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Cost estimates`,-1),H(`div`,pF,[U(N(KC),null,{default:P(()=>[...t[90]||=[W(`Model prices`,-1)]]),_:1}),H(`div`,mF,[U(N($),{type:`button`,variant:`outline`,size:`sm`,disabled:ce.value,onClick:ue},{default:P(()=>[U(N(sd),{class:A([`size-3.5`,ce.value?`animate-spin`:``])},null,8,[`class`]),W(` `+j(ce.value?`Updating…`:`Update prices`),1)]),_:1},8,[`disabled`]),U(N($),{type:`button`,variant:`ghost`,size:`sm`,disabled:!se.value?.modelCount,onClick:_e},{default:P(()=>[U(N(pd),{class:`size-3.5`}),t[91]||=W(` Browse `,-1)]),_:1},8,[`disabled`]),se.value?.source?(z(),B(`span`,hF,[W(j(se.value.modelCount.toLocaleString())+` models from `+j(se.value.source),1),de.value?(z(),B(R,{key:0},[W(`, `+j(de.value),1)],64)):G(``,!0)])):(z(),B(`span`,gF,`No prices fetched yet`))]),t[92]||=H(`p`,{class:`text-xs text-muted-foreground`},`Fetches current per-model prices from models.dev for the cost estimate, covering models beyond the built-in Claude/GPT table. The manual overrides below always win.`,-1)]),U(N(L_),{open:fe.value,"onUpdate:open":t[21]||=e=>fe.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[93]||=[W(`Model prices`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[t[94]||=W(` Per-model $ / 1M tokens (input / output)`,-1),se.value?.source?(z(),B(R,{key:0},[W(` from `+j(se.value.source),1)],64)):G(``,!0),t[95]||=W(`. Click rows to compare. `,-1)]),_:1})]),_:1}),H(`div`,_F,[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(xC),{modelValue:ge.value,"onUpdate:modelValue":t[20]||=e=>ge.value=e,placeholder:`Search models…`,class:`pl-8`},null,8,[`modelValue`])]),H(`p`,vF,[xe.value>0?(z(),B(R,{key:0},[W(`Showing `+j(be.value.length)+` of `+j(ye.value.length.toLocaleString())+` matches — refine to narrow.`,1)],64)):(z(),B(R,{key:1},[W(j(ye.value.length.toLocaleString())+` model`+j(ye.value.length===1?``:`s`),1)],64)),t[96]||=W(` · click a row to compare `,-1)]),Te.value.length?(z(),B(`div`,yF,[t[97]||=H(`div`,{class:`flex items-center gap-3 text-[11px] text-muted-foreground`},[H(`span`,{class:`flex items-center gap-1`},[H(`span`,{class:`size-2 rounded-sm bg-sky-500`}),W(` Input`)]),H(`span`,{class:`flex items-center gap-1`},[H(`span`,{class:`size-2 rounded-sm bg-amber-500`}),W(` Output`)]),H(`span`,null,`$ / 1M tokens`)],-1),(z(!0),B(R,null,I(Te.value,e=>(z(),B(`div`,{key:e.id,class:`space-y-1`},[H(`div`,bF,[H(`span`,xF,j(e.id),1),H(`span`,SF,[H(`span`,CF,`$`+j(e.inputPerMTok)+` / $`+j(e.outputPerMTok),1),H(`button`,{type:`button`,class:`rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground`,"aria-label":`Remove ${e.id}`,onClick:t=>we(e.id)},[U(N(kd),{class:`size-3`})],8,wF)])]),H(`div`,TF,[H(`div`,{class:`h-full rounded-sm bg-sky-500`,style:me({width:De(e.inputPerMTok)})},null,4)]),H(`div`,EF,[H(`div`,{class:`h-full rounded-sm bg-amber-500`,style:me({width:De(e.outputPerMTok)})},null,4)])]))),128))])):G(``,!0),H(`div`,DF,[(z(!0),B(R,null,I(be.value,e=>(z(),B(`button`,{key:e.id,type:`button`,class:A([`flex w-full items-center justify-between gap-3 rounded px-1 py-1 text-left text-xs hover:bg-muted/60`,Ce(e.id)?`bg-muted`:``]),onClick:t=>we(e.id)},[H(`span`,kF,[Ce(e.id)?(z(),V(N(Du),{key:0,class:`size-3 shrink-0 text-sky-500`})):(z(),B(`span`,AF)),H(`span`,jF,j(e.id),1)]),H(`span`,MF,`$`+j(e.inputPerMTok)+` / $`+j(e.outputPerMTok),1)],10,OF))),128)),ye.value.length===0?(z(),B(`p`,NF,j(he.value?`No models match.`:`Loading…`),1)):G(``,!0)])]),_:1})]),_:1},8,[`open`]),H(`div`,PF,[U(N(KC),{for:`ai-price-in`},{default:P(()=>[...t[98]||=[W(`Input price ($ / 1M tokens)`,-1)]]),_:1}),U(N(xC),{id:`ai-price-in`,modelValue:E.inputPricePerMTok,"onUpdate:modelValue":t[22]||=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`,FF,[U(N(KC),{for:`ai-price-out`},{default:P(()=>[...t[99]||=[W(`Output price ($ / 1M tokens)`,-1)]]),_:1}),U(N(xC),{id:`ai-price-out`,modelValue:E.outputPricePerMTok,"onUpdate:modelValue":t[23]||=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[100]||=H(`p`,{class:`text-xs text-muted-foreground`},`Set both to override the fetched/built-in prices or to price a model neither covers.`,-1)])])])):d.value===`scan`?(z(),B(`div`,IF,[H(`div`,LF,[H(`div`,RF,[t[104]||=H(`div`,{class:`text-sm font-medium`},`Code usage index`,-1),H(`div`,zF,j(N(gw)),1)]),U(N($),{size:`sm`,variant:`outline`,disabled:N(pw),onClick:N(vw)},{default:P(()=>[N(pw)?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),W(` `+j(N(pw)?`Scanning…`:`Run scan`),1)]),_:1},8,[`disabled`,`onClick`])]),U(UM,{label:`Flutter accessors`,items:c.scanAccessors,mono:``,placeholder:`translations`,"onUpdate:items":t[24]||=e=>c.scanAccessors=e},{help:P(()=>[...t[105]||=[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(UM,{label:`Custom patterns`,items:c.scanPatterns,mono:``,placeholder:`LocaleKeys\\.(\\w+)\\.tr\\(\\)`,validate:gt,"onUpdate:items":t[25]||=e=>c.scanPatterns=e},{help:P(()=>[...t[106]||=[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(UM,{label:`Include globs`,items:c.scanInclude,mono:``,placeholder:`lib/**`,"onUpdate:items":t[26]||=e=>c.scanInclude=e},{help:P(()=>[...t[107]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Limit the scan to these globs. Empty scans everything.`,-1)]]),_:1},8,[`items`]),U(UM,{label:`Exclude globs`,items:c.scanExclude,mono:``,placeholder:`**/*.g.dart`,"onUpdate:items":t[27]||=e=>c.scanExclude=e},{help:P(()=>[...t[108]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Skipped on top of always-excluded dirs (node_modules, build, …).`,-1)]]),_:1},8,[`items`]),U(UM,{label:`Keep keys`,items:c.scanKeep,mono:``,placeholder:`validation.*`,"onUpdate:items":t[28]||=e=>c.scanKeep=e},{help:P(()=>[...t[109]||=[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`,BF,[H(`div`,null,[t[111]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Rules`,-1),H(`div`,VF,[(z(!0),B(R,null,I(N(Hj),e=>(z(),B(`div`,{key:e.id,class:`flex items-center justify-between gap-4 p-3.5`},[H(`div`,HF,[H(`div`,UF,[W(j(e.label)+` `,1),H(`code`,WF,j(e.id),1)]),H(`div`,GF,j(e.description),1)]),U(N(OS),{"model-value":c.lintRules[e.id]??e.default,"onUpdate:modelValue":t=>c.lintRules={...c.lintRules,[e.id]:t}},{default:P(()=>[U(N(SC),{class:A([`w-32 shrink-0`,c.lintRules[e.id]===`off`?`text-muted-foreground`:``])},{default:P(()=>[U(N(YS))]),_:1},8,[`class`]),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`error`},{default:P(()=>[W(`Error`+j(e.default===`error`?` ·`:``),1)]),_:2},1024),U(N(TC),{value:`warn`},{default:P(()=>[W(`Warning`+j(e.default===`warn`?` ·`:``),1)]),_:2},1024),U(N(TC),{value:`off`},{default:P(()=>[...t[110]||=[W(`Off`,-1)]]),_:1})]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])]))),128))]),t[112]||=H(`p`,{class:`mt-2 text-xs text-muted-foreground`},`· marks the built-in default.`,-1)]),U(UM,{label:`Ignore keys`,items:c.lintIgnore,mono:``,placeholder:`legacy.*`,"onUpdate:items":t[29]||=e=>c.lintIgnore=e},{help:P(()=>[...t[113]||=[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`,KF,[H(`div`,qF,[(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=>ht(e)},[U(N(kd),{class:`size-3`})],8,JF)]))),128)),c.customWords.length===0?(z(),B(`p`,YF,`No custom words yet.`)):G(``,!0)]),H(`div`,XF,[U(N(KC),{for:`add-word`},{default:P(()=>[...t[114]||=[W(`Add word`,-1)]]),_:1}),H(`div`,ZF,[U(N(xC),{id:`add-word`,modelValue:pt.value,"onUpdate:modelValue":t[30]||=e=>pt.value=e,class:`font-mono`,placeholder:`Glotfile`,onKeydown:Xl(Jl(mt,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:mt},{default:P(()=>[U(N(od),{class:`size-4`}),t[115]||=W(` Add`,-1)]),_:1})])])])):d.value===`editor`?(z(),B(`div`,QF,[H(`div`,$F,[H(`div`,eI,[U(N(KC),{for:`editor-select`},{default:P(()=>[...t[116]||=[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(()=>[Fe.value?(z(),B(`span`,tI,[U(N(Du),{class:`size-3`}),t[117]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(OS),{"model-value":N(JT),"onUpdate:modelValue":Le},{default:P(()=>[U(N(SC),{id:`editor-select`},{default:P(()=>[U(N(YS),{placeholder:`Select editor`})]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(N(GT),e=>(z(),V(N(TC),{key:e.id,value:e.id},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),H(`p`,nI,[U(N(ed),{class:`size-3.5`}),t[118]||=W(` Stored locally in `,-1),t[119]||=H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),t[120]||=W(` — clicking a usage opens the file via its URL scheme. `,-1)])])):G(``,!0)])]),ke.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]`,Me.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]`,Me.value>0?`text-foreground`:`text-muted-foreground`])},[Me.value>0?(z(),B(R,{key:0},[H(`span`,rI,j(Me.value),1),W(` Unsaved `+j(Me.value===1?`change`:`changes`)+` in `,1),H(`strong`,iI,j(Ne.value.join(`, `)),1)],64)):(z(),B(R,{key:1},[U(N(Du),{class:`size-3.5 shrink-0`}),t[121]||=W(` All changes saved `,-1)],64))],2),H(`div`,aI,[U(N($),{variant:`ghost`,size:`sm`,disabled:Me.value===0,onClick:t[31]||=e=>f.value=!f.value},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[122]||=W(` Discard `,-1)]),_:1},8,[`disabled`]),f.value?(z(),B(`div`,oI,[t[125]||=H(`p`,{class:`text-[13px] font-semibold`},`Discard all changes?`,-1),H(`p`,sI,` Reverts every unsaved edit in `+j(Ne.value.join(`, `))+`. `,1),H(`div`,cI,[U(N($),{size:`sm`,variant:`outline`,onClick:t[32]||=e=>f.value=!1},{default:P(()=>[...t[123]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:He},{default:P(()=>[...t[124]||=[W(`Discard`,-1)]]),_:1})])])):G(``,!0)]),U(N($),{size:`sm`,disabled:Me.value===0||u.value,onClick:Ve},{default:P(()=>[U(N(ud),{class:`size-4`}),t[126]||=W(` Save changes `,-1)]),_:1},8,[`disabled`])],2))])])):(z(),B(`div`,kN,` 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(Ge,[`self`])},[H(`div`,lI,[H(`h3`,uI,[U(N(Td),{class:`size-4 text-amber-500`}),t[127]||=W(` Unsaved changes `,-1)]),H(`p`,dI,[W(` You have `+j(Me.value)+` unsaved `+j(Me.value===1?`change`:`changes`)+` in `,1),H(`strong`,fI,j(Ne.value.join(`, `)),1),t[128]||=W(`. `,-1),H(`span`,pI,`Leaving now discards `+j(Me.value===1?`it`:`them`)+`.`,1)]),H(`div`,mI,[U(N($),{size:`sm`,variant:`outline`,class:`mr-auto`,onClick:Ge},{default:P(()=>[...t[129]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:Ke},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[130]||=W(` Discard & leave `,-1)]),_:1}),U(N($),{size:`sm`,disabled:u.value,onClick:qe},{default:P(()=>[U(N(ud),{class:`size-4`}),t[131]||=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`,hI,[U(N(Du),{class:`size-3.5`}),t[132]||=W(` Settings saved `,-1)])):G(``,!0)]),_:1}),_t.value?(z(),V(ON,{key:2,ref_key:`syncWizardRef`,ref:vt,onVnodeMounted:t[33]||=e=>vt.value?.init(),onDismiss:t[34]||=e=>_t.value=!1,onSynced:yt},null,512)):G(``,!0)],64))}}),yI={class:`min-h-0 flex-1 overflow-y-auto`},bI={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},xI={key:1,class:`flex h-full items-center justify-center p-8`},SI={class:`flex max-w-md flex-col items-center gap-3 text-center text-muted-foreground`},CI={key:2,class:`grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3 p-6`},wI=[`onClick`],TI={class:`flex aspect-video items-center justify-center overflow-hidden border-b bg-muted/30`},EI=[`src`,`alt`],DI={class:`flex flex-col gap-0.5 p-2.5`},OI={class:`truncate font-mono text-xs font-medium`},kI={class:`truncate text-xs text-muted-foreground`},AI={key:1,class:`truncate text-xs text-muted-foreground`},jI={class:`flex max-h-[70vh] items-center justify-center overflow-auto rounded-md border bg-muted/30 p-2`},MI=[`src`,`alt`],NI={key:0,class:`text-sm text-muted-foreground`},PI=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(),zh(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`,yI,[n.value?o.value.length===0?(z(),B(`div`,xI,[H(`div`,SI,[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`,CI,[(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`,TI,[H(`img`,{src:`/`+e.screenshot,alt:`Screenshot for ${e.key}`,class:`h-full w-full object-contain`},null,8,EI)]),H(`div`,DI,[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,OI,j(e.key),1)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(e.key),1)]),_:2},1024)]),_:2},1024),e.source?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,kI,j(e.source),1)]),_:2},1024),U(N(sw),null,{default:P(()=>[W(j(e.source),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,AI,`—`))])],8,wI))),128))])):(z(),B(`div`,bI,` Loading screenshots… `)),U(N(L_),{open:r.value!==null,"onUpdate:open":t[1]||=e=>{e||(r.value=null)}},{default:P(()=>[r.value?(z(),V(N(qC),{key:0,class:`max-w-3xl`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),{class:`break-all font-mono text-sm`},{default:P(()=>[W(j(r.value.key),1)]),_:1}),U(N(ZC),null,{default:P(()=>[W(j(r.value.source||`—`),1)]),_:1})]),_:1}),H(`div`,jI,[H(`img`,{src:`/`+r.value.screenshot,alt:`Screenshot for ${r.value.key}`,class:`max-h-[65vh] w-auto object-contain`},null,8,MI)]),r.value.entry.context?(z(),B(`p`,NI,[t[3]||=H(`span`,{class:`font-medium text-foreground`},`Context:`,-1),W(` `+j(r.value.entry.context),1)])):G(``,!0),U(N(YC),null,{default:P(()=>[U(N($),{size:`sm`,onClick:t[0]||=e=>N(Uh)(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`])]))}}),FI={class:`flex flex-col gap-1.5 px-4 py-3`},II={class:`flex items-center gap-2`},LI={class:`truncate font-mono text-xs text-muted-foreground`},RI={class:`flex items-start gap-2 text-sm`},zI={class:`min-w-0 flex-1 break-words`},BI={class:`min-w-0 flex-1 break-words`},VI={key:0,class:`text-destructive`},HI={key:1},UI={key:0,class:`text-xs text-muted-foreground`},WI={key:1,class:`flex flex-wrap gap-1`},GI={key:2,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},KI={class:`truncate font-mono`},qI=F({__name:`AiItemRow`,props:{item:{},result:{}},setup(e){function t(e){return e.doNotTranslate?`${e.term} (do-not-translate)`:e.forced?`${e.term} → ${e.forced}`:e.term}return(n,r)=>(z(),B(`div`,FI,[H(`div`,II,[H(`span`,LI,j(e.item.key),1),e.item.targetLocale?(z(),V(N(kC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(e.item.targetLocale),1)]),_:1})):G(``,!0)]),H(`div`,RI,[H(`span`,zI,j(e.item.source),1),U(N(bu),{class:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),H(`span`,BI,[e.result?.error?(z(),B(`span`,VI,j(e.result.error),1)):(z(),B(`span`,HI,j(e.result?.translation??e.result?.value),1))])]),e.item.context?(z(),B(`p`,UI,j(e.item.context),1)):G(``,!0),e.item.glossary?.length?(z(),B(`div`,WI,[(z(!0),B(R,null,I(e.item.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(t(e)),1))),128))])):G(``,!0),e.item.screenshot?(z(),B(`div`,GI,[U(N(Yu),{class:`size-3.5 shrink-0`}),H(`span`,KI,j(e.item.screenshot),1)])):G(``,!0)]))}}),JI={key:0,class:`divide-y`},YI=[`data-index`],XI=100,ZI=F({__name:`AiItemList`,props:{items:{},results:{}},setup(e){let t=e,n=q(()=>new Map(t.results.map(e=>[e.id,e]))),r=e=>n.value.get(e),i=q(()=>t.items.length>XI),a=M(null),o=Sp(q(()=>({count:t.items.length,getScrollElement:()=>a.value,estimateSize:()=>72,overscan:12,getItemKey:e=>t.items[e]?.id??e}))),s=q(()=>o.value.getVirtualItems()),c=q(()=>o.value.getTotalSize());return(t,n)=>i.value?(z(),B(`div`,{key:1,ref_key:`parent`,ref:a,class:`max-h-[28rem] overflow-auto`},[H(`div`,{style:me({height:`${c.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(s.value,t=>(z(),B(`div`,{key:t.key,ref_for:!0,ref:e=>N(o).measureElement(e),"data-index":t.index,style:me({position:`absolute`,top:`${t.start}px`,left:`0`,width:`100%`}),class:`border-b`},[e.items[t.index]?(z(),V(qI,{key:0,item:e.items[t.index],result:r(e.items[t.index].id)},null,8,[`item`,`result`])):G(``,!0)],12,YI))),128))],4)],512)):(z(),B(`div`,JI,[(z(!0),B(R,null,I(e.items,e=>(z(),V(qI,{key:e.id,item:e,result:r(e.id)},null,8,[`item`,`result`]))),128))]))}}),QI={class:`min-h-0 flex-1 overflow-y-auto p-4`},$I={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},eL={key:1,class:`mx-auto flex max-w-4xl flex-col gap-4`},tL={key:0,class:`flex flex-wrap gap-1.5`},nL=[`onClick`],rL={class:`flex flex-wrap items-center gap-3 border-b px-4 py-2.5`},iL={class:`text-sm font-medium`},aL={class:`text-sm text-muted-foreground`},oL={class:`border-b`},sL={class:`overflow-x-auto whitespace-pre-wrap break-words bg-muted/40 px-4 py-3 font-mono text-xs leading-relaxed`},cL={class:`flex flex-wrap items-center gap-x-3 gap-y-1 border-b px-4 py-2 text-xs text-muted-foreground`},lL={key:0,class:`text-destructive`},uL=[`onClick`],dL={key:1,class:`flex flex-col gap-1.5 px-4 py-3`},fL={key:0,class:`flex items-center gap-2`},pL={class:`truncate font-mono text-xs text-muted-foreground`},mL={key:1,class:`flex items-start gap-2 text-sm`},hL=10,gL=F({__name:`ActivityView`,setup(e){let t=M([]),n=M(!0),r=M(`all`);async function i(){try{t.value=await Bf()}catch(e){Q.error(e.message)}finally{n.value=!1}}Gi(i),zh(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=>Ch(`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`),l=M(new Map),u=e=>e.items?.length??0,d=e=>(e.results??[]).filter(e=>e.error).length;function f(e){return l.value.get(e)??u(e)<=hL}function p(e){let t=new Map(l.value);t.set(e,!f(e)),l.value=t}function m(e){return e==null||e===``?`∅`:typeof e==`string`?e:JSON.stringify(e)}let h=e=>typeof e==`object`&&!!e;return(e,i)=>(z(),B(`div`,QI,[!n.value&&t.value.length===0?(z(),B(`p`,$I,` No activity yet — edits, translations, and config changes will show up here. `)):(z(),B(`div`,eL,[o.value.length>1?(z(),B(`div`,tL,[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,nL))),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`,rL,[H(`span`,iL,j(new Date(e.at).toLocaleString()),1),U(N(kC),{variant:`outline`,class:`font-mono uppercase`},{default:P(()=>[W(j(e.kind),1)]),_:2},1024),H(`span`,aL,j(e.summary),1),e.model?(z(),V(N(kC),{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`,oL,[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`,sL,j(e.system),1)]),H(`div`,cL,[d(e)?(z(),B(`span`,lL,j(d(e))+` `+j(d(e)===1?`error`:`errors`),1)):G(``,!0),u(e)?(z(),B(`button`,{key:1,type:`button`,class:`ml-auto rounded px-2 py-0.5 font-medium hover:bg-muted hover:text-foreground`,onClick:t=>p(e)},j(f(e)?`Hide items`:`Show ${u(e)} items`),9,uL)):G(``,!0)]),f(e)&&u(e)?(z(),V(ZI,{key:0,items:e.items??[],results:e.results??[]},null,8,[`items`,`results`])):G(``,!0)],64)):e.key||e.before!==void 0||e.after!==void 0?(z(),B(`div`,dL,[e.key?(z(),B(`div`,fL,[H(`span`,pL,j(e.key),1),e.locale?(z(),V(N(kC),{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`,mL,[e.before===void 0?G(``,!0):(z(),B(`span`,{key:0,class:A(N(Ch)(`min-w-0 flex-1 break-words text-muted-foreground`,h(e.before)&&`font-mono text-xs`))},j(m(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(Ch)(`min-w-0 flex-1 break-words`,h(e.after)&&`font-mono text-xs`))},j(m(e.after)),3))])):G(``,!0)])):G(``,!0)]))),128))]))]))}}),_L=[{id:`home`,title:`Home`,section:``,html:`<h1>Glotfile</h1>
|
|
8
|
+
`))}return()=>i.value||r.value||o.value?Ks(t.default({present:o.value})[0],{ref:e=>{let t=Cg(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),j_=F({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=Mg(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)}}}),M_=[`area`,`img`,`input`],N_=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`&&M_.includes(r)?()=>Ks(r,t):r===`template`?()=>Ks(j_,t,{default:n.default}):()=>Ks(e.as,t,{default:n.default})}});function P_(){let e=M();return{primitiveElement:e,currentElement:q(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Cg(e))}}var[F_,I_]=Qh(`DialogRoot`),L_=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=jg(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=M(),a=M(),{modal:o}=yn(n);return I_({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})}}),R_=F({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;e_();let n=F_();return(e,r)=>(z(),V(N(N_),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`]))}}),z_=`dismissableLayer.pointerDownOutside`,B_=`dismissableLayer.focusOutside`;function V_(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 H_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1),a=M(()=>{});return Cr(o=>{if(!og||!mn(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(V_(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){eg(z_,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 U_(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=M(!1);return Cr(a=>{if(!og||!mn(n))return;let o=async n=>{if(!t?.value)return;await Qn(),await Qn();let r=n.target;!t.value||!r||V_(t.value,r)||n.target&&!i.value&&eg(B_,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 W_=Yt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),G_=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}=e_(),o=q(()=>a.value?.ownerDocument??globalThis.document),s=q(()=>W_.layersRoot),c=q(()=>a.value?Array.from(s.value).indexOf(a.value):-1),l=q(()=>W_.layersWithOutsidePointerEventsDisabled.size>0),u=q(()=>{let e=Array.from(s.value),[t]=[...W_.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return c.value>=n}),d=H_(async e=>{let t=[...W_.branches].some(t=>t?.contains(e.target));!u.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await Qn(),e.defaultPrevented||r(`dismiss`))},a),f=U_(e=>{[...W_.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},a);return Og(`Escape`,e=>{c.value===s.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),Cr(e=>{a.value&&(n.disableOutsidePointerEvents&&(W_.layersWithOutsidePointerEventsDisabled.size===0&&(W_.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents=`none`),W_.layersWithOutsidePointerEventsDisabled.add(a.value)),s.value.add(a.value),e(()=>{n.disableOutsidePointerEvents&&W_.layersWithOutsidePointerEventsDisabled.size===1&&!tg(W_.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=W_.originalBodyPointerEvents)}))}),Cr(e=>{e(()=>{a.value&&(s.value.delete(a.value),W_.layersWithOutsidePointerEventsDisabled.delete(a.value))})}),(e,t)=>(z(),V(N(N_),{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`]))}}),K_=ag(()=>M([]));function q_(){let e=K_();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=J_(e.value,t),e.value.unshift(t)},remove(t){e.value=J_(e.value,t),e.value[0]?.resume()}}}function J_(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var Y_=`focusScope.autoFocusOnMount`,X_=`focusScope.autoFocusOnUnmount`,Z_={bubbles:!1,cancelable:!0};function Q_(e,{select:t=!1}={}){let n=$h();for(let r of e)if(iv(r,{select:t}),$h()!==n)return!0}function $_(e){let t=ev(e);return[tv(t,e),tv(t.reverse(),e)]}function ev(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 tv(e,t){for(let n of e)if(!nv(n,{upTo:t}))return n}function nv(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 rv(e){return e instanceof HTMLInputElement&&`select`in e}function iv(e,{select:t=!1}={}){if(e&&e.focus){let n=$h();e.focus({preventScroll:!0}),e!==n&&rv(e)&&t&&e.select()}}var av=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}=e_(),o=M(null),s=q_(),c=Yt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});Cr(e=>{if(!og)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:iv(o.value,{select:!0})}function i(e){if(c.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||iv(o.value,{select:!0}))}function s(e){let n=o.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||iv(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=$h();if(!t.contains(n)){let e=new CustomEvent(Y_,Z_);t.addEventListener(Y_,e=>r(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(Q_(ev(t),{select:!0}),$h()===n&&iv(t))}e(()=>{t.removeEventListener(Y_,e=>r(`mountAutoFocus`,e));let e=new CustomEvent(X_,Z_),i=e=>{r(`unmountAutoFocus`,e)};t.addEventListener(X_,i),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||iv(n??document.body,{select:!0}),t.removeEventListener(X_,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=$h();if(t&&r){let t=e.currentTarget,[i,a]=$_(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&iv(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&iv(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(z(),V(N(N_),{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`]))}}),ov=`menu.itemSelect`,sv=[`Enter`,` `],cv=[`ArrowDown`,`PageUp`,`Home`],lv=[`ArrowUp`,`PageDown`,`End`],uv=[...cv,...lv];[...sv],[...sv];function dv(e){return e?`open`:`closed`}function fv(e){let t=$h();for(let n of e)if(n===t||(n.focus(),$h()!==t))return}function pv(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 mv(e,t){return t?pv({x:e.clientX,y:e.clientY},t):!1}function hv(e){return e.pointerType===`mouse`}var gv=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=F_(),{forwardRef:a,currentElement:o}=e_();return i.titleId||=x_(void 0,`reka-dialog-title`),i.descriptionId||=x_(void 0,`reka-dialog-description`),Gi(()=>{i.contentElement=o,$h()!==document.body&&(i.triggerElement.value=$h())}),(e,t)=>(z(),V(N(av),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),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(dv)(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`]))}}),_v=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=F_(),a=Jg(r),{forwardRef:o,currentElement:s}=e_();return y_(s),(e,t)=>(z(),V(gv,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`]))}}),vv=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=Jg(t);e_();let i=F_(),a=M(!1),o=M(!1);return(e,t)=>(z(),V(gv,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))}}),yv=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=F_(),a=Jg(r),{forwardRef:o}=e_();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(_v,K({key:0,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(vv,K({key:1,ref:N(o)},{...n,...N(a),...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),bv=F({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;e_();let n=F_();return(e,r)=>(z(),V(N(N_),K(t,{id:N(n).descriptionId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),xv=F({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=F_();return Ug(!0),e_(),(e,n)=>(z(),V(N(N_),{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`]))}}),Sv=F({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=F_(),{forwardRef:n}=e_();return(e,r)=>N(t)?.modal.value?(z(),V(N(A_),{key:0,present:e.forceMount||N(t).open.value},{default:P(()=>[U(xv,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)}}),Cv=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=Tg();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)}}),wv=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Tv=F({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=F_();return e_(),(e,r)=>(z(),V(N(N_),K(t,{id:N(n).titleId}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ev=`data-reka-collection-item`;function Dv(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(`[${Ev}]`)),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}=P_();return Er(a,()=>{i.collectionRef.value=a.value}),()=>Ks(j_,{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}=P_();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(j_,{...n,[Ev]:``,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 Ov=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(N_),{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`]))}}),kv=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}=P_();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(Ov,K({ref_key:`primitiveElement`,ref:n},{...t,...e.$attrs},{as:`input`}),null,16))}}),Av=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(kv,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(kv,K({key:n.name},{ref_for:!0},{...t,...e.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`]))),128))],2112))}});function jv(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Mv(e,t,n)):Mv(e,t,n)}function Mv(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]:Yh(e,t)}var Nv=`rovingFocusGroup.onEntryFocus`,Pv={bubbles:!1,cancelable:!0},Fv={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Iv(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Lv(e,t,n){let r=Iv(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Fv[r]}function Rv(e,t=!1){let n=$h();for(let r of e)if(r===n||(r.focus({preventScroll:t}),$h()!==n))return}function zv(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Bv,Vv]=Qh(`ListboxRoot`),Hv=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}=Dv({isProvider:!0}),{handleTypeaheadSearch:f}=T_(),{primitiveElement:p,currentElement:m}=P_(),h=S_(),g=qg(u),_=$g(m),v=M(),y=M(!1),b=M(!0),x=jg(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=>Mv(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`&&Mv(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=ig(),ee=ig(),te=ig();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=>Mv(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=Lv(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=Xh(n.map(e=>e.value),v.value,r)}}async function fe(e,t=!0){if(og)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}),Vv({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(N_),{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(Av),{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`]))}}),Uv=F({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:t}=Dv(),n=Bv(),r=vg(!1,10);return(e,i)=>(z(),V(N(t),null,{default:P(()=>[U(N(N_),{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}))}}),Wv=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=jg(n,`modelValue`,t,{defaultValue:``,passive:n.modelValue===void 0}),i=Bv(),{primitiveElement:a,currentElement:o}=P_(),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}=Kg(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(N_),{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`]))}}),Gv=`listbox.select`,[Kv,qv]=Qh(`ListboxItem`),Jv=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=x_(void 0,`reka-listbox-item`),{CollectionItem:a}=Dv(),{forwardRef:o,currentElement:s}=e_(),c=Bv(),l=q(()=>s.value!=null&&s.value===c.highlightedElement.value),u=q(()=>jv(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){eg(Gv,f,{originalEvent:e,value:n.value})}return qv({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(N_),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`]))}}),Yv=F({__name:`ListboxItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e;e_();let n=Kv();return(e,r)=>N(n).isSelected.value?(z(),V(N(N_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),[Xv,Zv]=Qh(`PopperRoot`),Qv=F({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=M();return Zv({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),$v=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}=e_(),i=Xv();return wr(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(z(),V(N(N_),{ref:N(n),as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function ey(e){return e!==null}function ty(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]=ny(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 ny(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var ry=[`top`,`right`,`bottom`,`left`],iy=Math.min,ay=Math.max,oy=Math.round,sy=Math.floor,cy=e=>({x:e,y:e}),ly={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function uy(e,t,n){return ay(e,iy(t,n))}function dy(e,t){return typeof e==`function`?e(t):e}function fy(e){return e.split(`-`)[0]}function py(e){return e.split(`-`)[1]}function my(e){return e===`x`?`y`:`x`}function hy(e){return e===`y`?`height`:`width`}function gy(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function _y(e){return my(gy(e))}function vy(e,t,n){n===void 0&&(n=!1);let r=py(e),i=_y(e),a=hy(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Dy(o)),[o,Dy(o)]}function yy(e){let t=Dy(e);return[by(e),t,by(t)]}function by(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var xy=[`left`,`right`],Sy=[`right`,`left`],Cy=[`top`,`bottom`],wy=[`bottom`,`top`];function Ty(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Sy:xy:t?xy:Sy;case`left`:case`right`:return t?Cy:wy;default:return[]}}function Ey(e,t,n,r){let i=py(e),a=Ty(fy(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(by)))),a}function Dy(e){let t=fy(e);return ly[t]+e.slice(t.length)}function Oy(e){return{top:0,right:0,bottom:0,left:0,...e}}function ky(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Oy(e)}function Ay(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 jy(e,t,n){let{reference:r,floating:i}=e,a=gy(t),o=_y(t),s=hy(o),c=fy(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(py(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 My(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}=dy(t,e),p=ky(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ay(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=Ay(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 Ny=50,Py=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:My},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=jy(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<Ny&&(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}=jy(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Fy=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}=dy(e,t)||{};if(l==null)return{};let d=ky(u),f={x:n,y:r},p=_y(i),m=hy(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=iy(d[_],T),D=iy(d[v],T),ee=E,te=C-h[m]-D,ne=C/2-h[m]/2+w,O=uy(ee,ne,te),re=!c.arrow&&py(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}}}),Iy=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}=dy(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=fy(r),_=gy(o),v=fy(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Dy(o)]:yy(o)),x=p!==`none`;!d&&x&&b.push(...Ey(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=vy(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`&&_!==gy(t))||T.every(e=>gy(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=gy(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 Ly(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ry(e){return ry.some(t=>e[t]>=0)}var zy=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=dy(e,t);switch(i){case`referenceHidden`:{let e=Ly(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Ry(e)}}}case`escaped`:{let e=Ly(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Ry(e)}}}default:return{}}}}},By=new Set([`left`,`top`]);async function Vy(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=fy(n),s=py(n),c=gy(n)===`y`,l=By.has(o)?-1:1,u=a&&c?-1:1,d=dy(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 Hy=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 Vy(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}}}}},Uy=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}=dy(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=gy(fy(i)),p=my(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=uy(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=uy(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}}}}}},Wy=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}=dy(e,t),u={x:n,y:r},d=gy(i),f=my(d),p=u[f],m=u[d],h=dy(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=By.has(fy(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}}}},Gy=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}=dy(e,t),u=await o.detectOverflow(t,l),d=fy(i),f=py(i),p=gy(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=iy(h-u[g],v),x=iy(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=ay(u.left,0),t=ay(u.right,0),n=ay(u.top,0),r=ay(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:ay(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:ay(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 Ky(){return typeof window<`u`}function qy(e){return Xy(e)?(e.nodeName||``).toLowerCase():`#document`}function Jy(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Yy(e){return((Xy(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Xy(e){return Ky()?e instanceof Node||e instanceof Jy(e).Node:!1}function Zy(e){return Ky()?e instanceof Element||e instanceof Jy(e).Element:!1}function Qy(e){return Ky()?e instanceof HTMLElement||e instanceof Jy(e).HTMLElement:!1}function $y(e){return!Ky()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Jy(e).ShadowRoot}function eb(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=db(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function tb(e){return/^(table|td|th)$/.test(qy(e))}function nb(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var rb=/transform|translate|scale|rotate|perspective|filter/,ib=/paint|layout|strict|content/,ab=e=>!!e&&e!==`none`,ob;function sb(e){let t=Zy(e)?db(e):e;return ab(t.transform)||ab(t.translate)||ab(t.scale)||ab(t.rotate)||ab(t.perspective)||!lb()&&(ab(t.backdropFilter)||ab(t.filter))||rb.test(t.willChange||``)||ib.test(t.contain||``)}function cb(e){let t=pb(e);for(;Qy(t)&&!ub(t);){if(sb(t))return t;if(nb(t))return null;t=pb(t)}return null}function lb(){return ob??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ob}function ub(e){return/^(html|body|#document)$/.test(qy(e))}function db(e){return Jy(e).getComputedStyle(e)}function fb(e){return Zy(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function pb(e){if(qy(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||$y(e)&&e.host||Yy(e);return $y(t)?t.host:t}function mb(e){let t=pb(e);return ub(t)?e.ownerDocument?e.ownerDocument.body:e.body:Qy(t)&&eb(t)?t:mb(t)}function hb(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=mb(e),i=r===e.ownerDocument?.body,a=Jy(r);if(i){let e=gb(a);return t.concat(a,a.visualViewport||[],eb(r)?r:[],e&&n?hb(e):[])}else return t.concat(r,hb(r,[],n))}function gb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function _b(e){let t=db(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Qy(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=oy(n)!==a||oy(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function vb(e){return Zy(e)?e:e.contextElement}function yb(e){let t=vb(e);if(!Qy(t))return cy(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=_b(t),o=(a?oy(n.width):n.width)/r,s=(a?oy(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var bb=cy(0);function xb(e){let t=Jy(e);return!lb()||!t.visualViewport?bb:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Sb(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Jy(e)?!1:t}function Cb(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=vb(e),o=cy(1);t&&(r?Zy(r)&&(o=yb(r)):o=yb(e));let s=Sb(a,n,r)?xb(a):cy(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=Jy(a),t=r&&Zy(r)?Jy(r):r,n=e,i=gb(n);for(;i&&r&&t!==n;){let e=yb(i),t=i.getBoundingClientRect(),r=db(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=Jy(i),i=gb(n)}}return Ay({width:u,height:d,x:c,y:l})}function wb(e,t){let n=fb(e).scrollLeft;return t?t.left+n:Cb(Yy(e)).left+n}function Tb(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-wb(e,n),y:n.top+t.scrollTop}}function Eb(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Yy(r),s=t?nb(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=cy(1),u=cy(0),d=Qy(r);if((d||!d&&!a)&&((qy(r)!==`body`||eb(o))&&(c=fb(r)),d)){let e=Cb(r);l=yb(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Tb(o,c):cy(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 Db(e){return Array.from(e.getClientRects())}function Ob(e){let t=Yy(e),n=fb(e),r=e.ownerDocument.body,i=ay(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=ay(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+wb(e),s=-n.scrollTop;return db(r).direction===`rtl`&&(o+=ay(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var kb=25;function Ab(e,t){let n=Jy(e),r=Yy(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=lb();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=wb(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<=kb&&(a-=o)}else l<=kb&&(a+=l);return{width:a,height:o,x:s,y:c}}function jb(e,t){let n=Cb(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Qy(e)?yb(e):cy(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Mb(e,t,n){let r;if(t===`viewport`)r=Ab(e,n);else if(t===`document`)r=Ob(Yy(e));else if(Zy(t))r=jb(t,n);else{let n=xb(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ay(r)}function Nb(e,t){let n=pb(e);return n===t||!Zy(n)||ub(n)?!1:db(n).position===`fixed`||Nb(n,t)}function Pb(e,t){let n=t.get(e);if(n)return n;let r=hb(e,[],!1).filter(e=>Zy(e)&&qy(e)!==`body`),i=null,a=db(e).position===`fixed`,o=a?pb(e):e;for(;Zy(o)&&!ub(o);){let t=db(o),n=sb(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||eb(o)&&!n&&Nb(e,o))?r=r.filter(e=>e!==o):i=t,o=pb(o)}return t.set(e,r),r}function Fb(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?nb(t)?[]:Pb(t,this._c):[].concat(n),r],o=Mb(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=Mb(t,a[e],i);s=ay(n.top,s),c=iy(n.right,c),l=iy(n.bottom,l),u=ay(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Ib(e){let{width:t,height:n}=_b(e);return{width:t,height:n}}function Lb(e,t,n){let r=Qy(t),i=Yy(t),a=n===`fixed`,o=Cb(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=cy(0);function l(){c.x=wb(i)}if(r||!r&&!a)if((qy(t)!==`body`||eb(i))&&(s=fb(t)),r){let e=Cb(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?Tb(i,s):cy(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 Rb(e){return db(e).position===`static`}function zb(e,t){if(!Qy(e)||db(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Yy(e)===n&&(n=n.ownerDocument.body),n}function Bb(e,t){let n=Jy(e);if(nb(e))return n;if(!Qy(e)){let t=pb(e);for(;t&&!ub(t);){if(Zy(t)&&!Rb(t))return t;t=pb(t)}return n}let r=zb(e,t);for(;r&&tb(r)&&Rb(r);)r=zb(r,t);return r&&ub(r)&&Rb(r)&&!sb(r)?n:r||cb(e)||n}var Vb=async function(e){let t=this.getOffsetParent||Bb,n=this.getDimensions,r=await n(e.floating);return{reference:Lb(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Hb(e){return db(e).direction===`rtl`}var Ub={convertOffsetParentRelativeRectToViewportRelativeRect:Eb,getDocumentElement:Yy,getClippingRect:Fb,getOffsetParent:Bb,getElementRects:Vb,getClientRects:Db,getDimensions:Ib,getScale:yb,isElement:Zy,isRTL:Hb};function Wb(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Gb(e,t){let n=null,r,i=Yy(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=sy(d),h=sy(i.clientWidth-(u+f)),g=sy(i.clientHeight-(d+p)),_=sy(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:ay(0,iy(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&&!Wb(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 Kb(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=vb(e),u=i||a?[...l?hb(l):[],...t?hb(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Gb(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?Cb(e):null;c&&g();function g(){let t=Cb(e);h&&!Wb(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 qb=Hy,Jb=Uy,Yb=Iy,Xb=Gy,Zb=zy,Qb=Fy,$b=Wy,ex=(e,t,n)=>{let r=new Map,i={platform:Ub,...n},a={...i.platform,_c:r};return Py(e,t,{...i,platform:a})};function tx(e){return typeof e==`object`&&!!e&&`$el`in e}function nx(e){if(tx(e)){let t=e.$el;return Xy(t)&&qy(t)===`#comment`?null:t}return e}function rx(e){return typeof e==`function`?e():N(e)}function ix(e){return{name:`arrow`,options:e,fn(t){let n=nx(rx(e.element));return n==null?{}:Qb({element:n,padding:e.padding}).fn(t)}}}function ax(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ox(e,t){let n=ax(e);return Math.round(t*n)/n}function sx(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=q(()=>rx(n.open)??!0),a=q(()=>rx(n.middleware)),o=q(()=>rx(n.placement)??`bottom`),s=q(()=>rx(n.strategy)??`absolute`),c=q(()=>rx(n.transform)??!0),l=q(()=>nx(e.value)),u=q(()=>nx(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=ox(u.value,d.value),n=ox(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...ax(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;ex(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 cx={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},[lx,ux]=Qh(`PopperContent`),dx=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}},{...cx}),emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,i=Xv(),{forwardRef:a,currentElement:o}=e_(),s=M(),c=M(),{width:l,height:u}=C_(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(ey),altBoundary:p.value.length>0})),h=q(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),g=ng(()=>[qb({mainAxis:n.sideOffset+u.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&Yb({...m.value,...h.value}),n.avoidCollisions&&Jb({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?$b():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&Yb({...m.value,...h.value}),Xb({...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&&ix({element:c.value,padding:n.arrowPadding}),ty({arrowWidth:l.value,arrowHeight:u.value}),n.hideWhenDetached&&Zb({strategy:`referenceHidden`,...m.value})]),{floatingStyles:_,placement:v,isPositioned:y,middlewareData:b,update:x}=sx(q(()=>n.reference??i.anchor.value),s,{strategy:n.positionStrategy,placement:d,whileElementsMounted:(...e)=>Kb(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:g}),S=q(()=>ny(v.value)[0]),C=q(()=>ny(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)}),ux({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(N_),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))}}),[fx,px]=Qh(`ComboboxRoot`),mx=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}=P_(),{multiple:s,disabled:c,ignoreFilter:l,resetSearchTermOnSelect:u,openOnFocus:d,openOnClick:f,dir:p,resetModelValueOnClear:m,highlightOnHover:h}=yn(r),g=qg(p),_=jg(r,`modelValue`,i,{defaultValue:r.defaultValue??(s.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),v=jg(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=ig(),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}=Yg({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}),px({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(Qv),null,{default:P(()=>[U(N(Hv),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}))}}),hx=F({__name:`ComboboxAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{forwardRef:t}=e_();return(e,n)=>(z(),V(N($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),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`]))}}),[gx,_x]=Qh(`ComboboxContent`),vx=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=fx(),o=q(()=>a.ignoreFilter.value?a.allItems.value.size===0:a.filterState.value.count===0),{forwardRef:s,currentElement:c}=e_();Ug(n.bodyLock),Zg(),y_(a.parentElement);let l=t_(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)`};_x({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=$h();d.value&&(!e||e===document.body)&&a.triggerElement.value?.focus()}),(e,t)=>(z(),V(N(Uv),{"as-child":``},{default:P(()=>[U(N(av),{"as-child":``,onMountAutoFocus:t[5]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[6]||=Jl(()=>{},[`prevent`])},{default:P(()=>[U(N(G_),{"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(dx):N(N_)),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}))}}),yx=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=n_(e,t),{forwardRef:r}=e_(),i=fx();return i.contentId||=x_(void 0,`reka-combobox-content`),(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[U(vx,K({...N(n),...e.$attrs},{ref:N(r)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`]))}}),bx=F({__name:`ComboboxEmpty`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=fx(),r=q(()=>n.ignoreFilter.value?n.allItems.value.size===0:n.filterState.value.count===0);return(e,n)=>r.value?(z(),V(N(N_),ye(K({key:0},t)),{default:P(()=>[L(e.$slots,`default`,{},()=>[n[0]||=W(`No options`)])]),_:3},16)):G(`v-if`,!0)}}),[xx,Sx]=Qh(`ComboboxGroup`),Cx=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=fx(),a=Bv(),{primitiveElement:o,currentElement:s}=P_(),c=jg(n,`modelValue`,r,{passive:n.modelValue===void 0});Gi(()=>{s.value&&i.onInputElementChange(s.value)});let{isComposing:l,handleCompositionStart:u,handleCompositionEnd:d}=Kg(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(Wv),{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`]))}}),wx=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=x_(void 0,`reka-combobox-item`),a=fx(),o=xx(null),{primitiveElement:s,currentElement:c}=P_();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(Jv),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)}}),Tx=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(Yv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Ex=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),Dx=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}=e_(),i=fx(),a=q(()=>t.disabled||i.disabled.value||!1);return Gi(()=>{r.value&&i.onTriggerElementChange(r.value)}),(e,r)=>(z(),V(N(N_),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 Ox(e){let t=Ig({nonce:M()});return q(()=>e?.value||t.nonce?.value)}var kx=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}=e_(),{nonce:r}=yn(t),i=Ox(r),a=fx();return(e,r)=>(z(),B(R,null,[U(N(N_),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(N_),{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))}}),[Ax,jx]=Qh(`RovingFocusGroup`),Mx=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=qg(s),l=jg(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=M(!1),d=M(!1),f=M(0),{getItems:p,CollectionSlot:m}=Dv({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(Nv,Pv);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Rv([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}),jx({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(N_),{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}))}}),Nx=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=Ax(),r=x_(),i=q(()=>t.tabStopId||r),a=q(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=Dv();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=Lv(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?zv(i,t+1):i.slice(t+1)}Qn(()=>Rv(i))}}return(e,t)=>(z(),V(N(s),null,{default:P(()=>[U(N(N_),{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}))}}),Px=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($v),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}});function Fx(){let e=M(!1);return Gi(()=>{wg(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),wg([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var Ix=mg(Fx),[Lx,Rx]=Qh([`MenuRoot`,`MenuSub`],`MenuContext`),[zx,Bx]=Qh(`MenuRoot`),Vx=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=qg(a),s=jg(n,`open`,r),c=M(),l=Ix();return Rx({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),Bx({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(z(),V(N(Qv),null,{default:P(()=>[L(e.$slots,`default`)]),_:3}))}}),[Hx,Ux]=Qh(`MenuContent`),Wx=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}},{...cx}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=Lx(),a=zx(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=yn(n);Zg(),Ug(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}=e_(),{handleTypeaheadSearch:y}=T_(),b=M();function x(e){let t=Pg(e,b.value||$h(),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&&mv(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=Pg(e,$h(),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||!uv.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];lv.includes(e.key)&&u.reverse(),fv(u)}function ee(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function te(e){if(!hv(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){hv(e)&&C.value&&C.value.focus()}return Ux({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes($h()?.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(av),{"as-child":``,trapped:N(o),onMountAutoFocus:E,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),{"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(Mx),{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(dx),{ref:N(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":N(dv)(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`]))}}),Gx=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=Hx(),{forwardRef:r,currentElement:i}=e_(),{CollectionItem:a}=Dv(),o=M(!1),s=q(()=>o.value||i.value!=null&&n.highlightedElement.value===i.value);async function c(e){if(!(e.defaultPrevented||!hv(e))){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes($h()?.tagName||``)||t.focus({preventScroll:!0})}}}async function l(e){await Qn(),!e.defaultPrevented&&hv(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(N_),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`]))}}),Kx=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}=e_(),o=zx(),s=Hx(),c=M(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(ov,{bubbles:!0,cancelable:!0});r(`select`,e),await Qn(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(z(),V(Gx,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(sv).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),qx=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=n_(n,r),a=Lx(),{forwardRef:o,currentElement:s}=e_();return y_(s),(e,t)=>(z(),V(Wx,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`]))}}),Jx=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=n_(e,t),r=Lx();return(e,t)=>(z(),V(Wx,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))}}),Yx=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=n_(e,t),r=Lx(),i=zx();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(r).open.value},{default:P(()=>[N(i).modal.value?(z(),V(qx,ye(K({key:0},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Jx,ye(K({key:1},{...e.$attrs,...N(n)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Xx,Zx]=Qh(`MenuGroup`),Qx=F({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Xx({id:``});return(e,r)=>(z(),V(N(N_),K(t,{id:N(n).id||void 0}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),$x=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),eS=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(N_),K(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),[tS,nS]=Qh(`PopoverRoot`),rS=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=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return nS({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(a),close:()=>a.value=!1})]),_:3}))}}),iS=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=t_(_g(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:a}=e_(),o=tS();return Zg(),(e,t)=>(z(),V(N(av),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[U(N(G_),{"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(dx),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`]))}}),aS=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=tS(),a=M(!1);Ug(!0);let o=n_(n,r),{forwardRef:s,currentElement:c}=e_();return y_(c),(e,t)=>(z(),V(iS,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`]))}}),oS=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=tS(),a=M(!1),o=M(!1),s=n_(n,r);return(e,t)=>(z(),V(iS,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))}}),sS=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=tS(),a=n_(n,r),{forwardRef:o}=e_();return i.contentId||=x_(void 0,`reka-popover-content`),(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[N(i).modal.value?(z(),V(aS,K({key:0},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(oS,K({key:1},N(a),{ref:N(o)}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),cS=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),lS=F({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=tS(),{forwardRef:r,currentElement:i}=e_();return n.triggerId||=x_(void 0,`reka-popover-trigger`),Gi(()=>{n.triggerElement.value=i.value}),(e,i)=>(z(),V(ia(N(n).hasCustomAnchor.value?N(N_):N($v)),{"as-child":``},{default:P(()=>[U(N(N_),{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}))}}),[uS,dS]=Qh(`DropdownMenuRoot`),fS=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;e_();let i=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=M(),{modal:o,dir:s}=yn(n),c=qg(s);return dS({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(Vx),{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`]))}}),pS=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=n_(e,t);e_();let r=uS(),i=M(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=x_(void 0,`reka-dropdown-menu-content`),(e,t)=>(z(),V(N(Yx),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`]))}}),mS=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=Jg(t);return e_(),(e,t)=>(z(),V(N(Kx),ye(hs({...n,...N(r)})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),hS=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return e_(),(e,n)=>(z(),V(N(Qx),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),gS=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($x),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_S=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return e_(),(e,n)=>(z(),V(N(eS),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),vS=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=uS(),{forwardRef:r,currentElement:i}=e_();return Gi(()=>{n.triggerElement=i}),n.triggerId||=x_(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(z(),V(N(Px),{"as-child":``},{default:P(()=>[U(N(N_),{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}))}}),yS=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 e_(),(e,n)=>(z(),V(N(N_),K(t,{onMousedown:n[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),bS=[` `,`Enter`,`ArrowUp`,`ArrowDown`],xS=[` `,`Enter`];function SS(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>CS(e,t,n)):CS(e,t,n)}function CS(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]:Yh(e,t)}function wS(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var TS={key:0,value:``},[ES,DS]=Qh(`SelectRoot`),OS=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=jg(n,`modelValue`,r,{defaultValue:n.defaultValue??(o.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),l=jg(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:tg(c.value));Dv({isProvider:!0});let m=qg(s),h=$g(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=>CS(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=>SS(e,t.value,n.by))}return DS({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{modelValue:N(c),open:N(l)}),N(h)&&e.name?(z(),V(kS,{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(tg)(N(c))?(z(),B(`option`,TS)):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}))}}),kS=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=ES();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(Ov),{"as-child":``},{default:P(()=>[H(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[L(e.$slots,`default`)],16)]),_:3}))}}),AS=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=t_(e);return(e,n)=>(z(),V(N(dx),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))}}),jS={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[MS,NS]=Qh(`SelectContent`),PS=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=ES();Zg(),Ug(n.bodyLock);let{CollectionSlot:a,getItems:o}=Dv(),s=M();y_(s);let{search:c,handleTypeaheadSearch:l}=T_(),u=M(),d=M(),f=M(),p=M(!1),m=M(!1),h=M(!1);function g(){d.value&&s.value&&fv([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(()=>fv(t)),e.preventDefault()}}let b=t_(q(()=>n.position===`popper`?n:{}).value);return NS({content:s,viewport:u,onViewportChange:e=>{u.value=e},itemRefCallback:(e,t,n)=>{let r=!m.value&&!n,a=SS(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;(SS(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(av),{"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(G_),{"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`?AS:LS),K({...e.$attrs,...N(b)},{id:N(i).contentId,ref:e=>{if(!e)return;let t=N(Cg)(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}))}}),[FS,IS]=Qh(`SelectItemAlignedPosition`),LS=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}=Dv(),a=ES(),o=MS(),s=M(!1),c=M(!0),l=M(),{forwardRef:u,currentElement:d}=e_(),{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=Zh(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=Zh(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 Ag(a.triggerElement,()=>{g()}),IS({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(N_),K({ref:N(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)],4))}}),RS=F({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return DS(e.context),NS(jS),(e,t)=>L(e.$slots,`default`)}}),zS={key:1},BS=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=n_(n,t),i=ES(),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(A_),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:P(()=>[U(PS,ye(hs({...N(r),...e.$attrs})),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(z(),B(`div`,zS,[(z(),V(Vr,{to:a.value},[U(RS,{context:N(i)},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):G(`v-if`,!0)}}),VS=F({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(N(N_),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:P(()=>[L(e.$slots,`default`,{},()=>[t[0]||=W(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[HS,US]=Qh(`SelectItem`),WS=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=ES(),o=MS(),{forwardRef:s,currentElement:c}=e_(),{CollectionItem:l}=Dv(),u=q(()=>SS(a.modelValue?.value,n.value,a.by)),d=M(!1),f=M(n.textValue??``),p=x_(void 0,`reka-select-item-text`);async function m(e){e.defaultPrevented||eg(`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===$h()&&o.onItemLeave?.()}async function v(e){await Qn(),!e.defaultPrevented&&(o.searchRef?.value!==``&&e.key===` `||(xS.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)}),US({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(N_),{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`]))}}),GS=F({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=HS();return(e,r)=>N(n).isSelected.value?(z(),V(N(N_),K({key:0,"aria-hidden":`true`},t),{default:P(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),KS=F({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=ES(),r=MS(),i=HS(),{forwardRef:a,currentElement:o}=e_(),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(N_),K({id:N(i).textId,ref:N(a)},{...t,...e.$attrs}),{default:P(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),qS=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),JS=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=ES(),{forwardRef:r,currentElement:i}=e_(),a=q(()=>n.disabled?.value||t.disabled);n.contentId||=x_(void 0,`reka-select-content`),Gi(()=>{n.onTriggerChange(i.value)});let{getItems:o}=Dv(),{search:s,handleTypeaheadSearch:c,resetTypeahead:l}=T_();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($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),{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(wS)(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(bS).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`]))}}),YS=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}=e_(),i=ES();Gi(()=>{i.valueElement=r});let a=q(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>SS(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(N_),{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`]))}}),XS=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=Ox(n),i=MS(),a=i.position===`item-aligned`?FS():void 0,{forwardRef:o,currentElement:s}=e_();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(N_),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(N_),{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))}}),[ZS,QS]=Qh(`SwitchRoot`),$S=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=jg(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}=e_(),u=$g(l),d=q(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return QS({checked:o,toggleCheck:s,disabled:i}),(e,t)=>(z(),V(N(N_),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(Av),{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`]))}}),eC=F({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=ZS();return e_(),(e,n)=>(z(),V(N(N_),{"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`]))}}),[tC,nC]=Qh(`TabsRoot`),rC=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=qg(o);e_();let c=jg(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=M(),u=un(new Set);return nC({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:x_(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(N_),{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 iC(e,t){return`${e}-trigger-${t}`}function aC(e,t){return`${e}-content-${t}`}var oC=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}=e_(),i=tC();return i.tabsList=r,(e,r)=>(z(),V(N(Mx),{"as-child":``,orientation:N(i).orientation.value,dir:N(i).dir.value,loop:N(t)},{default:P(()=>[U(N(N_),{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`]))}}),sC=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}=e_(),r=tC(),i=q(()=>iC(r.baseId,t.value)),a=q(()=>r.contentIds.value.has(t.value)?aC(r.baseId,t.value):void 0),o=q(()=>t.value===r.modelValue.value);return(e,t)=>(z(),V(N(Nx),{"as-child":``,focusable:!e.disabled,active:o.value},{default:P(()=>[U(N(N_),{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`]))}}),[cC,lC]=Qh(`TooltipProvider`),uC=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);e_();let c=M(!0),l=M(!1),{start:u,stop:d}=bg(()=>{c.value=!0},n,{immediate:!1});return lC({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`)}}),dC=`tooltip.open`,[fC,pC]=Qh(`TooltipRoot`),mC=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;e_();let i=cC(),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=jg(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});Er(u,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(dC))):i.onClose())});let d=M(!1),f=M(),p=q(()=>u.value?d.value?`delayed-open`:`instant-open`:`closed`),{start:m,stop:h}=bg(()=>{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 pC({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(Qv),null,{default:P(()=>[L(e.$slots,`default`,{open:N(u)})]),_:3}))}}),hC=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=fC(),a=cC(),{forwardRef:o,currentElement:s}=e_(),c=q(()=>n.ariaLabel||s.value?.textContent),l=q(()=>{let{ariaLabel:e,...t}=n;return Vg(t,a.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return Gi(()=>{wg(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),wg(window,dC,i.onClose)}),(e,t)=>(z(),V(N(G_),{"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(dx),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(Ov),{id:N(i).contentId,role:`tooltip`},{default:P(()=>[W(j(c.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),gC=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=t_(e),{forwardRef:n,currentElement:r}=e_(),{trigger:i,onClose:a}=fC(),o=cC(),{isPointerInTransit:s,onPointerExit:c}=r_(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),V(hC,K({ref:N(n)},N(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),_C=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=fC(),a=n_(n,r),{forwardRef:o}=e_();return(e,t)=>(z(),V(N(A_),{present:e.forceMount||N(i).open.value},{default:P(()=>[(z(),V(ia(N(i).disableHoverableContent.value?hC:gC),K({ref:N(o)},N(a)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),vC=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(Cv),ye(hs(t)),{default:P(()=>[L(e.$slots,`default`)]),_:3},16))}}),yC=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=fC(),r=cC();n.contentId||=x_(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:a}=e_(),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($v),{"as-child":``,reference:e.reference},{default:P(()=>[U(N(N_),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(N_),{as:e.as,"as-child":e.asChild,class:A(N(Ch)(N(bC)({variant:e.variant,size:e.size}),t.class))},{default:P(()=>[L(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),bC=Kh(`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`}}),xC=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(Ch)(`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]])}}),SC=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(JS),K(N(n),{class:N(Ch)(`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(VS),{"as-child":``},{default:P(()=>[U(N(Ou),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`class`]))}}),CC=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=n_(n,t);return(t,i)=>(z(),V(N(qS),null,{default:P(()=>[U(N(BS),K(N(r),{class:N(Ch)(`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(XS),{class:A(N(Ch)(`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}))}}),wC={class:`absolute left-2 flex size-3.5 items-center justify-center`},TC=F({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(WS),K(N(n),{class:N(Ch)(`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`,wC,[U(N(GS),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),U(N(KS),null,{default:P(()=>[L(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),EC=F({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(oC),K(t,{class:N(Ch)(`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`]))}}),DC=F({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(sC),K(N(n),{class:N(Ch)(`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`]))}}),OC=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=n_(n,t);return(e,t)=>(z(),V(N(cS),null,{default:P(()=>[U(N(sS),K(N(r),{class:N(Ch)(`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}))}}),kC=F({__name:`Badge`,props:{variant:{},class:{}},setup(e){return(t,n)=>(z(),B(`span`,{class:A(N(Ch)(N(AC)({variant:e.variant}),t.$props.class))},[L(t.$slots,`default`)],2))}}),AC=Kh(`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`}}),jC=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=n_(n,t);return(e,t)=>(z(),V(N($S),K(N(r),{class:N(Ch)(`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(eC),{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`]))}}),MC={class:`flex flex-col gap-3`},NC=[`aria-checked`,`onClick`],PC=[`aria-checked`],FC=[`aria-checked`,`disabled`],IC={key:0,class:`ml-[30px] text-[11px] text-muted-foreground`},LC=[`aria-checked`],RC={class:`border-t pt-2`},zC=[`aria-checked`,`onClick`],BC={class:`border-t pt-2`},VC=[`aria-checked`],HC={class:`border-t pt-2`},UC=[`aria-checked`,`disabled`,`onClick`],WC={class:`truncate`},GC=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`,MC,[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(kp),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(Mp)[t]),1)],8,NC))),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,PC),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,FC),e.scanIndexed?G(``,!0):(z(),B(`p`,IC,`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,LC)]),H(`div`,RC,[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(Ap),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(Np)[t]),1)],8,zC))),128))]),H(`div`,BC,[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,VC)]),H(`div`,HC,[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(Dp),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`,WC,j(N(jp)[t]),1)],8,UC),U(N(jC),{"model-value":i.value.has(t),"aria-label":`Enable ${N(jp)[t]} check`,"onUpdate:modelValue":e=>c(t,e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])]))),128))])]))}}),KC=F({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(yS),{for:t.for,class:A(N(Ch)(`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`]))}}),qC=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=n_(n,t);return(e,t)=>(z(),V(N(wv),null,{default:P(()=>[U(N(Sv),{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(yv),K(N(r),{class:N(Ch)(`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(R_),{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}))}}),JC=F({__name:`DialogHeader`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(Ch)(`flex flex-col gap-1.5 text-center sm:text-left`,e.$props.class))},[L(e.$slots,`default`)],2))}}),YC=F({__name:`DialogFooter`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:A(N(Ch)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e.$props.class))},[L(e.$slots,`default`)],2))}}),XC=F({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(Tv),{class:A(N(Ch)(`text-lg font-semibold leading-none tracking-tight`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),ZC=F({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(bv),{class:A(N(Ch)(`text-sm text-muted-foreground`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),QC=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=n_(n,t);return(e,t)=>(z(),V(N(gS),null,{default:P(()=>[U(N(pS),K(N(r),{class:N(Ch)(`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}))}}),$C=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=t_(t);return(e,r)=>(z(),V(N(mS),K(N(n),{class:N(Ch)(`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`]))}}),ew=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(hS),{class:A(N(Ch)(`px-2 py-1.5 text-sm font-semibold`,t.class))},{default:P(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),tw=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(N(_S),{class:A(N(Ch)(`-mx-1 my-1 h-px bg-border`,t.class))},null,8,[`class`]))}}),nw={class:`flex flex-wrap items-center gap-2`},rw={class:`grid gap-2`},iw={class:`flex flex-wrap gap-2`},aw=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(()=>Ld(n.keys,n.locales),`Cleared translations for ${n.keys.length} key${n.keys.length===1?``:`s`}`),f=()=>u(()=>Rd(n.keys),`Deleted ${n.keys.length} key${n.keys.length===1?``:`s`}`,!0),p=e=>u(()=>zd(n.keys,n.locales,e),`Marked ${n.keys.length} key${n.keys.length===1?``:`s`} ${e}`),m=e=>u(()=>Bd(n.keys,{skipTranslate:e}),e?`Marked skip-translate`:`Cleared skip-translate`),h=()=>u(()=>Bd(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(()=>Bd(n.keys,{addTags:[e]}),`Added tag "${e}"`).then(()=>l.value=``)},_=e=>u(()=>Bd(n.keys,{removeTags:[e]}),`Removed tag "${e}"`);return(t,n)=>(z(),B(`div`,nw,[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(fS),null,{default:P(()=>[U(N(vS),{"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(QC),{align:`end`,class:`w-52`},{default:P(()=>[U(N(ew),null,{default:P(()=>[W(`Status · `+j(e.scopeLabel),1)]),_:1}),U(N($C),{"data-testid":`bulk-mark-reviewed`,onSelect:n[3]||=e=>p(`reviewed`)},{default:P(()=>[...n[23]||=[W(`Mark reviewed`,-1)]]),_:1}),U(N($C),{"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(tw)),U(N(ew),null,{default:P(()=>[...n[25]||=[W(`Tags · key`,-1)]]),_:1}),U(N($C),{onSelect:n[5]||=e=>s.value=!0},{default:P(()=>[...n[26]||=[W(`Add tag…`,-1)]]),_:1}),U(N($C),{disabled:!e.tagsOnSelection.length,onSelect:n[6]||=e=>c.value=!0},{default:P(()=>[...n[27]||=[W(`Remove tag…`,-1)]]),_:1},8,[`disabled`]),U(N(tw)),U(N(ew),null,{default:P(()=>[...n[28]||=[W(`Context · key`,-1)]]),_:1}),U(N($C),{onSelect:h},{default:P(()=>[...n[29]||=[W(`Clear context`,-1)]]),_:1}),U(N(tw)),U(N(ew),null,{default:P(()=>[...n[30]||=[W(`Translation · key`,-1)]]),_:1}),U(N($C),{onSelect:n[7]||=e=>m(!0)},{default:P(()=>[...n[31]||=[W(`Skip translate`,-1)]]),_:1}),U(N($C),{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(L_),{open:a.value,"onUpdate:open":n[11]||=e=>a.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[34]||=[W(`Clear translations`,-1)]]),_:1}),U(N(ZC),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(YC),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(L_),{open:o.value,"onUpdate:open":n[13]||=e=>o.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[37]||=[W(`Delete keys`,-1)]]),_:1}),U(N(ZC),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(YC),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(L_),{open:s.value,"onUpdate:open":n[16]||=e=>s.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[40]||=[W(`Add tag`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[W(`Add a tag to `+j(e.keys.length)+` `+j(e.keys.length===1?`key`:`keys`)+`.`,1)]),_:1})]),_:1}),H(`div`,rw,[U(N(KC),{for:`bulk-add-tag`},{default:P(()=>[...n[41]||=[W(`Tag`,-1)]]),_:1}),U(N(xC),{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(YC),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(L_),{open:c.value,"onUpdate:open":n[18]||=e=>c.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[44]||=[W(`Remove tag`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...n[45]||=[W(`Remove a tag from the selected keys.`,-1)]]),_:1})]),_:1}),H(`div`,iw,[(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(YC),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 ow(){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 sw=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=n_(n,t);return(e,t)=>(z(),V(N(vC),null,{default:P(()=>[U(N(_C),K(N(r),{class:N(Ch)(`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}))}}),cw=6e4,lw=60*cw,uw=24*lw;function dw(e,t=Date.now()){let n=new Date(e).getTime();if(!Number.isFinite(n))return``;let r=t-n;return r<cw?`just now`:r<lw?`${Math.floor(r/cw)}m ago`:r<uw?`${Math.floor(r/lw)}h ago`:`${Math.floor(r/uw)}d ago`}var fw=M(null),pw=M(!1),mw=M(!1),hw=q(()=>pw.value?`scanning…`:mw.value?`scan failed`:fw.value?`scanned ${dw(fw.value.scannedAt)}`:`not scanned`),gw=q(()=>{if(pw.value)return`Scanning your codebase…`;if(mw.value)return`Last scan failed — try again.`;if(fw.value){let{files:e,refs:t,scannedAt:n}=fw.value;return`Last scan: ${dw(n)} · ${e.toLocaleString()} files · ${t.toLocaleString()} refs`}return`Not scanned yet.`});async function _w(){if(!pw.value)try{let e=await mf();e.indexed&&e.scannedAt&&(fw.value={files:e.files,refs:e.refs,scannedAt:e.scannedAt})}catch{}}async function vw(){if(pw.value)return!1;pw.value=!0,mw.value=!1;try{let e=await pf();return fw.value={files:e.files,refs:e.refs,scannedAt:e.scannedAt},!0}catch{return mw.value=!0,!1}finally{pw.value=!1}}var yw=[`zero`,`one`,`two`,`few`,`many`,`other`];function bw(e){let t;try{t=new Intl.PluralRules(e.replace(/_/g,`-`),{type:`cardinal`}).resolvedOptions().pluralCategories}catch{t=[`other`]}let n=new Set(t);return yw.filter(e=>n.has(e))}function xw(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 bw(t).some(e=>(n[e]??``)===``)}return r?.value?!e.values[t]?.value:!1}function Sw(e,t,n){return t.filter(t=>xw(e,t,n))}function Cw(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 ww=new Intl.DisplayNames([`en`],{type:`language`}),Tw=new Map;function Ew(e){if(!Tw.has(e)){let t;try{t=new Intl.DisplayNames([e],{type:`language`}).of(e)??void 0}catch{t=void 0}Tw.set(e,t)}return Tw.get(e)}function Dw(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 Ow=new Set([`ar`,`he`,`iw`,`fa`,`ur`,`ps`,`sd`,`ug`,`yi`,`dv`,`ckb`,`ks`,`nqo`,`rhg`]);function kw(e){let t=e.split(/[-_]/)[0]?.toLowerCase()??``;return Ow.has(t)}function Aw(e,t){let n=e.replace(/_/g,`-`),r=n,i=!1;try{r=Intl.getCanonicalLocales(n)[0]??n,Dw(r)&&(i=!0)}catch{i=!0}let a=e;t?.name===void 0?i||(a=ww.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:Ew(r),flagRegion:o,isCustom:i,rtl:kw(e)}}var jw=[`aria-label`],Mw=`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]`,Nw=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(Ch)(Mw,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(Ch)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+j(a[e.state]),1)],2)):(z(),V(N(fS),{key:1},{default:P(()=>[U(N(vS),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(Ch)(Mw,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(Ch)(`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,jw)]),_:1}),U(N(QC),{align:`end`,class:`min-w-[10rem]`},{default:P(()=>[(z(),B(R,null,I(i,e=>U(N($C),{key:e,onSelect:t=>r(`setState`,e)},{default:P(()=>[H(`span`,{class:A(N(Ch)(`size-[7px] shrink-0 rounded-full`,s[e]))},null,2),W(` `+j(a[e])+` `,1),U(N(Du),{class:A(N(Ch)(`ml-auto size-4`,e===n.state?`opacity-100`:`opacity-0`))},null,8,[`class`])]),_:2},1032,[`onSelect`])),64))]),_:1})]),_:1}))}}),Pw=new RegExp([`\\{\\s*[A-Za-z0-9_]+\\s*,\\s*(?:plural|select|selectordinal)\\s*,(?:[^{}]|\\{[^{}]*\\})*\\}`,`\\{\\s*[A-Za-z0-9_.]+\\s*\\}`].join(`|`),`g`);function Fw(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 Iw(e){if(!e)return[];let t=Fw(e),n=e=>t.some(([t,n])=>e>=t&&e<n),r=[],i=0;Pw.lastIndex=0;let a;for(;(a=Pw.exec(e))!==null;){if(a[0].length===0){Pw.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 Lw=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(Ch)(`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]])}}),Rw={class:`min-w-0`},zw={key:0,class:`flex flex-col gap-1`},Bw={class:`whitespace-pre-wrap break-words`},Vw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Hw=F({__name:`ValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{}},emits:[`changed`,`edit-start`],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(()=>Iw(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,r(`edit-start`),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 Vd(n.keyName,{source:e}):await Hd(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`,Rw,[i.value?(z(),B(`div`,zw,[U(N(Lw),{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(Ch)(`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`,Bw,[(z(!0),B(R,null,I(l.value,(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,Vw,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`})]))]))}}),Uw={class:`flex min-w-0 flex-col gap-2`},Ww={class:`min-w-0 flex-1`},Gw={key:0,class:`flex flex-col gap-1`},Kw={class:`font-mono text-[10px] font-semibold uppercase tracking-wide text-primary`},qw=[`onClick`],Jw={class:`whitespace-pre-wrap break-words`},Yw={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},Xw=[`onClick`],Zw=F({__name:`PluralValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},arg:{},forms:{},sourceForms:{},maxLength:{}},emits:[`changed`,`edit-start`],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))),...bw(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 Iw(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,r(`edit-start`),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 Gd(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`,Uw,[(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(Ch)(`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`,Ww,[o.value===t?(z(),B(`div`,Gw,[H(`span`,Kw,`Plural: `+j(t),1),U(N(Lw),{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(Ch)(`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`,Jw,[(z(!0),B(R,null,I(f(t),(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,Yw,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,qw)):(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,Xw))])]))),128))]))}}),Qw=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`}),$w=new Map;for(let[e,t]of Object.entries(Qw)){let n=e.match(/\/([^/]+)\.svg$/);n&&$w.set(n[1].toLowerCase(),t)}function eT(e){return $w.get(e.toLowerCase())}var tT=[`src`,`alt`,`width`,`height`],nT=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?eT(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,tT)):(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`]))}}),rT={class:`inline-flex min-w-0 items-start gap-2`},iT={class:`flex min-w-0 flex-col leading-tight`},aT={class:`flex items-center gap-1.5`},oT={class:`font-mono text-[11.5px] font-semibold tracking-wide`},sT={key:0,class:`truncate text-[11px] text-muted-foreground`},cT={class:`inline-flex min-w-0 items-center gap-1.5`},lT={key:0,class:`truncate`},uT=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(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,rT,[U(nT,{code:e.code,override:e.override,size:e.size,class:`mt-0.5 shrink-0`},null,8,[`code`,`override`,`size`]),H(`span`,iT,[H(`span`,aT,[H(`span`,oT,j(e.code.toUpperCase()),1),n.value.rtl?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...r[1]||=[W(`Right-to-left`,-1)]]),_:1})]),_:1})):G(``,!0)]),e.showName?(z(),B(`span`,sT,j(n.value.name),1)):G(``,!0)])])]),_:1}),U(N(sw),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1})):(z(),V(N(mC),{key:1},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,cT,[U(nT,{code:e.code,override:e.override,size:e.size},null,8,[`code`,`override`,`size`]),e.showName?(z(),B(`span`,lT,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(sw),null,{default:P(()=>[W(j(n.value.name),1)]),_:1})]),_:1}))}}),dT=[`data-state`],fT={class:`flex flex-wrap items-start gap-2 pt-0.5`},pT={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`},mT=[`dir`],hT={key:0,"data-testid":`filling-hint`,class:`flex items-center gap-1.5 text-sm italic text-muted-foreground`},gT={key:0,class:`flex items-center justify-end gap-1.5 pt-0.5`},_T={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`},vT={class:`flex flex-col gap-1`},yT={key:0,class:`mt-2 border-t pt-2`},bT={class:`flex flex-wrap gap-1`},xT=[`onClick`],ST=[`disabled`],CT=F({__name:`TranslationRow`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{},issues:{},labelChars:{},plural:{},sourceForms:{},filling:{type:Boolean}},emits:[`changed`,`edit-start`],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(()=>kw(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 Df(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 Wd(n.keyName,n.locale),Q.success(`Cleared`),r(`changed`)}catch(e){Q.error(e.message)}}async function g(e){try{await Ud(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 Jd({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(Ch)(`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`,fT,[U(uT,{code:e.locale,layout:`stacked`,"show-name":``,size:15},null,8,[`code`]),i.value?(z(),B(`span`,pT,`Source`)):G(``,!0)]),H(`div`,{class:`flex min-w-0 flex-col gap-2`,dir:l.value?`rtl`:`ltr`},[e.filling?(z(),B(`div`,hT,[U(N($u),{class:`size-3.5 shrink-0 animate-spin`}),n[4]||=W(` filling… `,-1)])):s.value?(z(),V(Zw,{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`),onEditStart:n[1]||=e=>r(`edit-start`)},null,8,[`key-name`,`locale`,`source-locale`,`arg`,`forms`,`source-forms`,`max-length`])):(z(),V(Hw,{key:2,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,value:o.value,"max-length":e.maxLength,onChanged:n[2]||=e=>r(`changed`),onEditStart:n[3]||=e=>r(`edit-start`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`]))],8,mT),i.value?G(``,!0):(z(),B(`div`,gT,[d.value?(z(),V(N(rS),{key:0},{default:P(()=>[U(N(lS),{"as-child":``},{default:P(()=>[H(`button`,_T,[U(N(Td),{class:`size-3.5`})])]),_:1}),U(N(OC),{align:`end`,class:`w-fit max-w-xs text-xs`},{default:P(()=>[H(`ul`,vT,[(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`,yT,[n[5]||=H(`p`,{class:`mb-1 text-[11px] font-medium text-muted-foreground`},`Add to dictionary`,-1),H(`div`,bT,[(z(!0),B(R,null,I(f.value,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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,xT)]),_:2},1024),U(N(sw),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(mC),{key:1},{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...n[6]||=[W(`Clear translation`,-1)]]),_:1})]),_:1})):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"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,ST)]),_:1}),U(N(sw),null,{default:P(()=>[...n[7]||=[W(`AI translate`,-1)]]),_:1})]),_:1}),U(Nw,{state:a.value,editable:!0,onSetState:g},null,8,[`state`])]))],10,dT))}}),wT=[`aria-pressed`],TT={key:0,class:`pointer-events-none absolute inset-0 z-[3] border-2 border-primary`,"aria-hidden":`true`},ET={key:1,class:`pointer-events-none absolute inset-y-0 left-0 z-[4] w-1 bg-primary`,"aria-hidden":`true`},DT={class:`sticky top-3`},OT=[`aria-checked`],kT={class:`absolute right-0 top-0`},AT=[`disabled`],jT=[`innerHTML`],MT={key:0,class:`mt-1.5 flex flex-wrap items-center gap-1.5 pl-6`},NT={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`},PT={class:`font-medium normal-case text-muted-foreground`},FT={"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`},IT={key:1,class:`mt-2 flex flex-wrap gap-1.5 pl-6`},LT=[`onClick`],RT=[`data-testid`,`disabled`],zT={key:3,"data-testid":`translating-missing`,class:`ml-6 mt-2.5 inline-flex items-center gap-1 text-[11px] text-primary`},BT=[`disabled`],VT={class:`min-w-0 flex-1 [&>*:nth-child(even)]:bg-zebra`},HT={class:`grid gap-2`},UT={class:`break-all rounded bg-muted px-1 py-0.5 font-mono text-sm`},WT=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,`&`).replace(/</g,`<`).replace(/>/g,`>`).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(()=>Sw(n.entry,n.locales,n.sourceLocale)),p=q(()=>Cw(n.entry,n.locales,n.sourceLocale));async function m(){d.value=!0;try{let e=await Jd({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 Jd({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 Bd([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 Vd(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 Id(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(Ch)(`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`,TT)):G(``,!0),e.selected?(z(),B(`span`,ET)):G(``,!0),H(`div`,{class:A(N(Ch)(`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`,DT,[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,OT),H(`div`,kT,[U(N(fS),null,{default:P(()=>[U(N(vS),{"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(QC),{align:`end`},{default:P(()=>[f.value.length>0?(z(),V(N($C),{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($C),{onSelect:y},{default:P(()=>[U(N(ad),{class:`size-4`}),n[10]||=W(` Rename `,-1)]),_:1}),U(N($C),{"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($C),{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[11]||=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,jT),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`,MT,[e.entry.plural?(z(),B(`span`,NT,[n[12]||=W(`PLURAL`,-1),H(`span`,PT,`· `+j(e.entry.plural.arg),1)])):G(``,!0),e.entry.skipTranslate?(z(),V(N(mC),{key:1},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[...n[13]||=[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(sw),null,{default:P(()=>[...n[14]||=[W(`Excluded from translation`,-1)]]),_:1})]),_:1})):G(``,!0),(e.issues?.length??0)>0?(z(),V(N(mC),{key:2},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,FT,[U(N(Td),{class:`size-3`}),W(j(e.issues.length),1)])]),_:1}),U(N(sw),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`,IT,[(z(!0),B(R,null,I(e.entry.tags,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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,LT)]),_:2},1024),U(N(sw),null,{default:P(()=>[W(`Filter by tag: `+j(e),1)]),_:2},1024)]),_:2},1024))),128))])):G(``,!0),f.value.length>0?(z(),V(N(mC),{key:2},{default:P(()=>[U(N(yC),{"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,RT)]),_:1}),U(N(sw),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`,zT,[U(N($u),{class:`size-3 animate-spin`}),n[15]||=W(` Translating… `,-1)])):G(``,!0),p.value.length>0?(z(),V(N(mC),{key:4},{default:P(()=>[U(N(yC),{"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,BT)]),_:1}),U(N(sw),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`,VT,[(z(!0),B(R,null,I(e.locales,t=>(z(),V(CT,{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`),onEditStart:n[4]||=e=>a(`select`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`,`issues`,`plural`,`source-forms`,`filling`]))),128))]),U(N(L_),{open:o.value,"onUpdate:open":n[7]||=e=>o.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[16]||=[W(`Rename key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...n[17]||=[W(`Use dot notation, e.g. `,-1),H(`span`,{class:`font-mono`},`home.title`,-1),W(`.`,-1)]]),_:1})]),_:1}),H(`div`,HT,[U(N(KC),{for:`rename-key`},{default:P(()=>[...n[18]||=[W(`New key`,-1)]]),_:1}),U(N(xC),{id:`rename-key`,modelValue:s.value,"onUpdate:modelValue":n[5]||=e=>s.value=e,class:`font-mono`,onKeydown:Xl(Jl(b,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[6]||=e=>o.value=!1},{default:P(()=>[...n[19]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{disabled:l.value,onClick:b},{default:P(()=>[...n[20]||=[W(`Rename`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(N(L_),{open:c.value,"onUpdate:open":n[9]||=e=>c.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[21]||=[W(`Delete key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[n[22]||=W(` Delete `,-1),H(`code`,UT,j(e.keyName),1),n[23]||=W(` and all its translations? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:l.value,onClick:n[8]||=e=>c.value=!1},{default:P(()=>[...n[24]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:l.value,onClick:x},{default:P(()=>[...n[25]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])],10,wT))}}),GT=[{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}`}],KT=`vscode`,qT=e=>GT.some(t=>t.id===e),JT=M(KT);function YT(e){qT(e)&&(JT.value=e,xf({editor:e}).catch(()=>{}))}async function XT(){try{let{editor:e}=await bf();qT(e)&&(JT.value=e)}catch{}}function ZT(e,t){return(GT.find(e=>e.id===JT.value)??GT[0]).buildUrl(e,t)}function QT(){return{dirs:new Map,files:new Map}}function $T(e){let t=QT();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=QT(),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 eE={class:`flex flex-col gap-2`},tE={class:`flex items-center gap-1.5`},nE={key:0,class:`flex flex-col gap-2`},rE={class:`mt-1 flex gap-2`},iE={class:`flex items-center justify-between`},aE={class:`font-mono text-[10px] text-muted-foreground`},oE={class:`flex gap-1.5`},sE=[`onClick`],cE=[`onClick`],lE={class:`whitespace-pre-wrap break-words text-[12.5px] leading-snug`},uE=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 Lf(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 Rf(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 zf(n.keyName,e),r(`changed`)}catch(e){Q.error(`Could not delete note: ${e.message}`)}}return(t,n)=>(z(),B(`div`,eE,[H(`div`,tE,[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`,nE,[(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(Lw),{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`,rE,[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`,iE,[H(`span`,aE,j(i(e.at)),1),H(`span`,oE,[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,sE),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,cE)])]),H(`p`,lE,j(e.text),1)],64))]))),128))])):G(``,!0),U(N(Lw),{"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`])]))}}),dE={class:`flex shrink-0 flex-col overflow-y-auto border-l border-border bg-card max-[1080px]:hidden`},fE={key:0,class:`flex flex-1 flex-col items-center justify-center gap-2.5 p-10 text-center text-muted-foreground`},pE={key:1,class:`flex flex-col gap-4 px-5 pb-10 pt-[18px]`},mE={class:`flex flex-col gap-0.5`},hE=[`innerHTML`],gE={class:`flex flex-wrap items-center gap-2`},_E={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`},vE={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`},yE=[`disabled`],bE=[`disabled`],xE={key:0,class:`flex flex-col gap-1.5`},SE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-destructive`},CE={class:`font-mono text-[11px] font-semibold`},wE={class:`ml-auto rounded border border-destructive px-1.5 py-0.5 text-[10.5px] font-semibold text-destructive`},TE=[`disabled`,`onClick`],EE={key:1,class:`flex flex-col gap-1.5`},DE={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},OE={class:`font-mono text-[11px] font-semibold`},kE={class:`flex flex-col gap-1.5`},AE={class:`flex items-center gap-1.5`},jE={key:0,class:`ml-auto text-[11.5px] text-muted-foreground`},ME={key:0,class:`text-[12px] text-muted-foreground`},NE={key:0,class:`rounded-md border border-border-soft bg-accent px-2 py-1.5 text-[12px] text-muted-foreground`},PE={key:1,class:`flex flex-col gap-0.5 text-[11.5px]`},FE={class:`min-w-0 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},IE=[`href`],LE={key:1,class:`min-w-0 shrink truncate font-mono text-foreground`},RE={class:`flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5`},zE=[`href`],BE={key:1,class:`shrink-0 font-mono text-muted-foreground`},VE={key:2,class:`flex flex-col gap-1`},HE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},UE={class:`flex flex-col gap-1`},WE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},GE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},KE={class:`shrink-0 font-mono`},qE={key:3,class:`flex flex-col gap-1`},JE={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},YE={class:`flex flex-col gap-1`},XE={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},ZE={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},QE={class:`shrink-0 font-mono`},$E={class:`flex flex-col gap-1.5`},eD={class:`flex items-center gap-1.5`},tD={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`},nD=[`disabled`],rD={class:`flex flex-col gap-1.5`},iD={class:`flex items-center gap-1.5`},aD={class:`flex flex-col gap-1.5`},oD={class:`flex items-center gap-1.5`},sD={class:`flex flex-col gap-2`},cD={class:`flex items-center gap-1.5`},lD={key:0,class:`flex flex-col gap-2`},uD=[`src`,`alt`],dD={class:`flex gap-2`},fD=[`disabled`],pD={class:`flex flex-col gap-1.5 text-[11.5px] text-muted-foreground`},mD={class:`flex items-center justify-between gap-3`},hD={class:`font-mono text-[11px] text-foreground`},gD={class:`flex items-center justify-between gap-3`},_D={class:`font-mono text-[11px] text-foreground`},vD=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,`&`).replace(/</g,`<`).replace(/>/g,`>`).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(){wh(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 Jf(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=>xw(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 Ff(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 If(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 ff({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 hf(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=>ZT(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:ZT(e,ne.value?.project??``)}))),se=q(()=>$T(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 Kd(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 qd(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 Vd(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 Vd(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`,dE,[!e.keyName||!e.entry?(z(),B(`div`,fE,[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`,pE,[H(`div`,mE,[n[7]||=H(`span`,{class:`text-[10.5px] font-bold uppercase tracking-wide text-muted-foreground`},`Key`,-1),U(N(mC),{"disable-closing-trigger":``},{default:P(()=>[U(N(yC),{"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,hE)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(c.value?`Copied`:`Click to copy`),1)]),_:1})]),_:1})]),H(`div`,gE,[s.value?(z(),B(`span`,_E,`PLURAL`)):(z(),B(`span`,vE,`SINGLE`)),s.value?(z(),B(R,{key:2},[n[8]||=H(`span`,{class:`text-[11.5px] text-muted-foreground`},`arg`,-1),U(N(xC),{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,yE)],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,bE))]),f.value.length||g.value.length?(z(),B(`div`,{key:0,class:A(N(Ch)(`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`,xE,[H(`div`,SE,[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(nT,{code:e.locale,size:14},null,8,[`code`]),H(`span`,CE,j(e.locale.toUpperCase()),1),H(`span`,wE,j(d[e.check]??e.check),1),p[e.check]?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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,TE)]),_:2},1024),U(N(sw),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`,EE,[H(`div`,DE,[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(nT,{code:e,size:14},null,8,[`code`]),H(`span`,OE,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`,kE,[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`,jE,j(ne.value.count)+` reference`+j(ne.value.count===1?``:`s`),1)):G(``,!0)]),!ne.value||!ne.value.indexed?(z(),B(`p`,ME,` 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`,NE,` Not referenced in the last scan — this key may be unused. `)):G(``,!0),ae.value.length?(z(),B(`div`,PE,[(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(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,FE,j(e.label),1)]),_:2},1024),U(N(sw),{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(mC),null,{default:P(()=>[U(N(yC),{"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,IE)):(z(),B(`span`,LE,j(e.name),1))]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(ce(e.refs)?`Open ${e.name}`:e.name),1)]),_:2},1024)]),_:2},1024),H(`span`,RE,[(z(!0),B(R,null,I(e.refs,(t,n)=>(z(),B(R,{key:n},[t.url?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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,zE)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(`Open `+j(e.name)+`:`+j(t.line),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,BE,`:`+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`,VE,[H(`p`,HE,[U(N(xu),{class:`size-3`}),n[13]||=W(` Possible usage (dynamic keys) `,-1)]),H(`ul`,UE,[(z(!0),B(R,null,I(oe.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(mC),null,{default:P(()=>[U(N(yC),{"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`,WE,j(e.file),1),H(`span`,GE,j(e.prefix)+`*`,1),H(`span`,KE,`:`+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(sw),{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`,qE,[H(`p`,JE,[U(N(xu),{class:`size-3`}),n[14]||=W(` Possible usage (string literals) `,-1)]),H(`ul`,YE,[(z(!0),B(R,null,I(k.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[U(N(mC),null,{default:P(()=>[U(N(yC),{"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`,XE,j(e.file),1),H(`span`,ZE,`'`+j(e.literal)+`'`,1),H(`span`,QE,`:`+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(sw),{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`,$E,[H(`div`,eD,[U(N(Xu),{class:`size-3.5 text-muted-foreground`}),n[17]||=H(`label`,{for:`detail-context`,class:`text-[13px] font-semibold`},`Context`,-1),e.entry.contextSource===`ai`?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,tD,[U(N(vd),{class:`size-2.5`}),n[15]||=W(` AI `,-1)])]),_:1}),U(N(sw),null,{default:P(()=>[...n[16]||=[W(`AI-generated`,-1)]]),_:1})]),_:1})):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"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,nD)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(T.value?`Suggesting…`:`Suggest context with AI`),1)]),_:1})]),_:1})]),U(N(Lw),{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`,rD,[H(`div`,iD,[U(N(Cd),{class:`size-3.5 text-muted-foreground`}),n[18]||=H(`label`,{for:`detail-tags`,class:`text-[13px] font-semibold`},`Tags`,-1)]),U(N(xC),{id:`detail-tags`,modelValue:C.tags,"onUpdate:modelValue":n[3]||=e=>C.tags=e,placeholder:`comma, separated`},null,8,[`modelValue`])]),H(`div`,aD,[H(`div`,oD,[U(N(ld),{class:`size-3.5 text-muted-foreground`}),n[19]||=H(`label`,{for:`detail-maxlen`,class:`text-[13px] font-semibold`},`Max length`,-1)]),U(N(xC),{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[20]||=[W(`Save details`,-1)]]),_:1},8,[`disabled`]),n[26]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),e.keyName?(z(),V(uE,{key:1,"key-name":e.keyName,notes:e.entry.notes??[],onChanged:n[5]||=e=>r(`changed`)},null,8,[`key-name`,`notes`])):G(``,!0),n[27]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,sD,[H(`div`,cD,[U(N(Yu),{class:`size-3.5 text-muted-foreground`}),n[21]||=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`,lD,[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,uD),H(`div`,dD,[U(N($),{variant:`outline`,size:`sm`,disabled:v.value,onClick:b},{default:P(()=>[U(N(sd),{class:`size-4`}),n[22]||=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[23]||=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,fD))]),n[28]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,pD,[H(`div`,mD,[n[24]||=H(`span`,null,`Created`,-1),H(`span`,hD,j(i(e.entry.createdAt)),1)]),H(`div`,gD,[n[25]||=H(`span`,null,`Last updated`,-1),H(`span`,_D,j(i(o.value)),1)])])]))]))}}),yD={class:`grid gap-3`},bD={class:`grid gap-1.5`},xD={class:`grid gap-1.5`},SD={class:`flex items-center justify-between gap-2 rounded-md border p-2.5`},CD={class:`flex flex-col`},wD={key:0,class:`grid gap-1.5`},TD={key:1,class:`text-sm text-destructive`},ED=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 Fd(e,a.value,{arg:l.value.trim()||`count`}):await Fd(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(L_),{open:n.value,"onUpdate:open":t[5]||=e=>n.value=e},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[6]||=[W(`Add key`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...t[7]||=[W(`Create a new translation key using dot notation.`,-1)]]),_:1})]),_:1}),H(`div`,yD,[H(`div`,bD,[U(N(KC),{for:`add-key`},{default:P(()=>[...t[8]||=[W(`Key `,-1),H(`span`,{class:`text-destructive`},`*`,-1)]]),_:1}),U(N(xC),{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`,xD,[U(N(KC),{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(xC),{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`,SD,[H(`div`,CD,[U(N(KC),{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(jC),{id:`add-plural`,modelValue:c.value,"onUpdate:modelValue":t[2]||=e=>c.value=e},null,8,[`modelValue`])]),c.value?(z(),B(`div`,wD,[U(N(KC),{for:`add-plural-arg`},{default:P(()=>[...t[12]||=[W(`Count argument`,-1)]]),_:1}),U(N(xC),{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`,TD,j(o.value),1)):G(``,!0)]),U(N(YC),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`]))}}),DD={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`},OD={key:1,class:`text-sm text-destructive`},kD={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`},jD={class:`flex items-center gap-1.5 font-medium`},MD={class:`list-inside list-disc pl-1`},ND={class:`grid min-h-0 flex-1 grid-cols-[16rem_1fr] gap-3 overflow-hidden`},PD={class:`min-h-0 overflow-y-auto rounded-md border`},FD=[`onClick`],ID={key:0,class:`px-3 py-2 text-xs text-muted-foreground`},LD={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]`},RD={key:1,class:`flex min-h-0 items-center justify-center rounded-md border text-sm text-muted-foreground`},zD=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 Vf();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 Hf();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(L_),{open:t.value,"onUpdate:open":d[1]||=e=>t.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] w-full max-w-5xl flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...d[2]||=[W(`Export preview`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...d[3]||=[W(`Review the files that will be written to disk.`,-1)]]),_:1})]),_:1}),r.value?(z(),B(`p`,DD,[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`,OD,j(o.value),1)):G(``,!0),i.value?(z(),B(`div`,kD,` Generating preview… `)):o.value?G(``,!0):(z(),B(R,{key:3},[c.value.length?(z(),B(`div`,AD,[H(`p`,jD,[U(N(Td),{class:`size-4`}),W(` `+j(c.value.length)+` warning`+j(c.value.length===1?``:`s`),1)]),H(`ul`,MD,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:t},j(e),1))),128))])])):G(``,!0),H(`div`,ND,[H(`ul`,PD,[(z(!0),B(R,null,I(s.value,e=>(z(),B(`li`,{key:e.path},[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:A(N(Ch)(`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,FD)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(e.path),1)]),_:2},1024)]),_:2},1024)]))),128)),s.value.length===0?(z(),B(`li`,ID,` No files to write. `)):G(``,!0)]),u.value?(z(),B(`pre`,LD,j(u.value.contents),1)):(z(),B(`div`,RD,` Select a file to preview its contents. `))])],64)),U(N(YC),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`]))}}),BD={class:`relative h-2 w-full overflow-hidden rounded-full bg-muted`},VD={key:0,class:`gf-progress-indeterminate absolute inset-y-0 w-1/3 rounded-full bg-primary`},HD=Oh(F({__name:`Progress`,props:{modelValue:{},indeterminate:{type:Boolean}},setup(e){return(t,n)=>(z(),B(`div`,BD,[e.indeterminate?(z(),B(`div`,VD)):(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`]]),UD={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},WD={class:`font-medium text-foreground`},GD={key:0,class:`mt-0.5`},KD={key:1,class:`mt-1`},qD={class:`mt-1`},JD={key:1,class:`flex min-h-0 flex-col gap-1.5`},YD={class:`flex justify-between text-xs text-muted-foreground`},XD={key:0},ZD={key:0,class:`mt-1 flex max-h-56 min-h-0 flex-col overflow-y-auto rounded-md border text-sm`},QD={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},$D={class:`flex items-center gap-1.5 font-medium`},eO={key:3,class:`flex min-h-0 flex-col gap-1.5`},tO={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},nO={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},rO={class:`inline-flex items-center gap-1.5 font-mono text-xs`},iO={class:`text-muted-foreground`},aO=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)xw(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 Xd();x.value=e.supported&&!e.pending}catch{}}async function w(){S.value=!0;try{let e=await Zd({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 Yd({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 df(...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(L_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Translate missing strings`,-1)]]),_:1}),U(N(ZC),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`,UD,[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`,WD,`≈ `+j(D(T.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),T.value.pricing?G(``,!0):(z(),B(`p`,GD,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `)),T.value.perLocale.length>1?(z(),B(`details`,KD,[t[5]||=H(`summary`,{class:`cursor-pointer select-none`},`Per-language breakdown`,-1),H(`ul`,qD,[(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`,JD,[H(`div`,YD,[H(`span`,null,j(c.value.toLocaleString())+` / `+j(l.value.toLocaleString())+` translated`,1),a.value&&d.value.length?(z(),B(`span`,XD,j(p.value)+` of `+j(d.value.length)+` language`+j(d.value.length===1?``:`s`)+` active`,1)):G(``,!0)]),U(N(HD),{"model-value":l.value>0?c.value/l.value*100:0},null,8,[`model-value`]),d.value.length?(z(),B(`ul`,ZD,[(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(uT,{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`,QD,[H(`p`,$D,[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`,eO,[H(`p`,tO,[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`,nO,[(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`,rO,[W(j(e.key)+` @ `,1),U(uT,{code:e.locale,size:12},null,8,[`code`])]),H(`span`,iO,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(YC),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`]))}}),oO={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},sO={class:`font-medium text-foreground`},cO={key:0,class:`mt-0.5`},lO={key:1,class:`flex flex-col gap-1.5`},uO={class:`flex justify-between text-xs text-muted-foreground`},dO={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},fO={class:`flex items-center gap-1.5 font-medium`},pO={key:3,class:`flex min-h-0 flex-col gap-1.5`},mO={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},hO={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},gO={class:`font-mono text-xs`},_O={class:`text-muted-foreground`},vO=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(null),p=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),m=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,h=q(()=>{let e=f.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${m(e/2)} (50% off)`});async function g(){f.value=null;try{f.value=await ef({keys:n.keys})}catch{}}let _=M(!1),v=M(!1);async function y(){_.value=!1;try{let e=await tf();_.value=e.supported&&!e.pending}catch{}}async function b(){v.value=!0;try{let e=await nf({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{v.value=!1}}Er(r,e=>{e?(s.value=``,c.value=[],l.value=0,u.value=0,g(),y()):o.value?.abort()});function x(){o.value?.abort()}async function S(){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 ff({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(L_),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Build context`,-1)]]),_:1}),U(N(ZC),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}),f.value&&f.value.keys>0&&d.value>0&&!a.value&&l.value===0?(z(),B(`div`,oO,[H(`p`,null,[W(` ≈ `+j(f.value.keys.toLocaleString())+` key`+j(f.value.keys===1?``:`s`)+` · `+j(f.value.batches.toLocaleString())+` batch`+j(f.value.batches===1?``:`es`)+` · ~`+j(p(f.value.inputTokens))+` in / ~`+j(p(f.value.outputTokens))+` out tokens`,1),f.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[3]||=W(` · `,-1),H(`span`,sO,`≈ `+j(m(f.value.estimatedCost)),1),t[4]||=W(` (±20%)`,-1)],64))]),f.value.pricing?G(``,!0):(z(),B(`p`,cO,` No pricing known for this model — set a price in Settings → AI for a dollar estimate. `))])):G(``,!0),a.value||l.value>0?(z(),B(`div`,lO,[H(`div`,uO,[H(`span`,null,j(l.value.toLocaleString())+` / `+j(u.value.toLocaleString())+` built`,1)]),U(N(HD),{"model-value":u.value>0?l.value/u.value*100:0},null,8,[`model-value`])])):G(``,!0),s.value?(z(),B(`div`,dO,[H(`p`,fO,[U(N(Td),{class:`size-4`}),t[5]||=W(` Build failed `,-1)]),H(`p`,null,j(s.value),1)])):G(``,!0),c.value.length?(z(),B(`div`,pO,[H(`p`,mO,[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`,hO,[(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`,gO,j(e.key),1),H(`span`,_O,` — `+j(e.error),1)]))),128))])])):G(``,!0),U(N(YC),null,{default:P(()=>[a.value?(z(),V(N($),{key:0,variant:`outline`,onClick:x},{default:P(()=>[...t[6]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>r.value=!1},{default:P(()=>[...t[7]||=[W(`Close`,-1)]]),_:1})),d.value>0&&_.value?(z(),V(N($),{key:2,variant:`outline`,disabled:a.value||v.value,onClick:b},{default:P(()=>[W(j(v.value?`Submitting…`:h.value),1)]),_:1},8,[`disabled`])):G(``,!0),d.value>0?(z(),V(N($),{key:3,disabled:a.value||v.value,onClick:S},{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`]))}}),yO={key:0,class:`flex items-center gap-3 rounded-md border bg-muted/40 px-3 py-2 text-sm`},bO={class:`flex min-w-0 flex-1 flex-col gap-1`},xO={class:`truncate`},SO=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=M(!1),c;async function l(){try{let e;e=r.kind===`context`?await tf():r.kind===`glossary-suggest`?await sf():await Xd(),o.value=e.supported,a.value=e.pending}catch{}}Gi(()=>{l(),c=setInterval(()=>void l(),3e4)}),Yi(()=>clearInterval(c)),t({refresh:l});let u=q(()=>a.value?.status===`ended`);async function d(){s.value=!0;try{if(r.kind===`context`){let e=await rf(),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 if(r.kind===`glossary-suggest`){let e=await lf(),t=[e.retried?`${e.retried} retried`:``,e.errors.length?`${e.errors.length} error(s)`:``].filter(Boolean).join(`, `);Q.success(`Glossary batch applied — ${e.added} new term(s)${t?` (${t})`:``}`)}else{let e=await Qd(),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 l()}catch(e){Q.error(e.message)}finally{s.value=!1}}async function f(){if(window.confirm(`Cancel this batch? Finished entries are discarded.`))try{r.kind===`context`?await af():r.kind===`glossary-suggest`?await uf():await $d(),await l()}catch(e){Q.error(e.message)}}return(e,t)=>a.value&&o.value?(z(),B(`div`,yO,[(z(),V(ia(u.value?N(Du):N($u)),{class:A([`size-4 shrink-0`,u.value?`text-emerald-600 dark:text-emerald-400`:`animate-spin text-primary`])},null,8,[`class`])),H(`div`,bO,[H(`span`,xO,[r.kind===`context`?(z(),B(R,{key:0},[W(`Batch context build (`+j(a.value.total.toLocaleString())+` keys)`,1)],64)):r.kind===`glossary-suggest`?(z(),B(R,{key:1},[W(`Batch glossary scan (`+j(a.value.total.toLocaleString())+` sources)`,1)],64)):(z(),B(R,{key:2},[W(`Batch translation (`+j(a.value.total.toLocaleString())+` strings)`,1)],64)),u.value?(z(),B(R,{key:3},[W(` — finished, ready to apply`)],64)):(z(),B(R,{key:4},[W(` — processing…`)],64))]),u.value?G(``,!0):(z(),V(N(HD),{key:0,indeterminate:``,class:`h-1`}))]),U(N($),{size:`sm`,disabled:!u.value||s.value,onClick:d},{default:P(()=>[W(j(s.value?`Applying…`:u.value?`Apply results`:`Waiting…`),1)]),_:1},8,[`disabled`]),U(N($),{size:`sm`,variant:`ghost`,disabled:s.value,onClick:f},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])])):G(``,!0)}}),CO={key:1,class:`text-muted-foreground`},wO={class:`flex items-center gap-2 border-b px-3`},TO={class:`absolute left-2 flex size-3.5 items-center justify-center`},EO={class:`flex w-full min-w-0 items-center justify-between gap-2`},DO={class:`shrink-0 font-mono text-xs text-muted-foreground`},OO=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(mx),{modelValue:n.value,"onUpdate:modelValue":c[1]||=e=>n.value=e,open:r.value,"ignore-filter":``,"onUpdate:open":s},{default:P(()=>[U(N(hx),{"as-child":``},{default:P(()=>[U(N(Dx),{class:A(N(Ch)(`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(uT,{key:0,code:n.value,"show-name":``,"show-code":!1,size:14},null,8,[`code`])):(z(),B(`span`,CO,j(e.placeholder??`Locale`),1)),U(N(Ou),{class:`size-4 shrink-0 opacity-50`})]),_:1},8,[`class`])]),_:1}),U(N(Ex),null,{default:P(()=>[U(N(yx),{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`,wO,[U(N(pd),{class:`size-4 shrink-0 opacity-50`}),U(N(Cx),{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(kx),{class:`max-h-72 p-1`},{default:P(()=>[U(N(bx),{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(wx),{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`,TO,[U(N(Tx),null,{default:P(()=>[U(N(Du),{class:`size-4`})]),_:1})]),H(`span`,EO,[U(uT,{code:e,"show-name":``,"show-code":!1,size:14},null,8,[`code`]),H(`span`,DO,j(e.toUpperCase()),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`open`]))}}),kO={class:`relative w-0 shrink-0`},AO=[`aria-valuenow`,`aria-valuemin`,`aria-valuemax`],jO=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`,kO,[H(`div`,{class:A(N(Ch)(`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,AO)]))}});function MO(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)),yf({[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 NO=MO(`keyColumnWidth`,272,180,560),PO=MO(`detailPanelWidth`,420,320,720);async function FO(e){try{let t=e??await vf();NO.syncValue(t.keyColumnWidth),PO.syncValue(t.detailPanelWidth)}catch{}}var IO={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`},RO={class:`relative`},zO={key:0,class:`rounded bg-primary px-1.5 text-xs text-primary-foreground`},BO=[`aria-label`],VO={class:`ml-auto flex items-center gap-2`},HO={class:`mr-1 text-xs text-muted-foreground tabular-nums`},UO={key:0,class:`flex shrink-0 flex-wrap items-center gap-1.5 border-b px-4 py-1.5`},WO=[`aria-label`,`onClick`],GO=[`aria-label`,`onClick`],KO=[`aria-label`,`onClick`],qO={class:`flex flex-col gap-2 px-4 py-2 empty:hidden`},JO={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`},YO=[`aria-checked`,`aria-label`],XO={class:`text-sm font-medium tabular-nums`},ZO={class:`text-sm text-muted-foreground`},QO={key:1,for:`select-all-checkbox`,class:`cursor-pointer select-none text-sm text-muted-foreground`},$O={class:`relative min-w-0 flex-1 overflow-hidden`},ek={key:0,class:`flex h-full items-center justify-center gap-2 p-8 text-sm text-muted-foreground`},tk={key:1,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},nk=[`data-index`],rk=`glotfile:enabledChecks`,ik=F({__name:`EditorView`,setup(e){let t=NO.width,n=PO.width,r=un(null),{filter:i,sort:a,view:o,locale:s}=Rp(qp()),c=M(i),l=ow();function u(){try{let e=localStorage.getItem(rk);if(e){let t=JSON.parse(e);return Dp.filter(e=>t.includes(e))}}catch{}return[...Op]}let d=M(u()),f=M(new Map),p=M(null),m=M(!1),h=M(0);async function g(){try{let e=await gf();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 Kf(d.value);f.value=Pp(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(rk,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})],()=>{Jp(zp({filter:c.value,sort:b.value,view:x.value,locale:S.value}))},{deep:!0}),Er(()=>c.value.text,()=>{C&&clearTimeout(C),C=setTimeout(()=>{Jp(zp({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(Bh.value){let e=Bh.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=Dp.filter(e=>t.has(e))}e.locale&&(x.value=`bilingual`,S.value=e.locale),Bh.value=null}let te=M(null),ne=M(null),O=M(null);Hh.value&&=(te.value=Hh.value,null);let re=M(!1),ie=M(!1),ae=M(!1),oe=M(!1);Er(fw,()=>void g());let k=M(null),se=M(!0),ce=M(!1);async function le(){r.value=await jd(),y()}zh(le);let ue=setTimeout(()=>{se.value&&(ce.value=!0)},250);le().finally(()=>{se.value=!1,ce.value=!1,clearTimeout(ue)});let de=q(()=>r.value?.config.sourceLocale??``),fe=q(()=>r.value?.config.locales??[]),pe=q(()=>fe.value.filter(e=>e!==de.value));Er(pe,e=>{!S.value&&e.length>0&&(S.value=e[0])},{immediate:!0});let he=q(()=>{if(x.value===`bilingual`)return S.value?[de.value,S.value]:[de.value];let e=fe.value.filter(e=>e!==de.value);return[de.value,...e]}),ge=q(()=>{let e=r.value;if(!e)return[];let t=x.value===`bilingual`&&S.value?S.value:void 0;return Ep(e,{...c.value,locale:t},f.value,p.value??void 0)}),_e=q(()=>{let e=r.value,t=ge.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}),ve=q(()=>x.value===`bilingual`?S.value?[S.value]:[]:pe.value),ye=q(()=>x.value===`bilingual`?S.value||`—`:`all ${pe.value.length} targets`),be=q(()=>l.keys()),xe=q(()=>l.count.value),Se=q(()=>l.allSelected(_e.value)),Ce=q(()=>l.someSelected(_e.value)),we=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 Te(){l.allSelected(_e.value)?l.clear():l.selectAll(_e.value)}function Ee(e,t){t?l.toggleRange(e,_e.value):l.toggle(e)}Er(_e,e=>l.pruneTo(e));let De=q(()=>r.value&&te.value?r.value.keys[te.value]??null:null),Oe=Sp(q(()=>({count:_e.value.length,getScrollElement:()=>k.value,estimateSize:()=>Math.max(56,he.value.length*64),overscan:2,getItemKey:e=>_e.value[e]??e}))),ke=q(()=>Oe.value.getVirtualItems()),Ae=q(()=>Oe.value.getTotalSize());function je(e){te.value=e}let Me=M(null);function Ne(){let e=Me.value?.$el;e?.focus?.(),e?.select?.()}function Pe(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(),Ne();return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||n||r)return;let i=_e.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,Oe.value.scrollToIndex(o,{align:`auto`}))}Gi(()=>window.addEventListener(`keydown`,Pe)),Yi(()=>{window.removeEventListener(`keydown`,Pe),C&&clearTimeout(C)}),Gi(()=>void g());async function Fe(e,t){te.value===e&&(te.value=t),await le()}async function Ie(e){await le(),te.value=e,c.value.text=`"${e}"`}return(e,i)=>(z(),V(N(uC),{"delay-duration":400},{default:P(()=>[H(`div`,IO,[H(`div`,LO,[H(`div`,RO,[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(xC),{ref_key:`searchInput`,ref:Me,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(rS),null,{default:P(()=>[U(N(lS),{"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`,zO,j(w.value),1)):G(``,!0)]),_:1})]),_:1}),U(N(OC),{align:`start`,class:`w-64`},{default:P(()=>[U(GC,{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,BO)):G(``,!0)]),_:1},8,[`variant`,`aria-checked`]),U(N(OS),{modelValue:b.value,"onUpdate:modelValue":i[12]||=e=>b.value=e},{default:P(()=>[U(N(SC),{class:`h-8 w-[160px]`},{default:P(()=>[U(N(YS),{placeholder:`Sort`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`key-asc`},{default:P(()=>[...i[33]||=[W(`Key A→Z`,-1)]]),_:1}),U(N(TC),{value:`key-desc`},{default:P(()=>[...i[34]||=[W(`Key Z→A`,-1)]]),_:1}),U(N(TC),{value:`created`},{default:P(()=>[...i[35]||=[W(`Recently created`,-1)]]),_:1}),U(N(TC),{value:`updated`},{default:P(()=>[...i[36]||=[W(`Recently updated`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),U(N(rC),{modelValue:x.value,"onUpdate:modelValue":i[13]||=e=>x.value=e},{default:P(()=>[U(N(EC),{class:`h-8`},{default:P(()=>[U(N(DC),{value:`bilingual`,class:`text-xs`},{default:P(()=>[...i[37]||=[W(`Bilingual`,-1)]]),_:1}),U(N(DC),{value:`multilingual`,class:`text-xs`},{default:P(()=>[...i[38]||=[W(`Multilingual`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),x.value===`bilingual`?(z(),V(OO,{key:0,modelValue:S.value,"onUpdate:modelValue":i[14]||=e=>S.value=e,locales:pe.value,class:`h-8 w-[170px]`},null,8,[`modelValue`,`locales`])):G(``,!0),H(`div`,VO,[H(`span`,HO,j(_e.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:N(pw),onClick:N(vw)},{default:P(()=>[N(pw)?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),W(` `+j(N(pw)?`Scanning…`:`Run scan`),1)]),_:1},8,[`disabled`,`onClick`]),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`,UO,[(z(!0),B(R,null,I(c.value.states,e=>(z(),V(N(kC),{key:`s-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(Mp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(Mp)[e]} filter`,onClick:t=>E(e)},[U(N(kd),{class:`size-3`})],8,WO)]),_:2},1024))),128)),(z(!0),B(R,null,I(c.value.plurality,e=>(z(),V(N(kC),{key:`p-${e}`,variant:`secondary`,class:`gap-1`},{default:P(()=>[W(j(N(Np)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(Np)[e]} filter`,onClick:t=>ee(e)},[U(N(kd),{class:`size-3`})],8,GO)]),_:2},1024))),128)),c.value.emptySource?(z(),V(N(kC),{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(kC),{key:`i-${e}`,variant:`outline`,class:`gap-1`},{default:P(()=>[W(j(N(jp)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${N(jp)[e]} filter`,onClick:t=>D(e)},[U(N(kd),{class:`size-3`})],8,KO)]),_:2},1024))),128)),c.value.aiContextUnreviewed?(z(),V(N(kC),{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(kC),{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(kC),{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`,qO,[U(SO,{ref_key:`translateBanner`,ref:ne,onChanged:le},null,512),U(SO,{ref_key:`contextBanner`,ref:O,kind:`context`,onChanged:le},null,512)]),_e.value.length?(z(),B(`div`,JO,[H(`button`,{id:`select-all-checkbox`,type:`button`,role:`checkbox`,"aria-checked":Se.value?`true`:Ce.value?`mixed`:`false`,"data-testid":`select-all`,class:A([`flex size-4 items-center justify-center rounded border transition-colors`,Se.value||Ce.value?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":Se.value?`Deselect all`:`Select all`,onClick:Te},[Se.value?(z(),V(N(Du),{key:0,class:`size-3`})):Ce.value?(z(),V(N(td),{key:1,class:`size-3`})):G(``,!0)],10,YO),xe.value?(z(),B(R,{key:0},[H(`span`,XO,j(xe.value.toLocaleString())+` selected`,1),H(`span`,ZO,`· `+j(ye.value),1)],64)):(z(),B(`label`,QO,`Select all`)),xe.value?(z(),V(aw,{key:2,class:`ml-auto`,keys:be.value,locales:ve.value,"scope-label":ye.value,"tags-on-selection":we.value,onChanged:le,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`,$O,[H(`div`,{ref_key:`parent`,ref:k,class:`h-full overflow-auto`},[ce.value?(z(),B(`div`,ek,[U(N($u),{class:`size-4 animate-spin`}),i[45]||=W(` Loading… `,-1)])):!se.value&&_e.value.length===0?(z(),B(`div`,tk,` No keys match the current filter. `)):(z(),B(`div`,{key:2,style:me({height:`${Ae.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(ke.value,e=>(z(),B(`div`,{key:e.key,ref_for:!0,ref:e=>N(Oe).measureElement(e),"data-index":e.index,style:me({position:`absolute`,top:`${e.start}px`,left:`0`,width:`100%`})},[r.value&&_e.value[e.index]?(z(),V(WT,{key:0,"key-name":_e.value[e.index],entry:r.value.keys[_e.value[e.index]],"source-locale":de.value,locales:he.value,selected:te.value===_e.value[e.index],issues:f.value.get(_e.value[e.index])??[],checked:N(l).has(_e.value[e.index]),onSelect:t=>je(_e.value[e.index]),onChanged:le,onRenamed:t=>Fe(_e.value[e.index],t),onFilterTag:i[24]||=e=>c.value.text=e,onToggleSelect:t=>Ee(_e.value[e.index],t.shift)},null,8,[`key-name`,`entry`,`source-locale`,`locales`,`selected`,`issues`,`checked`,`onSelect`,`onRenamed`,`onToggleSelect`])):G(``,!0)],12,nk))),128))],4))],512),_e.value.length?(z(),B(`div`,{key:0,class:`absolute inset-y-0`,style:me({left:`${N(t)}px`})},[U(jO,{side:`right`,class:`h-full`,width:N(t),min:N(NO).min,max:N(NO).max,"onUpdate:width":N(NO).set,onCommit:N(NO).commit,onReset:N(NO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`])],4)):G(``,!0)]),U(jO,{side:`left`,class:`max-[1080px]:hidden`,width:N(n),min:N(PO).min,max:N(PO).max,"onUpdate:width":N(PO).set,onCommit:N(PO).commit,onReset:N(PO).reset},null,8,[`width`,`min`,`max`,`onUpdate:width`,`onCommit`,`onReset`]),U(vD,{"key-name":te.value,entry:De.value,issues:te.value?f.value.get(te.value)??[]:[],locales:fe.value,"source-locale":de.value,"usage-revision":h.value,style:me({width:`${N(n)}px`}),onChanged:le},null,8,[`key-name`,`entry`,`issues`,`locales`,`source-locale`,`usage-revision`,`style`])],4),U(ED,{open:re.value,"onUpdate:open":i[25]||=e=>re.value=e,onCreated:Ie},null,8,[`open`]),U(zD,{open:ie.value,"onUpdate:open":i[26]||=e=>ie.value=e,"export-locales":r.value?.config.exportLocales??[]},null,8,[`open`,`export-locales`]),U(aO,{open:ae.value,"onUpdate:open":i[27]||=e=>ae.value=e,state:r.value,"filtered-keys":be.value,"target-locale":x.value===`bilingual`?S.value:void 0,onChanged:le,onBatchSubmitted:i[28]||=e=>ne.value?.refresh()},null,8,[`open`,`state`,`filtered-keys`,`target-locale`]),U(vO,{open:oe.value,"onUpdate:open":i[29]||=e=>oe.value=e,state:r.value,keys:be.value,onChanged:le,onBatchSubmitted:i[30]||=e=>O.value?.refresh()},null,8,[`open`,`state`,`keys`])])]),_:1}))}}),ak={"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`},ok={"empty-translation":`untranslated`,"placeholder-mismatch":`placeholder`,"glossary-violation":`glossary`,"max-length":`length`,spelling:`spelling`};function sk(e){if(e.ruleId===`empty-translation`)return{text:e.key,states:[`missing`]};if(e.ruleId===`output-stale`)return{};let t=ok[e.ruleId],n=e.locale?{locale:e.locale}:{};return t?{...n,issues:[t]}:{...n,text:e.key}}function ck(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()!==``:(n.value??``).trim()!==``:!1}function lk(e,t){if(!ck(e,t))return`missing`;let n=e.values[t].state;return n===`reviewed`?`reviewed`:n===`needs-review`?`needsReview`:`machine`}function uk(e,t){let n=e.values[t];return n?e.plural?n.forms?.other??``:n.value??``:``}function dk(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function fk(e,t){return`${e} ${t}${e===1?``:`s`}`}function pk(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=lk(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(fk(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+dk(uk(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:mk(l,m)}}function mk(e,t){let n=[];for(let e of t.breaking)n.push({id:`b:${e.locale}:${e.key}:${e.ruleId}`,priority:`breaking`,title:`Fix ${ak[e.ruleId].toLowerCase()}`,where:e.locale?`${e.locale.toUpperCase()} · ${e.key}`:e.key,detail:e.message,filter:e.ruleId===`output-stale`?void 0:sk(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 ${fk(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 ${fk(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 ${fk(t.length,`${ak[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:sk(t[0]),count:t.length});return n}var hk={class:`min-h-0 flex-1 overflow-y-auto p-6`},gk={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},_k={key:1,class:`mt-8 text-center text-sm text-muted-foreground`},vk={key:2,class:`mx-auto flex max-w-[1080px] flex-col gap-4`},yk={class:`flex flex-wrap divide-x rounded-xl border bg-card px-2 py-3 shadow-sm`},bk={class:`flex flex-col px-5`},xk={class:`text-lg font-semibold tabular-nums`},Sk={class:`flex flex-col px-5`},Ck={class:`text-lg font-semibold tabular-nums`},wk={class:`flex flex-col px-5`},Tk={class:`text-lg font-semibold tabular-nums`},Ek={class:`flex flex-col px-5`},Dk={class:`text-lg font-semibold tabular-nums`},Ok=[`disabled`],kk={class:`flex flex-col px-5`},Ak={class:`text-lg font-semibold tabular-nums`},jk={class:`flex flex-wrap items-start justify-between gap-6`},Mk={class:`min-w-0`},Nk={class:`mt-1.5 flex items-center gap-2.5 text-2xl font-semibold tracking-tight`},Pk={class:`mt-1.5 text-sm text-muted-foreground`},Fk={class:`text-emerald-600 dark:text-emerald-400`},Ik={class:`text-amber-600 dark:text-amber-400`},Lk={class:`text-red-600 dark:text-red-400`},Rk={key:0,class:`mt-2 flex flex-col gap-1`},zk={class:`font-semibold`},Bk={class:`font-mono text-muted-foreground`},Vk={class:`text-muted-foreground`},Hk={class:`flex gap-2`},Uk={class:`text-[11px] uppercase tracking-wide text-muted-foreground`},Wk={class:`mt-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-t pt-3.5`},Gk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Kk={class:`flex items-center gap-1 text-xs text-muted-foreground`},qk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Jk={class:`flex items-center gap-1 text-xs text-muted-foreground`},Yk={class:`rounded-2xl border bg-card p-5 shadow-sm`},Xk={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},Zk={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(218px,1fr))] gap-3`},Qk=[`data-test`,`onClick`],$k={class:`flex items-start justify-between gap-2`},eA={class:`flex min-w-0 flex-col`},tA={class:`truncate font-mono text-xs font-semibold uppercase`},nA=[`title`],rA={class:`text-2xl font-semibold tabular-nums leading-none`},iA={class:`flex h-[7px] w-full overflow-hidden rounded-full bg-muted`},aA={class:`flex min-h-[20px] items-center gap-1.5 text-xs text-muted-foreground`},oA={class:`truncate`},sA={class:`rounded-2xl border bg-card p-5 shadow-sm`},cA={class:`mb-4`},lA={class:`mt-0.5 text-sm text-muted-foreground`},uA={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},dA={key:1,class:`flex flex-col gap-2`},fA=[`disabled`,`onClick`],pA={class:`flex min-w-0 flex-col gap-0.5`},mA={class:`flex items-center gap-2 text-sm font-semibold`},hA={class:`truncate font-mono text-xs text-muted-foreground`},gA={key:0,class:`grid grid-cols-1 gap-4 lg:grid-cols-2`},_A={class:`rounded-2xl border bg-card p-5 shadow-sm`},vA={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},yA={key:1,class:`flex flex-col gap-2.5`},bA=[`disabled`,`onClick`],xA={class:`flex flex-1 flex-col`},SA={class:`text-sm font-semibold`},CA={class:`text-xs text-muted-foreground`},wA={key:0,class:`border-t`},TA={class:`flex items-center justify-between gap-2 border-b bg-muted/40 px-3.5 py-1.5`},EA={class:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`},DA=[`disabled`,`title`,`onClick`],OA=[`onClick`,`onKeydown`],kA=[`title`],AA={class:`truncate font-medium`},jA={class:`font-mono text-muted-foreground`},MA={class:`truncate text-muted-foreground`},NA={class:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`},PA=[`disabled`,`title`,`onClick`],FA=[`disabled`,`onClick`],IA={key:2,class:`mt-3 overflow-hidden rounded-xl border`},LA={key:0,class:`border-t`},RA={class:`font-mono font-semibold uppercase`},zA={class:`truncate`},BA={class:`font-mono`},VA={class:`truncate`},HA=[`disabled`,`onClick`],UA={class:`rounded-2xl border bg-card p-5 shadow-sm`},WA=[`onClick`],GA={class:`flex min-w-0 items-center gap-2`},KA={class:`flex min-w-0 flex-col`},qA={class:`whitespace-nowrap font-mono uppercase leading-tight`},JA=[`title`],YA={class:`text-center font-mono tabular-nums`},XA={key:1,class:`rounded-2xl border bg-card p-5 shadow-sm`},ZA={class:`flex items-center gap-3 rounded-xl bg-muted p-4`},QA=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?pk(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(),qf({includeSuppressed:!0}).catch(()=>null)]);t.value=e,r&&(n.value=r)}zh(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`,()=>Jf(e.key,e.ruleId,e.locale)),h=e=>p(`Restored ${ak[e.ruleId].toLowerCase()} on ${e.key}`,()=>Yf(e.key,e.ruleId,e.locale)),g=(e,t)=>p(`Dismissed ${t} warning${t===1?``:`s`}`,()=>Xf({rules:[e]})),_=e=>{let t=f(e);t&&p(`Added "${t}" to the dictionary`,()=>Df(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,...sk(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=>sk(e).issues??[]))];return t.length?{issues:t}:{needsAttention:!0}}return(e,t)=>(z(),B(`div`,hk,[r.value?(z(),B(`div`,gk,`Loading analytics…`)):s.value?(z(),B(`div`,_k,` No keys yet — add keys in the Editor to see analytics. `)):o.value?(z(),B(`div`,vk,[H(`section`,yk,[H(`div`,bk,[H(`span`,xk,j(o.value.totals.keys),1),t[2]||=H(`span`,{class:`text-xs text-muted-foreground`},`keys`,-1)]),H(`div`,Sk,[H(`span`,Ck,j(o.value.totals.locales),1),t[3]||=H(`span`,{class:`text-xs text-muted-foreground`},`locales`,-1)]),H(`div`,wk,[H(`span`,Tk,j(o.value.totals.translatedPct)+`%`,1),t[4]||=H(`span`,{class:`text-xs text-muted-foreground`},`translated`,-1)]),H(`div`,Ek,[H(`span`,Dk,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(Vh)({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,Ok),H(`div`,kk,[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`,jk,[H(`div`,Mk,[t[12]||=H(`div`,{class:`font-mono text-[11px] uppercase tracking-wider text-muted-foreground`},`Can I ship?`,-1),H(`h1`,Nk,[(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`,Pk,[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`,Fk,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`,Ik,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`,Lk,j(o.value.totals.blocked),1),t[11]||=W(` blocked`,-1)],64)):G(``,!0)],64))]),o.value.project.length?(z(),B(`ul`,Rk,[(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`,zk,j(N(ak)[e.ruleId]),1),H(`span`,Bk,j(e.key),1),H(`span`,Vk,j(e.message),1)],2))),128))])):G(``,!0)]),H(`div`,Hk,[(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`,Uk,j(e.label),1)]))),128))])]),H(`div`,Wk,[t[17]||=H(`span`,{class:`font-mono text-[10px] uppercase tracking-wider text-muted-foreground`},`Release gate`,-1),H(`span`,Gk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[13]||=W(` 100% translated`,-1)]),H(`span`,Kk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[14]||=W(` 0 lint errors`,-1)]),H(`span`,qk,[U(N(Du),{class:`size-3 text-emerald-500`}),t[15]||=W(` outputs exported`,-1)]),H(`span`,Jk,[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`,Yk,[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`,Xk,[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`,Zk,[(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(Vh)(T(e))},[H(`div`,$k,[H(`span`,eA,[H(`span`,tA,j(e.locale),1),H(`span`,{class:`truncate text-[11px] text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,nA)]),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`,rA,[W(j(e.pct),1),t[20]||=H(`span`,{class:`ml-0.5 text-xs text-muted-foreground`},`%`,-1)]),H(`div`,iA,[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`,aA,[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`,oA,j(w(e)),1)])],10,Qk))),128))]))]),H(`section`,sA,[H(`header`,cA,[t[22]||=H(`h2`,{class:`text-base font-semibold`},`Needs attention`,-1),H(`p`,lA,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`,dA,[(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(Vh)(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`,pA,[H(`span`,mA,[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`,hA,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,fA)]))),128))])):(z(),B(`div`,uA,[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`,XA,[t[32]||=H(`h2`,{class:`mb-4 text-base font-semibold`},`Quality`,-1),H(`div`,ZA,[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`,gA,[H(`section`,_A,[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`,yA,[(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(Vh)(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`,xA,[H(`span`,SA,j(e.label),1),H(`span`,CA,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,bA),o.value.risk[e.key].length?(z(),B(`div`,wA,[(z(!0),B(R,null,I(v(e.key),n=>(z(),B(R,{key:n.ruleId},[H(`div`,TA,[H(`span`,EA,j(N(ak)[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,DA)):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(Vh)(N(sk)(e)),onKeydown:Xl(t=>N(Vh)(N(sk)(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,kA),H(`span`,AA,[H(`span`,jA,j(e.key),1)]),H(`span`,MA,j(e.message),1),H(`span`,NA,[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,PA)):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,FA)):G(``,!0)])],40,OA))),128))],64))),128))])):G(``,!0)])),64))])):(z(),B(`div`,vA,[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`,IA,[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`,LA,[(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`,RA,j(e.locale||`—`),1),H(`span`,zA,[W(j(N(ak)[e.ruleId])+` · `,1),H(`span`,BA,j(e.key),1)]),H(`span`,VA,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,HA)]))),128))])):G(``,!0)])):G(``,!0)]),H(`section`,UA,[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(Vh)(T(e))},[H(`span`,GA,[H(`span`,{class:A([`size-2 shrink-0 rounded-full`,y[e.verdict].bar])},null,2),H(`span`,KA,[H(`span`,qA,j(e.locale),1),H(`span`,{class:`truncate text-xs leading-tight text-muted-foreground`,title:E(e.locale)},j(E(e.locale)),9,JA)])]),H(`span`,YA,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,WA))),128))])]))])):G(``,!0)]))}});function $A(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 ej={class:`grid gap-4`},tj={class:`grid gap-1.5`},nj={key:0,class:`text-xs text-muted-foreground`},rj={class:`flex items-center justify-between`},ij={class:`flex items-center justify-between`},aj={class:`flex items-center justify-between`},oj={class:`grid gap-1.5`},sj={key:0,class:`grid gap-2 border-t pt-3`},cj={key:1,class:`text-sm text-destructive`},lj=F({__name:`GlossaryEntryDialog`,props:Oa({entry:{},prefill:{},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,wholeWord:!0,notes:``,translations:{}}),o=M(!1),s=M(``),c=M(!1);Er(r,e=>{if(!e)return;let t=n.entry??n.prefill??null;c.value=n.entry!==null,a.term=t?.term??``,a.doNotTranslate=t?.doNotTranslate??!1,a.caseSensitive=t?.caseSensitive??!1,a.wholeWord=t?.wholeWord??!0,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.wholeWord||(n.wholeWord=!1),a.notes.trim()&&(n.notes=a.notes.trim()),Object.keys(t).length>0&&(n.translations=t),o.value=!0,s.value=``;try{await kf(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(L_),{open:r.value,"onUpdate:open":n[6]||=e=>r.value=e},{default:P(()=>[U(N(qC),{class:`max-h-[85vh] max-w-lg overflow-y-auto`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[W(j(c.value?`Edit term`:`Add term`),1)]),_:1}),U(N(ZC),null,{default:P(()=>[...n[7]||=[W(` Guide AI translations with do-not-translate terms and forced translations. `,-1)]]),_:1})]),_:1}),H(`div`,ej,[H(`div`,tj,[U(N(KC),{for:`glossary-term`},{default:P(()=>[...n[8]||=[W(`Term`,-1)]]),_:1}),U(N(xC),{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`,nj,` The term is the entry's identity and can't be changed. `)):G(``,!0)]),H(`div`,rj,[H(`div`,null,[U(N(KC),{for:`glossary-dnt`},{default:P(()=>[...n[9]||=[W(`Do not translate`,-1)]]),_:1}),n[10]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keep this term verbatim in every language.`,-1)]),U(N(jC),{id:`glossary-dnt`,modelValue:a.doNotTranslate,"onUpdate:modelValue":n[1]||=e=>a.doNotTranslate=e},null,8,[`modelValue`])]),H(`div`,ij,[H(`div`,null,[U(N(KC),{for:`glossary-cs`},{default:P(()=>[...n[11]||=[W(`Case sensitive`,-1)]]),_:1}),n[12]||=H(`p`,{class:`text-xs text-muted-foreground`},`Only match the exact casing.`,-1)]),U(N(jC),{id:`glossary-cs`,modelValue:a.caseSensitive,"onUpdate:modelValue":n[2]||=e=>a.caseSensitive=e},null,8,[`modelValue`])]),H(`div`,aj,[H(`div`,null,[U(N(KC),{for:`glossary-ww`},{default:P(()=>[...n[13]||=[W(`Whole word`,-1)]]),_:1}),n[14]||=H(`p`,{class:`text-xs text-muted-foreground`},` Apply this term only as a standalone word (e.g. "Pro" won't match "Process"). Turn off to also match inside larger words. `,-1)]),U(N(jC),{id:`glossary-ww`,modelValue:a.wholeWord,"onUpdate:modelValue":n[3]||=e=>a.wholeWord=e},null,8,[`modelValue`])]),H(`div`,oj,[U(N(KC),{for:`glossary-notes`},{default:P(()=>[...n[15]||=[W(`Notes`,-1)]]),_:1}),U(N(Lw),{id:`glossary-notes`,modelValue:a.notes,"onUpdate:modelValue":n[4]||=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`,sj,[n[16]||=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(KC),{for:`glossary-tr-${e}`,class:`text-xs text-muted-foreground`},{default:P(()=>[U(uT,{code:e,"show-name":``,"show-code":!1,size:12},null,8,[`code`])]),_:2},1032,[`for`]),U(N(xC),{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`,cj,j(s.value),1)):G(``,!0)]),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:o.value,onClick:n[5]||=e=>r.value=!1},{default:P(()=>[...n[17]||=[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`]))}}),uj={key:0,class:`rounded-md border bg-muted/40 px-3 py-2 text-xs text-muted-foreground`},dj={class:`font-medium text-foreground`},fj={key:1,class:`flex flex-col gap-1.5`},pj={class:`flex justify-between text-xs text-muted-foreground`},mj={key:2,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},hj={class:`flex items-center gap-1.5 font-medium`},gj=F({__name:`GlossarySuggestDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:Oa([`found`,`batch-submitted`],[`update:open`]),setup(e,{emit:t}){let n=Xa(e,`open`),r=t,i=M(!1),a=M(null),o=M(``),s=M(0),c=M(0),l=M(null),u=M(!1),d=M(!1),f=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString(),p=e=>e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(4)}`,m=q(()=>{let e=l.value?.estimatedCost;return e==null?`Batch (50% off)`:`Batch ≈ ${p(e/2)} (50% off)`});async function h(){l.value=null,u.value=!1;try{l.value=await of({})}catch{}try{let e=await sf();u.value=e.supported&&!e.pending}catch{}}async function g(){d.value=!0;try{let e=await cf({});Q.success(`Glossary batch of ${e.total} source(s) submitted — applies when processing finishes`),r(`batch-submitted`),n.value=!1}catch(e){o.value=e.message}finally{d.value=!1}}Er(n,e=>{e?(o.value=``,s.value=0,c.value=0,h()):a.value?.abort()});function _(){a.value?.abort()}async function v(){i.value=!0,o.value=``,s.value=0,c.value=0,a.value=new AbortController;let e=!1;try{for await(let t of Pf({},a.value.signal))t.type===`start`?c.value=t.total:t.type===`progress`?(s.value=t.done,c.value=t.total):t.type===`done`&&(e=!0,s.value=c.value,r(`found`),t.added>0?(Q.success(`Found ${t.added} candidate term${t.added===1?``:`s`}`),n.value=!1):Q.info(`No new candidate terms found`))}catch(e){o.value=e.message}finally{!e&&a.value?.signal.aborted&&Q(`Suggestion scan cancelled after ${s.value} of ${c.value} keys`),a.value=null,i.value=!1}}return(e,t)=>(z(),V(N(L_),{open:n.value,"onUpdate:open":t[1]||=e=>n.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[2]||=[W(`Find glossary terms`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[...t[3]||=[W(` Scan your translation keys with AI to suggest new glossary terms — brand names, technical terms, and phrases that should be translated consistently. `,-1)]]),_:1})]),_:1}),l.value&&l.value.sources>0&&!i.value&&s.value===0?(z(),B(`div`,uj,[H(`p`,null,[W(` ≈ `+j(l.value.sources.toLocaleString())+` source`+j(l.value.sources===1?``:`s`)+` · `+j(l.value.batches.toLocaleString())+` batch`+j(l.value.batches===1?``:`es`)+` · ~`+j(f(l.value.inputTokens))+` in / ~`+j(f(l.value.outputTokens))+` out tokens`,1),l.value.estimatedCost===null?G(``,!0):(z(),B(R,{key:0},[t[4]||=W(` · `,-1),H(`span`,dj,`≈ `+j(p(l.value.estimatedCost)),1),t[5]||=W(` (±20%)`,-1)],64))])])):G(``,!0),i.value||s.value>0?(z(),B(`div`,fj,[H(`div`,pj,[H(`span`,null,j(s.value.toLocaleString())+` / `+j(c.value.toLocaleString())+` scanned`,1)]),U(N(HD),{"model-value":c.value>0?s.value/c.value*100:0},null,8,[`model-value`])])):G(``,!0),o.value?(z(),B(`div`,mj,[H(`p`,hj,[U(N(Td),{class:`size-4`}),t[6]||=W(` Scan failed `,-1)]),H(`p`,null,j(o.value),1)])):G(``,!0),U(N(YC),null,{default:P(()=>[i.value?(z(),V(N($),{key:0,variant:`outline`,onClick:_},{default:P(()=>[...t[7]||=[W(`Cancel`,-1)]]),_:1})):(z(),V(N($),{key:1,variant:`outline`,onClick:t[0]||=e=>n.value=!1},{default:P(()=>[...t[8]||=[W(`Close`,-1)]]),_:1})),u.value?(z(),V(N($),{key:2,variant:`outline`,disabled:i.value||d.value,onClick:g},{default:P(()=>[W(j(d.value?`Submitting…`:m.value),1)]),_:1},8,[`disabled`])):G(``,!0),U(N($),{disabled:i.value||d.value,onClick:v},{default:P(()=>[U(N(vd),{class:`size-4`}),W(` `+j(i.value?`Scanning…`:`Find terms`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),_j={class:`min-h-0 flex-1 overflow-y-auto`},vj={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},yj={key:1,class:`mx-auto flex max-w-3xl flex-col gap-4 p-6`},bj={class:`flex items-center justify-between`},xj={class:`flex items-center gap-2`},Sj={class:`relative`},Cj={key:0,class:`flex flex-col gap-2`},wj={class:`flex flex-col gap-2`},Tj={class:`min-w-0 flex-1`},Ej={class:`flex flex-wrap items-center gap-2`},Dj={class:`font-mono text-sm font-medium`},Oj={key:0,class:`mt-1 text-sm text-muted-foreground`},kj={key:1,class:`mt-1 text-xs text-muted-foreground`},Aj={class:`flex shrink-0 items-center gap-1`},jj={key:1,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},Mj={key:2,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},Nj={key:3,class:`flex flex-col gap-2`},Pj={class:`min-w-0 flex-1`},Fj={class:`flex flex-wrap items-center gap-2`},Ij={class:`font-mono text-sm font-medium`},Lj={key:0,class:`mt-1 text-sm text-muted-foreground`},Rj={key:1,class:`mt-2 flex flex-wrap gap-1.5`},zj={class:`flex shrink-0 items-center gap-1`},Bj={class:`font-mono`},Vj=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(()=>$A(t.value,l.value)),d=q(()=>r.value.filter(e=>e!==n.value)),f=M(null),p=M([]),m=M(!1),h=M(null),g=M(null);async function _(){p.value=await jf()}async function v(){let[e,a]=await Promise.all([Of(),jd()]);t.value=e,n.value=a.config.sourceLocale,r.value=a.config.locales,i.value=!0}v(),_(),zh(()=>{v(),_()});function y(){o.value=null,h.value=null,g.value=null,a.value=!0}function b(e){o.value=e,h.value=null,g.value=null,a.value=!0}function x(e){g.value=e.term,o.value=null,h.value={term:e.term,doNotTranslate:e.doNotTranslate,caseSensitive:e.caseSensitive,wholeWord:e.wholeWord,notes:e.note},a.value=!0}async function S(e){await Mf(e.term),await _()}async function C(){g.value&&=(await Nf(g.value),null),await Promise.all([v(),_()])}function w(e){return Object.entries(e.translations??{}).map(([e,t])=>`${e}: ${t}`)}async function T(){let e=s.value;if(e){c.value=!0;try{await Af(e.term),Q.success(`Deleted ${e.term}`),s.value=null,await v()}catch(e){Q.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}}return(e,n)=>(z(),B(`div`,_j,[i.value?(z(),B(`div`,yj,[H(`div`,bj,[n[11]||=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),H(`div`,xj,[U(N($),{variant:`outline`,onClick:n[0]||=e=>m.value=!0},{default:P(()=>[U(N(vd),{class:`size-4`}),n[9]||=W(` Suggest terms with AI `,-1)]),_:1}),U(N($),{onClick:y},{default:P(()=>[U(N(od),{class:`size-4`}),n[10]||=W(` Add term `,-1)]),_:1})])]),H(`div`,Sj,[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(xC),{modelValue:l.value,"onUpdate:modelValue":n[1]||=e=>l.value=e,placeholder:`Search terms, notes, translations…`,class:`h-8 w-full pl-8 pr-8`,onKeydown:n[2]||=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[3]||=e=>l.value=``},[U(N(kd),{class:`size-4`})])):G(``,!0)]),U(SO,{ref_key:`suggestBanner`,ref:f,kind:`glossary-suggest`,onChanged:_},null,512),p.value.length?(z(),B(`div`,Cj,[n[17]||=H(`p`,{class:`text-sm font-medium`},`AI term suggestions`,-1),H(`ul`,wj,[(z(!0),B(R,null,I(p.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`,Tj,[H(`div`,Ej,[H(`span`,Dj,j(e.term),1),e.doNotTranslate?(z(),V(N(kC),{key:0,variant:`secondary`},{default:P(()=>[...n[12]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(kC),{key:1,variant:`outline`},{default:P(()=>[...n[13]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0),e.wholeWord===!1?(z(),V(N(kC),{key:2,variant:`outline`},{default:P(()=>[...n[14]||=[W(`Substring`,-1)]]),_:1})):G(``,!0)]),e.note?(z(),B(`p`,Oj,j(e.note),1)):G(``,!0),typeof e.occurrences==`number`?(z(),B(`p`,kj,` used in `+j(e.occurrences)+` key`+j(e.occurrences===1?``:`s`),1)):G(``,!0)]),H(`div`,Aj,[U(N($),{size:`sm`,"aria-label":`Accept ${e.term}`,onClick:t=>x(e)},{default:P(()=>[...n[15]||=[W(`Accept`,-1)]]),_:1},8,[`aria-label`,`onClick`]),U(N($),{variant:`ghost`,size:`sm`,"aria-label":`Dismiss ${e.term}`,onClick:t=>S(e)},{default:P(()=>[...n[16]||=[W(`Dismiss`,-1)]]),_:1},8,[`aria-label`,`onClick`])])]))),128))])])):G(``,!0),t.value.length===0?(z(),B(`div`,jj,` No glossary terms yet — add do-not-translate terms and forced translations to guide AI. `)):u.value.length===0?(z(),B(`div`,Mj,` No terms match your search. `)):(z(),B(`ul`,Nj,[(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`,Pj,[H(`div`,Fj,[H(`span`,Ij,j(e.term),1),e.doNotTranslate?(z(),V(N(kC),{key:0,variant:`secondary`},{default:P(()=>[...n[18]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(N(kC),{key:1,variant:`outline`},{default:P(()=>[...n[19]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0),e.wholeWord===!1?(z(),V(N(kC),{key:2,variant:`outline`},{default:P(()=>[...n[20]||=[W(`Substring`,-1)]]),_:1})):G(``,!0)]),e.notes?(z(),B(`p`,Lj,j(e.notes),1)):G(``,!0),w(e).length?(z(),B(`div`,Rj,[(z(!0),B(R,null,I(w(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`,zj,[U(N($),{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.term}`,onClick:t=>b(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`,vj,` Loading glossary… `)),U(lj,{open:a.value,"onUpdate:open":n[4]||=e=>a.value=e,entry:o.value,prefill:h.value,"target-locales":d.value,onSaved:C},null,8,[`open`,`entry`,`prefill`,`target-locales`]),U(gj,{open:m.value,"onUpdate:open":n[5]||=e=>m.value=e,onFound:_,onBatchSubmitted:n[6]||=e=>f.value?.refresh()},null,8,[`open`]),U(N(L_),{open:s.value!==null,"onUpdate:open":n[8]||=e=>{e||(s.value=null)}},{default:P(()=>[U(N(qC),{class:`max-w-md`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[21]||=[W(`Delete term`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[n[22]||=W(` Delete `,-1),H(`span`,Bj,j(s.value?.term),1),n[23]||=W(` from the glossary? This cannot be undone. `,-1)]),_:1})]),_:1}),U(N(YC),null,{default:P(()=>[U(N($),{variant:`outline`,disabled:c.value,onClick:n[7]||=e=>s.value=null},{default:P(()=>[...n[24]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(N($),{variant:`destructive`,disabled:c.value,onClick:T},{default:P(()=>[...n[25]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),Hj=[{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`}],Uj=Object.fromEntries(Hj.map(e=>[e.id,e.default]));function Wj(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 Gj(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:{...Uj,...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 Kj(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:Wj(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])=>Uj[e]!==void 0&&t!==Uj[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 qj=M(0),Jj={class:`flex items-center gap-2 p-2`},Yj=[`aria-label`],Xj={class:`!flex items-center gap-2`},Zj={class:`truncate font-medium`},Qj={class:`flex items-center gap-2`},$j={key:0,class:`grid gap-5 border-t border-border p-4`},eM={key:0,class:`grid gap-1.5`},tM={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},nM=[`onClick`],rM={key:1,class:`grid gap-1.5`},iM={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},aM=[`onClick`],oM={key:2,class:`grid gap-1.5`},sM={class:`flex items-center gap-2`},cM={key:0,class:`text-xs text-muted-foreground`},lM={class:`flex items-center gap-2`},uM={key:3,class:`grid gap-1.5`},dM={class:`flex items-center gap-2`},fM={key:0,class:`text-xs text-muted-foreground`},pM={class:`flex items-center gap-2`},mM={class:`text-xs text-muted-foreground`},hM={key:4,class:`grid gap-1.5`},gM={class:`flex items-center gap-2`},_M={class:`text-xs text-muted-foreground`},vM={class:`grid gap-1.5`},yM={class:`flex w-full items-center justify-between gap-4`},bM={class:`font-mono text-xs text-muted-foreground`},xM={class:`grid gap-1.5`},SM={class:`mt-1 grid gap-2`},CM={key:0,class:`text-xs text-muted-foreground`},wM={class:`w-24 shrink-0 font-mono text-xs font-semibold`},TM={key:1},EM={class:`!flex items-center gap-1.5`},DM={class:`border-t border-border pt-4`},OM={class:`mt-2 grid gap-2`},kM={key:0,class:`text-xs text-muted-foreground`},AM={class:`flex h-8 shrink-0 items-center gap-1.5`},jM={class:`font-mono text-xs font-semibold`},MM={class:`flex flex-1 flex-wrap items-center gap-1.5`},NM=[`onClick`],PM={key:1},FM={class:`!flex items-center gap-1.5`},IM=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`],"next-intl-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===`laravel-php`?`Default (Laravel: 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`,"next-intl-json":`Next.js (next-intl)`,"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,"next-intl-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`||e===`next-intl-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`,Jj,[U(N(mC),null,{default:P(()=>[U(N(yC),{"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,Yj)]),_:1}),U(N(sw),null,{default:P(()=>[W(j(i.value?`Collapse`:`Expand options`),1)]),_:1})]),_:1}),U(N(OS),{"model-value":e.output.adapter,"onUpdate:modelValue":x},{default:P(()=>[U(N(SC),{class:`w-44 shrink-0`},{default:P(()=>[H(`span`,Xj,[(z(),V(ia(v(e.output.adapter)),{class:`size-3.5 shrink-0 text-primary`})),H(`span`,Zj,j(h(e.output.adapter)),1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(g.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[H(`span`,Qj,[(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(TC),{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(xC),{"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`,$j,[c(`emptyAs`)?(z(),B(`div`,eM,[U(N(KC),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`,tM,[(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,nM)),64))])])):G(``,!0),c(`style`)?(z(),B(`div`,rM,[U(N(KC),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`,iM,[(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,aM)),64))])])):G(``,!0),c(`indent`)?(z(),B(`div`,oM,[H(`div`,sM,[U(N(KC),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`,cM,`Inherited · `+j(e.formatIndent),1))]),H(`div`,lM,[U(N(xC),{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`,uM,[H(`div`,dM,[U(N(KC),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`,fM,`Inherited · `+j(e.formatFinalNewline?`on`:`off`),1))]),H(`div`,pM,[U(N(jC),{"model-value":C.value,"onUpdate:modelValue":n[6]||=e=>y({finalNewline:e})},null,8,[`model-value`]),H(`span`,mM,j(C.value?`Enabled`:`Disabled`),1)])])):G(``,!0),c(`includeLocale`)?(z(),B(`div`,hM,[U(N(KC),{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`,gM,[U(N(jC),{"model-value":e.output.includeLocale??!0,"onUpdate:modelValue":n[7]||=e=>y({includeLocale:e})},null,8,[`model-value`]),H(`span`,_M,j(e.output.includeLocale??!0?`Enabled`:`Disabled`),1)])])):G(``,!0),H(`div`,vM,[U(N(KC),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(OS),{"model-value":f.value,"onUpdate:modelValue":p},{default:P(()=>[U(N(SC),{class:`w-72`,"aria-label":`Locale code format`},{default:P(()=>[U(N(YS))]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`default`},{default:P(()=>[W(j(d(e.output.adapter)),1)]),_:1}),(z(),B(R,null,I(u,e=>U(N(TC),{key:e.value,value:e.value},{default:P(()=>[H(`span`,yM,[H(`span`,null,j(e.label),1),H(`span`,bM,j(e.example),1)])]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),H(`div`,xM,[U(N(KC),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`,SM,[oe.value.length===0?(z(),B(`p`,CM,`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`,wM,j(e),1),U(N(bu),{class:`size-3 shrink-0 text-muted-foreground`}),U(N(xC),{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`,TM,[U(N(OS),{"model-value":``,"onUpdate:modelValue":ce},{default:P(()=>[U(N(SC),{class:`w-56 text-muted-foreground`,"aria-label":`Add locale override`},{default:P(()=>[H(`span`,EM,[U(N(od),{class:`size-3.5`}),n[20]||=W(` Add override…`,-1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(k.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])]),H(`div`,DM,[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`,OM,[D.value.length===0?(z(),B(`p`,kM,`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`,AM,[H(`span`,jM,j(e),1),U(N(bu),{class:`size-3 text-muted-foreground`})]),H(`div`,MM,[(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(mC),null,{default:P(()=>[U(N(yC),{"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,NM)]),_:2},1024),U(N(sw),null,{default:P(()=>[...n[22]||=[W(`Remove`,-1)]]),_:1})]),_:2},1024)]))),128)),U(N(xC),{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(mC),null,{default:P(()=>[U(N(yC),{"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(sw),null,{default:P(()=>[...n[23]||=[W(`Remove alias`,-1)]]),_:1})]),_:2},1024)]))),128)),ee.value.length>0?(z(),B(`div`,PM,[U(N(OS),{"model-value":``,"onUpdate:modelValue":ne},{default:P(()=>[U(N(SC),{class:`w-56 text-muted-foreground`},{default:P(()=>[H(`span`,FM,[U(N(od),{class:`size-3.5`}),n[24]||=W(` Add locale alias…`,-1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(ee.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])])])):G(``,!0)],2))}}),LM={class:`grid gap-1.5`},RM={class:`flex flex-wrap gap-2`},zM=[`aria-label`,`onClick`],BM={key:0,class:`text-sm text-muted-foreground`},VM={class:`flex max-w-sm gap-2`},HM={key:0,class:`flex items-center gap-1.5 text-xs text-destructive`},UM=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`,LM,[U(N(KC),null,{default:P(()=>[W(j(e.label),1)]),_:1}),L(t.$slots,`help`),H(`div`,RM,[(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,zM)],2))),128)),e.items.length===0?(z(),B(`p`,BM,`None — auto-detect.`)):G(``,!0)]),H(`div`,VM,[U(N(xC),{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`,HM,[U(N(Td),{class:`size-3.5`}),W(` `+j(a.value),1)])):G(``,!0)]))}}),WM={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},GM={class:`p-6`},KM={class:`flex items-start gap-3 pr-6`},qM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 text-primary`},JM={class:`min-w-0`},YM={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`},XM={class:`mt-4 grid grid-cols-4 gap-2`},ZM={class:`mt-1.5 text-[17px] font-semibold leading-none tabular-nums`},QM={class:`mt-1 whitespace-nowrap text-[10.5px] text-muted-foreground`},$M={class:`mt-2 text-center text-[11px] text-muted-foreground`},eN={class:`mt-4 divide-y divide-border overflow-hidden rounded-lg border border-border`},tN={key:0},nN=[`onClick`],rN={class:`ml-auto font-mono text-[11px] text-muted-foreground tabular-nums`},iN={key:0,class:`max-h-36 divide-y divide-border/50 overflow-auto border-t border-border bg-muted/20 gf-content-fade`},aN={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`},oN={class:`flex items-start gap-2.5`},sN={class:`text-[13px] font-medium`},cN={class:`flex items-center gap-2 border-t border-border px-6 py-4`},lN={class:`ml-auto`},uN={class:`flex flex-col items-center justify-center gap-4 p-6 py-10 text-center`},dN={class:`p-6`},fN={class:`flex flex-col items-center gap-3 pt-1 text-center`},pN={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},mN={class:`font-semibold text-foreground`},hN={class:`font-semibold text-foreground`},gN={class:`font-semibold text-foreground`},_N={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},vN={class:`whitespace-nowrap text-[13px] font-medium text-warning`},yN={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},bN={class:`flex items-center border-t border-border px-6 py-4`},xN={class:`ml-auto`},SN={class:`p-6`},CN={class:`flex items-start gap-3 pr-6`},wN={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},TN={class:`min-w-0`},EN={class:`flex items-center border-t border-border px-6 py-4`},DN={class:`ml-auto`},ON=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 $f();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 ep({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(L_),{open:i.value,"onUpdate:open":y},{default:P(()=>[U(N(wv),null,{default:P(()=>[U(N(Sv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(yv),{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(Tv),{class:`sr-only`},{default:P(()=>[...t[9]||=[W(`Comparing files`,-1)]]),_:1}),H(`div`,WM,[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`,GM,[H(`div`,KM,[H(`div`,qM,[U(N(sd),{class:`size-5`})]),H(`div`,JM,[U(N(Tv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[11]||=[W(`Sync from files`,-1)]]),_:1}),U(N(bv),{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`,YM,[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`,XM,[(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`,ZM,j(e.keys.length),1),H(`span`,QM,j(e.label),1)]))),128))]),H(`p`,$M,j(o.value.unchanged.toLocaleString())+` key`+j(o.value.unchanged===1?``:`s`)+` unchanged `,1),H(`div`,eN,[(z(!0),B(R,null,I(g.value,e=>(z(),B(R,{key:e.id},[e.keys.length?(z(),B(`div`,tN,[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`,rN,j(e.keys.length),1)],8,nN),f.value[e.id]?(z(),B(`ul`,iN,[(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`,aN,[H(`div`,oN,[U(N(wd),{class:`mt-0.5 size-4 shrink-0 text-destructive`}),H(`div`,null,[H(`div`,sN,`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(jC),{"data-testid":`prune-toggle`,modelValue:u.value,"onUpdate:modelValue":t[1]||=e=>u.value=e},null,8,[`modelValue`])])):G(``,!0)],64))]),H(`div`,cN,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[2]||=e=>r(`dismiss`)},{default:P(()=>[W(j(h.value?`Close`:`Cancel`),1)]),_:1}),H(`div`,lN,[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(Tv),{class:`sr-only`},{default:P(()=>[...t[16]||=[W(`Applying changes`,-1)]]),_:1}),H(`div`,uN,[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`,dN,[H(`div`,fN,[H(`div`,pN,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[18]||=[W(`Sync complete`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,mN,`+`+j(c.value.plan.added.length),1),t[19]||=W(` added, `,-1),H(`span`,hN,`~`+j(c.value.plan.sourceChanged.length),1),t[20]||=W(` changed, `,-1),H(`span`,gN,j(c.value.plan.removed.length),1),t[21]||=W(` removed. `,-1)]),_:1})])]),c.value.warnings.length?(z(),B(`div`,_N,[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`,vN,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`,yN,[(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`,bN,[H(`div`,xN,[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`,SN,[H(`div`,CN,[H(`div`,wN,[U(N(Td),{class:`size-5`})]),H(`div`,TN,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[23]||=[W(`Couldn't sync`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(l.value),1)]),_:1})])])]),H(`div`,EN,[H(`div`,DN,[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`]))}}),kN={key:0,class:`flex flex-1 items-center justify-center text-sm text-muted-foreground`},AN={key:1,class:`flex min-h-0 flex-1 overflow-hidden`},jN={class:`flex w-60 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted p-3`},MN=[`onClick`],NN={class:`min-w-0 flex-1`},PN={class:`block text-[13px] font-[570] leading-tight`},FN={class:`mt-0.5 block truncate text-[11px] opacity-70`},IN={key:0,class:`size-2 shrink-0 rounded-full bg-primary ring-2 ring-primary/25`},LN={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`},RN=[`onClick`],zN={class:`min-w-0 flex-1`},BN={class:`block text-[13px] font-[570] leading-tight`},VN={class:`mt-0.5 block truncate text-[11px] opacity-70`},HN={class:`relative flex min-w-0 flex-1 flex-col`},UN={class:`flex-1 overflow-y-auto px-8 pb-28 pt-7`},WN={class:`max-w-[680px]`},GN={class:`mb-6`},KN={class:`flex items-center gap-2.5 text-[21px] font-bold tracking-tight`},qN={key:0,class:`size-2 rounded-full bg-primary ring-2 ring-primary/25`},JN={key:0,class:`mt-1.5 text-sm text-muted-foreground`},YN={key:1,class:`mt-1.5 text-sm text-muted-foreground`},XN={key:2,class:`mt-1.5 text-sm text-muted-foreground`},ZN={key:3,class:`mt-1.5 text-sm text-muted-foreground`},QN={key:4,class:`mt-1.5 text-sm text-muted-foreground`},$N={key:5,class:`mt-1.5 text-sm text-muted-foreground`},eP={key:6,class:`mt-1.5 text-sm text-muted-foreground`},tP={key:7,class:`mt-2 flex items-center gap-1.5 text-sm text-muted-foreground`},nP={key:0,class:`flex flex-col gap-5`},rP={class:`grid max-w-sm gap-1.5`},iP={key:0},aP={class:`grid gap-1.5`},oP={class:`ml-1.5 font-normal text-muted-foreground`},sP={class:`flex flex-wrap gap-2`},cP={key:0,class:`font-mono text-[10px] italic text-muted-foreground`},lP=[`aria-label`,`onClick`],uP={class:`mt-1 flex items-center gap-1.5 text-xs text-destructive`},dP={class:`grid max-w-sm gap-1.5`},fP={class:`flex gap-2`},pP={key:0,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},mP={key:1,class:`flex flex-col gap-6`},hP={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},gP={class:`flex items-start gap-2.5`},_P={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},vP={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},yP={class:`flex items-start gap-2.5`},bP={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},xP={class:`rounded-lg border p-3.5`},SP={class:`flex items-center justify-between gap-4`},CP={class:`flex items-start gap-2.5`},wP={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`},TP={key:0,class:`mt-3 border-t pt-3`},EP={class:`flex flex-wrap gap-2`},DP=[`aria-checked`,`onClick`],OP={class:`mt-2 flex items-center gap-1.5 text-xs text-amber-600 dark:text-amber-400`},kP={class:`mt-2 divide-y rounded-lg border`},AP={class:`flex items-center justify-between gap-4 p-3.5`},jP={class:`flex items-center gap-2`},MP={class:`flex items-center justify-between gap-4 p-3.5`},NP={class:`flex items-center gap-2 text-sm font-medium`},PP={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`},FP={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`},IP={class:`flex items-center justify-between gap-4 p-3.5`},LP={class:`mt-2 flex flex-col gap-2.5`},RP={key:0,class:`text-sm text-muted-foreground`},zP={key:2,class:`flex flex-col gap-4`},BP={class:`flex items-center gap-2 rounded-lg border p-3`},VP={key:1,class:`flex-1 text-sm text-muted-foreground`},HP={class:`grid max-w-sm gap-4`},UP={class:`grid gap-1.5`},WP={class:`flex items-center gap-2`},GP={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},KP={class:`text-xs text-muted-foreground`},qP={class:`grid gap-1.5`},JP={key:0,class:`text-xs text-muted-foreground`},YP=[`onClick`],XP={key:0},ZP={key:1,class:`text-xs text-muted-foreground`},QP={key:0,class:`grid gap-1.5`},$P={key:1,class:`grid gap-1.5`},eF={key:0,class:`text-xs text-muted-foreground`},tF={key:1,class:`text-xs text-muted-foreground`},nF={class:`grid gap-1.5`},rF={class:`flex flex-wrap items-center gap-2`},iF={key:0,class:`flex items-center gap-1 text-xs font-medium text-emerald-600 dark:text-emerald-400`},aF={key:0,class:`flex items-start gap-1.5 rounded-md border border-destructive/30 bg-destructive/5 px-2.5 py-2 text-xs text-destructive`},oF={class:`grid gap-1.5`},sF={class:`grid gap-1.5`},cF={class:`grid gap-1.5`},lF={class:`grid gap-1.5`},uF={key:2,class:`flex items-center gap-3`},dF={class:`grid gap-0.5`},fF={key:3,class:`grid gap-1.5`},pF={class:`grid gap-1.5`},mF={class:`flex flex-wrap items-center gap-2`},hF={key:0,class:`text-xs text-muted-foreground`},gF={key:1,class:`text-xs text-muted-foreground`},_F={class:`relative`},vF={class:`text-xs text-muted-foreground`},yF={key:0,class:`space-y-2 rounded-lg border bg-muted/30 p-2.5`},bF={class:`flex items-center justify-between gap-2 text-[11px]`},xF={class:`truncate font-mono`},SF={class:`flex shrink-0 items-center gap-1.5`},CF={class:`tabular-nums text-muted-foreground`},wF=[`aria-label`,`onClick`],TF={class:`h-1.5 w-full rounded-sm bg-muted`},EF={class:`h-1.5 w-full rounded-sm bg-muted`},DF={class:`-mx-1 flex-1 overflow-y-auto`},OF=[`onClick`],kF={class:`flex min-w-0 items-center gap-1.5`},AF={key:1,class:`size-3 shrink-0`},jF={class:`truncate font-mono`},MF={class:`shrink-0 tabular-nums text-muted-foreground`},NF={key:0,class:`px-1 py-6 text-center text-sm text-muted-foreground`},PF={class:`grid gap-1.5`},FF={class:`grid gap-1.5`},IF={key:3,class:`flex flex-col gap-6`},LF={class:`flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/30 p-3.5`},RF={class:`min-w-0`},zF={class:`mt-0.5 font-mono text-xs text-muted-foreground`},BF={key:4,class:`flex flex-col gap-6`},VF={class:`mt-2 divide-y rounded-lg border`},HF={class:`min-w-0`},UF={class:`flex items-center gap-2 text-sm font-medium`},WF={class:`rounded border bg-muted px-1 py-0.5 font-mono text-[10px] text-muted-foreground`},GF={class:`mt-0.5 text-xs text-muted-foreground`},KF={key:5,class:`flex flex-col gap-4`},qF={class:`flex flex-wrap gap-2`},JF=[`aria-label`,`onClick`],YF={key:0,class:`text-sm text-muted-foreground`},XF={class:`grid max-w-sm gap-1.5`},ZF={class:`flex gap-2`},QF={key:6,class:`flex flex-col gap-4`},$F={class:`grid max-w-sm gap-1.5`},eI={class:`flex items-center gap-2`},tI={key:0,class:`flex items-center gap-1 text-xs leading-none text-emerald-600 dark:text-emerald-400`},nI={class:`flex items-center gap-1.5 text-sm text-muted-foreground`},rI={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`},iI={class:`font-semibold`},aI={class:`relative`},oI={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`},sI={class:`mt-1 text-xs leading-relaxed text-muted-foreground`},cI={class:`mt-3 flex justify-end gap-2`},lI={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`},uI={id:`leave-warning-title`,class:`flex items-center gap-2 text-[15px] font-semibold`},dI={class:`mt-1.5 text-[13px] leading-relaxed text-muted-foreground`},fI={class:`font-medium text-foreground`},pI={class:`block`},mI={class:`mt-4 flex items-center gap-2`},hI={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`},gI=200,_I=8,vI=F({__name:`SettingsView`,setup(e){let t=[`languages`,`outputs`,`ai`,`scan`,`quality`,`dictionary`,`editor`],n=[`flutter-arb`,`laravel-php`,`vue-i18n-json`,`next-intl-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:[`eu.anthropic.claude-sonnet-4-6`,`eu.amazon.nova-pro-v1:0`,`eu.anthropic.claude-3-5-sonnet-20241022-v2: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=qp().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(Gj(e.config)),b(),await O(),l.value=!0,le()}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([bf(),Sf()]);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 Cf(w.value,e),S.value={...S.value,[w.value]:e}):await xf({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=M(!1),oe=M(null);async function k(){let e=ie();if(JSON.stringify(e)!==ne){te&&clearTimeout(te);try{w.value?(await Cf(w.value,e),S.value={...S.value,[w.value]:e}):await xf({ai:e}),ne=JSON.stringify(e)}catch(e){oe.value={ok:!1,error:e.message};return}}ae.value=!0,oe.value=null;try{let e=await Ef();oe.value={ok:e.ok,error:e.error}}catch(e){oe.value={ok:!1,error:e.message}}finally{ae.value=!1}}Er(()=>[E.provider,E.model,E.region,E.endpoint,w.value],()=>{oe.value=null});let se=M(null),ce=M(!1);async function le(){try{se.value=await Md()}catch{}}async function ue(){ce.value=!0;try{let e=await Nd();Q.success(`Updated ${e.modelCount} model prices from ${e.source}.`),he.value=!1,await le()}catch(e){Q.error(e.message)}finally{ce.value=!1}}let de=q(()=>{let e=se.value?.fetchedAt;if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toLocaleDateString()}),fe=M(!1),pe=M([]),he=M(!1),ge=M(``);async function _e(){if(fe.value=!0,!he.value)try{pe.value=(await Pd()).models,he.value=!0}catch(e){Q.error(e.message)}}let ve=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,``),ye=q(()=>{let e=ge.value.trim().split(/\s+/).map(ve).filter(Boolean);return e.length?pe.value.filter(t=>{let n=ve(t.id);return e.every(e=>n.includes(e))}):pe.value}),be=q(()=>ye.value.slice(0,gI)),xe=q(()=>Math.max(0,ye.value.length-gI)),Se=M([]),Ce=e=>Se.value.includes(e);function we(e){let t=Se.value.indexOf(e);t>=0?Se.value.splice(t,1):Se.value.length>=_I?Q.error(`Compare up to ${_I} models at once.`):Se.value.push(e)}let Te=q(()=>{let e=new Map(pe.value.map(e=>[e.id,e]));return Se.value.map(t=>e.get(t)).filter(e=>!!e)}),Ee=q(()=>Math.max(1,...Te.value.flatMap(e=>[e.inputPerMTok,e.outputPerMTok]))),De=e=>`${Math.max(1.5,e/Ee.value*100)}%`,Oe=[`languages`,`outputs`,`scan`,`quality`,`dictionary`],ke=[`ai`,`editor`];function Ae(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 je=q(()=>Oe.filter(e=>!Ae(e))),Me=q(()=>je.value.length),Ne=q(()=>je.value.map(e=>Re[e].title));Er(Me,e=>{qj.value=e},{immediate:!0}),Yi(()=>{qj.value=0});let Pe=q(()=>GT.find(e=>e.id===JT.value)?.label??`VS Code`),Fe=M(!1),Ie=null;function Le(e){YT(e),Fe.value=!0,Ie&&clearTimeout(Ie),Ie=setTimeout(()=>{Fe.value=!1},1700)}let Re={languages:{title:`Languages`},outputs:{title:`Export targets`},ai:{title:`AI`},scan:{title:`Scan`},quality:{title:`Quality checks`},dictionary:{title:`Custom dictionary`},editor:{title:`Editor`}},ze=[{id:`languages`,title:`Languages`},{id:`outputs`,title:`Export targets`},{id:`scan`,title:`Scan`},{id:`quality`,title:`Quality checks`},{id:`dictionary`,title:`Custom dictionary`}];function Be(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])=>Uj[e]!==void 0&&t!==Uj[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 Ve(){if(Me.value!==0){u.value=!0;try{await _f(Kj(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 He(){o.value&&y(o.value),f.value=!1}function Ue(e){return e===`settings`||Me.value===0?!0:(g.value=e,!1)}function We(e){g.value=null,Gp(e)}function Ge(){g.value=null}function Ke(){let e=g.value;He(),e&&We(e)}async function qe(){let e=g.value;await Ve(),e&&Me.value===0&&We(e)}function Je(e){Me.value>0&&(e.preventDefault(),e.returnValue=``)}function Ye(e){if(e.key===`Escape`&&g.value){e.preventDefault(),Ge();return}(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),Ve())}Gi(()=>{window.addEventListener(`keydown`,Ye),window.addEventListener(`beforeunload`,Je),window.addEventListener(`hashchange`,h),Wp(Ue)}),Yi(()=>{window.removeEventListener(`keydown`,Ye),window.removeEventListener(`beforeunload`,Je),window.removeEventListener(`hashchange`,h),Wp(null)});let Xe=M(``);function Ze(){let e=Xe.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),Xe.value=``}}function Qe(e){e!==c.sourceLocale&&(c.locales=c.locales.filter(t=>t!==e))}function $e(){c.outputs.push({adapter:`flutter-arb`,path:``,emptyAs:`omit`,style:`nested`,indent:null,finalNewline:null,includeLocale:!0,localeAliases:{}})}function et(e){c.outputs.splice(e,1)}let tt=q(()=>c.exportLocales.length>0);function nt(e){c.exportLocales=e?[...c.locales]:[]}function rt(e){c.exportLocales=c.exportLocales.includes(e)?c.exportLocales.filter(t=>t!==e):[...c.exportLocales,e]}let it=q(()=>E.provider===`bedrock`),at=q(()=>E.provider===`ollama`),ot=q(()=>a[E.provider]??``),st=q(()=>i[E.provider]??[]),ct=q(()=>st.value[0]??``);async function lt(e){w.value=e,T.value=e??``,await Tf(e),re(e?S.value[e]??ie():(await bf()).ai)}async function ut(){let e=`Profile ${Object.keys(S.value).length+1}`,t=ie();await Cf(e,t),S.value={...S.value,[e]:t},await lt(e)}async function dt(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 Cf(n,r),await wf(e);let i={...S.value};delete i[e],i[n]=r,S.value=i,await lt(n)}async function ft(){if(!w.value)return;let e=w.value;await wf(e);let t={...S.value};delete t[e],S.value=t,await lt(null)}let pt=M(``);function mt(){let e=pt.value.trim();if(e){if(c.customWords.includes(e)){Q.error(`${e} is already in the dictionary`);return}c.customWords=[...c.customWords,e].sort(),pt.value=``}}function ht(e){c.customWords=c.customWords.filter(t=>t!==e)}function gt(e){try{return new RegExp(e),null}catch(e){return`Invalid regex: ${e.message}`}}let _t=M(!1),vt=M(null);function yt(){location.reload()}return(e,t)=>(z(),B(R,null,[l.value?(z(),B(`div`,AN,[H(`nav`,jN,[t[35]||=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(ze,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`,NN,[H(`span`,PN,j(e.title),1),H(`span`,FN,j(Be(e.id)),1)]),!e.autosave&&je.value.includes(e.id)?(z(),B(`span`,IN)):G(``,!0),e.autosave?(z(),B(`span`,LN,`Auto`)):G(``,!0)],10,MN)),64)),t[36]||=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(ke,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`,zN,[H(`span`,BN,j(Re[e].title),1),H(`span`,VN,j(e===`editor`?Pe.value:Be(e)),1)])],10,RN)),64))]),H(`div`,HN,[H(`div`,UN,[H(`div`,WN,[H(`div`,GN,[H(`h2`,KN,[W(j(Re[d.value].title)+` `,1),je.value.includes(d.value)?(z(),B(`span`,qN)):G(``,!0)]),d.value===`languages`?(z(),B(`p`,JN,` The source language is translated into every other language. `)):d.value===`outputs`?(z(),B(`p`,YN,[...t[37]||=[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`,XN,[...t[38]||=[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`,ZN,` 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`,QN,[...t[39]||=[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`,$N,` Words the spell checker should never flag. Added here or from a cell's warning. `)):d.value===`editor`?(z(),B(`p`,eP,[...t[40]||=[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),ke.includes(d.value)?(z(),B(`p`,tP,[U(N(Ad),{class:`size-3.5`}),t[41]||=W(` Changes here save automatically. `,-1)])):G(``,!0)]),d.value===`languages`?(z(),B(`div`,nP,[H(`div`,rP,[U(N(KC),{for:`source-locale`},{default:P(()=>[...t[42]||=[W(`Source language`,-1)]]),_:1}),U(N(OS),{modelValue:c.sourceLocale,"onUpdate:modelValue":t[0]||=e=>c.sourceLocale=e},{default:P(()=>[U(N(SC),{id:`source-locale`},{default:P(()=>[c.sourceLocale?(z(),B(`span`,iP,[U(uT,{code:c.sourceLocale,"show-name":``,size:14},null,8,[`code`])])):(z(),V(N(YS),{key:1,placeholder:`Select source`}))]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(c.locales,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[U(uT,{code:e,"show-name":``,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,aP,[U(N(KC),null,{default:P(()=>[t[43]||=W(` Languages `,-1),H(`span`,oP,j(c.locales.length),1)]),_:1}),H(`div`,sP,[(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(uT,{code:e,"show-name":``,size:14},null,8,[`code`]),e===c.sourceLocale?(z(),B(`span`,cP,`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=>Qe(e)},[U(N(kd),{class:`size-3`})],8,lP))],2))),128))]),H(`p`,uP,[U(N(Td),{class:`size-3.5`}),t[44]||=W(` Removing a language deletes its translations. `,-1)])]),H(`div`,dP,[U(N(KC),{for:`add-locale`},{default:P(()=>[...t[45]||=[W(`Add language`,-1)]]),_:1}),H(`div`,fP,[U(N(xC),{id:`add-locale`,modelValue:Xe.value,"onUpdate:modelValue":t[1]||=e=>Xe.value=e,class:`font-mono`,placeholder:`es`,onKeydown:Xl(Jl(Ze,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:Ze},{default:P(()=>[U(N(od),{class:`size-4`}),t[46]||=W(` Add`,-1)]),_:1})]),Xe.value.trim()?(z(),B(`p`,pP,[t[47]||=W(` Preview: `,-1),U(uT,{code:Xe.value.trim(),"show-name":``,size:14},null,8,[`code`])])):G(``,!0)])])):d.value===`outputs`?(z(),B(`div`,mP,[H(`div`,hP,[H(`div`,gP,[H(`span`,_P,[U(N(Ad),{class:`size-4`})]),t[48]||=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(jC),{modelValue:c.autoExport,"onUpdate:modelValue":t[2]||=e=>c.autoExport=e},null,8,[`modelValue`])]),H(`div`,vP,[H(`div`,yP,[H(`span`,bP,[U(N(sd),{class:`size-4`})]),t[49]||=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=>_t.value=!0},{default:P(()=>[U(N(sd),{class:`size-4`}),t[50]||=W(` Sync `,-1)]),_:1})]),H(`div`,xP,[H(`div`,SP,[H(`div`,CP,[H(`span`,wP,[U(N(Zu),{class:`size-4`})]),t[51]||=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(jC),{"model-value":tt.value,"onUpdate:modelValue":nt},null,8,[`model-value`])]),tt.value?(z(),B(`div`,TP,[H(`div`,EP,[(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=>rt(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(uT,{code:e,"show-name":``,size:14},null,8,[`code`])],10,DP))),128))]),H(`p`,OP,[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[59]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Format defaults`,-1),t[60]||=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`,kP,[H(`div`,AP,[t[53]||=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`,jP,[U(N(xC),{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[52]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])]),H(`div`,MP,[H(`div`,null,[H(`div`,NP,[t[55]||=W(` Sort keys `,-1),H(`span`,PP,[U(N(ed),{class:`size-2.5`}),t[54]||=W(` Locked`,-1)])]),t[56]||=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`,FP,[U(N(Du),{class:`size-3`}),t[57]||=W(` Always alphabetical`,-1)])]),H(`div`,IP,[t[58]||=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(jC),{modelValue:c.finalNewline,"onUpdate:modelValue":t[5]||=e=>c.finalNewline=e},null,8,[`modelValue`])])])]),H(`div`,null,[t[62]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Export targets`,-1),H(`div`,LP,[(z(!0),B(R,null,I(c.outputs,(e,t)=>(z(),V(IM,{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=>et(t)},null,8,[`output`,`format-indent`,`format-final-newline`,`locales`,`onUpdate:output`,`onRemove`]))),128)),c.outputs.length===0?(z(),B(`p`,RP,`No export targets configured.`)):G(``,!0),H(`div`,null,[U(N($),{variant:`ghost`,size:`sm`,class:`mt-1 pl-2`,onClick:$e},{default:P(()=>[U(N(od),{class:`size-4`}),t[61]||=W(` Add export target `,-1)]),_:1})])])])])):d.value===`ai`?(z(),B(`div`,zP,[H(`div`,BP,[U(N(OS),{"model-value":w.value??`__none__`,"onUpdate:modelValue":t[6]||=e=>lt(e===`__none__`?null:e)},{default:P(()=>[U(N(SC),{class:`w-44`},{default:P(()=>[U(N(YS),{placeholder:`No profile`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`__none__`},{default:P(()=>[...t[63]||=[W(`No profile`,-1)]]),_:1}),(z(!0),B(R,null,I(C.value,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[W(j(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),w.value?(z(),V(N(xC),{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=>dt(w.value,T.value),onKeydown:t[9]||=Xl(Jl(e=>dt(w.value,T.value),[`prevent`]),[`enter`])},null,8,[`modelValue`])):(z(),B(`span`,VP,`Using default settings`)),U(N($),{variant:`outline`,size:`sm`,class:`shrink-0`,onClick:ut},{default:P(()=>[U(N(od),{class:`size-4`}),t[64]||=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:ft},{default:P(()=>[U(N(kd),{class:`size-4`})]),_:1},8,[`disabled`])]),H(`div`,HP,[H(`div`,UP,[H(`div`,WP,[U(N(KC),{for:`ai-provider`},{default:P(()=>[...t[65]||=[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`,GP,[U(N(Du),{class:`size-3`}),t[66]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(OS),{modelValue:E.provider,"onUpdate:modelValue":t[10]||=e=>E.provider=e},{default:P(()=>[U(N(SC),{id:`ai-provider`},{default:P(()=>[U(N(YS),{placeholder:`Select provider`})]),_:1}),U(N(CC),null,{default:P(()=>[(z(),B(R,null,I(r,e=>U(N(TC),{key:e.value,value:e.value},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),H(`p`,KP,j(ot.value),1)]),H(`div`,qP,[U(N(KC),{for:`ai-model`},{default:P(()=>[...t[67]||=[W(`Model`,-1)]]),_:1}),U(N(xC),{id:`ai-model`,modelValue:E.model,"onUpdate:modelValue":t[11]||=e=>E.model=e,class:`font-mono`,placeholder:ct.value},null,8,[`modelValue`,`placeholder`]),st.value.length?(z(),B(`p`,JP,[t[68]||=W(` Examples: `,-1),(z(!0),B(R,null,I(st.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,YP),t<st.value.length-1?(z(),B(`span`,XP,` · `)):G(``,!0)],64))),128))])):G(``,!0),it.value?(z(),B(`p`,ZP,[...t[69]||=[W(` For on-demand use, prefix the id with your region group — `,-1),H(`code`,{class:`font-mono`},`eu.`,-1),W(`, `,-1),H(`code`,{class:`font-mono`},`us.`,-1),W(` or `,-1),H(`code`,{class:`font-mono`},`apac.`,-1),W(` — so it resolves to an inference profile. `,-1)]])):G(``,!0)]),it.value?(z(),B(`div`,QP,[U(N(KC),{for:`ai-region`},{default:P(()=>[...t[70]||=[W(`Region`,-1)]]),_:1}),U(N(xC),{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[71]||=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`,$P,[U(N(KC),{for:`ai-endpoint`},{default:P(()=>[...t[72]||=[W(`Endpoint`,-1)]]),_:1}),U(N(xC),{id:`ai-endpoint`,modelValue:E.endpoint,"onUpdate:modelValue":t[13]||=e=>E.endpoint=e,class:`font-mono`,placeholder:at.value?`http://localhost:11434/v1`:`Default (leave empty)`},null,8,[`modelValue`,`placeholder`]),at.value?(z(),B(`p`,eF,[...t[73]||=[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`,tF,`Optional — for an in-region or self-hosted / OpenAI-compatible gateway.`))])),H(`div`,nF,[H(`div`,rF,[U(N($),{type:`button`,variant:`outline`,size:`sm`,disabled:ae.value,onClick:k},{default:P(()=>[ae.value?(z(),V(N(sd),{key:0,class:`size-3.5 animate-spin`})):(z(),V(N(Ad),{key:1,class:`size-3.5`})),W(` `+j(ae.value?`Testing…`:`Test connection`),1)]),_:1},8,[`disabled`]),oe.value?.ok?(z(),B(`span`,iF,[U(N(Du),{class:`size-3.5`}),t[74]||=W(` Connected `,-1)])):G(``,!0)]),oe.value&&!oe.value.ok?(z(),B(`div`,aF,[U(N(Td),{class:`mt-0.5 size-3.5 shrink-0`}),H(`span`,null,j(oe.value.error),1)])):G(``,!0),t[75]||=H(`p`,{class:`text-xs text-muted-foreground`},`Runs one throwaway translation to verify credentials, model access and connectivity.`,-1)]),t[101]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Translation`,-1),H(`div`,oF,[U(N(KC),{for:`ai-batch`},{default:P(()=>[...t[76]||=[W(`Batch size`,-1)]]),_:1}),U(N(xC),{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[77]||=H(`p`,{class:`text-xs text-muted-foreground`},`Strings sent per request.`,-1)]),H(`div`,sF,[U(N(KC),{for:`ai-concurrency`},{default:P(()=>[...t[78]||=[W(`Parallel locales`,-1)]]),_:1}),U(N(xC),{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[79]||=H(`p`,{class:`text-xs text-muted-foreground`},`How many locales to translate at once.`,-1)]),t[102]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context build`,-1),H(`div`,cF,[U(N(KC),{for:`ai-context-batch`},{default:P(()=>[...t[80]||=[W(`Batch size`,-1)]]),_:1}),U(N(xC),{id:`ai-context-batch`,modelValue:E.contextBatchSize,"onUpdate:modelValue":t[16]||=e=>E.contextBatchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.batchSize||25),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[81]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keys per request. Defaults to translation batch size.`,-1)]),H(`div`,lF,[U(N(KC),{for:`ai-context-concurrency`},{default:P(()=>[...t[82]||=[W(`Concurrency`,-1)]]),_:1}),U(N(xC),{id:`ai-context-concurrency`,modelValue:E.contextConcurrency,"onUpdate:modelValue":t[17]||=e=>E.contextConcurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,placeholder:String(E.concurrency||3),class:`w-28`},null,8,[`modelValue`,`placeholder`]),t[83]||=H(`p`,{class:`text-xs text-muted-foreground`},`Parallel context requests. Defaults to parallel locales.`,-1)]),at.value?(z(),B(`div`,uF,[U(N(jC),{id:`ai-vision`,modelValue:E.vision,"onUpdate:modelValue":t[18]||=e=>E.vision=e},null,8,[`modelValue`]),H(`div`,dF,[U(N(KC),{for:`ai-vision`},{default:P(()=>[...t[84]||=[W(`Vision`,-1)]]),_:1}),t[85]||=H(`p`,{class:`text-xs text-muted-foreground`},`Enable for models that support image input (e.g. translategemma, llava).`,-1)])])):G(``,!0),at.value?(z(),B(`div`,fF,[U(N(KC),{for:`ai-prompt-style`},{default:P(()=>[...t[86]||=[W(`Prompt style`,-1)]]),_:1}),U(N(OS),{"model-value":E.promptStyle||`__default__`,"onUpdate:modelValue":t[19]||=e=>E.promptStyle=e===`__default__`?``:e},{default:P(()=>[U(N(SC),{id:`ai-prompt-style`},{default:P(()=>[U(N(YS),{placeholder:`Default`})]),_:1}),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`__default__`},{default:P(()=>[...t[87]||=[W(`Default`,-1)]]),_:1}),U(N(TC),{value:`translategemma`},{default:P(()=>[...t[88]||=[W(`TranslateGemma`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`]),t[89]||=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),t[103]||=H(`div`,{class:`mt-1 border-t border-border pt-4 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Cost estimates`,-1),H(`div`,pF,[U(N(KC),null,{default:P(()=>[...t[90]||=[W(`Model prices`,-1)]]),_:1}),H(`div`,mF,[U(N($),{type:`button`,variant:`outline`,size:`sm`,disabled:ce.value,onClick:ue},{default:P(()=>[U(N(sd),{class:A([`size-3.5`,ce.value?`animate-spin`:``])},null,8,[`class`]),W(` `+j(ce.value?`Updating…`:`Update prices`),1)]),_:1},8,[`disabled`]),U(N($),{type:`button`,variant:`ghost`,size:`sm`,disabled:!se.value?.modelCount,onClick:_e},{default:P(()=>[U(N(pd),{class:`size-3.5`}),t[91]||=W(` Browse `,-1)]),_:1},8,[`disabled`]),se.value?.source?(z(),B(`span`,hF,[W(j(se.value.modelCount.toLocaleString())+` models from `+j(se.value.source),1),de.value?(z(),B(R,{key:0},[W(`, `+j(de.value),1)],64)):G(``,!0)])):(z(),B(`span`,gF,`No prices fetched yet`))]),t[92]||=H(`p`,{class:`text-xs text-muted-foreground`},`Fetches current per-model prices from models.dev for the cost estimate, covering models beyond the built-in Claude/GPT table. The manual overrides below always win.`,-1)]),U(N(L_),{open:fe.value,"onUpdate:open":t[21]||=e=>fe.value=e},{default:P(()=>[U(N(qC),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...t[93]||=[W(`Model prices`,-1)]]),_:1}),U(N(ZC),null,{default:P(()=>[t[94]||=W(` Per-model $ / 1M tokens (input / output)`,-1),se.value?.source?(z(),B(R,{key:0},[W(` from `+j(se.value.source),1)],64)):G(``,!0),t[95]||=W(`. Click rows to compare. `,-1)]),_:1})]),_:1}),H(`div`,_F,[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(xC),{modelValue:ge.value,"onUpdate:modelValue":t[20]||=e=>ge.value=e,placeholder:`Search models…`,class:`pl-8`},null,8,[`modelValue`])]),H(`p`,vF,[xe.value>0?(z(),B(R,{key:0},[W(`Showing `+j(be.value.length)+` of `+j(ye.value.length.toLocaleString())+` matches — refine to narrow.`,1)],64)):(z(),B(R,{key:1},[W(j(ye.value.length.toLocaleString())+` model`+j(ye.value.length===1?``:`s`),1)],64)),t[96]||=W(` · click a row to compare `,-1)]),Te.value.length?(z(),B(`div`,yF,[t[97]||=H(`div`,{class:`flex items-center gap-3 text-[11px] text-muted-foreground`},[H(`span`,{class:`flex items-center gap-1`},[H(`span`,{class:`size-2 rounded-sm bg-sky-500`}),W(` Input`)]),H(`span`,{class:`flex items-center gap-1`},[H(`span`,{class:`size-2 rounded-sm bg-amber-500`}),W(` Output`)]),H(`span`,null,`$ / 1M tokens`)],-1),(z(!0),B(R,null,I(Te.value,e=>(z(),B(`div`,{key:e.id,class:`space-y-1`},[H(`div`,bF,[H(`span`,xF,j(e.id),1),H(`span`,SF,[H(`span`,CF,`$`+j(e.inputPerMTok)+` / $`+j(e.outputPerMTok),1),H(`button`,{type:`button`,class:`rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground`,"aria-label":`Remove ${e.id}`,onClick:t=>we(e.id)},[U(N(kd),{class:`size-3`})],8,wF)])]),H(`div`,TF,[H(`div`,{class:`h-full rounded-sm bg-sky-500`,style:me({width:De(e.inputPerMTok)})},null,4)]),H(`div`,EF,[H(`div`,{class:`h-full rounded-sm bg-amber-500`,style:me({width:De(e.outputPerMTok)})},null,4)])]))),128))])):G(``,!0),H(`div`,DF,[(z(!0),B(R,null,I(be.value,e=>(z(),B(`button`,{key:e.id,type:`button`,class:A([`flex w-full items-center justify-between gap-3 rounded px-1 py-1 text-left text-xs hover:bg-muted/60`,Ce(e.id)?`bg-muted`:``]),onClick:t=>we(e.id)},[H(`span`,kF,[Ce(e.id)?(z(),V(N(Du),{key:0,class:`size-3 shrink-0 text-sky-500`})):(z(),B(`span`,AF)),H(`span`,jF,j(e.id),1)]),H(`span`,MF,`$`+j(e.inputPerMTok)+` / $`+j(e.outputPerMTok),1)],10,OF))),128)),ye.value.length===0?(z(),B(`p`,NF,j(he.value?`No models match.`:`Loading…`),1)):G(``,!0)])]),_:1})]),_:1},8,[`open`]),H(`div`,PF,[U(N(KC),{for:`ai-price-in`},{default:P(()=>[...t[98]||=[W(`Input price ($ / 1M tokens)`,-1)]]),_:1}),U(N(xC),{id:`ai-price-in`,modelValue:E.inputPricePerMTok,"onUpdate:modelValue":t[22]||=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`,FF,[U(N(KC),{for:`ai-price-out`},{default:P(()=>[...t[99]||=[W(`Output price ($ / 1M tokens)`,-1)]]),_:1}),U(N(xC),{id:`ai-price-out`,modelValue:E.outputPricePerMTok,"onUpdate:modelValue":t[23]||=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[100]||=H(`p`,{class:`text-xs text-muted-foreground`},`Set both to override the fetched/built-in prices or to price a model neither covers.`,-1)])])])):d.value===`scan`?(z(),B(`div`,IF,[H(`div`,LF,[H(`div`,RF,[t[104]||=H(`div`,{class:`text-sm font-medium`},`Code usage index`,-1),H(`div`,zF,j(N(gw)),1)]),U(N($),{size:`sm`,variant:`outline`,disabled:N(pw),onClick:N(vw)},{default:P(()=>[N(pw)?(z(),V(N($u),{key:0,class:`size-4 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-4`})),W(` `+j(N(pw)?`Scanning…`:`Run scan`),1)]),_:1},8,[`disabled`,`onClick`])]),U(UM,{label:`Flutter accessors`,items:c.scanAccessors,mono:``,placeholder:`translations`,"onUpdate:items":t[24]||=e=>c.scanAccessors=e},{help:P(()=>[...t[105]||=[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(UM,{label:`Custom patterns`,items:c.scanPatterns,mono:``,placeholder:`LocaleKeys\\.(\\w+)\\.tr\\(\\)`,validate:gt,"onUpdate:items":t[25]||=e=>c.scanPatterns=e},{help:P(()=>[...t[106]||=[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(UM,{label:`Include globs`,items:c.scanInclude,mono:``,placeholder:`lib/**`,"onUpdate:items":t[26]||=e=>c.scanInclude=e},{help:P(()=>[...t[107]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Limit the scan to these globs. Empty scans everything.`,-1)]]),_:1},8,[`items`]),U(UM,{label:`Exclude globs`,items:c.scanExclude,mono:``,placeholder:`**/*.g.dart`,"onUpdate:items":t[27]||=e=>c.scanExclude=e},{help:P(()=>[...t[108]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Skipped on top of always-excluded dirs (node_modules, build, …).`,-1)]]),_:1},8,[`items`]),U(UM,{label:`Keep keys`,items:c.scanKeep,mono:``,placeholder:`validation.*`,"onUpdate:items":t[28]||=e=>c.scanKeep=e},{help:P(()=>[...t[109]||=[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`,BF,[H(`div`,null,[t[111]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Rules`,-1),H(`div`,VF,[(z(!0),B(R,null,I(N(Hj),e=>(z(),B(`div`,{key:e.id,class:`flex items-center justify-between gap-4 p-3.5`},[H(`div`,HF,[H(`div`,UF,[W(j(e.label)+` `,1),H(`code`,WF,j(e.id),1)]),H(`div`,GF,j(e.description),1)]),U(N(OS),{"model-value":c.lintRules[e.id]??e.default,"onUpdate:modelValue":t=>c.lintRules={...c.lintRules,[e.id]:t}},{default:P(()=>[U(N(SC),{class:A([`w-32 shrink-0`,c.lintRules[e.id]===`off`?`text-muted-foreground`:``])},{default:P(()=>[U(N(YS))]),_:1},8,[`class`]),U(N(CC),null,{default:P(()=>[U(N(TC),{value:`error`},{default:P(()=>[W(`Error`+j(e.default===`error`?` ·`:``),1)]),_:2},1024),U(N(TC),{value:`warn`},{default:P(()=>[W(`Warning`+j(e.default===`warn`?` ·`:``),1)]),_:2},1024),U(N(TC),{value:`off`},{default:P(()=>[...t[110]||=[W(`Off`,-1)]]),_:1})]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])]))),128))]),t[112]||=H(`p`,{class:`mt-2 text-xs text-muted-foreground`},`· marks the built-in default.`,-1)]),U(UM,{label:`Ignore keys`,items:c.lintIgnore,mono:``,placeholder:`legacy.*`,"onUpdate:items":t[29]||=e=>c.lintIgnore=e},{help:P(()=>[...t[113]||=[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`,KF,[H(`div`,qF,[(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=>ht(e)},[U(N(kd),{class:`size-3`})],8,JF)]))),128)),c.customWords.length===0?(z(),B(`p`,YF,`No custom words yet.`)):G(``,!0)]),H(`div`,XF,[U(N(KC),{for:`add-word`},{default:P(()=>[...t[114]||=[W(`Add word`,-1)]]),_:1}),H(`div`,ZF,[U(N(xC),{id:`add-word`,modelValue:pt.value,"onUpdate:modelValue":t[30]||=e=>pt.value=e,class:`font-mono`,placeholder:`Glotfile`,onKeydown:Xl(Jl(mt,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(N($),{variant:`outline`,onClick:mt},{default:P(()=>[U(N(od),{class:`size-4`}),t[115]||=W(` Add`,-1)]),_:1})])])])):d.value===`editor`?(z(),B(`div`,QF,[H(`div`,$F,[H(`div`,eI,[U(N(KC),{for:`editor-select`},{default:P(()=>[...t[116]||=[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(()=>[Fe.value?(z(),B(`span`,tI,[U(N(Du),{class:`size-3`}),t[117]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(N(OS),{"model-value":N(JT),"onUpdate:modelValue":Le},{default:P(()=>[U(N(SC),{id:`editor-select`},{default:P(()=>[U(N(YS),{placeholder:`Select editor`})]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(N(GT),e=>(z(),V(N(TC),{key:e.id,value:e.id},{default:P(()=>[W(j(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),H(`p`,nI,[U(N(ed),{class:`size-3.5`}),t[118]||=W(` Stored locally in `,-1),t[119]||=H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`.glotfile/`,-1),t[120]||=W(` — clicking a usage opens the file via its URL scheme. `,-1)])])):G(``,!0)])]),ke.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]`,Me.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]`,Me.value>0?`text-foreground`:`text-muted-foreground`])},[Me.value>0?(z(),B(R,{key:0},[H(`span`,rI,j(Me.value),1),W(` Unsaved `+j(Me.value===1?`change`:`changes`)+` in `,1),H(`strong`,iI,j(Ne.value.join(`, `)),1)],64)):(z(),B(R,{key:1},[U(N(Du),{class:`size-3.5 shrink-0`}),t[121]||=W(` All changes saved `,-1)],64))],2),H(`div`,aI,[U(N($),{variant:`ghost`,size:`sm`,disabled:Me.value===0,onClick:t[31]||=e=>f.value=!f.value},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[122]||=W(` Discard `,-1)]),_:1},8,[`disabled`]),f.value?(z(),B(`div`,oI,[t[125]||=H(`p`,{class:`text-[13px] font-semibold`},`Discard all changes?`,-1),H(`p`,sI,` Reverts every unsaved edit in `+j(Ne.value.join(`, `))+`. `,1),H(`div`,cI,[U(N($),{size:`sm`,variant:`outline`,onClick:t[32]||=e=>f.value=!1},{default:P(()=>[...t[123]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:He},{default:P(()=>[...t[124]||=[W(`Discard`,-1)]]),_:1})])])):G(``,!0)]),U(N($),{size:`sm`,disabled:Me.value===0||u.value,onClick:Ve},{default:P(()=>[U(N(ud),{class:`size-4`}),t[126]||=W(` Save changes `,-1)]),_:1},8,[`disabled`])],2))])])):(z(),B(`div`,kN,` 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(Ge,[`self`])},[H(`div`,lI,[H(`h3`,uI,[U(N(Td),{class:`size-4 text-amber-500`}),t[127]||=W(` Unsaved changes `,-1)]),H(`p`,dI,[W(` You have `+j(Me.value)+` unsaved `+j(Me.value===1?`change`:`changes`)+` in `,1),H(`strong`,fI,j(Ne.value.join(`, `)),1),t[128]||=W(`. `,-1),H(`span`,pI,`Leaving now discards `+j(Me.value===1?`it`:`them`)+`.`,1)]),H(`div`,mI,[U(N($),{size:`sm`,variant:`outline`,class:`mr-auto`,onClick:Ge},{default:P(()=>[...t[129]||=[W(`Keep editing`,-1)]]),_:1}),U(N($),{size:`sm`,variant:`destructive`,onClick:Ke},{default:P(()=>[U(N(Ed),{class:`size-4`}),t[130]||=W(` Discard & leave `,-1)]),_:1}),U(N($),{size:`sm`,disabled:u.value,onClick:qe},{default:P(()=>[U(N(ud),{class:`size-4`}),t[131]||=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`,hI,[U(N(Du),{class:`size-3.5`}),t[132]||=W(` Settings saved `,-1)])):G(``,!0)]),_:1}),_t.value?(z(),V(ON,{key:2,ref_key:`syncWizardRef`,ref:vt,onVnodeMounted:t[33]||=e=>vt.value?.init(),onDismiss:t[34]||=e=>_t.value=!1,onSynced:yt},null,512)):G(``,!0)],64))}}),yI={class:`min-h-0 flex-1 overflow-y-auto`},bI={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},xI={key:1,class:`flex h-full items-center justify-center p-8`},SI={class:`flex max-w-md flex-col items-center gap-3 text-center text-muted-foreground`},CI={key:2,class:`grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3 p-6`},wI=[`onClick`],TI={class:`flex aspect-video items-center justify-center overflow-hidden border-b bg-muted/30`},EI=[`src`,`alt`],DI={class:`flex flex-col gap-0.5 p-2.5`},OI={class:`truncate font-mono text-xs font-medium`},kI={class:`truncate text-xs text-muted-foreground`},AI={key:1,class:`truncate text-xs text-muted-foreground`},jI={class:`flex max-h-[70vh] items-center justify-center overflow-auto rounded-md border bg-muted/30 p-2`},MI=[`src`,`alt`],NI={key:0,class:`text-sm text-muted-foreground`},PI=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(),zh(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`,yI,[n.value?o.value.length===0?(z(),B(`div`,xI,[H(`div`,SI,[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`,CI,[(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`,TI,[H(`img`,{src:`/`+e.screenshot,alt:`Screenshot for ${e.key}`,class:`h-full w-full object-contain`},null,8,EI)]),H(`div`,DI,[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,OI,j(e.key),1)]),_:2},1024),U(N(sw),{class:`font-mono`},{default:P(()=>[W(j(e.key),1)]),_:2},1024)]),_:2},1024),e.source?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,kI,j(e.source),1)]),_:2},1024),U(N(sw),null,{default:P(()=>[W(j(e.source),1)]),_:2},1024)]),_:2},1024)):(z(),B(`span`,AI,`—`))])],8,wI))),128))])):(z(),B(`div`,bI,` Loading screenshots… `)),U(N(L_),{open:r.value!==null,"onUpdate:open":t[1]||=e=>{e||(r.value=null)}},{default:P(()=>[r.value?(z(),V(N(qC),{key:0,class:`max-w-3xl`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),{class:`break-all font-mono text-sm`},{default:P(()=>[W(j(r.value.key),1)]),_:1}),U(N(ZC),null,{default:P(()=>[W(j(r.value.source||`—`),1)]),_:1})]),_:1}),H(`div`,jI,[H(`img`,{src:`/`+r.value.screenshot,alt:`Screenshot for ${r.value.key}`,class:`max-h-[65vh] w-auto object-contain`},null,8,MI)]),r.value.entry.context?(z(),B(`p`,NI,[t[3]||=H(`span`,{class:`font-medium text-foreground`},`Context:`,-1),W(` `+j(r.value.entry.context),1)])):G(``,!0),U(N(YC),null,{default:P(()=>[U(N($),{size:`sm`,onClick:t[0]||=e=>N(Uh)(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`])]))}}),FI={class:`flex flex-col gap-1.5 px-4 py-3`},II={class:`flex items-center gap-2`},LI={class:`truncate font-mono text-xs text-muted-foreground`},RI={class:`flex items-start gap-2 text-sm`},zI={class:`min-w-0 flex-1 break-words`},BI={class:`min-w-0 flex-1 break-words`},VI={key:0,class:`text-destructive`},HI={key:1},UI={key:0,class:`text-xs text-muted-foreground`},WI={key:1,class:`flex flex-wrap gap-1`},GI={key:2,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},KI={class:`truncate font-mono`},qI=F({__name:`AiItemRow`,props:{item:{},result:{}},setup(e){function t(e){return e.doNotTranslate?`${e.term} (do-not-translate)`:e.forced?`${e.term} → ${e.forced}`:e.term}return(n,r)=>(z(),B(`div`,FI,[H(`div`,II,[H(`span`,LI,j(e.item.key),1),e.item.targetLocale?(z(),V(N(kC),{key:0,variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:P(()=>[W(j(e.item.targetLocale),1)]),_:1})):G(``,!0)]),H(`div`,RI,[H(`span`,zI,j(e.item.source),1),U(N(bu),{class:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),H(`span`,BI,[e.result?.error?(z(),B(`span`,VI,j(e.result.error),1)):(z(),B(`span`,HI,j(e.result?.translation??e.result?.value),1))])]),e.item.context?(z(),B(`p`,UI,j(e.item.context),1)):G(``,!0),e.item.glossary?.length?(z(),B(`div`,WI,[(z(!0),B(R,null,I(e.item.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(t(e)),1))),128))])):G(``,!0),e.item.screenshot?(z(),B(`div`,GI,[U(N(Yu),{class:`size-3.5 shrink-0`}),H(`span`,KI,j(e.item.screenshot),1)])):G(``,!0)]))}}),JI={key:0,class:`divide-y`},YI=[`data-index`],XI=100,ZI=F({__name:`AiItemList`,props:{items:{},results:{}},setup(e){let t=e,n=q(()=>new Map(t.results.map(e=>[e.id,e]))),r=e=>n.value.get(e),i=q(()=>t.items.length>XI),a=M(null),o=Sp(q(()=>({count:t.items.length,getScrollElement:()=>a.value,estimateSize:()=>72,overscan:12,getItemKey:e=>t.items[e]?.id??e}))),s=q(()=>o.value.getVirtualItems()),c=q(()=>o.value.getTotalSize());return(t,n)=>i.value?(z(),B(`div`,{key:1,ref_key:`parent`,ref:a,class:`max-h-[28rem] overflow-auto`},[H(`div`,{style:me({height:`${c.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(s.value,t=>(z(),B(`div`,{key:t.key,ref_for:!0,ref:e=>N(o).measureElement(e),"data-index":t.index,style:me({position:`absolute`,top:`${t.start}px`,left:`0`,width:`100%`}),class:`border-b`},[e.items[t.index]?(z(),V(qI,{key:0,item:e.items[t.index],result:r(e.items[t.index].id)},null,8,[`item`,`result`])):G(``,!0)],12,YI))),128))],4)],512)):(z(),B(`div`,JI,[(z(!0),B(R,null,I(e.items,e=>(z(),V(qI,{key:e.id,item:e,result:r(e.id)},null,8,[`item`,`result`]))),128))]))}}),QI={class:`min-h-0 flex-1 overflow-y-auto p-4`},$I={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},eL={key:1,class:`mx-auto flex max-w-4xl flex-col gap-4`},tL={key:0,class:`flex flex-wrap gap-1.5`},nL=[`onClick`],rL={class:`flex flex-wrap items-center gap-3 border-b px-4 py-2.5`},iL={class:`text-sm font-medium`},aL={class:`text-sm text-muted-foreground`},oL={class:`border-b`},sL={class:`overflow-x-auto whitespace-pre-wrap break-words bg-muted/40 px-4 py-3 font-mono text-xs leading-relaxed`},cL={class:`flex flex-wrap items-center gap-x-3 gap-y-1 border-b px-4 py-2 text-xs text-muted-foreground`},lL={key:0,class:`text-destructive`},uL=[`onClick`],dL={key:1,class:`flex flex-col gap-1.5 px-4 py-3`},fL={key:0,class:`flex items-center gap-2`},pL={class:`truncate font-mono text-xs text-muted-foreground`},mL={key:1,class:`flex items-start gap-2 text-sm`},hL=10,gL=F({__name:`ActivityView`,setup(e){let t=M([]),n=M(!0),r=M(`all`);async function i(){try{t.value=await Bf()}catch(e){Q.error(e.message)}finally{n.value=!1}}Gi(i),zh(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=>Ch(`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`),l=M(new Map),u=e=>e.items?.length??0,d=e=>(e.results??[]).filter(e=>e.error).length;function f(e){return l.value.get(e)??u(e)<=hL}function p(e){let t=new Map(l.value);t.set(e,!f(e)),l.value=t}function m(e){return e==null||e===``?`∅`:typeof e==`string`?e:JSON.stringify(e)}let h=e=>typeof e==`object`&&!!e;return(e,i)=>(z(),B(`div`,QI,[!n.value&&t.value.length===0?(z(),B(`p`,$I,` No activity yet — edits, translations, and config changes will show up here. `)):(z(),B(`div`,eL,[o.value.length>1?(z(),B(`div`,tL,[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,nL))),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`,rL,[H(`span`,iL,j(new Date(e.at).toLocaleString()),1),U(N(kC),{variant:`outline`,class:`font-mono uppercase`},{default:P(()=>[W(j(e.kind),1)]),_:2},1024),H(`span`,aL,j(e.summary),1),e.model?(z(),V(N(kC),{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`,oL,[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`,sL,j(e.system),1)]),H(`div`,cL,[d(e)?(z(),B(`span`,lL,j(d(e))+` `+j(d(e)===1?`error`:`errors`),1)):G(``,!0),u(e)?(z(),B(`button`,{key:1,type:`button`,class:`ml-auto rounded px-2 py-0.5 font-medium hover:bg-muted hover:text-foreground`,onClick:t=>p(e)},j(f(e)?`Hide items`:`Show ${u(e)} items`),9,uL)):G(``,!0)]),f(e)&&u(e)?(z(),V(ZI,{key:0,items:e.items??[],results:e.results??[]},null,8,[`items`,`results`])):G(``,!0)],64)):e.key||e.before!==void 0||e.after!==void 0?(z(),B(`div`,dL,[e.key?(z(),B(`div`,fL,[H(`span`,pL,j(e.key),1),e.locale?(z(),V(N(kC),{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`,mL,[e.before===void 0?G(``,!0):(z(),B(`span`,{key:0,class:A(N(Ch)(`min-w-0 flex-1 break-words text-muted-foreground`,h(e.before)&&`font-mono text-xs`))},j(m(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(Ch)(`min-w-0 flex-1 break-words`,h(e.after)&&`font-mono text-xs`))},j(m(e.after)),3))])):G(``,!0)])):G(``,!0)]))),128))]))]))}}),_L=[{id:`home`,title:`Home`,section:``,html:`<h1>Glotfile</h1>
|
|
9
9
|
<blockquote>
|
|
10
10
|
<p>A <strong>local-first, git-native translation manager</strong>. All of your app'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>
|
|
11
11
|
</blockquote>
|
|
@@ -2791,4 +2791,4 @@ Only the AI calls you trigger. The UI is local-only; no credentials or screensho
|
|
|
2791
2791
|
<ul>
|
|
2792
2792
|
<li>Home · Installation · AI Providers · Continuous Integration</li>
|
|
2793
2793
|
</ul>
|
|
2794
|
-
`,text:`Troubleshooting and FAQ Setup Run it with (no global install needed), or install globally with . From a checkout, build first: . 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`}],vL={class:`flex min-h-0 flex-1 overflow-hidden`},yL={class:`flex w-56 shrink-0 flex-col overflow-hidden border-r bg-muted/30`},bL={class:`relative shrink-0 px-2 py-2`},xL={key:0,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},SL={class:`px-2 py-1 text-xs text-muted-foreground`},CL=[`onClick`],wL={class:`text-sm font-medium`},TL={key:0,class:`text-[10px] uppercase tracking-wider text-muted-foreground`},EL={key:1,class:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`},DL={class:`bg-primary/20 text-foreground`},OL={key:1,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},kL=[`onClick`],AL={class:`min-w-0 flex-1 overflow-y-auto`},jL=[`innerHTML`],ML=F({__name:`DocsView`,setup(e){let t=[``,`Getting Started`,`Frameworks`,`Web UI`,`CLI`,`Concepts`,`AI Translation`,`Reference`,`Guides`,`Help`];function n(){let e=qp().get(`doc`);return e&&_L.some(t=>t.id===e)?e:_L[0]?.id??``}let r=M(n()),i=M(``),a=q(()=>{let e=new Map;for(let t of _L)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 _L){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(()=>_L.find(e=>e.id===r.value)??_L[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`,vL,[H(`nav`,yL,[H(`div`,bL,[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`,xL,[H(`div`,SL,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`,wL,j(e.title),1),e.section?(z(),B(`div`,TL,j(e.section),1)):G(``,!0),e.match?(z(),B(`div`,EL,[W(j(e.before),1),H(`mark`,DL,j(e.match),1),W(j(e.after),1)])):G(``,!0)],8,CL))),128))])):(z(),B(`div`,OL,[(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,kL))),128))],64))),128))]))]),H(`div`,AL,[H(`div`,{class:`prose prose-sm dark:prose-invert mx-auto max-w-3xl px-8 py-6`,innerHTML:s.value?.html},null,8,jL)])]))}}),NL={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 PL(e){let[t=``,n]=e.split(/[-_]/),r=t.toLowerCase(),i=n&&/^[A-Za-z]{2}$/.test(n)?n.toUpperCase():void 0,a=NL[r]??e;return{code:e,name:i?`${a} (${i})`:a}}var FL={class:`p-6`},IL={class:`flex items-start gap-3 pr-6`},LL={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`},RL={class:`min-w-0`},zL={class:`font-medium text-foreground`},BL={class:`font-mono text-[12px]`},VL={class:`mt-4 flex items-center gap-4 rounded-lg border border-border bg-muted/40 px-3.5 py-2.5`},HL={class:`flex flex-col`},UL={class:`text-[17px] font-semibold leading-none tabular-nums`},WL={class:`flex flex-col`},GL={class:`text-[17px] font-semibold leading-none tabular-nums`},KL={class:`ml-auto flex items-center gap-1.5 whitespace-nowrap text-[11px] text-muted-foreground`},qL={class:`mt-5`},JL={class:`!flex min-w-0 items-center gap-2`},YL={class:`font-mono text-[13px]`},XL={class:`truncate text-[13px] text-muted-foreground`},ZL={class:`flex items-center gap-2`},QL={class:`font-mono text-[13px]`},$L={class:`text-[13px] text-muted-foreground`},eR={class:`mt-4`},tR={class:`flex items-center justify-between`},nR={class:`whitespace-nowrap text-[12px] tabular-nums text-muted-foreground`},rR={class:`mt-1.5 flex flex-wrap gap-1.5 rounded-lg border border-border bg-muted/30 p-2.5`},iR=[`disabled`,`onClick`],aR={class:`font-mono`},oR={key:0,class:`ml-0.5 rounded-sm bg-primary/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-primary`},sR={key:0,class:`mt-4`},cR={class:`overflow-hidden rounded-lg border border-border`},lR={class:`ml-auto font-mono text-[11px] text-muted-foreground/70`},uR={key:0,class:`divide-y divide-border border-t border-border gf-content-fade`},dR={class:`shrink-0 font-mono text-foreground`},fR={class:`ml-auto truncate text-right text-muted-foreground`},pR={key:0,class:`px-3 py-1.5 text-[11px] text-muted-foreground/70`},mR={class:`flex items-center gap-2 border-t border-border px-6 py-4`},hR={class:`ml-1 flex cursor-pointer select-none items-center gap-1.5 text-[12px] text-muted-foreground`},gR={class:`ml-auto`},_R={class:`flex flex-col items-center justify-center gap-4 p-6 py-8 text-center`},vR={key:0,class:`mt-1 text-[13px] text-muted-foreground`},yR={class:`p-6`},bR={class:`flex flex-col items-center gap-3 pt-1 text-center`},xR={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},SR={class:`font-semibold text-foreground tabular-nums`},CR={class:`font-semibold text-foreground`},wR={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},TR={class:`whitespace-nowrap text-[13px] font-medium text-warning`},ER={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},DR={class:`flex items-center border-t border-border px-6 py-4`},OR={class:`ml-auto`},kR={class:`p-6`},AR={class:`flex items-start gap-3 pr-6`},jR={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},MR={class:`min-w-0`},NR={class:`flex items-center border-t border-border px-6 py-4`},PR={class:`ml-auto`},FR=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 Zf();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`},"next-intl-json":{label:`Next.js (next-intl)`,glyph:`{ }`,file:`messages/{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 Qf({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(L_),{open:i.value,"onUpdate:open":C},{default:P(()=>[U(N(wv),null,{default:P(()=>[U(N(Sv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(yv),{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`,FL,[H(`div`,IL,[H(`div`,LL,j(g.value.glyph),1),H(`div`,RL,[U(N(Tv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[10]||=[W(`Import your translations`,-1)]]),_:1}),U(N(bv),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[t[11]||=W(` Found a `,-1),H(`span`,zL,j(g.value.label),1),t[12]||=W(` setup in `,-1),H(`span`,BL,j(g.value.file),1),t[13]||=W(`. `,-1)]),_:1})])]),H(`div`,VL,[H(`div`,HL,[H(`span`,UL,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`,WL,[H(`span`,GL,j(o.value.locales.length),1),t[15]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`locales`,-1)]),H(`div`,KL,[U(N(Gu),{class:`size-3.5 opacity-70`}),t[16]||=W(` Detected automatically `,-1)])]),H(`div`,qL,[U(N(KC),{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(OS),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:P(()=>[U(N(SC),{class:`mt-1.5`},{default:P(()=>[H(`span`,JL,[U(nT,{code:s.value,size:14},null,8,[`code`]),H(`span`,YL,j(s.value),1),H(`span`,XL,j(N(PL)(s.value).name),1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[H(`span`,ZL,[U(nT,{code:e,size:14},null,8,[`code`]),H(`span`,QL,j(e),1),H(`span`,$L,j(N(PL)(e).name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,eR,[H(`div`,tR,[U(N(KC),{class:`whitespace-nowrap`},{default:P(()=>[...t[19]||=[W(`Locales to import`,-1)]]),_:1}),H(`span`,nR,j(b.value)+` of `+j(o.value.locales.length),1)]),H(`div`,rR,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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(nT,{code:e,size:14},null,8,[`code`]),H(`span`,aR,j(e),1),e===s.value?(z(),B(`span`,oR,`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,iR)]),_:2},1024),U(N(sw),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`,sR,[H(`div`,cR,[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`,lR,j(g.value.glyph),1)]),l.value?(z(),B(`div`,uR,[(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`,dR,j(e.key),1),H(`span`,fR,j(e.value),1)]))),128)),x.value>0?(z(),B(`div`,pR,` + `+j(x.value.toLocaleString())+` more keys `,1)):G(``,!0)])):G(``,!0)])])):G(``,!0)]),H(`div`,mR,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[21]||=[W(`Skip`,-1)]]),_:1}),U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`label`,hR,[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(sw),{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`,gR,[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(Tv),{class:`sr-only`},{default:P(()=>[...t[24]||=[W(`Importing translations`,-1)]]),_:1}),H(`div`,_R,[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`,vR,` 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`,yR,[H(`div`,bR,[H(`div`,xR,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[26]||=[W(`Import complete`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,SR,j(d.value.keyCount.toLocaleString())+` keys`,1),t[27]||=W(` across `,-1),H(`span`,CR,j(d.value.localeCount)+` locales`,1),t[28]||=W(` imported. `,-1)]),_:1})])]),d.value.warnings.length?(z(),B(`div`,wR,[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`,TR,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`,ER,[(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`,DR,[H(`div`,OR,[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`,kR,[H(`div`,AR,[H(`div`,jR,[U(N(Td),{class:`size-5`})]),H(`div`,MR,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[31]||=[W(`Couldn't import translations`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(f.value),1)]),_:1})])])]),H(`div`,NR,[H(`div`,PR,[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`]))}}),IR=`glotfile-theme`,LR=[`system`,`light`,`dark`],RR=e=>LR.includes(e);function zR(){let e=localStorage.getItem(IR);return RR(e)?e:`system`}var BR=window.matchMedia(`(prefers-color-scheme: dark)`),VR=M(BR.matches);BR.addEventListener(`change`,e=>{VR.value=e.matches});var HR=M(zR()),UR=q(()=>HR.value===`system`?VR.value:HR.value===`dark`);function WR(){document.documentElement.classList.toggle(`dark`,UR.value)}function GR(){Er(UR,WR,{immediate:!0,flush:`sync`})}function KR(e){HR.value=e,localStorage.setItem(IR,e),yf({theme:e}).catch(()=>{})}async function qR(){try{let{theme:e}=await vf();RR(e)&&e!==HR.value&&(HR.value=e,localStorage.setItem(IR,e))}catch{}}var JR={class:`flex flex-col items-center gap-0.5 rounded-lg bg-black/15 p-0.5`},YR=[`data-mode`,`aria-label`,`aria-pressed`,`onClick`],XR=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`,JR,[(z(),B(R,null,I(t,e=>U(N(mC),{key:e.value},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-mode":e.value,"aria-label":e.label,"aria-pressed":N(HR)===e.value,class:A(N(Ch)(`flex size-8 items-center justify-center rounded-md transition-colors`,N(HR)===e.value?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(KR)(e.value)},[(z(),V(ia(e.icon),{class:`size-4`}))],10,YR)]),_:2},1024),U(N(sw),{side:`right`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)),64))]))}}),ZR=F({__name:`Kbd`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`kbd`,{class:A(N(Ch)(`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))}}),QR=[{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 $R(e,t){if(e.pending===`g`){let e=QR.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 ez={class:`flex w-14 shrink-0 flex-col items-center gap-1 bg-rail py-3 text-rail-foreground`},tz=[`aria-label`,`onClick`],nz={key:0,class:`flex items-center gap-0.5`},rz={class:`mt-auto flex flex-col items-center gap-1.5`},iz={class:`font-mono text-[10px] text-rail-foreground/50`},az=F({__name:`NavRail`,setup(e){let t=Kp(),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:QR.find(t=>t.route===e.id)?.keys}));return(e,r)=>(z(),V(N(uC),{"delay-duration":300},{default:P(()=>[H(`nav`,ez,[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(mC),{key:e.id},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"aria-label":e.label,class:A(N(Ch)(`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(Gp)(e.id)},[(z(),V(ia(e.icon),{class:`size-5`}))],10,tz)]),_:2},1024),U(N(sw),{side:`right`,class:`flex items-center gap-2`},{default:P(()=>[H(`span`,null,j(e.label),1),e.keys?(z(),B(`span`,nz,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(ZR,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])):G(``,!0)]),_:2},1024)]),_:2},1024))),128)),H(`div`,rz,[U(XR),H(`span`,iz,`v`+j(N(`1.1.1`)),1)])])]),_:1}))}}),oz={class:`flex flex-col gap-1`},sz={class:`flex items-center gap-1`},cz={class:`flex items-center justify-between py-1 text-sm`},lz={class:`flex items-center gap-1`},uz=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(L_),{open:t.value,"onUpdate:open":n[0]||=e=>t.value=e},{default:P(()=>[U(N(qC),{class:`max-w-sm`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[1]||=[W(`Keyboard shortcuts`,-1)]]),_:1})]),_:1}),H(`ul`,oz,[(z(!0),B(R,null,I(N(QR),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`,sz,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(ZR,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])]))),128)),H(`li`,cz,[n[3]||=H(`span`,null,`Search keys`,-1),H(`span`,lz,[U(ZR,null,{default:P(()=>[...n[2]||=[W(`/`,-1)]]),_:1})])])])]),_:1})]),_:1},8,[`open`]))}}),dz=M(!1),fz=1e3;function pz(){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===`?`&&dz.value;if(o&&!s)return;let c=$R(e,a);e=c.state,n(),e.pending===`g`&&(t=window.setTimeout(()=>{e={pending:null},t=null},fz));let{action:l}=c;l&&(l.type===`navigate`?Gp(l.route):dz.value=!dz.value,r.preventDefault())}Gi(()=>window.addEventListener(`keydown`,r)),Yi(()=>{n(),window.removeEventListener(`keydown`,r)})}var mz={class:`flex h-screen bg-background text-foreground`},hz={class:`flex min-w-0 flex-1 flex-col`},gz={class:`flex h-12 shrink-0 items-center justify-between border-b px-4`},_z={class:`flex min-w-0 items-center gap-3`},vz={key:0,class:`flex min-w-0 items-center gap-1.5`},yz={class:`max-w-[12rem] shrink-0 truncate font-mono text-sm font-medium`},bz={class:`truncate`},xz={key:0,class:`text-muted-foreground`},Sz={class:`text-sm font-semibold`},Cz={class:`flex shrink-0 items-center gap-2`},wz={class:`font-mono`},Tz={key:1,"aria-hidden":`true`,class:`text-xs text-muted-foreground/50`},Ez={class:`mt-1 font-mono`},Dz={class:`flex min-h-0 flex-1 flex-col overflow-hidden`},Oz=F({__name:`App`,setup(e){let t=Kp();pz();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()}zh(c),Gi(async()=>{await c(),_w(),Lh();try{[r.value,i.value]=await Promise.all([Uf(),Wf()]),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 Gf(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(uC),{"delay-duration":300},{default:P(()=>[H(`div`,mz,[U(az),H(`div`,hz,[H(`header`,gz,[H(`div`,_z,[r.value?(z(),B(`div`,vz,[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,yz,j(r.value.project),1)]),_:1}),U(N(sw),{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(fS),null,{default:P(()=>[U(N(vS),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`max-w-[16rem] gap-1.5 font-mono`},{default:P(()=>[H(`span`,bz,j(r.value.name),1),U(N(Au),{class:`size-3.5 shrink-0 text-muted-foreground`})]),_:1})]),_:1}),U(N(QC),{align:`start`,class:`w-max`},{default:P(()=>[(z(!0),B(R,null,I(a.value,e=>(z(),V(N($C),{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`,xz,j(e.relDir)+`/`,1)):G(``,!0),W(j(e.name),1)])]),_:2},1032,[`onSelect`]))),128))]),_:1})]),_:1})])):G(``,!0),H(`h1`,Sz,j(d.value),1)]),H(`div`,Cz,[f.value?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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(Gp)(`settings`)},j(f.value.source)+` → `+j(f.value.targets.length)+` `+j(f.value.targets.length===1?`locale`:`locales`),1)]),_:1}),U(N(sw),{side:`bottom`,class:`max-w-[28rem] leading-relaxed`},{default:P(()=>[H(`div`,wz,j(f.value.targets.join(`, `)||`—`),1),n[5]||=H(`div`,{class:`mt-1 text-background/60`},`Click to manage in Settings`,-1)]),_:1})]),_:1})):G(``,!0),f.value?(z(),B(`span`,Tz,`·`)):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex shrink-0 items-center gap-1 font-mono text-xs text-muted-foreground transition-colors hover:text-foreground`,onClick:n[1]||=e=>N(Gp)(`settings`,`section=scan`)},[N(pw)?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-3`})),W(` `+j(N(hw)),1)])]),_:1}),U(N(sw),{side:`bottom`,class:`max-w-[24rem] leading-relaxed`},{default:P(()=>[n[6]||=H(`div`,null,[W(`Finds where each key is used in your code — powers the `),H(`span`,{class:`font-medium`},`Unused`),W(` filter and per-key usage.`)],-1),n[7]||=H(`div`,{class:`mt-1 text-background/60`},`Runs automatically when the server starts. Click to open Scan settings.`,-1),H(`div`,Ez,j(N(gw)),1)]),_:1})]),_:1})])]),H(`main`,Dz,[N(t)===`editor`?(z(),V(ik,{key:0})):N(t)===`analytics`?(z(),V(QA,{key:1})):N(t)===`glossary`?(z(),V(Vj,{key:2})):N(t)===`screenshots`?(z(),V(PI,{key:3})):N(t)===`settings`?(z(),V(vI,{key:4})):N(t)===`activity`?(z(),V(gL,{key:5})):N(t)===`docs`?(z(),V(ML,{key:6})):G(``,!0)])]),U(N(kh)),U(uz,{open:N(dz),"onUpdate:open":n[2]||=e=>ln(dz)?dz.value=e:null},null,8,[`open`]),o.value?(z(),V(FR,{key:0,ref_key:`wizardRef`,ref:s,onVnodeMounted:n[3]||=e=>s.value?.init(),onDismiss:n[4]||=e=>o.value=!1,onImported:l},null,512)):G(``,!0)])]),_:1}))}});GR(),iu(Oz).mount(`#app`),qR(),FO(),XT();
|
|
2794
|
+
`,text:`Troubleshooting and FAQ Setup Run it with (no global install needed), or install globally with . From a checkout, build first: . 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`}],vL={class:`flex min-h-0 flex-1 overflow-hidden`},yL={class:`flex w-56 shrink-0 flex-col overflow-hidden border-r bg-muted/30`},bL={class:`relative shrink-0 px-2 py-2`},xL={key:0,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},SL={class:`px-2 py-1 text-xs text-muted-foreground`},CL=[`onClick`],wL={class:`text-sm font-medium`},TL={key:0,class:`text-[10px] uppercase tracking-wider text-muted-foreground`},EL={key:1,class:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`},DL={class:`bg-primary/20 text-foreground`},OL={key:1,class:`flex flex-col gap-1 overflow-y-auto px-2 pb-3`},kL=[`onClick`],AL={class:`min-w-0 flex-1 overflow-y-auto`},jL=[`innerHTML`],ML=F({__name:`DocsView`,setup(e){let t=[``,`Getting Started`,`Frameworks`,`Web UI`,`CLI`,`Concepts`,`AI Translation`,`Reference`,`Guides`,`Help`];function n(){let e=qp().get(`doc`);return e&&_L.some(t=>t.id===e)?e:_L[0]?.id??``}let r=M(n()),i=M(``),a=q(()=>{let e=new Map;for(let t of _L)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 _L){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(()=>_L.find(e=>e.id===r.value)??_L[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`,vL,[H(`nav`,yL,[H(`div`,bL,[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`,xL,[H(`div`,SL,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`,wL,j(e.title),1),e.section?(z(),B(`div`,TL,j(e.section),1)):G(``,!0),e.match?(z(),B(`div`,EL,[W(j(e.before),1),H(`mark`,DL,j(e.match),1),W(j(e.after),1)])):G(``,!0)],8,CL))),128))])):(z(),B(`div`,OL,[(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,kL))),128))],64))),128))]))]),H(`div`,AL,[H(`div`,{class:`prose prose-sm dark:prose-invert mx-auto max-w-3xl px-8 py-6`,innerHTML:s.value?.html},null,8,jL)])]))}}),NL={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 PL(e){let[t=``,n]=e.split(/[-_]/),r=t.toLowerCase(),i=n&&/^[A-Za-z]{2}$/.test(n)?n.toUpperCase():void 0,a=NL[r]??e;return{code:e,name:i?`${a} (${i})`:a}}var FL={class:`p-6`},IL={class:`flex items-start gap-3 pr-6`},LL={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`},RL={class:`min-w-0`},zL={class:`font-medium text-foreground`},BL={class:`font-mono text-[12px]`},VL={class:`mt-4 flex items-center gap-4 rounded-lg border border-border bg-muted/40 px-3.5 py-2.5`},HL={class:`flex flex-col`},UL={class:`text-[17px] font-semibold leading-none tabular-nums`},WL={class:`flex flex-col`},GL={class:`text-[17px] font-semibold leading-none tabular-nums`},KL={class:`ml-auto flex items-center gap-1.5 whitespace-nowrap text-[11px] text-muted-foreground`},qL={class:`mt-5`},JL={class:`!flex min-w-0 items-center gap-2`},YL={class:`font-mono text-[13px]`},XL={class:`truncate text-[13px] text-muted-foreground`},ZL={class:`flex items-center gap-2`},QL={class:`font-mono text-[13px]`},$L={class:`text-[13px] text-muted-foreground`},eR={class:`mt-4`},tR={class:`flex items-center justify-between`},nR={class:`whitespace-nowrap text-[12px] tabular-nums text-muted-foreground`},rR={class:`mt-1.5 flex flex-wrap gap-1.5 rounded-lg border border-border bg-muted/30 p-2.5`},iR=[`disabled`,`onClick`],aR={class:`font-mono`},oR={key:0,class:`ml-0.5 rounded-sm bg-primary/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-primary`},sR={key:0,class:`mt-4`},cR={class:`overflow-hidden rounded-lg border border-border`},lR={class:`ml-auto font-mono text-[11px] text-muted-foreground/70`},uR={key:0,class:`divide-y divide-border border-t border-border gf-content-fade`},dR={class:`shrink-0 font-mono text-foreground`},fR={class:`ml-auto truncate text-right text-muted-foreground`},pR={key:0,class:`px-3 py-1.5 text-[11px] text-muted-foreground/70`},mR={class:`flex items-center gap-2 border-t border-border px-6 py-4`},hR={class:`ml-1 flex cursor-pointer select-none items-center gap-1.5 text-[12px] text-muted-foreground`},gR={class:`ml-auto`},_R={class:`flex flex-col items-center justify-center gap-4 p-6 py-8 text-center`},vR={key:0,class:`mt-1 text-[13px] text-muted-foreground`},yR={class:`p-6`},bR={class:`flex flex-col items-center gap-3 pt-1 text-center`},xR={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},SR={class:`font-semibold text-foreground tabular-nums`},CR={class:`font-semibold text-foreground`},wR={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},TR={class:`whitespace-nowrap text-[13px] font-medium text-warning`},ER={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},DR={class:`flex items-center border-t border-border px-6 py-4`},OR={class:`ml-auto`},kR={class:`p-6`},AR={class:`flex items-start gap-3 pr-6`},jR={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},MR={class:`min-w-0`},NR={class:`flex items-center border-t border-border px-6 py-4`},PR={class:`ml-auto`},FR=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 Zf();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`},"next-intl-json":{label:`Next.js (next-intl)`,glyph:`{ }`,file:`messages/{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 Qf({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(L_),{open:i.value,"onUpdate:open":C},{default:P(()=>[U(N(wv),null,{default:P(()=>[U(N(Sv),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(N(yv),{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`,FL,[H(`div`,IL,[H(`div`,LL,j(g.value.glyph),1),H(`div`,RL,[U(N(Tv),{class:`text-base font-semibold leading-tight`},{default:P(()=>[...t[10]||=[W(`Import your translations`,-1)]]),_:1}),U(N(bv),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:P(()=>[t[11]||=W(` Found a `,-1),H(`span`,zL,j(g.value.label),1),t[12]||=W(` setup in `,-1),H(`span`,BL,j(g.value.file),1),t[13]||=W(`. `,-1)]),_:1})])]),H(`div`,VL,[H(`div`,HL,[H(`span`,UL,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`,WL,[H(`span`,GL,j(o.value.locales.length),1),t[15]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`locales`,-1)]),H(`div`,KL,[U(N(Gu),{class:`size-3.5 opacity-70`}),t[16]||=W(` Detected automatically `,-1)])]),H(`div`,qL,[U(N(KC),{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(OS),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:P(()=>[U(N(SC),{class:`mt-1.5`},{default:P(()=>[H(`span`,JL,[U(nT,{code:s.value,size:14},null,8,[`code`]),H(`span`,YL,j(s.value),1),H(`span`,XL,j(N(PL)(s.value).name),1)])]),_:1}),U(N(CC),null,{default:P(()=>[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(TC),{key:e,value:e},{default:P(()=>[H(`span`,ZL,[U(nT,{code:e,size:14},null,8,[`code`]),H(`span`,QL,j(e),1),H(`span`,$L,j(N(PL)(e).name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,eR,[H(`div`,tR,[U(N(KC),{class:`whitespace-nowrap`},{default:P(()=>[...t[19]||=[W(`Locales to import`,-1)]]),_:1}),H(`span`,nR,j(b.value)+` of `+j(o.value.locales.length),1)]),H(`div`,rR,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(N(mC),{key:e},{default:P(()=>[U(N(yC),{"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(nT,{code:e,size:14},null,8,[`code`]),H(`span`,aR,j(e),1),e===s.value?(z(),B(`span`,oR,`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,iR)]),_:2},1024),U(N(sw),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`,sR,[H(`div`,cR,[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`,lR,j(g.value.glyph),1)]),l.value?(z(),B(`div`,uR,[(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`,dR,j(e.key),1),H(`span`,fR,j(e.value),1)]))),128)),x.value>0?(z(),B(`div`,pR,` + `+j(x.value.toLocaleString())+` more keys `,1)):G(``,!0)])):G(``,!0)])])):G(``,!0)]),H(`div`,mR,[U(N($),{variant:`ghost`,size:`sm`,onClick:t[3]||=e=>r(`dismiss`)},{default:P(()=>[...t[21]||=[W(`Skip`,-1)]]),_:1}),U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`label`,hR,[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(sw),{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`,gR,[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(Tv),{class:`sr-only`},{default:P(()=>[...t[24]||=[W(`Importing translations`,-1)]]),_:1}),H(`div`,_R,[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`,vR,` 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`,yR,[H(`div`,bR,[H(`div`,xR,[U(N(Du),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[26]||=[W(`Import complete`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[H(`span`,SR,j(d.value.keyCount.toLocaleString())+` keys`,1),t[27]||=W(` across `,-1),H(`span`,CR,j(d.value.localeCount)+` locales`,1),t[28]||=W(` imported. `,-1)]),_:1})])]),d.value.warnings.length?(z(),B(`div`,wR,[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`,TR,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`,ER,[(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`,DR,[H(`div`,OR,[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`,kR,[H(`div`,AR,[H(`div`,jR,[U(N(Td),{class:`size-5`})]),H(`div`,MR,[U(N(Tv),{class:`text-base font-semibold`},{default:P(()=>[...t[31]||=[W(`Couldn't import translations`,-1)]]),_:1}),U(N(bv),{class:`mt-1 text-[13px] text-muted-foreground`},{default:P(()=>[W(j(f.value),1)]),_:1})])])]),H(`div`,NR,[H(`div`,PR,[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`]))}}),IR=`glotfile-theme`,LR=[`system`,`light`,`dark`],RR=e=>LR.includes(e);function zR(){let e=localStorage.getItem(IR);return RR(e)?e:`system`}var BR=window.matchMedia(`(prefers-color-scheme: dark)`),VR=M(BR.matches);BR.addEventListener(`change`,e=>{VR.value=e.matches});var HR=M(zR()),UR=q(()=>HR.value===`system`?VR.value:HR.value===`dark`);function WR(){document.documentElement.classList.toggle(`dark`,UR.value)}function GR(){Er(UR,WR,{immediate:!0,flush:`sync`})}function KR(e){HR.value=e,localStorage.setItem(IR,e),yf({theme:e}).catch(()=>{})}async function qR(){try{let{theme:e}=await vf();RR(e)&&e!==HR.value&&(HR.value=e,localStorage.setItem(IR,e))}catch{}}var JR={class:`flex flex-col items-center gap-0.5 rounded-lg bg-black/15 p-0.5`},YR=[`data-mode`,`aria-label`,`aria-pressed`,`onClick`],XR=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`,JR,[(z(),B(R,null,I(t,e=>U(N(mC),{key:e.value},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"data-mode":e.value,"aria-label":e.label,"aria-pressed":N(HR)===e.value,class:A(N(Ch)(`flex size-8 items-center justify-center rounded-md transition-colors`,N(HR)===e.value?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>N(KR)(e.value)},[(z(),V(ia(e.icon),{class:`size-4`}))],10,YR)]),_:2},1024),U(N(sw),{side:`right`},{default:P(()=>[W(j(e.label),1)]),_:2},1024)]),_:2},1024)),64))]))}}),ZR=F({__name:`Kbd`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`kbd`,{class:A(N(Ch)(`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))}}),QR=[{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 $R(e,t){if(e.pending===`g`){let e=QR.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 ez={class:`flex w-14 shrink-0 flex-col items-center gap-1 bg-rail py-3 text-rail-foreground`},tz=[`aria-label`,`onClick`],nz={key:0,class:`flex items-center gap-0.5`},rz={class:`mt-auto flex flex-col items-center gap-1.5`},iz={class:`font-mono text-[10px] text-rail-foreground/50`},az=F({__name:`NavRail`,setup(e){let t=Kp(),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:QR.find(t=>t.route===e.id)?.keys}));return(e,r)=>(z(),V(N(uC),{"delay-duration":300},{default:P(()=>[H(`nav`,ez,[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(mC),{key:e.id},{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,"aria-label":e.label,class:A(N(Ch)(`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(Gp)(e.id)},[(z(),V(ia(e.icon),{class:`size-5`}))],10,tz)]),_:2},1024),U(N(sw),{side:`right`,class:`flex items-center gap-2`},{default:P(()=>[H(`span`,null,j(e.label),1),e.keys?(z(),B(`span`,nz,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(ZR,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])):G(``,!0)]),_:2},1024)]),_:2},1024))),128)),H(`div`,rz,[U(XR),H(`span`,iz,`v`+j(N(`1.1.2`)),1)])])]),_:1}))}}),oz={class:`flex flex-col gap-1`},sz={class:`flex items-center gap-1`},cz={class:`flex items-center justify-between py-1 text-sm`},lz={class:`flex items-center gap-1`},uz=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(L_),{open:t.value,"onUpdate:open":n[0]||=e=>t.value=e},{default:P(()=>[U(N(qC),{class:`max-w-sm`},{default:P(()=>[U(N(JC),null,{default:P(()=>[U(N(XC),null,{default:P(()=>[...n[1]||=[W(`Keyboard shortcuts`,-1)]]),_:1})]),_:1}),H(`ul`,oz,[(z(!0),B(R,null,I(N(QR),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`,sz,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(ZR,{key:t},{default:P(()=>[W(j(e),1)]),_:2},1024))),128))])]))),128)),H(`li`,cz,[n[3]||=H(`span`,null,`Search keys`,-1),H(`span`,lz,[U(ZR,null,{default:P(()=>[...n[2]||=[W(`/`,-1)]]),_:1})])])])]),_:1})]),_:1},8,[`open`]))}}),dz=M(!1),fz=1e3;function pz(){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===`?`&&dz.value;if(o&&!s)return;let c=$R(e,a);e=c.state,n(),e.pending===`g`&&(t=window.setTimeout(()=>{e={pending:null},t=null},fz));let{action:l}=c;l&&(l.type===`navigate`?Gp(l.route):dz.value=!dz.value,r.preventDefault())}Gi(()=>window.addEventListener(`keydown`,r)),Yi(()=>{n(),window.removeEventListener(`keydown`,r)})}var mz={class:`flex h-screen bg-background text-foreground`},hz={class:`flex min-w-0 flex-1 flex-col`},gz={class:`flex h-12 shrink-0 items-center justify-between border-b px-4`},_z={class:`flex min-w-0 items-center gap-3`},vz={key:0,class:`flex min-w-0 items-center gap-1.5`},yz={class:`max-w-[12rem] shrink-0 truncate font-mono text-sm font-medium`},bz={class:`truncate`},xz={key:0,class:`text-muted-foreground`},Sz={class:`text-sm font-semibold`},Cz={class:`flex shrink-0 items-center gap-2`},wz={class:`font-mono`},Tz={key:1,"aria-hidden":`true`,class:`text-xs text-muted-foreground/50`},Ez={class:`mt-1 font-mono`},Dz={class:`flex min-h-0 flex-1 flex-col overflow-hidden`},Oz=F({__name:`App`,setup(e){let t=Kp();pz();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()}zh(c),Gi(async()=>{await c(),_w(),Lh();try{[r.value,i.value]=await Promise.all([Uf(),Wf()]),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 Gf(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(uC),{"delay-duration":300},{default:P(()=>[H(`div`,mz,[U(az),H(`div`,hz,[H(`header`,gz,[H(`div`,_z,[r.value?(z(),B(`div`,vz,[U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`span`,yz,j(r.value.project),1)]),_:1}),U(N(sw),{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(fS),null,{default:P(()=>[U(N(vS),{"as-child":``},{default:P(()=>[U(N($),{variant:`outline`,size:`sm`,class:`max-w-[16rem] gap-1.5 font-mono`},{default:P(()=>[H(`span`,bz,j(r.value.name),1),U(N(Au),{class:`size-3.5 shrink-0 text-muted-foreground`})]),_:1})]),_:1}),U(N(QC),{align:`start`,class:`w-max`},{default:P(()=>[(z(!0),B(R,null,I(a.value,e=>(z(),V(N($C),{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`,xz,j(e.relDir)+`/`,1)):G(``,!0),W(j(e.name),1)])]),_:2},1032,[`onSelect`]))),128))]),_:1})]),_:1})])):G(``,!0),H(`h1`,Sz,j(d.value),1)]),H(`div`,Cz,[f.value?(z(),V(N(mC),{key:0},{default:P(()=>[U(N(yC),{"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(Gp)(`settings`)},j(f.value.source)+` → `+j(f.value.targets.length)+` `+j(f.value.targets.length===1?`locale`:`locales`),1)]),_:1}),U(N(sw),{side:`bottom`,class:`max-w-[28rem] leading-relaxed`},{default:P(()=>[H(`div`,wz,j(f.value.targets.join(`, `)||`—`),1),n[5]||=H(`div`,{class:`mt-1 text-background/60`},`Click to manage in Settings`,-1)]),_:1})]),_:1})):G(``,!0),f.value?(z(),B(`span`,Tz,`·`)):G(``,!0),U(N(mC),null,{default:P(()=>[U(N(yC),{"as-child":``},{default:P(()=>[H(`button`,{type:`button`,class:`flex shrink-0 items-center gap-1 font-mono text-xs text-muted-foreground transition-colors hover:text-foreground`,onClick:n[1]||=e=>N(Gp)(`settings`,`section=scan`)},[N(pw)?(z(),V(N($u),{key:0,class:`size-3 animate-spin`})):(z(),V(N(dd),{key:1,class:`size-3`})),W(` `+j(N(hw)),1)])]),_:1}),U(N(sw),{side:`bottom`,class:`max-w-[24rem] leading-relaxed`},{default:P(()=>[n[6]||=H(`div`,null,[W(`Finds where each key is used in your code — powers the `),H(`span`,{class:`font-medium`},`Unused`),W(` filter and per-key usage.`)],-1),n[7]||=H(`div`,{class:`mt-1 text-background/60`},`Runs automatically when the server starts. Click to open Scan settings.`,-1),H(`div`,Ez,j(N(gw)),1)]),_:1})]),_:1})])]),H(`main`,Dz,[N(t)===`editor`?(z(),V(ik,{key:0})):N(t)===`analytics`?(z(),V(QA,{key:1})):N(t)===`glossary`?(z(),V(Vj,{key:2})):N(t)===`screenshots`?(z(),V(PI,{key:3})):N(t)===`settings`?(z(),V(vI,{key:4})):N(t)===`activity`?(z(),V(gL,{key:5})):N(t)===`docs`?(z(),V(ML,{key:6})):G(``,!0)])]),U(N(kh)),U(uz,{open:N(dz),"onUpdate:open":n[2]||=e=>ln(dz)?dz.value=e:null},null,8,[`open`]),o.value?(z(),V(FR,{key:0,ref_key:`wizardRef`,ref:s,onVnodeMounted:n[3]||=e=>s.value?.init(),onDismiss:n[4]||=e=>o.value=!1,onImported:l},null,512)):G(``,!0)])]),_:1}))}});GR(),iu(Oz).mount(`#app`),qR(),FO(),XT();
|