@coffer-org/web 2.4.4 → 2.5.0

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,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatWidget-DS8hrJDU.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/x-BFRg18Fi.js","assets/clsx-CjueKrWZ.js","assets/icons-DBHj1PyA.js","assets/use-media-query-BED2JoBm.js","assets/upload-eoIHAc6j.js","assets/square-CiErsTOS.js","assets/src-CuZmkqRm.js","assets/fields-BbsbCIvX.js","assets/plugin-ui-CKd6q8ec.js","assets/api-DsJ6cAbe.js","assets/dialog-DqWXrq6M.js","assets/ui-vendor-EU9CHLyR.js","assets/development-olQNibq5.js","assets/micromark-extension-gfm-BUw6_ZLT.js","assets/space-separated-tokens-IJiqTQpk.js","assets/lib-Du7RHLba.js","assets/lib-sYoE14fC.js","assets/lib-B13BbhLB.js"])))=>i.map(i=>d[i]);
2
- import{f as e}from"./react-vendor-BskHO5hY.js";import"./src-CuZmkqRm.js";import{n as t}from"./plugin-ui-CKd6q8ec.js";var n=t({slots:[{slot:`overlay`,id:`webchat`,load:()=>e(()=>import(`./ChatWidget-DS8hrJDU.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))}]});export{n as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatWidget-BJkTiD5X.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/x-BFRg18Fi.js","assets/clsx-CjueKrWZ.js","assets/icons-DBHj1PyA.js","assets/use-media-query-BED2JoBm.js","assets/upload-eoIHAc6j.js","assets/square-CiErsTOS.js","assets/src-CuZmkqRm.js","assets/fields-BbsbCIvX.js","assets/plugin-ui-CKd6q8ec.js","assets/api-DsJ6cAbe.js","assets/dialog-DqWXrq6M.js","assets/ui-vendor-EU9CHLyR.js","assets/development-olQNibq5.js","assets/micromark-extension-gfm-BUw6_ZLT.js","assets/space-separated-tokens-IJiqTQpk.js","assets/lib-Du7RHLba.js","assets/lib-sYoE14fC.js","assets/lib-B13BbhLB.js"])))=>i.map(i=>d[i]);
2
+ import{f as e}from"./react-vendor-BskHO5hY.js";import"./src-CuZmkqRm.js";import{n as t}from"./plugin-ui-CKd6q8ec.js";var n=t({slots:[{slot:`overlay`,id:`webchat`,load:()=>e(()=>import(`./ChatWidget-BJkTiD5X.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))}]});export{n as default};
package/dist/index.html CHANGED
@@ -38,7 +38,7 @@
38
38
  }
39
39
  }
40
40
  </script>
41
- <script type="module" crossorigin src="/assets/index-CMNJZ7He.js"></script>
41
+ <script type="module" crossorigin src="/assets/index-CmI8m2DN.js"></script>
42
42
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
43
43
  <link rel="modulepreload" crossorigin href="/assets/i18n-vendor-T6EnJ_TL.js">
44
44
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-BskHO5hY.js">
@@ -57,11 +57,12 @@
57
57
  <link rel="modulepreload" crossorigin href="/assets/field-frame-DRn_YTLz.js">
58
58
  <link rel="modulepreload" crossorigin href="/assets/extend-CK_8aGP-.js">
59
59
  <link rel="modulepreload" crossorigin href="/assets/plugin-q1oOYqt7.js">
60
+ <link rel="modulepreload" crossorigin href="/assets/api-DsJ6cAbe.js">
60
61
  <link rel="modulepreload" crossorigin href="/assets/development-olQNibq5.js">
61
62
  <link rel="modulepreload" crossorigin href="/assets/micromark-extension-gfm-BUw6_ZLT.js">
62
- <link rel="modulepreload" crossorigin href="/assets/Toolbar-DUr-2MNa.js">
63
+ <link rel="modulepreload" crossorigin href="/assets/Toolbar-tBn9ARi5.js">
63
64
  <link rel="modulepreload" crossorigin href="/assets/PageBody-Y-cpiRMh.js">
64
- <link rel="modulepreload" crossorigin href="/assets/SettingsForm-BJ5eWiRG.js">
65
+ <link rel="modulepreload" crossorigin href="/assets/SettingsForm-DhXLCpGR.js">
65
66
  <link rel="modulepreload" crossorigin href="/assets/input-group-DnBGkT_z.js">
66
67
  <link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-CiNt5Y3V.js">
67
68
  <link rel="modulepreload" crossorigin href="/assets/dialog-DqWXrq6M.js">
@@ -75,7 +76,6 @@
75
76
  <link rel="modulepreload" crossorigin href="/assets/purify.es-sLXpNpJ5.js">
76
77
  <link rel="modulepreload" crossorigin href="/assets/combobox-Bo_yQsV-.js">
77
78
  <link rel="modulepreload" crossorigin href="/assets/countries-BlKrWFMP.js">
78
- <link rel="modulepreload" crossorigin href="/assets/api-DsJ6cAbe.js">
79
79
  <link rel="modulepreload" crossorigin href="/assets/dispatch-BR6ES1YV.js">
80
80
  <link rel="modulepreload" crossorigin href="/assets/space-separated-tokens-IJiqTQpk.js">
81
81
  <link rel="modulepreload" crossorigin href="/assets/lib-BJGpevNH.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffer-org/web",
3
- "version": "2.4.4",
3
+ "version": "2.5.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=24"
@@ -1,3 +0,0 @@
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-wZ-Cwtc3.js";import{r as l,t as u}from"./ThemeSwitcher-BoIYJENA.js";import{t as d}from"./button-DsalTwxl.js";import{A as ee,D as f,M as p,g as m,k as h,m as g}from"./api-DsJ6cAbe.js";import{n as _,r as v}from"./auth-context-CpmpND1h.js";import{t as y}from"./PageBody-Y-cpiRMh.js";import{n as b,t as x}from"./version-BgluE_nc.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/app/SettingsPage.tsx`,D=null,O=null;function te(e=!1){if(!e&&D)return Promise.resolve(D);if(!e&&O)return O;let t=Promise.all([m(e?{refresh:!0}:void 0),g(e?{refresh:!0}:void 0)]).then(([e,t])=>{let n={plugins:e,runtime:t};return D=n,n});return e||(O=t,t.then(()=>{O===t&&(O=null)},()=>{O===t&&(O=null)})),t}async function k(){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 A(){let{t:e}=n(),{role:t}=_(),i=t===`admin`,[a,o]=(0,S.useState)(()=>D?.plugins??[]),[s,m]=(0,S.useState)(()=>D===null),[g,w]=(0,S.useState)(null),[O,A]=(0,S.useState)(!1),M=e=>g===e||g===`*`,[N,P]=(0,S.useState)(()=>D?.runtime??null),F=a.filter(e=>e.latestVersion&&x(e.latestVersion,e.installedVersion)),I=!!(N?.latestVersion&&N.installedVersion&&x(N.latestVersion,N.installedVersion)),L=F.length+ +!!I,[R,z]=(0,S.useState)(null),[B,V]=(0,S.useState)(!1),H=t=>e(`${t}.plugin.label`,{defaultValue:t}),U=t=>e(`${t}.plugin.description`,{defaultValue:``}),W=t=>e(`${t}.library.label`,{defaultValue:t}),G=(t,n)=>e(`${t}.${n}.label`,{defaultValue:n}),K={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`)},q=(e=!1)=>te(e).then(({plugins:e,runtime:t})=>{o(e),P(t),m(!1)});(0,S.useEffect)(()=>{q()},[]);async function J(){A(!0),z(null);try{await q(!0)}catch{z(e(`plugins.updateCheckError`))}finally{A(!1)}}async function Y(t){if(!await l({title:e(`plugins.purgeTitle`),description:e(`plugins.confirmPurge`,{id:t.id}),confirmLabel:e(`plugins.purgeButton`),variant:`destructive`}))return;w(t.id),z(null);let n=await fetch(`/api/plugins/${t.id}/data`,{method:`DELETE`}),r=await n.json().catch(()=>({}));if(w(null),!n.ok){z(K[r.error]?.(r)??e(`plugins.genericError`,{code:r.error??n.status}));return}V(!0),await q()}async function X(t){w(t.id),z(null);let n=await f(t.id,!t.enabled);if(!n.ok){w(null),z(K[n.error]?.(n.data??{})??e(`plugins.genericError`,{code:n.error}));return}window.location.reload()}async function Z(t){if(!t.latestVersion||!await l({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;w(t.id),z(null);let n=await ee(t.id);if(!n.ok){w(null),z(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}V(!0),await k()&&window.location.reload()}async function ne(){if(L===0)return;let t=F.map(e=>`${H(e.id)}: v${e.installedVersion} → v${e.latestVersion}`);I&&t.push(`${e(`plugins.runtimeLabel`)}: v${N.installedVersion} → v${N.latestVersion}`);let n=t.join(`
2
- `);if(!await l({title:e(`plugins.updateAllButton`,{count:L}),description:e(`plugins.confirmUpdateAll`,{count:L,list:n}),confirmLabel:e(`plugins.updateButton`)}))return;w(`*`),z(null);let r=await h();if(!r.ok){w(null),z(r.stderr?`${e(`plugins.updateError`)}: ${r.stderr}`:e(`plugins.genericError`,{code:r.error}));return}V(!0),await k()&&window.location.reload()}let Q=a.find(e=>e.id===`core`),$=!!(Q?.latestVersion&&x(Q.latestVersion,Q.installedVersion)),re=$||I;async function ie(){let t=[];if(Q&&$&&t.push(`${e(`core.settings.label`)}: v${Q.installedVersion} → v${Q.latestVersion}`),I&&t.push(`${e(`plugins.runtimeLabel`)}: v${N.installedVersion} → v${N.latestVersion}`),t.length===0||!await l({title:e(`plugins.updateAllButton`,{count:t.length}),description:e(`plugins.confirmUpdateAll`,{count:t.length,list:t.join(`
3
- `)}),confirmLabel:e(`plugins.updateButton`)}))return;w(`*`),z(null);let n=await p();if(!n.ok){w(null),z(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}V(!0),await k()&&window.location.reload()}return(0,C.jsxDEV)(y,{children:[(0,C.jsxDEV)(`h1`,{className:`mb-6 text-2xl font-bold tracking-tight text-text`,children:e(`settings.title`)},void 0,!1,{fileName:E,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:E,lineNumber:262,columnNumber:9},this),(0,C.jsxDEV)(v,{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:E,lineNumber:264,columnNumber:11},this),(0,C.jsxDEV)(`div`,{className:`w-40 max-w-[45vw] shrink-0`,children:(0,C.jsxDEV)(u,{direction:`down`},void 0,!1,{fileName:E,lineNumber:266,columnNumber:13},this)},void 0,!1,{fileName:E,lineNumber:265,columnNumber:11},this)]},void 0,!0,{fileName:E,lineNumber:263,columnNumber:9},this)]},void 0,!0,{fileName:E,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:E,lineNumber:273,columnNumber:9},this),(0,C.jsxDEV)(v,{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:E,lineNumber:276,columnNumber:13},this)},void 0,!1,{fileName:E,lineNumber:275,columnNumber:11},this),(0,C.jsxDEV)(d,{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:E,lineNumber:280,columnNumber:15},this)},void 0,!1,{fileName:E,lineNumber:279,columnNumber:13},this)},void 0,!1,{fileName:E,lineNumber:278,columnNumber:11},this)]},void 0,!0,{fileName:E,lineNumber:274,columnNumber:9},this)]},void 0,!0,{fileName:E,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:E,lineNumber:290,columnNumber:11},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.usersDescription`)},void 0,!1,{fileName:E,lineNumber:291,columnNumber:13},this),(0,C.jsxDEV)(v,{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:E,lineNumber:294,columnNumber:17},this)},void 0,!1,{fileName:E,lineNumber:293,columnNumber:15},this),(0,C.jsxDEV)(d,{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:E,lineNumber:298,columnNumber:19},this)},void 0,!1,{fileName:E,lineNumber:297,columnNumber:17},this)},void 0,!1,{fileName:E,lineNumber:296,columnNumber:15},this)]},void 0,!0,{fileName:E,lineNumber:292,columnNumber:13},this)]},void 0,!0,{fileName:E,lineNumber:289,columnNumber:11},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.diagnosticsTitle`)},void 0,!1,{fileName:E,lineNumber:305,columnNumber:13},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.diagnosticsDescription`)},void 0,!1,{fileName:E,lineNumber:306,columnNumber:13},this),(0,C.jsxDEV)(v,{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(`diagnostics.title`)},void 0,!1,{fileName:E,lineNumber:309,columnNumber:17},this)},void 0,!1,{fileName:E,lineNumber:308,columnNumber:15},this),(0,C.jsxDEV)(d,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,C.jsxDEV)(r,{to:`/settings/diagnostics`,title:e(`diagnostics.title`),"aria-label":e(`diagnostics.title`),children:(0,C.jsxDEV)(c,{name:`lucide:activity`,size:16},void 0,!1,{fileName:E,lineNumber:313,columnNumber:19},this)},void 0,!1,{fileName:E,lineNumber:312,columnNumber:17},this)},void 0,!1,{fileName:E,lineNumber:311,columnNumber:15},this)]},void 0,!0,{fileName:E,lineNumber:307,columnNumber:13},this)]},void 0,!0,{fileName:E,lineNumber:304,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:E,lineNumber:322,columnNumber:15},this),(0,C.jsxDEV)(d,{variant:`ghost`,size:`sm`,type:`button`,disabled:g!==null||O,onClick:J,title:e(`plugins.checkUpdates`),className:`shrink-0 border border-border`,children:[(0,C.jsxDEV)(c,{name:`lucide:refresh-cw`,size:14,className:O?`animate-spin`:void 0},void 0,!1,{fileName:E,lineNumber:332,columnNumber:17},this),e(O?`plugins.checkingUpdates`:`plugins.checkUpdates`)]},void 0,!0,{fileName:E,lineNumber:323,columnNumber:15},this),L>0&&(0,C.jsxDEV)(d,{variant:`ghost`,size:`sm`,type:`button`,disabled:g!==null,onClick:ne,className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateAllButton`,{count:L})},void 0,!1,{fileName:E,lineNumber:336,columnNumber:17},this)]},void 0,!0,{fileName:E,lineNumber:321,columnNumber:13},this),(0,C.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.componentsDescription`)},void 0,!1,{fileName:E,lineNumber:348,columnNumber:13},this),s?(0,C.jsxDEV)(`p`,{className:`text-muted`,children:e(`plugins.loading`)},void 0,!1,{fileName:E,lineNumber:351,columnNumber:15},this):(0,C.jsxDEV)(C.Fragment,{children:[B&&(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:E,lineNumber:357,columnNumber:21},this),e(`plugins.restartBannerAfter`)]},void 0,!0,{fileName:E,lineNumber:355,columnNumber:19},this),R&&(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:R},void 0,!1,{fileName:E,lineNumber:362,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:E,lineNumber:372,columnNumber:25},this),Q&&(0,C.jsxDEV)(b,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,Q.installedVersion]},void 0,!0,{fileName:E,lineNumber:374,columnNumber:27},this),re&&(0,C.jsxDEV)(d,{variant:`ghost`,size:`sm`,type:`button`,disabled:g!==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:E,lineNumber:379,columnNumber:27},this)]},void 0,!0,{fileName:E,lineNumber:371,columnNumber:23},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:e(`settings.systemDescription`)},void 0,!1,{fileName:E,lineNumber:392,columnNumber:23},this)]},void 0,!0,{fileName:E,lineNumber:370,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)(d,{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:E,lineNumber:397,columnNumber:27},this)},void 0,!1,{fileName:E,lineNumber:396,columnNumber:25},this)},void 0,!1,{fileName:E,lineNumber:395,columnNumber:23},this)},void 0,!1,{fileName:E,lineNumber:394,columnNumber:21},this)]},void 0,!0,{fileName:E,lineNumber:369,columnNumber:19},this),a.filter(e=>e.id!==`core`).map(t=>{let n=U(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=>H(e.id)).join(`, `)}):t.enabled?e(`plugins.switchDisable`):e(`plugins.switchEnable`),l=[t.dependsOn.length>0&&`${e(`plugins.metaDepends`)} ${t.dependsOn.map(H).join(`, `)}`,t.libraries.length>0&&`${e(`plugins.metaLibraries`)} ${t.libraries.map(W).join(`, `)}`,t.extends.length>0&&`${e(`plugins.metaExtends`)} ${t.extends.map(e=>G(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:H(t.id)},void 0,!1,{fileName:E,lineNumber:433,columnNumber:31},this),(0,C.jsxDEV)(j,{plugin:t,busy:M(t.id),onUpdate:()=>Z(t)},void 0,!1,{fileName:E,lineNumber:434,columnNumber:31},this)]},void 0,!0,{fileName:E,lineNumber:432,columnNumber:29},this),n&&(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:n},void 0,!1,{fileName:E,lineNumber:436,columnNumber:45},this),(0,C.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:l},void 0,!1,{fileName:E,lineNumber:437,columnNumber:29},this)]},void 0,!0,{fileName:E,lineNumber:431,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)(d,{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:E,lineNumber:447,columnNumber:35},this)},void 0,!1,{fileName:E,lineNumber:442,columnNumber:33},this)},void 0,!1,{fileName:E,lineNumber:441,columnNumber:31},this),(0,C.jsxDEV)(d,{variant:`ghost`,size:`iconSm`,type:`button`,disabled:M(t.id),onClick:()=>Y(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:E,lineNumber:461,columnNumber:31},this)},void 0,!1,{fileName:E,lineNumber:451,columnNumber:29},this),(0,C.jsxDEV)(`span`,{title:s,children:(0,C.jsxDEV)(T,{checked:t.enabled,disabled:M(t.id)||o,onCheckedChange:()=>X(t),title:s},void 0,!1,{fileName:E,lineNumber:466,columnNumber:31},this)},void 0,!1,{fileName:E,lineNumber:465,columnNumber:29},this)]},void 0,!0,{fileName:E,lineNumber:439,columnNumber:27},this)]},t.id,!0,{fileName:E,lineNumber:430,columnNumber:25},this)})]},void 0,!0,{fileName:E,lineNumber:367,columnNumber:17},this)]},void 0,!0,{fileName:E,lineNumber:353,columnNumber:15},this)]},void 0,!0,{fileName:E,lineNumber:320,columnNumber:11},this)]},void 0,!0,{fileName:E,lineNumber:287,columnNumber:9},this)]},void 0,!0,{fileName:E,lineNumber:258,columnNumber:5},this)}function j({plugin:e,busy:t,onUpdate:r}){let{t:i}=n(),a=!!(e.latestVersion&&x(e.latestVersion,e.installedVersion));return(0,C.jsxDEV)(C.Fragment,{children:[(0,C.jsxDEV)(b,{variant:`secondary`,className:`text-[11px] font-medium`,children:[`v`,e.installedVersion]},void 0,!0,{fileName:E,lineNumber:500,columnNumber:7},this),a&&(0,C.jsxDEV)(d,{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:E,lineNumber:504,columnNumber:9},this)]},void 0,!0,{fileName:E,lineNumber:499,columnNumber:5},this)}export{A as SettingsPage};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{t as r}from"./react-vendor-BskHO5hY.js";import{n as i}from"./x-BFRg18Fi.js";import{c as a,d as o,p as s,u as c}from"./chrome-izijxuBU.js";import{T as l,d as u,f as d,g as f,h as p,l as m,n as h,o as g,p as _,s as v}from"./fields-BbsbCIvX.js";import{o as y,v as b}from"./shelf-DPQYW8n7.js";import{n as x,o as S,t as C}from"./src-CuZmkqRm.js";import{i as ee,n as te,r as ne}from"./field-frame-DRn_YTLz.js";import{n as re}from"./extend-CK_8aGP-.js";import{t as ie}from"./plugin-q1oOYqt7.js";import{r as ae,t as w}from"./development-olQNibq5.js";import{_ as T,a as E,b as D,g as oe,h as se,i as ce,l as O,m as le,n as ue,p as de,r as fe,t as pe,v as k,y as A}from"./micromark-extension-gfm-BUw6_ZLT.js";var me=i(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),j=e(t(),1);function he(e,t={}){let n=t.disabled??new Set,r=e.filter(e=>!n.has(e.id)),i=new Map;for(let e of r){for(let t of e.libraries??[])for(let n of t.shelves)i.set(`${n.library}/${n.shelf}`,e.id);for(let t of e.libraryShelves??[])i.set(`${t.library}/${t.shelf}`,e.id)}let a=(e,t)=>i.get(`${e}/${t}`);for(let e of r)for(let t of e.dependsOn)if(n.has(t))throw Error(`[plugin] '${e.id}' is enabled, but its dependency '${t}' is disabled`);let{order:o,libraries:s,shelves:c,extends_:l}=ie(r),u=new Map;for(let e of r)for(let t of e.fieldContribs??[]){let e=`${t.library}/${t.shelf}/${t.field}`,n=u.get(e)??{options:[],suggestions:[]};t.options&&n.options.push(...t.options),t.suggestions&&n.suggestions.push(...t.suggestions),u.set(e,n)}let d=(e,t)=>{if(t.options.length){let n=new Set((e.options??[]).map(e=>e.value));e.options=[...e.options??[],...t.options.filter(e=>!n.has(e.value))]}if(t.suggestions.length){let n=e.hints.suggestions??[],r=new Set(n);e.hints.suggestions=[...n,...t.suggestions.filter(e=>!r.has(e))]}},f=new Map;for(let e of r)for(let t of e.optionLists??[])f.set(t.name,t.options);let p=e=>f.get(e)??[];for(let e of c)for(let[t,n]of y(e.fields)){let r=u.get(`${e.library}/${e.shelf}/${t}`);r&&d(n,r)}for(let e of r)for(let[t,n]of e.settings?y(e.settings.fields):[]){let r=u.get(`_settings/${e.id}/${t}`);r&&(d(n,r),n.prim===`select`&&n.options?.length&&h(n,n.options.map(e=>e.value)))}let m=new Map;for(let e of c)for(let[t,n]of y(e.fields)){let r=n.hints.source,i=n.options??[],a=r?f.get(r)??[]:[],o=new Set(i.map(e=>e.value)),s=[...i,...a.filter(e=>!o.has(e.value))];n.prim===`select`&&s.length&&h(n,s.map(e=>e.value)),s.length&&(n.options=s,m.set(`${e.library}/${e.shelf}/${t}`,s))}return{order:o,libraries:s,shelves:c,extends_:l,getShelf:(e,t)=>c.find(n=>n.library===e&&n.shelf===t),getLibrary:e=>s.find(t=>t.meta.id===e),getExtendsFor:(e,t)=>l.filter(n=>re(n,e,t)),getFieldOptions:(e,t,n)=>m.get(`${e}/${t}/${n}`)??[],getOptionList:p,getShelfOwner:a}}var M=null;function N(e){M=he(e)}function P(){if(!M)throw Error(`[registry] not initialized — call initRegistry() in the boot loader`);return M}var ge=(e,t)=>P().getShelf(e,t),_e=(e,t)=>P().getExtendsFor(e,t),ve=e=>P().getOptionList(e),ye=(e,t)=>P().getShelfOwner(e,t),be=()=>P().libraries,xe=()=>P().shelves,Se=()=>P().extends_,Ce=()=>P().order,F=r(),I=(0,j.createContext)(()=>void 0),we=()=>(0,j.useContext)(I),Te=e=>e.join(`.`);function L(e){return(t,n)=>t===`pattern`&&n?.messageKey?e(String(n.messageKey)):e(`validation.${t}`,n)}function Ee(e,t){let n={};for(let r of e){let e=Te(r.path?.length?r.path:[r.field]);n[e]||(n[e]=t(r.code,r.params))}return n}function De(e,t){let n={};for(let[r,i]of Object.entries(e))r===t||r.startsWith(t+`.`)||(n[r]=i);return n}var Oe=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/computed-ctx.tsx`,R={settings:{},global:{}},z=(0,j.createContext)(R),ke=()=>(0,j.useContext)(z);function Ae(e,t){return{record:e.values??{},settings:t.settings,global:t.global,meta:{library:e.recordCtx.library,shelf:e.recordCtx.shelf}}}async function B(e){let t=await fetch(`/api/plugins/${e}/settings`);return t.ok?await t.json():{}}function je({library:e,shelf:t,children:n}){let[r,i]=(0,j.useState)(R),a=ye(e,t);return(0,j.useEffect)(()=>{let e=!0;return Promise.all([a?B(a):Promise.resolve({}),B(`core`)]).then(([t,n])=>{e&&i({settings:t,global:n})}),()=>{e=!1}},[a]),(0,F.jsxDEV)(z.Provider,{value:r,children:n},void 0,!1,{fileName:Oe,lineNumber:57,columnNumber:10},this)}var Me={}.hasOwnProperty,Ne=/^(https?|ircs?|mailto|xmpp)$/i,Pe=/^https?$/i;function V(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=oe([{enter:{blockQuote:ce,codeFenced:me,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:M,codeText:J,content:Oe,definition:I,definitionDestinationString:Te,definitionLabelString:h,definitionTitleString:h,emphasis:K,htmlFlow:U,htmlText:G,image:P,label:h,link:ge,listItemMarker:ne,listItemValue:te,listOrdered:C,listUnordered:ee,paragraph:fe,reference:h,resource:be,resourceDestinationString:xe,resourceTitleString:h,setextHeading:z,strong:q},exit:{atxHeading:Ae,atxHeadingSequence:R,autolinkEmail:Be,autolinkProtocol:ze,blockQuote:ue,characterEscapeValue:V,characterReferenceMarkerHexadecimal:Z,characterReferenceMarkerNumeric:Z,characterReferenceValue:Q,codeFenced:N,codeFencedFence:he,codeFencedFenceInfo:j,codeFencedFenceMeta:S,codeFlowValue:Ie,codeIndented:N,codeText:Y,codeTextData:V,data:V,definition:De,definitionDestinationString:L,definitionLabelString:we,definitionTitleString:Ee,emphasis:X,hardBreakEscape:H,hardBreakTrailing:H,htmlFlow:W,htmlFlowData:V,htmlText:W,htmlTextData:V,image:F,label:ve,labelText:_e,lineEnding:Fe,link:F,listOrdered:re,listUnordered:ie,paragraph:pe,reference:S,referenceString:ye,resource:S,resourceDestinationString:Se,resourceTitleString:Ce,setextHeading:je,setextHeadingLineSequence:B,setextHeadingText:ke,strong:Le,thematicBreak:Re}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===k.lineEnding||e[t][1].type===k.lineEndingBlank)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===k.listOrdered||e[t][1].type===k.listUnordered)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===k.definition&&(e[t][0]===`enter`?(o=T(o,e.slice(n,t)),n=t):(a=T(a,e.slice(n,t+1)),n=t+1));a=T(a,o),a=T(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];Me.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case k.listItemPrefix:t[0]===`exit`&&(a=!0);break;case k.linePrefix:break;case k.lineEndingBlank:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){let e=i.pop();return w(e!==void 0,`Cannot resume w/o buffer`),e.join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`
2
- `)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):D.eof;n===D.lf||n===D.cr||n===D.eof||y()}function x(e){return m(`ignoreEncode`)?e:le(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function ee(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function te(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),A.numericBaseDecimal);t!==1&&_(` start="`+x(String(t))+`"`)}}function ne(){m(`expectFirstItem`)?_(`>`):E(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function re(){E(),o.pop(),y(),_(`</ol>`)}function ie(){E(),o.pop(),y(),_(`</ul>`)}function E(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function ce(){o.push(!1),b(),_(`<blockquote>`)}function ue(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function fe(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function pe(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function me(){b(),_(`<pre><code`),p(`fencesCount`,0)}function j(){_(` class="language-`+g()+`"`)}function he(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function M(){b(),_(`<pre><code>`)}function N(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function P(){a.push({image:!0}),n=void 0}function ge(){a.push({})}function _e(e){a[a.length-1].labelId=this.sliceSerialize(e)}function ve(){a[a.length-1].label=g()}function ye(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function be(){h(),a[a.length-1].destination=``}function xe(){h(),p(`ignoreEncode`,!0)}function Se(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function Ce(){a[a.length-1].title=g()}function F(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId;w(o!==void 0,"media should have `referenceId` or `labelId`"),w(i.label!==void 0,"media should have `label`");let s=i.destination===void 0?r[de(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src="`+O(s.destination,t.allowDangerousProtocol?void 0:Pe)+`" alt="`),v(i.label),_(`"`)):_(`<a href="`+O(s.destination,t.allowDangerousProtocol?void 0:Ne)+`"`),_(s.title?` title="`+s.title+`"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function I(){h(),a.push({})}function we(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function Te(){h(),p(`ignoreEncode`,!0)}function L(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function Ee(){a[a.length-1].title=g()}function De(){let e=a[a.length-1];w(e.labelId!==void 0,"media should have `labelId`");let t=de(e.labelId);g(),Me.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function Oe(){p(`slurpAllLineEndings`,!0)}function R(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function z(){h(),p(`slurpAllLineEndings`)}function ke(){p(`slurpAllLineEndings`,!0)}function Ae(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function B(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===D.equalsTo?1:2)}function je(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function V(e){v(x(this.sliceSerialize(e)))}function Fe(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function Ie(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function H(){_(`<br />`)}function U(){b(),G()}function W(){p(`ignoreEncode`)}function G(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function K(){_(`<em>`)}function q(){_(`<strong>`)}function J(){p(`inCodeText`,!0),_(`<code>`)}function Y(){p(`inCodeText`),_(`</code>`)}function X(){_(`</em>`)}function Le(){_(`</strong>`)}function Re(){b(),_(`<hr />`)}function Z(e){p(`characterReferenceType`,e.type)}function Q(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?se(t,m(`characterReferenceType`)===k.characterReferenceMarkerNumeric?A.numericBaseDecimal:A.numericBaseHexadecimal):ae(t))),p(`characterReferenceType`)}function ze(e){let n=this.sliceSerialize(e);_(`<a href="`+O(n,t.allowDangerousProtocol?void 0:Ne)+`">`),v(x(n)),_(`</a>`)}function Be(e){let t=this.sliceSerialize(e);_(`<a href="`+O(`mailto:`+t)+`">`),v(x(t)),_(`</a>`)}}function Fe(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),V(n)(ce(E(n).document().write(fe()(e,t,!0))))}var Ie=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/Markdown.tsx`;function H(e){return Fe(e,{allowDangerousHtml:!0,extensions:[pe()],htmlExtensions:[ue()]})}function U({value:e}){return(0,F.jsxDEV)(`div`,{className:`md-static`,dangerouslySetInnerHTML:{__html:H(e)}},void 0,!1,{fileName:Ie,lineNumber:19,columnNumber:10},this)}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/layout.tsx`;function G({text:e}){return(0,F.jsxDEV)(U,{value:e},void 0,!1,{fileName:W,lineNumber:29,columnNumber:10},this)}function K(e,{bridge:t,t:n,computed:r}){if(u(e)){let r=e.key;if(t.isHidden(r))return null;let i=S({kind:C(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for kind '${C(e)}'`),null;let a=e.type;return{node:(0,F.jsxDEV)(`div`,{onBlur:e=>{te(e.relatedTarget)||t.touch(r)},children:(0,F.jsxDEV)(i.Page,{el:e,field:a,fieldKey:r,value:t.getValue(r),onChange:e=>t.setValue(r,e),error:t.error(r),mode:t.mode,label:a.label?n(a.label):void 0,required:t.requiredOf(r),recordCtx:t.recordCtx},void 0,!1,{fileName:W,lineNumber:82,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:81,columnNumber:7},this),layout:x(a)}}if(p(e)){let i=S({kind:C(e)});if(!i)return console.warn(`[LayoutRenderer] no renderer for static kind '${C(e)}'`),null;let a=e.type,o=e.value;if(typeof e.value==`function`)try{o=e.value(Ae(t,r))}catch(e){console.warn(`[computed] value function threw`,e),o=void 0}return{node:(0,F.jsxDEV)(i.Page,{el:e,field:a,value:o,mode:`view`,label:a.label?n(a.label):void 0,recordCtx:t.recordCtx},void 0,!1,{fileName:W,lineNumber:116,columnNumber:7},this),layout:x(a)}}if(m(e)||_(e))return null;if(v(e)){let n=S({kind:`button`});return n?{node:(0,F.jsxDEV)(n.Page,{el:e,value:void 0,mode:t.mode,recordCtx:t.recordCtx},void 0,!1,{fileName:W,lineNumber:139,columnNumber:18},this),layout:`scalar`}:null}return null}function q(e,t,n,r=`wrap`){let i=[],a=[],o=0,s=()=>{a.length&&(i.push({kind:`flow`,items:a,scroll:r===`scroll`}),a=[])};for(let r of e){if(n){if(m(r)){s(),i.push({kind:`divider`});continue}if(_(r)){s(),i.push({kind:`block`,node:(0,F.jsxDEV)(J,{textKey:r.text},void 0,!1,{fileName:W,lineNumber:173,columnNumber:41},this)});continue}if(g(r)){s();continue}if(u(r)||p(r)||v(r)){let e=K(r,n);if(e==null)continue;if(e.layout===`block`)s(),i.push({kind:`block`,node:e.node});else{let t=u(r)?r.key:`static-${o++}`;a.push({key:t,node:(0,F.jsxDEV)(j.Fragment,{children:e.node},t,!1,{fileName:W,lineNumber:190,columnNumber:19},this)})}continue}continue}if(u(r)){let e=t.renderField(r.key,r.type);if(e==null)continue;x(r.type)===`block`?(s(),i.push({kind:`block`,node:e})):a.push({key:r.key,node:(0,F.jsxDEV)(j.Fragment,{children:e},r.key,!1,{fileName:W,lineNumber:206,columnNumber:47},this)})}else m(r)?(s(),i.push({kind:`divider`})):_(r)?(s(),i.push({kind:`block`,node:(0,F.jsxDEV)(J,{textKey:r.text},void 0,!1,{fileName:W,lineNumber:212,columnNumber:39},this)})):g(r)&&s()}return s(),i}function J({textKey:e}){let{t}=n();return(0,F.jsxDEV)(G,{text:t(e)},void 0,!1,{fileName:W,lineNumber:224,columnNumber:10},this)}function Y(e){let t=[];for(let n of e)n.kind===`divider`&&(!t.length||t[t.length-1].kind===`divider`)||t.push(n);for(;t.length&&t[t.length-1].kind===`divider`;)t.pop();return t}function X({label:e,icon:t,labelAfter:n,children:r,rail:i=!0,tone:s=`group`}){let l=(0,F.jsxDEV)(`div`,{className:`flex flex-col min-w-0 ${o}`,children:r},void 0,!1,{fileName:W,lineNumber:276,columnNumber:16},this);return(0,F.jsxDEV)(`section`,{className:`flex flex-col min-w-0 ${o}`,children:[e&&(0,F.jsxDEV)(a,{label:e,icon:t,actions:n,tone:s},void 0,!1,{fileName:W,lineNumber:281,columnNumber:17},this),i&&e?(0,F.jsxDEV)(c,{children:l},void 0,!1,{fileName:W,lineNumber:282,columnNumber:24},this):l]},void 0,!0,{fileName:W,lineNumber:278,columnNumber:5},this)}function Le({group:e,children:t}){let{t:r}=n();return(0,F.jsxDEV)(X,{label:e.label?r(e.label):void 0,icon:s(e),children:t},void 0,!1,{fileName:W,lineNumber:295,columnNumber:5},this)}function Re({group:e,children:t}){let{t:r}=n();return(0,F.jsxDEV)(`div`,{className:`flex flex-col gap-1 min-w-0`,children:[e.label&&(0,F.jsxDEV)(`span`,{className:`text-xs text-muted`,children:r(e.label)},void 0,!1,{fileName:W,lineNumber:306,columnNumber:23},this),t]},void 0,!0,{fileName:W,lineNumber:305,columnNumber:5},this)}function Z({group:e,renderCell:t}){let{t:r}=n(),i=[[]];for(let t of e.fields)g(t)?i.push([]):i[i.length-1].push(t);let a=Math.max(1,...i.map(e=>e.length)),o=!1,c=[];return i.forEach((e,n)=>{for(let r=0;r<a;r++){let i=e[r],a=i?t(i):null;a&&(o=!0),c.push((0,F.jsxDEV)(`div`,{className:`min-w-0`,children:a},`${n}-${r}`,!1,{fileName:W,lineNumber:342,columnNumber:9},this))}}),o?(0,F.jsxDEV)(ne.Provider,{value:!0,children:(0,F.jsxDEV)(X,{label:e.label?r(e.label):void 0,icon:s(e),children:(0,F.jsxDEV)(`div`,{className:`overflow-x-auto`,children:(0,F.jsxDEV)(`div`,{className:`grid gap-x-4 gap-y-2 items-start`,style:{gridTemplateColumns:`repeat(${a}, max-content)`},children:c},void 0,!1,{fileName:W,lineNumber:353,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:352,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:351,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:350,columnNumber:5},this):null}function Q(e,t){return e.filter(e=>e.kind!==`divider`).length?e.map((e,n)=>{let r=`${t}-${n}`;switch(e.kind){case`flow`:return(0,F.jsxDEV)(ee,{items:e.items,scroll:e.scroll},r,!1,{fileName:W,lineNumber:373,columnNumber:16},this);case`block`:return(0,F.jsxDEV)(j.Fragment,{children:e.node},r,!1,{fileName:W,lineNumber:375,columnNumber:16},this);case`group`:return(0,F.jsxDEV)(j.Fragment,{children:e.node},r,!1,{fileName:W,lineNumber:377,columnNumber:16},this);case`divider`:return(0,F.jsxDEV)(`hr`,{className:`border-border`},r,!1,{fileName:W,lineNumber:379,columnNumber:16},this)}}):null}function ze({items:e,ctx:t}){let{t:r}=n(),i=ke(),a=t.bridge?{bridge:t.bridge,t:r,computed:i}:void 0,s=[],c=[],l=()=>{c.length&&(s.push(...q(c,t,a)),c=[])};for(let n of e)if(d(n))if(l(),a)if(f(n)){let e=n.key,t=a.bridge.getValue(e);if(!a.bridge.isHidden(e)){let r=S({kind:C(n)});if(r){let i=(0,F.jsxDEV)(r.Page,{el:n,value:t,onChange:t=>a.bridge.setValue(e,t),error:a.bridge.error(e),mode:a.bridge.mode,recordCtx:a.bridge.recordCtx},void 0,!1,{fileName:W,lineNumber:418,columnNumber:17},this);s.push({kind:`group`,node:i})}else console.warn(`[LayoutRenderer] no renderer for storage group kind '${C(n)}'`)}}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,F.jsxDEV)(Z,{group:n,renderCell:e=>d(e)?null:K(e,a)?.node??null},void 0,!1,{fileName:W,lineNumber:437,columnNumber:15},this)});else{let e=Q(Y(q(n.fields,t,a,n.display===`scroll`?`scroll`:`wrap`)),`g`);if(e)if(n.display===`scroll`)s.push({kind:`group`,node:(0,F.jsxDEV)(Re,{group:n,children:e},void 0,!1,{fileName:W,lineNumber:451,columnNumber:49},this)});else{let t=S({kind:`group`});t?s.push({kind:`group`,node:(0,F.jsxDEV)(t.Page,{el:n,value:void 0,mode:a.bridge.mode,recordCtx:a.bridge.recordCtx,children:e},void 0,!1,{fileName:W,lineNumber:458,columnNumber:21},this)}):s.push({kind:`group`,node:(0,F.jsxDEV)(Le,{group:n,children:e},void 0,!1,{fileName:W,lineNumber:464,columnNumber:51},this)})}}else if(f(n)){let e=t.renderGroup?.(n.key,n);e&&s.push({kind:`group`,node:e})}else if(n.display===`sheet`)s.push({kind:`group`,node:(0,F.jsxDEV)(Z,{group:n,renderCell:e=>u(e)?t.renderField(e.key,e.type):null},void 0,!1,{fileName:W,lineNumber:479,columnNumber:13},this)});else{let e=Q(Y(q(n.fields,t,void 0,n.display===`scroll`?`scroll`:`wrap`)),`g`);e&&s.push({kind:`group`,node:n.display===`scroll`?(0,F.jsxDEV)(Re,{group:n,children:e},void 0,!1,{fileName:W,lineNumber:496,columnNumber:17},this):(0,F.jsxDEV)(Le,{group:n,children:e},void 0,!1,{fileName:W,lineNumber:497,columnNumber:17},this)})}else c.push(n);l();let p=Q(Y(s),`l`);return p==null?null:(0,F.jsxDEV)(`div`,{className:`@container flex flex-col min-w-0 ${o}`,children:p},void 0,!1,{fileName:W,lineNumber:510,columnNumber:10},this)}function Be(e){let{fm:t,mode:r,recordCtx:i}=e,{t:a}=n(),o=L(a),[s]=(0,j.useState)(e.initial),[c,u]=(0,j.useState)(s),[d,f]=(0,j.useState)({}),[p,m]=(0,j.useState)(()=>new Set),h=(0,j.useMemo)(()=>new Set(e.hiddenFields??[]),[e.hiddenFields]);return{values:c,setValues:u,initial:s,errors:d,setErrors:f,touched:p,setTouched:m,bridge:(0,j.useMemo)(()=>({mode:r,recordCtx:i,values:c,getValue:e=>c[e],setValue:(e,n)=>{if(u(t=>({...t,[e]:n})),p.has(e)){let r=t[e],i=r?l(r,n):null;f(t=>{let n={...t};return i?n[e]=o(i.code,i.params):delete n[e],n})}},touch:e=>{m(t=>t.has(e)?t:new Set(t).add(e));let n=t[e],r=n?l(n,c[e]):null;f(t=>{let n={...t};return r?n[e]=o(r.code,r.params):delete n[e],n})},isHidden:e=>{let n=t[e];return!!n?.virtual||h.has(e)||b(n?.hidden,c)},requiredOf:e=>b(t[e]?.required,c),error:e=>d[e]}),[c,d,p,h,t,r,i,o])}}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/Toolbar.tsx`;function Ve({children:e,actions:t}){return(0,F.jsxDEV)(`div`,{"data-toolbar":!0,className:`eink-solid sticky top-0 z-20 flex h-[52px] items-center justify-between gap-3 bg-bg/85 px-4 backdrop-blur md:px-6 border-b border-border2 shrink-0`,children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:e},void 0,!1,{fileName:$,lineNumber:10,columnNumber:7},this),t&&(0,F.jsxDEV)(`div`,{"data-toolbar-actions":!0,className:`flex items-center gap-2 shrink-0`,children:t},void 0,!1,{fileName:$,lineNumber:11,columnNumber:19},this)]},void 0,!0,{fileName:$,lineNumber:9,columnNumber:5},this)}export{ge as _,U as a,me as b,De as c,we as d,Se as f,Ce as g,ve as h,X as i,L as l,be as m,Be as n,je as o,_e as p,ze as r,I as s,Ve as t,Ee as u,xe as v,N as y};