@coffer-org/web 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +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{t as r}from"./react-vendor-BskHO5hY.js";import{n as i,r as a,t as o}from"./x-BFRg18Fi.js";import{n as s,o as c,r as ee,t as l}from"./input-group-Bmvb-qBI.js";import{$ as u,G as d,H as f,J as p,K as m,Q as h,U as g,V as _,W as v,X as y,Y as b,Z as x,et as S,q as C}from"./ui-vendor-EU9CHLyR.js";import{i as w,t as T}from"./button-D-Q6I5Ob.js";import{n as E,t as te}from"./upload-Bp-ZANIb.js";import{n as D}from"./square-CiErsTOS.js";import{t as O}from"./json-CkyL3W27.js";var k=i(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),A=i(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),j=e(t(),1),M=r(),N=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/select.tsx`,P=_,F=u,I=j.forwardRef(({className:e,children:t,...n},r)=>(0,M.jsxDEV)(h,{ref:r,className:a(`flex h-9 w-full items-center justify-between gap-2 rounded-lg border border-input bg-background px-3 py-1 text-sm text-foreground transition-colors`,`data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),...n,children:[t,(0,M.jsxDEV)(g,{asChild:!0,children:(0,M.jsxDEV)(c,{className:`h-4 w-4 opacity-60`},void 0,!1,{fileName:N,lineNumber:26,columnNumber:7},void 0)},void 0,!1,{fileName:N,lineNumber:25,columnNumber:5},void 0)]},void 0,!0,{fileName:N,lineNumber:14,columnNumber:3},void 0));I.displayName=h.displayName;var L=j.forwardRef(({className:e,...t},n)=>(0,M.jsxDEV)(y,{ref:n,className:a(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,M.jsxDEV)(k,{className:`h-4 w-4`},void 0,!1,{fileName:N,lineNumber:41,columnNumber:5},void 0)},void 0,!1,{fileName:N,lineNumber:36,columnNumber:3},void 0));L.displayName=y.displayName;var R=j.forwardRef(({className:e,...t},n)=>(0,M.jsxDEV)(b,{ref:n,className:a(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,M.jsxDEV)(c,{className:`h-4 w-4`},void 0,!1,{fileName:N,lineNumber:55,columnNumber:5},void 0)},void 0,!1,{fileName:N,lineNumber:50,columnNumber:3},void 0));R.displayName=b.displayName;var z=j.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,M.jsxDEV)(p,{children:(0,M.jsxDEV)(f,{ref:i,className:a(`relative z-50 max-h-96 min-w-32 overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,M.jsxDEV)(L,{},void 0,!1,{fileName:N,lineNumber:76,columnNumber:7},void 0),(0,M.jsxDEV)(S,{className:a(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t},void 0,!1,{fileName:N,lineNumber:77,columnNumber:7},void 0),(0,M.jsxDEV)(R,{},void 0,!1,{fileName:N,lineNumber:86,columnNumber:7},void 0)]},void 0,!0,{fileName:N,lineNumber:65,columnNumber:5},void 0)},void 0,!1,{fileName:N,lineNumber:64,columnNumber:3},void 0));z.displayName=f.displayName;var B=j.forwardRef(({className:e,...t},n)=>(0,M.jsxDEV)(C,{ref:n,className:a(`px-2 py-1.5 text-xs font-semibold text-muted-foreground`,e),...t},void 0,!1,{fileName:N,lineNumber:96,columnNumber:3},void 0));B.displayName=C.displayName;var V=j.forwardRef(({className:e,children:t,...n},r)=>(0,M.jsxDEV)(v,{ref:r,className:a(`relative flex w-full cursor-pointer select-none items-center rounded-md py-1.5 pl-8 pr-2 text-sm outline-none`,`focus:bg-elevated focus:text-text data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,M.jsxDEV)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,M.jsxDEV)(d,{children:(0,M.jsxDEV)(w,{className:`h-4 w-4 text-accent`},void 0,!1,{fileName:N,lineNumber:119,columnNumber:9},void 0)},void 0,!1,{fileName:N,lineNumber:118,columnNumber:7},void 0)},void 0,!1,{fileName:N,lineNumber:117,columnNumber:5},void 0),(0,M.jsxDEV)(m,{children:t},void 0,!1,{fileName:N,lineNumber:122,columnNumber:5},void 0)]},void 0,!0,{fileName:N,lineNumber:108,columnNumber:3},void 0));V.displayName=v.displayName;var H=j.forwardRef(({className:e,...t},n)=>(0,M.jsxDEV)(x,{ref:n,className:a(`-mx-1 my-1 h-px bg-border`,e),...t},void 0,!1,{fileName:N,lineNumber:131,columnNumber:3},void 0));H.displayName=x.displayName;var U=`inline-flex items-center gap-1.5 bg-surface text-text border border-border rounded-full px-2.5 py-0.5 text-sm`,W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/multiple-chips.tsx`,G=()=>(0,M.jsxDEV)(`span`,{className:`text-sm text-muted/50 select-none`,children:`—`},void 0,!1,{fileName:W,lineNumber:12,columnNumber:27},void 0);function K({onClick:e,className:t}){return(0,M.jsxDEV)(`button`,{type:`button`,onClick:e,"aria-label":`remove`,className:`inline-flex shrink-0 items-center text-muted transition-colors hover:text-danger ${t??``}`,children:(0,M.jsxDEV)(o,{size:13},void 0,!1,{fileName:W,lineNumber:23,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:17,columnNumber:5},this)}function q({children:e,className:t,style:n,onRemove:r}){return(0,M.jsxDEV)(`span`,{className:`${U} ${t??``}`,style:n,children:[e,r?(0,M.jsxDEV)(K,{onClick:r},void 0,!1,{fileName:W,lineNumber:44,columnNumber:9},this):(0,M.jsxDEV)(`span`,{"aria-hidden":!0,className:`invisible inline-flex shrink-0 items-center`,children:(0,M.jsxDEV)(o,{size:13},void 0,!1,{fileName:W,lineNumber:49,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:48,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:41,columnNumber:5},this)}function J({children:e}){return(0,M.jsxDEV)(`div`,{className:`flex flex-wrap gap-1.5`,children:e},void 0,!1,{fileName:W,lineNumber:58,columnNumber:10},this)}function Y({items:e,content:t,chipClassName:n,chipStyle:r,onRemove:i,editor:a,reserveEditor:o,emptyDash:s=!0}){return!e.length&&!a?s?(0,M.jsxDEV)(G,{},void 0,!1,{fileName:W,lineNumber:85,columnNumber:52},this):null:(0,M.jsxDEV)(`div`,{className:`flex flex-col gap-2 ${a?`px-2`:``}`,children:[e.length>0&&(0,M.jsxDEV)(J,{children:e.map((e,a)=>(0,M.jsxDEV)(q,{className:n?.(e,a),style:r?.(e,a),onRemove:i?()=>i(a):void 0,children:t(e,a)},a,!1,{fileName:W,lineNumber:91,columnNumber:13},this))},void 0,!1,{fileName:W,lineNumber:89,columnNumber:9},this),a,!a&&o&&e.length>0&&(0,M.jsxDEV)(`div`,{"aria-hidden":!0,className:`invisible h-9`},void 0,!1,{fileName:W,lineNumber:98,columnNumber:56},this)]},void 0,!0,{fileName:W,lineNumber:87,columnNumber:5},this)}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/shared.tsx`,Z=e=>Array.isArray(e)?e:O(e,[]);function ne({onRemove:e,className:t}){let{t:r}=n();return(0,M.jsxDEV)(T,{type:`button`,variant:`outline`,size:`iconSm`,onClick:e,title:r(`actions.delete`),"aria-hidden":!e||void 0,tabIndex:e?void 0:-1,className:`shrink-0 rounded-lg text-muted hover:border-danger hover:text-danger${e?``:` invisible`}${t?` ${t}`:``}`,children:(0,M.jsxDEV)(A,{size:14},void 0,!1,{fileName:X,lineNumber:42,columnNumber:7},this)},void 0,!1,{fileName:X,lineNumber:32,columnNumber:5},this)}function re({onClick:e,children:t,className:n}){return(0,M.jsxDEV)(T,{type:`button`,variant:`outline`,size:`sm`,onClick:e,className:`self-start border-accent/30 text-accent hover:border-accent/60 hover:text-accent2 ${n??``}`,children:[(0,M.jsxDEV)(D,{size:13},void 0,!1,{fileName:X,lineNumber:65,columnNumber:7},this),` `,t]},void 0,!0,{fileName:X,lineNumber:58,columnNumber:5},this)}function ie({accept:e,busy:t,error:r,onPick:i,compact:a}){let{t:o}=n();return(0,M.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,M.jsxDEV)(`label`,{className:`inline-flex w-fit cursor-pointer items-center gap-1.5 rounded-lg border border-accent/30 text-xs font-medium text-accent hover:border-accent/60 ${a?`px-2.5 py-1`:`px-3 py-2`} ${t?`pointer-events-none opacity-60`:``}`,children:[t?(0,M.jsxDEV)(E,{size:13,className:`animate-spin`},void 0,!1,{fileName:X,lineNumber:95,columnNumber:17},this):(0,M.jsxDEV)(te,{size:13},void 0,!1,{fileName:X,lineNumber:95,columnNumber:66},this),` `,o(`actions.upload`),(0,M.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>i(e.target.files?.[0]??null)},void 0,!1,{fileName:X,lineNumber:96,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:90,columnNumber:7},this),r&&(0,M.jsxDEV)(`span`,{className:`text-xs text-danger`,children:o(r)},void 0,!1,{fileName:X,lineNumber:104,columnNumber:17},this)]},void 0,!0,{fileName:X,lineNumber:89,columnNumber:5},this)}function ae(e,t){return e.map(e=>({value:e.value,title:t(e.title),subtitle:e.subtitle,icon:e.icon}))}function Q(e){return e>=0&&e<20?String.fromCodePoint(9312+e):String(e+1)}function oe(e,t){let n=e;if(typeof n==`string`)try{n=JSON.parse(n)}catch{n={}}let r=n&&typeof n==`object`?n:{};if(Array.isArray(r.checks)){let e=r.checks;return{text:String(r.text??``),checks:Array.from({length:t},(t,n)=>e[n]===!0)}}return{text:String(r.text??``),checks:Array.from({length:t},(e,t)=>r[`check${t}`]===!0)}}function se(e){let t={text:e.text};return e.checks.forEach((e,n)=>{t[`check${n}`]=e}),t}function ce({slots:e}){let{t}=n();if(e.length<=1||!e.some(e=>e))return null;let r=e.length>3;return(0,M.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-1.5 gap-y-0.5 text-xs text-muted`,children:e.map((e,n)=>(0,M.jsxDEV)(j.Fragment,{children:[n>0&&(0,M.jsxDEV)(`span`,{className:`opacity-40`,children:`•`},void 0,!1,{fileName:X,lineNumber:196,columnNumber:21},this),(0,M.jsxDEV)(`span`,{children:[r?`${Q(n)} `:``,e?t(e):`—`]},void 0,!0,{fileName:X,lineNumber:197,columnNumber:11},this)]},n,!0,{fileName:X,lineNumber:195,columnNumber:9},this))},void 0,!1,{fileName:X,lineNumber:193,columnNumber:5},this)}var le=e=>e>3;function ue({value:e,onChange:t,renderInput:n,validate:r,serialize:i,display:a}){let[o,c]=(0,j.useState)(()=>Z(e)),[u,d]=(0,j.useState)(``);(0,j.useEffect)(()=>{c(Z(e))},[e]);function f(e){c(e),t(e.length>0?e:``)}function p(){let e=u.trim();if(!e||r&&!r(e))return;let t=i?i(e):e;t===null||o.includes(t)||(f([...o,t]),d(``))}return(0,M.jsxDEV)(Y,{items:o,content:e=>a?a(String(e)):String(e),onRemove:e=>f(o.filter((t,n)=>n!==e)),editor:(0,M.jsxDEV)(l,{className:`[&>input]:h-auto [&>input]:rounded-none [&>input]:border-0 [&>input]:bg-transparent [&>input]:shadow-none [&>input]:focus-visible:ring-0 focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50`,children:[n(u,d,p),(0,M.jsxDEV)(s,{align:`inline-end`,children:(0,M.jsxDEV)(ee,{size:`icon-xs`,"aria-label":`add`,onClick:p,children:(0,M.jsxDEV)(D,{},void 0,!1,{fileName:X,lineNumber:267,columnNumber:15},this)},void 0,!1,{fileName:X,lineNumber:266,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:265,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:263,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:258,columnNumber:5},this)}function $(e){return e!=null&&e!==``}function de(e,t,n,r){return t.includes(n)?e.filter((e,t)=>t!==r).map(e=>String(e[n]??``)).filter(Boolean):[]}function fe(e){return e.slice(0,8)+`…`}var pe=e=>e.length>60?e.slice(0,57)+`…`:e;function me(e,t,n){return e.hints.multiple===!0?(0,M.jsxDEV)(Y,{items:O(t,[]),content:n,reserveEditor:!0},void 0,!1,{fileName:X,lineNumber:316,columnNumber:12},this):$(t)?(0,M.jsxDEV)(M.Fragment,{children:n(t)},void 0,!1,{fileName:X,lineNumber:317,columnNumber:28},this):(0,M.jsxDEV)(G,{},void 0,!1,{fileName:X,lineNumber:317,columnNumber:52},this)}function he(e,t,n=e=>!$(e)){return n(e)?(0,M.jsxDEV)(G,{},void 0,!1,{fileName:X,lineNumber:326,columnNumber:27},this):(0,M.jsxDEV)(M.Fragment,{children:t(e)},void 0,!1,{fileName:X,lineNumber:326,columnNumber:38},this)}function ge(e){return Object.keys(e).find(t=>e[t]?.kind===`cover`)}export{z as C,A as D,F as E,k as O,P as S,I as T,pe as _,ie as a,Y as b,Q as c,$ as d,me as f,ae as g,fe as h,ne as i,oe as l,Z as m,ce as n,le as o,he as p,ue as r,se as s,re as t,ge as u,de as v,V as w,K as x,G as y};
@@ -1 +1 @@
1
- import{i as e}from"./fields-CnmTcDr4.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`claude-agent`,version:`1.0.0`,dependsOn:[],settings:n({label:`claude-agent.settings.label`,fields:[e.group({label:`claude-agent.settings.groups.runtime`,icon:`lucide:bot`,fields:[e.select({key:`auth_mode`,label:`claude-agent.settings.auth_mode`,default:`subscription`,options:[{value:`subscription`,title:`claude-agent.settings.auth_mode_subscription`},{value:`api_key`,title:`claude-agent.settings.auth_mode_api_key`}]}),e.password({key:`anthropic_api_key`,label:`claude-agent.settings.anthropic_api_key`,view:{hidden:{auth_mode:{$ne:`api_key`}}}}),e.select({key:`claude_model`,label:`claude-agent.settings.claude_model`,default:`haiku`,options:[{value:`haiku`,id:`claude-haiku-4-5`,effort:``,title:`Haiku 4.5 — найшвидша й найдешевша`},{value:`sonnet-low`,id:`claude-sonnet-5`,effort:`low`,title:`Sonnet 5 · швидко`},{value:`sonnet`,id:`claude-sonnet-5`,effort:`high`,title:`Sonnet 5 · ретельно`},{value:`opus`,id:`claude-opus-4-8`,effort:`high`,title:`Opus 4.8 · ретельно`},{value:`opus-5`,id:`claude-opus-5`,effort:`high`,title:`Opus 5 · ретельно`},{value:`opus-5-max`,id:`claude-opus-5`,effort:`max`,title:`Opus 5 · максимум`}].map(e=>({value:e.value,title:e.title}))}),e.boolean({key:`thinking_enabled`,label:`claude-agent.settings.thinking_enabled`,default:!1}),e.boolean({key:`skip_permissions`,label:`claude-agent.settings.skip_permissions`,default:!0}),e.int({key:`response_timeout`,label:`claude-agent.settings.response_timeout`,default:600})]}),e.group({label:`claude-agent.settings.groups.rag`,icon:`lucide:search`,fields:[e.boolean({key:`rag_enabled`,label:`claude-agent.settings.rag_enabled`,default:!0}),e.password({key:`openai_api_key`,label:`claude-agent.settings.openai_api_key`}),e.int({key:`rag_top_k`,label:`claude-agent.settings.rag_top_k`,default:5,view:{hidden:!0}})]}),e.group({label:`claude-agent.settings.groups.langfuse`,icon:`lucide:activity`,fields:[e.boolean({key:`tracing_enabled`,label:`claude-agent.settings.tracing_enabled`}),e.string({key:`langfuse_base_url`,label:`claude-agent.settings.langfuse_base_url`}),e.password({key:`langfuse_public_key`,label:`claude-agent.settings.langfuse_public_key`}),e.password({key:`langfuse_secret_key`,label:`claude-agent.settings.langfuse_secret_key`})]})]})});export{r as default};
1
+ import{i as e}from"./fields-CnmTcDr4.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`claude-agent`,version:`1.0.0`,dependsOn:[],settings:n({label:`claude-agent.settings.label`,fields:[e.group({label:`claude-agent.settings.groups.runtime`,icon:`lucide:bot`,fields:[e.select({key:`auth_mode`,label:`claude-agent.settings.auth_mode`,default:`subscription`,options:[{value:`subscription`,title:`claude-agent.settings.auth_mode_subscription`},{value:`api_key`,title:`claude-agent.settings.auth_mode_api_key`}]}),e.password({key:`anthropic_api_key`,label:`claude-agent.settings.anthropic_api_key`,view:{hidden:{auth_mode:{$ne:`api_key`}}}}),e.select({key:`claude_model`,label:`claude-agent.settings.claude_model`,default:`haiku`,options:[{value:`haiku`,id:`claude-haiku-4-5`,effort:``,title:`Haiku 4.5 — найшвидша й найдешевша`},{value:`sonnet-low`,id:`claude-sonnet-5`,effort:`low`,title:`Sonnet 5 · швидко`},{value:`sonnet`,id:`claude-sonnet-5`,effort:`high`,title:`Sonnet 5 · ретельно`},{value:`opus`,id:`claude-opus-4-8`,effort:`high`,title:`Opus 4.8 · ретельно`},{value:`opus-5`,id:`claude-opus-5`,effort:`high`,title:`Opus 5 · ретельно`},{value:`opus-5-max`,id:`claude-opus-5`,effort:`max`,title:`Opus 5 · максимум`}].map(e=>({value:e.value,title:e.title}))}),e.boolean({key:`thinking_enabled`,label:`claude-agent.settings.thinking_enabled`,default:!1}),e.boolean({key:`skip_permissions`,label:`claude-agent.settings.skip_permissions`,default:!0}),e.int({key:`response_timeout`,label:`claude-agent.settings.response_timeout`,default:600})]}),e.group({label:`claude-agent.settings.groups.rag`,icon:`lucide:search`,fields:[e.boolean({key:`rag_enabled`,label:`claude-agent.settings.rag_enabled`,default:!0}),e.password({key:`openai_api_key`,label:`claude-agent.settings.openai_api_key`})]}),e.group({label:`claude-agent.settings.groups.langfuse`,icon:`lucide:activity`,fields:[e.boolean({key:`tracing_enabled`,label:`claude-agent.settings.tracing_enabled`}),e.string({key:`langfuse_base_url`,label:`claude-agent.settings.langfuse_base_url`}),e.password({key:`langfuse_public_key`,label:`claude-agent.settings.langfuse_public_key`}),e.password({key:`langfuse_secret_key`,label:`claude-agent.settings.langfuse_secret_key`})]})]})});export{r as default};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GeoMap-DOMXVIzU.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/GeoMap-vh-t_kPv.css"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{f as r,l as i,r as a,t as o}from"./react-vendor-BskHO5hY.js";import{n as s,t as c}from"./x-BFRg18Fi.js";import{c as l}from"./input-group-Bmvb-qBI.js";import{i as u,l as d}from"./Icon-CnFXN8LC.js";import{t as f}from"./button-D-Q6I5Ob.js";import"./shared-BTj2W-Q0.js";import{a as p,o as m}from"./chrome-Byteug4G.js";import{r as h,s as g}from"./shelf-CiTNv3-E.js";import"./src-DKYT_mO5.js";import{n as _}from"./plugin-ui-CKd6q8ec.js";import{t as v}from"./dispatch-Pl-o9vd6.js";var y=s(`locate-fixed`,[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),b=e(t(),1);function x(e,t){return Math.floor((e+180)/360*2**t)}function S(e,t){let n=e*Math.PI/180;return Math.floor((1-Math.log(Math.tan(n)+1/Math.cos(n))/Math.PI)/2*2**t)}function C(e,t,n=13){return`https://tile.openstreetmap.org/${n}/${x(t,n)}/${S(e,n)}.png`}var w=o(),T=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/geo-field.tsx`,E=(0,b.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`),__vite__mapDeps([0,1,2,3,4])));function D(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}var O=e=>Number(e.toFixed(6)),k=e=>e.lat==null&&e.lng==null&&!e.label?``:e;function A({g:e,onOpen:t}){let{t:r}=n();return e.lat==null||e.lng==null?(0,w.jsxDEV)(`button`,{type:`button`,onClick:t,className:`flex h-24 w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-border text-sm text-muted hover:border-accent`,children:[(0,w.jsxDEV)(d,{size:16},void 0,!1,{fileName:T,lineNumber:35,columnNumber:9},this),` `,r(`geo.pick`)]},void 0,!0,{fileName:T,lineNumber:30,columnNumber:7},this):(0,w.jsxDEV)(`button`,{type:`button`,onClick:t,title:e.label??`${e.lat}, ${e.lng}`,className:`relative block h-24 w-full overflow-hidden rounded-lg border border-border hover:border-accent`,children:[(0,w.jsxDEV)(`img`,{src:C(e.lat,e.lng),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:T,lineNumber:46,columnNumber:7},this),(0,w.jsxDEV)(d,{size:22,fill:`currentColor`,className:`pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-full text-danger drop-shadow`},void 0,!1,{fileName:T,lineNumber:47,columnNumber:7},this)]},void 0,!0,{fileName:T,lineNumber:40,columnNumber:5},this)}function j({value:e,onChange:t,editable:r,onClose:i}){let{t:a}=n(),[o,s]=(0,b.useState)(()=>D(e)),[d,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),g=e=>s(e),_=e=>e===``?void 0:Number(e),v=(0,b.useRef)(o);v.current=o;let x=(0,b.useCallback)(()=>i(),[i]),S=(0,b.useCallback)(()=>{t?.(k(v.current)),i()},[t,i]);(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&x()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[x]);function C(){navigator.geolocation&&navigator.geolocation.getCurrentPosition(e=>g({...o,lat:O(e.coords.latitude),lng:O(e.coords.longitude)}),()=>{},{enableHighAccuracy:!0})}async function A(){if(d.trim()){h(!0);try{let e=await(await fetch(`https://nominatim.openstreetmap.org/search?format=json&limit=1&q=${encodeURIComponent(d)}`)).json();Array.isArray(e)&&e[0]&&g({lat:O(+e[0].lat),lng:O(+e[0].lon),label:o.label||e[0].display_name})}catch{}h(!1)}}return(0,w.jsxDEV)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/85 p-4 backdrop-blur-sm`,onClick:x,children:(0,w.jsxDEV)(`div`,{className:`flex max-h-[92dvh] w-full max-w-3xl flex-col gap-2 rounded-xl bg-bg p-3`,onClick:e=>e.stopPropagation(),children:[(0,w.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,w.jsxDEV)(w.Fragment,{children:[(0,w.jsxDEV)(l,{placeholder:a(`geo.searchPlaceholder`),value:d,onChange:e=>p(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),A())},className:`flex-1`},void 0,!1,{fileName:T,lineNumber:133,columnNumber:15},this),(0,w.jsxDEV)(f,{type:`button`,variant:`secondary`,size:`icon`,disabled:m,onClick:A,title:a(`geo.search`),children:(0,w.jsxDEV)(u,{size:16},void 0,!1,{fileName:T,lineNumber:153,columnNumber:17},this)},void 0,!1,{fileName:T,lineNumber:145,columnNumber:15},this),(0,w.jsxDEV)(f,{type:`button`,variant:`secondary`,size:`icon`,onClick:C,title:a(`geo.myLocation`),children:(0,w.jsxDEV)(y,{size:16},void 0,!1,{fileName:T,lineNumber:156,columnNumber:17},this)},void 0,!1,{fileName:T,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:T,lineNumber:132,columnNumber:13},this),(0,w.jsxDEV)(f,{type:`button`,variant:`ghost`,size:`icon`,onClick:x,className:`ml-auto`,children:(0,w.jsxDEV)(c,{size:18},void 0,!1,{fileName:T,lineNumber:161,columnNumber:13},this)},void 0,!1,{fileName:T,lineNumber:160,columnNumber:11},this)]},void 0,!0,{fileName:T,lineNumber:130,columnNumber:9},this),(0,w.jsxDEV)(b.Suspense,{fallback:(0,w.jsxDEV)(`div`,{className:`h-[60dvh] rounded-lg border border-border bg-surface/40`},void 0,!1,{fileName:T,lineNumber:164,columnNumber:29},this),children:(0,w.jsxDEV)(`div`,{className:`[&>div]:h-[60dvh]`,children:(0,w.jsxDEV)(E,{lat:o.lat,lng:o.lng,interactive:r,onPick:r?(e,t)=>g({...o,lat:e,lng:t}):void 0},void 0,!1,{fileName:T,lineNumber:166,columnNumber:13},this)},void 0,!1,{fileName:T,lineNumber:165,columnNumber:11},this)},void 0,!1,{fileName:T,lineNumber:164,columnNumber:9},this),r?(0,w.jsxDEV)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,w.jsxDEV)(`div`,{className:`grid flex-1 grid-cols-1 gap-2 sm:grid-cols-[7rem_7rem_1fr]`,children:[(0,w.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lat`,value:o.lat??``,onChange:e=>g({...o,lat:_(e.target.value)})},void 0,!1,{fileName:T,lineNumber:178,columnNumber:15},this),(0,w.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lng`,value:o.lng??``,onChange:e=>g({...o,lng:_(e.target.value)})},void 0,!1,{fileName:T,lineNumber:185,columnNumber:15},this),(0,w.jsxDEV)(l,{placeholder:a(`geo.label`),value:o.label??``,onChange:e=>g({...o,label:e.target.value||void 0})},void 0,!1,{fileName:T,lineNumber:192,columnNumber:15},this)]},void 0,!0,{fileName:T,lineNumber:177,columnNumber:13},this),(0,w.jsxDEV)(f,{type:`button`,onClick:S,className:`sm:self-auto`,children:a(`actions.save`)},void 0,!1,{fileName:T,lineNumber:198,columnNumber:13},this)]},void 0,!0,{fileName:T,lineNumber:175,columnNumber:11},this):o.lat!=null&&o.lng!=null&&(0,w.jsxDEV)(`a`,{className:`text-sm text-accent hover:underline`,target:`_blank`,rel:`noreferrer`,href:`https://www.openstreetmap.org/?mlat=${o.lat}&mlon=${o.lng}#map=15/${o.lat}/${o.lng}`,children:o.label??`${o.lat.toFixed(5)}, ${o.lng?.toFixed(5)}`},void 0,!1,{fileName:T,lineNumber:205,columnNumber:13},this)]},void 0,!0,{fileName:T,lineNumber:126,columnNumber:7},this)},void 0,!1,{fileName:T,lineNumber:122,columnNumber:5},this)}function M({value:e,onChange:t,editable:n}){let r=(0,b.useMemo)(()=>D(e),[e]),[i,a]=(0,b.useState)(!1);return(0,w.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxDEV)(A,{g:r,onOpen:()=>a(!0)},void 0,!1,{fileName:T,lineNumber:225,columnNumber:7},this),r.label&&(0,w.jsxDEV)(`span`,{className:`truncate text-xs text-muted`,children:r.label},void 0,!1,{fileName:T,lineNumber:226,columnNumber:19},this),i&&(0,w.jsxDEV)(j,{value:e,onChange:t,editable:n,onClose:()=>a(!1)},void 0,!1,{fileName:T,lineNumber:227,columnNumber:16},this)]},void 0,!0,{fileName:T,lineNumber:224,columnNumber:5},this)}function N(e){let t=!!e.onChange&&!(e.field.hints.noEditControl===!0&&e.mode===`view`),n=(0,w.jsxDEV)(M,{value:e.value,onChange:t=>e.onChange?.(t),editable:t},void 0,!1,{fileName:T,lineNumber:234,columnNumber:16},this);return e.bare?n:(0,w.jsxDEV)(`div`,{className:`group/field w-56`,children:[e.label!==void 0&&(0,w.jsxDEV)(m,{label:e.label,required:e.required},void 0,!1,{fileName:T,lineNumber:238,columnNumber:33},this),n,(0,w.jsxDEV)(p,{error:e.error},void 0,!1,{fileName:T,lineNumber:240,columnNumber:7},this)]},void 0,!0,{fileName:T,lineNumber:237,columnNumber:5},this)}function P({value:e}){let t=D(e);return(0,w.jsxDEV)(`span`,{className:`truncate`,children:t.label??(t.lat==null?`—`:`${t.lat.toFixed(3)}, ${t.lng?.toFixed(3)}`)},void 0,!1,{fileName:T,lineNumber:248,columnNumber:5},this)}var F={kinds:[`geo`],Page:N,Inline:P};function I(e,t){let n=g(e.fields);return t.filter(e=>n[e]?.kind===`geo`)}function L(e,t){let n=I(e,t);return n.length===1?n[0]:null}function R(e,t){let n=g(e.fields),r=t[0];if(!r||!n[r])return`views.list.fields: shelf has no text field for its title (titleKey fell back to "id")`;let i=I(e,t);return i.length===0?`views.list.fields does not contain a kind:"geo" field`:i.length>1?`views.list.fields contains multiple geo fields: ${i.join(`, `)}`:null}var z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/map-view.tsx`,B=(0,b.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`).then(e=>({default:e.MarkersMap})),__vite__mapDeps([0,1,2,3,4])));function V({rows:e,shelf:t,keys:r,hrefBase:o}){let{t:s}=n(),c=i(),[l,u]=(0,b.useState)(!1),d=g(t.fields),f=L(t,r),p=r[0],{points:m,without:_}=(0,b.useMemo)(()=>{let t=[],n=[];for(let r of e){let e=f?h(d[f],f,r):void 0;e&&typeof e.lat==`number`&&typeof e.lng==`number`?t.push({id:String(r.id),lat:e.lat,lng:e.lng,title:String(h(d[p],p,r)??r.id)}):n.push(r)}return{points:t,without:n}},[e,f,p,d]);return(0,w.jsxDEV)(`div`,{className:`p-4`,children:[(0,w.jsxDEV)(b.Suspense,{fallback:(0,w.jsxDEV)(`div`,{className:`h-64 rounded-lg border border-border`},void 0,!1,{fileName:z,lineNumber:48,columnNumber:27},this),children:(0,w.jsxDEV)(B,{points:m,onPick:e=>c(`${o}/${e}`)},void 0,!1,{fileName:z,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:z,lineNumber:48,columnNumber:7},this),_.length>0&&(0,w.jsxDEV)(`div`,{className:`mt-3`,children:[(0,w.jsxDEV)(`button`,{type:`button`,onClick:()=>u(e=>!e),className:`text-sm text-muted hover:text-text transition-colors`,children:s(`geo.withoutCoords`,{count:_.length})},void 0,!1,{fileName:z,lineNumber:53,columnNumber:11},this),l&&(0,w.jsxDEV)(`ul`,{className:`mt-2 flex flex-col gap-1`,children:_.map(e=>(0,w.jsxDEV)(`li`,{children:(0,w.jsxDEV)(a,{to:`${o}/${e.id}`,className:`text-sm text-text hover:text-accent`,children:(0,w.jsxDEV)(v,{field:d[p],value:h(d[p],p,e)},void 0,!1,{fileName:z,lineNumber:65,columnNumber:21},this)},void 0,!1,{fileName:z,lineNumber:64,columnNumber:19},this)},String(e.id),!1,{fileName:z,lineNumber:63,columnNumber:17},this))},void 0,!1,{fileName:z,lineNumber:61,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:z,lineNumber:47,columnNumber:5},this)}var H=_({renderers:[F],listViews:[{kind:`map`,View:V,check:R}],translations:{uk:{geo:{searchPlaceholder:`Пошук адреси…`,search:`Знайти`,myLocation:`Моє місцеположення`,label:`Підпис`,pick:`Обрати місце`,withoutCoords:`Без координат: {{count}}`}},ru:{geo:{searchPlaceholder:`Поиск адреса…`,search:`Найти`,myLocation:`Моё местоположение`,label:`Подпись`,pick:`Выбрать место`,withoutCoords:`Без координат: {{count}}`}},en:{geo:{searchPlaceholder:`Search address…`,search:`Search`,myLocation:`My location`,label:`Label`,pick:`Pick location`,withoutCoords:`Without coordinates: {{count}}`}}}});export{H as default};
2
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{f as r,l as i,r as a,t as o}from"./react-vendor-BskHO5hY.js";import{n as s,t as c}from"./x-BFRg18Fi.js";import{c as l}from"./input-group-Bmvb-qBI.js";import{i as u,l as d}from"./Icon-CnFXN8LC.js";import{t as f}from"./button-D-Q6I5Ob.js";import"./shared-B-9cBvyI.js";import{a as p,o as m}from"./chrome-Byteug4G.js";import{r as h,s as g}from"./shelf-CiTNv3-E.js";import"./src-DKYT_mO5.js";import{n as _}from"./plugin-ui-CKd6q8ec.js";import{t as v}from"./dispatch-Pl-o9vd6.js";var y=s(`locate-fixed`,[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),b=e(t(),1);function x(e,t){return Math.floor((e+180)/360*2**t)}function S(e,t){let n=e*Math.PI/180;return Math.floor((1-Math.log(Math.tan(n)+1/Math.cos(n))/Math.PI)/2*2**t)}function C(e,t,n=13){return`https://tile.openstreetmap.org/${n}/${x(t,n)}/${S(e,n)}.png`}var w=o(),T=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/geo-field.tsx`,E=(0,b.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`),__vite__mapDeps([0,1,2,3,4])));function D(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}var O=e=>Number(e.toFixed(6)),k=e=>e.lat==null&&e.lng==null&&!e.label?``:e;function A({g:e,onOpen:t}){let{t:r}=n();return e.lat==null||e.lng==null?(0,w.jsxDEV)(`button`,{type:`button`,onClick:t,className:`flex h-24 w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-border text-sm text-muted hover:border-accent`,children:[(0,w.jsxDEV)(d,{size:16},void 0,!1,{fileName:T,lineNumber:35,columnNumber:9},this),` `,r(`geo.pick`)]},void 0,!0,{fileName:T,lineNumber:30,columnNumber:7},this):(0,w.jsxDEV)(`button`,{type:`button`,onClick:t,title:e.label??`${e.lat}, ${e.lng}`,className:`relative block h-24 w-full overflow-hidden rounded-lg border border-border hover:border-accent`,children:[(0,w.jsxDEV)(`img`,{src:C(e.lat,e.lng),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:T,lineNumber:46,columnNumber:7},this),(0,w.jsxDEV)(d,{size:22,fill:`currentColor`,className:`pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-full text-danger drop-shadow`},void 0,!1,{fileName:T,lineNumber:47,columnNumber:7},this)]},void 0,!0,{fileName:T,lineNumber:40,columnNumber:5},this)}function j({value:e,onChange:t,editable:r,onClose:i}){let{t:a}=n(),[o,s]=(0,b.useState)(()=>D(e)),[d,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),g=e=>s(e),_=e=>e===``?void 0:Number(e),v=(0,b.useRef)(o);v.current=o;let x=(0,b.useCallback)(()=>i(),[i]),S=(0,b.useCallback)(()=>{t?.(k(v.current)),i()},[t,i]);(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&x()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[x]);function C(){navigator.geolocation&&navigator.geolocation.getCurrentPosition(e=>g({...o,lat:O(e.coords.latitude),lng:O(e.coords.longitude)}),()=>{},{enableHighAccuracy:!0})}async function A(){if(d.trim()){h(!0);try{let e=await(await fetch(`https://nominatim.openstreetmap.org/search?format=json&limit=1&q=${encodeURIComponent(d)}`)).json();Array.isArray(e)&&e[0]&&g({lat:O(+e[0].lat),lng:O(+e[0].lon),label:o.label||e[0].display_name})}catch{}h(!1)}}return(0,w.jsxDEV)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/85 p-4 backdrop-blur-sm`,onClick:x,children:(0,w.jsxDEV)(`div`,{className:`flex max-h-[92dvh] w-full max-w-3xl flex-col gap-2 rounded-xl bg-bg p-3`,onClick:e=>e.stopPropagation(),children:[(0,w.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,w.jsxDEV)(w.Fragment,{children:[(0,w.jsxDEV)(l,{placeholder:a(`geo.searchPlaceholder`),value:d,onChange:e=>p(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),A())},className:`flex-1`},void 0,!1,{fileName:T,lineNumber:133,columnNumber:15},this),(0,w.jsxDEV)(f,{type:`button`,variant:`secondary`,size:`icon`,disabled:m,onClick:A,title:a(`geo.search`),children:(0,w.jsxDEV)(u,{size:16},void 0,!1,{fileName:T,lineNumber:153,columnNumber:17},this)},void 0,!1,{fileName:T,lineNumber:145,columnNumber:15},this),(0,w.jsxDEV)(f,{type:`button`,variant:`secondary`,size:`icon`,onClick:C,title:a(`geo.myLocation`),children:(0,w.jsxDEV)(y,{size:16},void 0,!1,{fileName:T,lineNumber:156,columnNumber:17},this)},void 0,!1,{fileName:T,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:T,lineNumber:132,columnNumber:13},this),(0,w.jsxDEV)(f,{type:`button`,variant:`ghost`,size:`icon`,onClick:x,className:`ml-auto`,children:(0,w.jsxDEV)(c,{size:18},void 0,!1,{fileName:T,lineNumber:161,columnNumber:13},this)},void 0,!1,{fileName:T,lineNumber:160,columnNumber:11},this)]},void 0,!0,{fileName:T,lineNumber:130,columnNumber:9},this),(0,w.jsxDEV)(b.Suspense,{fallback:(0,w.jsxDEV)(`div`,{className:`h-[60dvh] rounded-lg border border-border bg-surface/40`},void 0,!1,{fileName:T,lineNumber:164,columnNumber:29},this),children:(0,w.jsxDEV)(`div`,{className:`[&>div]:h-[60dvh]`,children:(0,w.jsxDEV)(E,{lat:o.lat,lng:o.lng,interactive:r,onPick:r?(e,t)=>g({...o,lat:e,lng:t}):void 0},void 0,!1,{fileName:T,lineNumber:166,columnNumber:13},this)},void 0,!1,{fileName:T,lineNumber:165,columnNumber:11},this)},void 0,!1,{fileName:T,lineNumber:164,columnNumber:9},this),r?(0,w.jsxDEV)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,w.jsxDEV)(`div`,{className:`grid flex-1 grid-cols-1 gap-2 sm:grid-cols-[7rem_7rem_1fr]`,children:[(0,w.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lat`,value:o.lat??``,onChange:e=>g({...o,lat:_(e.target.value)})},void 0,!1,{fileName:T,lineNumber:178,columnNumber:15},this),(0,w.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lng`,value:o.lng??``,onChange:e=>g({...o,lng:_(e.target.value)})},void 0,!1,{fileName:T,lineNumber:185,columnNumber:15},this),(0,w.jsxDEV)(l,{placeholder:a(`geo.label`),value:o.label??``,onChange:e=>g({...o,label:e.target.value||void 0})},void 0,!1,{fileName:T,lineNumber:192,columnNumber:15},this)]},void 0,!0,{fileName:T,lineNumber:177,columnNumber:13},this),(0,w.jsxDEV)(f,{type:`button`,onClick:S,className:`sm:self-auto`,children:a(`actions.save`)},void 0,!1,{fileName:T,lineNumber:198,columnNumber:13},this)]},void 0,!0,{fileName:T,lineNumber:175,columnNumber:11},this):o.lat!=null&&o.lng!=null&&(0,w.jsxDEV)(`a`,{className:`text-sm text-accent hover:underline`,target:`_blank`,rel:`noreferrer`,href:`https://www.openstreetmap.org/?mlat=${o.lat}&mlon=${o.lng}#map=15/${o.lat}/${o.lng}`,children:o.label??`${o.lat.toFixed(5)}, ${o.lng?.toFixed(5)}`},void 0,!1,{fileName:T,lineNumber:205,columnNumber:13},this)]},void 0,!0,{fileName:T,lineNumber:126,columnNumber:7},this)},void 0,!1,{fileName:T,lineNumber:122,columnNumber:5},this)}function M({value:e,onChange:t,editable:n}){let r=(0,b.useMemo)(()=>D(e),[e]),[i,a]=(0,b.useState)(!1);return(0,w.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxDEV)(A,{g:r,onOpen:()=>a(!0)},void 0,!1,{fileName:T,lineNumber:225,columnNumber:7},this),r.label&&(0,w.jsxDEV)(`span`,{className:`truncate text-xs text-muted`,children:r.label},void 0,!1,{fileName:T,lineNumber:226,columnNumber:19},this),i&&(0,w.jsxDEV)(j,{value:e,onChange:t,editable:n,onClose:()=>a(!1)},void 0,!1,{fileName:T,lineNumber:227,columnNumber:16},this)]},void 0,!0,{fileName:T,lineNumber:224,columnNumber:5},this)}function N(e){let t=!!e.onChange&&!(e.field.hints.noEditControl===!0&&e.mode===`view`),n=(0,w.jsxDEV)(M,{value:e.value,onChange:t=>e.onChange?.(t),editable:t},void 0,!1,{fileName:T,lineNumber:234,columnNumber:16},this);return e.bare?n:(0,w.jsxDEV)(`div`,{className:`group/field w-56`,children:[e.label!==void 0&&(0,w.jsxDEV)(m,{label:e.label,required:e.required},void 0,!1,{fileName:T,lineNumber:238,columnNumber:33},this),n,(0,w.jsxDEV)(p,{error:e.error},void 0,!1,{fileName:T,lineNumber:240,columnNumber:7},this)]},void 0,!0,{fileName:T,lineNumber:237,columnNumber:5},this)}function P({value:e}){let t=D(e);return(0,w.jsxDEV)(`span`,{className:`truncate`,children:t.label??(t.lat==null?`—`:`${t.lat.toFixed(3)}, ${t.lng?.toFixed(3)}`)},void 0,!1,{fileName:T,lineNumber:248,columnNumber:5},this)}var F={kinds:[`geo`],Page:N,Inline:P};function I(e,t){let n=g(e.fields);return t.filter(e=>n[e]?.kind===`geo`)}function L(e,t){let n=I(e,t);return n.length===1?n[0]:null}function R(e,t){let n=g(e.fields),r=t[0];if(!r||!n[r])return`views.list.fields: shelf has no text field for its title (titleKey fell back to "id")`;let i=I(e,t);return i.length===0?`views.list.fields does not contain a kind:"geo" field`:i.length>1?`views.list.fields contains multiple geo fields: ${i.join(`, `)}`:null}var z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/map-view.tsx`,B=(0,b.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`).then(e=>({default:e.MarkersMap})),__vite__mapDeps([0,1,2,3,4])));function V({rows:e,shelf:t,keys:r,hrefBase:o}){let{t:s}=n(),c=i(),[l,u]=(0,b.useState)(!1),d=g(t.fields),f=L(t,r),p=r[0],{points:m,without:_}=(0,b.useMemo)(()=>{let t=[],n=[];for(let r of e){let e=f?h(d[f],f,r):void 0;e&&typeof e.lat==`number`&&typeof e.lng==`number`?t.push({id:String(r.id),lat:e.lat,lng:e.lng,title:String(h(d[p],p,r)??r.id)}):n.push(r)}return{points:t,without:n}},[e,f,p,d]);return(0,w.jsxDEV)(`div`,{className:`p-4`,children:[(0,w.jsxDEV)(b.Suspense,{fallback:(0,w.jsxDEV)(`div`,{className:`h-64 rounded-lg border border-border`},void 0,!1,{fileName:z,lineNumber:48,columnNumber:27},this),children:(0,w.jsxDEV)(B,{points:m,onPick:e=>c(`${o}/${e}`)},void 0,!1,{fileName:z,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:z,lineNumber:48,columnNumber:7},this),_.length>0&&(0,w.jsxDEV)(`div`,{className:`mt-3`,children:[(0,w.jsxDEV)(`button`,{type:`button`,onClick:()=>u(e=>!e),className:`text-sm text-muted hover:text-text transition-colors`,children:s(`geo.withoutCoords`,{count:_.length})},void 0,!1,{fileName:z,lineNumber:53,columnNumber:11},this),l&&(0,w.jsxDEV)(`ul`,{className:`mt-2 flex flex-col gap-1`,children:_.map(e=>(0,w.jsxDEV)(`li`,{children:(0,w.jsxDEV)(a,{to:`${o}/${e.id}`,className:`text-sm text-text hover:text-accent`,children:(0,w.jsxDEV)(v,{field:d[p],value:h(d[p],p,e)},void 0,!1,{fileName:z,lineNumber:65,columnNumber:21},this)},void 0,!1,{fileName:z,lineNumber:64,columnNumber:19},this)},String(e.id),!1,{fileName:z,lineNumber:63,columnNumber:17},this))},void 0,!1,{fileName:z,lineNumber:61,columnNumber:13},this)]},void 0,!0,{fileName:z,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:z,lineNumber:47,columnNumber:5},this)}var H=_({renderers:[F],listViews:[{kind:`map`,View:V,check:R}],translations:{uk:{geo:{searchPlaceholder:`Пошук адреси…`,search:`Знайти`,myLocation:`Моє місцеположення`,label:`Підпис`,pick:`Обрати місце`,withoutCoords:`Без координат: {{count}}`}},ru:{geo:{searchPlaceholder:`Поиск адреса…`,search:`Найти`,myLocation:`Моё местоположение`,label:`Подпись`,pick:`Выбрать место`,withoutCoords:`Без координат: {{count}}`}},en:{geo:{searchPlaceholder:`Search address…`,search:`Search`,myLocation:`My location`,label:`Label`,pick:`Pick location`,withoutCoords:`Without coordinates: {{count}}`}}}});export{H as default};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NoMac-BarbbnIj.js","assets/react-vendor-BskHO5hY.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/ScanSummary-CtIkC51I.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{f as n,t as r}from"./react-vendor-BskHO5hY.js";import{c as i}from"./input-group-Bmvb-qBI.js";import{C as a,E as o,S as s,T as c,b as l,r as u,w as d,y as f}from"./shared-BTj2W-Q0.js";import"./src-DKYT_mO5.js";import{n as p}from"./plugin-ui-CKd6q8ec.js";import{t as m}from"./json-CkyL3W27.js";import{t as h}from"./field-frame-BtcRGL3k.js";import{a as g,c as _,n as v,o as y,t as b}from"./data-size-Ki_AjEms.js";var x=e(t(),1);function S(e){let t=e.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(t){let e=t.slice(1).map(Number);return e.every(e=>e>=0&&e<=255)?{v:4,a:e}:null}try{let t=e;if(e.includes(`::`)){let[n,r]=e.split(`::`),i=n?n.split(`:`):[],a=r?r.split(`:`):[],o=8-i.length-a.length;t=[...i,...Array(o).fill(`0`),...a].join(`:`)}let n=t.split(`:`);if(n.length!==8)return null;let r=n.map(e=>parseInt(e,16));return r.some(e=>isNaN(e)||e<0||e>65535)?null:{v:6,a:r}}catch{return null}}function C(e){return e.v===4?e.a.join(`.`):e.a.map(e=>e.toString(16)).join(`:`)}function w(e){let t=e.lastIndexOf(`/`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1),i=parseInt(r,10),a=S(n);if(!a||isNaN(i))return null;let o=a.v===4?32:128;return i<0||i>o?null:{...a,p:i}}function T(e){return`${C(e)}/${e.p}`}var E=r(),D=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/fields/ui.tsx`;function O({value:e,onChange:t,parse:n,format:r,placeholder:a}){let o=(0,x.useMemo)(()=>{try{return JSON.parse(e)}catch{return null}},[e]),[s,c]=(0,x.useState)(o?r(o):e??``);(0,x.useEffect)(()=>{c(o?r(o):e||``)},[e,o]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,E.jsxDEV)(i,{value:s,placeholder:a,onChange:e=>c(e.target.value),onBlur:()=>l(s),onKeyDown:e=>{e.key===`Enter`&&l(s)}},void 0,!1,{fileName:D,lineNumber:51,columnNumber:5},this)}function k(e,t){return(0,E.jsxDEV)(l,{items:m(e,[]),content:e=>{let n=typeof e==`string`?m(e,null):e;return n&&typeof n==`object`?t(n):String(e)},reserveEditor:!0},void 0,!1,{fileName:D,lineNumber:68,columnNumber:5},this)}function A(e){return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>C(e)):(()=>{let e=m(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:C(e)},void 0,!1,{fileName:D,lineNumber:96,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:98,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:98,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>S(e.trim())!==null,serialize:e=>{let t=S(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return C(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(i,{value:e,placeholder:`192.168.1.1`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:119,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:103,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:S,format:C,placeholder:`192.168.1.1`},void 0,!1,{fileName:D,lineNumber:134,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:81,columnNumber:5},this)}function j({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:C(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:149,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:151,columnNumber:12},this)}}var M={kinds:[`ip`],Page:A,Inline:j};function N(e){return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>T(e)):(()=>{let e=m(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:T(e)},void 0,!1,{fileName:D,lineNumber:178,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:180,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:180,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>w(e.trim())!==null,serialize:e=>{let t=w(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return T(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(i,{value:e,placeholder:`192.168.1.0/24`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:185,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:w,format:T,placeholder:`192.168.1.0/24`},void 0,!1,{fileName:D,lineNumber:216,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:163,columnNumber:5},this)}function P({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:T(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:231,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:233,columnNumber:12},this)}}var F={kinds:[`cidr`],Page:N,Inline:P};function I({field:e,value:t,onChange:n}){let r=_(e),l=t===``?``:Number(t),[u,f]=(0,x.useState)(()=>l!==``&&Number(l)>0?v(Number(l),r)[0]:e.hints.unit??`GB`),p=g(r,u),m=l===``?``:Number((Number(l)/p).toFixed(4)),h=e=>Math.round(e*p);return(0,E.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,E.jsxDEV)(i,{type:`number`,className:`flex-1 min-w-0`,min:0,value:m,onChange:e=>n(e.target.value===``?``:String(h(Number(e.target.value))))},void 0,!1,{fileName:D,lineNumber:256,columnNumber:7},this),(0,E.jsxDEV)(s,{value:u,onValueChange:f,children:[(0,E.jsxDEV)(c,{className:`w-24`,children:(0,E.jsxDEV)(o,{},void 0,!1,{fileName:D,lineNumber:265,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:264,columnNumber:9},this),(0,E.jsxDEV)(a,{children:b[r].map(([e])=>(0,E.jsxDEV)(d,{value:e,children:e},e,!1,{fileName:D,lineNumber:269,columnNumber:13},this))},void 0,!1,{fileName:D,lineNumber:267,columnNumber:9},this)]},void 0,!0,{fileName:D,lineNumber:263,columnNumber:7},this)]},void 0,!0,{fileName:D,lineNumber:255,columnNumber:5},this)}function L({value:e,system:t}){let n=y(e,t);return n?(0,E.jsxDEV)(`span`,{className:`tabular-nums`,children:n},void 0,!1,{fileName:D,lineNumber:281,columnNumber:14},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:281,columnNumber:58},this)}function R(e){let t=_(e.field);return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,E.jsxDEV)(L,{value:e,system:t},void 0,!1,{fileName:D,lineNumber:298,columnNumber:20},this),edit:(t,n)=>(0,E.jsxDEV)(I,{field:e.field,value:String(t??``),onChange:n},void 0,!1,{fileName:D,lineNumber:300,columnNumber:9},this)},void 0,!1,{fileName:D,lineNumber:287,columnNumber:5},this)}function z({field:e,value:t}){return(0,E.jsxDEV)(L,{value:t,system:_(e)},void 0,!1,{fileName:D,lineNumber:307,columnNumber:10},this)}var B=p({shelf:{library:`devices`,shelf:`network`},renderers:[M,F,{kinds:[`dataSize`],Page:R,Inline:z}],templates:{"devices.scan.noMac":()=>n(()=>import(`./NoMac-BarbbnIj.js`),__vite__mapDeps([0,1,2,3])),"devices.scan.summary":()=>n(()=>import(`./ScanSummary-CtIkC51I.js`),__vite__mapDeps([4,1,2,3]))}});export{B as default};
2
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{f as n,t as r}from"./react-vendor-BskHO5hY.js";import{c as i}from"./input-group-Bmvb-qBI.js";import{C as a,E as o,S as s,T as c,b as l,r as u,w as d,y as f}from"./shared-B-9cBvyI.js";import"./src-DKYT_mO5.js";import{n as p}from"./plugin-ui-CKd6q8ec.js";import{t as m}from"./json-CkyL3W27.js";import{t as h}from"./field-frame-BtcRGL3k.js";import{a as g,c as _,n as v,o as y,t as b}from"./data-size-Ki_AjEms.js";var x=e(t(),1);function S(e){let t=e.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(t){let e=t.slice(1).map(Number);return e.every(e=>e>=0&&e<=255)?{v:4,a:e}:null}try{let t=e;if(e.includes(`::`)){let[n,r]=e.split(`::`),i=n?n.split(`:`):[],a=r?r.split(`:`):[],o=8-i.length-a.length;t=[...i,...Array(o).fill(`0`),...a].join(`:`)}let n=t.split(`:`);if(n.length!==8)return null;let r=n.map(e=>parseInt(e,16));return r.some(e=>isNaN(e)||e<0||e>65535)?null:{v:6,a:r}}catch{return null}}function C(e){return e.v===4?e.a.join(`.`):e.a.map(e=>e.toString(16)).join(`:`)}function w(e){let t=e.lastIndexOf(`/`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1),i=parseInt(r,10),a=S(n);if(!a||isNaN(i))return null;let o=a.v===4?32:128;return i<0||i>o?null:{...a,p:i}}function T(e){return`${C(e)}/${e.p}`}var E=r(),D=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/fields/ui.tsx`;function O({value:e,onChange:t,parse:n,format:r,placeholder:a}){let o=(0,x.useMemo)(()=>{try{return JSON.parse(e)}catch{return null}},[e]),[s,c]=(0,x.useState)(o?r(o):e??``);(0,x.useEffect)(()=>{c(o?r(o):e||``)},[e,o]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,E.jsxDEV)(i,{value:s,placeholder:a,onChange:e=>c(e.target.value),onBlur:()=>l(s),onKeyDown:e=>{e.key===`Enter`&&l(s)}},void 0,!1,{fileName:D,lineNumber:51,columnNumber:5},this)}function k(e,t){return(0,E.jsxDEV)(l,{items:m(e,[]),content:e=>{let n=typeof e==`string`?m(e,null):e;return n&&typeof n==`object`?t(n):String(e)},reserveEditor:!0},void 0,!1,{fileName:D,lineNumber:68,columnNumber:5},this)}function A(e){return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>C(e)):(()=>{let e=m(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:C(e)},void 0,!1,{fileName:D,lineNumber:96,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:98,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:98,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>S(e.trim())!==null,serialize:e=>{let t=S(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return C(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(i,{value:e,placeholder:`192.168.1.1`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:119,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:103,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:S,format:C,placeholder:`192.168.1.1`},void 0,!1,{fileName:D,lineNumber:134,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:81,columnNumber:5},this)}function j({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:C(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:149,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:151,columnNumber:12},this)}}var M={kinds:[`ip`],Page:A,Inline:j};function N(e){return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>T(e)):(()=>{let e=m(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:T(e)},void 0,!1,{fileName:D,lineNumber:178,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:180,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:180,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>w(e.trim())!==null,serialize:e=>{let t=w(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return T(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(i,{value:e,placeholder:`192.168.1.0/24`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:185,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:w,format:T,placeholder:`192.168.1.0/24`},void 0,!1,{fileName:D,lineNumber:216,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:163,columnNumber:5},this)}function P({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:T(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:231,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:233,columnNumber:12},this)}}var F={kinds:[`cidr`],Page:N,Inline:P};function I({field:e,value:t,onChange:n}){let r=_(e),l=t===``?``:Number(t),[u,f]=(0,x.useState)(()=>l!==``&&Number(l)>0?v(Number(l),r)[0]:e.hints.unit??`GB`),p=g(r,u),m=l===``?``:Number((Number(l)/p).toFixed(4)),h=e=>Math.round(e*p);return(0,E.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,E.jsxDEV)(i,{type:`number`,className:`flex-1 min-w-0`,min:0,value:m,onChange:e=>n(e.target.value===``?``:String(h(Number(e.target.value))))},void 0,!1,{fileName:D,lineNumber:256,columnNumber:7},this),(0,E.jsxDEV)(s,{value:u,onValueChange:f,children:[(0,E.jsxDEV)(c,{className:`w-24`,children:(0,E.jsxDEV)(o,{},void 0,!1,{fileName:D,lineNumber:265,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:264,columnNumber:9},this),(0,E.jsxDEV)(a,{children:b[r].map(([e])=>(0,E.jsxDEV)(d,{value:e,children:e},e,!1,{fileName:D,lineNumber:269,columnNumber:13},this))},void 0,!1,{fileName:D,lineNumber:267,columnNumber:9},this)]},void 0,!0,{fileName:D,lineNumber:263,columnNumber:7},this)]},void 0,!0,{fileName:D,lineNumber:255,columnNumber:5},this)}function L({value:e,system:t}){let n=y(e,t);return n?(0,E.jsxDEV)(`span`,{className:`tabular-nums`,children:n},void 0,!1,{fileName:D,lineNumber:281,columnNumber:14},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:281,columnNumber:58},this)}function R(e){let t=_(e.field);return(0,E.jsxDEV)(h,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,E.jsxDEV)(L,{value:e,system:t},void 0,!1,{fileName:D,lineNumber:298,columnNumber:20},this),edit:(t,n)=>(0,E.jsxDEV)(I,{field:e.field,value:String(t??``),onChange:n},void 0,!1,{fileName:D,lineNumber:300,columnNumber:9},this)},void 0,!1,{fileName:D,lineNumber:287,columnNumber:5},this)}function z({field:e,value:t}){return(0,E.jsxDEV)(L,{value:t,system:_(e)},void 0,!1,{fileName:D,lineNumber:307,columnNumber:10},this)}var B=p({shelf:{library:`devices`,shelf:`network`},renderers:[M,F,{kinds:[`dataSize`],Page:R,Inline:z}],templates:{"devices.scan.noMac":()=>n(()=>import(`./NoMac-BarbbnIj.js`),__vite__mapDeps([0,1,2,3])),"devices.scan.summary":()=>n(()=>import(`./ScanSummary-CtIkC51I.js`),__vite__mapDeps([4,1,2,3]))}});export{B as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatWidget-BAYVUMAk.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-Bp-ZANIb.js","assets/square-CiErsTOS.js","assets/src-DKYT_mO5.js","assets/fields-CnmTcDr4.js","assets/plugin-ui-CKd6q8ec.js","assets/api-C2Azkedd.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-DKYT_mO5.js";import{n as t}from"./plugin-ui-CKd6q8ec.js";var n=t({slots:[{slot:`overlay`,id:`webchat`,load:()=>e(()=>import(`./ChatWidget-BAYVUMAk.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};
@@ -0,0 +1 @@
1
+ import{n as e}from"./x-BFRg18Fi.js";var t=e(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),n=e(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]);export{t as n,n as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{n}from"./x-BFRg18Fi.js";var r=n(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),i=[],a=[];function o(e){i=[...e]}function s(){return[...i]}function c(e){a=[...e]}function l(){return[...a]}var u=e(t(),1);function d(e,t=!0){return(0,u.useSyncExternalStore)((0,u.useCallback)(t=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return()=>{};let n=window.matchMedia(e);return n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t)},[e]),(0,u.useCallback)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?t:window.matchMedia(e).matches,[e,t]),()=>t)}function f(e,t){if(typeof window>`u`||typeof getComputedStyle!=`function`)return t;let n=getComputedStyle(document.documentElement).getPropertyValue(`--breakpoint-${e}`),r=Number.parseInt(n.trim(),10);return Number.isFinite(r)&&r>0?r:t}function p(e,t){return d(`(min-width: ${f(e,t)}px)`,!0)}export{c as a,o as i,s as n,r as o,l as r,p as t};
package/dist/index.html CHANGED
@@ -38,7 +38,7 @@
38
38
  }
39
39
  }
40
40
  </script>
41
- <script type="module" crossorigin src="/assets/index-D0s8LZqM.js"></script>
41
+ <script type="module" crossorigin src="/assets/index-CTikLilu.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">
@@ -64,21 +64,22 @@
64
64
  <link rel="modulepreload" crossorigin href="/assets/SettingsForm-DWJJQMcy.js">
65
65
  <link rel="modulepreload" crossorigin href="/assets/input-group-Bmvb-qBI.js">
66
66
  <link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-C7Lp4hCA.js">
67
+ <link rel="modulepreload" crossorigin href="/assets/upload-Bp-ZANIb.js">
67
68
  <link rel="modulepreload" crossorigin href="/assets/json-CkyL3W27.js">
68
- <link rel="modulepreload" crossorigin href="/assets/shared-BTj2W-Q0.js">
69
+ <link rel="modulepreload" crossorigin href="/assets/shared-B-9cBvyI.js">
70
+ <link rel="modulepreload" crossorigin href="/assets/use-media-query-BED2JoBm.js">
69
71
  <link rel="modulepreload" crossorigin href="/assets/plugin-ui-CKd6q8ec.js">
70
- <link rel="modulepreload" crossorigin href="/assets/use-media-query-DWcBtoAU.js">
71
72
  <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-CtaBI5gJ.js">
72
73
  <link rel="modulepreload" crossorigin href="/assets/purify.es-sLXpNpJ5.js">
73
74
  <link rel="modulepreload" crossorigin href="/assets/combobox-DkZHekBD.js">
74
75
  <link rel="modulepreload" crossorigin href="/assets/countries-BlKrWFMP.js">
75
- <link rel="modulepreload" crossorigin href="/assets/api-CL5tEEID.js">
76
+ <link rel="modulepreload" crossorigin href="/assets/api-C2Azkedd.js">
76
77
  <link rel="modulepreload" crossorigin href="/assets/dispatch-Pl-o9vd6.js">
77
78
  <link rel="modulepreload" crossorigin href="/assets/dialog-DqWXrq6M.js">
78
- <link rel="modulepreload" crossorigin href="/assets/auth-context-C7i2C9Lu.js">
79
+ <link rel="modulepreload" crossorigin href="/assets/auth-context-CqB3NLgO.js">
79
80
  <link rel="modulepreload" crossorigin href="/assets/space-separated-tokens-IJiqTQpk.js">
80
81
  <link rel="modulepreload" crossorigin href="/assets/lib-BJGpevNH.js">
81
- <link rel="stylesheet" crossorigin href="/assets/index-6EilGfQs.css">
82
+ <link rel="stylesheet" crossorigin href="/assets/index-CSnStPnZ.css">
82
83
  </head>
83
84
  <body>
84
85
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffer-org/web",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=24"
@@ -1,16 +0,0 @@
1
- import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{a as n,t as r}from"./i18n-vendor-T6EnJ_TL.js";import{c as i,r as a,t as o}from"./react-vendor-BskHO5hY.js";import{n as s,t as c}from"./x-BFRg18Fi.js";import{s as l}from"./icons-DBHj1PyA.js";import{n as u,t as d}from"./square-CiErsTOS.js";import"./src-DKYT_mO5.js";import{i as f}from"./plugin-ui-CKd6q8ec.js";import{n as p,r as m,t as h}from"./use-media-query-DWcBtoAU.js";import{n as g,t as _}from"./dialog-DqWXrq6M.js";import{n as v,t as y}from"./development-olQNibq5.js";import{c as b}from"./micromark-extension-gfm-BUw6_ZLT.js";import{a as x,i as S,n as ee,o as C,s as te}from"./space-separated-tokens-IJiqTQpk.js";import{a as ne,c as re,s as ie,t as ae}from"./lib-Du7RHLba.js";import{t as oe}from"./lib-sYoE14fC.js";import{c as se,t as ce}from"./lib-B13BbhLB.js";var le=s(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),ue=s(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),de=s(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),fe=s(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),pe=s(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),me={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},w=e(n(),1);async function*he(e){let t=e.getReader(),n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a;for(;(a=r.indexOf(`
2
-
3
- `))!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=`message`,n=[];for(let r of e.split(`
4
- `))!r||r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trim():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));n.length&&(yield{event:t,data:n.join(`
5
- `)})}}}var T=`/api/plugins/webchat/user`;async function ge(){let e=await fetch(`${T}/threads`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`});if(!e.ok)throw Error(`threads`);return(await e.json()).threads}async function _e(e){let t=await fetch(`${T}/history`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e})});if(!t.ok)throw Error(`history`);return await t.json()}async function ve(e){let t=await fetch(`${T}/send/stream`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e.convId,text:e.text,replyTo:e.replyTo,context:e.context}),signal:e.signal});if(!t.ok||!t.body){e.onError(`http ${t.status}`);return}for await(let n of he(t.body))try{let t=JSON.parse(n.data);n.event===`reasoning`?e.onReasoning?.(String(t.text??``)):n.event===`delta`||n.event===`message`?e.onDelta(String(t.text??``)):n.event===`done`?e.onDone({msgId:t.msgId??null,parentMsgId:String(t.parentMsgId??``)}):n.event===`error`&&e.onError(String(t.message??`error`))}catch(t){e.onError(`malformed frame: ${String(t)}`)}}function E(){return crypto.randomUUID()}function ye(){let[e,t]=(0,w.useState)([]),[n,r]=(0,w.useState)(null),[i,a]=(0,w.useState)([]),[o,s]=(0,w.useState)(null),[c,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(null),m=(0,w.useRef)(!1),h=(0,w.useRef)(0),g=(0,w.useRef)(!0);(0,w.useEffect)(()=>(g.current=!0,()=>{g.current=!1,p.current?.abort(),h.current++}),[]);let _=(0,w.useCallback)(()=>{ge().then(e=>{g.current&&t(e)}).catch(()=>{})},[]),v=(0,w.useCallback)(()=>{p.current?.abort(),p.current=null,h.current++,f.current=null,r(E()),a([]),s(null),l(null),d(null)},[]),y=(0,w.useCallback)(async e=>{p.current?.abort(),p.current=null,h.current++;let t=h.current;r(e),a([]),f.current=null,s(null),l(null),d(null);try{let n=await _e(e);if(h.current!==t)return;f.current=n.headMsgId,a(n.messages)}catch(e){if(h.current!==t)return;d(e.message)}},[]),b=(0,w.useCallback)(()=>{p.current?.abort(),p.current=null,s(null),l(null)},[]);return{threads:e,convId:n,messages:i,pending:o,pendingReasoning:c,error:u,send:(0,w.useCallback)((e,t)=>{if(!e.trim()||m.current)return!1;m.current=!0;let i=h.current,o=n??E();n===null&&r(o),d(null),a(t=>[...t,{msgId:`local-${E()}`,role:`user`,text:e,ts:Math.floor(Date.now()/1e3)}]),s(``);let c=new AbortController;p.current=c;let u=``,g=``;return(async()=>{try{await ve({convId:o,text:e,replyTo:f.current,context:t,signal:c.signal,onDelta:e=>{h.current===i&&(u=e,s(e))},onReasoning:e=>{h.current===i&&(g=e,l(e))},onDone:({msgId:e,parentMsgId:t})=>{h.current===i&&(f.current=e??t,u&&a(t=>[...t,{msgId:e??`local-${E()}`,role:`assistant`,text:u,ts:Math.floor(Date.now()/1e3),...g?{reasoning:g}:{}}]),s(null),l(null))},onError:e=>{h.current===i&&(d(e),s(null),l(null))}})}catch(e){h.current===i&&(e.name!==`AbortError`&&d(e.message),s(null),l(null))}finally{m.current=!1,h.current===i&&(p.current=null,_())}})(),!0},[n,_]),open:y,newConversation:v,loadThreads:_,stop:b}}function be(){let{pathname:e}=i(),t=e.split(`/`).filter(Boolean),n=new Set([`settings`,`browse`,`plugins`,`login`,`setup`]);if(t.length<2||n.has(t[0]))return{path:e};let[r,a,o]=t;return{path:e,library:r,type:a,...o&&o!==`new`?{id:o}:{}}}var xe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Se=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Ce={};function D(e,t){return((t||Ce).jsx?Se:xe).test(e)}var we=t(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
6
- `);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(!(e.charAt(0)!=`/`||e.charAt(1)!=`*`)){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function x(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),x()}function d(e){return e?e.replace(l,``):``}t.exports=u})),Te=t((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(we());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),Ee=t((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),De=t(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(Te()),r=Ee();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),Oe=k(`end`),O=k(`start`);function k(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function ke(e){let t=O(e),n=Oe(e);if(t&&n)return{start:t,end:n}}var Ae=e(De(),1),A={}.hasOwnProperty,je=new Map,Me=/[A-Z]/g,Ne=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),Pe=new Set([`td`,`th`]);function Fe(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=Ge(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=We(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?C:x,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=Ie(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function Ie(e,t,n){if(t.type===`element`)return Le(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Re(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return Be(e,t,n);if(t.type===`mdxjsEsm`)return ze(e,t);if(t.type===`root`)return Ve(e,t,n);if(t.type===`text`)return He(e,t)}function Le(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=C,e.schema=i),e.ancestors.push(t);let a=N(e,t.tagName,!1),o=Ke(e,t),s=M(e,t);return Ne.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!oe(e)})),Ue(e,o,a,t),j(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Re(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return y(n.type===`ExpressionStatement`),e.evaluater.evaluateExpression(n.expression)}P(e,t.position)}function ze(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);P(e,t.position)}function Be(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=C,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:N(e,t.name,!0),o=qe(e,t),s=M(e,t);return Ue(e,o,a,t),j(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Ve(e,t,n){let r={};return j(r,M(e,t)),e.create(t,e.Fragment,r,n)}function He(e,t){return t.value}function Ue(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function j(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function We(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function Ge(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=O(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Ke(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&A.call(t.properties,i)){let a=Je(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&Pe.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function qe(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];y(t.type===`ExpressionStatement`);let i=t.expression;y(i.type===`ObjectExpression`);let a=i.properties[0];y(a.type===`SpreadElement`),Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else P(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];y(t.type===`ExpressionStatement`),a=e.evaluater.evaluateExpression(t.expression)}else P(e,t.position);else a=r.value===null||r.value;n[i]=a}return n}function M(e,t){let n=[],r=-1,i=e.passKeys?new Map:je;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=Ie(e,a,o);s!==void 0&&n.push(s)}return n}function Je(e,t,n){let r=te(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?S(n):ee(n)),r.property===`style`){let t=typeof n==`object`?n:Ye(e,String(n));return e.stylePropertyNameCase===`css`&&(t=Xe(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?me[r.property]||r.property:r.attribute,n]}}function Ye(e,t){try{return(0,Ae.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new re("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=`https://github.com/syntax-tree/hast-util-to-jsx-runtime#cannot-parse-style-attribute`,r}}function N(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=D(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}y(i,`always a result`),r=i}else r=D(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return A.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);P(e)}function P(e,t){let n=new re("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=`https://github.com/syntax-tree/hast-util-to-jsx-runtime#cannot-handle-mdx-estrees-without-createevaluater`,n}function Xe(e){let t={},n;for(n in e)A.call(e,n)&&(t[Ze(n)]=e[n]);return t}function Ze(e){let t=e.replace(Me,Qe);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function Qe(e){return`-`+e.toLowerCase()}var F={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]};function $e(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function et(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
7
- `}]}function tt(e,t){let n=t.value?t.value+`
8
- `:``,r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function nt(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function rt(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function it(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=b(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function at(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function ot(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function I(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function st(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return I(e,t);let i={src:b(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function ct(e,t){let n={src:b(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function lt(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function ut(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return I(e,t);let i={href:b(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function dt(e,t){let n={href:b(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function ft(e,t,n){let r=e.all(t),i=n?pt(n):L(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s<r.length;){let e=r[s];(i||s!==0||e.type!==`element`||e.tagName!==`p`)&&o.push({type:`text`,value:`
9
- `}),e.type===`element`&&e.tagName===`p`&&!i?o.push(...e.children):o.push(e)}let c=r[r.length-1];c&&(i||c.type!==`element`||c.tagName!==`p`)&&o.push({type:`text`,value:`
10
- `});let l={type:`element`,tagName:`li`,properties:a,children:o};return e.patch(t,l),e.applyData(t,l)}function pt(e){let t=!1;if(e.type===`list`){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=L(n[r])}return t}function L(e){return e.spread??e.children.length>1}function mt(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i<r.length;){let e=r[i];if(e.type===`element`&&e.tagName===`li`&&e.properties&&Array.isArray(e.properties.className)&&e.properties.className.includes(`task-list-item`)){n.className=[`contains-task-list`];break}}let a={type:`element`,tagName:t.ordered?`ol`:`ul`,properties:n,children:e.wrap(r,!0)};return e.patch(t,a),e.applyData(t,a)}function ht(e,t){let n={type:`element`,tagName:`p`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function gt(e,t){let n={type:`root`,children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function _t(e,t){let n={type:`element`,tagName:`strong`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function vt(e,t){let n=e.all(t),r=n.shift(),i=[];if(r){let n={type:`element`,tagName:`thead`,properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],n),i.push(n)}if(n.length>0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=O(t.children[1]),o=Oe(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function yt(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s<o;){let n=t.children[s],r={},o=a?a[s]:void 0;o&&(r.align=o);let l={type:`element`,tagName:i,properties:r,children:[]};n&&(l.children=e.all(n),e.patch(n,l),l=e.applyData(n,l)),c.push(l)}let l={type:`element`,tagName:`tr`,properties:{},children:e.wrap(c,!0)};return e.patch(t,l),e.applyData(t,l)}function bt(e,t){let n={type:`element`,tagName:`td`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}var xt=9,St=32;function Ct(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),i=0,a=[];for(;r;)a.push(wt(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(wt(t.slice(i),i>0,!1)),a.join(``)}function wt(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===xt||t===St;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===xt||t===St;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function Tt(e,t){let n={type:`text`,value:Ct(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Et(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var Dt={blockquote:$e,break:et,code:tt,delete:nt,emphasis:rt,footnoteReference:it,heading:at,html:ot,imageReference:st,image:ct,inlineCode:lt,linkReference:ut,link:dt,listItem:ft,list:mt,paragraph:ht,root:gt,strong:_t,table:vt,tableCell:bt,tableRow:yt,text:Tt,thematicBreak:Et,toml:R,yaml:R,definition:R,footnoteDefinition:R};function R(){}var Ot=typeof self==`object`?self:globalThis,z=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new Ot[e](t)},kt=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(typeof Ot[e]==`function`?z(e,t):Error(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(z(a,o),i)};return r},B=e=>kt(new Map,e)(0),V=``,{toString:At}={},{keys:jt}=Object,H=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=At.call(e).slice(8,-1);switch(n){case`Array`:return[1,V];case`Object`:return[2,V];case`Date`:return[3,V];case`RegExp`:return[4,V];case`Map`:return[5,V];case`Set`:return[6,V];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:e instanceof Error?[7,e.name||`Error`]:[2,n]},U=([e,t])=>e===0&&(t===`function`||t===`symbol`),Mt=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=H(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of jt(r))(e||!U(H(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,isNaN(r.getTime())?V:r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(U(H(n))||U(H(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!U(H(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},W=(e,{json:t,lossy:n}={})=>{let r=[];return Mt(!(t||n),!!t,new Map,r)(e),r},G=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?B(W(e,t)):structuredClone(e):(e,t)=>B(W(e,t));function Nt(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function Pt(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function Ft(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||Nt,r=e.options.footnoteBackLabel||Pt,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c<e.footnoteOrder.length;){let i=e.footnoteById.get(e.footnoteOrder[c]);if(!i)continue;let a=e.all(i),o=String(i.identifier).toUpperCase(),l=b(o.toLowerCase()),u=0,d=[],f=e.footnoteCounts.get(o);for(;f!==void 0&&++u<=f;){d.length>0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...G(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:`
11
- `},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:`
12
- `}]}}var K={}.hasOwnProperty,It={};function Lt(e,t){let n=t||It,r=new Map,i=new Map,a={all:s,applyData:zt,definitionById:r,footnoteById:i,footnoteCounts:new Map,footnoteOrder:[],handlers:{...Dt,...n.handlers},one:o,options:n,patch:Rt,wrap:Vt};return ae(e,function(e){if(e.type===`definition`||e.type===`footnoteDefinition`){let t=e.type===`definition`?r:i,n=String(e.identifier).toUpperCase();t.has(n)||t.set(n,e)}}),a;function o(e,t){let n=e.type,r=a.handlers[n];if(K.call(a.handlers,n)&&r)return r(a,e,t);if(a.options.passThrough&&a.options.passThrough.includes(n)){if(`children`in e){let{children:t,...n}=e,r=G(n);return r.children=a.all(e),r}return G(e)}return(a.options.unknownHandler||Bt)(a,e,t)}function s(e){let t=[];if(`children`in e){let n=e.children,r=-1;for(;++r<n.length;){let i=a.one(n[r],e);if(i){if(r&&n[r-1].type===`break`&&(!Array.isArray(i)&&i.type===`text`&&(i.value=Ht(i.value)),!Array.isArray(i)&&i.type===`element`)){let e=i.children[0];e&&e.type===`text`&&(e.value=Ht(e.value))}Array.isArray(i)?t.push(...i):t.push(i)}}}return t}}function Rt(e,t){e.position&&(t.position=ke(e))}function zt(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;typeof t==`string`&&(n.type===`element`?n.tagName=t:n={type:`element`,tagName:t,properties:{},children:`children`in n?n.children:[n]}),n.type===`element`&&i&&Object.assign(n.properties,G(i)),`children`in n&&n.children&&r!=null&&(n.children=r)}return n}function Bt(e,t){let n=t.data||{},r=`value`in t&&!(K.call(n,`hProperties`)||K.call(n,`hChildren`))?{type:`text`,value:t.value}:{type:`element`,tagName:`div`,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Vt(e,t){let n=[],r=-1;for(t&&n.push({type:`text`,value:`
13
- `});++r<e.length;)r&&n.push({type:`text`,value:`
14
- `}),n.push(e[r]);return t&&e.length>0&&n.push({type:`text`,value:`
15
- `}),n}function Ht(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Ut(e,t){let n=Lt(e,t),r=n.one(e,void 0),i=Ft(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(y(`children`in a),a.children.push({type:`text`,value:`
16
- `},i)),a}function Wt(e,t){return e&&`run`in e?async function(n,r){let i=Ut(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Ut(n,{file:r,...e||t})}}var q=l(),Gt=[],Kt={allowDangerousHtml:!0},qt=/^(https?|ircs?|mailto|xmpp)$/i,Jt=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function Yt(e){let t=Xt(e),n=Zt(e);return Qt(t.runSync(t.parse(n),n),e)}function Xt(e){let t=e.rehypePlugins||Gt,n=e.remarkPlugins||Gt,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Kt}:Kt;return ne().use(se).use(n).use(Wt,r).use(t)}function Zt(e){let t=e.children||``,n=new ie;return typeof t==`string`?n.value=t:v("Unexpected value `"+t+"` for `children` prop, expected `string`"),n}function Qt(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||$t;for(let e of Jt)Object.hasOwn(t,e.from)&&v("Unexpected `"+e.from+"` prop, "+(e.to?"use `"+e.to+"` instead":`remove it`)+` (see <https://github.com/remarkjs/react-markdown/blob/main/changelog.md#`+e.id+`> for more info)`);return n&&a&&v("Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other"),ae(e,l),Fe(e,{Fragment:q.Fragment,components:i,ignoreInvalidStyle:!0,jsx:q.jsx,jsxs:q.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in F)if(Object.hasOwn(F,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=F[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function $t(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||qt.test(e.slice(0,t))?e:``}var en=/^[A-Za-z0-9._~%-]+$/;function tn(e,t){let n=e.split(`/`).filter(Boolean),r=t.split(`/`).filter(Boolean),i={};for(let e=0;e<r.length;e++){let t=r[e];if(t===`*`)return n.length>=e?i:null;let a=n[e];if(a===void 0)return null;if(t.startsWith(`:`)){if(!en.test(a))return null;i[t.slice(1)]=a}else if(t!==a)return null}return n.length===r.length?i:null}function nn(e,t,n,r=[]){let i=e.trim();if(!i||i.startsWith(`//`)||!i.startsWith(`/`)&&!/^https?:\/\//i.test(i))return{kind:`text`};let a;try{a=new URL(i,t)}catch{return{kind:`text`}}if(a.origin!==t)return{kind:`external`,href:a.href};for(let e of n){let t=tn(a.pathname,e.pattern);if(t)return r.length&&t.library!==void 0&&t.shelf!==void 0&&!r.some(e=>e.library===t.library&&e.shelf===t.shelf)?{kind:`text`}:{kind:`internal`,to:`${a.pathname}${a.search}${a.hash}`}}return{kind:`text`}}var J=o(),rn=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-nav.tsx`,an=(0,w.createContext)(()=>{});function on({onNavigate:e,children:t}){return(0,J.jsxDEV)(an.Provider,{value:e,children:t},void 0,!1,{fileName:rn,lineNumber:9,columnNumber:10},this)}function sn(){return(0,w.useContext)(an)}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-markdown.tsx`;function cn({text:e,className:t}){return(0,J.jsxDEV)(`div`,{className:t,children:(0,J.jsxDEV)(Yt,{remarkPlugins:[ce],components:{a:ln},children:e},void 0,!1,{fileName:Y,lineNumber:18,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:17,columnNumber:5},this)}function ln({href:e,children:t}){let n=sn(),r=[...p(),...f().map(e=>({pattern:`/${e.path}`}))],i=nn(e??``,window.location.origin,r,m());return i.kind===`internal`?(0,J.jsxDEV)(a,{to:i.to,onClick:n,children:t},void 0,!1,{fileName:Y,lineNumber:33,columnNumber:7},this):i.kind===`external`?(0,J.jsxDEV)(`a`,{href:i.href,target:`_blank`,rel:`noopener noreferrer`,children:t},void 0,!1,{fileName:Y,lineNumber:40,columnNumber:7},this):(0,J.jsxDEV)(J.Fragment,{children:t},void 0,!1,{fileName:Y,lineNumber:45,columnNumber:10},this)}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatMessages.tsx`;function un({messages:e,pending:t,pendingReasoning:n}){let{t:i}=r(),a=(0,w.useRef)(null);return(0,w.useEffect)(()=>{let e=a.current;e&&(e.scrollTop=e.scrollHeight)},[e.length,t]),!e.length&&t===null&&n===null?(0,J.jsxDEV)(`div`,{className:`flex-1 grid place-items-center text-muted text-sm`,children:i(`webchat.empty`)},void 0,!1,{fileName:X,lineNumber:20,columnNumber:12},this):(0,J.jsxDEV)(`div`,{ref:a,"data-chat-list":!0,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-3`,children:[e.map(e=>(0,J.jsxDEV)(dn,{role:e.role,text:e.text,reasoning:e.reasoning},e.msgId,!1,{fileName:X,lineNumber:27,columnNumber:9},this)),t!==null&&(0,J.jsxDEV)(dn,{role:`assistant`,text:t||i(`webchat.thinking`),reasoning:n},void 0,!1,{fileName:X,lineNumber:29,columnNumber:28},this)]},void 0,!0,{fileName:X,lineNumber:25,columnNumber:5},this)}var dn=(0,w.memo)(function({role:e,text:t,reasoning:n}){let{t:i}=r();return e===`user`?(0,J.jsxDEV)(`div`,{className:`self-end max-w-[85%] rounded-2xl rounded-br-sm bg-accent/15 px-3 py-2 text-sm whitespace-pre-wrap break-words`,children:t},void 0,!1,{fileName:X,lineNumber:44,columnNumber:7},this):(0,J.jsxDEV)(`div`,{className:`self-start max-w-[95%] min-w-0 rounded-2xl rounded-bl-sm bg-elevated px-3 py-2 text-sm break-words`,children:[n?(0,J.jsxDEV)(`details`,{className:`mb-2 rounded-lg border border-border px-2 py-1`,children:[(0,J.jsxDEV)(`summary`,{className:`cursor-pointer select-none text-xs text-muted`,children:i(`webchat.reasoning`)},void 0,!1,{fileName:X,lineNumber:54,columnNumber:11},this),(0,J.jsxDEV)(cn,{text:n,className:`md-static mt-1 text-xs text-muted`},void 0,!1,{fileName:X,lineNumber:55,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:53,columnNumber:9},this):null,(0,J.jsxDEV)(cn,{text:t,className:`md-static`},void 0,!1,{fileName:X,lineNumber:58,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:50,columnNumber:5},this)}),Z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatComposer.tsx`;function fn({streaming:e,onSend:t,onStop:n}){let{t:i}=r(),[a,o]=(0,w.useState)(``);function s(){!a.trim()||e||t(a.trim())&&o(``)}return(0,J.jsxDEV)(`div`,{className:`flex shrink-0 items-end gap-2 border-t border-border p-2`,children:[(0,J.jsxDEV)(`textarea`,{className:`flex-1 resize-none rounded-lg border border-border bg-bg px-3 py-2 text-sm max-h-32`,rows:1,value:a,placeholder:i(`webchat.placeholder`),onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),s())}},void 0,!1,{fileName:Z,lineNumber:29,columnNumber:7},this),e?(0,J.jsxDEV)(`button`,{"aria-label":i(`webchat.stop`),className:`rounded-lg p-2 hover:bg-elevated`,onClick:n,children:(0,J.jsxDEV)(d,{size:18},void 0,!1,{fileName:Z,lineNumber:45,columnNumber:11},this)},void 0,!1,{fileName:Z,lineNumber:44,columnNumber:9},this):(0,J.jsxDEV)(`button`,{"aria-label":i(`webchat.send`),className:`rounded-lg p-2 hover:bg-elevated`,onClick:s,children:(0,J.jsxDEV)(pe,{size:18},void 0,!1,{fileName:Z,lineNumber:49,columnNumber:11},this)},void 0,!1,{fileName:Z,lineNumber:48,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:28,columnNumber:5},this)}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatThreadList.tsx`;function pn({threads:e,activeId:t,onOpen:n,onNew:i,className:a=`w-[220px] shrink-0`}){let{t:o}=r();return(0,J.jsxDEV)(`aside`,{"aria-label":o(`webchat.threads`),className:`${a} border-r border-border flex flex-col`,children:[(0,J.jsxDEV)(`button`,{className:`flex items-center gap-2 px-3 py-2 text-sm hover:bg-elevated`,onClick:i,children:[(0,J.jsxDEV)(u,{size:16},void 0,!1,{fileName:Q,lineNumber:23,columnNumber:9},this),` `,o(`webchat.newConversation`)]},void 0,!0,{fileName:Q,lineNumber:22,columnNumber:7},this),(0,J.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:e.map(e=>(0,J.jsxDEV)(`button`,{onClick:()=>n(e.convId),className:`block w-full truncate px-3 py-2 text-left text-sm hover:bg-elevated ${e.convId===t?`bg-elevated font-medium`:``}`,children:e.title||o(`webchat.newConversation`)},e.convId,!1,{fileName:Q,lineNumber:27,columnNumber:11},this))},void 0,!1,{fileName:Q,lineNumber:25,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:21,columnNumber:5},this)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatWidget.tsx`;function mn(e){return e?`panel`:`bubble`}function hn(){let{t:e}=r(),t=ye(),n=be(),[i,a]=(0,w.useState)(`bubble`),[o,s]=(0,w.useState)(!1),l=h(`sm`,640),d=h(`nav`,768),f=(0,w.useCallback)(()=>{a(mn(d))},[d]),p=(0,w.useRef)(null),m=(0,w.useRef)(`bubble`);(0,w.useEffect)(()=>{if(i!==`modal`)return;let e=e=>{e.key===`Escape`&&a(`panel`)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,w.useEffect)(()=>{i===`panel`&&m.current===`modal`&&p.current?.focus(),i!==`modal`&&s(!1),m.current=i},[i]),(0,w.useEffect)(()=>{if(i!==`modal`)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[i]);let v=i!==`bubble`;(0,w.useEffect)(()=>{v&&t.loadThreads()},[v,t.loadThreads]);function y(){t.newConversation(),s(!1)}let b=t.messages.length>0||t.pending!==null,x=(0,J.jsxDEV)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border px-3 py-2`,children:[(0,J.jsxDEV)(`span`,{className:`text-sm font-medium`,children:e(`webchat.title`)},void 0,!1,{fileName:$,lineNumber:92,columnNumber:7},this),(0,J.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[i===`modal`&&!l&&(0,J.jsxDEV)(`button`,{"aria-label":e(`webchat.threads`),"aria-expanded":o,className:`rounded p-1 hover:bg-elevated`,onClick:()=>s(e=>!e),children:(0,J.jsxDEV)(le,{size:16},void 0,!1,{fileName:$,lineNumber:103,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:97,columnNumber:11},this),b&&(0,J.jsxDEV)(`button`,{"aria-label":e(`webchat.newConversation`),className:`rounded p-1 hover:bg-elevated`,onClick:y,children:(0,J.jsxDEV)(u,{size:16},void 0,!1,{fileName:$,lineNumber:112,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:111,columnNumber:11},this),(0,J.jsxDEV)(`button`,{ref:p,"aria-label":e(i===`modal`?`webchat.collapse`:`webchat.expand`),className:`rounded p-1 hover:bg-elevated`,onClick:()=>a(i===`modal`?`panel`:`modal`),children:i===`modal`?(0,J.jsxDEV)(fe,{size:16},void 0,!1,{fileName:$,lineNumber:121,columnNumber:31},this):(0,J.jsxDEV)(ue,{size:16},void 0,!1,{fileName:$,lineNumber:121,columnNumber:57},this)},void 0,!1,{fileName:$,lineNumber:115,columnNumber:9},this),(0,J.jsxDEV)(`button`,{"aria-label":e(`webchat.close`),className:`rounded p-1 hover:bg-elevated`,onClick:()=>a(`bubble`),children:(0,J.jsxDEV)(c,{size:16},void 0,!1,{fileName:$,lineNumber:124,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:123,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:93,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:91,columnNumber:5},this),S=(0,J.jsxDEV)(on,{onNavigate:f,children:(0,J.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[t.error&&(0,J.jsxDEV)(`div`,{className:`px-3 py-2 text-sm text-danger`,children:e(`webchat.error`,{message:t.error})},void 0,!1,{fileName:$,lineNumber:135,columnNumber:24},this),(0,J.jsxDEV)(un,{messages:t.messages,pending:t.pending,pendingReasoning:t.pendingReasoning},void 0,!1,{fileName:$,lineNumber:136,columnNumber:9},this),(0,J.jsxDEV)(fn,{streaming:t.pending!==null,onSend:e=>t.send(e,n),onStop:t.stop},void 0,!1,{fileName:$,lineNumber:137,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:134,columnNumber:7},this)},void 0,!1,{fileName:$,lineNumber:131,columnNumber:5},this);if(i===`bubble`)return(0,J.jsxDEV)(`button`,{"aria-label":e(`webchat.open`),onClick:()=>a(`panel`),className:`fixed bottom-20 right-4 z-40 grid h-14 w-14 place-items-center rounded-full bg-accent text-white shadow-lg nav:bottom-4`,children:(0,J.jsxDEV)(de,{size:24},void 0,!1,{fileName:$,lineNumber:156,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:148,columnNumber:7},this);if(i===`panel`)return(0,J.jsxDEV)(`div`,{className:`fixed bottom-20 right-4 z-40 flex h-[560px] max-h-[80dvh] w-[380px] max-w-[calc(100vw-2rem)] flex-col overflow-hidden rounded-2xl border border-border bg-surface shadow-xl nav:bottom-4`,children:[x,S]},void 0,!0,{fileName:$,lineNumber:163,columnNumber:7},this);let ee=l||o;return(0,J.jsxDEV)(_,{open:!0,modal:!1,onOpenChange:e=>!e&&a(`panel`),children:[(0,J.jsxDEV)(`div`,{"data-chat-backdrop":!0,"aria-hidden":`true`,className:`fixed inset-0 z-[45] bg-black/50 backdrop-blur-sm`},void 0,!1,{fileName:$,lineNumber:183,columnNumber:7},this),(0,J.jsxDEV)(g,{hideClose:!0,className:`h-[85dvh] w-full p-0 md:h-[85dvh] md:w-[80vw] md:max-w-[1040px] md:overflow-y-hidden`,children:(0,J.jsxDEV)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[x,(0,J.jsxDEV)(`div`,{className:`flex min-h-0 flex-1`,children:[ee&&(0,J.jsxDEV)(pn,{threads:t.threads,activeId:t.convId,onOpen:e=>{t.open(e),s(!1)},onNew:y,className:l?`w-[220px] shrink-0`:`w-full`},void 0,!1,{fileName:$,lineNumber:197,columnNumber:15},this),(l||!o)&&S]},void 0,!0,{fileName:$,lineNumber:195,columnNumber:11},this)]},void 0,!0,{fileName:$,lineNumber:193,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:189,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:180,columnNumber:5},this)}export{hn as ChatWidget,hn as default,mn as nextModeAfterNav};
@@ -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-CnFXN8LC.js";import{r as l,t as u}from"./button-D-Q6I5Ob.js";import{C as d,D as f,T as p,h as m,p as h,w as g}from"./api-CL5tEEID.js";import{a as _,n as v,r as y}from"./auth-context-C7i2C9Lu.js";import{t as b}from"./PageBody-Y-cpiRMh.js";var x=e(t(),1),S=i(),C=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/switch.tsx`,w=x.forwardRef(({className:e,...t},n)=>(0,S.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,S.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:C,lineNumber:20,columnNumber:5},void 0)},void 0,!1,{fileName:C,lineNumber:9,columnNumber:3},void 0));w.displayName=s.displayName;var T=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/badge.tsx`,E=l(`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 D({className:e,variant:t,...n}){return(0,S.jsxDEV)(`div`,{className:a(E({variant:t}),e),...n},void 0,!1,{fileName:T,lineNumber:24,columnNumber:10},this)}var O=/^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 k(e){let t=O.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 A(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 j(e,t){let n=k(e),r=k(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=A(t,i);if(a!==0)return a>0}return!1}var M=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SettingsPage.tsx`;async function N(){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 P(){let{t:e}=n(),{role:t}=v(),i=t===`admin`,[a,o]=(0,x.useState)([]),[s,l]=(0,x.useState)(!0),[C,T]=(0,x.useState)(null),E=e=>C===e||C===`*`,[O,k]=(0,x.useState)(null),A=a.filter(e=>e.latestVersion&&j(e.latestVersion,e.installedVersion)),P=!!(O?.latestVersion&&O.installedVersion&&j(O.latestVersion,O.installedVersion)),I=A.length+ +!!P,[L,R]=(0,x.useState)(null),[z,B]=(0,x.useState)(!1),V=t=>e(`${t}.plugin.label`,{defaultValue:t}),H=t=>e(`${t}.plugin.description`,{defaultValue:``}),U=t=>e(`${t}.library.label`,{defaultValue:t}),W=(t,n)=>e(`${t}.${n}.label`,{defaultValue:n}),G={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`)},K=()=>Promise.all([m(),h()]).then(([e,t])=>{o(e),k(t),l(!1)});(0,x.useEffect)(()=>{K()},[]);async function q(t){if(!await _({title:e(`plugins.purgeTitle`),description:e(`plugins.confirmPurge`,{id:t.id}),confirmLabel:e(`plugins.purgeButton`),variant:`destructive`}))return;T(t.id),R(null);let n=await fetch(`/api/plugins/${t.id}/data`,{method:`DELETE`}),r=await n.json().catch(()=>({}));if(T(null),!n.ok){R(G[r.error]?.(r)??e(`plugins.genericError`,{code:r.error??n.status}));return}B(!0),await K()}async function J(t){T(t.id),R(null);let n=await d(t.id,!t.enabled);if(!n.ok){T(null),R(G[n.error]?.(n.data??{})??e(`plugins.genericError`,{code:n.error}));return}window.location.reload()}async function Y(t){if(!t.latestVersion||!await _({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;T(t.id),R(null);let n=await p(t.id);if(!n.ok){T(null),R(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}B(!0),await N()&&window.location.reload()}async function X(){if(I===0)return;let t=A.map(e=>`${V(e.id)}: v${e.installedVersion} → v${e.latestVersion}`);P&&t.push(`${e(`plugins.runtimeLabel`)}: v${O.installedVersion} → v${O.latestVersion}`);let n=t.join(`
2
- `);if(!await _({title:e(`plugins.updateAllButton`,{count:I}),description:e(`plugins.confirmUpdateAll`,{count:I,list:n}),confirmLabel:e(`plugins.updateButton`)}))return;T(`*`),R(null);let r=await g();if(!r.ok){T(null),R(r.stderr?`${e(`plugins.updateError`)}: ${r.stderr}`:e(`plugins.genericError`,{code:r.error}));return}B(!0),await N()&&window.location.reload()}let Z=a.find(e=>e.id===`core`),Q=!!(Z?.latestVersion&&j(Z.latestVersion,Z.installedVersion)),$=Q||P;async function ee(){let t=[];if(Z&&Q&&t.push(`${e(`core.settings.label`)}: v${Z.installedVersion} → v${Z.latestVersion}`),P&&t.push(`${e(`plugins.runtimeLabel`)}: v${O.installedVersion} → v${O.latestVersion}`),t.length===0||!await _({title:e(`plugins.updateAllButton`,{count:t.length}),description:e(`plugins.confirmUpdateAll`,{count:t.length,list:t.join(`
3
- `)}),confirmLabel:e(`plugins.updateButton`)}))return;T(`*`),R(null);let n=await f();if(!n.ok){T(null),R(n.stderr?`${e(`plugins.updateError`)}: ${n.stderr}`:e(`plugins.genericError`,{code:n.error}));return}B(!0),await N()&&window.location.reload()}return(0,S.jsxDEV)(b,{children:[(0,S.jsxDEV)(`h1`,{className:`mb-6 text-[28px] font-bold text-text`,children:e(`settings.title`)},void 0,!1,{fileName:M,lineNumber:207,columnNumber:7},this),(0,S.jsxDEV)(`section`,{className:`mb-6`,children:[(0,S.jsxDEV)(`h2`,{className:`mb-1 text-sm font-semibold uppercase tracking-wide text-muted`,children:e(`settings.personalTitle`)},void 0,!1,{fileName:M,lineNumber:211,columnNumber:9},this),(0,S.jsxDEV)(y,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,S.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,S.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`auth.accountTitle`)},void 0,!1,{fileName:M,lineNumber:214,columnNumber:13},this)},void 0,!1,{fileName:M,lineNumber:213,columnNumber:11},this),(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,S.jsxDEV)(r,{to:`/settings/account`,title:e(`auth.accountTitle`),"aria-label":e(`auth.accountTitle`),children:(0,S.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:M,lineNumber:218,columnNumber:15},this)},void 0,!1,{fileName:M,lineNumber:217,columnNumber:13},this)},void 0,!1,{fileName:M,lineNumber:216,columnNumber:11},this)]},void 0,!0,{fileName:M,lineNumber:212,columnNumber:9},this)]},void 0,!0,{fileName:M,lineNumber:210,columnNumber:7},this),i&&(0,S.jsxDEV)(S.Fragment,{children:[(0,S.jsxDEV)(`section`,{className:`mb-6`,children:[(0,S.jsxDEV)(`h2`,{className:`mb-1 text-sm font-semibold uppercase tracking-wide text-muted`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:M,lineNumber:228,columnNumber:13},this),(0,S.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.usersDescription`)},void 0,!1,{fileName:M,lineNumber:229,columnNumber:13},this),(0,S.jsxDEV)(y,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,S.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,S.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`settings.usersTitle`)},void 0,!1,{fileName:M,lineNumber:232,columnNumber:17},this)},void 0,!1,{fileName:M,lineNumber:231,columnNumber:15},this),(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,S.jsxDEV)(r,{to:`/settings/users`,title:e(`settings.usersTitle`),"aria-label":e(`settings.usersTitle`),children:(0,S.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:M,lineNumber:236,columnNumber:19},this)},void 0,!1,{fileName:M,lineNumber:235,columnNumber:17},this)},void 0,!1,{fileName:M,lineNumber:234,columnNumber:15},this)]},void 0,!0,{fileName:M,lineNumber:230,columnNumber:13},this)]},void 0,!0,{fileName:M,lineNumber:227,columnNumber:11},this),(0,S.jsxDEV)(`section`,{children:[(0,S.jsxDEV)(`div`,{className:`mb-1 flex items-center gap-3`,children:[(0,S.jsxDEV)(`h2`,{className:`text-sm font-semibold uppercase tracking-wide text-muted`,children:e(`settings.componentsTitle`)},void 0,!1,{fileName:M,lineNumber:245,columnNumber:15},this),I>0&&(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,disabled:C!==null,onClick:X,className:`shrink-0 border border-accent/40 text-accent hover:bg-accent/10 hover:text-accent`,children:e(`plugins.updateAllButton`,{count:I})},void 0,!1,{fileName:M,lineNumber:247,columnNumber:17},this)]},void 0,!0,{fileName:M,lineNumber:244,columnNumber:13},this),(0,S.jsxDEV)(`p`,{className:`mb-3 text-sm text-muted`,children:e(`settings.componentsDescription`)},void 0,!1,{fileName:M,lineNumber:259,columnNumber:13},this),s?(0,S.jsxDEV)(`p`,{className:`text-muted`,children:e(`plugins.loading`)},void 0,!1,{fileName:M,lineNumber:262,columnNumber:15},this):(0,S.jsxDEV)(S.Fragment,{children:[z&&(0,S.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,S.jsxDEV)(`b`,{children:e(`plugins.restartBannerBold`)},void 0,!1,{fileName:M,lineNumber:268,columnNumber:21},this),e(`plugins.restartBannerAfter`)]},void 0,!0,{fileName:M,lineNumber:266,columnNumber:19},this),L&&(0,S.jsxDEV)(`div`,{className:`mb-5 rounded-xl border border-danger/40 bg-danger/10 px-4 py-3 text-sm text-danger`,children:L},void 0,!1,{fileName:M,lineNumber:273,columnNumber:19},this),(0,S.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,S.jsxDEV)(y,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,S.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,S.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,S.jsxDEV)(`span`,{className:`font-semibold text-text`,children:e(`core.settings.label`)},void 0,!1,{fileName:M,lineNumber:283,columnNumber:25},this),Z&&(0,S.jsxDEV)(D,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,Z.installedVersion]},void 0,!0,{fileName:M,lineNumber:285,columnNumber:27},this),$&&(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,disabled:C!==null,onClick:ee,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:M,lineNumber:290,columnNumber:27},this)]},void 0,!0,{fileName:M,lineNumber:282,columnNumber:23},this),(0,S.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:e(`settings.systemDescription`)},void 0,!1,{fileName:M,lineNumber:303,columnNumber:23},this)]},void 0,!0,{fileName:M,lineNumber:281,columnNumber:21},this),(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,S.jsxDEV)(r,{to:`/settings/core`,title:e(`core.settings.label`),"aria-label":e(`core.settings.label`),children:(0,S.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:M,lineNumber:307,columnNumber:25},this)},void 0,!1,{fileName:M,lineNumber:306,columnNumber:23},this)},void 0,!1,{fileName:M,lineNumber:305,columnNumber:21},this)]},void 0,!0,{fileName:M,lineNumber:280,columnNumber:19},this),a.filter(e=>e.id!==`core`).map(t=>{let n=H(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=>V(e.id)).join(`, `)}):t.enabled?e(`plugins.switchDisable`):e(`plugins.switchEnable`),l=[t.dependsOn.length>0&&`${e(`plugins.metaDepends`)} ${t.dependsOn.map(V).join(`, `)}`,t.libraries.length>0&&`${e(`plugins.metaLibraries`)} ${t.libraries.map(U).join(`, `)}`,t.extends.length>0&&`${e(`plugins.metaExtends`)} ${t.extends.map(e=>W(t.id,e)).join(`, `)}`].filter(Boolean).join(` · `)||`—`;return(0,S.jsxDEV)(y,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,S.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,S.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,S.jsxDEV)(`span`,{className:`font-semibold text-text`,children:V(t.id)},void 0,!1,{fileName:M,lineNumber:342,columnNumber:31},this),(0,S.jsxDEV)(F,{plugin:t,busy:E(t.id),onUpdate:()=>Y(t)},void 0,!1,{fileName:M,lineNumber:343,columnNumber:31},this)]},void 0,!0,{fileName:M,lineNumber:341,columnNumber:29},this),n&&(0,S.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:n},void 0,!1,{fileName:M,lineNumber:345,columnNumber:45},this),(0,S.jsxDEV)(`div`,{className:`text-xs text-muted mt-0.5 truncate`,children:l},void 0,!1,{fileName:M,lineNumber:346,columnNumber:29},this)]},void 0,!0,{fileName:M,lineNumber:340,columnNumber:27},this),t.hasSettings&&(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,className:`shrink-0 border border-border`,asChild:!0,children:(0,S.jsxDEV)(r,{to:`/settings/${t.id}`,title:e(`plugins.settingsTitle`,{defaultValue:`Settings`}),"aria-label":e(`plugins.settingsTitle`,{defaultValue:`Settings`}),children:(0,S.jsxDEV)(c,{name:`lucide:settings`,size:16},void 0,!1,{fileName:M,lineNumber:361,columnNumber:33},this)},void 0,!1,{fileName:M,lineNumber:356,columnNumber:31},this)},void 0,!1,{fileName:M,lineNumber:349,columnNumber:29},this),(0,S.jsxDEV)(u,{variant:`ghost`,size:`sm`,type:`button`,disabled:E(t.id),onClick:()=>q(t),title:e(`plugins.purgeTitle`),className:`shrink-0 border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:e(`plugins.purgeButton`)},void 0,!1,{fileName:M,lineNumber:365,columnNumber:27},this),(0,S.jsxDEV)(`span`,{title:s,className:`shrink-0`,children:(0,S.jsxDEV)(w,{checked:t.enabled,disabled:E(t.id)||o,onCheckedChange:()=>J(t),title:s},void 0,!1,{fileName:M,lineNumber:379,columnNumber:29},this)},void 0,!1,{fileName:M,lineNumber:378,columnNumber:27},this)]},t.id,!0,{fileName:M,lineNumber:339,columnNumber:25},this)})]},void 0,!0,{fileName:M,lineNumber:278,columnNumber:17},this)]},void 0,!0,{fileName:M,lineNumber:264,columnNumber:15},this)]},void 0,!0,{fileName:M,lineNumber:243,columnNumber:11},this)]},void 0,!0,{fileName:M,lineNumber:225,columnNumber:9},this)]},void 0,!0,{fileName:M,lineNumber:206,columnNumber:5},this)}function F({plugin:e,busy:t,onUpdate:r}){let{t:i}=n(),a=!!(e.latestVersion&&j(e.latestVersion,e.installedVersion));return(0,S.jsxDEV)(S.Fragment,{children:[(0,S.jsxDEV)(D,{variant:`secondary`,className:`text-[10px] font-medium`,children:[`v`,e.installedVersion]},void 0,!0,{fileName:M,lineNumber:412,columnNumber:7},this),a&&(0,S.jsxDEV)(u,{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:M,lineNumber:416,columnNumber:9},this)]},void 0,!0,{fileName:M,lineNumber:411,columnNumber:5},this)}export{P as SettingsPage};
@@ -1 +0,0 @@
1
- async function e(e){let t=new FormData;t.append(`file`,e);let n=await fetch(`/api/upload`,{method:`POST`,body:t});if(!n.ok)return null;let r=await n.json(),i=r.name??r.filename;return i?{name:i,...r.mime?{mime:r.mime}:{},...r.size==null?{}:{size:r.size}}:null}function t(e){return`/uploads/${e}`}async function n(e){let t=await fetch(`/api/embed`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({url:e})});return t.ok?await t.json():null}var r=new Map;function i(e){let t=r.get(e);if(t)return t;let n=fetch(e).then(t=>{if(!t.ok)throw Error(`GET ${e} → ${t.status}`);return t.json()}).finally(()=>{r.delete(e)});return r.set(e,n),n}function a(e,t,n){return i(`/api/${e}/${t}${n&&Object.keys(n).length?`?`+new URLSearchParams(n).toString():``}`)}async function o(e,t,n){let r=await fetch(`/api/${e}/${t}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n)});return r.status===201?{ok:!0,row:await r.json()}:r.status===422?{ok:!1,issues:(await r.json()).issues}:{ok:!1,issues:[{field:``,code:`server`,path:[]}]}}async function s(e,t,n,r){let i=await fetch(`/api/${e}/${t}/${n}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(r)});return i.ok?{ok:!0,row:await i.json()}:i.status===422?{ok:!1,issues:(await i.json()).issues}:{ok:!1,issues:[{field:``,code:`server`,path:[]}]}}async function c(e,t,n){return(await fetch(`/api/${e}/${t}/${n}`,{method:`DELETE`})).status===204}async function l(){let e=await fetch(`/api/plugins?updates=1`);if(!e.ok)throw Error(`plugins`);return e.json()}async function u(e,t){let n=await fetch(`/api/plugins/${e}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify({enabled:t})}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0}:{ok:!1,error:r.error??String(n.status),data:r}}async function d(e){let t=await fetch(`/api/plugins/${e}/update`,{method:`POST`}),n=await t.json().catch(()=>({}));return t.ok?{ok:!0}:{ok:!1,error:n.error??String(t.status),stderr:n.stderr}}async function f(){let e=await fetch(`/api/plugins/update-all`,{method:`POST`}),t=await e.json().catch(()=>({}));return e.ok?{ok:!0,updated:t.updated}:{ok:!1,error:t.error??String(e.status),stderr:t.stderr}}async function p(){let e=await fetch(`/api/system/update`,{method:`POST`}),t=await e.json().catch(()=>({}));return e.ok?{ok:!0,updated:t.updated}:{ok:!1,error:t.error??String(e.status),stderr:t.stderr}}async function m(){let e=await fetch(`/api/runtime`);return e.ok?await e.json():{installedVersion:null,latestVersion:null}}async function h(e,t){let n=await fetch(e,{headers:{"content-type":`application/json`},...t}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0,data:r}:{ok:!1,status:n.status,data:r}}function g(){return i(`/api/auth/status`)}function _(e,t,n){return h(`/api/auth/setup`,{method:`POST`,body:JSON.stringify({login:e,password:t,displayName:n})})}function v(e,t){return h(`/api/auth/login`,{method:`POST`,body:JSON.stringify({login:e,password:t})})}async function y(){await fetch(`/api/auth/logout`,{method:`POST`})}async function b(){let e=await fetch(`/api/auth/me`);return e.ok?e.json():null}function x(e){return h(`/api/auth/me`,{method:`PATCH`,body:JSON.stringify(e)})}function S(e){return h(`/api/auth/users${e?`?q=${encodeURIComponent(e)}`:``}`)}function C(e){return h(`/api/auth/users`,{method:`POST`,body:JSON.stringify(e)})}function w(e,t){return h(`/api/auth/users/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}function T(e){return h(`/api/auth/users/${e}`,{method:`DELETE`})}function E(){return h(`/api/auth/tokens`)}function D(e,t){return h(`/api/auth/tokens`,{method:`POST`,body:JSON.stringify({name:e,token:t})})}function O(e){return h(`/api/auth/tokens/${e}`,{method:`DELETE`})}function k(){return h(`/api/oauth/grants`)}function A(e){return h(`/api/oauth/grants/${encodeURIComponent(e)}`,{method:`DELETE`})}export{u as C,p as D,s as E,w as O,O as S,d as T,E as _,g as a,n as b,D as c,T as d,i as f,a as g,l as h,_ as i,e as k,C as l,k as m,y as n,x as o,m as p,b as r,o as s,v as t,c as u,S as v,f as w,A as x,t as y};