@coffer-org/web 2.3.4 → 2.3.5
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.
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{r,t as i}from"./react-vendor-BskHO5hY.js";import{r as a}from"./x-BFRg18Fi.js";import{n as o,t as s}from"./ui-vendor-EU9CHLyR.js";import{t as c}from"./Icon-xpS9YUI8.js";import{i as l,o as u,r as d,t as f}from"./ThemeSwitcher-ndhcJbiw.js";import{r as p,t as m}from"./button-Bk5xd07h.js";import{A as h,D as g,E as _,O as v,h as y,p as b}from"./api-8XMJe9yT.js";import{t as x}from"./PageBody-Y-cpiRMh.js";var S=e(t(),1),C=i(),w=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/switch.tsx`,T=S.forwardRef(({className:e,...t},n)=>(0,C.jsxDEV)(s,{ref:n,className:a(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent 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-border`,e),...t,children:(0,C.jsxDEV)(o,{className:a(`pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform`,`data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)},void 0,!1,{fileName:w,lineNumber:20,columnNumber:5},void 0)},void 0,!1,{fileName:w,lineNumber:9,columnNumber:3},void 0));T.displayName=s.displayName;var E=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/badge.tsx`,D=p(`inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-semibold transition-colors`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,destructive:`border-transparent bg-destructive text-destructive-foreground`,outline:`border-border text-text`,accent:`border-accent/30 bg-accent/15 text-accent`}},defaultVariants:{variant:`default`}});function O({className:e,variant:t,...n}){return(0,C.jsxDEV)(`div`,{className:a(D({variant:t}),e),...n},void 0,!1,{fileName:E,lineNumber:24,columnNumber:10},this)}var k=/^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;function A(e){let t=k.exec(e.trim());if(!t)return null;let n=t[4]?.split(`.`)??[];return n.some(e=>/^\d+$/.test(e)&&e.length>1&&e.startsWith(`0`))?null:{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),prerelease:n}}function j(e,t){let n=/^\d+$/.test(e),r=/^\d+$/.test(t);return n&&r?e.length===t.length?e===t?0:e>t?1:-1:e.length>t.length?1:-1:n===r?e===t?0:e>t?1:-1:n?-1:1}function M(e,t){let n=A(e),r=A(t);if(!n||!r)return!1;for(let e of[`major`,`minor`,`patch`])if(n[e]!==r[e])return n[e]>r[e];if(n.prerelease.length===0||r.prerelease.length===0)return n.prerelease.length===0&&r.prerelease.length>0;let i=Math.max(n.prerelease.length,r.prerelease.length);for(let e=0;e<i;e++){let t=n.prerelease[e],i=r.prerelease[e];if(t===void 0)return!1;if(i===void 0)return!0;let a=j(t,i);if(a!==0)return a>0}return!1}var N=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SettingsPage.tsx`,P=null,F=null;function I(e=!1){if(!e&&P)return Promise.resolve(P);if(!e&&F)return F;let t=Promise.all([y(e?{refresh:!0}:void 0),b(e?{refresh:!0}:void 0)]).then(([e,t])=>{let n={plugins:e,runtime:t};return P=n,n});return e||(F=t,t.then(()=>{F===t&&(F=null)},()=>{F===t&&(F=null)})),t}async function L(){let e=Date.now();for(;Date.now()-e<3e4;){await new Promise(e=>setTimeout(e,1e3));try{if((await fetch(`/health`)).ok)return!0}catch{}}return!1}function R(){let{t:e}=n(),{role:t}=d(),i=t===`admin`,[a,o]=(0,S.useState)(()=>P?.plugins??[]),[s,p]=(0,S.useState)(()=>P===null),[y,b]=(0,S.useState)(null),[w,E]=(0,S.useState)(!1),D=e=>y===e||y===`*`,[k,A]=(0,S.useState)(()=>P?.runtime??null),j=a.filter(e=>e.latestVersion&&M(e.latestVersion,e.installedVersion)),F=!!(k?.latestVersion&&k.installedVersion&&M(k.latestVersion,k.installedVersion)),R=j.length+ +!!F,[B,V]=(0,S.useState)(null),[H,U]=(0,S.useState)(!1),W=t=>e(`${t}.plugin.label`,{defaultValue:t}),G=t=>e(`${t}.plugin.description`,{defaultValue:``}),K=t=>e(`${t}.library.label`,{defaultValue:t}),q=(t,n)=>e(`${t}.${n}.label`,{defaultValue:n}),J={core_required:()=>e(`plugins.errors.core_required`),has_dependents:t=>e(`plugins.errors.has_dependents`,{list:t.dependents.join(`, `)}),missing_deps:t=>e(`plugins.errors.missing_deps`,{list:t.deps.join(`, `)}),unknown_plugin:()=>e(`plugins.errors.unknown_plugin`)},Y=(e=!1)=>I(e).then(({plugins:e,runtime:t})=>{o(e),A(t),p(!1)});(0,S.useEffect)(()=>{Y()},[]);async function X(){E(!0),V(null);try{await Y(!0)}catch{V(e(`plugins.updateCheckError`))}finally{E(!1)}}async function Z(t){if(!await u({title:e(`plugins.purgeTitle`),description:e(`plugins.confirmPurge`,{id:t.id}),confirmLabel:e(`plugins.purgeButton`),variant:`destructive`}))return;b(t.id),V(null);let n=await fetch(`/api/plugins/${t.id}/data`,{method:`DELETE`}),r=await n.json().catch(()=>({}));if(b(null),!n.ok){V(J[r.error]?.(r)??e(`plugins.genericError`,{code:r.error??n.status}));return}U(!0),await Y()}async function ee(t){b(t.id),V(null);let n=await _(t.id,!t.enabled);if(!n.ok){b(null),V(J[n.error]?.(n.data??{})??e(`plugins.genericError`,{code:n.error}));return}window.location.reload()}async function te(t){if(!t.latestVersion||!await u({title:e(`plugins.updateTitle`,{from:t.installedVersion,to:t.latestVersion}),description:e(`plugins.confirmUpdate`,{id:t.id,from:t.installedVersion,to:t.latestVersion}),confirmLabel:e(`plugins.updateButton`)}))return;b(t.id),V(null);let n=await v(t.id);if(!n.ok){b(null),V(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}U(!0),await L()&&window.location.reload()}async function ne(){if(R===0)return;let t=j.map(e=>`${W(e.id)}: v${e.installedVersion} → v${e.latestVersion}`);F&&t.push(`${e(`plugins.runtimeLabel`)}: v${k.installedVersion} → v${k.latestVersion}`);let n=t.join(`
|
|
2
2
|
`);if(!await u({title:e(`plugins.updateAllButton`,{count:R}),description:e(`plugins.confirmUpdateAll`,{count:R,list:n}),confirmLabel:e(`plugins.updateButton`)}))return;b(`*`),V(null);let r=await g();if(!r.ok){b(null),V(r.stderr?`${e(`plugins.updateError`)}: ${r.stderr}`:e(`plugins.genericError`,{code:r.error}));return}U(!0),await L()&&window.location.reload()}let Q=a.find(e=>e.id===`core`),$=!!(Q?.latestVersion&&M(Q.latestVersion,Q.installedVersion)),re=$||F;async function ie(){let t=[];if(Q&&$&&t.push(`${e(`core.settings.label`)}: v${Q.installedVersion} → v${Q.latestVersion}`),F&&t.push(`${e(`plugins.runtimeLabel`)}: v${k.installedVersion} → v${k.latestVersion}`),t.length===0||!await u({title:e(`plugins.updateAllButton`,{count:t.length}),description:e(`plugins.confirmUpdateAll`,{count:t.length,list:t.join(`
|
|
3
|
-
`)}),confirmLabel:e(`plugins.updateButton`)}))return;b(`*`),V(null);let n=await h();if(!n.ok){b(null),V(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}U(!0),await L()&&window.location.reload()}return(0,C.jsxDEV)(x,{children:[(0,C.jsxDEV)(`h1`,{className:`mb-6 text-2xl font-bold tracking-tight text-text`,children:e(`settings.title`)},void 0,!1,{fileName:N,lineNumber:259,columnNumber:7},this),(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.appearance`)},void 0,!1,{fileName:N,lineNumber:262,columnNumber:9},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-2`,children:[(0,C.jsxDEV)(`span`,{className:`min-w-0 flex-1 font-semibold text-text`,children:e(`theme.label`)},void 0,!1,{fileName:N,lineNumber:264,columnNumber:11},this),(0,C.jsxDEV)(`div`,{className:`w-40 shrink-0`,children:(0,C.jsxDEV)(f,{direction:`down`},void 0,!1,{fileName:N,lineNumber:266,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:265,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:263,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:261,columnNumber:7},this),(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.personalTitle`)},void 0,!1,{fileName:N,lineNumber:273,columnNumber:9},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`auth.accountTitle`)},void 0,!1,{fileName:N,lineNumber:276,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:275,columnNumber:11},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/account`,title:e(`auth.accountTitle`),"aria-label":e(`auth.accountTitle`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:280,columnNumber:15},this)},void 0,!1,{fileName:N,lineNumber:279,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:278,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:274,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:272,columnNumber:7},this),i&&(0,C.jsxDEV)(C.Fragment,{children:[(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:N,lineNumber:290,columnNumber:11},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.usersDescription`)},void 0,!1,{fileName:N,lineNumber:291,columnNumber:13},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:N,lineNumber:294,columnNumber:17},this)},void 0,!1,{fileName:N,lineNumber:293,columnNumber:15},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/users`,title:e(`settings.usersTitle`),"aria-label":e(`settings.usersTitle`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:298,columnNumber:19},this)},void 0,!1,{fileName:N,lineNumber:297,columnNumber:17},this)},void 0,!1,{fileName:N,lineNumber:296,columnNumber:15},this)]},void 0,!0,{fileName:N,lineNumber:292,columnNumber:13},this)]},void 0,!0,{fileName:N,lineNumber:289,columnNumber:11},this),(0,C.jsxDEV)(`section`,{children:[(0,C.jsxDEV)(`div`,{className:`mb-1 flex items-center gap-3`,children:[(0,C.jsxDEV)(`h2`,{className:`text-xs font-semibold tracking-wide text-muted`,children:e(`settings.componentsTitle`)},void 0,!1,{fileName:N,lineNumber:307,columnNumber:15},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null||w,onClick:X,title:e(`plugins.checkUpdates`),className:`shrink-0 border border-border`,children:[(0,C.jsxDEV)(c,{name:`lucide:refresh-cw`,size:14,className:w?`animate-spin`:void 0},void 0,!1,{fileName:N,lineNumber:317,columnNumber:17},this),e(w?`plugins.checkingUpdates`:`plugins.checkUpdates`)]},void 0,!0,{fileName:N,lineNumber:308,columnNumber:15},this),R>0&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null,onClick:ne,className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateAllButton`,{count:R})},void 0,!1,{fileName:N,lineNumber:321,columnNumber:17},this)]},void 0,!0,{fileName:N,lineNumber:306,columnNumber:13},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.componentsDescription`)},void 0,!1,{fileName:N,lineNumber:333,columnNumber:13},this),s?(0,C.jsxDEV)(`p`,{className:`text-muted`,children:e(`plugins.loading`)},void 0,!1,{fileName:N,lineNumber:336,columnNumber:15},this):(0,C.jsxDEV)(C.Fragment,{children:[H&&(0,C.jsxDEV)(`div`,{className:`mb-5 rounded-xl border border-accent/40 bg-accent/10 px-4 py-3 text-sm text-accent`,children:[e(`plugins.restartBannerBefore`),(0,C.jsxDEV)(`b`,{children:e(`plugins.restartBannerBold`)},void 0,!1,{fileName:N,lineNumber:342,columnNumber:21},this),e(`plugins.restartBannerAfter`)]},void 0,!0,{fileName:N,lineNumber:340,columnNumber:19},this),B&&(0,C.jsxDEV)(`div`,{className:`mb-5 rounded-xl border border-danger/40 bg-danger/10 px-4 py-3 text-sm text-danger`,children:B},void 0,!1,{fileName:N,lineNumber:347,columnNumber:19},this),(0,C.jsxDEV)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-card`,children:[(0,C.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 sm:flex-row sm:items-center sm:gap-4`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`core.settings.label`)},void 0,!1,{fileName:N,lineNumber:357,columnNumber:25},this),Q&&(0,C.jsxDEV)(O,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,Q.installedVersion]},void 0,!0,{fileName:N,lineNumber:359,columnNumber:27},this),re&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null,onClick:ie,title:e(`settings.systemUpdateTitle`),className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateButton`)},void 0,!1,{fileName:N,lineNumber:364,columnNumber:27},this)]},void 0,!0,{fileName:N,lineNumber:356,columnNumber:23},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:e(`settings.systemDescription`)},void 0,!1,{fileName:N,lineNumber:377,columnNumber:23},this)]},void 0,!0,{fileName:N,lineNumber:355,columnNumber:21},this),(0,C.jsxDEV)(`div`,{className:`flex w-full shrink-0 justify-end border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/core`,title:e(`core.settings.label`),"aria-label":e(`core.settings.label`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:382,columnNumber:27},this)},void 0,!1,{fileName:N,lineNumber:381,columnNumber:25},this)},void 0,!1,{fileName:N,lineNumber:380,columnNumber:23},this)},void 0,!1,{fileName:N,lineNumber:379,columnNumber:21},this)]},void 0,!0,{fileName:N,lineNumber:354,columnNumber:19},this),a.filter(e=>e.id!==`core`).map(t=>{let n=G(t.id),i=t.enabled?a.filter(e=>e.enabled&&e.id!==t.id&&e.dependsOn.includes(t.id)):[],o=i.length>0,s=o?e(`plugins.blockedByDependents`,{list:i.map(e=>W(e.id)).join(`, `)}):t.enabled?e(`plugins.switchDisable`):e(`plugins.switchEnable`),l=[t.dependsOn.length>0&&`${e(`plugins.metaDepends`)} ${t.dependsOn.map(W).join(`, `)}`,t.libraries.length>0&&`${e(`plugins.metaLibraries`)} ${t.libraries.map(K).join(`, `)}`,t.extends.length>0&&`${e(`plugins.metaExtends`)} ${t.extends.map(e=>q(t.id,e)).join(`, `)}`].filter(Boolean).join(` · `)||`—`;return(0,C.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 last:border-b-0 sm:flex-row sm:items-center sm:gap-4`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:W(t.id)},void 0,!1,{fileName:N,lineNumber:418,columnNumber:31},this),(0,C.jsxDEV)(z,{plugin:t,busy:D(t.id),onUpdate:()=>te(t)},void 0,!1,{fileName:N,lineNumber:419,columnNumber:31},this)]},void 0,!0,{fileName:N,lineNumber:417,columnNumber:29},this),n&&(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:n},void 0,!1,{fileName:N,lineNumber:421,columnNumber:45},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:l},void 0,!1,{fileName:N,lineNumber:422,columnNumber:29},this)]},void 0,!0,{fileName:N,lineNumber:416,columnNumber:27},this),(0,C.jsxDEV)(`div`,{className:`flex w-full shrink-0 items-center justify-end gap-2 border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:[t.hasSettings&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/${t.id}`,title:e(`plugins.settingsTitle`,{defaultValue:`Settings`}),"aria-label":e(`plugins.settingsTitle`,{defaultValue:`Settings`}),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:432,columnNumber:35},this)},void 0,!1,{fileName:N,lineNumber:427,columnNumber:33},this)},void 0,!1,{fileName:N,lineNumber:426,columnNumber:31},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:D(t.id),onClick:()=>Z(t),title:e(`plugins.purgeTitle`),className:`border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:e(`plugins.purgeButton`)},void 0,!1,{fileName:N,lineNumber:436,columnNumber:29},this),(0,C.jsxDEV)(`span`,{title:s,children:(0,C.jsxDEV)(T,{checked:t.enabled,disabled:D(t.id)||o,onCheckedChange:()=>ee(t),title:s},void 0,!1,{fileName:N,lineNumber:450,columnNumber:31},this)},void 0,!1,{fileName:N,lineNumber:449,columnNumber:29},this)]},void 0,!0,{fileName:N,lineNumber:424,columnNumber:27},this)]},t.id,!0,{fileName:N,lineNumber:415,columnNumber:25},this)})]},void 0,!0,{fileName:N,lineNumber:352,columnNumber:17},this)]},void 0,!0,{fileName:N,lineNumber:338,columnNumber:15},this)]},void 0,!0,{fileName:N,lineNumber:305,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:258,columnNumber:5},this)}function z({plugin:e,busy:t,onUpdate:r}){let{t:i}=n(),a=!!(e.latestVersion&&M(e.latestVersion,e.installedVersion));return(0,C.jsxDEV)(C.Fragment,{children:[(0,C.jsxDEV)(O,{variant:`secondary`,className:`text-[11px] font-medium`,children:[`v`,e.installedVersion]},void 0,!0,{fileName:N,lineNumber:484,columnNumber:7},this),a&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:t,onClick:r,title:i(`plugins.updateTitle`,{from:e.installedVersion,to:e.latestVersion}),className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:i(`plugins.updateButton`)},void 0,!1,{fileName:N,lineNumber:488,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:483,columnNumber:5},this)}export{R as SettingsPage};
|
|
3
|
+
`)}),confirmLabel:e(`plugins.updateButton`)}))return;b(`*`),V(null);let n=await h();if(!n.ok){b(null),V(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}U(!0),await L()&&window.location.reload()}return(0,C.jsxDEV)(x,{children:[(0,C.jsxDEV)(`h1`,{className:`mb-6 text-2xl font-bold tracking-tight text-text`,children:e(`settings.title`)},void 0,!1,{fileName:N,lineNumber:259,columnNumber:7},this),(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.appearance`)},void 0,!1,{fileName:N,lineNumber:262,columnNumber:9},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-2`,children:[(0,C.jsxDEV)(`span`,{className:`min-w-0 flex-1 font-semibold text-text`,children:e(`theme.label`)},void 0,!1,{fileName:N,lineNumber:264,columnNumber:11},this),(0,C.jsxDEV)(`div`,{className:`w-40 shrink-0`,children:(0,C.jsxDEV)(f,{direction:`down`},void 0,!1,{fileName:N,lineNumber:266,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:265,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:263,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:261,columnNumber:7},this),(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.personalTitle`)},void 0,!1,{fileName:N,lineNumber:273,columnNumber:9},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`auth.accountTitle`)},void 0,!1,{fileName:N,lineNumber:276,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:275,columnNumber:11},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/account`,title:e(`auth.accountTitle`),"aria-label":e(`auth.accountTitle`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:280,columnNumber:15},this)},void 0,!1,{fileName:N,lineNumber:279,columnNumber:13},this)},void 0,!1,{fileName:N,lineNumber:278,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:274,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:272,columnNumber:7},this),i&&(0,C.jsxDEV)(C.Fragment,{children:[(0,C.jsxDEV)(`section`,{className:`mb-6`,children:[(0,C.jsxDEV)(`h2`,{className:`mb-1 text-xs font-semibold tracking-wide text-muted`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:N,lineNumber:290,columnNumber:11},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.usersDescription`)},void 0,!1,{fileName:N,lineNumber:291,columnNumber:13},this),(0,C.jsxDEV)(l,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:N,lineNumber:294,columnNumber:17},this)},void 0,!1,{fileName:N,lineNumber:293,columnNumber:15},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/users`,title:e(`settings.usersTitle`),"aria-label":e(`settings.usersTitle`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:298,columnNumber:19},this)},void 0,!1,{fileName:N,lineNumber:297,columnNumber:17},this)},void 0,!1,{fileName:N,lineNumber:296,columnNumber:15},this)]},void 0,!0,{fileName:N,lineNumber:292,columnNumber:13},this)]},void 0,!0,{fileName:N,lineNumber:289,columnNumber:11},this),(0,C.jsxDEV)(`section`,{children:[(0,C.jsxDEV)(`div`,{className:`mb-1 flex items-center gap-3`,children:[(0,C.jsxDEV)(`h2`,{className:`text-xs font-semibold tracking-wide text-muted`,children:e(`settings.componentsTitle`)},void 0,!1,{fileName:N,lineNumber:307,columnNumber:15},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null||w,onClick:X,title:e(`plugins.checkUpdates`),className:`shrink-0 border border-border`,children:[(0,C.jsxDEV)(c,{name:`lucide:refresh-cw`,size:14,className:w?`animate-spin`:void 0},void 0,!1,{fileName:N,lineNumber:317,columnNumber:17},this),e(w?`plugins.checkingUpdates`:`plugins.checkUpdates`)]},void 0,!0,{fileName:N,lineNumber:308,columnNumber:15},this),R>0&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null,onClick:ne,className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateAllButton`,{count:R})},void 0,!1,{fileName:N,lineNumber:321,columnNumber:17},this)]},void 0,!0,{fileName:N,lineNumber:306,columnNumber:13},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.componentsDescription`)},void 0,!1,{fileName:N,lineNumber:333,columnNumber:13},this),s?(0,C.jsxDEV)(`p`,{className:`text-muted`,children:e(`plugins.loading`)},void 0,!1,{fileName:N,lineNumber:336,columnNumber:15},this):(0,C.jsxDEV)(C.Fragment,{children:[H&&(0,C.jsxDEV)(`div`,{className:`mb-5 rounded-xl border border-accent/40 bg-accent/10 px-4 py-3 text-sm text-accent`,children:[e(`plugins.restartBannerBefore`),(0,C.jsxDEV)(`b`,{children:e(`plugins.restartBannerBold`)},void 0,!1,{fileName:N,lineNumber:342,columnNumber:21},this),e(`plugins.restartBannerAfter`)]},void 0,!0,{fileName:N,lineNumber:340,columnNumber:19},this),B&&(0,C.jsxDEV)(`div`,{className:`mb-5 rounded-xl border border-danger/40 bg-danger/10 px-4 py-3 text-sm text-danger`,children:B},void 0,!1,{fileName:N,lineNumber:347,columnNumber:19},this),(0,C.jsxDEV)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-card`,children:[(0,C.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 sm:flex-row sm:items-center sm:gap-4`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`core.settings.label`)},void 0,!1,{fileName:N,lineNumber:357,columnNumber:25},this),Q&&(0,C.jsxDEV)(O,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,Q.installedVersion]},void 0,!0,{fileName:N,lineNumber:359,columnNumber:27},this),re&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:y!==null,onClick:ie,title:e(`settings.systemUpdateTitle`),className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateButton`)},void 0,!1,{fileName:N,lineNumber:364,columnNumber:27},this)]},void 0,!0,{fileName:N,lineNumber:356,columnNumber:23},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:e(`settings.systemDescription`)},void 0,!1,{fileName:N,lineNumber:377,columnNumber:23},this)]},void 0,!0,{fileName:N,lineNumber:355,columnNumber:21},this),(0,C.jsxDEV)(`div`,{className:`flex w-full shrink-0 justify-end border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/core`,title:e(`core.settings.label`),"aria-label":e(`core.settings.label`),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:382,columnNumber:27},this)},void 0,!1,{fileName:N,lineNumber:381,columnNumber:25},this)},void 0,!1,{fileName:N,lineNumber:380,columnNumber:23},this)},void 0,!1,{fileName:N,lineNumber:379,columnNumber:21},this)]},void 0,!0,{fileName:N,lineNumber:354,columnNumber:19},this),a.filter(e=>e.id!==`core`).map(t=>{let n=G(t.id),i=t.enabled?a.filter(e=>e.enabled&&e.id!==t.id&&e.dependsOn.includes(t.id)):[],o=i.length>0,s=o?e(`plugins.blockedByDependents`,{list:i.map(e=>W(e.id)).join(`, `)}):t.enabled?e(`plugins.switchDisable`):e(`plugins.switchEnable`),l=[t.dependsOn.length>0&&`${e(`plugins.metaDepends`)} ${t.dependsOn.map(W).join(`, `)}`,t.libraries.length>0&&`${e(`plugins.metaLibraries`)} ${t.libraries.map(K).join(`, `)}`,t.extends.length>0&&`${e(`plugins.metaExtends`)} ${t.extends.map(e=>q(t.id,e)).join(`, `)}`].filter(Boolean).join(` · `)||`—`;return(0,C.jsxDEV)(`div`,{className:`flex flex-col gap-3 border-b border-border px-4 py-3 last:border-b-0 sm:flex-row sm:items-center sm:gap-4`,children:[(0,C.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,C.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,C.jsxDEV)(`span`,{className:`font-semibold text-text`,children:W(t.id)},void 0,!1,{fileName:N,lineNumber:418,columnNumber:31},this),(0,C.jsxDEV)(z,{plugin:t,busy:D(t.id),onUpdate:()=>te(t)},void 0,!1,{fileName:N,lineNumber:419,columnNumber:31},this)]},void 0,!0,{fileName:N,lineNumber:417,columnNumber:29},this),n&&(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:n},void 0,!1,{fileName:N,lineNumber:421,columnNumber:45},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:l},void 0,!1,{fileName:N,lineNumber:422,columnNumber:29},this)]},void 0,!0,{fileName:N,lineNumber:416,columnNumber:27},this),(0,C.jsxDEV)(`div`,{className:`flex w-full shrink-0 items-center justify-end gap-2 border-t border-border pt-3 sm:w-auto sm:border-t-0 sm:pt-0`,children:[t.hasSettings&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,className:`border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/${t.id}`,title:e(`plugins.settingsTitle`,{defaultValue:`Settings`}),"aria-label":e(`plugins.settingsTitle`,{defaultValue:`Settings`}),children:(0,C.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:N,lineNumber:432,columnNumber:35},this)},void 0,!1,{fileName:N,lineNumber:427,columnNumber:33},this)},void 0,!1,{fileName:N,lineNumber:426,columnNumber:31},this),(0,C.jsxDEV)(m,{variant:`ghost`,size:`iconSm`,type:`button`,disabled:D(t.id),onClick:()=>Z(t),title:e(`plugins.purgeTitle`),"aria-label":e(`plugins.purgeTitle`),className:`border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:(0,C.jsxDEV)(c,{name:`lucide:trash-2`,size:16},void 0,!1,{fileName:N,lineNumber:446,columnNumber:31},this)},void 0,!1,{fileName:N,lineNumber:436,columnNumber:29},this),(0,C.jsxDEV)(`span`,{title:s,children:(0,C.jsxDEV)(T,{checked:t.enabled,disabled:D(t.id)||o,onCheckedChange:()=>ee(t),title:s},void 0,!1,{fileName:N,lineNumber:451,columnNumber:31},this)},void 0,!1,{fileName:N,lineNumber:450,columnNumber:29},this)]},void 0,!0,{fileName:N,lineNumber:424,columnNumber:27},this)]},t.id,!0,{fileName:N,lineNumber:415,columnNumber:25},this)})]},void 0,!0,{fileName:N,lineNumber:352,columnNumber:17},this)]},void 0,!0,{fileName:N,lineNumber:338,columnNumber:15},this)]},void 0,!0,{fileName:N,lineNumber:305,columnNumber:11},this)]},void 0,!0,{fileName:N,lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:258,columnNumber:5},this)}function z({plugin:e,busy:t,onUpdate:r}){let{t:i}=n(),a=!!(e.latestVersion&&M(e.latestVersion,e.installedVersion));return(0,C.jsxDEV)(C.Fragment,{children:[(0,C.jsxDEV)(O,{variant:`secondary`,className:`text-[11px] font-medium`,children:[`v`,e.installedVersion]},void 0,!0,{fileName:N,lineNumber:485,columnNumber:7},this),a&&(0,C.jsxDEV)(m,{variant:`ghost`,size:`sm`,type:`button`,disabled:t,onClick:r,title:i(`plugins.updateTitle`,{from:e.installedVersion,to:e.latestVersion}),className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:i(`plugins.updateButton`)},void 0,!1,{fileName:N,lineNumber:489,columnNumber:9},this)]},void 0,!0,{fileName:N,lineNumber:484,columnNumber:5},this)}export{R as SettingsPage};
|