docs-i18n 0.7.2 β 0.7.4
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.
- package/admin/dist/client/assets/main-Ds-UH1id.js +17 -0
- package/admin/dist/client/assets/routes-C369Oboq.js +3 -0
- package/admin/dist/client/assets/styles-DJ6QEJmN.css +1 -0
- package/admin/dist/server/assets/_tanstack-start-manifest_v-sC90W3ET.js +17 -0
- package/admin/dist/server/assets/createServerRpc-CMjjCE8A.js +12 -0
- package/admin/dist/server/assets/init-AJSQ7K_l.js +41740 -0
- package/admin/dist/server/assets/jobs-CwDb0Zyp.js +50 -0
- package/admin/dist/server/assets/misc-CqYhnW23.js +94 -0
- package/admin/dist/server/assets/models-D9Sd95EX.js +49 -0
- package/admin/dist/server/assets/router-D00bP5CU.js +67 -0
- package/admin/dist/server/assets/routes-C2UFxDWZ.js +24 -0
- package/admin/dist/server/assets/routes-vEKXnl0r.js +1574 -0
- package/admin/dist/server/assets/start-BrsoKfWS.js +4 -0
- package/admin/dist/server/assets/status-D48jcwYI.js +81 -0
- package/admin/dist/server/server.js +5374 -0
- package/admin/package.json +7 -3
- package/admin/serve.mjs +87 -0
- package/dist/cli.js +36 -10
- package/package.json +2 -2
- package/template/package.json +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,w as T,x as E,y as D}from"./main-Ds-UH1id.js";function O(e){if(Array.isArray(e))return e.flatMap(e=>O(e));if(typeof e!=`string`)return[];let t=[],n=0,r,i,a,o,s,c=()=>{for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length},l=()=>(i=e.charAt(n),i!==`=`&&i!==`;`&&i!==`,`);for(;n<e.length;){for(r=n,s=!1;c();)if(i=e.charAt(n),i===`,`){for(a=n,n+=1,c(),o=n;n<e.length&&l();)n+=1;n<e.length&&e.charAt(n)===`=`?(s=!0,n=o,t.push(e.slice(r,a)),r=n):n=a+1}else n+=1;(!s||n>=e.length)&&t.push(e.slice(r))}return t}function k(e){return e instanceof Headers?e:Array.isArray(e)||typeof e==`object`?new Headers(e):null}function A(...e){return e.reduce((e,t)=>{let n=k(t);if(!n)return e;for(let[t,r]of n.entries())t===`set-cookie`?O(r).forEach(t=>e.append(`set-cookie`,t)):e.set(t,r);return e},new Headers)}var j=class extends D{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=v(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),N(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return P(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return P(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof d(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!g(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&F(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||d(this.options.enabled,this.#t)!==d(t.enabled,this.#t)||y(this.options.staleTime,this.#t)!==y(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||d(this.options.enabled,this.#t)!==d(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return L(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#g(){this.#b();let e=y(this.options.staleTime,this.#t);if(x.isServer()||this.#r.isStale||!h(e))return;let t=f(this.#r.dataUpdatedAt,e)+1;this.#d=o.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(x.isServer()||d(this.options.enabled,this.#t)===!1||!h(this.#p)||this.#p===0)&&(this.#f=o.setInterval(()=>{(this.options.refetchIntervalInBackground||w.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(o.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(o.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},f=!1,p;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&N(e,t),o=i&&F(e,n,t,r);(a||o)&&(l={...l,...m(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:h,errorUpdatedAt:g,status:_}=l;p=l.data;let y=!1;if(t.placeholderData!==void 0&&p===void 0&&_===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,y=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(_=`success`,p=u(i?.data,e,t),f=!0)}if(t.select&&p!==void 0&&!y)if(i&&p===a?.data&&t.select===this.#c)p=this.#l;else try{this.#c=t.select,p=t.select(p),p=u(i?.data,p,t),this.#l=p,this.#s=null}catch(e){this.#s=e}this.#s&&(h=this.#s,p=this.#l,g=Date.now(),_=`error`);let b=l.fetchStatus===`fetching`,x=_===`pending`,S=_===`error`,C=x&&b,w=p!==void 0,T={status:_,fetchStatus:l.fetchStatus,isPending:x,isSuccess:_===`success`,isError:S,isInitialLoading:C,isLoading:C,data:p,dataUpdatedAt:l.dataUpdatedAt,error:h,errorUpdatedAt:g,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:b,isRefetching:b&&!x,isLoadingError:S&&!w,isPaused:l.fetchStatus===`paused`,isPlaceholderData:f,isRefetchError:S&&w,isStale:I(e,t),refetch:this.refetch,promise:this.#o,isEnabled:d(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=T.data!==void 0,r=T.status===`error`&&!t,i=e=>{r?e.reject(T.error):t&&e.resolve(T.data)},a=()=>{i(this.#o=T.promise=v())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||T.data!==o.value)&&a();break;case`rejected`:(!r||T.error!==o.reason)&&a();break}}return T}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!g(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){s.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function M(e,t){return d(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function N(e,t){return M(e,t)||e.state.data!==void 0&&P(e,t,t.refetchOnMount)}function P(e,t,n){if(d(t.enabled,e)!==!1&&y(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&I(e,t)}return!1}function F(e,t,n,r){return(e!==t||d(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&I(e,n)}function I(e,t){return d(t.enabled,e)!==!1&&e.isStaleByTime(y(t.staleTime,e))}function L(e,t){return!g(e.getCurrentResult(),t)}var R=class extends D{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),g(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&l(t.mutationKey)!==l(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??b();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){s.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},z=r(t(),1),B=z.createContext(!1),ee=()=>z.useContext(B);B.Provider;var V=E();function H(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var te=z.createContext(H()),ne=()=>z.useContext(te),re=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?p(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},ie=e=>{z.useEffect(()=>{e.clearReset()},[e])},ae=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||p(n,[e.error,r])),oe=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},se=(e,t)=>e.isLoading&&e.isFetching&&!t,ce=(e,t)=>e?.suspense&&t.isPending,U=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function le(e,t,n){let r=ee(),i=ne(),a=_(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let c=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,oe(o),re(o,i,c),ie(i);let l=!a.getQueryCache().get(o.queryHash),[u]=z.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),f=!r&&e.subscribed!==!1;if(z.useSyncExternalStore(z.useCallback(e=>{let t=f?u.subscribe(s.batchCalls(e)):C;return u.updateResult(),t},[u,f]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),z.useEffect(()=>{u.setOptions(o)},[o,u]),ce(o,d))throw U(o,u,i);if(ae({result:d,errorResetBoundary:i,throwOnError:o.throwOnError,query:c,suspense:o.suspense}))throw d.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,d),o.experimental_prefetchInRender&&!x.isServer()&&se(d,r)&&(l?U(o,u,i):c?.promise)?.catch(C).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?d:u.trackResult(d)}function W(e,t){return le(e,j,t)}function G(e,t){let n=_(t),[r]=z.useState(()=>new R(n,e));z.useEffect(()=>{r.setOptions(e)},[r,e]);let i=z.useSyncExternalStore(z.useCallback(e=>r.subscribe(s.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=z.useCallback((e,t)=>{r.mutate(e,t).catch(C)},[r]);if(i.error&&p(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var K={en:`πΊπΈ`,"zh-hans":`π¨π³`,"zh-hant":`ππ°`,ja:`π―π΅`,ar:`πΈπ¦`,de:`π©πͺ`,es:`πͺπΈ`,fr:`π«π·`,ru:`π·πΊ`};function ue(e){return e>=95?`var(--green)`:e>50?`var(--yellow)`:`var(--red)`}function de(e){return e>=100?`π’`:e>0?`π‘`:`π΄`}function fe(e){return e.startsWith(`docs/`)?`docs`:e.startsWith(`blog/`)?`blog`:e.startsWith(`learn/`)?`learn`:`other`}function pe(e){return e.total>0?e.translated/e.total*100:100}function me(e){let t=pe(e);return t>=100?`complete`:t>0?`partial`:`missing`}function he(e){let t={name:``,path:``,children:new Map};for(let n of e){let e=n.file.split(`/`),r=t;for(let t=0;t<e.length;t++){let n=e[t];r.children.has(n)||r.children.set(n,{name:n,path:e.slice(0,t+1).join(`/`),children:new Map}),r=r.children.get(n)}r.file=n}return t}function ge(e){let t=0,n=0;e.file&&(t+=e.file.translated,n+=e.file.total);for(let r of e.children.values()){let e=ge(r);t+=e.translated,n+=e.total}return{translated:t,total:n}}function q({node:e,depth:t,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c}){let l=e.children.size>0&&!e.file,u=a.has(e.path),d=[...e.children.values()].sort((e,t)=>{let n=e.children.size>0&&!e.file;return n===(t.children.size>0&&!t.file)?e.name.localeCompare(t.name):n?-1:1});if(l){let{translated:l,total:f}=ge(e),p=f>0?l/f*100:100,m=p>=100?`var(--green)`:p>0?`var(--yellow)`:`var(--red)`;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`file-row tree-dir`,style:{paddingLeft:`${t+.25}rem`},onClick:()=>o(e.path),children:[(0,V.jsx)(`span`,{className:`tree-arrow`,children:u?`βΆ`:`βΌ`}),(0,V.jsx)(`span`,{className:`icon`,children:`π`}),(0,V.jsxs)(`span`,{className:`path`,title:e.path,children:[e.name,`/`]}),(0,V.jsxs)(`span`,{className:`pct`,children:[p.toFixed(0),`%`]}),(0,V.jsx)(`div`,{className:`mini-bar`,children:(0,V.jsx)(`div`,{className:`mini-fill`,style:{width:`${p}%`,background:m}})})]}),!u&&d.map(e=>(0,V.jsx)(q,{node:e,depth:t+1,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c},e.path))]})}let f=e.file;if(!f)return null;f.total-f.translated;let p=f.status===`complete`?`var(--green)`:f.status===`partial`?`var(--yellow)`:`var(--red)`;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`file-row${n===f.file?` active`:``}`,style:{paddingLeft:`${t+.25}rem`},onClick:()=>s(f.file),children:[!i&&(0,V.jsx)(`input`,{type:`checkbox`,checked:r.has(f.file),onChange:e=>{e.stopPropagation(),c(f.file)},onClick:e=>e.stopPropagation()}),(0,V.jsx)(`span`,{className:`icon`,children:de(f.pct)}),(0,V.jsx)(`span`,{className:`path`,title:f.file,children:e.name}),(0,V.jsxs)(`span`,{className:`pct`,children:[f.pct.toFixed(0),`%`]}),(0,V.jsx)(`div`,{className:`mini-bar`,children:(0,V.jsx)(`div`,{className:`mini-fill`,style:{width:`${f.pct}%`,background:p}})})]}),!u&&d.map(e=>(0,V.jsx)(q,{node:e,depth:t+1,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c},e.path))]})}function _e({files:e,lang:t,activeFile:n,selected:r,statusFilter:i,sectionFilter:a,onStatusFilter:o,onSectionFilter:s,onSelect:c,onToggle:l,onSelectAll:u,onClear:d,onTranslateSelected:f}){let[p,m]=(0,z.useState)(`tree`),[h,g]=(0,z.useState)(new Set),[_,v]=(0,z.useState)(``),y=(0,z.useMemo)(()=>{let t=e.map(e=>({...e,pct:pe(e),status:me(e),section:fe(e.file)}));if(i!==`all`&&(t=t.filter(e=>e.status===i)),a!==`all`&&(t=t.filter(e=>e.section===a)),_.trim()){let e=_.trim().toLowerCase();t=t.filter(t=>t.file.toLowerCase().includes(e))}return t},[e,i,a,_]),b=(0,z.useMemo)(()=>he(y),[y]),x=e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},S=t===`en`;return(0,V.jsxs)(`div`,{className:`file-list-wrap`,children:[!S&&r.size>0&&(0,V.jsxs)(`div`,{className:`sel-bar`,children:[(0,V.jsxs)(`span`,{children:[r.size,` selected`]}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-sm`,onClick:f,children:`Translate Selected`}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-sm btn-outline`,onClick:d,children:`Clear`})]}),(0,V.jsxs)(`div`,{className:`file-search`,children:[(0,V.jsx)(`input`,{type:`text`,placeholder:`Search files...`,value:_,onChange:e=>v(e.target.value)}),_&&(0,V.jsx)(`button`,{type:`button`,className:`file-search-clear`,onClick:()=>v(``),children:`β`})]}),(0,V.jsxs)(`div`,{className:`file-list-hdr`,children:[!S&&(0,V.jsx)(`input`,{type:`checkbox`,checked:y.length>0&&y.every(e=>r.has(e.file)),onChange:e=>{e.target.checked?u(y.map(e=>e.file)):d()},title:`Select all visible`}),(0,V.jsxs)(`strong`,{children:[t,` Β· `,y.length,` files`]}),(0,V.jsx)(`span`,{className:`spacer`}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-xs${p===`list`?` active`:``}`,onClick:()=>m(`list`),title:`List view`,children:`β°`}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-xs${p===`tree`?` active`:``}`,onClick:()=>m(`tree`),title:`Tree view`,children:`π²`}),(0,V.jsxs)(`select`,{value:i,onChange:e=>o(e.target.value),children:[(0,V.jsx)(`option`,{value:`all`,children:`All`}),(0,V.jsx)(`option`,{value:`complete`,children:`β
Complete`}),(0,V.jsx)(`option`,{value:`partial`,children:`π‘ Partial`}),(0,V.jsx)(`option`,{value:`missing`,children:`π΄ Missing`})]}),(0,V.jsxs)(`select`,{value:a,onChange:e=>s(e.target.value),children:[(0,V.jsx)(`option`,{value:`all`,children:`All sections`}),(0,V.jsx)(`option`,{value:`docs`,children:`docs`}),(0,V.jsx)(`option`,{value:`blog`,children:`blog`}),(0,V.jsx)(`option`,{value:`learn`,children:`learn`})]})]}),(0,V.jsxs)(`div`,{className:`file-list-body`,children:[y.length===0&&(0,V.jsx)(`div`,{className:`loading`,children:`No files match filter`}),p===`list`&&y.map(e=>{e.total-e.translated;let t=e.status===`complete`?`var(--green)`:e.status===`partial`?`var(--yellow)`:`var(--red)`;return(0,V.jsxs)(`div`,{className:`file-row${n===e.file?` active`:``}`,onClick:()=>c(e.file),children:[!S&&(0,V.jsx)(`input`,{type:`checkbox`,checked:r.has(e.file),onChange:t=>{t.stopPropagation(),l(e.file)},onClick:e=>e.stopPropagation()}),(0,V.jsx)(`span`,{className:`icon`,children:de(e.pct)}),(0,V.jsx)(`span`,{className:`path`,title:e.file,children:e.file}),(0,V.jsxs)(`span`,{className:`pct`,children:[e.pct.toFixed(0),`%`]}),(0,V.jsx)(`div`,{className:`mini-bar`,children:(0,V.jsx)(`div`,{className:`mini-fill`,style:{width:`${e.pct}%`,background:t}})})]},e.file)}),p===`tree`&&[...b.children.values()].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(0,V.jsx)(q,{node:e,depth:0,activeFile:n,selected:r,isEn:S,collapsed:h,onToggleCollapse:x,onSelect:c,onToggle:l},e.path))]})]})}function J(e){return e!==`__proto__`&&e!==`constructor`&&e!==`prototype`}function Y(e,t){let n=Object.create(null);if(e)for(let t of Object.keys(e))J(t)&&(n[t]=e[t]);if(t&&typeof t==`object`)for(let e of Object.keys(t))J(e)&&(n[e]=t[e]);return n}function ve(e){if(!e)return Object.create(null);let t=Object.create(null);for(let n of Object.keys(e))J(n)&&(t[n]=e[n]);return t}var ye=()=>{throw Error(`createServerOnlyFn() functions can only be called on the server!`)},X=(e,t)=>{let r=t||e||{};return r.method===void 0&&(r.method=`GET`),Object.assign(e=>X(void 0,{...r,...e}),{options:r,middleware:e=>{let t=[...r.middleware||[]];e.map(e=>{n in e?e.options.middleware&&t.push(...e.options.middleware):t.push(e)});let i=X(void 0,{...r,middleware:t});return i[n]=!0,i},inputValidator:e=>X(void 0,{...r,inputValidator:e}),handler:(...e)=>{let[t,n]=e,i={...r,extractedFn:t,serverFn:n},a=[...i.middleware||[],Ce(i)];return t.method=r.method,Object.assign(async e=>{let n=await be(a,`client`,{...t,...i,data:e?.data,headers:e?.headers,signal:e?.signal,fetch:e?.fetch,context:ve()}),r=T(n.error);if(r)throw r;if(n.error)throw n.error;return n.result},{...t,method:r.method,__executeServer:async e=>{let n=ye(),r=n.contextAfterGlobalMiddlewares;return await be(a,`server`,{...t,...e,serverFnMeta:t.serverFnMeta,context:Y(r,e.context),request:n.request}).then(e=>({result:e.result,error:e.error,context:e.sendContext}))}})}})};async function be(t,n,r){let i=xe([...a()?.functionMiddleware||[],...t]);if(n===`server`){let e=ye({throwIfNotFound:!1});e?.executedRequestMiddlewares&&(i=i.filter(t=>!e.executedRequestMiddlewares.has(t)))}let o=async t=>{let r=i.shift();if(!r)return t;try{`inputValidator`in r.options&&r.options.inputValidator&&n===`server`&&(t.data=await Se(r.options.inputValidator,t.data));let i;if(n===`client`?`client`in r.options&&(i=r.options.client):`server`in r.options&&(i=r.options.server),i){let n=async(e={})=>{let n=await o({...t,...e,context:Y(t.context,e.context),sendContext:Y(t.sendContext,e.sendContext),headers:A(t.headers,e.headers),_callSiteFetch:t._callSiteFetch,fetch:t._callSiteFetch??e.fetch??t.fetch,result:e.result===void 0?e instanceof Response?e:t.result:e.result,error:e.error??t.error});if(n.error)throw n.error;return n},r=await i({...t,next:n});if(e(r))return{...t,error:r};if(r instanceof Response)return{...t,result:r};if(!r)throw Error(`User middleware returned undefined. You must call next() or return a result in your middlewares.`);return r}return o(t)}catch(e){return{...t,error:e}}};return o({...r,headers:r.headers||{},sendContext:r.sendContext||{},context:r.context||ve(),_callSiteFetch:r.fetch})}function xe(e,t=100){let n=new Set,r=[],i=(e,a)=>{if(a>t)throw Error(`Middleware nesting depth exceeded maximum of ${t}. Check for circular references.`);e.forEach(e=>{e.options.middleware&&i(e.options.middleware,a+1),n.has(e)||(n.add(e),r.push(e))})};return i(e,0),r}async function Se(e,t){if(e==null)return{};if(`~standard`in e){let n=await e[`~standard`].validate(t);if(n.issues)throw Error(JSON.stringify(n.issues,void 0,2));return n.value}if(`parse`in e)return e.parse(t);if(typeof e==`function`)return e(t);throw Error(`Invalid validator type!`)}function Ce(e){return{"~types":void 0,options:{inputValidator:e.inputValidator,client:async({next:t,sendContext:n,fetch:r,...i})=>{let a={...i,context:n,fetch:r};return t(await e.extractedFn?.(a))},server:async({next:t,...n})=>{let r=await e.serverFn?.(n);return t({...n,result:r})}}}}var we=X({method:`GET`}).handler(i(`4e218d79545765572808c7eab33b7663d4496209c15406d0b449366905b6b83f`)),Te=X({method:`GET`}).handler(i(`843cd8b59095708a5ae78198708db9850f89fd3dd3830ab236f0bd924417692f`)),Ee=X({method:`GET`}).handler(i(`e1e7281e45375c67dbe408c58452e7482b139da60e9e361615553227dce95ee0`)),De=X({method:`POST`}).handler(i(`e1d13d8602339a95f559345ccfc82e9f843dd375ce8e9f580637c241e7e44774`));X({method:`POST`}).handler(i(`1d8e3916f992485c62e62c3693083850b773fdff4ec54277de5a01eb98dab664`));var Oe=X({method:`GET`}).handler(i(`421de02ce39dde6e27cf4689e837ec072cbd01e63f8cdd5c2a3f42f0bd5ca613`)),ke=X({method:`POST`}).handler(i(`c08559ac758aa0d315deaca7a0d7d923a9a44d997c8cb811151417c1f221ddd6`));X({method:`GET`}).handler(i(`8a56694c9d7b29422a3e7d2f6b803be100d79d3853d92d465cb55ed572781e62`));var Ae=X({method:`POST`}).handler(i(`88c2855c84e91504070bfecc50ddfa50339d22c305626800b6d9b05d79385d71`)),je=X({method:`GET`}).handler(i(`5080dc3f2f2309ec6981b94c431969637130c657e8a1dfb10400b4614eecc1ea`)),Me=X({method:`GET`}).handler(i(`a3d81974aeece150d4b02be5b91590b8187442ebea56be4a89dcbf053626d22b`)),Ne=X({method:`GET`}).handler(i(`3bf4ba50ca8ccc3c8c60d8f2e53307a320940d68c478df494552066904c5cd74`));X({method:`GET`}).handler(i(`e0b4116f6b2c8d096830102e36458acf9c616a056fcdddda956a4d66984ef58c`));var Pe=X({method:`POST`}).handler(i(`a054a04356fe9987891efee8b7a11cd2dedb00f6b2e8f26d1c642e001e553d53`)),Z={version:()=>Me(),llmConfig:()=>Ne(),status:()=>we(),fileCoverage:(e,t)=>Te({data:{version:e,lang:t}}),fileBlocks:(e,t,n)=>Ee({data:{version:e,lang:t,path:n}}),deleteCache:(e,t,n)=>De({data:{version:e,lang:t,key:n}}),models:()=>je(),jobs:()=>Oe(),createJob:e=>ke({data:e}),deleteJob:e=>Ae({data:{id:e}})};function Q(e){return e===0?`Free`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function $(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:`${(e/1e3).toFixed(0)}k`}var Fe=[0,8,16,32,64,128,200,512,1024,2048];function Ie({langs:e,versions:t,defaultLang:n,defaultVersion:r,files:i,onClose:a,onSuccess:o}){let[s,c]=(0,z.useState)(n||e[0]),[l,u]=(0,z.useState)(r||t[0]),[d,f]=(0,z.useState)(i?.length||999),[p,m]=(0,z.useState)(3),[h,g]=(0,z.useState)(null),[v,y]=(0,z.useState)(``),[b,x]=(0,z.useState)(``),[S,C]=(0,z.useState)(`context-desc`),[w,T]=(0,z.useState)(0),[E,D]=(0,z.useState)(!0),[O,k]=(0,z.useState)(!1),A=Fe[w]*1e3,{data:j}=W({queryKey:[`llmConfig`],queryFn:Z.llmConfig,staleTime:60*1e3}),{data:M,isLoading:N}=W({queryKey:[`models`],queryFn:Z.models,staleTime:300*1e3}),P=(0,z.useMemo)(()=>{if(!M)return[];let e=M.filter(e=>{if(b){let t=b.toLowerCase();if(!e.id.toLowerCase().includes(t)&&!e.name.toLowerCase().includes(t))return!1}return!(E&&!e.isFree||A>0&&e.contextLength<A||O&&!e.supportsJson)});switch(e=[...e],S){case`price-asc`:e.sort((e,t)=>e.promptPrice-t.promptPrice);break;case`price-desc`:e.sort((e,t)=>t.promptPrice-e.promptPrice);break;case`context-desc`:e.sort((e,t)=>t.contextLength-e.contextLength);break;case`name`:e.sort((e,t)=>e.name.localeCompare(t.name));break}return e},[M,b,E,A,O,S]),F=_(),I=G({mutationFn:()=>Z.createJob({lang:s,version:l,max:d,concurrency:p,model:v||void 0,md5:!0,files:i?.length?i:void 0}),onSuccess:()=>{F.invalidateQueries({queryKey:[`jobs`]}),o?o(`β
Job started: ${s} / ${l}${i?.length?` (${i.length} files)`:``}`):a()},onError:e=>g(e.message)}),L=e.filter(e=>e!==`en`),R=v?M?.find(e=>e.id===v):null;return(0,V.jsx)(`div`,{className:`dialog-overlay`,onClick:e=>{e.target===e.currentTarget&&a()},children:(0,V.jsxs)(`div`,{className:`dialog dialog-wide`,children:[(0,V.jsx)(`h3`,{children:`Start Translation Job`}),h&&(0,V.jsx)(`div`,{className:`dialog-error`,children:h}),j&&!j.hasApiKey&&(0,V.jsxs)(`div`,{className:`dialog-error`,children:[`β No API key found. Set `,(0,V.jsx)(`code`,{children:`OPENROUTER_API_KEY`}),` in `,(0,V.jsx)(`code`,{children:`.env`}),` or configure `,(0,V.jsx)(`code`,{children:`llm.apiKey`}),` in config.`]}),j?.model&&(0,V.jsxs)(`div`,{className:`dialog-mode-hint`,children:[`Default model: `,(0,V.jsx)(`strong`,{children:j.model}),j.provider&&(0,V.jsxs)(`span`,{children:[` (`,j.provider,`)`]})]}),i?.length&&(0,V.jsxs)(`div`,{className:`dialog-mode-hint`,children:[`Translating `,i.length,` selected file`,i.length>1?`s`:``]}),(0,V.jsxs)(`div`,{className:`dialog-grid`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{children:`Language`}),(0,V.jsx)(`select`,{value:s,onChange:e=>c(e.target.value),children:L.map(e=>(0,V.jsxs)(`option`,{value:e,children:[K[e],` `,e]},e))})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{children:`Version`}),(0,V.jsx)(`select`,{value:l,onChange:e=>u(e.target.value),children:t.map(e=>(0,V.jsx)(`option`,{value:e,children:e},e))})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{children:`Max API calls`}),(0,V.jsx)(`input`,{type:`number`,value:d,onChange:e=>f(Number(e.target.value))})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{children:`Concurrency`}),(0,V.jsx)(`input`,{type:`number`,value:p,onChange:e=>m(Number(e.target.value))})]})]}),(0,V.jsx)(`div`,{className:`dialog-section-hdr`,children:(0,V.jsx)(`span`,{children:`Model`})}),(0,V.jsxs)(`div`,{className:`model-filters`,children:[(0,V.jsx)(`input`,{type:`text`,placeholder:`Search models...`,value:b,onChange:e=>x(e.target.value),className:`model-search-input`}),(0,V.jsxs)(`select`,{value:S,onChange:e=>C(e.target.value),children:[(0,V.jsx)(`option`,{value:`context-desc`,children:`Context β`}),(0,V.jsx)(`option`,{value:`price-asc`,children:`Price β`}),(0,V.jsx)(`option`,{value:`price-desc`,children:`Price β`}),(0,V.jsx)(`option`,{value:`name`,children:`Name A-Z`})]}),(0,V.jsxs)(`label`,{className:`model-filter-check`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked)}),`Free`]}),(0,V.jsxs)(`label`,{className:`model-filter-check`,title:`Structured JSON output β required for best translation quality`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked)}),`JSON mode`]})]}),(0,V.jsxs)(`div`,{className:`model-slider-row`,children:[(0,V.jsxs)(`span`,{className:`model-slider-label`,children:[`Context β₯ `,A===0?`any`:$(A)]}),(0,V.jsx)(`input`,{type:`range`,min:0,max:Fe.length-1,value:w,onChange:e=>T(Number(e.target.value)),className:`model-slider`})]}),(0,V.jsxs)(`div`,{className:`model-list`,children:[(0,V.jsx)(`div`,{className:`model-item${v===``?` active`:``}`,onClick:()=>y(``),children:(0,V.jsx)(`span`,{className:`model-name`,children:`Default (from .env)`})}),N&&(0,V.jsx)(`div`,{className:`model-item disabled`,children:`Loading models...`}),P.map(e=>(0,V.jsx)(Le,{m:e,mode:`single`,active:v===e.id,onClick:()=>y(e.id)},e.id)),!N&&P.length===0&&(0,V.jsx)(`div`,{className:`model-item disabled`,children:`No models match filters`})]}),(0,V.jsxs)(`div`,{className:`model-count`,children:[P.length,` model`,P.length===1?``:`s`,M?` / ${M.length} total`:``]}),R&&(0,V.jsxs)(`div`,{className:`model-info`,children:[(0,V.jsx)(`strong`,{children:R.name}),R.isFree&&(0,V.jsx)(`span`,{className:`badge-free`,children:`FREE`}),R.supportsJson&&(0,V.jsx)(`span`,{className:`badge-json`,children:`JSON`}),(0,V.jsx)(`br`,{}),`In: `,Q(R.promptPrice),`/M Β· Out:`,` `,Q(R.completionPrice),`/M Β· Ctx:`,` `,$(R.contextLength),R.maxOutput>0&&` Β· Max out: ${$(R.maxOutput)}`]}),i&&i.length>0&&(0,V.jsxs)(`div`,{className:`file-list-preview`,children:[(0,V.jsxs)(`strong`,{children:[i.length,` files selected:`]}),i.map(e=>(0,V.jsx)(`div`,{children:e},e))]}),(0,V.jsxs)(`div`,{className:`actions`,children:[(0,V.jsx)(`button`,{type:`button`,className:`btn btn-outline`,onClick:a,children:`Cancel`}),(0,V.jsx)(`button`,{type:`button`,className:`btn`,disabled:I.isPending||j&&!j.hasApiKey,onClick:()=>I.mutate(),children:I.isPending?`Starting...`:j&&!j.hasApiKey?`No API Key`:`Start Job β`})]})]})})}function Le({m:e,mode:t,active:n,onClick:r}){return(0,V.jsxs)(`div`,{className:`model-item${n?` active`:``}`,onClick:r,children:[t===`rotate`&&(0,V.jsx)(`input`,{type:`checkbox`,checked:n,readOnly:!0,className:`model-check`}),(0,V.jsxs)(`span`,{className:`model-name`,children:[e.isFree&&`π `,e.name]}),(0,V.jsxs)(`span`,{className:`model-meta`,children:[e.supportsJson?`β `:``,$(e.contextLength),` Β·`,` `,e.isFree?`Free`:`${Q(e.promptPrice)}/${Q(e.completionPrice)}`]})]})}function Re(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function ze({job:e}){let t=_(),n=G({mutationFn:()=>Z.deleteJob(e.id),onSuccess:()=>t.invalidateQueries({queryKey:[`jobs`]})}),r=e.toTranslate>0?e.translatedFiles/e.toTranslate*100:e.status===`completed`?100:0,i=``;e.toTranslate>0?(i=`${e.translatedFiles}/${e.toTranslate} translated`,e.totalFiles&&(i+=` (${e.totalFiles} total)`)):e.totalFiles>0&&(i=`scanning ${e.totalFiles} files...`),e.errorFiles>0&&(i+=` Β· ${e.errorFiles} errors`);let a=e.status===`running`;return(0,V.jsxs)(`div`,{className:`job-item`,children:[(0,V.jsxs)(`div`,{className:`hdr`,children:[(0,V.jsx)(`span`,{className:`status-badge ${e.status}`,children:e.status}),(0,V.jsxs)(`strong`,{children:[e.lang,`/`,e.version]}),e.currentFile&&(0,V.jsx)(`span`,{style:{color:`var(--fg2)`},children:e.currentFile}),(0,V.jsx)(`span`,{className:`spacer`}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-sm btn-outline`,onClick:()=>n.mutate(),children:a?`βΉ`:`π`})]}),(0,V.jsx)(`div`,{className:`progress-bar`,children:(0,V.jsx)(`div`,{className:`progress-fill`,style:{width:`${Math.min(100,r)}%`}})}),(0,V.jsxs)(`div`,{className:`job-meta`,children:[i,` Β· `,new Date(e.startedAt).toLocaleTimeString(),e.finishedAt&&` Β· done ${new Date(e.finishedAt).toLocaleTimeString()}`,e.exitCode!=null&&e.exitCode!==0&&` Β· exit ${e.exitCode}`]}),e.logLines&&e.logLines.length>0&&(0,V.jsxs)(`div`,{className:`log-viewer`,children:[(0,V.jsx)(`button`,{type:`button`,className:`log-copy`,title:`Copy logs`,onClick:()=>{navigator.clipboard.writeText(e.logLines.join(`
|
|
2
|
+
`))},children:`π`}),e.logLines.map((e,t)=>(0,V.jsx)(`div`,{className:e.includes(`stderr`)||e.includes(`rror`)?`err`:void 0,dangerouslySetInnerHTML:{__html:Re(e)}},t))]})]})}function Be(){let e=_(),t=(0,z.useRef)(new Set),{data:n=[]}=W({queryKey:[`jobs`],queryFn:Z.jobs,refetchInterval:3e3});return(0,z.useEffect)(()=>{let r=new Set(n.filter(e=>e.status===`running`).map(e=>e.id));[...t.current].filter(e=>!r.has(e)).length>0&&(e.invalidateQueries({queryKey:[`files`]}),e.invalidateQueries({queryKey:[`fileBlocks`]}),e.invalidateQueries({queryKey:[`status`]})),t.current=r},[n,e]),(0,V.jsxs)(`div`,{className:`jobs-panel`,children:[(0,V.jsx)(`h3`,{children:`Jobs`}),n.length===0?(0,V.jsx)(`span`,{style:{color:`var(--fg2)`,fontSize:`0.85rem`},children:`No jobs`}):n.map(e=>(0,V.jsx)(ze,{job:e},e.id))]})}function Ve({value:e,color:t,height:n=4}){return(0,V.jsx)(`div`,{className:`bar-bg`,style:{height:n},children:(0,V.jsx)(`div`,{className:`bar-fill`,style:{width:`${Math.min(100,e)}%`,background:t||`var(--accent)`}})})}function He({data:e,version:t,selectedLang:n,onSelect:r}){let i=e.data[t];return i?(0,V.jsx)(`div`,{className:`lang-grid`,children:e.langs.map(e=>{if(e===`en`)return(0,V.jsxs)(`div`,{className:`lang-card is-en${n===`en`?` selected`:``}`,onClick:()=>r(`en`),children:[(0,V.jsxs)(`div`,{className:`name`,children:[K.en,` en (source)`]}),(0,V.jsxs)(`div`,{className:`stats`,children:[i.enFileCount,` files`]}),(0,V.jsx)(Ve,{value:100,color:`var(--green)`})]},`en`);let t=i.langs[e];if(!t)return null;let a=t.totalNodes>0?t.translatedNodes/t.totalNodes*100:0;return(0,V.jsxs)(`div`,{className:`lang-card${n===e?` selected`:``}`,onClick:()=>r(e),children:[(0,V.jsxs)(`div`,{className:`name`,children:[K[e],` `,e]}),(0,V.jsxs)(`div`,{className:`stats`,children:[a.toFixed(1),`%`]}),(0,V.jsx)(Ve,{value:a,color:ue(a)})]},e)})}):null}function Ue(e,t,n){let r=e.split(`
|
|
3
|
+
`)[0].match(/^(#{1,6})\s+(.+)/);if(!r)return null;let i=r[2].replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[]\(#[^)]*\)/g,``).replace(/[`*[\]]/g,``).trim();return{id:`${t}-h-${n}`,level:r[1].length,text:i}}function We(e,t,n=!1){let r=[];for(let i=0;i<e.length;i++){let a=Ue(n&&e[i].translation!=null?e[i].translation:e[i].source,t,i);a&&r.push(a)}return r}function Ge({version:e,lang:t,file:n,viewMode:r,onViewMode:i,showToc:a,onToggleToc:o,showNodes:s,onToggleNodes:c,onClose:l}){let u=(0,z.useRef)(null),d=t===`en`,f=d?`en`:r,[p,m]=(0,z.useState)(null),[h,g]=(0,z.useState)(null),v=_(),y=G({mutationFn:n=>Z.deleteCache(e,t,n),onSuccess:()=>{v.invalidateQueries({queryKey:[`fileBlocks`,e,t,n]}),v.invalidateQueries({queryKey:[`files`]}),v.invalidateQueries({queryKey:[`status`]}),g(null)}});(0,z.useEffect)(()=>{if(!h)return;let e=()=>g(null);return window.addEventListener(`click`,e),()=>window.removeEventListener(`click`,e)},[h]);let{data:b}=W({queryKey:[`fileBlocks`,e,t,n],queryFn:()=>Z.fileBlocks(e,t,n)}),x=b?.blocks??[],S=f===`split`||f===`en`,C=!d&&(f===`split`||f===`lang`),w=(0,z.useMemo)(()=>We(x,`b`),[x]),T=(0,z.useMemo)(()=>We(x,`b`,!0),[x]),E=C?T:w,D=s&&x.length>0,O=(0,z.useMemo)(()=>x.filter(e=>e.md5),[x]),k=O.filter(e=>e.translation!=null).length,A=O.length;function j(e){let t=E[e];t&&document.getElementById(t.id)?.scrollIntoView({behavior:`smooth`,block:`start`})}let M=[];D&&M.push(`4.5rem`),S&&M.push(`1fr`),C&&M.push(`1fr`);let N=M.join(` `);return(0,V.jsxs)(`div`,{className:`preview-wrap`,children:[(0,V.jsxs)(`div`,{className:`preview-hdr`,children:[(0,V.jsx)(`a`,{className:`preview-filename`,href:`#`,title:`Click to open in editor`,onClick:t=>{t.preventDefault(),Pe({data:{file:`content/${e}/${n}`}})},children:n}),!d&&A>0&&(0,V.jsxs)(`span`,{className:`preview-stats`,children:[k,`/`,A,` (`,Math.round(k/A*100),`%)`]}),l&&(0,V.jsx)(`button`,{type:`button`,className:`preview-close`,onClick:l,title:`Close preview`,children:`β`}),(0,V.jsxs)(`div`,{className:`preview-toggle`,children:[!d&&(0,V.jsx)(`button`,{type:`button`,className:s?`active`:``,onClick:c,title:`Toggle MD5`,children:`#`}),!d&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{type:`button`,className:f===`split`?`active`:``,onClick:()=>i(`split`),title:`Side by side`,children:`β«`}),(0,V.jsx)(`button`,{type:`button`,className:f===`en`?`active`:``,onClick:()=>i(`en`),title:`EN only`,children:K.en}),(0,V.jsx)(`button`,{type:`button`,className:f===`lang`?`active`:``,onClick:()=>i(`lang`),title:`${t} only`,children:K[t]})]}),(0,V.jsx)(`button`,{type:`button`,className:a?`active`:``,onClick:o,title:`Toggle TOC`,children:`β°`})]})]}),(0,V.jsxs)(`div`,{className:`preview-content-area`,children:[(0,V.jsxs)(`div`,{className:`preview-body-blocks`,ref:u,children:[D&&(0,V.jsxs)(`div`,{className:`block-header`,style:{gridTemplateColumns:N},children:[(0,V.jsx)(`span`,{className:`col-hdr gutter-hdr`,children:`MD5`}),S&&(0,V.jsx)(`span`,{className:`col-hdr`,children:`EN`}),C&&(0,V.jsx)(`span`,{className:`col-hdr`,children:t})]}),x.length===0&&(0,V.jsx)(`div`,{className:`preview-loading`,children:`Loading...`}),x.map((e,t)=>{let n=!e.md5,r=n&&!e.source.trim(),i=e.md5&&e.md5===p,a=Ue(e.source,`b`,t);return(0,V.jsxs)(`div`,{id:e.md5?`block-${e.md5.slice(0,8)}`:void 0,className:`block-row${i?` block-highlight`:``}${r?` block-blank`:``}${n&&!r?` block-gap`:``}`,style:{gridTemplateColumns:N},children:[D&&(0,V.jsx)(`span`,{className:`block-gutter`,children:e.md5?(0,V.jsx)(`code`,{className:`gutter-md5 ${e.translation==null?`miss`:`done`}`,title:`${e.type} Β· ${e.md5}`,children:e.md5.slice(0,6)}):r?(0,V.jsx)(`span`,{className:`gutter-blank`}):(0,V.jsx)(`span`,{className:`gutter-gap`,children:e.type})}),S&&(0,V.jsx)(`pre`,{className:`block-cell${a?` block-heading`:``}`,id:a?.id,children:e.source}),C&&(0,V.jsx)(`pre`,{className:`block-cell${a?` block-heading`:``}${e.md5&&e.translation==null?` block-missing`:``}`,onContextMenu:t=>{!e.md5||d||(t.preventDefault(),g({x:t.clientX,y:t.clientY,md5:e.md5,type:e.type}))},children:e.translation==null?e.source:e.translation})]},t)})]}),a&&E.length>0&&(0,V.jsxs)(`div`,{className:`preview-toc`,children:[(0,V.jsx)(`div`,{className:`preview-toc-title`,children:`On this page`}),E.map((e,t)=>(0,V.jsx)(`a`,{href:`#${e.id}`,className:`h${e.level}`,onClick:e=>{e.preventDefault(),j(t)},children:e.text},e.id))]})]}),h&&(0,V.jsxs)(`div`,{className:`ctx-menu`,style:{left:h.x,top:h.y},onClick:e=>e.stopPropagation(),children:[(0,V.jsxs)(`div`,{className:`ctx-menu-header`,children:[(0,V.jsxs)(`code`,{children:[h.md5.slice(0,12),`β¦`]}),(0,V.jsx)(`span`,{className:`ctx-menu-type`,children:h.type})]}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(h.md5),g(null)},children:`π Copy MD5`}),(0,V.jsx)(`button`,{type:`button`,className:`ctx-menu-danger`,onClick:()=>y.mutate(h.md5),children:`ποΈ Delete cache`})]})]})}function Ke(e){if(!e.some(e=>e.includes(`/`)))return{projects:[{id:`_default`,versions:e}],isMultiProject:!1};let t=new Map;for(let n of e){let e=n.indexOf(`/`),r=e>=0?n.slice(0,e):`_default`,i=e>=0?n.slice(e+1):n;t.has(r)||t.set(r,[]),t.get(r).push(i)}return{projects:Array.from(t.entries()).map(([e,t])=>({id:e,versions:t})),isMultiProject:!0}}function qe(){let e=S.useSearch(),t=c({from:`/`}),n=e.lang||null,r=e.file||null,i=e.files!==`0`,a=e.view||`lang`,o=e.toc!==`0`,s=e.nodes===`1`,l=e.status||`all`,u=e.section||`all`,[d,f]=(0,z.useState)(()=>typeof window>`u`?`dark`:localStorage.getItem(`theme`)===`light`?`light`:`dark`),[p,m]=(0,z.useState)(null);(0,z.useEffect)(()=>{document.documentElement.dataset.theme=d},[d]),(0,z.useEffect)(()=>{if(!p)return;let e=setTimeout(()=>m(null),3e3);return()=>clearTimeout(e)},[p]);let h=(0,z.useCallback)(e=>{t({search:t=>{let n={...t};for(let[t,r]of Object.entries(e))r==null||r===``?delete n[t]:n[t]=r;return n},replace:!0})},[t]),g=(0,z.useCallback)(e=>h({project:e||void 0,v:void 0,lang:void 0,file:void 0}),[h]),_=(0,z.useCallback)(e=>h({v:e||void 0,lang:void 0,file:void 0}),[h]),v=(0,z.useCallback)(e=>h({lang:e||void 0}),[h]),y=(0,z.useCallback)(e=>h({file:e||void 0}),[h]),b=(0,z.useCallback)(e=>h({files:e?void 0:`0`}),[h]),x=(0,z.useCallback)(e=>h({view:e===`lang`?void 0:e}),[h]),C=(0,z.useCallback)(e=>h({nodes:e?`1`:void 0}),[h]),w=(0,z.useCallback)(e=>h({toc:e?void 0:`0`}),[h]),T=(0,z.useCallback)(e=>h({status:e===`all`?void 0:e}),[h]),E=(0,z.useCallback)(e=>h({section:e===`all`?void 0:e}),[h]),[D,O]=(0,z.useState)(new Set),[k,A]=(0,z.useState)(!1),[j,M]=(0,z.useState)(),{data:N}=W({queryKey:[`status`],queryFn:Z.status}),{data:P}=W({queryKey:[`version`],queryFn:Z.version,staleTime:1/0}),{projectList:F,isMultiProject:I,activeProject:L,activeVersions:R,version:B}=(0,z.useMemo)(()=>{if(!N)return{projectList:[],isMultiProject:!1,activeProject:null,activeVersions:[],version:`latest`};let t=Ke(N.versions),n=t.projects,r=t.isMultiProject,i=r&&(e.project||n[0]?.id)||null;r&&i&&!n.find(e=>e.id===i)&&(i=n[0]?.id||null);let a=r?n.find(e=>e.id===i)?.versions||[]:N.versions,o=e.v||a[0]||`latest`,s=r&&i?`${i}/${o}`:o;return{projectList:n,isMultiProject:r,activeProject:i,activeVersions:a,version:s}},[N,e.project,e.v]),ee=I&&L&&B.startsWith(`${L}/`)?B.slice(L.length+1):B,{data:H}=W({queryKey:[`files`,B,n],queryFn:()=>Z.fileCoverage(B,n),enabled:!!n}),te=(0,z.useCallback)(e=>{g(e),O(new Set)},[g]),ne=(0,z.useCallback)(e=>{_(e),O(new Set)},[_]),re=(0,z.useCallback)(e=>{v(e),O(new Set)},[v]),ie=(0,z.useCallback)(e=>{O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ae=(0,z.useCallback)(e=>O(new Set(e)),[]),oe=(0,z.useCallback)(()=>O(new Set),[]),se=(0,z.useCallback)(()=>{M([...D]),A(!0)},[D]),ce=(0,z.useCallback)(()=>{M(void 0),A(!0)},[]);return N?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`nav`,{children:[(0,V.jsxs)(`h1`,{children:[`π Translation Admin `,P?.version&&(0,V.jsxs)(`span`,{className:`version-badge`,children:[`v`,P.version]})]}),(0,V.jsx)(`span`,{className:`spacer`}),(0,V.jsx)(`button`,{type:`button`,className:`btn`,onClick:ce,children:`+ New Job`}),(0,V.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>{let e=d===`light`?`dark`:`light`;f(e),localStorage.setItem(`theme`,e)},title:`Toggle theme`,children:d===`light`?`π`:`βοΈ`})]}),(0,V.jsxs)(`div`,{className:`container`,children:[I&&(0,V.jsx)(`div`,{className:`project-tabs`,children:F.map(e=>(0,V.jsx)(`button`,{type:`button`,className:`project-tab${e.id===L?` active`:``}`,onClick:()=>te(e.id),children:e.id},e.id))}),(0,V.jsx)(`div`,{className:`tabs`,children:R.map(e=>(0,V.jsx)(`button`,{type:`button`,className:`tab${e===ee?` active`:``}`,onClick:()=>ne(e),children:e},e))}),(0,V.jsx)(He,{data:N,version:B,selectedLang:n,onSelect:re}),(0,V.jsx)(Be,{}),n&&H&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`file-panel-toolbar`,children:[(0,V.jsx)(`button`,{type:`button`,className:`btn btn-sm${i?` active`:``}`,onClick:()=>b(!i),children:i?`β Hide files`:`βΆ Show files`}),r&&(0,V.jsx)(`span`,{className:`file-panel-current`,children:r})]}),(0,V.jsxs)(`div`,{className:`file-panel${i?``:` no-list`}${r?``:` no-preview`}`,children:[i&&(0,V.jsx)(_e,{files:H,lang:n,activeFile:r,selected:D,statusFilter:l,sectionFilter:u,onStatusFilter:T,onSectionFilter:E,onSelect:y,onToggle:ie,onSelectAll:ae,onClear:oe,onTranslateSelected:se}),r&&(0,V.jsx)(Ge,{version:B,lang:n,file:r,viewMode:a,onViewMode:x,showToc:o,onToggleToc:()=>w(!o),showNodes:s,onToggleNodes:()=>C(!s),onClose:()=>y(null)})]})]})]}),p&&(0,V.jsx)(`div`,{className:`toast`,children:p}),k&&(0,V.jsx)(Ie,{langs:N.langs,versions:N.versions,defaultLang:n||void 0,defaultVersion:B,files:j,onClose:()=>A(!1),onSuccess:e=>{A(!1),m(e)}})]}):(0,V.jsx)(`div`,{className:`loading`,children:`Loading...`})}export{qe as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{box-sizing:border-box;scrollbar-width:none;margin:0;padding:0}::-webkit-scrollbar{display:none}:root{--bg:#0a0a0a;--fg:#ededed;--fg2:#888;--card:#141414;--border:#282828;--hover:#1c1c1c;--accent:#0070f3;--green:#00c853;--yellow:#ffd600;--red:#ff1744;--btn-fg:#fff;--code-fg:#ccc;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg:#f5f5f5;--fg:#1a1a1a;--fg2:#666;--card:#fff;--border:#ddd;--hover:#eaeaea;--accent:#0060df;--green:#00873e;--yellow:#b58900;--red:#d32f2f;--btn-fg:#fff;--code-fg:#333}body{font-family:var(--font);background:var(--bg);color:var(--fg);min-height:100vh}nav{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1rem 2rem;display:flex}nav h1{align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.version-badge{background:var(--accent);color:var(--bg);opacity:.8;border-radius:4px;padding:.15em .5em;font-size:.7rem;font-weight:500}.spacer{flex:1}.hidden{display:none}.loading{text-align:center;color:var(--fg2);padding:2rem}.btn{background:var(--accent);color:var(--btn-fg);cursor:pointer;border:none;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.btn:hover{opacity:.9}.btn-icon{color:var(--fg);background:0 0;padding:.35rem .5rem;font-size:1.1rem;line-height:1}.btn-icon:hover{background:var(--hover);opacity:1}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-outline{border:1px solid var(--border);color:var(--fg2);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.container{max-width:1400px;margin:0 auto;padding:1.5rem}@media (width>=1600px){.container{max-width:1800px}}@media (width>=2000px){.container{max-width:2200px}}.project-tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.project-tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;text-transform:capitalize;background:0 0;border-radius:9999px;padding:.4rem 1rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.project-tab:hover{background:var(--hover);color:var(--fg)}.project-tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.tabs{gap:.5rem;margin-bottom:1.5rem;display:flex}.tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem}.tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.lang-card{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:.5rem;padding:1rem;transition:border-color .15s}.lang-card:hover{border-color:var(--accent)}.lang-card.selected{border-color:var(--accent);background:#0070f310}.lang-card.is-en{border-style:dashed}.lang-card .name{margin-bottom:.5rem;font-size:.9rem;font-weight:600}.lang-card .stats{color:var(--fg2);font-size:.8rem}.bar-bg{background:var(--border);border-radius:2px;height:4px;margin-top:.5rem}.bar-fill{border-radius:2px;height:100%;transition:width .3s}.jobs-panel{border:1px solid var(--border);background:var(--card);border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.jobs-panel h3{margin-bottom:.75rem;font-size:.95rem}.job-item{border:1px solid var(--border);border-radius:.375rem;margin-bottom:.5rem;padding:.75rem;font-size:.85rem}.job-item .hdr{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.status-badge{border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.status-badge.running{color:var(--accent);background:#0070f320}.status-badge.completed{color:var(--green);background:#00c85320}.status-badge.failed{color:var(--red);background:#ff174420}.status-badge.cancelled{color:var(--yellow);background:#ffd60020}.job-meta{color:var(--fg2);margin-top:.25rem;font-size:.8rem}.progress-bar{background:var(--border);border-radius:2px;max-width:100%;height:3px;margin-top:.5rem;overflow:hidden}.progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.log-viewer{max-height:200px;font-family:var(--mono);color:#aaa;background:#000;border-radius:.375rem;margin-top:.5rem;padding:.75rem;font-size:.7rem;line-height:1.5;overflow-y:auto}.log-viewer .err{color:var(--red)}.file-panel-toolbar{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.file-panel-current{color:var(--fg2);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.btn-sm{padding:.25rem .6rem;font-size:.72rem}.file-panel{grid-template-columns:340px 1fr;gap:.5rem;height:calc(100vh - 70px);margin-bottom:0;display:grid}.file-panel.no-preview,.file-panel.no-list{grid-template-columns:1fr}.file-panel.no-list.no-preview{display:none}@media (width<=900px){.file-panel{grid-template-columns:1fr}}.file-list-wrap{border:1px solid var(--border);border-radius:.5rem;flex-direction:column;display:flex;overflow:hidden}.file-list-hdr{background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.file-list-hdr select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.25rem .5rem;font-size:.8rem}.file-list-body{flex:1;overflow-y:auto}.sel-bar{border-bottom:1px solid var(--border);background:#0070f310;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.file-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;padding:.375rem .75rem;font-size:.8rem;transition:background .1s;display:flex}.file-row:hover{background:var(--hover)}.file-row.active{background:#0070f315}.file-row input[type=checkbox]{cursor:pointer;margin-right:.5rem}.file-row .icon{flex-shrink:0;width:.75rem;font-size:.5rem}.file-row .path{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-row .pct{text-align:right;width:2rem;color:var(--fg2);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.65rem}.file-row .miss{color:var(--fg2);flex-shrink:0;margin-left:.25rem;font-size:.6rem}.file-row .mini-bar{background:var(--border);border-radius:1px;flex-shrink:0;width:20px;height:2px;margin-left:.25rem}.file-row .mini-fill{border-radius:2px;height:100%}.file-search{border-bottom:1px solid var(--border);padding:.35rem .5rem;position:relative}.file-search input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);border-radius:.3rem;outline:none;padding:.3rem 1.5rem .3rem .5rem;font-size:.75rem}.file-search input:focus{border-color:var(--accent)}.file-search input::placeholder{color:var(--fg2)}.file-search-clear{color:var(--fg2);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.7rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.tree-dir{color:var(--fg2);font-weight:600}.tree-dir:hover{color:var(--fg)}.tree-arrow{text-align:center;flex-shrink:0;width:1rem;font-size:.6rem}.btn-xs{border:1px solid var(--border);background:var(--bg);color:var(--fg2);cursor:pointer;border-radius:.25rem;padding:.1rem .35rem;font-size:.65rem}.btn-xs.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-wrap{border:1px solid var(--border);border-radius:.5rem;grid-template-rows:auto 1fr;height:100%;display:grid;overflow:hidden}.preview-hdr{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600;display:flex}a.preview-filename{text-overflow:ellipsis;white-space:nowrap;color:var(--blue,#58a6ff);cursor:pointer;text-decoration:none;overflow:hidden}a.preview-filename:hover{text-decoration:underline}.preview-close{width:24px;height:24px;color:var(--fg2);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.preview-close:hover{background:var(--hover);color:var(--fg)}.preview-toggle{gap:2px;margin-left:auto;display:flex}.preview-toggle button{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;padding:.2rem .5rem;font-size:.75rem;line-height:1}.preview-toggle button:first-child{border-radius:.25rem 0 0 .25rem}.preview-toggle button:last-child{border-radius:0 .25rem .25rem 0}.preview-toggle button.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.preview-toc{border-left:1px solid var(--border);padding:.5rem 0;font-size:.7rem;line-height:1.7;overflow-y:auto}.preview-toc-title{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);border-bottom:1px solid var(--border);margin-bottom:.35rem;padding:0 .5rem .35rem;font-size:.65rem;font-weight:700}.preview-toc a{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;border-radius:.25rem;padding:.1rem .5rem;text-decoration:none;display:block;overflow:hidden}.preview-toc a:hover{color:var(--accent);background:var(--hover)}.preview-toc a.h2{padding-left:.5rem}.preview-toc a.h3{padding-left:1.25rem}.preview-toc a.h4{padding-left:2rem}.preview-content-area{grid-template-columns:1fr;min-height:0;display:grid;overflow:hidden}.preview-content-area:has(.preview-toc){grid-template-columns:1fr 180px}.preview-body-blocks{background:var(--bg);overflow-y:auto}.preview-loading{text-align:center;color:var(--fg2);padding:2rem}.preview-stats{color:var(--fg2);margin-left:.5rem;font-size:.7rem;font-weight:400}.block-header{z-index:2;background:var(--card);border-bottom:1px solid var(--border);display:grid;position:sticky;top:0}.col-hdr{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);padding:.25rem .5rem;font-size:.6rem;font-weight:700}.gutter-hdr{text-align:right;border-right:1px solid var(--border);background:var(--bg2);padding-right:.4rem}.block-row{border-bottom:1px dashed color-mix(in srgb, var(--border) 50%, transparent);display:grid}.block-row:last-child{border-bottom:none}.block-blank{min-height:1.2rem;max-height:1.2rem;overflow:hidden}.block-gap{opacity:.5}.block-gap .block-gutter{opacity:1}.gutter-blank{height:.5rem;display:block}.gutter-gap{color:var(--fg2);opacity:.5;font-size:.45rem;font-family:var(--mono)}.block-gutter{text-align:right;border-right:1px solid var(--border);background:var(--bg2);-webkit-user-select:none;user-select:none;align-self:stretch;padding:.2rem .4rem .2rem 0}.gutter-md5{font-size:.55rem;font-family:var(--mono);cursor:text;-webkit-user-select:text;user-select:text}.gutter-md5.done{color:var(--green)}.gutter-md5.miss{color:var(--red);font-weight:700}.block-cell{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-fg);border-right:1px solid var(--border);margin:0;padding:.2rem .5rem;font-size:.72rem;line-height:1.6}.block-cell:last-child{border-right:none}.block-heading{color:var(--accent);font-weight:700}.block-missing{background:color-mix(in srgb, var(--bg) 95%, var(--red))}.block-highlight{background:color-mix(in srgb, var(--accent) 15%, transparent);transition:background .3s}.dialog-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--border);border-radius:.75rem;width:420px;max-width:90vw;padding:1.5rem}.dialog.dialog-wide{width:620px}.dialog-mode-toggle{border:1px solid var(--border);border-radius:.375rem;gap:0;margin-bottom:.75rem;display:flex;overflow:hidden}.dialog-mode-toggle button{color:var(--fg2);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.8rem;font-weight:600}.dialog-mode-toggle button.active{background:var(--accent);color:var(--btn-fg)}.dialog-mode-toggle.small{border:none;gap:2px;margin-bottom:0}.dialog-mode-toggle.small button{border:1px solid var(--border);border-radius:.25rem;padding:.2rem .5rem;font-size:.7rem}.dialog-mode-hint{color:var(--fg2);margin:-.5rem 0 .75rem;font-size:.7rem}.dialog-section-hdr{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:flex}.dialog-error{color:var(--red);margin-bottom:.5rem;font-size:.85rem}.dialog-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;display:grid}.model-filters{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}.model-filters select,.model-search-input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.3rem .4rem;font-size:.7rem}.model-search-input{flex:1;min-width:100px}.model-filter-check{color:var(--fg2);cursor:pointer;white-space:nowrap;align-items:center;gap:.25rem;font-size:.7rem;display:flex}.model-filter-check input{margin:0}.model-slider-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.model-slider-label{color:var(--fg2);white-space:nowrap;min-width:90px;font-size:.7rem}.model-slider{accent-color:var(--accent);flex:1;height:4px}.model-list{border:1px solid var(--border);background:var(--bg);border-radius:.375rem;max-height:200px;margin-bottom:.25rem;overflow-y:auto}.model-item{cursor:pointer;border-bottom:1px solid var(--border);color:var(--fg);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.72rem;display:flex}.model-item:last-child{border-bottom:none}.model-item:hover{background:var(--hover)}.model-item.active{background:var(--accent);color:var(--btn-fg)}.model-item.disabled{color:var(--fg2);cursor:default;justify-content:center}.model-check{pointer-events:none;flex-shrink:0;margin:0 .3rem 0 0}.model-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.model-meta{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:40%;font-size:.65rem;overflow:hidden}.model-item.active .model-meta{color:#ffffffbf}.model-count{color:var(--fg2);margin-bottom:.5rem;font-size:.65rem}.model-info{color:var(--fg2);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;margin-bottom:.75rem;padding:.5rem .6rem;font-size:.75rem}.model-info strong{color:var(--fg)}.badge-free,.badge-json{vertical-align:middle;border-radius:.2rem;margin-left:.4rem;padding:.1rem .3rem;font-size:.55rem;font-weight:700;display:inline-block}.badge-free{background:var(--green);color:#fff}.badge-json{background:var(--accent);color:#fff}.dialog h3{margin-bottom:1rem}.dialog label{color:var(--fg2);margin:.75rem 0 .25rem;font-size:.85rem;display:block}.dialog input:not([type=checkbox]):not([type=range]),.dialog select{background:var(--bg);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:.375rem;padding:.5rem;font-size:.85rem}.dialog .actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.dialog .file-list-preview{background:var(--bg);max-height:150px;color:var(--fg2);border-radius:.375rem;margin-top:.75rem;padding:.75rem;font-size:.8rem;overflow-y:auto}.toast{background:var(--accent);color:#fff;z-index:200;border-radius:.5rem;padding:.6rem 1.2rem;font-size:.85rem;font-weight:500;animation:.2s ease-out toast-in;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ctx-menu{z-index:300;background:var(--card);border:1px solid var(--border);border-radius:.5rem;min-width:160px;padding:.25rem 0;font-size:.8rem;position:fixed;box-shadow:0 4px 16px #0000004d}.ctx-menu-header{border-bottom:1px solid var(--border);color:var(--fg2);align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.65rem;display:flex}.ctx-menu-header code{font-family:var(--mono)}.ctx-menu-type{background:var(--bg);border:1px solid var(--border);border-radius:.2rem;padding:.05rem .3rem;font-size:.55rem}.ctx-menu button{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;padding:.4rem .75rem;font-size:.8rem;display:block}.ctx-menu button:hover{background:var(--hover)}.ctx-menu-danger{color:var(--red)}.ctx-menu-danger:hover{background:color-mix(in srgb, var(--red) 10%, transparent)}.log-viewer{position:relative}.log-copy{float:right;background:var(--card);border:1px solid var(--border);cursor:pointer;opacity:0;z-index:1;border-radius:.25rem;margin-right:.25rem;padding:.15rem .3rem;font-size:.7rem;transition:opacity .15s;position:sticky;top:.25rem}.log-viewer:hover .log-copy{opacity:1}.log-copy:hover{background:var(--hover)}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region \0tanstack-start-manifest:v
|
|
2
|
+
var tsrStartManifest = () => ({
|
|
3
|
+
"routes": {
|
|
4
|
+
"__root__": {
|
|
5
|
+
"filePath": "/home/runner/work/docs-i18n/docs-i18n/packages/admin/app/routes/__root.tsx",
|
|
6
|
+
"children": ["/"],
|
|
7
|
+
"preloads": ["/assets/main-Ds-UH1id.js"]
|
|
8
|
+
},
|
|
9
|
+
"/": {
|
|
10
|
+
"filePath": "/home/runner/work/docs-i18n/docs-i18n/packages/admin/app/routes/index.tsx",
|
|
11
|
+
"preloads": ["/assets/routes-C369Oboq.js"]
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"clientEntry": "/assets/main-Ds-UH1id.js"
|
|
15
|
+
});
|
|
16
|
+
//#endregion
|
|
17
|
+
export { tsrStartManifest };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { n as TSS_SERVER_FUNCTION } from "../server.js";
|
|
2
|
+
//#region ../../node_modules/.bun/@tanstack+start-server-core@1.167.2/node_modules/@tanstack/start-server-core/dist/esm/createServerRpc.js
|
|
3
|
+
var createServerRpc = (serverFnMeta, splitImportFn) => {
|
|
4
|
+
const url = "/_serverFn/" + serverFnMeta.id;
|
|
5
|
+
return Object.assign(splitImportFn, {
|
|
6
|
+
url,
|
|
7
|
+
serverFnMeta,
|
|
8
|
+
[TSS_SERVER_FUNCTION]: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { createServerRpc as t };
|