@protobase/ui 0.12.19 → 0.12.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.js +1 -1
- package/dist/shell/assets/{app-UZDmvzr8.js → app-D72h8BfW.js} +2 -2
- package/dist/shell/assets/{index-B5suH4n_.js → index-CRZv7xHY.js} +1 -1
- package/dist/shell/assets/{maplibre-gl-D_Fikah0.js → maplibre-gl-B8lfaWX9.js} +1 -1
- package/dist/shell/assets/{record-map-2lnuZ7x0.js → record-map-DJgpmB9O.js} +2 -2
- package/dist/shell/assets/{shared-protobase-ui-BxNF84PM.js → shared-protobase-ui-DxujbpUX.js} +1 -1
- package/dist/shell/index.html +3 -3
- package/dist/shell/protobase.shell.json +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/record-map-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/record-map-DJgpmB9O.js","assets/rolldown-runtime-hePW80VL.js","assets/react-Cvdyeg_0.js","assets/jsx-runtime-NZYk81nU.js","assets/react-dom-B-VxWsjA.js","assets/record-map-DBE96hFo.css"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{n as e,r as t,t as n}from"./rolldown-runtime-hePW80VL.js";import{t as r}from"./react-Cvdyeg_0.js";import{t as i}from"./jsx-runtime-NZYk81nU.js";import{t as a}from"./react-dom-B-VxWsjA.js";var o=/^[A-Z][A-Za-z0-9]*$/,s=e=>typeof e==`function`||typeof e==`object`&&!!e&&`$$typeof`in e,c=e=>{let t=e.default??{},n=Object.entries(e).filter(e=>e[0]!=="default"&&o.test(e[0])&&s(e[1]));if(n.length===0)return t;for(let[e,r]of n)if(t.components&&Object.hasOwn(t.components,e)&&t.components[e]!==r)throw Error(`The component "${e}" is exported by name and given in components as another one; keep the export`);return{...t,components:{...t.components,...Object.fromEntries(n)}}},l=t(r(),1),u=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function d(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:u(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var f=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},p=e=>{let t=f(e);return t.charAt(0).toUpperCase()+t.slice(1)},m=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),h={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function g(e){return e!=null}function _(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??h.width,a=e.size??e.height??h.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?m(...c):m(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??h[`stroke-width`])*Number(e.size??e.width??h.width)/Number(t.size??t.width??h.width):t.strokeWidth??h[`stroke-width`];return[`svg`,{...Object.entries(h).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&g(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&g(t.width)&&{[r(`width`)]:t.width},...`height`in t&&g(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function v(e,t={}){return _(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var y=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},b=(0,l.createContext)({}),x=()=>(0,l.useContext)(b),S=(0,l.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:u=[],icon:d={node:u,aliases:[],size:24},...f},p)=>{let{size:h=24,strokeWidth:g=2,absoluteStrokeWidth:_=!1,nonScalingStroke:b=!1,color:S=`currentColor`,className:C=``}=x()??{},w=!!c||y(f),[T,E,D=[]]=v(d,{color:e??S,width:n??t??h,height:r??t??h,strokeWidth:i??g,absoluteStrokeWidth:a??_,nonScalingStroke:o??b,className:m(C,s),hasA11yProp:w,attributes:f});return(0,l.createElement)(T,{ref:p,...E},[...D.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function C(e,t=[],n=[]){let r=typeof e==`string`?d(e,t,n):e,i=(0,l.forwardRef)(({className:e,...t},n)=>(0,l.createElement)(S,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=p(r.name)),i}var w={name:`arrow-down`,size:24,node:[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]};w.node;var T=C(w),E={name:`arrow-up`,size:24,node:[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]};E.node;var D=C(E),O={name:`book-open`,size:24,node:[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]};O.node;var k=C(O),A={name:`boxes`,size:24,node:[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]};A.node;var j=C(A),M={name:`building-complex`,size:24,node:[[`path`,{d:`M10 12h4`,key:`a56b0p`}],[`path`,{d:`M10 8h4`,key:`1sr2af`}],[`path`,{d:`M14 21v-3a2 2 0 0 0-4 0v3`,key:`1rgiei`}],[`path`,{d:`M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2`,key:`secmi2`}],[`path`,{d:`M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16`,key:`16ra0t`}]],aliases:[`building-2`]};M.node;var N=C(M),ee={name:`calendar`,size:24,node:[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}]]};ee.node;var te=C(ee),ne={name:`chart-column`,size:24,node:[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]],aliases:[`bar-chart-3`]};ne.node;var re=C(ne),ie={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};ie.node;var ae=C(ie),oe={name:`chevron-down`,size:24,node:[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]};oe.node;var se=C(oe),ce={name:`chevron-left`,size:24,node:[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]};ce.node;var le=C(ce),ue={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};ue.node;var P=C(ue),de={name:`chevrons-up-down`,size:24,node:[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]};de.node;var fe=C(de),pe={name:`circle-arrow-up`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]],aliases:[`arrow-up-circle`]};pe.node;var me=C(pe),he={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};he.node;var ge=C(he),_e={name:`circle-x`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-circle`]};_e.node;var ve=C(_e),ye={name:`circle`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]};ye.node;var be=C(ye),xe={name:`columns-3`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]],aliases:[`panels-left-right`]};xe.node;var Se=C(xe),Ce={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};Ce.node;var we=C(Ce),Te={name:`credit-card`,size:24,node:[[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`2`,key:`ynyp8z`}],[`line`,{x1:`2`,x2:`22`,y1:`10`,y2:`10`,key:`1b3vmo`}],[`path`,{d:`M6 14h2`,key:`mk7k0u`}]]};Te.node;var Ee=C(Te),De={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};De.node;var Oe=C(De),ke={name:`earth`,size:24,node:[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],aliases:[`globe-2`]};ke.node;var Ae=C(ke),je={name:`ellipsis`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]],aliases:[`more-horizontal`]};je.node;var Me=C(je),Ne={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};Ne.node;var Pe=C(Ne),Fe={name:`eye-off`,size:24,node:[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]};Fe.node;var Ie=C(Fe),Le={name:`eye`,size:24,node:[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Le.node;var Re=C(Le),ze={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};ze.node;var Be=C(ze),Ve={name:`file-text`,size:24,node:[[`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`}]]};Ve.node;var He=C(Ve),Ue={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};Ue.node;var We=C(Ue),Ge={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};Ge.node;var Ke=C(Ge),qe={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};qe.node;var Je=C(qe),Ye={name:`layout-grid`,size:24,node:[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]};Ye.node;var eee=C(Ye),Xe={name:`life-buoy`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m4.93 4.93 4.24 4.24`,key:`1ymg45`}],[`path`,{d:`m14.83 9.17 4.24-4.24`,key:`1cb5xl`}],[`path`,{d:`m14.83 14.83 4.24 4.24`,key:`q42g0n`}],[`path`,{d:`m9.17 14.83-4.24 4.24`,key:`bqpfvv`}],[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}]]};Xe.node;var Ze=C(Xe),Qe={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Qe.node;var $e=C(Qe),et={name:`list`,size:24,node:[[`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`}]]};et.node;var tt=C(et),nt={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};nt.node;var tee=C(nt),rt={name:`lock`,size:24,node:[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]};rt.node;var nee=C(rt),it={name:`log-in`,size:24,node:[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]};it.node;var at=C(it),ot={name:`log-out`,size:24,node:[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]};ot.node;var st=C(ot),ct={name:`mail`,size:24,node:[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]};ct.node;var lt=C(ct),ut={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};ut.node;var dt=C(ut),ft={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};ft.node;var pt=C(ft),mt={name:`network`,size:24,node:[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]};mt.node;var ht=C(mt),gt={name:`package`,size:24,node:[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]};gt.node;var _t=C(gt),vt={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};vt.node;var yt=C(vt),bt={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};bt.node;var xt=C(bt),St={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};St.node;var Ct=C(St),wt={name:`receipt`,size:24,node:[[`path`,{d:`M12 17V7`,key:`pyj7ub`}],[`path`,{d:`M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8`,key:`1elt7d`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]};wt.node;var Tt=C(wt),Et={name:`ruler-dimension-line`,size:24,node:[[`path`,{d:`M10 15v-3`,key:`1pjskw`}],[`path`,{d:`M14 15v-3`,key:`1o1mqj`}],[`path`,{d:`M18 15v-3`,key:`cws6he`}],[`path`,{d:`M2 8V4`,key:`3jv1jz`}],[`path`,{d:`M22 6H2`,key:`1iqbfk`}],[`path`,{d:`M22 8V4`,key:`16f4ou`}],[`path`,{d:`M6 15v-3`,key:`1ij1qe`}],[`rect`,{x:`2`,y:`12`,width:`20`,height:`8`,rx:`2`,key:`1tqiko`}]]};Et.node;var Dt=C(Et),Ot={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};Ot.node;var kt=C(Ot),At={name:`send-horizontal`,size:24,node:[[`path`,{d:`M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z`,key:`117uat`}],[`path`,{d:`M6 12h16`,key:`s4cdu5`}]],aliases:[`send-horizonal`]};At.node;var jt=C(At),Mt={name:`send`,size:24,node:[[`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`}]]};Mt.node;var Nt=C(Mt),Pt={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Pt.node;var Ft=C(Pt),It={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};It.node;var Lt=C(It),Rt={name:`shopping-cart`,size:24,node:[[`path`,{d:`m2.05 2.05 1.099-.028a1 1 0 0 1 1.008.815l2.69 14.347A1 1 0 0 0 7.83 18H18`,key:`uebgi3`}],[`path`,{d:`M4.563 5h16.435a1 1 0 0 1 .981 1.204l-1.026 6.226A2 2 0 0 1 18.962 14H6.25`,key:`1j7c9p`}],[`circle`,{cx:`18`,cy:`20`,r:`2`,key:`t9985n`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]};Rt.node;var zt=C(Rt),Bt={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]};Bt.node;var Vt=C(Bt),Ht={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};Ht.node;var Ut=C(Ht),Wt={name:`square-kanban`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M8 7v7`,key:`1x2jlm`}],[`path`,{d:`M12 7v4`,key:`xawao1`}],[`path`,{d:`M16 7v9`,key:`1hp2iy`}]],aliases:[`kanban-square`]};Wt.node;var Gt=C(Wt),Kt={name:`table-2`,size:24,node:[[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}]]};Kt.node;var qt=C(Kt),Jt={name:`tags`,size:24,node:[[`path`,{d:`M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z`,key:`16rjxf`}],[`path`,{d:`M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193`,key:`178nd4`}],[`circle`,{cx:`10.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`12ikhr`}]]};Jt.node;var Yt=C(Jt),Xt={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};Xt.node;var Zt=C(Xt),Qt={name:`truck`,size:24,node:[[`path`,{d:`M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2`,key:`wrbu53`}],[`path`,{d:`M15 18H9`,key:`1lyqi6`}],[`path`,{d:`M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14`,key:`lysw3i`}],[`circle`,{cx:`17`,cy:`18`,r:`2`,key:`332jqn`}],[`circle`,{cx:`7`,cy:`18`,r:`2`,key:`19iecd`}]]};Qt.node;var $t=C(Qt),en={name:`upload`,size:24,node:[[`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`}]]};en.node;var tn=C(en),nn={name:`user-round-cog`,size:24,node:[[`path`,{d:`m14.305 19.53.923-.382`,key:`3m78fa`}],[`path`,{d:`m15.228 16.852-.923-.383`,key:`npixar`}],[`path`,{d:`m16.852 15.228-.383-.923`,key:`5xggr7`}],[`path`,{d:`m16.852 20.772-.383.924`,key:`dpfhf9`}],[`path`,{d:`m19.148 15.228.383-.923`,key:`1reyyz`}],[`path`,{d:`m19.53 21.696-.382-.924`,key:`1goivc`}],[`path`,{d:`M2 21a8 8 0 0 1 10.434-7.62`,key:`1yezr2`}],[`path`,{d:`m20.772 16.852.924-.383`,key:`htqkph`}],[`path`,{d:`m20.772 19.148.924.383`,key:`9w9pjp`}],[`circle`,{cx:`10`,cy:`8`,r:`5`,key:`o932ke`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}]],aliases:[`user-cog-2`]};nn.node;var rn=C(nn),an={name:`users`,size:24,node:[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]};an.node;var on=C(an),sn={name:`wallet`,size:24,node:[[`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`,key:`18etb6`}],[`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`,key:`xoc0q4`}]]};sn.node;var ree=C(sn),cn={name:`warehouse`,size:24,node:[[`path`,{d:`M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11`,key:`pb2vm6`}],[`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z`,key:`doq5xv`}],[`path`,{d:`M6 13h12`,key:`yf64js`}],[`path`,{d:`M6 17h12`,key:`1jwigz`}]]};cn.node;var ln=C(cn),un={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};un.node;var dn=C(un),fn={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]};fn.node;var pn=C(fn),mn=`/-/account`,hn=`/-/sign-in-policy`,gn=(e,t,n)=>[{id:`account-security`,label:`Sign-in & security`,icon:Ke,href:`${e}${mn}`,active:t===mn},...n?[{id:`sign-in-policy`,label:`Sign-in policy`,icon:Lt,href:`${e}${hn}`,active:t===hn}]:[]],F=(...e)=>e.filter(Boolean).join(` `),_n=e=>(0,l.useSyncExternalStore)(t=>{let n=window.matchMedia(e);return n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t)},()=>window.matchMedia(e).matches,()=>!1),vn=()=>_n(`(min-width: 768px)`),yn=()=>_n(`not all and (min-width: 640px)`),I=t(i(),1),bn=e=>e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey,xn=`flex min-h-[49px] min-w-0 flex-1 flex-col items-center justify-center gap-1 pb-1 pt-1.5 text-[10px] font-medium leading-none`,Sn=({tabs:e,onNavigate:t,onMore:n,moreOpen:r,moreControls:i})=>{let a=!e.some(e=>e.active);return(0,I.jsxs)(`nav`,{"aria-label":`Tabs`,className:`flex shrink-0 border-t bg-background pb-[env(safe-area-inset-bottom)] md:hidden`,children:[e.map(e=>{let n=e.icon;return(0,I.jsxs)(`a`,{href:e.href,"aria-current":e.active?`page`:void 0,...e.external?{target:`_blank`,rel:`noreferrer`}:{},onClick:n=>{!e.external&&t&&bn(n)&&(n.preventDefault(),t(e.href))},className:F(xn,e.active?`text-primary-text`:`text-muted-foreground`),children:[(0,I.jsx)(n,{className:`size-6`,strokeWidth:e.active?2.2:1.9,"aria-hidden":!0}),(0,I.jsx)(`span`,{className:`max-w-full truncate px-0.5`,children:e.label})]},e.id)}),(0,I.jsxs)(`button`,{type:`button`,"aria-expanded":r,"aria-controls":i,"data-current":a||void 0,onClick:n,className:F(xn,a?`text-primary-text`:`text-muted-foreground`),children:[(0,I.jsx)(Me,{className:`size-6`,strokeWidth:a?2.2:1.9,"aria-hidden":!0}),`More`]})]})},Cn=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,wn=(e,t,n)=>{let r=(0,l.useRef)(n);r.current=n,(0,l.useEffect)(()=>{if(!t||!e.current)return;let n=e.current,i=document.activeElement instanceof HTMLElement?document.activeElement:null,a=document.body.style.overflow;document.body.style.overflow=`hidden`;let o=()=>[...n.querySelectorAll(Cn)];(o()[0]??n).focus();let s=e=>{if(e.key===`Escape`)return r.current();if(e.key!==`Tab`)return;let t=o();if(t.length===0)return e.preventDefault();let i=t[0],a=t[t.length-1];e.shiftKey&&document.activeElement===i?(e.preventDefault(),a.focus()):!e.shiftKey&&document.activeElement===a?(e.preventDefault(),i.focus()):n.contains(document.activeElement)||(e.preventDefault(),i.focus())};return document.addEventListener(`keydown`,s),()=>{document.removeEventListener(`keydown`,s),document.body.style.overflow=a,i?.focus()}},[t,e])},Tn=({id:e,open:t,onClose:n,children:r})=>{let i=(0,l.useRef)(null);return wn(i,t,n),t?(0,I.jsxs)(`div`,{className:`fixed inset-0 z-50 md:hidden`,children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-foreground/40`,onClick:n,"aria-hidden":!0}),(0,I.jsx)(`div`,{ref:i,id:e,role:`dialog`,"aria-modal":`true`,"aria-label":`Navigation`,tabIndex:-1,className:`absolute inset-y-0 left-0 flex w-60 max-w-[85vw] bg-sidebar shadow-pop outline-none`,onClick:e=>e.target.closest(`a`)&&n(),children:r})]}):null},En=({className:e})=>(0,I.jsxs)(`svg`,{viewBox:`0 0 24 24`,className:F(`size-7 shrink-0`,e),"aria-hidden":!0,children:[(0,I.jsx)(`rect`,{width:`24`,height:`24`,rx:`6`,className:`fill-primary`}),(0,I.jsx)(`path`,{d:`M7 17V7h5.2a3 3 0 0 1 0 6H7`,fill:`none`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,I.jsx)(`path`,{d:`M12.5 17h4.5`,stroke:`white`,strokeOpacity:`0.55`,strokeWidth:`2`,strokeLinecap:`round`})]}),Dn=({showName:e,workspace:t})=>(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5 overflow-hidden`,children:[(0,I.jsx)(En,{}),e&&(0,I.jsxs)(`div`,{className:`min-w-0 leading-tight`,children:[(0,I.jsx)(`div`,{className:`text-[13px] font-semibold tracking-tight`,children:`Protobase`}),t&&(0,I.jsx)(`div`,{className:`truncate text-[11px] text-muted-foreground`,children:t})]})]}),On=[{label:`Sales`,items:[{id:`orders`,label:`Orders`,icon:zt,count:12},{id:`customers`,label:`Customers`,icon:N},{id:`invoices`,label:`Invoices`,icon:He,count:3}]},{label:`Inventory`,items:[{id:`products`,label:`Products`,icon:_t},{id:`stock-moves`,label:`Stock moves`,icon:j},{id:`warehouses`,label:`Warehouses`,icon:ln},{id:`shipments`,label:`Shipments`,icon:$t}]},{label:`Finance`,items:[{id:`payments`,label:`Payments`,icon:Ee},{id:`credit-notes`,label:`Credit notes`,icon:Tt},{id:`reports`,label:`Reports`,icon:re}]},{label:`Admin`,items:[{id:`users`,label:`Users`,icon:on},{id:`settings`,label:`Settings`,icon:Ft}]}],kn={xs:`size-5 text-[9px]`,sm:`size-6 text-[10px]`,md:`size-8 text-xs`},An=({initials:e,hue:t,size:n=`sm`,className:r})=>(0,I.jsx)(`span`,{className:F(`inline-flex shrink-0 select-none items-center justify-center rounded-full font-semibold text-white ring-2 ring-background`,kn[n],r),style:{background:`oklch(0.58 0.13 ${t})`},children:e}),jn=({people:e,size:t=`sm`})=>(0,I.jsx)(`span`,{className:`inline-flex -space-x-1`,children:e.map(e=>(0,I.jsx)(An,{...e,size:t},e.initials))}),Mn=e=>{let t=e.slice(1),n=t.length===3?[...t].map(e=>e+e).join(``):t,[r,i,a]=[0,2,4].map(e=>{let t=Number.parseInt(n.slice(e,e+2),16)/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return .2126*r+.7152*i+.0722*a},Nn=`#ffffff`,Pn=`#111827`,Fn=e=>{let t=Mn(e);return 1.05/(t+.05)>=(t+.05)/(Mn(Pn)+.05)?Nn:Pn},In={neutral:`bg-muted text-muted-foreground`,blue:`bg-primary-soft text-primary-text`,green:`bg-success-soft text-success-text`,amber:`bg-warning-soft text-warning-text`,red:`bg-danger-soft text-danger-text`,violet:`bg-violet-soft text-violet-text`},Ln={neutral:`bg-faint-foreground`,blue:`bg-primary`,green:`bg-success`,amber:`bg-warning`,red:`bg-danger`,violet:`bg-violet`},Rn=`polygon(0 0, calc(100% - 0.625rem) 0, 100% 50%, calc(100% - 0.625rem) 100%, 0 100%)`,zn=({tone:e=`neutral`,dot:t=!0,color:n,shape:r,children:i,className:a})=>(0,I.jsxs)(`span`,{style:{...n!==void 0&&{backgroundColor:n,color:Fn(n)},...r===`arrow`&&{clipPath:Rn}},className:F(r===`arrow`?`inline-flex h-5 items-center gap-1.5 rounded-l-sm pr-4 pl-2 text-xs font-semibold whitespace-nowrap`:`inline-flex h-5 items-center gap-1.5 rounded-full px-2 text-xs font-medium whitespace-nowrap`,n===void 0&&In[e],a),children:[t&&n===void 0&&r===void 0&&(0,I.jsx)(`span`,{className:F(`size-1.5 rounded-full`,Ln[e])}),i]}),Bn=({label:e,current:t,others:n,rowClassName:r,onSwitch:i})=>(0,I.jsxs)(`div`,{className:`border-b py-1`,role:`group`,"aria-label":e,children:[t&&(0,I.jsxs)(`div`,{className:F(r,`text-foreground hover:bg-transparent`),"aria-current":`true`,children:[(0,I.jsx)(ae,{className:`size-4`}),(0,I.jsx)(`span`,{className:`truncate`,children:t.label})]}),n.map(e=>(0,I.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>i(e.id),className:r,children:[(0,I.jsx)(`span`,{className:`size-4`}),(0,I.jsx)(`span`,{className:`truncate`,children:e.label})]},e.id))]}),Vn=`flex min-h-11 w-full items-center gap-2.5 px-3 py-1.5 text-left text-[13px] text-muted-foreground hover:bg-muted md:min-h-0`,Hn=({user:e,compact:t,open:n,items:r=[],onNavigate:i,onSignOut:a,organizations:o,roles:s})=>{let c=s?.roles.find(e=>e.name===s.active),[u,d]=(0,l.useState)(!1),f=n??u,p=(0,l.useRef)(null),[m,h]=(0,l.useState)();return(0,l.useEffect)(()=>{if(!f||n!==void 0)return;let e=e=>{(e instanceof KeyboardEvent?e.key===`Escape`:!p.current?.contains(e.target))&&d(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,e)}},[f,n]),(0,I.jsxs)(`div`,{ref:p,className:`relative`,children:[(0,I.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full items-center gap-2.5 rounded-md p-1 text-left hover:bg-muted md:min-h-0`,"aria-label":`Profile menu`,"aria-haspopup":`menu`,"aria-expanded":f,onClick:()=>{let e=p.current?.getBoundingClientRect();e&&h({left:e.left,bottom:window.innerHeight-e.top+8}),d(!u)},children:[(0,I.jsx)(An,{initials:e.initials,hue:e.hue,size:`md`,className:`ring-0`}),!t&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1 leading-tight`,children:[(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium`,children:e.name}),(0,I.jsx)(zn,{tone:e.roleTone,dot:!1,className:`mt-0.5 h-4 px-1.5 text-[10px]`,children:e.role})]}),(0,I.jsx)(fe,{className:`size-3.5 shrink-0 text-faint-foreground`})]})]}),f&&(0,I.jsxs)(`div`,{role:`menu`,className:n===void 0?`fixed z-[60] w-56 overflow-hidden rounded-lg border bg-background py-1 shadow-pop`:`absolute bottom-full left-0 z-50 mb-2 w-56 overflow-hidden rounded-lg border bg-background py-1 shadow-pop`,style:n===void 0&&m?{left:m.left,bottom:m.bottom}:void 0,children:[(0,I.jsxs)(`div`,{className:`border-b px-3 pb-2 pt-1.5`,children:[(0,I.jsx)(`div`,{className:`text-[13px] font-medium`,children:e.name}),(0,I.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.email})]}),o&&(o.current||o.others.length>0)&&(0,I.jsx)(Bn,{label:`Organizations`,...o.current&&{current:{id:o.current.id,label:o.current.name}},others:o.others.map(({id:e,name:t})=>({id:e,label:t})),rowClassName:Vn,onSwitch:e=>{d(!1),o.onSwitch(e)}}),s&&s.roles.length>1&&(0,I.jsx)(Bn,{label:`Roles`,...c&&{current:{id:c.name,label:c.label}},others:s.roles.filter(e=>e!==c).map(({name:e,label:t})=>({id:e,label:t})),rowClassName:Vn,onSwitch:e=>{d(!1),s.onSwitch(e)}}),r.length>0&&(0,I.jsx)(`div`,{className:F(a&&`border-b`),children:r.map(e=>{let t=e.icon;return(0,I.jsxs)(`a`,{role:`menuitem`,href:e.href,"aria-current":e.active?`page`:void 0,...e.external?{target:`_blank`,rel:`noreferrer`}:{},onClick:t=>{d(!1),!e.external&&i&&(t.preventDefault(),i(e.href))},className:F(Vn,e.active&&`bg-muted text-foreground`),children:[(0,I.jsx)(t,{className:`size-4`}),e.label]},e.id)})}),a&&(0,I.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:a,className:Vn,children:[(0,I.jsx)(st,{className:`size-4`}),`Sign out`]})]})]})},iee=e=>e===`text-large`||e===`text-small`||e===`icon-expand`,Un=e=>e===`text-large`||e===`text-small`,aee={"text-large":`w-60`,"text-small":`w-52`,icon:`w-14`,"icon-label":`w-[76px]`,"icon-tooltip":`w-14`,"icon-expand":`w-14`},oee=({label:e,side:t=`right`,visible:n,children:r})=>(0,I.jsxs)(`span`,{className:`group/tooltip relative inline-flex`,children:[r,(0,I.jsx)(`span`,{role:`tooltip`,className:F(`pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-foreground px-2 py-1 text-xs font-medium text-background opacity-0 shadow-md transition-opacity group-hover/tooltip:opacity-100`,n&&`opacity-100`,t===`right`&&`left-full top-1/2 ml-2 -translate-y-1/2`,t===`top`&&`bottom-full left-1/2 mb-2 -translate-x-1/2`,t===`bottom`&&`left-1/2 top-full mt-2 -translate-x-1/2`),children:e})]}),see={"text-large":`h-9 gap-3 px-3 text-sm`,"text-small":`h-7 gap-2.5 px-2.5 text-xs`,icon:`size-9 justify-center`,"icon-label":`w-full flex-col gap-0.5 py-1.5 text-[10px]`,"icon-tooltip":`size-9 justify-center`,"icon-expand":`h-8 gap-3 px-3 text-[13px]`},Wn=({item:e,mode:t,active:n,onNavigate:r,className:i})=>{let a=e.icon,o=(0,I.jsxs)(`a`,{onClick:r&&(t=>{t.preventDefault(),r(e.href??`#${e.id}`)}),href:e.href??`#${e.id}`,"aria-label":e.problem?`${e.label}: ${e.problem}`:e.label,"aria-current":n?`page`:void 0,title:e.problem,className:F(`flex shrink-0 items-center rounded-md font-medium transition-colors`,see[t],n?`bg-primary-soft text-primary-text`:`text-muted-foreground hover:bg-muted hover:text-foreground`,i),children:[(0,I.jsx)(a,{className:F(`shrink-0`,t===`text-small`?`size-4`:`size-[18px]`),strokeWidth:n?2.2:1.9}),(iee(t)||t===`icon-label`)&&(0,I.jsx)(`span`,{className:`whitespace-nowrap`,children:e.label}),Un(t)&&e.count&&(0,I.jsx)(`span`,{className:`ml-auto rounded bg-muted px-1.5 text-[11px] tabular-nums text-muted-foreground`,children:e.count}),Un(t)&&e.problem&&(0,I.jsx)(Zt,{"aria-hidden":!0,className:`ml-auto size-3.5 shrink-0 text-warning-text`})]});return t===`icon-tooltip`?(0,I.jsx)(oee,{label:e.label,children:o}):o},Gn=(e,t)=>{try{return e()}catch(e){if(!(e instanceof DOMException))throw e;return t}},cee=`protobase:nav-open:`,lee=e=>`${cee}${e}`,uee=(e,t)=>Gn(()=>e.getItem(t)!==`false`,!0),dee=(e,t,n)=>Gn(()=>n?e.removeItem(t):e.setItem(t,`false`),void 0),Kn={neutral:`bg-faint-foreground`,info:`bg-primary`,success:`bg-success`,warning:`bg-warning`,danger:`bg-danger`},fee=({tone:e,pulse:t=!1,className:n})=>(0,I.jsxs)(`span`,{"aria-hidden":!0,className:F(`relative flex size-2 shrink-0`,n),"data-tone":e,"data-pulse":t||void 0,children:[t&&(0,I.jsx)(`span`,{className:F(`absolute inset-0 animate-ping rounded-full opacity-60 motion-reduce:animate-none`,Kn[e])}),(0,I.jsx)(`span`,{className:F(`relative size-2 rounded-full`,Kn[e])})]}),qn={"text-large":`h-8 gap-2.5 px-2.5 text-[13px]`,"text-small":`h-7 gap-2 px-2 text-xs`},Jn={"text-large":`ml-[20px]`,"text-small":`ml-[17px]`},Yn=({item:e,recent:t,mode:n,active:r,onNavigate:i})=>{let a=lee(e.id),[o,s]=(0,l.useState)(()=>uee(localStorage,a)),c=(0,l.useId)(),u=e.href??`#${e.id}`,d=()=>{dee(localStorage,a,!o),s(!o)},f=e=>({href:e,onClick:i&&(t=>{t.preventDefault(),i(e)})});return(0,I.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,I.jsxs)(`div`,{className:`relative`,children:[(0,I.jsx)(Wn,{item:e,mode:n,active:r,onNavigate:i,className:`pr-8`}),(0,I.jsx)(`button`,{type:`button`,"aria-expanded":o,"aria-controls":c,"aria-label":`Recent ${e.label.toLowerCase()}`,onClick:d,className:`absolute right-1 top-1/2 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded text-faint-foreground hover:bg-muted hover:text-foreground`,children:(0,I.jsx)(P,{className:F(`size-3.5 transition-transform`,o&&`rotate-90`)})})]}),o&&(0,I.jsxs)(`ul`,{id:c,"aria-label":`Recent ${e.label.toLowerCase()}`,className:F(`flex flex-col gap-0.5 border-l pl-1.5`,Jn[n]),children:[t.state===`loading`&&(0,I.jsx)(`li`,{className:F(`flex items-center text-faint-foreground`,qn[n]),children:`Loading...`}),t.state===`error`&&(0,I.jsx)(`li`,{className:F(`flex items-center text-faint-foreground`,qn[n]),children:`Could not load`}),t.state===`ready`&&t.records.map(e=>(0,I.jsx)(`li`,{children:(0,I.jsxs)(`a`,{...f(e.href),"aria-label":`${e.label}, ${e.status}`,title:`${e.label} (${e.status})`,"aria-current":e.active?`page`:void 0,className:F(`flex min-w-0 items-center rounded-md font-medium transition-colors`,qn[n],e.active?`bg-muted text-foreground`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,I.jsx)(fee,{tone:e.tone,pulse:e.pulse}),(0,I.jsx)(`span`,{className:`truncate`,children:e.label})]})},e.id)),(0,I.jsx)(`li`,{children:(0,I.jsx)(`a`,{...f(u),className:F(`flex items-center rounded-md text-faint-foreground transition-colors hover:bg-muted hover:text-foreground`,qn[n]),children:`View all`})})]})]})},Xn=({mode:e,activeItem:t,user:n,workspace:r,forceExpanded:i,profileMenuOpen:a,groups:o=On,userMenu:s,onNavigate:c,onSignOut:l,onSignIn:u,organizations:d,roles:f})=>{let p=e===`icon-expand`,m=p&&i,h=Un(e)||p;return(0,I.jsx)(`nav`,{"aria-label":`Resources`,className:F(`relative z-30 shrink-0`,aee[e]),children:(0,I.jsxs)(`div`,{className:F(`group/side absolute inset-y-0 left-0 flex flex-col overflow-hidden border-r bg-sidebar`,p?`w-14 transition-[width,box-shadow] duration-150 hover:w-60 hover:shadow-pop focus-within:w-60 focus-within:shadow-pop`:`w-full`,m&&`w-60 shadow-pop`),children:[(0,I.jsx)(`div`,{className:F(`flex h-12 shrink-0 items-center px-3.5`,e===`icon-label`&&`justify-center px-0`),children:(0,I.jsx)(Dn,{showName:Un(e)||p,workspace:r})}),(0,I.jsx)(`div`,{className:F(`flex-1 overflow-y-auto overflow-x-hidden pb-2`,`px-2`),children:o.map((n,r)=>(0,I.jsxs)(`div`,{className:F(`flex flex-col gap-0.5`,r>0&&`mt-3`),children:[h?(0,I.jsx)(`div`,{className:F(`px-3 pb-1 pt-1 text-[11px] font-medium uppercase tracking-wide text-faint-foreground`,p&&`h-4 whitespace-nowrap py-0 opacity-0 transition-opacity group-hover/side:opacity-100 group-focus-within/side:opacity-100`,m&&`opacity-100`),children:n.label}):r>0&&(0,I.jsx)(`div`,{className:`mx-auto mb-1 h-px w-6 bg-border`}),n.items.map(n=>n.recent&&Un(e)?(0,I.jsx)(Yn,{item:n,recent:n.recent,mode:e,active:n.id===t,onNavigate:c},n.id):(0,I.jsx)(Wn,{item:n,mode:e,active:n.id===t,onNavigate:c},n.id))]},n.label))}),(0,I.jsx)(`div`,{className:F(`shrink-0 border-t p-2`,e!==`text-large`&&e!==`text-small`&&!p&&`flex justify-center`),children:n?(0,I.jsx)(Hn,{user:n,compact:!h,open:a,items:s,onNavigate:c,onSignOut:l,organizations:d,roles:f}):u&&(0,I.jsxs)(`button`,{type:`button`,onClick:u,"aria-label":`Sign in`,className:`flex min-h-11 w-full items-center gap-2.5 rounded-md p-1.5 text-left text-[13px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground md:min-h-0`,children:[(0,I.jsx)(at,{className:`size-4 shrink-0`}),h&&(0,I.jsx)(`span`,{className:`whitespace-nowrap`,children:`Sign in`})]})})]})})},Zn=({className:e})=>(0,I.jsx)(`span`,{className:F(`block h-3 rounded bg-muted [animation:pb-shimmer_1.4s_ease-in-out_infinite]`,e)}),Qn=e=>e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey,$n=({parts:e,onNavigate:t})=>(0,I.jsx)(`nav`,{"aria-label":`Breadcrumb`,className:`flex min-w-0 items-center gap-1.5 text-[13px]`,children:e.map((n,r)=>{let i=r===e.length-1,{label:a,href:o,loading:s}=typeof n==`string`?{label:n,href:void 0,loading:!1}:n,c=s?(0,I.jsx)(Zn,{className:`w-24`}):a,l=F(`truncate`,i?`font-semibold`:`text-muted-foreground`);return(0,I.jsxs)(`span`,{className:F(`min-w-0 items-center gap-1.5`,i?`flex`:`hidden md:flex`),children:[r>0&&(0,I.jsx)(P,{className:`hidden size-3.5 shrink-0 text-faint-foreground md:block`}),o?(0,I.jsx)(`a`,{href:o,"aria-current":i?`page`:void 0,"aria-label":s?a:void 0,"aria-busy":s||void 0,onClick:e=>{t&&Qn(e)&&(e.preventDefault(),t(o))},className:F(l,`rounded-sm hover:text-foreground hover:underline`),children:c}):(0,I.jsx)(`span`,{className:l,"aria-label":s?a:void 0,"aria-busy":s||void 0,children:c})]},`${r}-${a}`)})}),er=({leading:e,trailing:t,invalid:n,className:r,wrapperClassName:i,...a})=>(0,I.jsxs)(`span`,{className:F(`flex h-8 items-center gap-2 rounded-md border bg-background px-2.5 text-muted-foreground shadow-sm focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20`,n?`border-danger`:`border-border-strong`,i),children:[e,(0,I.jsx)(`input`,{className:F(`min-w-0 flex-1 bg-transparent text-[13px] text-foreground outline-none placeholder:text-faint-foreground`,r),...a}),t]}),tr=({children:e})=>(0,I.jsx)(`kbd`,{className:`inline-flex h-5 items-center rounded border border-border-strong bg-background px-1.5 font-sans text-[11px] font-medium text-muted-foreground`,children:e}),nr=({className:e})=>(0,I.jsx)(tee,{"aria-label":`Loading`,className:F(`size-4 animate-spin`,e)}),rr=(e,t,n)=>t===0?-1:e<0?n===1?0:t-1:(e+n+t)%t,ir=e=>e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0,ar=({search:e,className:t=`w-96`,autoFocus:n,showShortcut:r=!0,ref:i})=>{let a=(0,l.useId)(),o=(0,l.useRef)(null),[s,c]=(0,l.useState)(!1),[u,d]=(0,l.useState)(-1),f=e.groups.flatMap(e=>e.hits),p=s&&(e.query!==``||e.loading),m=e=>`${a}-${e}`,h=e=>{o.current=e,typeof i==`function`?i(e):i&&(i.current=e)},g=t=>{e.onSelect(t),d(-1),o.current?.blur()},_=()=>{e.onTextChange(``),d(-1),o.current?.focus()},v=t=>{if(t.key===`ArrowDown`||t.key===`ArrowUp`)t.preventDefault(),d(e=>rr(e,f.length,t.key===`ArrowDown`?1:-1));else if(t.key===`Enter`){let e=f[u]??f[0];if(!e)return;t.preventDefault(),g(e.href)}else t.key===`Escape`&&(e.text?e.onTextChange(``):t.currentTarget.blur(),d(-1))},y=-1;return(0,I.jsxs)(`div`,{className:F(`relative`,t),children:[(0,I.jsx)(er,{ref:h,wrapperClassName:`w-full bg-surface shadow-none`,leading:e.loading?(0,I.jsx)(nr,{className:`size-4`}):(0,I.jsx)(kt,{className:`size-4`}),trailing:e.text?(0,I.jsx)(`button`,{type:`button`,"aria-label":`Clear search`,className:`-mr-1 inline-flex size-6 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-muted hover:text-foreground`,onMouseDown:e=>e.preventDefault(),onClick:_,children:(0,I.jsx)(dn,{className:`size-3.5`})}):r?(0,I.jsx)(`span`,{className:`hidden md:inline-flex`,children:(0,I.jsx)(tr,{children:`⌘K`})}):void 0,placeholder:e.placeholder,"aria-label":`Global search`,role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":p,"aria-controls":a,"aria-activedescendant":p&&f[u]?m(u):void 0,autoFocus:n,value:e.text,onChange:t=>{e.onTextChange(t.target.value),d(-1)},onFocus:()=>c(!0),onBlur:()=>c(!1),onKeyDown:v}),p&&(0,I.jsxs)(`div`,{id:a,role:`listbox`,"aria-label":`Search results`,className:`absolute right-0 top-full z-40 mt-1 max-h-96 w-full min-w-72 overflow-y-auto rounded-lg border bg-background py-1 text-[13px] shadow-pop`,children:[e.groups.length===0&&(0,I.jsx)(`p`,{className:`px-3 py-2 text-muted-foreground`,children:e.loading?`Searching`:`No matches for “${e.query}”`}),e.groups.map(e=>(0,I.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,I.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-[11px] font-medium uppercase tracking-wide text-faint-foreground`,children:e.label}),e.failed&&(0,I.jsxs)(`p`,{className:`px-3 py-1.5 text-danger-text`,children:[`Could not search `,e.label.toLowerCase()]}),e.hits.map(e=>{y+=1;let t=y;return(0,I.jsxs)(`a`,{id:m(t),href:e.href,tabIndex:-1,role:`option`,"aria-selected":t===u,className:F(`block px-3 py-1.5`,t===u?`bg-primary-soft text-primary-text`:`hover:bg-muted`),onMouseDown:e=>e.preventDefault(),onClick:t=>{ir(t)||(t.preventDefault(),g(e.href))},onMouseEnter:()=>d(t),children:[(0,I.jsx)(`span`,{className:`block truncate font-semibold`,children:e.title}),e.subtitle&&(0,I.jsx)(`span`,{className:F(`block truncate text-xs`,t===u?`text-primary-text/80`:`text-muted-foreground`),children:e.subtitle})]},e.id)})]},e.id))]})]})},or=`inline-flex size-11 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted md:hidden`,sr=({breadcrumb:e,onNavigate:t,actions:n,onMenu:r,menuOpen:i,menuControls:a,search:o})=>{let[s,c]=(0,l.useState)(!1),u=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!o)return;let e=e=>{if(e.key.toLowerCase()!==`k`||!(e.metaKey||e.ctrlKey))return;e.preventDefault();let t=u.current;t&&t.offsetParent!==null?t.focus():c(!0)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]),(0,I.jsxs)(`header`,{className:`relative flex h-12 shrink-0 items-center gap-1 border-b bg-background px-2 md:gap-4 md:px-5`,children:[r&&(0,I.jsx)(`button`,{type:`button`,"aria-label":`Open navigation`,"aria-expanded":!!i,"aria-controls":a,onClick:r,className:F(or,`-ml-0.5`),children:(0,I.jsx)(dt,{className:`size-5`})}),(0,I.jsx)($n,{parts:e,onNavigate:t}),(0,I.jsxs)(`div`,{className:`ml-auto flex items-center gap-1 md:gap-3`,children:[o&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{className:`hidden md:block`,children:(0,I.jsx)(ar,{ref:u,search:o})}),(0,I.jsx)(`button`,{type:`button`,"aria-label":`Search`,"aria-expanded":s,onClick:()=>c(!0),className:or,children:(0,I.jsx)(kt,{className:`size-5`})})]}),n]}),o&&s&&(0,I.jsxs)(`div`,{className:`absolute inset-0 z-20 flex items-center gap-1 bg-background px-3 md:hidden`,children:[(0,I.jsx)(ar,{className:`min-w-0 flex-1`,autoFocus:!0,showShortcut:!1,search:{...o,onSelect:e=>{o.onSelect(e),c(!1)}}}),(0,I.jsx)(`button`,{type:`button`,"aria-label":`Close search`,onClick:()=>c(!1),className:or,children:(0,I.jsx)(dn,{className:`size-5`})})]})]})},cr=`app-drawer`,lr=({sidebarMode:e,activeItem:t,breadcrumb:n,user:r,workspace:i,actions:a,rightPanel:o,forceExpanded:s,profileMenuOpen:c,navGroups:u,userMenu:d,bottomBar:f,onNavigate:p,onSignOut:m,onSignIn:h,organizations:g,roles:_,search:v,className:y,children:b})=>{let x=vn(),[S,C]=(0,l.useState)(!1);(0,l.useEffect)(()=>{x&&C(!1)},[x]);let w=!x&&f&&f.length>0?f:void 0,T=e=>(0,I.jsx)(Xn,{mode:e,activeItem:t,user:r,workspace:i,forceExpanded:s,profileMenuOpen:c,groups:u,userMenu:d,onNavigate:p,onSignOut:m,onSignIn:h,organizations:g,roles:_});return(0,I.jsxs)(`div`,{className:F(`flex h-full min-h-0 w-full overflow-hidden bg-background`,y),children:[x?T(e):(0,I.jsx)(Tn,{id:cr,open:S,onClose:()=>C(!1),children:T(`text-large`)}),(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,I.jsx)(sr,{breadcrumb:n,onNavigate:p,actions:a,onMenu:x||w?void 0:()=>C(!0),menuOpen:S,menuControls:cr,search:v}),(0,I.jsx)(`main`,{className:`flex min-h-0 flex-1 flex-col`,children:b}),w&&(0,I.jsx)(Sn,{tabs:w,onNavigate:p,onMore:()=>C(!0),moreOpen:S,moreControls:cr})]}),o]})},ur=`sign-in`,dr=`error`,fr=e=>{let t=new URL(e).searchParams;if(!t.has(dr))return t.get(`sign-in`)||void 0},pr=e=>new URL(e).searchParams.get(dr)||void 0,mr=e=>{let t=new URL(e);for(let e of[ur,dr])t.searchParams.delete(e);return`${t.pathname}${t.search}${t.hash}`},hr={github:`GitHub`,gitlab:`GitLab`,google:`Google`,microsoft:`Microsoft`,apple:`Apple`},gr=(e,t)=>t?.provider===e?t.name:hr[e]??e.charAt(0).toUpperCase()+e.slice(1),_r=(e,t,n,r)=>({code:e,message:t,hint:n,span:r}),vr=(e,t)=>{let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r++){let i=[r];for(let a=1;a<=t.length;a++){let o=e[r-1]===t[a-1]?0:1;i[a]=Math.min(n[a]+1,i[a-1]+1,n[a-1]+o)}n=i}return n[t.length]},yr=(e,t)=>{let n=e.toLowerCase(),r=t.map(e=>({candidate:e,score:vr(n,e.toLowerCase())})).sort((e,t)=>e.score-t.score)[0];return r&&r.score<=Math.max(2,Math.floor(e.length/3))?r.candidate:void 0},br=(e,t)=>({start:e.start,end:t.end}),xr=(e,t)=>t===2?e%4==0&&(e%100!=0||e%400==0)?29:28:[4,6,9,11].includes(t)?30:31,Sr=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let[n,r,i]=[Number(t[1]),Number(t[2]),Number(t[3])];return r>=1&&r<=12&&i>=1&&i<=xr(n,r)},Cr=e=>{let t=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:[Zz]|[+-](\d{2}):(\d{2}))$/.exec(e);if(!t)return!1;let[n,r,i]=[Number(t[2]),Number(t[3]),Number(t[4])],[a,o]=[Number(t[5]??0),Number(t[6]??0)];return Sr(t[1])&&n<=23&&r<=59&&i<=59&&a<=23&&o<=59},wr={s:1,m:60,h:3600,d:86400,w:604800},Tr=e=>Cr(e)?Date.parse(e.toUpperCase()):void 0,Er=/^(\d+(?:\.\d+)?)(s|m|h|d|w)$/,Dr=e=>{let t=Er.exec(e);return t?Number(t[1])*wr[t[2]]:void 0},Or=/\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})/y,kr=/\d{4}-\d{2}-\d{2}/y,Ar=/[TtZz0-9:.+-]*/y,jr=/0[xX][0-9a-fA-F]+/y,Mr=/\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/y,Nr=(e,t,n)=>(e.lastIndex=n,e.exec(t)?.[0]),Pr=(e,t,n,r)=>{let i=Nr(Or,e,t);if(i&&Cr(i))return{kind:`timestamp`,end:t+i.length};if(i||Nr(kr,e,t)){let n=t+(Nr(Ar,e,t)??``).length;return{kind:`error`,end:n,error:_r(`invalid-timestamp`,`"${e.slice(t,n)}" is not a valid RFC-3339 timestamp`,`Use a full timestamp like 2012-04-21T11:30:00Z, or quote a plain date: "2012-04-21"`,{start:t,end:n})}}let a=Nr(jr,e,t);if(a)return n(e[t+a.length])?{kind:`number`,end:t+a.length}:void 0;let o=t+Nr(Mr,e,t).length;return(r.durationUnits?`smhdw`:`s`).includes(e[o]??` `)&&n(e[o+1])?{kind:`duration`,end:o+1}:n(e[o])?{kind:`number`,end:o}:void 0},Fr={a:`\x07`,b:`\b`,f:`\f`,n:`
|
|
3
3
|
`,r:`\r`,t:` `,v:`\v`,"'":`'`,'"':`"`,"\\":`\\`,"?":`?`,"`":"`"},Ir=(e,t,n)=>{let r=e.slice(t,t+n);return r.length===n&&/^[0-9a-fA-F]+$/.test(r)?parseInt(r,16):void 0},Lr=(e,t)=>{let n=e[t+1];if(n===void 0)return{error:`a backslash at the end`,end:t+1};if(Object.hasOwn(Fr,n))return{text:Fr[n],end:t+2};let r={x:2,u:4,U:8};if(Object.hasOwn(r,n)){let i=Ir(e,t+2,r[n]),a=t+2+r[n];return i!==void 0&&i<=1114111&&!(i>=55296&&i<=57343)?{text:String.fromCodePoint(i),end:a}:{error:`\\${n} needs ${r[n]} hex digits naming a Unicode scalar value`,end:t+2}}let i=/^[0-3][0-7]{2}/.exec(e.slice(t+1,t+4));return i?{text:String.fromCharCode(parseInt(i[0],8)),end:t+4}:{error:`the escape "\\${n}"`,end:t+2}},Rr=(e,t)=>{let n=e[t],r=[],i=``,a=t+1;for(;a<e.length;){let t=e[a];if(t===n)return{end:a+1,value:i,errors:r};if(t!==`\\`){i+=t,a++;continue}let o=Lr(e,a);`text`in o?i+=o.text:r.push(_r(`invalid-escape`,`Invalid escape: ${o.error}`,`Valid escapes: \\a \\b \\f \\n \\r \\t \\v \\' \\" \\\\ \\? \\\` \\xHH \\uXXXX \\UXXXXXXXX \\ooo`,{start:a,end:o.end})),a=o.end}return r.push(_r(`unterminated-string`,`String is missing its closing quote`,`Add a closing ${n}`,{start:t,end:e.length})),{end:e.length,value:void 0,errors:r}},zr={"(":`lparen`,")":`rparen`,",":`comma`,".":`dot`,":":`has`,"=":`eq`,"<":`lt`,">":`gt`,"-":`minus`},Br={AND:`and`,OR:`or`,NOT:`not`},Vr=e=>{let[t,n,r]=[e.at(-1),e.at(-2),e.at(-3)];return t?.kind===`rparen`&&n?.kind===`lparen`&&r?.text===`now`},Hr=(e,t={})=>{let n=[],r=[],i=e=>e!==void 0&&(e in zr||e===`!`||t.arithmetic===!0&&e===`+`),a=e=>e===void 0||/\s/.test(e)||i(e)||e===`"`||e===`'`,o=(t,r,i,a=e.slice(r,i))=>n.push({kind:t,text:e.slice(r,i),value:a,span:{start:r,end:i}}),s=e.isWellFormed()?-1:e.search(/[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/);s>=0&&r.push(_r(`invalid-unicode`,`The filter contains an unpaired surrogate`,`Use well-formed UTF-16 text`,{start:s,end:s+1}));let c=0;for(;c<e.length;){let i=e[c];if(/\s/.test(i)){c++;continue}if(i===`"`||i===`'`){let t=Rr(e,c);r.push(...t.errors),t.value!==void 0&&o(`string`,c,t.end,t.value),c=t.end;continue}if(/[0-9]/.test(i)){let n=Pr(e,c,a,t);if(n?.kind===`error`?r.push(n.error):n&&o(n.kind,c,n.end),n){c=n.end;continue}}if(i===`!`||i===`<`||i===`>`){let t=e[c+1]===`=`;if(i===`!`&&!t){r.push(_r(`unexpected-character`,`Unexpected character "!"`,`Use != for "not equal" or NOT / - for negation`,{start:c,end:c+1})),c++;continue}o(i===`!`?`ne`:i===`<`?t?`le`:`lt`:t?`ge`:`gt`,c,c+(t?2:1)),c+=t?2:1;continue}if(Object.hasOwn(zr,i)){o(zr[i],c,c+1),c++;continue}let s=t.arithmetic===`now-offset`&&Vr(n);if(i===`+`&&(t.arithmetic===!0||s)){o(`plus`,c,c+1),c++;continue}let l=c+1;for(;!a(e[l]);)l++;let u=e.slice(c,l);o(Object.hasOwn(Br,u)?Br[u]:`text`,c,l),c=l}return o(`eof`,e.length,e.length),{tokens:n,errors:r}},Ur=class extends Error{error;constructor(e){super(e.message),this.error=e}},Wr=(e,t,n,r)=>{throw new Ur(_r(e,t,n,r))},L=(e,t=0)=>e.tokens[Math.min(e.pos+t,e.tokens.length-1)],Gr=e=>{let t=L(e);return t.kind!==`eof`&&e.pos++,t},Kr=(e,t)=>L(e).kind===t?Gr(e):void 0,qr=e=>e.kind===`eof`?`end of input`:`"${e.text}"`,Jr=(e,t,n,r)=>Kr(e,t)??Wr(`expected-token`,`Expected ${n} but found ${qr(L(e))}`,r,L(e).span),Yr=(e,t,n)=>{e.depth>=e.maxDepth&&Wr(`too-deep`,`The filter is nested too deeply`,`Nest at most ${e.maxDepth} levels`,t),e.depth++;try{return n()}finally{e.depth--}},Xr=[`text`,`and`,`or`,`not`],Zr=e=>{let t=Jr(e,`text`,`a field name or value`,`Text may not contain spaces or the characters ( ) - . = : < > ! ,`),n=[t.text],r=t.span;for(;L(e).kind===`dot`;){let t=L(e,1),i=t.kind===`number`&&/^\d+(\.\d+)?$/.test(t.text);!Xr.includes(t.kind)&&!i&&Wr(`expected-token`,`Expected a field name after "." but found ${qr(t)}`,`Write traversals like customer.country`,t.span),Gr(e),Gr(e),n.push(...i?t.text.split(`.`):[t.text]),r=br(r,t.span)}return{kind:`member`,path:n,span:r}},Qr=e=>({kind:`duration`,amount:Number(e.text.slice(0,-1)),unit:e.text.slice(-1),span:e.span}),$r=[`member`,`string`,`number`,`boolean`,`duration`,`timestamp`,`call`,`binary`],ei=e=>$r.includes(e.kind),ti=(e,t,n)=>Yr(e,n,()=>{Gr(e);let r=[];if(L(e).kind!==`rparen`)do r.push(oi(e));while(Kr(e,`comma`));return{kind:`call`,name:t,args:r,span:br(n,Jr(e,`rparen`,`")"`,`Close the call to ${t}() with ")"`).span)}}),ni=e=>{let t=L(e);switch(t.kind){case`string`:return Gr(e),{kind:`string`,value:t.value,span:t.span};case`number`:return Gr(e),{kind:`number`,value:Number(t.text),raw:t.text,span:t.span};case`duration`:return Gr(e),Qr(t);case`timestamp`:return Gr(e),{kind:`timestamp`,value:t.text,span:t.span};case`minus`:{let n=L(e,1);(n.kind!==`number`||n.span.start!==t.span.end)&&Wr(`unexpected-token`,`Expected a number after "-" but found ${qr(n)}`,`Write negative numbers as -5, without a space`,n.span),Gr(e),Gr(e);let r=`-${n.text}`;return{kind:`number`,value:-Number(n.text),raw:r,span:br(t.span,n.span)}}case`text`:{if((t.text===`true`||t.text===`false`)&&L(e,1).kind!==`dot`&&(L(e,1).kind!==`lparen`||L(e,1).span.start!==t.span.end))return Gr(e),{kind:`boolean`,value:t.text===`true`,span:t.span};let n=Zr(e);return L(e).kind===`lparen`&&L(e).span.start===n.span.end?ti(e,n.path.join(`.`),n.span):n}default:return Wr(`unexpected-token`,`Expected a value but found ${qr(t)}`,`Values are text, "strings", numbers, true/false, durations, timestamps or function calls`,t.span)}},ri=e=>{let t=Gr(e);return Yr(e,t.span,()=>{let n=e.expression(e);return Jr(e,`rparen`,`")"`,`Close the group opened here`),n?n.kind===`global`?n.value:n:Wr(`unexpected-token`,`Empty group`,`Put an expression inside the parentheses`,t.span)})},ii=e=>L(e).kind===`lparen`?ri(e):ni(e),ai=e=>[`text`,`string`,`number`,`duration`,`timestamp`,`lparen`,`minus`].includes(L(e,1).kind),oi=e=>{let t=ii(e);if(!e.extensions.arithmetic||!ei(t))return t;let n=t,r=e.extensions.arithmetic===`now-offset`,i=()=>n.kind===`call`&&n.name===`now`&&n.args.length===0,a=()=>!r||i()&&L(e,1).kind===`duration`;if(r&&i()&&(L(e).kind===`plus`||L(e).kind===`minus`)&&L(e,1).kind!==`duration`)return Wr(`expected-token`,`Expected a duration after "${L(e).text}" but found ${qr(L(e,1))}`,`Durations need a unit, for example now() - 30d`,L(e,1).span);for(;(L(e).kind===`plus`||L(e).kind===`minus`)&&ai(e)&&a();){let t=Gr(e).kind===`plus`?`+`:`-`,r=ii(e);if(!ei(r))return Wr(`unexpected-token`,`Arithmetic needs values, not conditions`,`Use values on both sides of + and -`,r.span);n={kind:`binary`,op:t,left:n,right:r,span:br(n.span,r.span)}}return n},si=e=>{let t=L(e),n=oi(e);return ei(n)||Wr(`unexpected-token`,`A comparison needs a value on the right`,`Write field = value`,t.span),n},ci={eq:`=`,ne:`!=`,lt:`<`,le:`<=`,gt:`>`,ge:`>=`},li=[`text`,`string`,`number`,`duration`,`timestamp`,`not`,`minus`,`lparen`],ui=(e,t)=>{let n=t.filter(e=>e!==void 0);return n.length<=1?n[0]:{kind:e,args:n,span:br(n[0].span,n[n.length-1].span)}},di=e=>{let t=0;for(;;){let{kind:n}=L(e);if(n===`eof`||t===0&&(n===`and`||n===`or`||n===`rparen`))return;n===`lparen`&&t++,n===`rparen`&&t--,Gr(e)}},fi=e=>{let t=ni(e),n=L(e);if(n.kind===`has`){Gr(e);let n=L(e);if(n.kind===`text`&&n.text===`*`)return Gr(e),{kind:`present`,left:t,span:br(t.span,n.span)};let r=si(e);return{kind:`has`,left:t,right:r,span:br(t.span,r.span)}}let r=ci[n.kind];if(r){Gr(e);let n=si(e);return{kind:`compare`,op:r,left:t,right:n,span:br(t.span,n.span)}}return t.kind===`call`?t:{kind:`global`,value:t,span:t.span}},pi=e=>{let t=L(e);return t.kind===`lparen`?(Gr(e),Yr(e,t.span,()=>{let n=_i(e);return Kr(e,`rparen`)||e.errors.push(_r(`expected-token`,`Expected ")" but found ${qr(L(e))}`,`Close the group opened here`,t.span)),n})):fi(e)},pee=e=>{let t=L(e);if(t.kind!==`not`&&t.kind!==`minus`)return li.includes(t.kind)?Yr(e,t.span,()=>pi(e)):Wr(`unexpected-token`,`Unexpected ${qr(t)}`,`Expected a field, a value or "("`,t.span);Gr(e);let n=L(e),r=n.kind===`minus`&&L(e,1).kind===`number`&&L(e,1).span.start===n.span.end;(n.kind===`not`||n.kind===`minus`&&!r)&&Wr(`unexpected-token`,`Negations cannot be stacked`,`Group the inner one: NOT (NOT a)`,n.span);let i=Yr(e,t.span,()=>pi(e));if(!i)return;let a=br(t.span,i.span);if(t.kind===`minus`&&i.kind===`global`&&i.value.kind===`number`&&!i.value.raw.startsWith(`-`)){let{raw:e,value:t}=i.value;return{kind:`global`,value:{kind:`number`,value:-t,raw:`-${e}`,span:a},span:a}}return{kind:`not`,arg:i,span:a}},mi=e=>{try{return pee(e)}catch(t){if(!(t instanceof Ur))throw t;e.errors.push(t.error),di(e);return}},hi=e=>{let t=[mi(e)];for(;Kr(e,`or`);)t.push(mi(e));return ui(`or`,t)},gi=e=>{let t=[hi(e)];for(;li.includes(L(e).kind);)t.push(hi(e));return ui(`sequence`,t)},_i=e=>{let t=[gi(e)];for(;Kr(e,`and`);)t.push(gi(e));return ui(`and`,t)},vi=(e,t={})=>{let n=t.maxLength??1e4;if(e.length>n)return{ok:!1,ast:void 0,errors:[_r(`too-long`,`The filter is longer than ${n} characters`,`Shorten the filter`,{start:n,end:e.length})]};let r=t.extensions??{},i=Hr(e,r),a={tokens:i.tokens,pos:0,errors:i.errors,depth:0,maxDepth:t.maxDepth??64,extensions:r,expression:_i},o=[];for(;L(a).kind!==`eof`;){if(L(a).kind===`rparen`){let e=Gr(a);a.errors.push(_r(`unexpected-token`,`Unmatched ")"`,`Remove it or add a matching "("`,e.span));continue}o.push(_i(a))}let s=o.filter(e=>e!==void 0),c=s.length<=1?s[0]:{kind:`and`,args:s,span:{start:s[0].span.start,end:s[s.length-1].span.end}},l=[...a.errors].sort((e,t)=>e.span.start-t.span.start);return l.length===0?{ok:!0,ast:c,errors:[]}:{ok:!1,ast:c,errors:l}},mee=(e,t)=>{if(Object.hasOwn(e,t))return{name:t,spec:e[t]};let n=Object.entries(e).find(([,e])=>e.aliases?.includes(t));return n&&{name:n[0],spec:n[1]}},yi=(e,t)=>{let n=t.path[0],r=mee(e.schema.fields,n);if(!r){let r=Object.entries(e.schema.fields).filter(([,e])=>e.filterable!==!1).map(([e])=>e),i=yr(n,r);e.errors.push(_r(`unknown-field`,`Unknown field "${n}"`,i?`Did you mean "${i}"?`:`Available fields: ${r.join(`, `)}`,t.span));return}let i=[r.name],a=r.spec,o=a.filterable!==!1;for(let n of t.path.slice(1)){let r=a.type===`message`?a.fields?.[n]:a.type===`map`?a.value:a.type===`any`?a:void 0;if(!r||a.type===`message`&&!Object.hasOwn(a.fields??{},n)){e.errors.push(_r(`invalid-traversal`,`Cannot traverse into "${n}" of "${i.join(`.`)}"`,a.type===`message`?`Available fields: ${Object.keys(a.fields??{}).join(`, `)}`:`Only message, map and any fields can be traversed`,t.span));return}i.push(n),a=r,o&&=a.filterable!==!1}if(!o){e.errors.push(_r(`not-filterable`,`Field "${i.join(`.`)}" cannot be filtered on`,`Mark it filterable in the schema`,t.span));return}return{...t,path:i,field:{name:i.join(`.`),spec:a}}},bi=(e,t)=>({message:e,hint:t}),xi=(e,t)=>bi(`Expected ${e}`,t),hee=e=>e.kind===`string`?e.value:e.kind===`member`?e.path.join(`.`):void 0,gee={integer:/^-?(\d+|0[xX][0-9a-fA-F]+)$/,number:/^-?\d+(\.\d+)?([eE][+-]?\d+)?$|^-?0[xX][0-9a-fA-F]+$/},Si=(e,t)=>e===t||e===`any`||t===`any`||[`integer`,`number`].includes(e)&&[`integer`,`number`].includes(t),Ci=(e,t,n)=>{let r=hee(n);switch(e){case`any`:return;case`string`:return r===void 0?xi(`a string`,`Quote text values: "..."`):void 0;case`enum`:return r!==void 0&&t?.values?.includes(r)?void 0:bi(`Invalid enum value`,`Allowed values: ${(t?.values??[]).join(`, `)}`);case`integer`:case`number`:{let t=n.kind===`number`?n.raw:r;return t!==void 0&&gee[e].test(t)?void 0:xi(e===`integer`?`an integer`:`a number`,`Write 42, -1.5 or 2.5e3, or quote a numeric string`)}case`boolean`:return n.kind===`boolean`||r===`true`||r===`false`?void 0:xi(`true or false`,`Write true or false`);case`timestamp`:return n.kind===`timestamp`||r!==void 0&&Cr(r)?void 0:xi(`an RFC-3339 timestamp`,`Use "2012-04-21T11:30:00Z"`);case`duration`:return n.kind===`duration`||r!==void 0&&Dr(r)!==void 0?void 0:xi(`a duration`,`Use a number with a unit, for example 20s or 1.5s`);case`map`:case`message`:return bi(`${e} fields cannot be compared`,`Compare a nested field, or use field:key`)}},_ee=e=>[`member`,`string`,`number`,`boolean`,`duration`,`timestamp`,`call`,`binary`].includes(e.kind),vee=(e,t,n,r)=>{if(!_ee(n)){e.errors.push(_r(`wrong-argument`,`Argument "${t.name}" must be a value`,`Pass a field, literal or function call`,n.span));return}if(t.type===`field`){if(n.kind!==`member`){e.errors.push(_r(`wrong-argument`,`Argument "${t.name}" must be a field`,`Pass a field name without quotes`,n.span));return}let r=yi(e,n);if(r&&t.of&&!t.of.includes(r.field.spec.type)){e.errors.push(_r(`wrong-argument`,`Argument "${t.name}" cannot be a ${r.field.spec.type} field`,`Accepted field types: ${t.of.join(`, `)}`,n.span));return}return r}let i=r(e,n);if(!i)return;if(t.type===`any`)return i.node;let a=i.type&&(n.kind===`call`||n.kind===`binary`)?Si(t.type,i.type)?void 0:{message:`Expected ${t.type}`,hint:`Argument "${t.name}" is ${i.type}`}:Ci(t.type,void 0,i.node);return a&&e.errors.push(_r(`wrong-argument`,a.message,a.hint,n.span)),a?void 0:i.node},wi=(e,t,n)=>{let r=e.schema.functions??{};if(!Object.hasOwn(r,t.name)){let n=yr(t.name,Object.keys(r));e.errors.push(_r(`unknown-function`,`Unknown function "${t.name}"`,n?`Did you mean "${n}"?`:`Available functions: ${Object.keys(r).join(`, `)||`none`}`,t.span));return}let i=r[t.name],a=i.params.length;if(t.args.length<a||!i.rest&&t.args.length>a){let n=i.rest?`at least ${a}`:String(a);e.errors.push(_r(`wrong-arity`,`${t.name}() takes ${n} argument(s) but got ${t.args.length}`,`Usage: ${t.name}(${[...i.params,...i.rest?[i.rest]:[]].map(e=>e.name).join(`, `)})`,t.span));return}let o=t.args.map((t,r)=>vee(e,i.params[r]??i.rest,t,n));if(!o.some(e=>e===void 0))return{call:{...t,args:o},returns:i.returns??`boolean`}},yee=(e,t,n)=>{if(e===`timestamp`&&t===`duration`)return`timestamp`;if(e===`timestamp`&&t===`timestamp`&&n===`-`||e===`duration`&&t===`duration`)return`duration`;if((e===`integer`||e===`number`)&&(t===`integer`||t===`number`))return e===`integer`&&t===`integer`?`integer`:`number`},bee={number:`number`,boolean:`boolean`,duration:`duration`,timestamp:`timestamp`},Ti=(e,t)=>{switch(t.kind){case`call`:{let n=wi(e,t,Ti);return n&&{node:n.call,type:n.returns}}case`binary`:{let n=Ti(e,t.left),r=Ti(e,t.right);if(!n||!r)return;let i=n.type&&r.type?yee(n.type,r.type,t.op):n.type??r.type??`number`;if(!i){e.errors.push(_r(`invalid-value`,`Cannot apply "${t.op}" to ${n.type} and ${r.type}`,`Add a duration to a timestamp, or combine numbers`,t.span));return}return{node:{...t,left:n.node,right:r.node},type:i}}case`number`:case`boolean`:case`duration`:case`timestamp`:return{node:t,type:bee[t.kind]};default:return{node:t,type:void 0}}},Ei=[`string`,`integer`,`number`,`timestamp`,`duration`,`any`],Di=(e,t)=>{if(t.kind===`member`){let n=yi(e,t);return n&&{node:n,type:n.field.spec.type,spec:n.field.spec}}let n=Ti(e,t);return n&&{...n,spec:void 0}},Oi=(e,t,n,r)=>{e.errors.push(_r(`operator-not-allowed`,t,n,r.span))},ki=(e,t,n)=>{if(!t.type)return Ti(e,n)?.node;let r=Ti(e,n);if(!r)return;let i=r.type&&(n.kind===`call`||n.kind===`binary`)?Si(t.type,r.type)?void 0:{message:`Expected ${t.type} but got ${r.type}`,hint:`Compare values of the same type`}:Ci(t.type,t.spec,r.node);return i&&e.errors.push(_r(`invalid-value`,i.message,i.hint,n.span)),i?void 0:r.node},Ai=(e,t)=>{let n=Di(e,t.left);if(!n)return;let r=n.type;if(n.spec?.repeated)return Oi(e,`"${t.op}" is not supported on repeated fields`,`Use field:value to test membership`,t);if(r===`map`||r===`message`)return Oi(e,`${r} fields cannot be compared`,`Use field:key, or compare a nested field`,t);if(r&&![`=`,`!=`].includes(t.op)&&!Ei.includes(r))return Oi(e,`"${t.op}" is not supported for ${r} fields`,`Supported: = !=`,t);let i=(t.op===`=`||t.op===`!=`)&&t.right.kind===`string`&&t.right.value.includes(`*`);if(i&&r&&r!==`string`&&r!==`any`){e.errors.push(_r(`wildcard-not-allowed`,`Wildcards are only supported on string fields, not ${r}`,`Remove the "*"`,t.right.span));return}let a=i?t.right:ki(e,n,t.right);return a&&{...t,left:n.node,right:a}},ji=(e,t)=>{let n=Di(e,t.left);if(!n)return;let{type:r,spec:i}=n,a=ki(e,!i?.repeated&&(r===`map`||r===`message`)?{...n,type:`string`}:n,t.right);return a&&{...t,left:n.node,right:a}},Mi=(e,t)=>{switch(t.kind){case`sequence`:case`and`:case`or`:{let n=t.args.map(t=>Mi(e,t));return n.every(e=>e)?{...t,args:n}:void 0}case`not`:{let n=Mi(e,t.arg);return n&&{...t,arg:n}}case`compare`:return Ai(e,t);case`has`:return ji(e,t);case`present`:{let n=Di(e,t.left);return n&&{...t,left:n.node}}case`global`:return t;case`call`:{let n=wi(e,t,Ti);if(n&&n.returns!==`boolean`){e.errors.push(_r(`not-boolean`,`${t.name}() returns ${n.returns}, not a condition`,`Compare its result: f(x) > 1`,t.span));return}return n?.call}}},Ni=(e,t)=>{let n={schema:t,errors:[]},r=Mi(n,e);return!r||n.errors.length>0?{ok:!1,errors:[...n.errors].sort((e,t)=>e.span.start-t.span.start)}:{ok:!0,ast:r}},Pi={"\\":`\\\\`,'"':`\\"`,"\n":`\\n`,"\r":`\\r`," ":`\\t`,"\x07":`\\a`,"\b":`\\b`,"\f":`\\f`,"\v":`\\v`},Fi=e=>{if(!e.isWellFormed())throw Error(`Strings with unpaired surrogates cannot be printed`);return`"${e.replace(/[\\"\u0000-\u001f\u007f-\u009f]/g,e=>Pi[e]??`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}"`},Ii=e=>{switch(e.kind){case`string`:return Fi(e.value);case`number`:return e.raw;case`boolean`:return String(e.value);case`duration`:return`${e.amount}${e.unit}`;case`timestamp`:return e.value}},Li=e=>e.kind===`number`&&e.raw.startsWith(`-`),Ri=e=>{switch(e.kind){case`member`:return e.path.join(`.`);case`call`:return`${e.name}(${e.args.map(zi).join(`, `)})`;case`binary`:if(e.right.kind===`binary`)throw Error(`Arithmetic is left-associative; a binary on the right cannot be printed`);return`${Ri(e.left)} ${e.op} ${Ri(e.right)}`;default:return Ii(e)}},zi=e=>Vi(e)?`(${Wi(e)})`:Ri(e),Bi=[`member`,`string`,`number`,`boolean`,`duration`,`timestamp`,`binary`],Vi=e=>!Bi.includes(e.kind)&&e.kind!==`call`,Hi=e=>{if(Li(e))throw Error(`A negative number cannot start a comparison; "-5 = x" parses as a negation`);return Ri(e)},Ui=(e,t)=>({and:[`and`,`or`],sequence:[`and`,`or`,`sequence`],or:[`and`,`or`,`sequence`],not:[`and`,`or`,`sequence`,`not`]})[e].includes(t.kind)?`(${Wi(t)})`:Wi(t),Wi=e=>{switch(e.kind){case`and`:return e.args.map(e=>Ui(`and`,e)).join(` AND `);case`or`:return e.args.map(e=>Ui(`or`,e)).join(` OR `);case`sequence`:return e.args.map(e=>Ui(`sequence`,e)).join(` `);case`not`:return`NOT ${Ui(`not`,e.arg)}`;case`compare`:return`${Hi(e.left)} ${e.op} ${Ri(e.right)}`;case`has`:return`${Hi(e.left)}:${Ri(e.right)}`;case`present`:return`${Hi(e.left)}:*`;case`global`:return Ri(e.value);case`call`:return Ri(e)}},Gi=class{int;scale;constructor(e,t){this.int=e,this.scale=t}compare(e){let t=Math.max(this.scale,e.scale),n=this.int*10n**BigInt(t-this.scale),r=e.int*10n**BigInt(t-e.scale);return n<r?-1:+(n>r)}toNumber(){return Number(`${this.int}e-${this.scale}`)}},Ki=/^(-?)(\d+)(?:\.(\d+))?$/,qi=e=>{let t=Ki.exec(e);if(!t)return;let n=t[3]??``;return new Gi(BigInt(`${t[1]}${t[2]}${n}`),n.length)},Ji=/^-?(?:\d+(?:\.\d+)?(?:[eE][+-]?\d+)?|0[xX][0-9a-fA-F]+)$/,Yi=e=>{if(typeof e==`number`)return e;if(typeof e==`bigint`)return Number(e);if(e instanceof Gi)return e.toNumber();if(typeof e==`string`&&Ji.test(e))return e.startsWith(`-`)?-Number(e.slice(1)):Number(e)},Xi=e=>typeof e==`bigint`?new Gi(e,0):typeof e==`number`?Number.isFinite(e)?qi(String(e)):void 0:typeof e==`string`?qi(e):e instanceof Gi?e:void 0,Zi=(e,t)=>{let n=0,r=0,i=-1,a=0;for(;r<t.length;)if(n<e.length&&e[n]===`*`)i=n++,a=r;else if(n<e.length&&e[n]===t[r])n++,r++;else if(i>=0)n=i+1,r=++a;else return!1;for(;e[n]===`*`;)n++;return n===e.length},Qi=e=>typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof Gi)&&`seconds`in e&&typeof e.seconds==`number`,$i=e=>{switch(e.kind){case`string`:return e.value;case`number`:return qi(e.raw)??e.value;case`boolean`:return e.value;case`duration`:return{seconds:e.amount*wr[e.unit]};case`timestamp`:return new Date(Tr(e.value)??NaN)}},ea=e=>Qi(e)?e.seconds:typeof e==`number`?e:typeof e==`string`?Dr(e):void 0,ta=e=>e instanceof Date?e.getTime():typeof e==`string`?Tr(e):void 0,na=e=>{switch(e.kind){case`string`:return e.value;case`member`:return e.path.join(`.`);case`number`:return e.raw;case`boolean`:return String(e.value);case`duration`:return`${e.amount}${e.unit}`;case`timestamp`:return e.value;default:return}},ra=(e,t)=>{switch(e){case`=`:return t===0;case`!=`:return t!==0;case`<`:return t<0;case`<=`:return t<=0;case`>`:return t>0;case`>=`:return t>=0}},ia=(e,t)=>e<t?-1:+(e>t),aa=(e,t)=>{let n=Xi(e),r=Xi(t);if(n&&r)return n.compare(r);let i=Yi(e),a=Yi(t);return i===void 0||a===void 0||Number.isNaN(i)||Number.isNaN(a)?void 0:ia(i,a)},oa=(e,t,n)=>{let r=(e===`=`||e===`!=`)&&n.includes(`*`);if(typeof t==`string`)return r?ra(e,+!Zi(n,t)):ra(e,ia(t,n));if(typeof t==`number`||typeof t==`bigint`){let r=aa(t,n);return r===void 0?void 0:ra(e,r)}if(t instanceof Date){let r=ta(n);return r===void 0?void 0:ra(e,ia(t.getTime(),r))}if(typeof t==`boolean`)return n===`true`||n===`false`?ra(e,ia(String(t),n)):void 0;if(Qi(t)){let r=ea(n);return r===void 0?void 0:ra(e,ia(t.seconds,r))}},sa=(e,t,n)=>{if(t==null)return!1;if(typeof n==`string`)return oa(e,t,n)??!1;if(n instanceof Gi||typeof n==`number`||typeof n==`bigint`){let r=aa(t,n);return r!==void 0&&ra(e,r)}if(typeof n==`boolean`){let r=typeof t==`string`?t===`true`||t!==`false`&&void 0:t;return typeof r==`boolean`&&ra(e,ia(String(r),String(n)))}if(n instanceof Date){let r=ta(t);return r===void 0||Number.isNaN(n.getTime())?!1:ra(e,ia(r,n.getTime()))}if(Qi(n)){let r=ea(t);return r!==void 0&&ra(e,ia(r,n.seconds))}return!1},ca=(e,t)=>{let n=[e];for(let e of t)n=n.flatMap(t=>Array.isArray(t)?t.flatMap(t=>la(t,e)):la(t,e));return n.filter(e=>e!=null)},la=(e,t)=>typeof e!=`object`||!e?[]:e instanceof Map?e.has(t)?[e.get(t)]:[]:Object.hasOwn(e,t)?[e[t]]:[],ua=e=>e.flatMap(e=>Array.isArray(e)?e:[e]),da=32,fa=(e,t)=>t>da||e==null?[]:typeof e==`string`?[e]:typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?[String(e)]:e instanceof Date?[e.toISOString()]:Array.isArray(e)?e.flatMap(e=>fa(e,t+1)):e instanceof Map?[...e.values()].flatMap(e=>fa(e,t+1)):typeof e==`object`?Object.values(e).flatMap(e=>fa(e,t+1)):[],pa=(e,t)=>{let n=e.toLowerCase();return fa(t,0).some(e=>e.toLowerCase().includes(n))},ma=e=>[`member`,`string`,`number`,`boolean`,`duration`,`timestamp`,`call`,`binary`].includes(e.kind),ha=(e,t,n)=>{let r=e===`+`?1:-1;if(t instanceof Date&&Qi(n))return new Date(t.getTime()+r*n.seconds*1e3);if(t instanceof Date&&n instanceof Date&&e===`-`)return{seconds:(t.getTime()-n.getTime())/1e3};if(Qi(t)&&Qi(n))return{seconds:t.seconds+r*n.seconds};let i=t instanceof Gi?t.toNumber():t,a=n instanceof Gi?n.toNumber():n;return typeof i==`number`&&typeof a==`number`?i+r*a:void 0},ga=(e,t)=>{let n=t.options.functions?.[e.name];if(!n?.evaluate)throw Error(`Function "${e.name}" has no evaluate implementation`);let r=e.args.map((e,r)=>{let i=n.params[r]??n.rest;return e.kind===`member`&&i?.type===`field`?ua(ca(t.record,e.path)):ma(e)?_a(e,t):Ca(e,t)});return n.evaluate(...r)},_a=(e,t)=>{switch(e.kind){case`member`:return e.path.join(`.`);case`call`:return ga(e,t);case`binary`:return ha(e.op,_a(e.left,t),_a(e.right,t));default:return $i(e)}},va=(e,t)=>e.kind===`member`?ca(t.record,e.path):[_a(e,t)],ya=(e,t,n)=>ua(t).some(t=>sa(e,t,n)),ba=(e,t)=>{let n=e.kind===`member`?e.field?.spec.type:void 0;return typeof t!=`string`||!n?t:n===`timestamp`?ta(t)===void 0?t:new Date(ta(t)):n===`duration`?ea(t)===void 0?t:{seconds:ea(t)}:n===`integer`||n===`number`?Xi(t)??t:n===`boolean`?t===`true`||t!==`false`&&t:t},xa=(e,t)=>{let n=ba(e.left,_a(e.right,t)),r=va(e.left,t);return e.op===`!=`?!ya(`=`,r,n):ya(e.op,r,n)},Sa=(e,t)=>{let n=_a(e.right,t),r=na(e.right);return va(e.left,t).some(e=>Array.isArray(e)?e.some(e=>sa(`=`,e,n)):e instanceof Map?r!==void 0&&e.has(r):typeof e==`object`&&e&&!(e instanceof Date)&&!Qi(e)&&!(e instanceof Gi)?r!==void 0&&Object.hasOwn(e,r):sa(`=`,e,n))},Ca=(e,t)=>{switch(e.kind){case`sequence`:case`and`:return e.args.every(e=>Ca(e,t));case`or`:return e.args.some(e=>Ca(e,t));case`not`:return!Ca(e.arg,t);case`compare`:return xa(e,t);case`has`:return Sa(e,t);case`present`:return va(e.left,t).some(e=>e!=null);case`global`:return(t.options.search??pa)(na(e.value)??String(_a(e.value,t)),t.record);case`call`:return ga(e,t)===!0}},wa=(e,t,n={})=>Ca(e,{record:t,options:n}),Ta=(e,t,n,r)=>({code:e,message:t,hint:n,span:r}),Ea=(e,t)=>{let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r++){let i=[r];for(let a=1;a<=t.length;a++){let o=e[r-1]===t[a-1]?0:1;i[a]=Math.min(n[a]+1,i[a-1]+1,n[a-1]+o)}n=i}return n[t.length]},Da=(e,t)=>{let n=e.toLowerCase(),r=t.map(e=>({candidate:e,score:Ea(n,e.toLowerCase())})).sort((e,t)=>e.score-t.score)[0];return r&&r.score<=Math.max(2,Math.floor(e.length/3))?r.candidate:void 0},Oa={in:{params:[{name:`field`,type:`field`}],rest:{name:`value`,type:`any`}},search:{params:[{name:`text`,type:`string`}]},similar:{params:[{name:`field`,type:`field`,of:[`string`]},{name:`text`,type:`string`}]},regex:{params:[{name:`field`,type:`field`,of:[`string`]},{name:`pattern`,type:`string`}]},isNull:{params:[{name:`field`,type:`field`}]},now:{params:[],returns:`timestamp`}},ka={extensions:{arithmetic:`now-offset`,durationUnits:!0}},Aa=e=>{switch(e.type){case`text`:return`string`;case`integer`:case`bigint`:return`integer`;case`boolean`:case`timestamp`:case`enum`:return e.type;default:return`any`}},ja=e=>({fields:Object.fromEntries(Object.values(e.fields).map(e=>[e.name,{type:Aa(e),filterable:e.filterable,sortable:e.sortable,aliases:e.aliases,...e.enumValues&&{values:e.enumValues}}])),functions:Oa}),Ma=(e,t,n,r)=>{e.errors.push(Ta(`unsupported`,t,n,r))},Na=(e,t)=>t.kind===`member`?{kind:`field`,path:t.path,span:t.span}:Ma(e,`Only fields can be compared`,`Put a field name on the left, for example total > 100`,t.span),Pa=(e,t)=>{switch(t.kind){case`member`:return{kind:`string`,value:t.path.join(`.`),span:t.span};case`call`:return t.name===`now`&&t.args.length===0?{kind:`now`,span:t.span}:Ma(e,`${t.name}() cannot be used as a value`,`Only now() is a value function`,t.span);case`binary`:{let n=t.left;return n.kind===`call`&&n.name===`now`&&n.args.length===0&&t.right.kind===`duration`?{kind:`now`,offset:{sign:t.op,duration:t.right},span:t.span}:Ma(e,`Arithmetic is only supported as now() +/- duration`,`Write now() - 30d`,t.span)}default:return t}},Fa=(e,t)=>(`kind`in t&&[`member`,`call`,`binary`].includes(t.kind)?void 0:t)||(t.kind===`member`?{kind:`string`,value:t.path.join(`.`),span:t.span}:Ma(e,`Expected a literal value`,`Use strings, numbers, true/false, durations or timestamps`,t.span)),Ia=e=>{switch(e.kind){case`member`:return e.path.join(`.`);case`string`:case`timestamp`:return e.kind,e.value;case`number`:return e.raw;case`boolean`:return String(e.value);case`duration`:return`${e.amount}${e.unit}`;default:return``}},La=(e,t)=>{let[n,r,...i]=t.args,a=n?.kind===`member`?Na(e,n):void 0,o=e=>e?.kind===`string`?e.value:void 0,s=n=>{e.errors.push(Ta(`invalid-arguments`,`Invalid arguments to ${t.name}()`,`Usage: ${n}`,t.span))};switch(t.name){case`in`:{let n=t.args.slice(1).map(t=>Fa(e,t));return!a||n.length===0?s(`in(field, value1, value2, ...)`):n.every(e=>e)?{kind:`in`,field:a,values:n,span:t.span}:void 0}case`search`:return o(n)!==void 0&&!r?{kind:`search`,text:o(n),span:t.span}:s(`search("text")`);case`similar`:return a&&o(r)!==void 0&&i.length===0?{kind:`similar`,field:a,text:o(r),span:t.span}:s(`similar(field, "text")`);case`regex`:return a&&o(r)!==void 0&&i.length===0?{kind:`regex`,field:a,pattern:o(r),span:t.span}:s(`regex(field, "pattern")`);case`isNull`:return a&&!r?{kind:`isNull`,field:a,span:t.span}:s(`isNull(field)`);default:e.errors.push(Ta(`unknown-function`,`Unknown function "${t.name}"`,`Available functions: ${Object.keys(Oa).join(`, `)}`,t.span));return}},Ra=e=>e.every(e=>e)?e:void 0,za=(e,t)=>{switch(t.kind){case`sequence`:case`and`:case`or`:{let n=Ra(t.args.map(t=>za(e,t)));return n&&{kind:t.kind===`or`?`or`:`and`,args:n,span:t.span}}case`not`:{let n=za(e,t.arg);return n&&{kind:`not`,arg:n,span:t.span}}case`compare`:{let n=Na(e,t.left),r=Pa(e,t.right);return n&&r&&{kind:`compare`,op:t.op,field:n,value:r,span:t.span}}case`has`:{let n=Na(e,t.left),r=Fa(e,t.right);return n&&r&&{kind:`has`,field:n,value:r,span:t.span}}case`present`:{let n=Na(e,t.left);return n&&{kind:`present`,field:n,span:t.span}}case`global`:return{kind:`search`,text:Ia(t.value),span:t.span};case`call`:return La(e,t)}},Ba=(e,t={})=>{let n=vi(e,{...ka,...t}),r={errors:[]},i=n.ast&&za(r,n.ast),a=[...n.errors,...r.errors].sort((e,t)=>e.span.start-t.span.start);return a.length===0?{ok:!0,ast:i,errors:[]}:{ok:!1,ast:i,errors:a}},Va=(e,t)=>t===2?e%4==0&&(e%100!=0||e%400==0)?29:28:[4,6,9,11].includes(t)?30:31,Ha=e=>{let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let[n,r,i]=[Number(t[1]),Number(t[2]),Number(t[3])];return r>=1&&r<=12&&i>=1&&i<=Va(n,r)},Ua=e=>{let t=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:[Zz]|[+-](\d{2}):(\d{2}))$/.exec(e);if(!t)return!1;let[n,r,i]=[Number(t[2]),Number(t[3]),Number(t[4])],[a,o]=[Number(t[5]??0),Number(t[6]??0)];return Ha(t[1])&&n<=23&&r<=59&&i<=59&&a<=23&&o<=59},Wa=(e,t)=>({message:e,hint:t}),Ga=-(2n**63n),Ka=2n**63n-1n,qa=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Ja=e=>e.kind===`number`?e.raw:e.kind===`string`?e.value:void 0,Ya=(e,t=`Write ${e} values like the examples in the docs`)=>Wa(`Expected ${e}`,t),Xa=e=>{let t=Ja(e),n=t===void 0?NaN:Number(t);if(t===void 0||t.trim()===``||!Number.isSafeInteger(n))return Ya(`a whole number`,`Use an integer such as 42, or a bigint field for larger values`)},Za=e=>{let t=Ja(e);if(t===void 0||!/^-?\d+$/.test(t)||BigInt(t)<Ga||BigInt(t)>Ka)return Ya(`a 64-bit integer`,`Use plain digits such as 9007199254740993 (no exponent or fraction)`)},Qa=e=>{let t=Ja(e);if(t===void 0||!/^-?\d+(\.\d+)?$/.test(t))return Ya(`a decimal number`,`Use plain digits such as 100.50, or quote it: "100.50" (no exponent)`)},$a=(e,t)=>{if(t.kind===`now`)return e.type===`date`||e.type===`timestamp`?void 0:Wa(`now() only works with date and timestamp fields`,`Field "${e.name}" is ${e.type}`);switch(e.type){case`text`:return t.kind===`string`?void 0:Ya(`a quoted string`,`Wrap the text in double quotes`);case`integer`:return Xa(t);case`bigint`:return Za(t);case`decimal`:return Qa(t);case`boolean`:return t.kind===`boolean`?void 0:Ya(`true or false`);case`date`:return t.kind===`string`&&Ha(t.value)?void 0:Ya(`a date`,`Quote a calendar date: "2012-04-21"`);case`timestamp`:return t.kind===`timestamp`||t.kind===`string`&&Ua(t.value)?void 0:Ya(`an RFC-3339 timestamp`,`Use 2012-04-21T11:30:00Z, or now() - 7d`);case`uuid`:return t.kind===`string`&&qa.test(t.value)?void 0:Ya(`a uuid`,`Quote a uuid like "0b5a4f0e-6f2a-4a3c-9d4e-1f2a3b4c5d6e"`);case`enum`:return t.kind===`string`&&e.enumValues?.includes(t.value)?void 0:Wa(`Invalid enum value`,`Allowed values: ${(e.enumValues??[]).join(`, `)}`);case`currency`:return t.kind===`string`&&/^[A-Z]{3}$/.test(t.value)?void 0:Ya(`an ISO 4217 currency code`,`Use three capital letters, for example "EUR"`);case`country`:return t.kind===`string`&&/^[A-Z]{2}$/.test(t.value)?void 0:Ya(`an ISO 3166-1 country code`,`Use two capital letters, for example "NL"`);case`relation`:return t.kind===`string`||t.kind===`number`&&Number.isSafeInteger(t.value)?void 0:Ya(`a record key`,`Use the related record key: 42 or "abc"`);case`json`:case`file`:return Wa(`${e.type} fields cannot be compared`,`Use field:value on json fields, or isNull(field)`)}},eo=(e,t)=>Object.hasOwn(e.fields,t)?e.fields[t]:Object.values(e.fields).find(e=>e.aliases.includes(t)),to=(e,t,n)=>{if(t.path.length>1){e.errors.push(Ta(`unsupported-traversal`,`Traversal into "${t.path.join(`.`)}" is not supported yet`,`Filter on fields of this resource only`,t.span));return}let r=t.path[0],i=eo(e.model,r);if(!i){let i=Object.values(e.model.fields).filter(e=>e[n]).map(e=>e.name),a=Da(r,i);e.errors.push(Ta(`unknown-field`,`Unknown field "${r}"`,a?`Did you mean "${a}"?`:`Available fields: ${i.join(`, `)}`,t.span));return}if(!i[n]){let r=n===`filterable`?`filterable`:`sortable`;e.errors.push(Ta(n===`filterable`?`not-filterable`:`not-sortable`,`Field "${i.name}" is not ${r}`,`Mark it with .${r}() in data.ts`,t.span));return}return i},no=[`=`,`!=`],ro=[`=`,`!=`,`<`,`<=`,`>`,`>=`],io=e=>{switch(e){case`text`:case`integer`:case`bigint`:case`decimal`:case`date`:case`timestamp`:return ro;case`json`:case`file`:return[];default:return no}},ao=e=>e===`json`||e===`file`,oo=(e,t,n)=>{let r=$a(t,n);return r&&e.errors.push(Ta(`invalid-value`,r.message,r.hint,n.span)),!r},so=(e,t,n,r)=>{e.errors.push(Ta(`operator-not-allowed`,t,n,r))},co=(e,t)=>(e===`=`||e===`!=`)&&t.kind===`string`&&t.value.includes(`*`),lo=(e,t)=>{let n=to(e,t.field,`filterable`);if(!n)return;let r=io(n.type);if(!r.includes(t.op)){so(e,`Operator "${t.op}" is not supported for ${n.type} fields`,r.length?`Supported: ${r.join(` `)}`:`Use field:value on json fields, or isNull(field)`,t.span);return}if(co(t.op,t.value)&&n.type!==`text`){e.errors.push(Ta(`wildcard-not-allowed`,`Wildcards are only supported on text fields, not ${n.type}`,`Remove the "*" or filter a text field`,t.value.span));return}if(co(t.op,t.value)||oo(e,n,t.value))return{...t,field:n}},uo=(e,t)=>{let n=to(e,t.field,`filterable`);if(n){if(n.type!==`json`){so(e,`":" is only supported on json fields, not ${n.type}`,`Use = on ${n.type} fields, or field:* to test for a value`,t.span);return}return{...t,field:n}}},fo=(e,t)=>{let n=to(e,t.field,`filterable`);if(n){if(ao(n.type)){so(e,`in() is not supported for ${n.type} fields`,`Use field:value on json fields`,t.span);return}return t.values.map(t=>oo(e,n,t)).every(Boolean)?{...t,field:n}:void 0}},po=(e,t,n)=>{let r=to(e,n,`filterable`);if(r&&r.type!==`text`){so(e,`${t}() only works on text fields, not ${r.type}`,`Field "${r.name}" is ${r.type}`,n.span);return}return r},mo=(e,t)=>{switch(t.kind){case`and`:case`or`:{let n=t.args.map(t=>mo(e,t));return n.every(e=>e)?{...t,args:n}:void 0}case`not`:{let n=mo(e,t.arg);return n&&{...t,arg:n}}case`compare`:return lo(e,t);case`has`:return uo(e,t);case`in`:return fo(e,t);case`search`:if(e.model.search?.length)return t;e.errors.push(Ta(`no-search-fields`,`This resource has no search fields`,`Declare them with .search((r) => [r.title]) in data.ts`,t.span));return;case`present`:case`isNull`:{let n=to(e,t.field,`filterable`);return n&&{...t,field:n}}case`similar`:case`regex`:{let n=po(e,t.kind,t.field);return n&&{...t,field:n}}}},ho=(e,t)=>{let n={model:e,errors:[]},r=mo(n,t);return!r||n.errors.length>0?{ok:!1,errors:[...n.errors].sort((e,t)=>e.span.start-t.span.start)}:{ok:!0,filter:r}},go=(e,t)=>`path`in e?{kind:`member`,path:e.path,span:e.span}:{kind:`member`,path:[e.name],field:{name:e.name,spec:{type:Aa(e)}},span:t},_o=(e,t,n)=>({kind:`call`,name:e,args:t,span:n}),vo=(e,t)=>({kind:`string`,value:e,span:t}),yo=e=>{if(e.kind!==`now`)return e;let t={kind:`call`,name:`now`,args:[],span:e.span};return e.offset?{kind:`binary`,op:e.offset.sign,left:t,right:e.offset.duration,span:e.span}:t},bo=(e,t={})=>{let n=e=>bo(e,t);switch(e.kind){case`and`:case`or`:return{kind:e.kind,args:e.args.map(n),span:e.span};case`not`:return{kind:`not`,arg:n(e.arg),span:e.span};case`compare`:return{kind:`compare`,op:e.op,left:go(e.field,e.span),right:yo(e.value),span:e.span};case`has`:return{kind:`has`,left:go(e.field,e.span),right:e.value,span:e.span};case`present`:return{kind:`present`,left:go(e.field,e.span),span:e.span};case`in`:return t.expand?{kind:`or`,args:e.values.map(t=>({kind:`compare`,op:`=`,left:go(e.field,e.span),right:t,span:e.span})),span:e.span}:_o(`in`,[go(e.field,e.span),...e.values],e.span);case`search`:return _o(`search`,[vo(e.text,e.span)],e.span);case`similar`:return _o(`similar`,[go(e.field,e.span),vo(e.text,e.span)],e.span);case`regex`:return _o(`regex`,[go(e.field,e.span),vo(e.pattern,e.span)],e.span);case`isNull`:return t.expand?{kind:`not`,arg:{kind:`present`,left:go(e.field,e.span),span:e.span},span:e.span}:_o(`isNull`,[go(e.field,e.span)],e.span)}},xo=(e,t)=>{let n=ho(e,t);if(!n.ok&&n.errors.some(e=>e.code===`unsupported-traversal`))return n;let r=Ni(bo(t),ja(e));return r.ok?ho(e,t):{ok:!1,errors:r.errors}},So=e=>Wi(bo(e)),xee=e=>{let t=[];for(let n of e.matchAll(/,|\.|[^\s,.]+/g)){let e=n.index,r=n[0]===`,`?`comma`:n[0]===`.`?`dot`:`word`;t.push({kind:r,text:n[0],span:{start:e,end:e+n[0].length}})}return t},Co=e=>{let t=xee(e),n=[],r=[],i={start:e.length,end:e.length},a=0,o=(e,t,r,i)=>n.push(_r(e,t,r,i)),s=()=>{for(;a<t.length&&t[a].kind!==`comma`;)a++;a++},c=()=>{let e=t[a];if(!e||e.kind!==`word`)return o(`expected-field`,`Expected a field name but found ${e?`"${e.text}"`:`end of input`}`,`Write order_by like: createdAt desc, total`,e?.span??i),!1;let n=[e.text],s=e;for(a++;t[a]?.kind===`dot`;){let e=t[a+1];if(e?.kind!==`word`)return o(`expected-field`,`Expected a field name after "."`,`Write subfields like address.street`,e?.span??i),!1;n.push(e.text),s=e,a+=2}let c=t[a],l=`asc`;if(c?.kind===`word`){if(c.text!==`asc`&&c.text!==`desc`)return o(`unexpected-token`,`Expected "desc" or "," but found "${c.text}"`,`Separate fields with commas; append " desc" for descending order`,c.span),!1;l=c.text,s=c,a++}let u=t[a];return u&&u.kind!==`comma`?(o(`unexpected-token`,`Expected "," but found "${u.text}"`,`Separate fields with commas`,u.span),!1):(r.push({path:n,direction:l,span:{start:e.span.start,end:s.span.end}}),!0)};for(;a<t.length;){if(!c()){s();continue}t[a]?.kind===`comma`&&(a++,a>=t.length&&o(`expected-field`,`Expected a field name after ","`,`Remove the trailing comma`,i))}return n.length===0?{ok:!0,items:r,errors:[]}:{ok:!1,items:r,errors:n}},wo=(e,t)=>{if(Object.hasOwn(e,t))return{name:t,field:e[t]};let n=Object.entries(e).find(([,e])=>e.aliases?.includes(t));return n&&{name:n[0],field:n[1]}},To=(e,t)=>{let n=[],r=[];for(let i of e){let e=wo(t.fields,i.path[0]);if(!e){let e=Object.entries(t.fields).filter(([,e])=>e.sortable!==!1).map(([e])=>e),r=yr(i.path[0],e);n.push(_r(`unknown-field`,`Unknown field "${i.path[0]}"`,r?`Did you mean "${r}"?`:`Available fields: ${e.join(`, `)}`,i.span));continue}let a=[e.name],o=e.field,s=o.sortable!==!1,c=!1;for(let e of i.path.slice(1)){let t=o.fields?wo(o.fields,e)?.field:o.value;if(!t){n.push(_r(`invalid-traversal`,`Cannot sort by "${e}" inside "${a.join(`.`)}"`,`Only nested message fields and map values can be traversed`,i.span)),c=!0;break}a.push(o.fields?wo(o.fields,e).name:e),o=t,s&&=o.sortable!==!1}if(!c){if(!s){n.push(_r(`not-sortable`,`Field "${a.join(`.`)}" cannot be sorted on`,`Mark it sortable in the schema`,i.span));continue}r.push({...i,path:a})}}return n.length===0?{ok:!0,items:r}:{ok:!1,errors:n}},Eo=e=>e.map(e=>({path:e.path.path,direction:e.direction,span:e.span})),Do=e=>e.replace(/([^\s,])(\s+)(asc|desc)(?=\s|,|$)/gi,(e,t,n,r)=>`${t}${n}${r.toLowerCase()}`),Oo=e=>{let t=Co(Do(e)),n=t.items.map(e=>({path:{kind:`field`,path:e.path,span:e.span},direction:e.direction,span:e.span}));return t.ok?{ok:!0,items:n,errors:[]}:{ok:!1,items:n,errors:t.errors}},ko=(e,t)=>{let n=t.filter(e=>e.path.path.length>1).map(e=>Ta(`unsupported-traversal`,`Traversal into "${e.path.path.join(`.`)}" is not supported yet`,`Sort on fields of this resource only`,e.path.span));if(n.length>0)return{ok:!1,errors:n};let r=To(Eo(t),ja(e));return r.ok?{ok:!0,sort:r.items.map(e=>[e.path[0],e.direction])}:{ok:!1,errors:r.errors}},Ao=e=>{let t=/^(\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)([smhdw])$/.exec(e);if(!t)throw Error(`Invalid duration "${e}", expected for example 30d or 1.5h`);return{kind:`duration`,amount:Number(t[1]),unit:t[2],span:{start:0,end:0}}},jo={start:0,end:0},Mo=e=>({kind:`field`,path:e.split(`.`),span:jo}),No=e=>{if(typeof e==`string`)return{kind:`string`,value:e,span:jo};if(typeof e==`boolean`)return{kind:`boolean`,value:e,span:jo};if(!Number.isFinite(e))throw Error(`Filter numbers must be finite`);return{kind:`number`,value:e,raw:String(e),span:jo}},Po=e=>typeof e==`object`?e:No(e),Fo=(e,t)=>{if(t.length===0)throw Error(`where.${e} needs at least one filter`);return t.length===1?t[0]:{kind:e,args:t,span:jo}},Io=()=>{let e=e=>(t,n)=>({kind:`compare`,op:e,field:Mo(t),value:Po(n),span:jo}),t=e=>t=>({kind:`now`,offset:{sign:e,duration:Ao(t)},span:jo});return{eq:e(`=`),ne:e(`!=`),lt:e(`<`),lte:e(`<=`),gt:e(`>`),gte:e(`>=`),between:(t,n,r)=>Fo(`and`,[e(`>=`)(t,n),e(`<=`)(t,r)]),has:(e,t)=>({kind:`has`,field:Mo(e),value:No(t),span:jo}),present:e=>({kind:`present`,field:Mo(e),span:jo}),in:(e,t)=>({kind:`in`,field:Mo(e),values:t.map(No),span:jo}),isNull:e=>({kind:`isNull`,field:Mo(e),span:jo}),search:e=>({kind:`search`,text:e,span:jo}),similar:(e,t)=>({kind:`similar`,field:Mo(e),text:t,span:jo}),regex:(e,t)=>({kind:`regex`,field:Mo(e),pattern:t,span:jo}),and:(...e)=>Fo(`and`,e),or:(...e)=>Fo(`or`,e),not:e=>({kind:`not`,arg:e,span:jo}),now:()=>({kind:`now`,span:jo}),ago:t(`-`),fromNow:t(`+`)}};Io();var Lo=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.keys(e).length===1&&typeof e.$field==`string`,Ro=e=>typeof e==`object`&&!!e&&!Array.isArray(e),zo=e=>Lo(e)?e.$field:Array.isArray(e)?e.map(zo):Ro(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,zo(t)])):e,Bo=`table`,Vo=/\{([A-Za-z_][A-Za-z0-9_]*)\}/g,Ho=e=>[...e.matchAll(Vo)].map(e=>e[1]),Uo=e=>e.kind===`record`?(Array.isArray(e.key)?e.key:[e.key]).filter(e=>typeof e==`string`):e.kind===`list`?[e.filter,e.orderBy].filter(e=>e!==void 0):e.kind===`create`?Object.values(e.values??{}):[],Wo=e=>[...new Set(Uo(e).flatMap(Ho))],Go=(e,t)=>e.replace(Vo,(e,n)=>t[n]===null||t[n]===void 0?``:String(t[n])),Ko=(e,t={})=>{if(e.kind===`record`){let n=e=>typeof e==`string`?Go(e,t):e;return{...e,key:Array.isArray(e.key)?e.key.map(n):n(e.key)}}return e.kind===`create`?e.values?{...e,values:Object.fromEntries(Object.entries(e.values).map(([e,n])=>[e,Go(n,t)]))}:e:e.kind===`list`?{...e,...e.filter!==void 0&&{filter:Go(e.filter,t)},...e.orderBy!==void 0&&{orderBy:Go(e.orderBy,t)}}:e},qo=(e,t)=>t?.[e]??e,Jo=/^[\d\s+\-().\/]+$/,Yo=e=>Jo.test(e)?e.replace(/\D/g,``):``,Xo=e=>{let t=e.split(/\s+/).filter(Boolean).map(e=>({text:e,digits:Yo(e),whole:!1})),n=t.length>1?Yo(e.trim()):``;return n?[{text:e.trim(),digits:n,whole:!0},...t]:t},Zo=(e,t,n)=>e==null?!1:n===`digitsEnd`?t.digits!==``&&String(e).replace(/\D/g,``).endsWith(t.digits):!t.whole&&String(e).toLowerCase().includes(t.text.toLowerCase()),Qo=(e,t,n)=>(e.search??[]).filter(r=>Zo(t[r],n,e.searchMatch?.[r])),$o=(e,t,n,r)=>{for(let i of Xo(n)){let n=Qo(e,t,i);if(n.length>0&&!n.some(e=>r.includes(e)))return n[0]}},es=e=>{if(!Array.isArray(e))return String(e);let t=e;return t.length===1?String(t[0]):t.map(e=>encodeURIComponent(String(e))).join(`,`)},ts={filter:`filter`,orderBy:`order_by`,display:`display`,filterLayout:`layout`,create:`new`},ns=[`display`,`filter`,`orderBy`,`filterLayout`],rs=e=>{let t=new URLSearchParams;for(let n of ns){let r=e[n];r!==void 0&&r!==``&&t.set(ts[n],r)}let n=t.toString();return n?`?${n}`:``},is=(e,t=``)=>{switch(e.kind){case`page`:return`${t}/${encodeURIComponent(e.page)}`;case`create`:return`${t}/${encodeURIComponent(e.resource)}/${ts.create}${os(e.values)}`;case`record`:return`${t}/${encodeURIComponent(e.resource)}/${encodeURIComponent(es(e.key))}`;case`list`:return`${t}/${encodeURIComponent(e.resource)}${rs(e)}`}},as=e=>{try{return e.split(`/`).filter(Boolean).map(decodeURIComponent)}catch(e){if(e instanceof URIError)return;throw e}},os=(e={})=>{let t=new URLSearchParams(Object.entries(e).filter(([,e])=>e!==``)).toString();return t?`?${t}`:``},ss=e=>e===`bar`||e===`panel`?e:void 0,cs=(e,t)=>{let n=new URL(e,`http://app`),r=as(n.pathname);if(!r||r.length===0||r.length>2)return;let[i,a]=r;if(i===`-`)return;if(t.has(i))return a===void 0?{kind:`page`,page:i}:void 0;if(a===ts.create){let e=Object.fromEntries([...n.searchParams].filter(([,e])=>e!==``));return{kind:`create`,resource:i,...Object.keys(e).length>0&&{values:e}}}if(a!==void 0)return{kind:`record`,resource:i,key:a};let o=n.searchParams,s=o.get(ts.display)||void 0,c=o.get(ts.filter)||void 0,l=o.get(ts.orderBy)||void 0,u=ss(o.get(ts.filterLayout));return{kind:`list`,resource:i,...s&&{display:s},...c&&{filter:c},...l&&{orderBy:l},...u&&{filterLayout:u}}},ls=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/,us=e=>{let t=ls.exec(e);return t?[Number(t[1]),Number(t[2]),Number(t[3])]:void 0},ds=(e,t)=>e[0]-t[0]||e[1]-t[1]||e[2]-t[2],fs=/^(>=|<=|>|<|=)?(.+)$/,ps={">=":e=>e>=0,"<=":e=>e<=0,">":e=>e>0,"<":e=>e<0,"=":e=>e===0},ms=(e,t)=>{let n=us(e),r=t.trim().split(/\s+/);if(!n||t.trim()===``)return;let i=!0;for(let e of r){let[,t=`=`,r=``]=fs.exec(e)??[],a=us(r);if(!a)return;i&&=ps[t](ds(n,a))}return i},hs=(e,t)=>{if(e.api!==t.api)return`it is built for plugin API ${e.api}, and this app has plugin API ${t.api}`;let n=ms(t.version,e.protobase);if(n===void 0)return`its Protobase range "${e.protobase}" is not one this app reads, such as >=0.12.0`;if(!n)return`it needs Protobase ${e.protobase}, and this app runs ${t.version}`},gs=`[Filtered]`,_s=/authorization|cookie|passw|secret|token|api[-_]?key|credential|session|csrf|signature|^sig$/i,vs=new Set([`url`,`query_string`,`from`,`to`]),ys=12,bs=e=>e.replace(/(^|&)([^=&]*)=([^&]*)/g,(e,t,n)=>_s.test(n)?`${t}${n}=${gs}`:e),xs=e=>{let t=e.indexOf(`?`);if(t===-1)return e;let n=e.indexOf(`#`,t),r=n===-1?e.slice(t+1):e.slice(t+1,n);return`${e.slice(0,t+1)}${bs(r)}${n===-1?``:e.slice(n)}`},Ss=(e,t,n)=>_s.test(e)?gs:typeof t==`string`&&vs.has(e)?e===`query_string`?bs(t):xs(t):Cs(t,n+1),Cs=(e,t)=>t>ys||typeof e!=`object`||!e?e:Array.isArray(e)?e.map(e=>Array.isArray(e)&&e.length===2&&typeof e[0]==`string`?[e[0],Ss(e[0],e[1],t)]:Cs(e,t+1)):Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Ss(e,n,t)])),ws=e=>Cs(e,0),Ts=[`unknown-field`,`not-filterable`,`not-sortable`,`unsupported-traversal`,`invalid-traversal`],Es=e=>e.replace(/(["']?)\{[A-Za-z_][A-Za-z0-9_]*\}\1/g,(e,t)=>t?`${t}x${t}`:`0`),Ds=(e,t)=>{let n=Ba(Es(t));if(!n.ok)return n.errors.map(e=>`filter: ${e.message}`);if(!n.ast)return[];let r=xo(e,n.ast);return r.ok?[]:r.errors.filter(e=>Ts.includes(e.code)).map(e=>`filter: ${e.message}`)},See=(e,t)=>{if(Wo({kind:`list`,resource:e.name,orderBy:t}).length>0)return[];let n=Oo(t);if(!n.ok)return n.errors.map(e=>`orderBy: ${e.message}`);let r=ko(e,n.items);return r.ok?[]:r.errors.map(e=>`orderBy: ${e.message}`)},Cee=(e,{models:t,pages:n,source:r})=>{let i=Wo(e).flatMap(e=>r?Object.hasOwn(r.fields,e)?[]:[`"{${e}}" is not a field of ${r.name}`]:[`"{${e}}" takes a value from the record, but the link sits on none`]);switch(e.kind){case`page`:return n&&!n.has(e.page)?[`unknown page "${e.page}"`]:[];case`list`:case`record`:case`create`:{let n=Object.hasOwn(t,e.resource)?t[e.resource]:void 0;return n?e.kind===`create`?[...i,...Object.keys(e.values??{}).filter(e=>!Object.hasOwn(n.fields,e)).map(t=>`values: unknown field "${t}" on ${e.resource}`)]:e.kind===`list`?[...i,...e.filter?Ds(n,e.filter):[],...e.orderBy?See(n,e.orderBy):[]]:i:[`unknown resource "${e.resource}"`]}default:return[`an address's kind is list, record, create or page, not "${String(e.kind)}"`]}},wee={messages:[],replying:!1},Os=(e,t)=>{let n=e.findIndex(e=>e.id===t.id);return n===-1?[...e,t]:e.map((e,r)=>r===n?t:e)},Tee=(e,t,n)=>{let r=e.find(e=>e.id===t);return Os(e,r?{...r,parts:Os(r.parts,n)}:{id:t,from:`assistant`,parts:[n]})},Eee=(e,t)=>{switch(t.type){case`state`:return t.state;case`message`:return{...e,messages:Os(e.messages,t.message)};case`part`:return{...e,messages:Tee(e.messages,t.messageId,t.part)};case`patch`:{let{replying:n=e.replying,status:r=e.status,placeholder:i=e.placeholder}=t;return{messages:e.messages,replying:n,...r!=null&&{status:r},...i!=null&&{placeholder:i}}}}},Dee=async(e,t,n)=>{let r=new TextDecoder,i=e.getReader();n?.addEventListener(`abort`,()=>void i.cancel(),{once:!0});let a=``,o=[],s=e=>{if(e===``){o.length>0&&t(o.join(`
|
|
4
4
|
`)),o=[];return}e.startsWith(`data:`)&&o.push(e.slice(e.startsWith(`data: `)?6:5))};for(;;){let{done:e,value:t}=await i.read();a+=e?r.decode():r.decode(t,{stream:!0});let n=a.split(/\r\n|\r|\n/);if(a=e?``:n.pop()??``,n.forEach(s),e)return s(``)}},ks=e=>typeof e==`string`?e:e&&So(e),As=(e={})=>({filter:ks(e.filter)||void 0,order_by:e.orderBy,page_size:e.pageSize,page_token:e.pageToken||void 0,fields:e.fields?.join(`,`),count:e.count}),js=e=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``},Oee=e=>{if(typeof e!=`object`||!e)return!1;let{uri:t,url:n}=e;return typeof t==`string`&&typeof n==`string`&&n.startsWith(`/`)&&!n.startsWith(`//`)},kee=e=>e!==void 0&&URL.canParse(e)?new URL(e).origin:void 0,Ms=(e,t)=>t===void 0||typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Oee(n)?{...n,url:`${t}${n.url}`}:n])),Ns=class extends Error{problem;constructor(e){super(e.detail??e.title),this.problem=e,this.name=`ApiError`}get status(){return this.problem.status}get slug(){return this.problem.type.split(`:`).at(-1)??``}get operation(){return this.problem.operation??this.errors.find(e=>e.operation!==void 0)?.operation}get errors(){return this.problem.errors??[]}get filterErrors(){return this.slug===`invalid-filter`?this.errors:[]}},Ps=class extends Ns{constructor(e){super(e),this.name=`PreconditionFailedError`}},Fs=e=>e instanceof Ns,Aee=e=>typeof e==`object`&&!!e&&`type`in e&&`status`in e,Is=async e=>{let t=e.headers.get(`content-type`)?.includes(`json`)??!1?await e.json():void 0,n=Aee(t)?t:{type:`urn:protobase:problem:unknown`,title:e.statusText||`Request failed`,status:e.status};return n.status===412?new Ps(n):new Ns(n)},jee=(e={})=>{let t=e.baseUrl??`/api/v1`,n=t.replace(/\/[^/]*$/,``),r=e.fetch??((e,t)=>fetch(e,t));return async({method:i,path:a,query:o=``,body:s,headers:c,accept:l=[],system:u,raw:d,via:f,signal:p})=>{let m=async l=>{let m=await e.token?.({refresh:l});return(f??r)(`${u?n:t}${a}${o}`,{method:i,headers:{...s!==void 0&&{"content-type":`application/json`},...m&&{authorization:`Bearer ${m}`},...e.headers?.(),...c},body:d??(s===void 0?void 0:JSON.stringify(s)),...p&&{signal:p}})},h=await m(!1);h.status===401&&e.token&&(h=await m(!0),h.status===401&&e.onUnauthenticated?.());let g=h.headers.get(`x-meta-version`);if(g&&e.onMetaVersion?.(g),!h.ok&&!l.includes(h.status))throw await Is(h);return h}},Mee=e=>new Headers(e.trim().split(/[\r\n]+/).filter(Boolean).map(e=>{let t=e.indexOf(`:`);return[e.slice(0,t).trim(),e.slice(t+1).trim()]})),Nee=e=>(t,n={})=>new Promise((r,i)=>{let a=new XMLHttpRequest;a.open(n.method??`GET`,String(t)),new Headers(n.headers).forEach((e,t)=>a.setRequestHeader(t,e)),a.responseType=`blob`,a.upload.onprogress=t=>e(t.loaded,t.lengthComputable?t.total:t.loaded),a.onload=()=>{let e=a.status===204||a.status===304;r(new Response(e?null:a.response,{status:a.status,statusText:a.statusText,headers:Mee(a.getAllResponseHeaders())}))},a.onerror=()=>i(TypeError(`Network request failed`)),a.onabort=()=>i(new DOMException(`The upload was aborted`,`AbortError`)),n.signal?.addEventListener(`abort`,()=>a.abort()),a.send(n.body)}),Ls=e=>typeof e==`string`?e:e.toModel().name,Rs=(e,t)=>`/${Ls(e)}/${es(t)}`,zs=(e,t,n)=>({items:e.items.map(e=>Ms(e,n)),nextPageToken:e.next_page_token,totalSizeEstimate:e.total_size_estimate,...e.prev_page_token!==void 0&&{prevPageToken:e.prev_page_token},...e.total_size!==void 0&&{totalSize:e.total_size},...t.headers.get(`x-protobase-warning`)&&{warning:t.headers.get(`x-protobase-warning`)}}),Bs=e=>e.headers.get(`etag`)??``,Vs=async(e,t)=>{let{permissions:n,...r}=await e.json();return{record:Ms(r,t),etag:Bs(e),...n&&{permissions:n}}},Pee=(e,t)=>({results:(e.results??[]).map(e=>e.op===`create`||e.op===`update`?{...e,record:Ms(e.record,t)}:e.op===`reorder`?{...e,records:e.records.map(e=>({...e,record:Ms(e.record,t)}))}:e)}),Hs=(e={})=>{let t=jee(e),n=kee(e.baseUrl);return{list:async(e,r)=>{let i=await t({method:`GET`,path:`/${Ls(e)}`,query:js(As(r))});return zs(await i.json(),i,n)},search:async(e,r)=>{let i=As(r),a=await t({method:`POST`,path:`/${Ls(e)}:search`,body:{...i,fields:r?.fields}});return zs(await a.json(),a,n)},get:async(e,r)=>Vs(await t({method:`GET`,path:Rs(e,r)}),n),create:async(e,r)=>{let i=await t({method:`POST`,path:`/${Ls(e)}`,body:r});return{record:Ms(await i.json(),n),etag:Bs(i),location:i.headers.get(`location`)??``}},update:async(e,r,i,a)=>Vs(await t({method:`PATCH`,path:Rs(e,r),body:i,headers:{"if-match":a}}),n),remove:async(e,n,{etag:r}={})=>{await t({method:`DELETE`,path:Rs(e,n),headers:r?{"if-match":r}:void 0})},undelete:async(e,r)=>{let i=await t({method:`POST`,path:`${Rs(e,r)}:undelete`});return{record:Ms(await i.json(),n),etag:Bs(i)}},reveal:async(e,n,r)=>(await(await t({method:`POST`,path:`${Rs(e,n)}:reveal`,body:{field:r}})).json()).value,batchWrite:async e=>{let r=e=>typeof e==`object`&&e&&`$ref`in e?e:es(e),i=e.map(e=>({...e,resource:Ls(e.resource),...`key`in e&&{key:r(e.key)},...e.op===`reorder`&&{keys:e.keys.map(r)}}));return Pee(await(await t({method:`POST`,path:`:batchWrite`,body:{ops:i}})).json(),n)},facets:async(e,n,r={})=>(await(await t({method:`GET`,path:`/${Ls(e)}:facets`,query:js({field:n,filter:ks(r.filter)||void 0,limit:r.limit})})).json()).facets,series:async(e,n)=>{let r=await(await t({method:`GET`,path:`/${Ls(e)}:series`,query:js({field:n.field,range:n.range,from:n.from,to:n.to,granularity:n.granularity,time_zone:n.timeZone,filter:ks(n.filter)||void 0})})).json();return{field:r.field,granularity:r.granularity,timeZone:r.time_zone,points:r.points}},histogram:async(e,n,r={})=>(await t({method:`GET`,path:`/${Ls(e)}:histogram`,query:js({field:n,buckets:r.buckets,filter:ks(r.filter)||void 0})})).json(),seek:async(e,r)=>{let i=await t({method:`GET`,path:`/${Ls(e)}:seek`,query:js({...As(r),position:r.position})});return zs(await i.json(),i,n)},meta:async(e,{signal:n}={})=>{let r=await t({method:`GET`,path:`/meta`,system:!0,headers:e?{"if-none-match":e}:void 0,accept:[304],...n&&{signal:n}});return r.status===304?{status:`unchanged`}:{status:`modified`,meta:await r.json(),etag:Bs(r)}},invoke:async(e,{method:n,body:r,path:i=``,query:a,headers:o}={})=>{let s=await t({method:n??(r===void 0?`GET`:`POST`),path:`/functions/${encodeURIComponent(e)}${i}`,query:a?`?${new URLSearchParams(a)}`:``,body:r,headers:o,system:!0});if(s.status!==204)return s.headers.get(`content-type`)?.includes(`json`)?s.json():s.text()},upload:async(e,n,r,{onProgress:i,signal:a}={})=>{let o=`name`in r&&typeof r.name==`string`?r.name:void 0,s=i&&typeof XMLHttpRequest<`u`?Nee(i):void 0,c=await(await t({method:`POST`,path:`/${Ls(e)}:upload`,query:`?${new URLSearchParams({field:n,...o!==void 0&&{name:o}})}`,raw:r,headers:{"content-type":r.type||`application/octet-stream`},...s&&{via:s},...a&&{signal:a}})).json();return i?.(r.size,r.size),c}}},Us=e=>typeof e==`string`?e:e.toModel().name,Fee=(e,t)=>{let n=n=>t(Us(n))??e;return{list:(e,t)=>n(e).list(e,t),search:(e,t)=>n(e).search(e,t),get:(e,t)=>n(e).get(e,t),create:(e,t)=>n(e).create(e,t),update:(e,t,r,i)=>n(e).update(e,t,r,i),remove:(e,t,r)=>n(e).remove(e,t,r),undelete:(e,t)=>n(e).undelete(e,t),reveal:(e,t,r)=>n(e).reveal(e,t,r),batchWrite:t=>{let r=[...new Set(t.map(e=>n(e.resource)))];return r.length>1?Promise.reject(Error(`A batch writes to one API, but these writes are for ${[...new Set(t.map(e=>Us(e.resource)))].join(`, `)}, which different APIs serve`)):(r[0]??e).batchWrite(t)},facets:(e,t,r)=>n(e).facets(e,t,r),series:(e,t)=>n(e).series(e,t),histogram:(e,t,r)=>n(e).histogram(e,t,r),seek:(e,t)=>n(e).seek(e,t),meta:(t,n)=>e.meta(t,n),invoke:(t,n)=>e.invoke(t,n),upload:(e,t,r,i)=>n(e).upload(e,t,r,i)}},Ws=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.type==`string`&&Array.isArray(e.children),Gs=e=>typeof e==`object`&&!!e&&e.kind===`member`,Ks=e=>Gs(e)?[e.path.join(`.`)]:typeof e!=`object`||!e?[]:Object.values(e).flatMap(Ks),qs=e=>Gs(e)?{...e,path:[e.path.join(`.`)]}:Array.isArray(e)?e.map(qs):typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,qs(t)])),Iee=e=>{let t=vi(e);return t.ok?t.ast?{ok:!0,ast:t.ast,paths:[...new Set(Ks(t.ast))]}:{ok:!1,message:`the condition is empty`}:{ok:!1,message:t.errors.map(e=>e.message).join(`; `)}},Lee=(e,t)=>e.ast!==void 0&&wa(qs(e.ast),t),Ree=(e,t)=>{let[n,r,...i]=e.split(`.`);return n&&r===`count`&&i.length===0&&!t(n)?n:void 0},Js=(e,t,n)=>{let r=[],i=e[t],a=n.split(`.`);for(let[o,s]of a.entries()){if(!i)return{ok:!1,message:`unknown resource "${t}"`};let c=Object.hasOwn(i.fields,s)?i.fields[s]:void 0;if(!c)return{ok:!1,message:`unknown field "${a.slice(0,o+1).join(`.`)}" on ${i.name}`};if(r.push({model:i,field:c}),o===a.length-1)break;if(c.type!==`relation`||!c.relation)return{ok:!1,message:`"${a.slice(0,o+1).join(`.`)}" is not a relation, so "${n}" cannot go through it`};t=c.relation.resource,i=e[t]}return{ok:!0,steps:r}},zee=(e,t)=>({...e,fields:Object.fromEntries(Object.entries(e.fields).map(([e,n])=>{if(!n.relation||Object.hasOwn(t,n.relation.resource))return[e,n];let{relation:r,...i}=n;return[e,i]}))}),Bee=(e,t)=>{if(e.kind!==`related`)return[e];if(!Object.hasOwn(t,e.resource)||e.through&&!Object.hasOwn(t,e.through.resource))return[];let{columns:n,...r}=e,i=n?.filter(n=>Js(t,e.resource,n).ok);return[i&&i.length>0?{...r,columns:i}:r]},Vee=(e,t,n)=>e.run?.kind!==`link`||!(`to`in e.run)||Cee(e.run.to,{models:n,pages:new Set,source:t}).length===0,Ys=(e,t)=>({...e,layout:e.layout.flatMap(e=>Bee(e,t)),actions:e.actions.filter(n=>Vee(n,t[e.resource],t))}),Xs=(e,t)=>{let n=e.resources.filter(e=>t.resources.includes(e.name)),r=Object.fromEntries(n.map(e=>[e.name,e])),i=n.map(e=>zee(e,r)),a=Object.fromEntries(i.map(e=>[e.name,e]));return{resources:i,views:e.views.filter(e=>Object.hasOwn(a,e.resource)).map(e=>Ys(e,a)),permissions:Object.fromEntries(n.flatMap(t=>e.permissions?.[t.name]?[[t.name,e.permissions[t.name]]]:[]))}},Zs=class extends Error{status;code;constructor(e,t,n){super(e),this.status=t,this.code=n,this.name=`AuthError`}},R=(e,t)=>new Zs(e?.message||t,e?.status??500,e?.code),Qs=e=>({signInMethods:async()=>{let{data:t,error:n}=await e.$fetch(`/account/sign-in-methods`);if(n||!t)throw R(n,`Could not read your sign-in methods`);return t},passkeys:async()=>{let{data:t,error:n}=await e.passkey.listUserPasskeys();if(n||!t)throw R(n,`Could not read your passkeys`);return t.map(e=>({id:e.id,backedUp:e.backedUp,...e.name&&{name:e.name},...e.createdAt&&{createdAt:new Date(e.createdAt).toISOString()}}))},addPasskey:async t=>{let{error:n}=await e.passkey.addPasskey(t?{name:t}:{});if(n)throw R(n,`Could not add the passkey`)},renamePasskey:async(t,n)=>{let{error:r}=await e.passkey.updatePasskey({id:t,name:n});if(r)throw R(r,`Could not rename the passkey`)},removePasskey:async t=>{let{error:n}=await e.passkey.deletePasskey({id:t});if(n)throw R(n,`Could not remove the passkey`)},startAuthenticatorApp:async t=>{let{data:n,error:r}=await e.twoFactor.enable({method:`totp`,...t&&{password:t}});if(r||n?.method!==`totp`)throw R(r,`Could not start two-factor authentication`);return{totpURI:n.totpURI,backupCodes:n.backupCodes}},confirmAuthenticatorApp:async t=>{let{error:n}=await e.twoFactor.verifyTotp({code:t});if(n)throw R(n,`The code did not work`)},turnOnEmailedCodes:async t=>{let{error:n}=await e.twoFactor.enable({method:`otp`,...t&&{password:t}});if(n)throw R(n,`Could not turn on two-factor authentication`)},turnOffTwoFactor:async t=>{let{error:n}=await e.twoFactor.disable(t?{password:t}:{});if(n)throw R(n,`Could not turn off two-factor authentication`)},linkedProviders:async()=>{let{data:t,error:n}=await e.listAccounts();if(n||!t)throw R(n,`Could not read your linked accounts`);return[...new Set(t.map(e=>e.providerId).filter(e=>e!==`credential`))]},linkProvider:async(t,n)=>{let{data:r,error:i}=await e.linkSocial({provider:t,callbackURL:n,errorCallbackURL:n,disableRedirect:!0});if(i||!r?.url)throw R(i,`Could not start linking the account`);return r.url},newBackupCodes:async t=>{let{data:n,error:r}=await e.twoFactor.generateBackupCodes(t?{password:t}:{});if(r||!n)throw R(r,`Could not make new backup codes`);return n.backupCodes}});function $s(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{code:e,message:t,toString:()=>e}]))}var ec=$s({CHALLENGE_NOT_FOUND:`Challenge not found`,YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY:`You are not allowed to register this passkey`,FAILED_TO_VERIFY_REGISTRATION:`Failed to verify registration`,PASSKEY_NOT_FOUND:`Passkey not found`,AUTHENTICATION_FAILED:`Authentication failed`,UNABLE_TO_CREATE_SESSION:`Unable to create session`,USER_NOT_FOUND:`User not found`,FAILED_TO_UPDATE_PASSKEY:`Failed to update passkey`,PREVIOUSLY_REGISTERED:`Previously registered`,REGISTRATION_CANCELLED:`Registration cancelled`,AUTH_CANCELLED:`Auth cancelled`,UNKNOWN_ERROR:`Unknown error`,SESSION_REQUIRED:`Passkey registration requires an authenticated session`,RESOLVE_USER_REQUIRED:`Passkey registration requires either an authenticated session or a resolveUser callback when requireSession is false`,RESOLVED_USER_INVALID:`Resolved user is invalid`}),tc=`1.7.7`;function nc(e){let t=new Uint8Array(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function rc(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4,r=t.padEnd(t.length+n,`=`),i=atob(r),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return a}function ic(){return ac.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var ac={stubThis:e=>e};function oc(e){let{id:t}=e;return{...e,id:rc(t),transports:e.transports}}function sc(e){return e===`localhost`||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var cc=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}};function lc({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new cc({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new cc({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new cc({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new cc({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new cc({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new cc({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new cc({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new cc({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!sc(t))return new cc({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new cc({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new cc({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new cc({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}var uc=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}},dc=[`cross-platform`,`platform`];function fc(e){if(e&&!(dc.indexOf(e)<0))return e}async function pc(e){!e.optionsJSON&&e.challenge&&(console.warn(`startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=!1}=e;if(!ic())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:rc(t.challenge),user:{...t.user,id:rc(t.user.id)},excludeCredentials:t.excludeCredentials?.map(oc)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=uc.createNewAbortSignal();let a;try{a=await navigator.credentials.create(i)}catch(e){throw lc({error:e,options:i})}if(!a)throw Error(`Registration was not completed`);let{id:o,rawId:s,response:c,type:l}=a,u;typeof c.getTransports==`function`&&(u=c.getTransports());let d;if(typeof c.getPublicKeyAlgorithm==`function`)try{d=c.getPublicKeyAlgorithm()}catch(e){mc(`getPublicKeyAlgorithm()`,e)}let f;if(typeof c.getPublicKey==`function`)try{let e=c.getPublicKey();e!==null&&(f=nc(e))}catch(e){mc(`getPublicKey()`,e)}let p;if(typeof c.getAuthenticatorData==`function`)try{p=nc(c.getAuthenticatorData())}catch(e){mc(`getAuthenticatorData()`,e)}return{id:o,rawId:nc(s),response:{attestationObject:nc(c.attestationObject),clientDataJSON:nc(c.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:p},type:l,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:fc(a.authenticatorAttachment)}}function mc(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.\n`,t)}function hc(){if(!ic())return gc.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?gc.stubThis(new Promise(e=>e(!1))):gc.stubThis(e.isConditionalMediationAvailable())}var gc={stubThis:e=>e};function _c({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new cc({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new cc({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!sc(t))return new cc({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new cc({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new cc({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}async function vc(e){!e.optionsJSON&&e.challenge&&(console.warn(`startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=!1,verifyBrowserAutofillInput:r=!0}=e;if(!ic())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(oc));let a={...t,challenge:rc(t.challenge),allowCredentials:i},o={};if(n){if(!await hc())throw Error(`Browser does not support WebAuthn autofill`);if(document.querySelectorAll(`input[autocomplete$='webauthn']`).length<1&&r)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');o.mediation=`conditional`,a.allowCredentials=[]}o.publicKey=a,o.signal=uc.createNewAbortSignal();let s;try{s=await navigator.credentials.get(o)}catch(e){throw _c({error:e,options:o})}if(!s)throw Error(`Authentication was not completed`);let{id:c,rawId:l,response:u,type:d}=s,f;return u.userHandle&&(f=nc(u.userHandle)),{id:c,rawId:nc(l),response:{authenticatorData:nc(u.authenticatorData),clientDataJSON:nc(u.clientDataJSON),signature:nc(u.signature),userHandle:f},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:fc(s.authenticatorAttachment)}}var yc=`1.7.7`,bc=Symbol.for(`better-auth:broadcast-channel`),xc=()=>Math.floor(Date.now()/1e3),Sc=class{listeners=new Set;name;constructor(e=`better-auth.message`){this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(typeof window<`u`)try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:xc()}))}catch{}}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=e=>{if(e.key!==this.name)return;let t=JSON.parse(e.newValue??`{}`);t?.event===`session`&&t?.data&&this.listeners.forEach(e=>e(t))};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}}};function Cc(e=`better-auth.message`){return globalThis[bc]||(globalThis[bc]=new Sc(e)),globalThis[bc]}var wc=[],Tc=0,Ec=null,Dc=4,Oc=globalThis.nanostoresGlobal||={epoch:0},kc=()=>{let e,t;for(;Tc<wc.length;){t=Tc,Tc+=Dc;let n=Ec?.get(wc[t]);if(n){if(!n.has(wc[t+1]))continue;n.clear()}try{wc[t](wc[t+1].value,wc[t+2],wc[t+3])}catch(t){e=t}}if(wc.length=Tc=0,e)throw e},Ac=e=>{let t=[],n={eq:Object.is,get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(e){return n.lc=t.push(e),()=>{Ec?.get(e)?.delete(n);for(let t=Tc;t<wc.length;)wc[t]===e&&wc[t+1]===n?wc.splice(t,Dc):t+=Dc;let r=t.indexOf(e);~r&&(t.splice(r,1),--n.lc||n.off())}},notify(e,r){Oc.epoch++;let i=!wc.length&&!0;for(let i of t)wc.push(i,n,e,r);i&&kc()},off(){},set(e){let t=n.value;n.eq(t,e)||(n.value=e,n.notify(t))},subscribe(e){let t=n.listen(e);return e(n.value),t},value:e};return n},jc=2,Mc=5,Nc=6,Pc=10,Fc=(e,t,n,r)=>(e.events=e.events||{},e.events[n+Pc]||(e.events[n+Pc]=r(t=>{e.events[n].reduceRight((e,t)=>(t(e),e),{shared:{},...t})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let r=e.events[n],i=r.indexOf(t);~i&&(r.splice(i,1),r.length||(e.events[n+Pc](),delete e.events[n+Pc]))}),Ic=(e,t)=>Fc(e,t,jc,t=>{let n=e.set,r=e.setKey;return e.setKey&&=(n,i)=>{let a;if(t({abort:()=>{a=!0},changed:n,newValue:{...e.value,[n]:i}}),!a)return r(n,i)},e.set=e=>{let r;if(t({abort:()=>{r=!0},newValue:e}),!r)return n(e)},()=>{e.set=n,e.setKey=r}}),Lc=1e3,Rc=(e,t)=>Fc(e,n=>{let r=t(n);r&&e.events[Nc].push(r)},Mc,t=>{let n=e.listen;e.listen=(...r)=>(!e.lc&&!e.active&&(e.active=!0,t()),n(...r));let r=e.off;return e.events[Nc]=[],e.off=()=>{r(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let t of e.events[Nc])t();e.events[Nc]=[]}},Lc)},()=>{e.listen=n,e.off=r}});function zc(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Bc(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Bc(e[n],t[n]))return!1;return!0}if(zc(e)&&zc(t)){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!(r in t)||!Bc(e[r],t[r]))return!1;return!0}return!1}function Vc(e,t){return Ic(e,({newValue:n,abort:r})=>{t(e.value,n)&&r()})}var Hc=Symbol.for(`better-auth:focus-manager`),Uc=class{listeners=new Set;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||typeof document>`u`||window.addEventListener===void 0)return()=>{};let e=()=>{document.visibilityState===`visible`&&this.setFocused(!0)};return document.addEventListener(`visibilitychange`,e,!1),()=>{document.removeEventListener(`visibilitychange`,e,!1)}}};function Wc(){return globalThis[Hc]||(globalThis[Hc]=new Uc),globalThis[Hc]}var Gc=Symbol.for(`better-auth:online-manager`),Kc=class{listeners=new Set;isOnline=typeof navigator<`u`?navigator.onLine:!0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener(`online`,e,!1),window.addEventListener(`offline`,t,!1),()=>{window.removeEventListener(`online`,e,!1),window.removeEventListener(`offline`,t,!1)}}};function qc(){return globalThis[Gc]||(globalThis[Gc]=new Kc),globalThis[Gc]}var Jc={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},Yc=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,Xc={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:1/0,"-infinity":-1/0},Zc=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function Qc(e){return e instanceof Date&&!isNaN(e.getTime())}function $c(e){let t=Zc.exec(e);if(!t)return null;let[,n,r,i,a,o,s,c,l,u,d]=t,f=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(i,10),parseInt(a,10),parseInt(o,10),parseInt(s,10),c?parseInt(c.padEnd(3,`0`),10):0));if(l){let e=(parseInt(u,10)*60+parseInt(d,10))*(l===`+`?-1:1);f.setUTCMinutes(f.getUTCMinutes()+e)}return Qc(f)?f:null}function el(e,t={}){let{strict:n=!1,warnings:r=!1,reviver:i,parseDates:a=!0}=t;if(typeof e!=`string`)return e;let o=e.trim(),s=o.toLowerCase();if(s.length<=9&&s in Xc)return Xc[s];if(!Yc.test(o)){if(n)throw SyntaxError(`[better-json] Invalid JSON`);return e}if(Object.entries(Jc).some(([e,t])=>{let n=t.test(o);return n&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${e} pattern`),n})&&n)throw Error(`[better-json] Potential prototype pollution attempt detected`);try{return JSON.parse(o,(e,t)=>{if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){r&&console.warn(`[better-json] Dropping "${e}" key to prevent prototype pollution`);return}if(a&&typeof t==`string`){let e=$c(t);if(e)return e}return i?i(e,t):t})}catch(t){if(n)throw t;return e}}function tl(e,t={strict:!0}){return el(e,t)}var nl=Symbol.for(`better-auth:auth-query`);function rl(e){let t=Ac(e);return Object.defineProperty(t,nl,{value:!0}),t}var il=()=>typeof window>`u`;function al(e,t){return Bc(e.data,t.data)&&e.error===t.error&&e.isPending===t.isPending&&e.isRefetching===t.isRefetching&&e.refetch===t.refetch}var ol=(e,t,n,r)=>{let i=rl({data:null,error:null,isPending:!0,isRefetching:!1,refetch:e=>o(e)});Rc(i,()=>Vc(i,al));let a=0,o=async e=>{let o=++a;return new Promise(s=>{let c=typeof r==`function`?r({data:i.get().data,error:i.get().error,isPending:i.get().isPending}):r;n(t,{...c,query:{...c?.query,...e?.query},async onSuccess(e){if(o===a){let t=i.get(),n=t.data!=null&&e.data!=null&&Bc(t.data,e.data)?t.data:e.data;i.set({data:n,error:null,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}await c?.onSuccess?.(e)},async onError(e){let{request:t}=e,n=typeof t.retry==`number`?t.retry:t.retry?.attempts,r=t.retryAttempt||0;if(!(n&&r<n)){if(o===a){let t=e.error.status===401;i.set({error:e.error,data:t?null:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}await c?.onError?.(e)}},async onRequest(e){if(o===a){let e=i.get();i.set({isPending:e.data===null,data:e.data,error:null,isRefetching:!0,refetch:i.value.refetch})}await c?.onRequest?.(e)}}).catch(e=>{o===a&&i.set({error:e,data:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}).finally(()=>{s(void 0)})})};e=Array.isArray(e)?e:[e];let s=!1,c=!1,l=!1,u=()=>{if(s){l=!0;return}s=!0,o().finally(()=>{s=!1;let e=l&&c;l=!1,e&&u()})};return Rc(i,()=>{if(il())return;c=!0;let t=!1,n,r=e.map(e=>e.listen(()=>{t?o():(t=!0,clearTimeout(n),u())}));return n=setTimeout(()=>{t=!0,u()},0),()=>{c=!1;for(let e of r)e();clearTimeout(n)}}),i},sl=()=>Math.floor(Date.now()/1e3),cl=5;function ll(e){let{fetchSession:t,shouldPollSession:n=()=>!0,sessionSignal:r,options:i={}}=e,a=i.sessionOptions?.refetchInterval??0,o=i.sessionOptions?.refetchOnWindowFocus??!0,s=i.sessionOptions?.refetchWhenOffline??!1,c={isInitialized:!1,lastSessionRequest:0},l=()=>s||qc().isOnline,u=e=>{if(l()){if(e?.event===`storage`){t();return}if(e?.event===`poll`){c.lastSessionRequest=sl(),t();return}if(e?.event===`visibilitychange`){if(sl()-c.lastSessionRequest<cl)return;c.lastSessionRequest=sl(),t();return}t()}},d=e=>{Cc().post({event:`session`,data:{trigger:e},clientId:Math.random().toString(36).substring(7)})},f=()=>{a&&a>0&&(c.pollInterval=setInterval(()=>{n()&&u({event:`poll`})},a*1e3))},p=()=>{c.unsubscribeBroadcast=Cc().subscribe(()=>{u({event:`storage`})})},m=()=>{o&&(c.unsubscribeFocus=Wc().subscribe(()=>{u({event:`visibilitychange`})}))},h=()=>{c.unsubscribeOnline=qc().subscribe(e=>{e&&u({event:`visibilitychange`})})},g=()=>{c.unsubscribeSignal=r.listen(()=>{t()})};return{init:()=>{c.isInitialized||(c.isInitialized=!0,f(),p(),m(),h(),g(),c.cleanupBroadcastSetup=Cc().setup(),c.cleanupFocusSetup=Wc().setup(),c.cleanupOnlineSetup=qc().setup())},cleanup:()=>{c.isInitialized&&(c.pollInterval&&=(clearInterval(c.pollInterval),void 0),c.unsubscribeBroadcast&&=(c.unsubscribeBroadcast(),void 0),c.unsubscribeFocus&&=(c.unsubscribeFocus(),void 0),c.unsubscribeOnline&&=(c.unsubscribeOnline(),void 0),c.unsubscribeSignal&&=(c.unsubscribeSignal(),void 0),c.cleanupBroadcastSetup&&=(c.cleanupBroadcastSetup(),void 0),c.cleanupFocusSetup&&=(c.cleanupFocusSetup(),void 0),c.cleanupOnlineSetup&&=(c.cleanupOnlineSetup(),void 0),c.isInitialized=!1,c.lastSessionRequest=0)},triggerRefetch:u,broadcastSessionUpdate:d}}var ul=Object.create(null),dl=e=>({}),fl=new Proxy(ul,{get(e,t){return dl()[t]??ul[t]},has(e,t){return t in dl()||t in ul},set(e,t,n){let r=dl(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=dl(!0);return delete n[t],!0},ownKeys(){let e=dl(!0);return Object.keys(e)}});fl.NODE_ENV;function pl(e,t){return typeof process<`u`?{}[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}Object.freeze({get BETTER_AUTH_SECRET(){return pl(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return pl(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return pl(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return pl(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return pl(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return pl(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return pl(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}});function ml(){let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.prototype.hasOwnProperty.call(e,`writable`)?e.writable:e.set!==void 0}function hl(e){let t=e.split(`
|
|
@@ -59,7 +59,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
59
59
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function f0(e,t){if(e){if(typeof e==`string`)return p0(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p0(e,t):void 0}}function p0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function m0(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function h0(e){if(Array.isArray(e))return e}function g0(e,t){if(e==null)return{};var n,r,i=_0(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _0(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function v0(){return v0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v0.apply(null,arguments)}function y0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function b0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?y0(Object(n),!0).forEach(function(t){x0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function x0(e,t,n){return(t=S0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S0(e){var t=C0(e,`string`);return typeof t==`symbol`?t:t+``}function C0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var w0={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:`bottom`,ticks:[],stroke:`#666`,tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:`preserveEnd`,zIndex:hR.axis};function T0(e){var t=e.x,n=e.y,r=e.width,i=e.height,a=e.orientation,o=e.mirror,s=e.axisLine,c=e.otherSvgProps;if(!s)return null;var u=b0(b0(b0({},c),eE(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var d=+(a===`top`&&!o||a===`bottom`&&o);u=b0(b0({},u),{},{x1:t,y1:n+d*i,x2:t+r,y2:n+d*i})}else{var f=+(a===`left`&&!o||a===`right`&&o);u=b0(b0({},u),{},{x1:t+f*r,y1:n,x2:t+f*r,y2:n+i})}return l.createElement(`line`,v0({},u,{className:JT(`recharts-cartesian-axis-line`,xE(s,`className`))}))}function E0(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=K(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function D0(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function O0(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function k0(e){var t=e.option,n=e.tickProps,r=e.value,i,a=JT(n.className,`recharts-cartesian-axis-tick-value`);if(l.isValidElement(t))i=l.cloneElement(t,b0(b0({},n),{},{className:a}));else if(typeof t==`function`)i=t(b0(b0({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=JT(o,EQ(t))),i=l.createElement(LZ,v0({},n,{className:o}),r)}return i}function A0(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=rk(),a=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(r!=null&&n!=null){var e=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),o=a.current;o!=null&&o.axisId===r&&o.axisType===n&&B1(o.ticks,e)||(a.current={ticks:e,axisId:r,axisType:n},i(o0({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,l.useEffect)(()=>r==null||n==null?zE:()=>{i(s0({axisId:r,axisType:n}))},[i,r,n]),null}var j0=(0,l.forwardRef)((e,t)=>{var n=e.ticks,r=n===void 0?[]:n,i=e.tick,a=e.tickLine,o=e.stroke,s=e.tickFormatter,c=e.unit,u=e.padding,d=e.tickTextProps,f=e.orientation,p=e.mirror,m=e.x,h=e.y,g=e.width,_=e.height,v=e.tickSize,y=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,C=e.events,w=e.axisType,T=e.axisId,E=t0(b0(b0({},S),{},{ticks:r}),b,x),D=eE(S),O=tE(i),k=EZ(D.textAnchor)?D.textAnchor:D0(f,p),A=O0(f,p),j={};typeof a==`object`&&(j=a);var M=b0(b0({},D),{},{fill:`none`},j),N=E.map(e=>b0({entry:e},E0(e,m,h,g,_,f,v,p,y))),ee=N.map(e=>{var t=e.entry,n=e.line;return l.createElement(fE,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},a&&l.createElement(`line`,v0({},M,n,{className:JT(`recharts-cartesian-axis-tick-line`,xE(a,`className`))})))}),te=N.map((e,t)=>{var n=e.entry,r=e.tick,a=b0(b0({},b0(b0(b0(b0({verticalAnchor:A},D),{},{textAnchor:k,stroke:`none`,fill:o},r),{},{index:t,payload:n,visibleTicksCount:E.length,tickFormatter:s,padding:u},d),{},{angle:d?.angle??D.angle??0})),O);return l.createElement(fE,v0({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},QD(C,n,t)),i&&l.createElement(k0,{option:i,tickProps:a,value:`${typeof s==`function`?s(n.value,t):n.value}${c||``}`}))});return l.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${w}-ticks`},l.createElement(A0,{ticks:E,axisId:T,axisType:w}),te.length>0&&l.createElement(wY,{zIndex:hR.label},l.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${w}-tick-labels`,ref:t},te)),ee.length>0&&l.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${w}-tick-lines`},ee))}),M0=(0,l.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,i=e.height,a=e.className,o=e.hide,s=e.ticks,c=e.axisType,u=e.axisId,d=g0(e,l0),f=u0((0,l.useState)(``),2),p=f[0],m=f[1],h=u0((0,l.useState)(``),2),g=h[0],_=h[1],v=(0,l.useRef)(null);(0,l.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>n0({ticks:v.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>r0({ticks:v.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var y=(0,l.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);v.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==p||a!==g)&&(m(i),_(a))}}},[p,g]);return o||r!=null&&r<=0||i!=null&&i<=0?null:l.createElement(wY,{zIndex:e.zIndex},l.createElement(fE,{className:JT(`recharts-cartesian-axis`,a)},l.createElement(T0,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:eE(e)}),l.createElement(j0,{ref:y,axisType:c,events:d,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:u}),l.createElement(YZ,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},l.createElement(lQ,{label:e.label,labelRef:e.labelRef}),e.children)))}),N0=l.forwardRef((e,t)=>{var n=iO(e,w0);return l.createElement(M0,v0({},n,{ref:t}))});N0.displayName=`CartesianAxis`;var P0=(0,l.createContext)({grid:{stroke:`#ccc`,fill:`none`}});P0.Provider;var F0=()=>(0,l.useContext)(P0),I0=[`x1`,`y1`,`x2`,`y2`,`key`],L0=[`offset`],R0=[`xAxisId`,`yAxisId`],z0=[`xAxisId`,`yAxisId`];function B0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function V0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?B0(Object(n),!0).forEach(function(t){H0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function H0(e,t,n){return(t=U0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function U0(e){var t=W0(e,`string`);return typeof t==`symbol`?t:t+``}function W0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function G0(){return G0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G0.apply(null,arguments)}function K0(e,t){if(e==null)return{};var n,r,i=q0(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function q0(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var J0=e=>{var t=e.fill;if(!t||t===`none`)return null;var n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.ry;return l.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function Y0(e){var t=e.option,n=e.lineItemProps,r;if(l.isValidElement(t))r=l.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var i=n.x1,a=n.y1,o=n.x2,s=n.y2,c=n.key,u=eE(K0(n,I0))??{};u.offset;var d=K0(u,L0),f=Array.isArray(d.strokeDasharray)?d.strokeDasharray.join(`,`):d.strokeDasharray;r=l.createElement(`line`,G0({},d,{strokeDasharray:f,x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function X0(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0||r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=K0(e,R0),s=a.map((e,r)=>{var a=V0(V0({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return l.createElement(Y0,{key:`line-${r}`,option:i,lineItemProps:a})});return l.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function Z0(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0||r,a=e.verticalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=K0(e,z0),s=a.map((e,r)=>{var a=V0(V0({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return l.createElement(Y0,{option:i,lineItemProps:a,key:`line-${r}`})});return l.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function Q0(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,c=e.horizontal;if(!(c===void 0||c)||!t||!t.length||s==null)return null;var u=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==u[0]&&u.unshift(0);var d=u.map((e,s)=>{var c=u[s+1],d=c==null?i+o-e:c-e;if(d<=0)return null;var f=s%t.length;return l.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:d,width:a,stroke:`none`,fill:t[f],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return l.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},d)}function $0(e){var t=e.vertical,n=t===void 0||t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,c=e.height,u=e.verticalPoints;if(!n||!r||!r.length)return null;var d=u.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==d[0]&&d.unshift(0);var f=d.map((e,t)=>{var n=d[t+1],u=n==null?a+s-e:n-e;if(u<=0)return null;var f=t%r.length;return l.createElement(`rect`,{key:`react-${t}`,x:e,y:o,width:u,height:c,stroke:`none`,fill:r[f],fillOpacity:i,className:`recharts-cartesian-grid-bg`})});return l.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},f)}var e2=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return hM(t0(V0(V0(V0({},w0),n),{},{ticks:gM(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},t2=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return hM(t0(V0(V0(V0({},w0),n),{},{ticks:gM(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},n2={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:hR.grid};function r2(e){var t=zN(),n=BN(),r=RN(),i=V0(V0({},iO(e,n2)),{},{x:K(e.x)?e.x:r.left,y:K(e.y)?e.y:r.top,width:K(e.width)?e.width:r.width,height:K(e.height)?e.height:r.height}),a=i.xAxisId,o=i.yAxisId,s=i.x,c=i.y,u=i.width,d=i.height,f=i.syncWithTicks,p=i.horizontalValues,m=i.verticalValues,h=eN(),g=q(e=>YK(e,`xAxis`,a,h)),_=q(e=>YK(e,`yAxis`,o,h)),v=F0(),y={stroke:i.stroke??v.grid.stroke,strokeWidth:i.strokeWidth??v.grid.strokeWidth,strokeOpacity:i.strokeOpacity??v.grid.strokeOpacity,strokeDasharray:i.strokeDasharray??v.grid.strokeDasharray};if(!oM(u)||!oM(d)||!K(s)||!K(c))return null;var b=i.verticalCoordinatesGenerator||e2,x=i.horizontalCoordinatesGenerator||t2,S=i.horizontalPoints,C=i.verticalPoints;if((!S||!S.length)&&typeof x==`function`){var w=p&&p.length,T=x({yAxis:_?V0(V0({},_),{},{ticks:w?p:_.ticks}):void 0,width:t??u,height:n??d,offset:r},w?!0:f);oN(Array.isArray(T),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(S=T)}if((!C||!C.length)&&typeof b==`function`){var E=m&&m.length,D=b({xAxis:g?V0(V0({},g),{},{ticks:E?m:g.ticks}):void 0,width:t??u,height:n??d,offset:r},E?!0:f);oN(Array.isArray(D),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof D}]`),Array.isArray(D)&&(C=D)}return l.createElement(wY,{zIndex:i.zIndex},l.createElement(`g`,{className:`recharts-cartesian-grid`},l.createElement(J0,{fill:i.fill??v.grid.fill,fillOpacity:i.fillOpacity??v.grid.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),l.createElement(Q0,G0({},i,{horizontalPoints:S})),l.createElement($0,G0({},i,{verticalPoints:C})),l.createElement(X0,G0({},i,y,{offset:r,horizontalPoints:S,xAxis:g,yAxis:_})),l.createElement(Z0,G0({},i,y,{offset:r,verticalPoints:C,xAxis:g,yAxis:_}))))}r2.displayName=`CartesianGrid`;var i2=uj({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),a2=i2.actions;a2.addErrorBar,a2.replaceErrorBar,a2.removeErrorBar;var o2=i2.reducer,s2=[`children`];function c2(e,t){if(e==null)return{};var n,r,i=l2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function l2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var u2=(0,l.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function d2(e){var t=e.children,n=c2(e,s2);return l.createElement(u2.Provider,{value:n},t)}function f2(e,t){var n=q(t=>XW(t,e)),r=q(e=>$W(e,t)),i=n?.allowDataOverflow??JW.allowDataOverflow,a=r?.allowDataOverflow??ZW.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function p2(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=$$(),a=f2(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,u=q(e=>CK(e,t,!1)),d=q(e=>wK(e,n,!1));if(!c||!i)return null;var f=i.x,p=i.y,m=i.width,h=i.height,g=o&&u?Math.min(u[0],u[1]):f-m/2,_=s&&d?Math.min(d[0],d[1]):p-h/2,v=o&&u?Math.abs(u[1]-u[0]):m*2,y=s&&d?Math.abs(d[1]-d[0]):h*2;return l.createElement(`clipPath`,{id:`clipPath-${r}`},l.createElement(`rect`,{x:g,y:_,width:v,height:y}))}function m2(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function h2(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var g2=`Invariant failed`;function _2(e,t){if(!e)throw Error(g2)}var v2=[`option`];function y2(e,t){if(e==null)return{};var n,r,i=b2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function b2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var x2=qI;function S2(e){var t=e.option,n=y2(e,v2);return l.createElement(WQ,{option:t,DefaultShape:x2,shapeProps:n,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`})}var C2=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(K(e))return e;var i=K(n)||IE(n);return i?e(n,r):(!i&&_2(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},w2=(e,t,n)=>n,T2=J([sG,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),E2=J([T2],e=>e?.maxBarSize),D2=(e,t,n,r)=>r,O2=J([VN,sG,m2,h2,w2],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),k2=(e,t,n)=>{var r=VN(e),i=m2(e,t),a=h2(e,t);if(i!=null&&a!=null)return r===`horizontal`?NG(e,`yAxis`,a,n):NG(e,`xAxis`,i,n)},A2=J([O2,cR,(e,t)=>{var n=VN(e),r=m2(e,t),i=h2(e,t);if(r!=null&&i!=null)return n===`horizontal`?KK(e,`xAxis`,r):KK(e,`yAxis`,i)}],s1),j2=(e,t,n)=>{var r=T2(e,t);if(r==null)return 0;var i=m2(e,t),a=h2(e,t);if(i==null||a==null)return 0;var o=VN(e),s=aR(e),c=r.maxBarSize,l=IE(c)?s:c,u,d;return o===`horizontal`?(u=QK(e,`xAxis`,i,n),d=ZK(e,`xAxis`,i,n)):(u=QK(e,`yAxis`,a,n),d=ZK(e,`yAxis`,a,n)),OM(u,d,!0)??l??0},M2=(e,t,n)=>{var r=VN(e),i=m2(e,t),a=h2(e,t);if(i!=null&&a!=null){var o,s;return r===`horizontal`?(o=QK(e,`xAxis`,i,n),s=ZK(e,`xAxis`,i,n)):(o=QK(e,`yAxis`,a,n),s=ZK(e,`yAxis`,a,n)),OM(o,s)}},N2=J([XM,QM,(e,t,n)=>{var r=m2(e,t);if(r!=null)return QK(e,`xAxis`,r,n)},(e,t,n)=>{var r=h2(e,t);if(r!=null)return QK(e,`yAxis`,r,n)},(e,t,n)=>{var r=m2(e,t);if(r!=null)return ZK(e,`xAxis`,r,n)},(e,t,n)=>{var r=h2(e,t);if(r!=null)return ZK(e,`yAxis`,r,n)},J([J([A2,aR,oR,sR,j2,M2,E2],m1),T2],g1),VN,jL,M2,J([k2,T2],h1),T2,D2],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var p=c.chartData,m=c.dataStartIndex,h=c.dataEndIndex;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var g=d.data,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return S4({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),P2=[`index`];function F2(){return F2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},F2.apply(null,arguments)}function I2(e,t){if(e==null)return{};var n,r,i=L2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function L2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var R2=(0,l.createContext)(void 0),z2=e=>{var t=(0,l.useContext)(R2);if(t!=null)return t.stackId;if(e!=null)return bM(e)},B2=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,V2=e=>{var t=(0,l.useContext)(R2);if(t!=null){var n=t.stackId;return`url(#${B2(n,e)})`}},H2=e=>{var t=e.index,n=I2(e,P2),r=V2(t);return l.createElement(fE,F2({className:`recharts-bar-stack-layer`,clipPath:r},n))},U2=[`onMouseEnter`,`onMouseLeave`,`onClick`],W2=[`value`,`background`,`tooltipPosition`],G2=[`id`],K2=[`onMouseEnter`,`onClick`,`onMouseLeave`];function q2(e,t){return Q2(e)||Z2(e,t)||Y2(e,t)||J2()}function J2(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
60
60
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Y2(e,t){if(e){if(typeof e==`string`)return X2(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X2(e,t):void 0}}function X2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Z2(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Q2(e){if(Array.isArray(e))return e}function $2(){return $2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$2.apply(null,arguments)}function e4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function t4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?e4(Object(n),!0).forEach(function(t){n4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):e4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function n4(e,t,n){return(t=r4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r4(e){var t=i4(e,`string`);return typeof t==`symbol`?t:t+``}function i4(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function a4(e,t){if(e==null)return{};var n,r,i=o4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function o4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var s4=e=>{var t=e.dataKey,n=e.name,r=e.fill,i=e.legendType;return[{inactive:e.hide,dataKey:t,type:i,color:r,value:AM(n,t),payload:e}]},c4=l.memo(e=>{var t=e.dataKey,n=e.stroke,r=e.strokeWidth,i=e.fill,a=e.name,o=e.hide,s=e.unit,c=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:void 0,getPosition:zE,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:AM(a,t),hide:o,type:u,color:i,unit:s,formatter:c,graphicalItemId:d}};return l.createElement(JQ,{tooltipEntrySettings:f})});function l4(e){var t=q(xJ),n=e.data,r=e.dataKey,i=e.background,a=e.allOtherBarProps,o=a.onMouseEnter,s=a.onMouseLeave,c=a.onClick,u=a4(a,U2),d=GQ(o,r,a.id),f=KQ(s),p=qQ(c,r,a.id);if(!i||n==null)return null;var m=tE(i);return l.createElement(wY,{zIndex:_1(i,hR.barBackground)},n.map((e,n)=>{e.value;var a=e.background;e.tooltipPosition;var o=a4(e,W2);if(!a)return null;var s=d(e,e.originalDataIndex),c=f(e,e.originalDataIndex),h=p(e,e.originalDataIndex),g=t4(t4(t4(t4(t4({option:i,isActive:String(e.originalDataIndex)===t},o),{},{fill:`#eee`},a),m),QD(u,e,n)),{},{onMouseEnter:s,onMouseLeave:c,onClick:h,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return l.createElement(S2,$2({key:`background-bar-${n}`},g))}))}function u4(e){var t=e.showLabels,n=e.children,r=e.rects?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return t4(t4({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return l.createElement(_Q,{value:t?r:void 0},n)}function d4(e){var t=e.shape,n=e.activeBar,r=e.baseProps,i=e.entry,a=e.index,o=e.dataKey,s=q(xJ),c=q(CJ),u=n&&String(i.originalDataIndex)===s&&(c==null||o===c),d=s!=null&&(String(i.originalDataIndex)!==s||c!=null&&o!==c),f=q2((0,l.useState)(!1),2),p=f[0],m=f[1],h=q2((0,l.useState)(!1),2),g=h[0],_=h[1];(0,l.useEffect)(()=>{var e;return u?(m(!0),e=requestAnimationFrame(()=>{_(!0)})):(_(!1),d&&m(!1)),()=>{cancelAnimationFrame(e)}},[u,d]);var v=(0,l.useCallback)(()=>{u||m(!1)},[u]),y=u&&g,b=u||p,x=u?n===!0?t:n:t,S=l.createElement(S2,$2({},r,{name:String(r.name)},i,{isActive:y,option:x,index:a,dataKey:o,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:v}));return b?l.createElement(wY,{zIndex:hR.activeBar},l.createElement(H2,{index:i.originalDataIndex},S)):S}function f4(e){var t=e.shape,n=e.baseProps,r=e.entry,i=e.index,a=e.dataKey;return l.createElement(S2,$2({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function p4(e){var t=e.data,n=e.props,r=e.animationElapsedTime,i=e.isAnimating,a=e.isEntrance,o=eE(n)??{},s=o.id,c=a4(o,G2),u=n.shape,d=n.dataKey,f=n.activeBar,p=n.onMouseEnter,m=n.onClick,h=n.onMouseLeave,g=a4(n,K2),_=GQ(p,d,s),v=KQ(h),y=qQ(m,d,s);return t?l.createElement(l.Fragment,null,t.map((e,t)=>l.createElement(H2,$2({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},QD(g,e,t),{onMouseEnter:_(e,e.originalDataIndex),onMouseLeave:v(e,e.originalDataIndex),onClick:y(e,e.originalDataIndex)}),f?l.createElement(d4,{shape:u,activeBar:f,baseProps:c,entry:e,index:t,dataKey:d,animationElapsedTime:r,isAnimating:i,isEntrance:a}):l.createElement(f4,{shape:u,baseProps:c,entry:e,index:t,dataKey:d,animationElapsedTime:r,isAnimating:i,isEntrance:a})))):null}var m4=(e,t,n)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>{if(e.status===`removed`)return n===`horizontal`?[t4(t4({},e.prev),{},{height:PE(e.prev.height,0,t),y:PE(e.prev.y,e.prev.y+e.prev.height,t)})]:[t4(t4({},e.prev),{},{width:PE(e.prev.width,0,t)})];if(e.status===`matched`)return[t4(t4({},e.next),{},{x:PE(e.prev.x,e.next.x,t),y:PE(e.prev.y,e.next.y,t),width:PE(e.prev.width,e.next.width,t),height:PE(e.prev.height,e.next.height,t)})];var r=e.next;return n===`horizontal`?[t4(t4({},r),{},{height:PE(0,r.height,t),y:PE(r.stackedBarStart,r.y,t)})]:[t4(t4({},r),{},{width:PE(0,r.width,t),x:PE(r.stackedBarStart,r.x,t)})]});function h4(e){var t=e.props,n=e.previousRectanglesRef,r=t.data,i=t.isAnimationActive,a=t.animationBegin,o=t.animationDuration,s=t.animationEasing,c=t.animationInterpolateFn,u=t.layout,d=_$(t.onAnimationStart,t.onAnimationEnd),f=d.isAnimating,p=d.handleAnimationStart,m=d.handleAnimationEnd;return l.createElement(u4,{showLabels:!f,rects:r},l.createElement(v$,{animationInput:r,animationIdPrefix:`recharts-bar-`,items:r,previousItemsRef:n,isAnimationActive:i,animationBegin:a,animationDuration:o,animationEasing:s,onAnimationStart:p,onAnimationEnd:m,animationInterpolateFn:c,animationMatchBy:t.animationMatchBy,layout:u},(e,n,r)=>l.createElement(fE,null,l.createElement(p4,{props:t,data:e,animationElapsedTime:n,isAnimating:f||n<1,isEntrance:r}))),l.createElement(SQ,{label:t.label}),t.children)}function g4(e){var t=(0,l.useRef)(null);return l.createElement(h4,{previousRectanglesRef:t,props:e})}var _4=0,v4=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:fM(e,t)}},y4=class extends l.PureComponent{render(){var e=this.props,t=e.hide,n=e.data,r=e.dataKey,i=e.className,a=e.xAxisId,o=e.yAxisId,s=e.needClip,c=e.background,u=e.id;if(t||n==null)return null;var d=JT(`recharts-bar`,i),f=u;return l.createElement(fE,{className:d,id:u},s&&l.createElement(`defs`,null,l.createElement(p2,{clipPathId:f,xAxisId:a,yAxisId:o})),l.createElement(fE,{className:`recharts-bar-rectangles`,clipPath:s?`url(#clipPath-${f})`:void 0},l.createElement(l4,{data:n,dataKey:r,background:c,allOtherBarProps:this.props}),l.createElement(g4,this.props)))}},b4={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,animationInterpolateFn:m4,animationMatchBy:r$,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:_4,shape:x2,xAxisId:0,yAxisId:0,zIndex:hR.bar};function x4(e){var t=e.xAxisId,n=e.yAxisId,r=e.hide,i=e.legendType,a=e.minPointSize,o=e.activeBar,s=e.animationBegin,c=e.animationDuration,u=e.animationEasing,d=e.isAnimationActive,f=f2(t,n).needClip,p=HN(),m=eN(),h=NQ(e.children,wX),g=q(t=>N2(t,e.id,m,h));if(p!==`vertical`&&p!==`horizontal`)return null;var _,v=g?.[0];return _=v==null||v.height==null||v.width==null?0:p===`vertical`?v.height/2:v.width/2,l.createElement(d2,{xAxisId:t,yAxisId:n,data:g,dataPointFormatter:v4,errorBarOffset:_},l.createElement(y4,$2({},e,{layout:p,needClip:f,data:g,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:u,isAnimationActive:d})))}function S4(e){var t=e.layout,n=e.barSettings,r=n.dataKey,i=n.minPointSize,a=n.hasCustomShape,o=e.pos,s=e.bandSize,c=e.xAxis,l=e.yAxis,u=e.xAxisTicks,d=e.yAxisTicks,f=e.stackedData,p=e.displayedData,m=e.offset,h=e.cells,g=e.parentViewBox,_=e.dataStartIndex,v=t===`horizontal`?l:c,y=f?v.scale.domain():null,b=SM({numericAxis:v}),x=v.scale.map(b);return p.map((e,n)=>{var p,v,S,C,w,T;if(f){var E=f[n+_];if(E==null)return null;p=_M(E,y)}else p=fM(e,r),Array.isArray(p)||(p=[b,p]);var D=C2(i,_4)(p[1],n);if(t===`horizontal`){var O=l.scale.map(p[0]),k=l.scale.map(p[1]);if(O==null||k==null)return null;v=xM({axis:c,ticks:u,bandSize:s,offset:o.offset,entry:e,index:n}),S=k??O??void 0,C=o.size;var A=O-k;if(w=DE(A)?0:A,T={x:v,y:m.top,width:C,height:m.height},Math.abs(D)>0&&Math.abs(w)<Math.abs(D)){var j=EE(w||D)*(Math.abs(D)-Math.abs(w));S-=j,w+=j}}else{var M=c.scale.map(p[0]),N=c.scale.map(p[1]);if(M==null||N==null)return null;if(v=M,S=xM({axis:l,ticks:d,bandSize:s,offset:o.offset,entry:e,index:n}),C=N-M,w=o.size,T={x:m.left,y:S,width:m.width,height:w},Math.abs(D)>0&&Math.abs(C)<Math.abs(D)){var ee=EE(C||D)*(Math.abs(D)-Math.abs(C));C+=ee}}return v==null||S==null||C==null||w==null||!a&&(C===0||w===0)?null:t4(t4({},e),{},{stackedBarStart:x,x:v,y:S,width:C,height:w,value:f?p:p[1],payload:e,background:T,tooltipPosition:{x:v+C/2,y:S+w/2},parentViewBox:g,originalDataIndex:n},h&&h[n]&&h[n].props)}).filter(Boolean)}function C4(e){var t=iO(e,b4),n=z2(t.stackId),r=eN();return l.createElement(O$,{id:t.id,type:`bar`},e=>l.createElement(l.Fragment,null,l.createElement(YQ,{legendPayload:s4(t)}),l.createElement(c4,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),l.createElement(F$,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null&&t.shape!==x2}),l.createElement(wY,{zIndex:t.zIndex},l.createElement(x4,$2({},t,{id:e})))))}var w4=l.memo(C4,_P);w4.displayName=`Bar`;var T4=[`domain`,`range`],E4=[`domain`,`range`];function D4(e,t){if(e==null)return{};var n,r,i=O4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function O4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function k4(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function A4(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=D4(e,T4),a=t.domain,o=t.range,s=D4(t,E4);return!k4(n,a)||!k4(r,o)?!1:_P(i,s)}var j4=[`type`],M4=[`dangerouslySetInnerHTML`,`ticks`,`scale`],N4=[`id`,`scale`];function P4(){return P4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P4.apply(null,arguments)}function F4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function I4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?F4(Object(n),!0).forEach(function(t){L4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function L4(e,t,n){return(t=R4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R4(e){var t=z4(e,`string`);return typeof t==`symbol`?t:t+``}function z4(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function B4(e,t){if(e==null)return{};var n,r,i=V4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function V4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function H4(e){var t=rk(),n=(0,l.useRef)(null),r=UN(),i=e.type,a=B4(e,j4),o=yR(r,`xAxis`,i),s=(0,l.useMemo)(()=>{if(o!=null)return I4(I4({},a),{},{type:o})},[a,o]);return(0,l.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(U$(s)):n.current!==s&&t(W$({prev:n.current,next:s})),n.current=s)},[s,t]),(0,l.useLayoutEffect)(()=>()=>{n.current&&=(t(G$(n.current)),null)},[t]),null}var U4=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,a=(0,l.useRef)(null),o=(0,l.useRef)(null),s=q(QM),c=eN(),u=rk(),d=`xAxis`,f=q(e=>XK(e,d,t,c)),p=q(e=>RK(e,t)),m=q(e=>UK(e,t)),h=q(e=>YW(e,t));if((0,l.useLayoutEffect)(()=>{if(!(r!==`auto`||!p||eQ(i)||(0,l.isValidElement)(i)||h==null)){var e=a.current;if(e){var n=e.getCalculatedHeight();Math.round(p.height)!==Math.round(n)&&u(X$({id:t,height:n}))}}},[f,p,u,i,t,r,h]),p==null||m==null||h==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var g=B4(e,M4);h.id,h.scale;var _=B4(h,N4);return l.createElement(N0,P4({},g,_,{ref:a,labelRef:o,x:m.x,y:m.y,width:p.width,height:p.height,className:JT(`recharts-${d} ${d}`,n),viewBox:s,ticks:f,axisType:d,axisId:t}))},W4={allowDataOverflow:JW.allowDataOverflow,allowDecimals:JW.allowDecimals,allowDuplicatedCategory:JW.allowDuplicatedCategory,angle:JW.angle,axisLine:w0.axisLine,height:JW.height,hide:!1,includeHidden:JW.includeHidden,interval:JW.interval,label:!1,minTickGap:JW.minTickGap,mirror:JW.mirror,orientation:JW.orientation,padding:JW.padding,reversed:JW.reversed,scale:JW.scale,tick:JW.tick,tickCount:JW.tickCount,tickLine:w0.tickLine,tickSize:w0.tickSize,type:JW.type,niceTicks:JW.niceTicks,xAxisId:0},G4=l.memo(e=>{var t=iO(e,W4);return l.createElement(l.Fragment,null,l.createElement(H4,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),l.createElement(U4,t))},A4);G4.displayName=`XAxis`;var K4=[`type`],q4=[`dangerouslySetInnerHTML`,`ticks`,`scale`],J4=[`id`,`scale`];function Y4(){return Y4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y4.apply(null,arguments)}function X4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?X4(Object(n),!0).forEach(function(t){Q4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Q4(e,t,n){return(t=$4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $4(e){var t=e3(e,`string`);return typeof t==`symbol`?t:t+``}function e3(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function t3(e,t){if(e==null)return{};var n,r,i=n3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function n3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function r3(e){var t=rk(),n=(0,l.useRef)(null),r=UN(),i=e.type,a=t3(e,K4),o=yR(r,`yAxis`,i),s=(0,l.useMemo)(()=>{if(o!=null)return Z4(Z4({},a),{},{type:o})},[o,a]);return(0,l.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(K$(s)):n.current!==s&&t(q$({prev:n.current,next:s})),n.current=s)},[s,t]),(0,l.useLayoutEffect)(()=>()=>{n.current&&=(t(J$(n.current)),null)},[t]),null}function i3(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,a=(0,l.useRef)(null),o=(0,l.useRef)(null),s=q(QM),c=eN(),u=rk(),d=`yAxis`,f=q(e=>GK(e,t)),p=q(e=>WK(e,t)),m=q(e=>XK(e,d,t,c)),h=q(e=>QW(e,t));if((0,l.useLayoutEffect)(()=>{if(!(r!==`auto`||!f||eQ(i)||(0,l.isValidElement)(i)||h==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(f.width)!==Math.round(n)&&u(Y$({id:t,width:n}))}}},[m,f,u,i,t,r,h]),f==null||p==null||h==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var g=t3(e,q4);h.id,h.scale;var _=t3(h,J4);return l.createElement(N0,Y4({},g,_,{ref:a,labelRef:o,x:p.x,y:p.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:f.width,height:f.height,className:JT(`recharts-${d} ${d}`,n),viewBox:s,ticks:m,axisType:d,axisId:t}))}var a3={allowDataOverflow:ZW.allowDataOverflow,allowDecimals:ZW.allowDecimals,allowDuplicatedCategory:ZW.allowDuplicatedCategory,angle:ZW.angle,axisLine:w0.axisLine,hide:!1,includeHidden:ZW.includeHidden,interval:ZW.interval,label:!1,minTickGap:ZW.minTickGap,mirror:ZW.mirror,orientation:ZW.orientation,padding:ZW.padding,reversed:ZW.reversed,scale:ZW.scale,tick:ZW.tick,tickCount:ZW.tickCount,tickLine:w0.tickLine,tickSize:w0.tickSize,type:ZW.type,niceTicks:ZW.niceTicks,width:ZW.width,yAxisId:0},o3=l.memo(e=>{var t=iO(e,a3);return l.createElement(l.Fragment,null,l.createElement(r3,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),l.createElement(i3,t))},A4);o3.displayName=`YAxis`;var s3=J([(e,t)=>t,VN,FR,WR,mJ,gJ,JJ,XM],oY);function c3(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function l3(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(c3(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var u3=HA(`mouseClick`),d3=Xj();d3.startListening({actionCreator:u3,effect:(e,t)=>{var n=e.payload,r=s3(t.getState(),l3(n));r?.activeIndex!=null&&t.dispatch(yq({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var f3=HA(`mouseMove`),p3=Xj(),m3=null,h3=null,g3=null;p3.startListening({actionCreator:f3,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);m3!==null&&(cancelAnimationFrame(m3),m3=null),h3!==null&&(typeof i!=`number`||!o)&&(clearTimeout(h3),h3=null),g3=l3(n);var s=()=>{var e=t.getState(),n=rq(e,e.tooltip.settings.shared);if(!g3){m3=null,h3=null;return}if(n===`axis`){var r=s3(e,g3);r?.activeIndex==null?t.dispatch(gq()):t.dispatch(vq({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}m3=null,h3=null};if(!o){s();return}i===`raf`?m3=requestAnimationFrame(s):typeof i==`number`&&h3===null&&(h3=setTimeout(s,i))}});function _3(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var v3={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},y3=uj({name:`rootProps`,initialState:v3,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??v3.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),b3=y3.reducer,x3=y3.actions.updateOptions,S3=uj({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});S3.actions.updatePolarOptions;var C3=S3.reducer,w3=HA(`keyDown`),T3=HA(`focus`),E3=HA(`blur`),D3=Xj(),O3=null,k3=null,A3=null;D3.startListening({actionCreator:w3,effect:(e,t)=>{A3=e.payload,O3!==null&&(cancelAnimationFrame(O3),O3=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);k3!==null&&(typeof r!=`number`||!a)&&(clearTimeout(k3),k3=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=A3;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=Pq(n,nJ(e),AG(e),dJ(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=gJ(e),c=nJ(e),l=rq(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=$J(e,l,`hover`,String(n.index));t.dispatch(xq({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=$K(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=AG(e),h=dJ(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v<c.length;v++)if(Pq(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(Pq(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=$J(e,l,`hover`,String(p));t.dispatch(xq({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{O3=null,k3=null}};if(!a){o();return}r===`raf`?O3=requestAnimationFrame(o):typeof r==`number`&&k3===null&&(o(),A3=null,k3=setTimeout(()=>{A3?o():(k3=null,O3=null)},r))}}),D3.startListening({actionCreator:T3,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=$J(n,rq(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(xq({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),D3.startListening({actionCreator:E3,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(xq({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function j3(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var M3=HA(`externalEvent`),N3=Xj(),P3=new Map,F3=new Map,I3=new Map;N3.startListening({actionCreator:M3,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=j3(i);I3.set(a,{handler:r,reactEvent:o});var s=P3.get(a);s!==void 0&&(cancelAnimationFrame(s),P3.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=F3.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),F3.delete(a));var p=()=>{var e=I3.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:EJ(i),activeDataKey:CJ(i),activeIndex:xJ(i),activeLabel:SJ(i),activeTooltipIndex:xJ(i),isTooltipActive:DJ(i)};n&&n(o,r)}finally{P3.delete(a),F3.delete(a),I3.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);P3.set(a,m)}else if(typeof l==`number`){if(!F3.has(a)){p();var h=setTimeout(p,l);F3.set(a,h)}}else p()}}});var L3=J([J([Rq],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),R3=HA(`touchMove`),z3=Xj(),B3=null,V3=null,H3=null,U3=null;z3.startListening({actionCreator:R3,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){U3=j3(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);B3!==null&&(cancelAnimationFrame(B3),B3=null),V3!==null&&(typeof i!=`number`||!o)&&(clearTimeout(V3),V3=null),H3=Array.from(n.touches).map(e=>l3({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(U3!=null){var e=t.getState(),n=rq(e,e.tooltip.settings.shared);if(n===`axis`){var r=H3?.[0];if(r==null){B3=null,V3=null;return}var i=s3(e,r);i?.activeIndex!=null&&t.dispatch(vq({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=U3.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(zM),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=Qq(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=L3(e,s,c);t.dispatch(mq({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}B3=null,V3=null}};if(!o){s();return}i===`raf`?B3=requestAnimationFrame(s):typeof i==`number`&&V3===null&&(s(),U3=null,V3=setTimeout(()=>{U3?s():(V3=null,B3=null)},i))}}});var W3={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},G3=uj({name:`eventSettings`,initialState:W3,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Y(t.payload.throttledEvents))}}}),K3=G3.actions.setEventSettings,q3=G3.reducer,J3=wk({brush:x1,cartesianAxis:Z$,chartData:YY,errorBars:o2,eventSettings:q3,graphicalItems:P$,layout:iM,legend:QN,options:HY,polarAxis:TQ,polarOptions:C3,referenceElements:E1,renderedTicks:c0,rootProps:b3,tooltip:Sq,zIndex:CY}),Y3=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return ej({reducer:J3,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([d3.middleware,p3.middleware,D3.middleware,N3.middleware,z3.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(QA({type:`raf`}))},devTools:BP.devToolsEnabled&&{serialize:{replacer:_3},name:`recharts-${t}`}})};function X3(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=eN(),a=(0,l.useRef)(null);if(i)return n;a.current??=Y3(t,r);var o=nk;return l.createElement(mP,{context:o,store:a.current},n)}function Z3(e){var t=e.layout,n=e.margin,r=rk(),i=eN();return(0,l.useEffect)(()=>{i||(r(tM(t)),r(eM(n)))},[r,i,t,n]),null}var Q3=(0,l.memo)(Z3,_P);function $3(e){var t=rk();return(0,l.useEffect)(()=>{t(x3(e))},[t,e]),null}var e6=(0,l.memo)(e=>{var t=rk();return(0,l.useEffect)(()=>{t(K3(e))},[t,e]),null},_P);function t6(e){var t=e.zIndex,n=e.isPanorama,r=(0,l.useRef)(null),i=rk();return(0,l.useLayoutEffect)(()=>(r.current&&i(xY({zIndex:t,element:r.current,isPanorama:n})),()=>{i(SY({zIndex:t,isPanorama:n}))}),[i,t,n]),l.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function n6(e){var t=e.children,n=e.isPanorama,r=q(cY);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return l.createElement(l.Fragment,null,i.map(e=>l.createElement(t6,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>l.createElement(t6,{key:e,zIndex:e,isPanorama:n})))}var r6=[`children`];function i6(e,t){if(e==null)return{};var n,r,i=a6(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function o6(){return o6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o6.apply(null,arguments)}var s6={width:`100%`,height:`100%`,display:`block`},c6=(0,l.forwardRef)((e,t)=>{var n=zN(),r=BN(),i=cF();if(!oM(n)||!oM(r))return null;var a=e.children,o=e.otherAttributes,s=e.title,c=e.desc,u,d;return o!=null&&(u=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,d=typeof o.role==`string`?o.role:i?`application`:void 0),l.createElement(sE,o6({},o,{title:s,desc:c,role:d,tabIndex:u,width:n,height:r,style:s6,ref:t}),a)}),l6=e=>{var t=e.children,n=q(nN);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return l.createElement(sE,{width:r,height:i,x:o,y:a},t)},u6=(0,l.forwardRef)((e,t)=>{var n=e.children,r=i6(e,r6);return eN()?l.createElement(l6,null,l.createElement(n6,{isPanorama:!0},n)):l.createElement(c6,o6({ref:t},r),l.createElement(n6,{isPanorama:!1},n))});function d6(e,t){return g6(e)||h6(e,t)||p6(e,t)||f6()}function f6(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
61
61
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function p6(e,t){if(e){if(typeof e==`string`)return m6(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m6(e,t):void 0}}function m6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h6(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function g6(e){if(Array.isArray(e))return e}function _6(){var e=rk(),t=d6((0,l.useState)(null),2),n=t[0],r=t[1],i=q(FM);return(0,l.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;X(t)&&t!==i&&e(rM(t))}},[n,e,i]),r}function v6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?v6(Object(n),!0).forEach(function(t){b6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function b6(e,t,n){return(t=x6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x6(e){var t=S6(e,`string`);return typeof t==`symbol`?t:t+``}function S6(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function C6(){return C6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C6.apply(null,arguments)}function w6(e,t){return k6(e)||O6(e,t)||E6(e,t)||T6()}function T6(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
62
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){if(e){if(typeof e==`string`)return D6(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?D6(e,t):void 0}}function D6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function O6(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function k6(e){if(Array.isArray(e))return e}var A6=()=>(oX(),null);function j6(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var M6=(0,l.forwardRef)((e,t)=>{var n=(0,l.useRef)(null),r=w6((0,l.useState)({containerWidth:j6(e.style?.width),containerHeight:j6(e.style?.height)}),2),i=r[0],a=r[1],o=(0,l.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,l.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,l.useEffect)(()=>()=>{n.current?.disconnect()},[o]),l.createElement(l.Fragment,null,l.createElement(KN,{width:i.containerWidth,height:i.containerHeight}),l.createElement(`div`,C6({ref:s},e)))}),N6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=w6((0,l.useState)({containerWidth:j6(n),containerHeight:j6(r)}),2),a=i[0],o=i[1],s=(0,l.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,l.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return l.createElement(l.Fragment,null,l.createElement(KN,{width:a.containerWidth,height:a.containerHeight}),l.createElement(`div`,C6({ref:c},e)))}),P6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(`div`,C6({ref:t},e)))}),F6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?l.createElement(N6,C6({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?l.createElement(P6,C6({},e,{width:n,height:r,ref:t})):l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(`div`,C6({ref:t},e)))});function I6(e){return e?M6:F6}var L6=(0,l.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,s=e.onDoubleClick,c=e.onMouseDown,u=e.onMouseEnter,d=e.onMouseLeave,f=e.onMouseMove,p=e.onMouseUp,m=e.onTouchEnd,h=e.onTouchMove,g=e.onTouchStart,_=e.style,v=e.width,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,l.useRef)(null),C=rk(),w=w6((0,l.useState)(null),2),T=w[0],E=w[1],D=w6((0,l.useState)(null),2),O=D[0],k=D[1],A=_6(),j=NN(),M=j?.width>0?j.width:v,N=j?.height>0?j.height:i,ee=(0,l.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,l.useCallback)(e=>{C(u3(e)),C(M3({handler:a,reactEvent:e}))},[C,a]),ne=(0,l.useCallback)(e=>{C(f3(e)),C(M3({handler:u,reactEvent:e}))},[C,u]),re=(0,l.useCallback)(e=>{C(gq()),C(M3({handler:d,reactEvent:e}))},[C,d]),ie=(0,l.useCallback)(e=>{C(f3(e)),C(M3({handler:f,reactEvent:e}))},[C,f]),ae=(0,l.useCallback)(()=>{C(T3())},[C]),oe=(0,l.useCallback)(()=>{C(E3())},[C]),se=(0,l.useCallback)(e=>{C(w3(e.key))},[C]),ce=(0,l.useCallback)(e=>{C(M3({handler:o,reactEvent:e}))},[C,o]),le=(0,l.useCallback)(e=>{C(M3({handler:s,reactEvent:e}))},[C,s]),ue=(0,l.useCallback)(e=>{C(M3({handler:c,reactEvent:e}))},[C,c]),P=(0,l.useCallback)(e=>{C(M3({handler:p,reactEvent:e}))},[C,p]),de=(0,l.useCallback)(e=>{C(M3({handler:g,reactEvent:e}))},[C,g]),fe=(0,l.useCallback)(e=>{x&&C(R3(e)),C(M3({handler:h,reactEvent:e}))},[C,x,h]),pe=(0,l.useCallback)(e=>{C(M3({handler:m,reactEvent:e}))},[C,m]),me=I6(y);return l.createElement(PY.Provider,{value:T},l.createElement(YE.Provider,{value:O},l.createElement(me,{width:M??_?.width,height:N??_?.height,className:JT(`recharts-wrapper`,r),style:y6({position:`relative`,cursor:`default`,width:M,height:N},_),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:P,onTouchEnd:pe,onTouchMove:fe,onTouchStart:de,ref:ee},l.createElement(A6,null),n)))}),R6=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function z6(e,t){if(e==null)return{};var n,r,i=B6(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function B6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var V6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,u=e.title,d=e.desc,f=eE(z6(e,R6));return c?l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(u6,{otherAttributes:f,title:u,desc:d},a)):l.createElement(L6,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},l.createElement(u6,{otherAttributes:f,title:u,desc:d,ref:t},l.createElement(P1,null,a)))});function H6(){return H6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},H6.apply(null,arguments)}function U6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?U6(Object(n),!0).forEach(function(t){G6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function G6(e,t,n){return(t=K6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function K6(e){var t=q6(e,`string`);return typeof t==`symbol`?t:t+``}function q6(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var J6=W6({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},W3),Y6=(0,l.forwardRef)(function(e,t){var n=iO(e.categoricalChartProps,J6),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return l.createElement(X3,{preloadedState:{options:c},reduxStoreName:s.id??r},l.createElement(v1,{chartData:s.data}),l.createElement(Q3,{layout:n.layout,margin:n.margin}),l.createElement(e6,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),l.createElement($3,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),l.createElement(V6,H6({},n,{ref:t})))}),X6=[`axis`,`item`],Z6=(0,l.forwardRef)((e,t)=>l.createElement(Y6,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:X6,tooltipPayloadSearcher:BY,categoricalChartProps:e,ref:t})),Q6={fontSize:11,fill:`var(--muted-foreground)`},$6=({title:e=`Orders created`,noun:t=`orders`,defaultGranularity:n=`day`,data:r,granularity:i,onGranularityChange:a,periodLabel:o,className:s})=>{let[c,u]=(0,l.useState)(n),d=i??c,f=a??u,p=r??UT(d),m=_n(`(min-width: 640px)`),h=GT(p);return(0,I.jsxs)(`section`,{className:F(`rounded-lg border bg-background px-4 pb-2 pt-3`,s),children:[(0,I.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-[13px] font-semibold`,children:e}),(0,I.jsx)(`span`,{className:`text-[13px] font-semibold tabular-nums`,children:dv(WT(p))}),(0,I.jsxs)(`span`,{className:F(`text-xs font-medium tabular-nums`,h>=0?`text-success-text`:`text-danger-text`),children:[h>=0?`+`:`−`,Math.abs(h).toFixed(1),`%`]}),(0,I.jsx)(`span`,{className:`hidden text-xs text-muted-foreground sm:inline`,children:o??`last ${d===`day`?`30 days`:`12 weeks`}`})]}),(0,I.jsx)(kT,{value:d,onChange:f,options:[{value:`day`,label:`Day`},{value:`week`,label:`Week`}]})]}),(0,I.jsx)(`div`,{className:`mt-2 h-24`,children:(0,I.jsx)(FN,{width:`100%`,height:`100%`,children:(0,I.jsxs)(Z6,{data:p,margin:{top:4,right:0,bottom:0,left:0},barCategoryGap:d===`day`?`22%`:`30%`,children:[(0,I.jsx)(r2,{vertical:!1,stroke:`var(--border)`}),(0,I.jsx)(G4,{dataKey:`at`,padding:{left:4,right:m?4:18},tickFormatter:Td,tick:Q6,axisLine:!1,tickLine:!1,interval:d===`day`?m?4:9:m?1:3,height:18}),(0,I.jsx)(o3,{width:m?36:28,tick:Q6,axisLine:!1,tickLine:!1,tickCount:3}),(0,I.jsx)(CX,{cursor:{fill:`var(--muted)`},content:(0,I.jsx)(KT,{noun:t}),isAnimationActive:!1}),(0,I.jsx)(w4,{dataKey:`count`,fill:`var(--primary)`,radius:[2,2,0,0],isAnimationActive:!1})]})})})]})},e8={"7d":`last 7 days`,"30d":`last 30 days`,"90d":`last 90 days`,"1y":`last year`,all:`all time`},t8=({resource:e,chart:t,title:n,noun:r,filter:i})=>{let[a,o]=(0,l.useState)(t.granularity===`week`?`week`:`day`),s=a===`week`?`90d`:t.range,c=IT(e,{field:t.field,range:s,granularity:a,filter:i}).data?.points.map(e=>({at:Date.parse(`${e.bucket}Z`),count:e.count}))??[];return(0,I.jsx)($6,{title:n,noun:r,data:c,granularity:a,onGranularityChange:o,periodLabel:a===`week`?`last 12 weeks`:e8[s]})},n8=({value:e,onCommit:t,placeholder:n,className:r})=>{let[i,a]=(0,l.useState)(e);return(0,l.useEffect)(()=>a(e),[e]),(0,l.useEffect)(()=>{if(i===e)return;let n=setTimeout(()=>t(i),350);return()=>clearTimeout(n)},[i,e,t]),(0,I.jsx)(er,{wrapperClassName:F(`min-w-0 flex-1 sm:w-72 sm:flex-initial`,r),leading:(0,I.jsx)(kt,{className:`size-4`}),placeholder:n,"aria-label":`Search`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>e.key===`Enter`&&t(i)})},r8=(e,t,n,r)=>e.map(e=>{let i=t.fields[e.id],a=i&&A_(r,i,n?.fields[e.id]);return a?{...e,render:t=>(0,I.jsx)(N_,{shown:a,part:`cell`,field:i,value:t[e.id],fallback:bv(e,e.value?e.value(t):t[e.id])})}:e}),i8=Io(),a8=e=>e.find(e=>e.kind===`search`),o8=({address:e})=>{let{resources:t}=G(),n=t[e.resource];return n?(0,I.jsx)(s8,{model:n,address:e}):(0,I.jsxs)(bg,{title:`Not found`,children:[`There is no resource called `,e.resource,`.`]})},s8=({model:e,address:t})=>{let n=G(),{set:r,go:i}=Yg(),a=e.name,o=n.views[a],s=(0,l.useMemo)(()=>Bw(o,e),[o,e]),{fields:c}=xh(),u=(0,l.useMemo)(()=>r8(_w(e,o),e,o,c),[e,o,c]),d=t.filter,f=(0,l.useMemo)(()=>Fw(s,d),[s,d]),p=f.ok?f.state:RC,m=f.ok?f.extras:[],{orderBy:h,filterLayout:g}=t,_=vn(),[v,y]=(0,l.useState)(!1),b=qw({model:e,resources:n.resources,views:n.views,view:o,state:p,extras:m}),x=(0,l.useMemo)(()=>zg(e,o,u.map(e=>e.id)),[e,o,u]),S=Xw({resources:n.resources,views:n.views,model:e,columns:x,filter:f.ok?d:``,orderBy:h}),C=Pg(o,t.display),w=PT(e,S.page,S.key,C!==void 0),T=$m(e,o),E=e=>({key:e.id,title:String(typeof e[T]==`object`?e[T].name:e[T]??e.id),etag:typeof e.etag==`string`?e.etag:void 0,snapshot:e}),D=o?.names?.singular??W(a),O=Cg(a),{state:k}=B(),A=iT({model:e,view:o,restore:aT(e),onReview:e=>i({kind:`record`,resource:a,key:e.key})}),j=(e,t=m)=>r({filter:Ow(s,e,t)}),M=a8(m),N=e=>{let t=m.filter(e=>e.kind!==`search`);j(p,e?[...t,i8.search(e)]:t)},ee=o?.names?.plural??W(a),te=C&&(0,I.jsx)(NT,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e})}),ne=e.search?.length?(0,I.jsx)(n8,{value:M?.kind===`search`?M.text:``,onCommit:N,placeholder:`Search ${ee.toLowerCase()}`,className:_?void 0:`min-h-11`}):null,re=(0,I.jsx)(sw,{layout:g,config:b,value:p,onChange:j,leading:g===`bar`?te:void 0,trailing:ne}),ie=g===`bar`?re:(0,I.jsx)(JC,{groups:[te?[te]:[]],trailing:ne}),ae=UC(b,p),oe=(0,I.jsx)(FC,{scroll:!0,chips:ae,onRemove:e=>j(WC(p,e)),onClear:()=>j(RC)}),se=C&&(0,I.jsx)(KC,{title:`Sort`,children:(0,I.jsx)(NT,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e}),className:`min-h-11 w-full`})}),ce=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(V,{className:`min-h-11`,onClick:()=>y(!0),"aria-haspopup":`dialog`,children:[(0,I.jsx)(Vt,{className:`size-3.5`}),`Filters`,ae.length>0&&` (${ae.length})`]}),ne??(0,I.jsx)(`div`,{className:`min-w-0 flex-1`,children:oe})]}),ne&&oe,(0,I.jsx)(Zw,{title:`Filters`,open:v,onClose:()=>y(!1),children:(0,I.jsx)(sw,{layout:`panel`,fullWidth:!0,config:b,value:p,onChange:j,leading:se})})]}),le=L_(O,`create`)&&(0,I.jsxs)(V,{variant:`primary`,onClick:()=>i({kind:`create`,resource:a}),children:[(0,I.jsx)(xt,{className:`size-3.5`}),`New `,D.toLowerCase()]}),ue=e=>(0,I.jsx)(jT,{view:o,value:C?.name??`table`,onChange:e=>r({display:e}),menu:e}),P=t=>i({kind:`record`,resource:a,key:th(e,t)}),de=S.source?(0,I.jsx)(NC,{columns:u,source:S.source,sort:Wg(h),onSortChange:e=>r({orderBy:Gg(e)}),onOpenRow:P,rowActions:[{label:`Open ${D.toLowerCase()}`,onSelect:P},...L_(O,`delete`)?[{label:`Delete`,destructive:!0,available:e=>R_(e,`delete`),onSelect:e=>void A.start(E(e))}]:[]],bulkActions:L_(O,`delete`)?[{label:e=>`Delete ${e}`,destructive:!0,onRun:e=>A.startBulk(e.map(E))}]:[],rowNumbers:!1,pinKey:k.kind===`signed-in`?iv(k.user.id,a):void 0,className:`min-h-0 flex-1`}):(0,I.jsx)(`div`,{className:`flex-1 rounded-lg border bg-surface`}),fe=C?C.kind===`cards`?(0,I.jsx)(bT,{model:e,view:o,display:C,list:w}):(0,I.jsx)(TT,{display:C,list:w}):de;return(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 px-5 py-4`,children:[A.dialogs,(0,I.jsx)(ud,{title:ee,subtitle:o?.help,aside:!_&&ue(!0),actions:_?(0,I.jsxs)(I.Fragment,{children:[ue(!1),le]}):le}),!f.ok&&(0,I.jsx)(w_,{title:`The filter in the address could not be read`,error:Error(f.errors.map(e=>e.message).join(`; `))}),S.error&&!C&&(0,I.jsx)(w_,{title:`Could not load rows`,error:S.error}),o?.chart&&(0,I.jsx)(t8,{resource:a,chart:o.chart,title:`${ee} created`,noun:ee.toLowerCase(),filter:f.ok?d:``}),_?ie:ce,_&&g===`panel`?(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[re,fe]}):fe]})},c8=({roles:e,selected:t,grantable:n,disabled:r,onChange:i})=>(0,I.jsx)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-2`,children:e.filter(e=>e.membership).map(e=>{let a=t.includes(e.name),o=r||!n.has(e.name);return(0,I.jsxs)(`label`,{title:o&&!r?`You cannot give or take away this role`:void 0,className:F(`inline-flex items-center gap-1.5 text-[13px]`,o&&`text-muted-foreground`),children:[(0,I.jsx)(Km,{checked:a,label:e.label,onChange:o?void 0:n=>i(n?[...t,e.name]:t.filter(t=>t!==e.name)),className:F(o&&`cursor-default opacity-60`)}),e.label]},e.name)})}),l8=e=>e?.role===`owner`?[`owner`,`admin`,`member`]:[`admin`,`member`],u8=({member:e,current:t,onChanged:n})=>{let{session:r,organizations:i}=B(),a=t.organization.id,{busy:o,error:s,run:c}=qm(),l=i?.roles??[],u=e.id===t.memberId,d=l8(t),f=e.role===`owner`&&t.role!==`owner`;return(0,I.jsxs)(`li`,{className:`flex flex-col gap-2 px-3 py-3`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`span`,{className:`block truncate text-[13px] font-medium`,children:[e.name,u&&` (you)`]}),(0,I.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.email})]}),(0,I.jsx)(`select`,{"aria-label":`Organization role of ${e.name}`,value:e.role,disabled:o||f,onChange:t=>void c(async()=>{await r.organizations.setRole(a,e.id,t.target.value),n()}),className:`h-7 rounded-md border border-border-strong bg-background px-2 text-xs`,children:(f?[e.role]:d).map(e=>(0,I.jsx)(`option`,{value:e,children:Lm[e]},e))}),!u&&(0,I.jsx)(V,{size:`sm`,variant:`danger`,loading:o,disabled:f,onClick:()=>void c(async()=>{await r.organizations.removeMember(a,e.id),n()}),children:`Remove`})]}),(0,I.jsx)(c8,{roles:l,selected:e.appRoles,grantable:Bm(l,t),disabled:o,onChange:t=>void c(async()=>{await r.organizations.setAppRoles(e.id,t),n()})}),(0,I.jsx)(Pd,{message:s})]})},d8=({current:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(),[i,a]=(0,l.useState)(),o=e?.organization?.id,s=(0,l.useCallback)(()=>{o&&t.organizations.members(o).then(r,e=>a(e instanceof Zs?hd(e):`Could not read the members`))},[t,o]);return(0,l.useEffect)(s,[s]),e?.organization?(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Members`,subtitle:`Who works in ${e.organization.name}, and with which roles.`}),(0,I.jsxs)(Nd,{title:`Members`,description:`Owners and admins manage the organization; app roles decide what each member sees and does in the app.`,children:[(0,I.jsx)(Pd,{message:i}),n?(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(t=>(0,I.jsx)(u8,{member:t,current:e,onChanged:s},`${t.id}/${t.role}/${t.appRoles.join()}`))}):!i&&(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-[13px] text-muted-foreground`,children:[(0,I.jsx)(nr,{}),` Loading`]})]})]}):null},f8=({link:e})=>e?(0,I.jsxs)(`p`,{className:`mt-3 break-all rounded-md border bg-muted px-3 py-2 text-xs`,children:[`This app cannot send email, so pass this link on yourself. It works once, until the invitation expires: `,(0,I.jsx)(`span`,{className:`font-mono`,children:e})]}):null,p8=({current:e,onSent:t})=>{let{session:n,organizations:r}=B(),i=r?.roles??[],[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(`member`),[u,d]=(0,l.useState)([]),[f,p]=(0,l.useState)(),{busy:m,error:h,run:g}=qm(),_=()=>g(async()=>{let r=await n.organizations.invite(e.organization.id,{email:a.trim(),role:s,appRoles:u});p(r.link),o(``),d([]),t()});return(0,I.jsxs)(Nd,{title:`Invite someone`,description:`They get an email with a link to join, or to make an account first. You can give the app roles you hold, and those your roles grant.`,children:[(0,I.jsx)(Pd,{message:h}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>{e.preventDefault(),_()},children:[(0,I.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,I.jsx)(er,{"aria-label":`Email`,type:`email`,placeholder:`name@example.com`,value:a,onChange:e=>o(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(`select`,{"aria-label":`Organization role`,value:s,onChange:e=>c(e.target.value),className:`h-8 rounded-md border border-border-strong bg-background px-2 text-[13px]`,children:l8(e).map(e=>(0,I.jsx)(`option`,{value:e,children:Lm[e]},e))}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:m,disabled:!a.trim(),children:`Invite`})]}),(0,I.jsx)(c8,{roles:i,selected:u,grantable:Bm(i,e),onChange:d})]}),(0,I.jsx)(f8,{link:f})]})},m8=({invitation:e,organizationId:t,onChanged:n})=>{let{session:r,organizations:i}=B(),[a,o]=(0,l.useState)(),{busy:s,error:c,run:u}=qm(),d=new Date(e.expiresAt).getTime()<Date.now();return(0,I.jsxs)(`li`,{className:`px-3 py-2.5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium`,children:e.email}),(0,I.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[Lm[e.role],e.appRoles.length>0&&` · ${e.appRoles.map(e=>Rm(i?.roles??[],e)).join(`, `)}`,` · `,d?`Expired`:`Until ${new Date(e.expiresAt).toLocaleDateString()}`]})]}),(0,I.jsx)(V,{size:`sm`,loading:s,onClick:()=>void u(async()=>{o((await r.organizations.resend(t,e)).link),n()}),children:`Send again`}),(0,I.jsx)(V,{size:`sm`,variant:`danger`,loading:s,onClick:()=>void u(async()=>{await r.organizations.revoke(e.id),n()}),children:`Revoke`})]}),(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(f8,{link:a})]})},h8=({current:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)([]),i=e?.organization?.id,a=(0,l.useCallback)(()=>{i&&t.organizations.invitations(i).then(e=>r(e.filter(e=>e.status===`pending`)),()=>r([]))},[t,i]);return(0,l.useEffect)(a,[a]),!e?.organization||!i?null:(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Invitations`,subtitle:`People invited to ${e.organization.name}.`}),(0,I.jsx)(p8,{current:e,onSent:a}),(0,I.jsx)(Nd,{title:`Not accepted yet`,description:n.length>0?`Sending again gives a new link, which replaces the earlier one.`:`Nobody is waiting.`,children:n.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(e=>(0,I.jsx)(m8,{invitation:e,organizationId:i,onChanged:a},e.id))})})]})},g8=e=>{let{session:t}=B(),[n,r]=(0,l.useState)(),[i,a]=(0,l.useState)([]),[o,s]=(0,l.useState)(),[c,u]=(0,l.useState)(0),d=(0,l.useCallback)(()=>u(e=>e+1),[]);return(0,l.useEffect)(()=>{e&&Promise.all([t.organizations.current(),t.organizations.list()]).then(([e,t])=>{r(e),a(t)},e=>s(e instanceof Zs?hd(e):`Could not read your organizations`))},[e,t,c]),{current:n,organizations:i,...o&&{error:o},reload:d}},_8=e=>window.location.assign(`${e}/`),v8=({organization:e,editable:t,onSaved:n})=>{let{session:r}=B(),[i,a]=(0,l.useState)(e.name),[o,s]=(0,l.useState)(e.slug),{busy:c,error:u,run:d}=qm(),f=i.trim()!==e.name||o!==e.slug;return(0,I.jsxs)(Nd,{title:`Details`,description:t?`The name people see, and the slug that names it in links.`:`Owners and admins can change these.`,children:[(0,I.jsx)(Pd,{message:u}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:t=>{t.preventDefault(),d(async()=>{await r.organizations.rename(e.id,{name:i.trim(),slug:o}),n()})},children:[(0,I.jsx)(er,{"aria-label":`Name`,value:i,disabled:!t,onChange:e=>a(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(er,{"aria-label":`Slug`,value:o,disabled:!t,onChange:e=>s(e.target.value),wrapperClassName:`sm:w-48`}),t&&(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:c,disabled:!f||!i.trim(),children:`Save`})]})]})},y8=({organization:e,memberId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=qm();return(0,l.useEffect)(()=>{n.organizations.members(e.id).then(e=>i(e.filter(e=>e.id!==t)),()=>i([]))},[n,e.id,t]),(0,I.jsxs)(Nd,{title:`Hand over`,description:`Make another member the owner. You stay as an admin.`,children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,I.jsxs)(`select`,{"aria-label":`New owner`,value:a,onChange:e=>o(e.target.value),className:`h-8 flex-1 rounded-md border border-border-strong bg-background px-2 text-[13px]`,children:[(0,I.jsx)(`option`,{value:``,children:`Choose a member`}),r.map(e=>(0,I.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.email,`)`]},e.id))]}),(0,I.jsx)(V,{loading:s,disabled:!a,onClick:()=>void u(async()=>{await n.organizations.transferOwnership(a),window.location.reload()}),children:`Hand over`})]})]})},b8=({organization:e,basePath:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(!1),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=qm(),d=()=>u(async()=>{await n.organizations.remove(e.id),_8(t)});return(0,I.jsxs)(Nd,{title:`Delete organization`,description:`Takes the organization and its members and invitations away. Its records must be deleted first.`,children:[(0,I.jsx)(Pd,{message:r?void 0:c}),(0,I.jsx)(V,{variant:`danger`,onClick:()=>i(!0),children:`Delete organization`}),r&&(0,I.jsxs)(Md,{title:`Delete ${e.name}?`,description:`Type its name to confirm. This cannot be undone.`,onClose:()=>i(!1),actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:()=>i(!1),children:`Cancel`}),(0,I.jsx)(V,{variant:`danger`,loading:s,disabled:a!==e.name,onClick:()=>void d(),children:`Delete`})]}),children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(er,{"aria-label":`Organization name`,value:a,onChange:e=>o(e.target.value)})]})]})},x8=({organization:e,basePath:t,owner:n})=>{let{session:r}=B(),{busy:i,error:a,run:o}=qm();return(0,I.jsxs)(Nd,{title:`Leave`,description:n?`An organization keeps an owner: hand it over before you leave, unless it has another owner.`:`You stop being a member, and lose your roles here.`,children:[(0,I.jsx)(Pd,{message:a}),(0,I.jsxs)(V,{loading:i,onClick:()=>void o(async()=>{await r.organizations.leave(e.id),_8(t)}),children:[`Leave `,e.name]})]})},S8=({current:e,basePath:t,onChanged:n})=>{let r=e?.organization;if(!r)return(0,I.jsx)(`div`,{className:`mx-auto w-full max-w-3xl px-4 py-6 md:px-6`,children:(0,I.jsx)(ud,{title:`Organization`,subtitle:`You do not work in an organization now. Choose one under Organizations.`})});let i=e.role===`owner`;return(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:r.name,subtitle:e.role?`You are ${Lm[e.role].toLowerCase()} here.`:`You work here through your global roles, without being a member.`}),(0,I.jsx)(v8,{organization:r,editable:zm(e),onSaved:n},`${r.name}/${r.slug}`),i&&e.memberId&&(0,I.jsx)(y8,{organization:r,memberId:e.memberId}),e.role&&(0,I.jsx)(x8,{organization:r,basePath:t,owner:i}),i&&(0,I.jsx)(b8,{organization:r,basePath:t})]})},C8=e=>e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,63),w8=({organization:e,current:t,busy:n,onOpen:r})=>(0,I.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2.5`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium`,children:e.name}),(0,I.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.slug})]}),t?(0,I.jsx)(zn,{tone:`green`,children:`Current`}):(0,I.jsx)(V,{size:`sm`,loading:n,onClick:r,children:`Open`})]}),T8=({basePath:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(``),[i,a]=(0,l.useState)(),{busy:o,error:s,run:c}=qm(),u=()=>c(async()=>{await t.organizations.create({name:n.trim(),slug:i??C8(n)}),_8(e)});return(0,I.jsxs)(Nd,{title:`New organization`,description:`You become its owner, with every role, and work in it once it is made.`,children:[(0,I.jsx)(Pd,{message:s}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:e=>{e.preventDefault(),u()},children:[(0,I.jsx)(er,{"aria-label":`Name`,placeholder:`Name`,value:n,onChange:e=>r(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(er,{"aria-label":`Slug`,placeholder:`slug`,value:i??C8(n),onChange:e=>a(e.target.value),wrapperClassName:`sm:w-48`}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:o,disabled:!n.trim(),children:`Create`})]})]})},E8=({basePath:e,currentId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)([]),{busy:s,error:c,run:u}=qm();return(0,l.useEffect)(()=>{let e=setTimeout(()=>void n.organizations.search(r).then(o,()=>o([])),200);return()=>clearTimeout(e)},[n,r]),(0,I.jsxs)(Nd,{title:`Find an organization`,description:`Your global roles let you work in any organization, with what those roles allow there. Opening one you are not a member of is written to the audit log.`,children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(er,{"aria-label":`Find an organization`,placeholder:`Name or slug`,value:r,onChange:e=>i(e.target.value),leading:(0,I.jsx)(kt,{className:`size-3.5`}),wrapperClassName:`mb-3`}),a.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:a.map(r=>(0,I.jsx)(w8,{organization:r,current:r.id===t,busy:s,onOpen:()=>void u(async()=>{await n.organizations.switchTo(r.id),_8(e)})},r.id))})]})},D8=()=>{let{session:e,organizations:t}=B(),[n,r]=(0,l.useState)([]);if((0,l.useEffect)(()=>{e.organizations.myInvitations().then(r,()=>r([]))},[e]),n.length===0)return null;let i=t?.roles??[];return(0,I.jsx)(Nd,{title:`Invitations for you`,description:`Open the link in the invitation email to accept one.`,children:(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(e=>(0,I.jsxs)(`li`,{className:`px-3 py-2.5 text-[13px]`,children:[(0,I.jsx)(`span`,{className:`font-medium`,children:e.organizationName??`An organization`}),`: `,e.appRoles.map(e=>Rm(i,e)).join(`, `)||`no app roles`,(0,I.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[`Until `,new Date(e.expiresAt).toLocaleDateString()]})]},e.id))})})},O8=({state:e,basePath:t})=>{let{session:n,organizations:r,state:i}=B(),{busy:a,error:o,run:s}=qm(),c=i.kind===`signed-in`?i.user:void 0,l=r?.create===`everyone`||c!==void 0&&Xm(c),u=e.current?.organization?.id;return(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Organizations`,subtitle:`You work in one organization at a time; what you see follows from your roles there.`}),(0,I.jsxs)(Nd,{title:`Your organizations`,description:e.organizations.length>0?`The organizations you are a member of.`:`You are not a member of an organization yet.`,children:[(0,I.jsx)(Pd,{message:o??e.error}),e.organizations.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:e.organizations.map(e=>(0,I.jsx)(w8,{organization:e,current:e.id===u,busy:a,onOpen:()=>void s(async()=>{await n.organizations.switchTo(e.id),_8(t)})},e.id))})]}),(0,I.jsx)(D8,{}),l&&(0,I.jsx)(T8,{basePath:t}),(e.current?.globalRoles.length??0)>0&&(0,I.jsx)(E8,{basePath:t,currentId:u})]})},k8=(e,t)=>t?.active?{...e,role:t.active}:e,A8=(e,t)=>e instanceof Zs?hd(e):t,j8=(e,t=!0)=>{let{session:n}=B(),r=sh(),[i,a]=(0,l.useState)();(0,l.useEffect)(()=>{t&&n.roles.current().then(a,e=>r.show({state:`error`,title:A8(e,`Could not read your roles`)}))},[n,r,t]);let o=(0,l.useCallback)(t=>void n.roles.switchTo(t).then(e,e=>r.show({state:`error`,title:A8(e,`Could not switch the role`)})),[n,r,e]);return{...i&&{current:i},switchTo:o}},M8=e=>new Set((e.userMenu?.items??[]).flatMap(e=>e.kind===`resource`?[e.resource]:e.kind===`page`?[e.page]:[])),N8=(e,t,n)=>(e.userMenu?.items??[]).map((r,i)=>{if(r.kind===`link`)return{id:`link-${i}`,label:r.label,icon:lg(r.icon,Pe),href:r.href,external:!0};if(r.kind===`page`){let i=e.pages[r.page];return{id:r.page,label:r.label??i?.title??W(r.page),icon:lg(r.icon??i?.icon,Je),href:is({kind:`page`,page:r.page},t),active:r.page===n}}return{id:r.resource,label:r.label??e.views[r.resource]?.names?.plural??W(r.resource),icon:lg(r.icon,sg(r.resource)),href:is({kind:`list`,resource:r.resource},t),active:r.resource===n}}),P8={sales:`Sales`,crm:`CRM`,catalog:`Catalog`,inventory:`Inventory`,core:`Admin`,hr:`HR`},F8=(e,t=``,n={})=>{let r=new Map,i=new Map,a=M8(e);for(let n of Object.values(e.pages)){if(n.nav?.hidden||a.has(n.name))continue;let e=n.nav?.group??`Pages`,o=r.get(e)??{label:e,items:[]};o.items.push({id:n.name,label:n.title,icon:lg(n.icon,Je),href:is({kind:`page`,page:n.name},t)}),r.set(e,o),i.set(n.name,n.nav?.order??2**53-1)}for(let o of Object.values(e.resources)){let s=e.views[o.name];if(!s||s.nav?.hidden||a.has(o.name))continue;let c=o.table.schema??`public`,l=s.nav?.group??P8[c]??W(c),u=r.get(l)??{label:l,items:[]};u.items.push({id:o.name,label:s.names?.plural??W(o.name),icon:sg(o.name),href:is({kind:`list`,resource:o.name},t),...n[o.name]&&{recent:n[o.name]}}),r.set(l,u),i.set(o.name,s.nav?.order??2**53-1)}for(let n of e.sources??[]){if(n.state!==`error`)continue;let e=r.get(n.source.label)??{label:n.source.label,items:[]};for(let r of n.source.resources)e.items.push({id:r,label:W(r),icon:sg(r),href:is({kind:`list`,resource:r},t),problem:`Cannot reach ${n.source.label}`});r.set(n.source.label,e)}return[...r.values()].map(e=>({...e,items:[...e.items].sort((e,t)=>(i.get(e.id)??0)-(i.get(t.id)??0))}))},I8=({action:e,label:t,danger:n,onCancel:r,onConfirm:i})=>(0,I.jsx)(Md,{title:`${t}?`,description:e.confirm,onClose:r,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:r,children:`Cancel`}),(0,I.jsx)(V,{variant:n?`danger`:`primary`,onClick:i,children:t})]})}),L8=(0,l.createContext)(void 0),R8=({value:e,children:t})=>(0,I.jsx)(L8.Provider,{value:e,children:t}),z8=()=>(0,l.useContext)(L8),B8=(e,t={})=>e.replace(/\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(e,n)=>encodeURIComponent(t[n]===null||t[n]===void 0?``:String(t[n]))),V8=(e,t)=>({model:e,record:t,key:es(th(e,t)),etag:typeof t.etag==`string`?t.etag:void 0,permissions:t.permissions}),H8=(e,t,n=``)=>({queryKey:H.count(t.name,n),queryFn:async()=>{let r=await e.list(t.name,{filter:n||void 0,pageSize:1,count:`exact`,fields:t.primaryKey});return r.totalSize??r.totalSizeEstimate}}),U8=(e,t=``)=>Tm(H8(U(),e,t)),W8=(e,{filter:t=``,sort:n=``,key:r})=>{let i=U();return Tm({queryKey:r===void 0?H.firstRecord(e.name,t,n):H.record(e.name,r),queryFn:async()=>{if(r!==void 0){let t=await i.get(e.name,r);return{...V8(e,t.record),etag:t.etag,permissions:t.permissions}}let a=await i.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:1});return a.items[0]?V8(e,a.items[0]):null}})},G8=(e,{filter:t=``,sort:n=``,pageSize:r,pageToken:i=``})=>{let a=U();return Tm({queryKey:H.list(e.name,t,n,r,i),placeholderData:xp,queryFn:()=>a.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:r,pageToken:i||void 0})})},K8=()=>{let e=Zf();return(0,l.useCallback)(t=>e.invalidateQueries({predicate:e=>e.queryKey[1]===t}),[e])},q8=e=>e instanceof Error?e.message:`Something went wrong`,J8=(e,t,n)=>{let{views:r}=G(),{actions:i}=xh(),a=Cg(e),o=U(),s=jm(e),c=sh(),u=K8(),{go:d}=Yg(),[f,p]=(0,l.useState)(),m=r[e]?.actions??[],h=e=>{let n=e.run?.kind;if((n===`update`||n===`delete`)&&!t)return`Needs a record`;if(n===`update`&&(!L_(a,`update`)||t?.permissions?.update===!1))return`You cannot change this record`;if(n===`delete`&&(!L_(a,`delete`)||t?.permissions?.delete===!1))return`You cannot delete this record`;if(!e.run&&!i?.[e.name])return`The app has no handler for "${e.name}"`},g=async r=>{let{run:a}=r;if(a?.kind===`link`){`to`in a?d(Ko(a.to,t?.record)):window.location.assign(B8(a.href,t?.record));return}a?.kind===`update`?await o.update(e,t.key,a.values,t.etag??`*`):a?.kind===`delete`?await o.remove(e,t.key,{etag:t.etag}):await i[r.name]({resource:e,record:t?.record,recordKey:t?.key,etag:t?.etag,client:s,navigate:d}),await u(e),c.show({state:`success`,title:`${r.label}: done`}),n?.(r)};return{actions:m,blocked:h,running:f,run:async e=>{h(e)||(p(e.name),await g(e).catch(t=>c.show({state:`error`,title:`${e.label} failed`,description:q8(t)})),p(void 0))}}},Y8=(e,t,n)=>{let r=J8(e,n),i=r.actions.find(e=>e.name===t);return{action:i,blocked:i?r.blocked(i):`No action "${t}"`,running:r.running===t,run:()=>i?r.run(i):Promise.resolve()}},X8=e=>e.props,Z8=({node:e})=>{let{name:t,resource:n,label:r,variant:i}=X8(e),a=z8(),o=Y8(n??a?.model.name??``,t,n===void 0||n===a?.model.name?a:void 0),[s,c]=(0,l.useState)(!1);if(!o.action)return null;let u=r??o.action.label;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{size:`sm`,variant:i??`secondary`,loading:o.running,disabled:!!o.blocked,title:o.blocked,onClick:()=>o.action.confirm?c(!0):void o.run(),children:u}),s&&(0,I.jsx)(I8,{action:o.action,label:u,danger:i===`danger`,onCancel:()=>c(!1),onConfirm:()=>{c(!1),o.run()}})]})},Q8=({title:e,description:t,actions:n,className:r,children:i})=>(0,I.jsxs)(`section`,{className:F(`flex min-w-0 flex-col rounded-lg border border-border bg-background`,r),"aria-label":e,children:[(e||t||n)&&(0,I.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-x-4 gap-y-2 px-4 pt-4`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[e&&(0,I.jsx)(`h2`,{className:`text-[15px] font-semibold tracking-tight`,children:e}),t&&(0,I.jsx)(`p`,{className:`mt-0.5 text-[13px] text-muted-foreground`,children:t})]}),n&&(0,I.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:n})]}),(0,I.jsx)(`div`,{className:`min-w-0 flex-1 p-4 text-[13px]`,children:i})]}),$8=({children:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e}),e5=({node:e,children:t,slots:n})=>{let{title:r,description:i}=X8(e);return(0,I.jsx)(Q8,{title:r,description:i,actions:n.actions,className:`h-full`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})})},t5=({model:e,filter:t,sort:n,limit:r=12,title:i,description:a,empty:o,actions:s,children:c})=>{let l=G8(e,{filter:t,sort:n,pageSize:r}),u=l.data?.items??[];return(0,I.jsx)(Q8,{title:i,description:a,actions:s,children:l.isPending?(0,I.jsx)(`div`,{className:`flex gap-3`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(Zn,{className:`h-24 w-56`},t))}):l.error?(0,I.jsx)(w_,{title:`Could not load`,error:l.error}):u.length===0?(0,I.jsx)($8,{children:o??`Nothing here yet.`}):(0,I.jsx)(`ul`,{className:`-mx-4 flex snap-x gap-3 overflow-x-auto px-4 pb-1`,children:u.map(t=>{let n=V8(e,t);return(0,I.jsx)(`li`,{className:`flex w-60 shrink-0 snap-start flex-col gap-2 rounded-lg border border-border bg-surface p-3`,children:(0,I.jsx)(R8,{value:n,children:c})},n.key)})})})},n5=({node:e,children:t,slots:n})=>{let{resource:r,...i}=X8(e),a=G().resources[r];return a?(0,I.jsx)(t5,{...i,model:a,actions:n.actions,children:t}):null},r5=({field:e,value:t,known:n})=>{let{resources:r,views:i}=G(),a=U(),o=Zf(),s=e.relation?r[e.relation.resource]:void 0,c=String(t),l=Tm({queryKey:H.relatedLabel(s?.name??``,c),enabled:!!s&&n===void 0,queryFn:async()=>(await e_(o,a,s,[c],i[s.name])).get(c)??c});return s?(0,I.jsx)(Xg,{to:{kind:`record`,resource:s.name,key:c},className:`font-medium text-primary-text hover:underline`,children:n??l.data??c}):(0,I.jsx)(`span`,{children:c})},i5=({model:e,field:t,value:n,format:r,relationLabel:i})=>{let{views:a}=G(),o={...a[e.name]?.fields[t.name],...r&&{format:r}};if(n==null||n===``)return(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(t.type===`relation`)return(0,I.jsx)(r5,{field:t,value:n,known:i});let s=t.type===`file`?s_(n):void 0;if(s&&`url`in s&&s.url)return(0,I.jsx)(`a`,{href:s.url,target:`_blank`,rel:`noreferrer`,className:`font-medium text-primary-text hover:underline`,children:s.name});let c=h_(t,n,o);return t.type===`enum`||o.format===`badge`?(0,I.jsx)(cT,{value:n,hints:o,children:c}):(0,I.jsx)(`span`,{className:F(o.format===`code`&&`font-mono text-xs`,(t.type===`decimal`||t.type===`integer`)&&`tabular-nums`),children:c})},a5=e=>{let{views:t}=G(),n=j_(e.field,t[e.model.name]?.fields[e.field.name]),r=(0,I.jsx)(i5,{...e});return n?(0,I.jsx)(N_,{shown:n,part:`display`,field:e.field,value:e.value,fallback:r}):r},o5=(e,t,n)=>{if(!t)return[];let r=Js(e,t.model.name,n);return r.ok?r.steps:[]},s5=(e,t,n,r,i)=>({queryKey:H.pathValue(n?.model.name??``,n?.key??``,r),enabled:i.length>1,queryFn:async()=>{let r=n.record;for(let n of i.slice(0,-1)){let i=r[n.field.name];if(i==null)return null;let a=n.field.relation.resource;r=(await t.fetchQuery({queryKey:H.record(a,String(i)),queryFn:()=>e.get(a,String(i))})).record}return r[i.at(-1).field.name]??null}}),c5=(e,t,n)=>{let r=t.at(-1);return!e||!r?{state:`missing`}:t.length===1?{state:`ready`,value:e.record[r.field.name],field:r.field,model:r.model}:n.isPending?{state:`loading`}:{state:`ready`,value:n.data??null,field:r.field,model:r.model}},l5=(e,t)=>{let{resources:n}=G(),r=o5(n,e,t);return c5(e,r,Tm(s5(U(),Zf(),e,t,r)))},u5=(e,t)=>{let{resources:n}=G(),r=U(),i=Zf(),a=t.map(t=>o5(n,e,t)),o=Cm({queries:t.map((t,n)=>s5(r,i,e,t,a[n]))});return t.map((t,n)=>c5(e,a[n],o[n]))},d5=(e,t)=>{if(t)return t;let n=e.split(`.`).map(e=>W(e).toLowerCase()).join(` `);return n[0].toUpperCase()+n.slice(1)},f5=({node:e})=>{let{name:t,label:n,format:r}=X8(e),{views:i}=G(),a=l5(z8(),t);if(a.state===`missing`)return null;let o=a.state===`loading`?(0,I.jsx)(Zn,{className:`h-4 w-24`}):(0,I.jsx)(a5,{model:a.model,field:a.field,value:a.value,format:r});if(n===!1)return(0,I.jsx)(`div`,{className:`text-[13px]`,children:o});let s=n??d5(t,a.state===`ready`?i[a.model.name]?.fields[a.field.name]?.label:void 0);return(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:s}),(0,I.jsx)(`div`,{className:`mt-0.5 truncate text-[13px]`,children:o})]})},p5={1:``,2:`md:grid-cols-2`,3:`md:grid-cols-2 xl:grid-cols-3`,4:`sm:grid-cols-2 xl:grid-cols-4`},m5={1:``,2:`md:col-span-2`,3:`md:col-span-2 xl:col-span-3`,4:`sm:col-span-2 md:col-span-2 xl:col-span-4`},h5=({node:e,children:t})=>{let{columns:n=2}=X8(e),r=e.children;return(0,I.jsx)(`div`,{className:F(`grid grid-cols-1 gap-4`,p5[n]),children:t.map((e,t)=>{let n=r[t],i=typeof n==`object`?n.props.span:void 0;return(0,I.jsx)(`div`,{className:F(`min-w-0`,i&&m5[i]),children:e},t)})})},g5=`font-medium text-primary-text hover:underline`,_5=({node:e})=>{let t=X8(e),n=z8()?.record,r=e.children.filter(e=>typeof e==`string`).join(``);if(t.to){let e=Ko(t.to,n);return(0,I.jsx)(Xg,{to:e,className:g5,children:r||is(e)})}let i=t.href??``;return(0,I.jsx)(`a`,{href:i,className:g5,...i.startsWith(`http`)&&{target:`_blank`,rel:`noreferrer`},children:r||i})},v5=(e,t,n)=>Object.fromEntries(t.map(t=>{let r=e.fields[t];if(r.type===`file`)return[t,n?.record[t]??null];if(n)return[t,r.type===`boolean`?!!n.record[t]:g_(n.record[t])];let i=r.default&&`value`in r.default?r.default.value:void 0;return[t,r.type===`boolean`?!!i:g_(i)]})),y5=(e,t,n)=>Object.fromEntries(Object.entries(t).flatMap(([t,r])=>{let i=e.fields[t];return G_(r)?r.key===g_(n.record[t])?[]:[[t,i.type===`integer`?Number(r.key):r.key]]:S_(i,r,n.record[t])?[[t,y_(i,r)]]:[]})),b5=({model:e,record:t,mode:n,label:r,title:i,fields:a,values:o,onClose:s})=>{let{resources:c,views:u}=G(),d=U(),f=sh(),p=K8(),m=u[e.name],[h,g]=(0,l.useState)(()=>v5(e,a,t)),[_,v]=(0,l.useState)({}),[y,b]=(0,l.useState)(),[x,S]=(0,l.useState)(!1),C=async()=>{S(!0),b(void 0),await(n===`create`?d.create(e.name,{...Y_(e,c,h),...o}):d.update(e.name,t.key,y5(e,h,t),t.etag??`*`)).then(async()=>{await p(e.name),f.show({state:`success`,title:`${i??r}: saved`}),s()},e=>{Fs(e)&&v(Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[]))),b(e)}),S(!1)};return(0,I.jsx)(Md,{title:i??r,onClose:s,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:s,children:`Cancel`}),(0,I.jsx)(V,{variant:`primary`,loading:x,onClick:()=>void C(),children:n===`create`?`Create`:`Save`})]}),children:(0,I.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),C()},children:[y!==void 0&&Object.keys(_).length===0&&(0,I.jsx)(w_,{title:`Not saved`,error:y}),a.map(n=>{let r=e.fields[n],i=h[n],a=r.relation?c[r.relation.resource]:void 0;return(0,I.jsx)(H_,{label:m?.fields[n]?.label??W(n),help:m?.fields[n]?.help,error:_[n],children:(0,I.jsx)(I_,{field:r,hints:m?.fields[n],value:G_(i)?i.key:i,stored:t?.record[n],relationLabel:G_(i)?i.label:void 0,relationPicker:a?{target:a,view:u[a.name]}:void 0,invalid:!!_[n],resource:e.name,onChange:e=>{v(({[n]:e,...t})=>t),g(t=>({...t,[n]:e}))}})},n)})]})})},x5=({model:e,recordKey:t,children:n})=>{let r=W8(e,{key:t});return(0,I.jsx)(I.Fragment,{children:n(r.data??void 0)})},S5=({node:e})=>{let t=X8(e),n=z8(),{resources:r}=G(),i=r[t.resource??n?.model.name??``],a=Cg(i?.name??``),[o,s]=(0,l.useState)(!1);if(!i||!(t.mode===`create`?L_(a,`create`):L_(a,`update`)&&n?.permissions?.update!==!1))return null;let c=e=>(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{size:`sm`,variant:t.variant??`secondary`,disabled:t.mode===`edit`&&!e,onClick:()=>s(!0),children:t.label}),o&&(0,I.jsx)(b5,{...t,model:i,record:t.mode===`edit`?e:void 0,onClose:()=>s(!1)})]});return t.mode===`edit`&&t.recordKey!==void 0?(0,I.jsx)(x5,{model:i,recordKey:t.recordKey,children:c}):c(t.mode===`edit`?n:void 0)},C5=({node:e,children:t,slots:n})=>{let{title:r,description:i}=X8(e);return(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,I.jsxs)(`div`,{className:`mx-auto flex max-w-[1200px] flex-col gap-6 px-4 pb-16 pt-6 md:px-10 md:py-8`,children:[(0,I.jsx)(ud,{title:r,subtitle:i,actions:n.actions}),t]})})},w5=(e,t)=>{let n=z8(),r=l5(typeof e==`string`?n:void 0,typeof e==`string`?e:``);return typeof e==`number`?e:e===void 0?t:r.state===`ready`?Number(r.value):r.state===`loading`?void 0:NaN},T5=({node:e})=>{let{value:t,max:n,label:r}=X8(e),i=w5(t,0),a=w5(n,100);if(i===void 0||a===void 0)return(0,I.jsx)(Zn,{className:`h-6 w-full`});if(!Number.isFinite(i)||!Number.isFinite(a))return null;let o=a>0?Math.min(1,Math.max(0,i/a)):0;return(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 text-xs`,children:[(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:r}),(0,I.jsxs)(`span`,{className:`tabular-nums`,children:[i.toLocaleString(`en-IE`),` / `,a.toLocaleString(`en-IE`)]})]}),(0,I.jsx)(`div`,{role:`progressbar`,"aria-label":r,"aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":a,className:`mt-1.5 h-2 overflow-hidden rounded-full bg-muted`,children:(0,I.jsx)(`div`,{className:o>=.9?`h-full rounded-full bg-warning`:`h-full rounded-full bg-primary`,style:{width:`${o*100}%`}})})]})},Ane=({model:e,filter:t,sort:n,recordKey:r,title:i,description:a,empty:o,actions:s,children:c})=>{let l=W8(e,{filter:t,sort:n,key:r}),u=e=>l.data?(0,I.jsx)(R8,{value:l.data,children:e}):void 0,d=l.isPending?(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(Zn,{className:`h-4 w-1/2`}),(0,I.jsx)(Zn,{className:`h-4 w-1/3`})]}):l.error?(0,I.jsx)(w_,{title:`Could not load`,error:l.error}):l.data?u((0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:c})):(0,I.jsx)($8,{children:o??`Nothing here yet.`});return(0,I.jsx)(Q8,{title:i,description:a,actions:s?u(s):void 0,className:`h-full`,children:d})},jne=({node:e,children:t,slots:n})=>{let{resource:r,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l}=X8(e),u=G().resources[r];return u?(0,I.jsx)(Ane,{model:u,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l,actions:n.actions,children:t}):null},Mne=({node:e,children:t})=>{let{when:n}=X8(e),{resources:r}=G(),i=U(),a=z8(),o=(0,l.useMemo)(()=>Iee(n),[n]),s=o.ok?o.paths:[],c=s.map(e=>Ree(e,e=>!!(a&&Object.hasOwn(a.model.fields,e)))),u=s.filter((e,t)=>c[t]===void 0),d=u5(a,u),f=Cm({queries:c.flatMap(e=>{let t=e===void 0?void 0:r[e];return t?[H8(i,t)]:[]})});if(!o.ok||d.some(e=>e.state===`loading`)||f.some(e=>e.isPending))return null;let p={};u.forEach((e,t)=>{let n=d[t];n.state===`ready`&&(p[e]=n.value)});let m=0;return s.forEach((e,t)=>{c[t]!==void 0&&(p[e]=r[c[t]]?f[m++]?.data??0:0)}),Lee(o,p)?(0,I.jsx)(I.Fragment,{children:t}):null},E5=`text-2xl font-semibold tracking-tight tabular-nums`,Nne=({model:e,filter:t})=>{let n=U8(e,t);return n.isPending?(0,I.jsx)(Zn,{className:`h-8 w-16`}):n.error?(0,I.jsx)(`span`,{className:`text-[13px] text-danger-text`,children:`Could not count`}):(0,I.jsx)(Xg,{to:{kind:`list`,resource:e.name,filter:t},className:`${E5} hover:text-primary-text`,children:n.data.toLocaleString(`en-IE`)})},Pne=({field:e,format:t})=>{let n=l5(z8(),e);return n.state===`loading`?(0,I.jsx)(Zn,{className:`h-8 w-16`}):n.state===`missing`?null:(0,I.jsx)(`span`,{className:E5,children:(0,I.jsx)(a5,{model:n.model,field:n.field,value:n.value,format:t})})},Fne=({node:e})=>{let{label:t,value:n,resource:r,filter:i,field:a,format:o,description:s}=X8(e),{resources:c}=G(),l=r===void 0?void 0:c[r];return(0,I.jsxs)(Q8,{className:`h-full`,children:[(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:t}),(0,I.jsxs)(`div`,{className:`mt-1`,children:[n!==void 0&&(0,I.jsx)(`span`,{className:E5,children:n}),l&&(0,I.jsx)(Nne,{model:l,filter:i}),a!==void 0&&(0,I.jsx)(Pne,{field:a,format:o})]}),s&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:s})]})},Ine=(e,t,n)=>{let{resources:r,views:i}=G(),a=U(),o=Zf(),s=t.flatMap(t=>{let i=e.fields[t],a=i?.type===`relation`&&i.relation?r[i.relation.resource]:void 0;if(!a||a.primaryKey.length!==1)return[];let o=[...new Set(n.flatMap(e=>e[t]===null||e[t]===void 0?[]:[String(e[t])]))].sort();return o.length>0?[{name:t,target:a,ids:o}]:[]}),c=Cm({queries:s.map(({target:e,ids:t})=>({queryKey:H.labelMap(e.name,t.join(`,`)),queryFn:()=>e_(o,a,e,t,i[e.name])}))});return new Map(s.flatMap(({name:e},t)=>c[t]?.data?[[e,c[t].data]]:[]))},D5=e=>e.includes(`.`),Lne=e=>{let{resources:t,views:n}=G();return r=>{let i=Js(t,e.name,r),a=i.ok?i.steps.at(-1):void 0,o=a?.field.name??r;return n[a?.model.name??e.name]?.fields[o]?.label??W(o)}},Rne=({model:e,row:t,column:n})=>{let r=l5(V8(e,t),n);return r.state===`loading`?(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`…`}):r.state===`missing`?(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,I.jsx)(a5,{model:r.model,field:r.field,value:r.value})},O5=({model:e,columns:t,rows:n,label:r,pager:i})=>{let{resources:a}=G(),o=Lne(e),s=t[0]===void 0?void 0:Js(a,e.name,t[0]),c=!s?.ok||s.steps.at(-1).field.type!==`relation`,l=Ine(e,t.filter(e=>!D5(e)),n),u=(t,n)=>D5(n)?(0,I.jsx)(Rne,{model:e,row:t,column:n}):(0,I.jsx)(a5,{model:e,field:e.fields[n],value:t[n],relationLabel:l.get(n)?.get(String(t[n]))});return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{className:`-mx-4 overflow-x-auto`,children:(0,I.jsxs)(`table`,{className:`w-full min-w-max text-left text-[13px]`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsx)(`tr`,{className:`border-b text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsx)(`th`,{scope:`col`,className:`px-4 py-2 font-medium`,children:o(e)},e))})}),(0,I.jsx)(`tbody`,{children:n.map(n=>{let r=V8(e,n);return(0,I.jsx)(`tr`,{className:`border-b last:border-0 hover:bg-surface`,children:t.map((t,i)=>(0,I.jsx)(`td`,{className:`px-4 py-2`,children:i===0&&c?(0,I.jsx)(Xg,{to:{kind:`record`,resource:e.name,key:r.key},className:`font-medium text-primary-text hover:underline`,children:u(n,t)}):u(n,t)},t))},r.key)})})]})}),i&&(i.hasPrevious||i.hasNext)&&(0,I.jsxs)(`nav`,{"aria-label":`${r} pages`,className:`mt-3 flex items-center justify-end gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxs)(`span`,{children:[`Page `,i.page]}),(0,I.jsx)(V,{size:`sm`,"aria-label":`Previous page`,disabled:!i.hasPrevious||i.busy,onClick:i.previous,children:(0,I.jsx)(le,{className:`size-3.5`})}),(0,I.jsx)(V,{size:`sm`,"aria-label":`Next page`,disabled:!i.hasNext||i.busy,onClick:i.next,children:(0,I.jsx)(P,{className:`size-3.5`})})]})]})},k5=(e,t)=>t?.list?.columns??Object.keys(e.fields).filter(t=>!e.primaryKey.includes(t)&&t!==e.tenant).slice(0,5),zne=({model:e,view:t,filter:n,sort:r,columns:i,pageSize:a=10,title:o,description:s,empty:c,actions:u})=>{let d=(i??k5(e,t)).filter(t=>Object.hasOwn(e.fields,t)),[f,p]=(0,l.useState)([``]),m=G8(e,{filter:n,sort:r,pageSize:a,pageToken:f.at(-1)}),h=m.data?.items??[],g=m.data?.nextPageToken;return(0,I.jsx)(Q8,{title:o,description:s,actions:u,className:`h-full`,children:m.isPending?(0,I.jsx)(`div`,{className:`flex flex-col gap-2`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(Zn,{className:`h-4 w-full`},t))}):m.error?(0,I.jsx)(w_,{title:`Could not load`,error:m.error}):h.length===0&&f.length===1?(0,I.jsx)($8,{children:c??`Nothing here yet.`}):(0,I.jsx)(O5,{model:e,columns:d,rows:h,label:o??e.name,pager:{page:f.length,hasPrevious:f.length>1,hasNext:!!g,busy:m.isFetching,previous:()=>p(e=>e.slice(0,-1)),next:()=>g&&p(e=>[...e,g])}})})},Bne={Page:C5,Grid:h5,Card:e5,Stat:Fne,RecordCard:jne,Field:f5,Table:({node:e,slots:t})=>{let n=X8(e),{resources:r,views:i}=G(),a=r[n.resource];return a?(0,I.jsx)(zne,{...n,model:a,view:i[a.name],actions:t.actions}):null},CardRow:n5,Progress:T5,ModalForm:S5,Action:Z8,Show:Mne,Link:_5},A5=e=>typeof e==`string`||!e.custom&&e.type===`Link`,j5=e=>{let t=[];for(let n of e){let e=t.at(-1);A5(n)&&e&&A5(e[0])?e.push(n):t.push([n])}return t.map((e,t)=>{let[n]=e;return A5(n)?(0,I.jsx)(`p`,{className:`text-[13px] leading-relaxed`,children:e.map((e,t)=>typeof e==`string`?(0,I.jsx)(l.Fragment,{children:e},t):(0,I.jsx)(M5,{node:e},t))},t):(0,I.jsx)(M5,{node:n},t)})},Vne=e=>Ws(e)||Array.isArray(e)&&e.length>0&&e.every(Ws),Hne=e=>Object.fromEntries(Object.entries(e.props).flatMap(([e,t])=>Vne(t)?[[e,(0,I.jsx)(I.Fragment,{children:j5(Array.isArray(t)?t:[t])})]]:[])),M5=({node:e})=>{let{components:t}=xh();if(e.custom){let n=t?.[e.type];return n?(0,I.jsx)(Qg,{name:e.type,children:(0,I.jsx)(n,{...zo(e.props),children:e.children.length>0?j5(e.children):void 0})}):(0,I.jsxs)(Zg,{children:[`No component is registered as `,e.type,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]})}let n=Bne[e.type];return n?(0,I.jsx)(n,{node:e,slots:Hne(e),children:j5(e.children)}):(0,I.jsxs)(Zg,{children:[e.type,` is not a block this version of the app knows.`]})},Une=({name:e})=>{let t=G().pages[e];return t?(0,I.jsx)(M5,{node:t.tree}):(0,I.jsxs)(bg,{title:`Not found`,children:[`There is no page called `,e,`.`]})},N5=e=>typeof e==`string`&&e.trim()!==``,Wne=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return{problem:`its plugin.json is not an object`};let{name:t,version:n,api:r,protobase:i,entry:a,css:o}=e;return N5(t)?Number.isInteger(r)?N5(i)?N5(a)?o!==void 0&&!N5(o)?{problem:`its plugin.json names a stylesheet that is no URL`}:n!==void 0&&!N5(n)?{problem:`its plugin.json has a version that is no text`}:{manifest:{name:t,api:r,protobase:i,entry:a,...n!==void 0&&{version:n},...o!==void 0&&{css:o}}}:{problem:`its plugin.json names no module`}:{problem:`its plugin.json names no Protobase versions`}:{problem:`its plugin.json names no plugin API`}:{problem:`its plugin.json names no plugin`}},P5=class extends Error{name=`UiConflictError`},Gne=e=>Object.keys(e).some(e=>e==="default"||/^[A-Z]/.test(e))?c(e):e,F5=(e,t)=>[...(e.extends??[]).map(Gne).flatMap((e,n)=>F5(e,e.name??`${t} extends[${n}]`)),{ui:e,label:t}],I5=(e,t,n)=>{let r={},i=new Map;for(let{ui:a,label:o}of t)for(let[t,s]of Object.entries(n(a)??{})){if(Object.hasOwn(r,t)&&r[t]!==s)throw new P5(`${e} "${t}" is defined twice, by ${i.get(t)} and by ${o}; rename one of them`);r[t]=s,i.set(t,i.get(t)??o)}return r},L5=e=>e.length<=1?e[0]:()=>e.map((e,t)=>(0,I.jsx)(e,{},t)),R5=(...e)=>{let t=e.flatMap((e,t)=>F5(e,e.name??`UI config ${t+1}`)),n=I5(`The component`,t,e=>e.components),r=I5(`The action handler`,t,e=>e.actions),i=I5(`The field type`,t,e=>e.fields),a=L5(t.flatMap(({ui:e})=>e.shell?.actions?[e.shell.actions]:[])),o=L5(t.flatMap(({ui:e})=>e.shell?.rightPanel?[e.shell.rightPanel]:[])),s=e.at(-1)?.name;return{...s&&{name:s},components:n,actions:r,...Object.keys(i).length>0&&{fields:i},...(a||o)&&{shell:{...a&&{actions:a},...o&&{rightPanel:o}}}}},z5=(0,l.createContext)(null),Kne=z5.Provider,qne=()=>{let e=(0,l.useContext)(z5);if(!e)throw Error(`usePlugin is for the components of a plugin the app loaded`);return e},B5=(e,t,n)=>{let r=n=>(0,I.jsx)(Kne,{value:e,children:(0,I.jsx)(t,{...n})});return r.displayName=`${e.name}:${n}`,r},Jne=(e,t,n)=>({of:n.of,display:B5(e,n.display,`fields.${t}.display`),...n.editor&&{editor:B5(e,n.editor,`fields.${t}.editor`)},...n.cell&&{cell:B5(e,n.cell,`fields.${t}.cell`)}}),Yne=(e,t)=>{let n=R5({...c(t),name:e.name}),r=Object.fromEntries(Object.entries(n.components??{}).map(([t,n])=>[t,B5(e,n,t)])),i=n.fields&&Object.fromEntries(Object.entries(n.fields).map(([t,n])=>[t,Jne(e,t,n)])),a=n.shell&&{...n.shell.actions&&{actions:B5(e,n.shell.actions,`shell.actions`)},...n.shell.rightPanel&&{rightPanel:B5(e,n.shell.rightPanel,`shell.rightPanel`)}};return{name:e.name,components:r,...n.actions&&{actions:n.actions},...i&&{fields:i},...a&&{shell:a}}},Xne=`0.12.19`,V5={pluginApi:1}.pluginApi,H5=Xne,Zne={readJson:async e=>{let t=await fetch(e,{cache:`no-cache`,credentials:`same-origin`});return t.ok?{json:await t.json()}:{status:t.status}},addStylesheet:e=>{if([...document.querySelectorAll(`link[rel="stylesheet"]`)].some(t=>t.href===e))return;let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=e,document.head.append(t)},importModule:e=>ph(()=>import(e),[])},Qne={api:V5,version:H5},$ne=e=>e instanceof Error?e.message:String(e),ere=async(e,t,n,r=Qne)=>{let i=new URL(e.url,n).href,a=(e,t)=>({kind:`off`,url:i,...t&&{name:t},reason:e}),o;try{let n=await t.readJson(i);if(`status`in n)return a(`its plugin.json answered ${n.status}`);let s=Wne(n.json);if(`problem`in s)return a(s.problem);let{manifest:c}=s;o=c.name;let l=hs(c,r);if(l)return a(l,o);c.css&&t.addStylesheet(new URL(c.css,i).href);let u=await t.importModule(new URL(c.entry,i).href),d={name:o,...c.version&&{version:c.version},url:i,settings:e.settings??{}};return{kind:`loaded`,plugin:d,ui:Yne(d,u)}}catch(e){return a(`it could not be loaded: ${$ne(e)}`,o)}},tre=(e,t)=>{let n=R5(e??{}),r=[],i=[];for(let e of t){if(e.kind===`off`){i.push(e);continue}try{R5(...r,e.ui,n),r.push(e.ui)}catch(t){if(!(t instanceof P5))throw t;i.push({kind:`off`,url:e.plugin.url,name:e.plugin.name,reason:t.message})}}return{ui:r.length===0?n:R5(...r,n),off:i}},nre=1e4,U5=[],rre=(e,t)=>{let n=JSON.stringify(e),[r,i]=(0,l.useState)({key:`[]`,loads:U5,settled:!0});return(0,l.useEffect)(()=>{if(e.length===0)return;let r=!0,a=!1,o=e.map(()=>void 0),s=()=>{if(!r)return;let t=o.filter(e=>e!==void 0);i({key:n,loads:t,settled:a||t.length===e.length})},c=setTimeout(()=>{a=!0,s()},nre);return e.forEach((e,n)=>{ere(e,t,window.location.href).then(e=>{o[n]=e,s()})}),()=>{r=!1,clearTimeout(c)}},[n,t]),e.length===0?{loads:U5,settled:!0}:r.key===n?r:{loads:U5,settled:!1}},W5=(0,l.createContext)([]),ire=()=>(0,l.useContext)(W5),are=({ui:e,loader:t=Zne,children:n})=>{let{plugins:r=[]}=G(),{loads:i,settled:a}=rre(r,t),o=(0,l.useMemo)(()=>tre(e,i),[e,i]);return a?(0,I.jsx)(bh.Provider,{value:o.ui,children:(0,I.jsx)(W5.Provider,{value:o.off,children:n})}):(0,I.jsxs)(`div`,{className:`flex h-full min-h-48 items-center justify-center gap-2 text-[13px] text-muted-foreground`,children:[(0,I.jsx)(nr,{}),` Loading`]})},ore=({off:e})=>{let[t,n]=(0,l.useState)(!1);return t||e.length===0?null:(0,I.jsxs)(`div`,{role:`region`,"aria-label":`Plugins off`,className:`flex items-start gap-3 border-b border-warning/40 bg-warning-soft px-4 py-2 text-[13px] text-warning-text`,children:[(0,I.jsx)(Ct,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0`}),(0,I.jsx)(`ul`,{className:`min-w-0 flex-1 space-y-0.5 break-words`,children:e.map(e=>(0,I.jsxs)(`li`,{children:[`The plugin `,(0,I.jsx)(`span`,{className:`font-semibold`,children:e.name??e.url}),` is off: `,e.reason,`.`]},e.url))}),(0,I.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`rounded p-0.5 hover:bg-warning/10`,onClick:()=>n(!0),children:(0,I.jsx)(dn,{"aria-hidden":!0,className:`size-4`})})]})},sre=({rows:e})=>(0,I.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-[13px]`,children:e.map(e=>(0,I.jsxs)(`div`,{className:`contents`,children:[(0,I.jsx)(`dt`,{className:`text-muted-foreground`,children:e.label}),(0,I.jsx)(`dd`,{className:`text-right tabular-nums text-foreground`,children:e.value})]},e.label))}),cre=({records:e,onNavigate:t})=>(0,I.jsx)(`ul`,{className:`-mx-2`,children:e.map(e=>(0,I.jsx)(`li`,{children:(0,I.jsxs)(`a`,{href:e.href??`#`,onClick:n=>{n.preventDefault(),e.href&&t?.(e.href)},className:`group flex items-center justify-between gap-3 rounded-md px-2 py-2 hover:bg-muted`,children:[(0,I.jsxs)(`span`,{className:`min-w-0`,children:[(0,I.jsx)(`span`,{className:`block text-[11px] uppercase tracking-wide text-faint-foreground`,children:e.kind}),(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium text-primary-text`,children:e.label}),e.meta&&(0,I.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.meta})]}),(0,I.jsx)(P,{className:`size-4 shrink-0 text-faint-foreground group-hover:text-foreground`})]})},e.label))}),G5=({title:e,children:t})=>(0,I.jsxs)(`div`,{className:`rounded-lg border border-border bg-background p-4`,children:[(0,I.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),t]}),K5=({title:e,rows:t})=>t.length===0?null:(0,I.jsx)(G5,{title:e,children:(0,I.jsx)(sre,{rows:t})}),lre=({collection:e,title:t,status:n,lastEditedBy:r,presence:i=[],actions:a})=>(0,I.jsxs)(`header`,{className:`flex flex-col gap-4 border-b border-border pb-6 md:flex-row md:items-end md:justify-between md:gap-6`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e}),(0,I.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,I.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground md:text-2xl`,children:t}),(0,I.jsx)(zn,{tone:n.tone,children:n.label})]}),(0,I.jsx)(`p`,{className:`mt-1.5 text-xs text-muted-foreground`,children:r.name?(0,I.jsxs)(I.Fragment,{children:[`Last edited by `,(0,I.jsx)(`span`,{className:`font-medium text-foreground`,children:r.name}),` `,r.ago]}):(0,I.jsxs)(I.Fragment,{children:[`Last updated `,r.ago]})})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-4`,children:[i.length>0&&(0,I.jsxs)(`span`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsx)(jn,{people:i,size:`md`}),i.length,` viewing`]}),a]})]}),q5=(e,t)=>[`${t}_at`,`${t}At`].find(t=>e.fields[t]),J5=({item:e,scope:t})=>{let{components:n}=xh(),r=n?.[e.component],i=r?(0,I.jsx)(R8,{value:t,children:(0,I.jsx)(Qg,{name:e.component,children:(0,I.jsx)(r,{...zo(e.props??{})})})}):(0,I.jsxs)(Zg,{children:[`No component is registered as `,e.component,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]});return e.sidebar?e.title?(0,I.jsx)(G5,{title:e.title,children:i}):i:e.title?(0,I.jsx)(U_,{title:e.title,children:i}):(0,I.jsx)(`section`,{className:`py-8`,children:i})},Y5=e=>{if(typeof e==`number`)return e;if(typeof e==`string`&&e.trim()!==``)return Number(e)},ure=(e,t)=>{let n=Y5(e[t.latitude]),r=Y5(e[t.longitude]);if(n!==void 0&&r!==void 0&&Math.abs(n)<=90&&Math.abs(r)<=180)return{latitude:n,longitude:r}},dre=(0,l.lazy)(()=>ph(()=>import(`./record-map-2lnuZ7x0.js`).then(e=>({default:e.RecordMap})),__vite__mapDeps([0,1,2,3,4,5]))),fre=15,X5=({item:e,record:t})=>{let n=G().maps?.style,r=ure(t,e);if(!n||!r)return null;let i=(0,I.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-muted ${e.sidebar?`h-48`:`h-64 md:h-80`}`,children:(0,I.jsx)(l.Suspense,{fallback:null,children:(0,I.jsx)(dre,{style:n,position:r,zoom:e.zoom??fre},`${r.latitude},${r.longitude}`)})});return e.sidebar?(0,I.jsx)(G5,{title:e.title,children:i}):(0,I.jsx)(U_,{title:e.title,children:i})},pre=({actions:e})=>(0,I.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background`,children:[(0,I.jsx)(`h3`,{className:`hidden border-b border-border px-4 py-2.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground md:block`,children:`Actions`}),(0,I.jsx)(`ul`,{className:`flex flex-wrap gap-2 p-2 md:block md:divide-y md:divide-border md:p-0`,children:e.map(({name:e,description:t,icon:n,onRun:r,blocked:i,running:a})=>(0,I.jsx)(`li`,{children:(0,I.jsxs)(`button`,{type:`button`,onClick:r,disabled:!!i||a,title:i,className:`flex min-h-11 items-center gap-2 rounded-md border border-border-strong px-3 text-left hover:bg-surface disabled:cursor-default disabled:opacity-60 md:min-h-0 md:w-full md:items-start md:gap-3 md:rounded-none md:border-0 md:px-4 md:py-3`,children:[(0,I.jsx)(n,{className:`size-4 shrink-0 text-muted-foreground md:mt-0.5`}),(0,I.jsxs)(`span`,{children:[(0,I.jsx)(`span`,{className:`block text-[13px] font-medium text-foreground`,children:e}),t&&(0,I.jsx)(`span`,{className:`mt-0.5 hidden text-xs leading-snug text-muted-foreground md:block`,children:t})]})]})},e))})]}),mre=e=>sT(e)??pn,hre=({model:e,stored:t,recordKey:n})=>{let{go:r}=Yg(),i={model:e,record:t.record,key:n,etag:t.etag,permissions:t.permissions},a=J8(e.name,i,t=>t.run?.kind===`delete`&&r({kind:`list`,resource:e.name},{replace:!0})),[o,s]=(0,l.useState)();return a.actions.length===0?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(pre,{actions:a.actions.map(e=>({name:e.label,icon:mre(e.icon),blocked:a.blocked(e),running:a.running===e.name,onRun:()=>e.confirm?s(e):void a.run(e)}))}),o&&(0,I.jsx)(I8,{action:o,label:o.label,danger:o.run?.kind===`delete`,onCancel:()=>s(void 0),onConfirm:()=>{s(void 0),a.run(o)}})]})},Z5=[[`M8 hex bolt A2, 100 pcs`,`FST`,1890],[`M10 hex nut A2, 100 pcs`,`FST`,1240],[`Stainless washer 8 mm, 250 pcs`,`FST`,990],[`Cable tie 300 mm, 100 pcs`,`ELC`,650],[`Cable gland M20, 25 pcs`,`ELC`,2340],[`Junction box IP65`,`ELC`,1480],[`Hydraulic hose 1/2 in, 5 m`,`HYD`,8650],[`Hydraulic coupling 3/8 in`,`HYD`,1895],[`Pallet wrap 500 mm`,`PKG`,740],[`Corrugated box 400 x 300`,`PKG`,215],[`Bubble wrap roll 50 m`,`PKG`,1990],[`Safety gloves, size L`,`PPE`,395],[`Safety glasses, clear`,`PPE`,450],[`Ear defenders SNR 31`,`PPE`,1295],[`Ball bearing 6204-2RS`,`BRG`,685],[`Taper roller bearing 30205`,`BRG`,1420],[`Timing belt HTD 5M, 600 mm`,`BLT`,2780],[`V-belt SPA 1250`,`BLT`,1360],[`Grease cartridge, 400 g`,`LUB`,920],[`Machine oil ISO 68, 5 l`,`LUB`,3950],[`Angle grinder disc 125 mm, 10 pcs`,`ABR`,1880],[`Drill bit set HSS, 19 pcs`,`TLS`,3490],[`Torque wrench 20-100 Nm`,`TLS`,14900],[`Pneumatic cylinder 40 x 100`,`PNE`,6120],[`Air hose PU 8 mm, 20 m`,`PNE`,2475],[`LED panel 600 x 600, 40 W`,`LGT`,3290],[`Pallet label roll 100 x 150`,`LBL`,1175],[`Thermal printer ribbon`,`LBL`,890],[`Euro pallet EPAL, used`,`PLT`,1150],[`Roll container, galvanised`,`PLT`,9800]];Z5.length;var gre=e=>{let[t,n,r]=Z5[e%Z5.length],i=e%Z5.length;return{id:`P-${200+i}`,sku:`${n}-${String(1e3+i*7).padStart(4,`0`)}`,name:t,category:n,priceCents:r}},Q5=`grid grid-cols-[28px_minmax(0,1fr)_88px_112px_112px_32px] items-center gap-2 pointer-coarse:grid-cols-[44px_minmax(0,1fr)_88px_112px_112px_44px]`,$5=e=>e.quantity*e.unitPriceCents,_re=(e,t=.21)=>{let n=e.reduce((e,t)=>e+$5(t),0),r=Math.round(n*t);return{subtotalCents:n,vatCents:r,totalCents:n+r}},vre=({items:e,label:t})=>{let[n,r]=(0,l.useState)(!1),i=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!n)return;let e=e=>{(e instanceof KeyboardEvent?e.key===`Escape`:!i.current?.contains(e.target))&&r(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,e)}},[n]),(0,I.jsxs)(`div`,{ref:i,className:`relative flex justify-center`,children:[(0,I.jsx)(`button`,{type:`button`,"aria-label":t,"aria-haspopup":`menu`,"aria-expanded":n,onClick:()=>r(!n),className:`inline-flex size-7 items-center justify-center rounded text-faint-foreground hover:bg-muted hover:text-foreground pointer-coarse:size-11`,children:(0,I.jsx)(Me,{className:`size-4`})}),n&&(0,I.jsx)(`ul`,{role:`menu`,className:`absolute right-0 top-full z-30 mt-1 min-w-36 rounded-md border bg-background py-1 text-[13px] shadow-pop`,children:e.map(e=>(0,I.jsx)(`li`,{role:`none`,children:(0,I.jsx)(`button`,{type:`button`,role:`menuitem`,disabled:e.disabled,className:F(`block min-h-9 w-full whitespace-nowrap px-3 py-1.5 text-left hover:bg-muted disabled:text-faint-foreground disabled:hover:bg-transparent`,e.destructive&&`text-danger-text`),onClick:()=>{r(!1),e.onSelect()},children:e.label})},e.label))})]})},e7=({value:e,onCommit:t,format:n,parse:r,label:i,width:a=`w-full`})=>{let[o,s]=(0,l.useState)(null);return(0,I.jsx)(`input`,{"aria-label":i,inputMode:`decimal`,value:o??n(e),onFocus:e=>e.currentTarget.select(),onChange:e=>s(e.target.value),onBlur:()=>{if(o===null)return;let e=r(o);s(null),Number.isFinite(e)&&e>=0&&t(e)},onKeyDown:e=>e.key===`Enter`&&e.currentTarget.blur(),className:F(`h-7 rounded-md border border-transparent bg-transparent px-2 text-right text-[13px] tabular-nums text-foreground outline-none hover:border-border-strong focus:border-primary focus:bg-background focus:ring-2 focus:ring-primary/20`,a)})};function yre(){var e=[...arguments];return(0,l.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var t7=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function n7(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function r7(e){return`nodeType`in e}function i7(e){return e?n7(e)?e:r7(e)?e.ownerDocument?.defaultView??window:window:window}function a7(e){let{Document:t}=i7(e);return e instanceof t}function o7(e){return!n7(e)&&e instanceof i7(e).HTMLElement}function s7(e){return e instanceof i7(e).SVGElement}function c7(e){return e?n7(e)?e.document:r7(e)?a7(e)?e:o7(e)||s7(e)?e.ownerDocument:document:document:document}var l7=t7?l.useLayoutEffect:l.useEffect;function u7(e){let t=(0,l.useRef)(e);return l7(()=>{t.current=e}),(0,l.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function bre(){let e=(0,l.useRef)(null);return[(0,l.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,l.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function d7(e,t){t===void 0&&(t=[e]);let n=(0,l.useRef)(e);return l7(()=>{n.current!==e&&(n.current=e)},t),n}function f7(e,t){let n=(0,l.useRef)();return(0,l.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function p7(e){let t=u7(e),n=(0,l.useRef)(null);return[n,(0,l.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function m7(e){let t=(0,l.useRef)();return(0,l.useEffect)(()=>{t.current=e},[e]),t.current}var h7={};function g7(e,t){return(0,l.useMemo)(()=>{if(t)return t;let n=h7[e]==null?0:h7[e]+1;return h7[e]=n,e+`-`+n},[e,t])}function _7(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var v7=_7(1),y7=_7(-1);function xre(e){return`clientX`in e&&`clientY`in e}function b7(e){if(!e)return!1;let{KeyboardEvent:t}=i7(e.target);return t&&e instanceof t}function Sre(e){if(!e)return!1;let{TouchEvent:t}=i7(e.target);return t&&e instanceof t}function x7(e){if(Sre(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return xre(e)?{x:e.clientX,y:e.clientY}:null}var S7=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[S7.Translate.toString(e),S7.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),C7=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Cre(e){return e.matches(C7)?e:e.querySelector(C7)}var wre={display:`none`};function Tre(e){let{id:t,value:n}=e;return l.createElement(`div`,{id:t,style:wre},n)}function Ere(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return l.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Dre(){let[e,t]=(0,l.useState)(``);return{announce:(0,l.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var w7=(0,l.createContext)(null);function Ore(e){let t=(0,l.useContext)(w7);(0,l.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function kre(){let[e]=(0,l.useState)(()=>new Set),t=(0,l.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,l.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Are={draggable:`
|
|
62
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){if(e){if(typeof e==`string`)return D6(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?D6(e,t):void 0}}function D6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function O6(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function k6(e){if(Array.isArray(e))return e}var A6=()=>(oX(),null);function j6(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var M6=(0,l.forwardRef)((e,t)=>{var n=(0,l.useRef)(null),r=w6((0,l.useState)({containerWidth:j6(e.style?.width),containerHeight:j6(e.style?.height)}),2),i=r[0],a=r[1],o=(0,l.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,l.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,l.useEffect)(()=>()=>{n.current?.disconnect()},[o]),l.createElement(l.Fragment,null,l.createElement(KN,{width:i.containerWidth,height:i.containerHeight}),l.createElement(`div`,C6({ref:s},e)))}),N6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=w6((0,l.useState)({containerWidth:j6(n),containerHeight:j6(r)}),2),a=i[0],o=i[1],s=(0,l.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,l.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return l.createElement(l.Fragment,null,l.createElement(KN,{width:a.containerWidth,height:a.containerHeight}),l.createElement(`div`,C6({ref:c},e)))}),P6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(`div`,C6({ref:t},e)))}),F6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?l.createElement(N6,C6({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?l.createElement(P6,C6({},e,{width:n,height:r,ref:t})):l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(`div`,C6({ref:t},e)))});function I6(e){return e?M6:F6}var L6=(0,l.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,s=e.onDoubleClick,c=e.onMouseDown,u=e.onMouseEnter,d=e.onMouseLeave,f=e.onMouseMove,p=e.onMouseUp,m=e.onTouchEnd,h=e.onTouchMove,g=e.onTouchStart,_=e.style,v=e.width,y=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,l.useRef)(null),C=rk(),w=w6((0,l.useState)(null),2),T=w[0],E=w[1],D=w6((0,l.useState)(null),2),O=D[0],k=D[1],A=_6(),j=NN(),M=j?.width>0?j.width:v,N=j?.height>0?j.height:i,ee=(0,l.useCallback)(e=>{A(e),typeof t==`function`&&t(e),E(e),k(e),e!=null&&(S.current=e)},[A,t,E,k]),te=(0,l.useCallback)(e=>{C(u3(e)),C(M3({handler:a,reactEvent:e}))},[C,a]),ne=(0,l.useCallback)(e=>{C(f3(e)),C(M3({handler:u,reactEvent:e}))},[C,u]),re=(0,l.useCallback)(e=>{C(gq()),C(M3({handler:d,reactEvent:e}))},[C,d]),ie=(0,l.useCallback)(e=>{C(f3(e)),C(M3({handler:f,reactEvent:e}))},[C,f]),ae=(0,l.useCallback)(()=>{C(T3())},[C]),oe=(0,l.useCallback)(()=>{C(E3())},[C]),se=(0,l.useCallback)(e=>{C(w3(e.key))},[C]),ce=(0,l.useCallback)(e=>{C(M3({handler:o,reactEvent:e}))},[C,o]),le=(0,l.useCallback)(e=>{C(M3({handler:s,reactEvent:e}))},[C,s]),ue=(0,l.useCallback)(e=>{C(M3({handler:c,reactEvent:e}))},[C,c]),P=(0,l.useCallback)(e=>{C(M3({handler:p,reactEvent:e}))},[C,p]),de=(0,l.useCallback)(e=>{C(M3({handler:g,reactEvent:e}))},[C,g]),fe=(0,l.useCallback)(e=>{x&&C(R3(e)),C(M3({handler:h,reactEvent:e}))},[C,x,h]),pe=(0,l.useCallback)(e=>{C(M3({handler:m,reactEvent:e}))},[C,m]),me=I6(y);return l.createElement(PY.Provider,{value:T},l.createElement(YE.Provider,{value:O},l.createElement(me,{width:M??_?.width,height:N??_?.height,className:JT(`recharts-wrapper`,r),style:y6({position:`relative`,cursor:`default`,width:M,height:N},_),onClick:te,onContextMenu:ce,onDoubleClick:le,onFocus:ae,onBlur:oe,onKeyDown:se,onMouseDown:ue,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:P,onTouchEnd:pe,onTouchMove:fe,onTouchStart:de,ref:ee},l.createElement(A6,null),n)))}),R6=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function z6(e,t){if(e==null)return{};var n,r,i=B6(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function B6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var V6=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,u=e.title,d=e.desc,f=eE(z6(e,R6));return c?l.createElement(l.Fragment,null,l.createElement(KN,{width:n,height:r}),l.createElement(u6,{otherAttributes:f,title:u,desc:d},a)):l.createElement(L6,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},l.createElement(u6,{otherAttributes:f,title:u,desc:d,ref:t},l.createElement(P1,null,a)))});function H6(){return H6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},H6.apply(null,arguments)}function U6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?U6(Object(n),!0).forEach(function(t){G6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function G6(e,t,n){return(t=K6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function K6(e){var t=q6(e,`string`);return typeof t==`symbol`?t:t+``}function q6(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var J6=W6({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},W3),Y6=(0,l.forwardRef)(function(e,t){var n=iO(e.categoricalChartProps,J6),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return l.createElement(X3,{preloadedState:{options:c},reduxStoreName:s.id??r},l.createElement(v1,{chartData:s.data}),l.createElement(Q3,{layout:n.layout,margin:n.margin}),l.createElement(e6,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),l.createElement($3,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),l.createElement(V6,H6({},n,{ref:t})))}),X6=[`axis`,`item`],Z6=(0,l.forwardRef)((e,t)=>l.createElement(Y6,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:X6,tooltipPayloadSearcher:BY,categoricalChartProps:e,ref:t})),Q6={fontSize:11,fill:`var(--muted-foreground)`},$6=({title:e=`Orders created`,noun:t=`orders`,defaultGranularity:n=`day`,data:r,granularity:i,onGranularityChange:a,periodLabel:o,className:s})=>{let[c,u]=(0,l.useState)(n),d=i??c,f=a??u,p=r??UT(d),m=_n(`(min-width: 640px)`),h=GT(p);return(0,I.jsxs)(`section`,{className:F(`rounded-lg border bg-background px-4 pb-2 pt-3`,s),children:[(0,I.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,I.jsx)(`h2`,{className:`text-[13px] font-semibold`,children:e}),(0,I.jsx)(`span`,{className:`text-[13px] font-semibold tabular-nums`,children:dv(WT(p))}),(0,I.jsxs)(`span`,{className:F(`text-xs font-medium tabular-nums`,h>=0?`text-success-text`:`text-danger-text`),children:[h>=0?`+`:`−`,Math.abs(h).toFixed(1),`%`]}),(0,I.jsx)(`span`,{className:`hidden text-xs text-muted-foreground sm:inline`,children:o??`last ${d===`day`?`30 days`:`12 weeks`}`})]}),(0,I.jsx)(kT,{value:d,onChange:f,options:[{value:`day`,label:`Day`},{value:`week`,label:`Week`}]})]}),(0,I.jsx)(`div`,{className:`mt-2 h-24`,children:(0,I.jsx)(FN,{width:`100%`,height:`100%`,children:(0,I.jsxs)(Z6,{data:p,margin:{top:4,right:0,bottom:0,left:0},barCategoryGap:d===`day`?`22%`:`30%`,children:[(0,I.jsx)(r2,{vertical:!1,stroke:`var(--border)`}),(0,I.jsx)(G4,{dataKey:`at`,padding:{left:4,right:m?4:18},tickFormatter:Td,tick:Q6,axisLine:!1,tickLine:!1,interval:d===`day`?m?4:9:m?1:3,height:18}),(0,I.jsx)(o3,{width:m?36:28,tick:Q6,axisLine:!1,tickLine:!1,tickCount:3}),(0,I.jsx)(CX,{cursor:{fill:`var(--muted)`},content:(0,I.jsx)(KT,{noun:t}),isAnimationActive:!1}),(0,I.jsx)(w4,{dataKey:`count`,fill:`var(--primary)`,radius:[2,2,0,0],isAnimationActive:!1})]})})})]})},e8={"7d":`last 7 days`,"30d":`last 30 days`,"90d":`last 90 days`,"1y":`last year`,all:`all time`},t8=({resource:e,chart:t,title:n,noun:r,filter:i})=>{let[a,o]=(0,l.useState)(t.granularity===`week`?`week`:`day`),s=a===`week`?`90d`:t.range,c=IT(e,{field:t.field,range:s,granularity:a,filter:i}).data?.points.map(e=>({at:Date.parse(`${e.bucket}Z`),count:e.count}))??[];return(0,I.jsx)($6,{title:n,noun:r,data:c,granularity:a,onGranularityChange:o,periodLabel:a===`week`?`last 12 weeks`:e8[s]})},n8=({value:e,onCommit:t,placeholder:n,className:r})=>{let[i,a]=(0,l.useState)(e);return(0,l.useEffect)(()=>a(e),[e]),(0,l.useEffect)(()=>{if(i===e)return;let n=setTimeout(()=>t(i),350);return()=>clearTimeout(n)},[i,e,t]),(0,I.jsx)(er,{wrapperClassName:F(`min-w-0 flex-1 sm:w-72 sm:flex-initial`,r),leading:(0,I.jsx)(kt,{className:`size-4`}),placeholder:n,"aria-label":`Search`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>e.key===`Enter`&&t(i)})},r8=(e,t,n,r)=>e.map(e=>{let i=t.fields[e.id],a=i&&A_(r,i,n?.fields[e.id]);return a?{...e,render:t=>(0,I.jsx)(N_,{shown:a,part:`cell`,field:i,value:t[e.id],fallback:bv(e,e.value?e.value(t):t[e.id])})}:e}),i8=Io(),a8=e=>e.find(e=>e.kind===`search`),o8=({address:e})=>{let{resources:t}=G(),n=t[e.resource];return n?(0,I.jsx)(s8,{model:n,address:e}):(0,I.jsxs)(bg,{title:`Not found`,children:[`There is no resource called `,e.resource,`.`]})},s8=({model:e,address:t})=>{let n=G(),{set:r,go:i}=Yg(),a=e.name,o=n.views[a],s=(0,l.useMemo)(()=>Bw(o,e),[o,e]),{fields:c}=xh(),u=(0,l.useMemo)(()=>r8(_w(e,o),e,o,c),[e,o,c]),d=t.filter,f=(0,l.useMemo)(()=>Fw(s,d),[s,d]),p=f.ok?f.state:RC,m=f.ok?f.extras:[],{orderBy:h,filterLayout:g}=t,_=vn(),[v,y]=(0,l.useState)(!1),b=qw({model:e,resources:n.resources,views:n.views,view:o,state:p,extras:m}),x=(0,l.useMemo)(()=>zg(e,o,u.map(e=>e.id)),[e,o,u]),S=Xw({resources:n.resources,views:n.views,model:e,columns:x,filter:f.ok?d:``,orderBy:h}),C=Pg(o,t.display),w=PT(e,S.page,S.key,C!==void 0),T=$m(e,o),E=e=>({key:e.id,title:String(typeof e[T]==`object`?e[T].name:e[T]??e.id),etag:typeof e.etag==`string`?e.etag:void 0,snapshot:e}),D=o?.names?.singular??W(a),O=Cg(a),{state:k}=B(),A=iT({model:e,view:o,restore:aT(e),onReview:e=>i({kind:`record`,resource:a,key:e.key})}),j=(e,t=m)=>r({filter:Ow(s,e,t)}),M=a8(m),N=e=>{let t=m.filter(e=>e.kind!==`search`);j(p,e?[...t,i8.search(e)]:t)},ee=o?.names?.plural??W(a),te=C&&(0,I.jsx)(NT,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e})}),ne=e.search?.length?(0,I.jsx)(n8,{value:M?.kind===`search`?M.text:``,onCommit:N,placeholder:`Search ${ee.toLowerCase()}`,className:_?void 0:`min-h-11`}):null,re=(0,I.jsx)(sw,{layout:g,config:b,value:p,onChange:j,leading:g===`bar`?te:void 0,trailing:ne}),ie=g===`bar`?re:(0,I.jsx)(JC,{groups:[te?[te]:[]],trailing:ne}),ae=UC(b,p),oe=(0,I.jsx)(FC,{scroll:!0,chips:ae,onRemove:e=>j(WC(p,e)),onClear:()=>j(RC)}),se=C&&(0,I.jsx)(KC,{title:`Sort`,children:(0,I.jsx)(NT,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e}),className:`min-h-11 w-full`})}),ce=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(V,{className:`min-h-11`,onClick:()=>y(!0),"aria-haspopup":`dialog`,children:[(0,I.jsx)(Vt,{className:`size-3.5`}),`Filters`,ae.length>0&&` (${ae.length})`]}),ne??(0,I.jsx)(`div`,{className:`min-w-0 flex-1`,children:oe})]}),ne&&oe,(0,I.jsx)(Zw,{title:`Filters`,open:v,onClose:()=>y(!1),children:(0,I.jsx)(sw,{layout:`panel`,fullWidth:!0,config:b,value:p,onChange:j,leading:se})})]}),le=L_(O,`create`)&&(0,I.jsxs)(V,{variant:`primary`,onClick:()=>i({kind:`create`,resource:a}),children:[(0,I.jsx)(xt,{className:`size-3.5`}),`New `,D.toLowerCase()]}),ue=e=>(0,I.jsx)(jT,{view:o,value:C?.name??`table`,onChange:e=>r({display:e}),menu:e}),P=t=>i({kind:`record`,resource:a,key:th(e,t)}),de=S.source?(0,I.jsx)(NC,{columns:u,source:S.source,sort:Wg(h),onSortChange:e=>r({orderBy:Gg(e)}),onOpenRow:P,rowActions:[{label:`Open ${D.toLowerCase()}`,onSelect:P},...L_(O,`delete`)?[{label:`Delete`,destructive:!0,available:e=>R_(e,`delete`),onSelect:e=>void A.start(E(e))}]:[]],bulkActions:L_(O,`delete`)?[{label:e=>`Delete ${e}`,destructive:!0,onRun:e=>A.startBulk(e.map(E))}]:[],rowNumbers:!1,pinKey:k.kind===`signed-in`?iv(k.user.id,a):void 0,className:`min-h-0 flex-1`}):(0,I.jsx)(`div`,{className:`flex-1 rounded-lg border bg-surface`}),fe=C?C.kind===`cards`?(0,I.jsx)(bT,{model:e,view:o,display:C,list:w}):(0,I.jsx)(TT,{display:C,list:w}):de;return(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 px-5 py-4`,children:[A.dialogs,(0,I.jsx)(ud,{title:ee,subtitle:o?.help,aside:!_&&ue(!0),actions:_?(0,I.jsxs)(I.Fragment,{children:[ue(!1),le]}):le}),!f.ok&&(0,I.jsx)(w_,{title:`The filter in the address could not be read`,error:Error(f.errors.map(e=>e.message).join(`; `))}),S.error&&!C&&(0,I.jsx)(w_,{title:`Could not load rows`,error:S.error}),o?.chart&&(0,I.jsx)(t8,{resource:a,chart:o.chart,title:`${ee} created`,noun:ee.toLowerCase(),filter:f.ok?d:``}),_?ie:ce,_&&g===`panel`?(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[re,fe]}):fe]})},c8=({roles:e,selected:t,grantable:n,disabled:r,onChange:i})=>(0,I.jsx)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-2`,children:e.filter(e=>e.membership).map(e=>{let a=t.includes(e.name),o=r||!n.has(e.name);return(0,I.jsxs)(`label`,{title:o&&!r?`You cannot give or take away this role`:void 0,className:F(`inline-flex items-center gap-1.5 text-[13px]`,o&&`text-muted-foreground`),children:[(0,I.jsx)(Km,{checked:a,label:e.label,onChange:o?void 0:n=>i(n?[...t,e.name]:t.filter(t=>t!==e.name)),className:F(o&&`cursor-default opacity-60`)}),e.label]},e.name)})}),l8=e=>e?.role===`owner`?[`owner`,`admin`,`member`]:[`admin`,`member`],u8=({member:e,current:t,onChanged:n})=>{let{session:r,organizations:i}=B(),a=t.organization.id,{busy:o,error:s,run:c}=qm(),l=i?.roles??[],u=e.id===t.memberId,d=l8(t),f=e.role===`owner`&&t.role!==`owner`;return(0,I.jsxs)(`li`,{className:`flex flex-col gap-2 px-3 py-3`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`span`,{className:`block truncate text-[13px] font-medium`,children:[e.name,u&&` (you)`]}),(0,I.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.email})]}),(0,I.jsx)(`select`,{"aria-label":`Organization role of ${e.name}`,value:e.role,disabled:o||f,onChange:t=>void c(async()=>{await r.organizations.setRole(a,e.id,t.target.value),n()}),className:`h-7 rounded-md border border-border-strong bg-background px-2 text-xs`,children:(f?[e.role]:d).map(e=>(0,I.jsx)(`option`,{value:e,children:Lm[e]},e))}),!u&&(0,I.jsx)(V,{size:`sm`,variant:`danger`,loading:o,disabled:f,onClick:()=>void c(async()=>{await r.organizations.removeMember(a,e.id),n()}),children:`Remove`})]}),(0,I.jsx)(c8,{roles:l,selected:e.appRoles,grantable:Bm(l,t),disabled:o,onChange:t=>void c(async()=>{await r.organizations.setAppRoles(e.id,t),n()})}),(0,I.jsx)(Pd,{message:s})]})},d8=({current:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(),[i,a]=(0,l.useState)(),o=e?.organization?.id,s=(0,l.useCallback)(()=>{o&&t.organizations.members(o).then(r,e=>a(e instanceof Zs?hd(e):`Could not read the members`))},[t,o]);return(0,l.useEffect)(s,[s]),e?.organization?(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Members`,subtitle:`Who works in ${e.organization.name}, and with which roles.`}),(0,I.jsxs)(Nd,{title:`Members`,description:`Owners and admins manage the organization; app roles decide what each member sees and does in the app.`,children:[(0,I.jsx)(Pd,{message:i}),n?(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(t=>(0,I.jsx)(u8,{member:t,current:e,onChanged:s},`${t.id}/${t.role}/${t.appRoles.join()}`))}):!i&&(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-[13px] text-muted-foreground`,children:[(0,I.jsx)(nr,{}),` Loading`]})]})]}):null},f8=({link:e})=>e?(0,I.jsxs)(`p`,{className:`mt-3 break-all rounded-md border bg-muted px-3 py-2 text-xs`,children:[`This app cannot send email, so pass this link on yourself. It works once, until the invitation expires: `,(0,I.jsx)(`span`,{className:`font-mono`,children:e})]}):null,p8=({current:e,onSent:t})=>{let{session:n,organizations:r}=B(),i=r?.roles??[],[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(`member`),[u,d]=(0,l.useState)([]),[f,p]=(0,l.useState)(),{busy:m,error:h,run:g}=qm(),_=()=>g(async()=>{let r=await n.organizations.invite(e.organization.id,{email:a.trim(),role:s,appRoles:u});p(r.link),o(``),d([]),t()});return(0,I.jsxs)(Nd,{title:`Invite someone`,description:`They get an email with a link to join, or to make an account first. You can give the app roles you hold, and those your roles grant.`,children:[(0,I.jsx)(Pd,{message:h}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>{e.preventDefault(),_()},children:[(0,I.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,I.jsx)(er,{"aria-label":`Email`,type:`email`,placeholder:`name@example.com`,value:a,onChange:e=>o(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(`select`,{"aria-label":`Organization role`,value:s,onChange:e=>c(e.target.value),className:`h-8 rounded-md border border-border-strong bg-background px-2 text-[13px]`,children:l8(e).map(e=>(0,I.jsx)(`option`,{value:e,children:Lm[e]},e))}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:m,disabled:!a.trim(),children:`Invite`})]}),(0,I.jsx)(c8,{roles:i,selected:u,grantable:Bm(i,e),onChange:d})]}),(0,I.jsx)(f8,{link:f})]})},m8=({invitation:e,organizationId:t,onChanged:n})=>{let{session:r,organizations:i}=B(),[a,o]=(0,l.useState)(),{busy:s,error:c,run:u}=qm(),d=new Date(e.expiresAt).getTime()<Date.now();return(0,I.jsxs)(`li`,{className:`px-3 py-2.5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium`,children:e.email}),(0,I.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[Lm[e.role],e.appRoles.length>0&&` · ${e.appRoles.map(e=>Rm(i?.roles??[],e)).join(`, `)}`,` · `,d?`Expired`:`Until ${new Date(e.expiresAt).toLocaleDateString()}`]})]}),(0,I.jsx)(V,{size:`sm`,loading:s,onClick:()=>void u(async()=>{o((await r.organizations.resend(t,e)).link),n()}),children:`Send again`}),(0,I.jsx)(V,{size:`sm`,variant:`danger`,loading:s,onClick:()=>void u(async()=>{await r.organizations.revoke(e.id),n()}),children:`Revoke`})]}),(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(f8,{link:a})]})},h8=({current:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)([]),i=e?.organization?.id,a=(0,l.useCallback)(()=>{i&&t.organizations.invitations(i).then(e=>r(e.filter(e=>e.status===`pending`)),()=>r([]))},[t,i]);return(0,l.useEffect)(a,[a]),!e?.organization||!i?null:(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Invitations`,subtitle:`People invited to ${e.organization.name}.`}),(0,I.jsx)(p8,{current:e,onSent:a}),(0,I.jsx)(Nd,{title:`Not accepted yet`,description:n.length>0?`Sending again gives a new link, which replaces the earlier one.`:`Nobody is waiting.`,children:n.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(e=>(0,I.jsx)(m8,{invitation:e,organizationId:i,onChanged:a},e.id))})})]})},g8=e=>{let{session:t}=B(),[n,r]=(0,l.useState)(),[i,a]=(0,l.useState)([]),[o,s]=(0,l.useState)(),[c,u]=(0,l.useState)(0),d=(0,l.useCallback)(()=>u(e=>e+1),[]);return(0,l.useEffect)(()=>{e&&Promise.all([t.organizations.current(),t.organizations.list()]).then(([e,t])=>{r(e),a(t)},e=>s(e instanceof Zs?hd(e):`Could not read your organizations`))},[e,t,c]),{current:n,organizations:i,...o&&{error:o},reload:d}},_8=e=>window.location.assign(`${e}/`),v8=({organization:e,editable:t,onSaved:n})=>{let{session:r}=B(),[i,a]=(0,l.useState)(e.name),[o,s]=(0,l.useState)(e.slug),{busy:c,error:u,run:d}=qm(),f=i.trim()!==e.name||o!==e.slug;return(0,I.jsxs)(Nd,{title:`Details`,description:t?`The name people see, and the slug that names it in links.`:`Owners and admins can change these.`,children:[(0,I.jsx)(Pd,{message:u}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:t=>{t.preventDefault(),d(async()=>{await r.organizations.rename(e.id,{name:i.trim(),slug:o}),n()})},children:[(0,I.jsx)(er,{"aria-label":`Name`,value:i,disabled:!t,onChange:e=>a(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(er,{"aria-label":`Slug`,value:o,disabled:!t,onChange:e=>s(e.target.value),wrapperClassName:`sm:w-48`}),t&&(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:c,disabled:!f||!i.trim(),children:`Save`})]})]})},y8=({organization:e,memberId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=qm();return(0,l.useEffect)(()=>{n.organizations.members(e.id).then(e=>i(e.filter(e=>e.id!==t)),()=>i([]))},[n,e.id,t]),(0,I.jsxs)(Nd,{title:`Hand over`,description:`Make another member the owner. You stay as an admin.`,children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:[(0,I.jsxs)(`select`,{"aria-label":`New owner`,value:a,onChange:e=>o(e.target.value),className:`h-8 flex-1 rounded-md border border-border-strong bg-background px-2 text-[13px]`,children:[(0,I.jsx)(`option`,{value:``,children:`Choose a member`}),r.map(e=>(0,I.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.email,`)`]},e.id))]}),(0,I.jsx)(V,{loading:s,disabled:!a,onClick:()=>void u(async()=>{await n.organizations.transferOwnership(a),window.location.reload()}),children:`Hand over`})]})]})},b8=({organization:e,basePath:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(!1),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=qm(),d=()=>u(async()=>{await n.organizations.remove(e.id),_8(t)});return(0,I.jsxs)(Nd,{title:`Delete organization`,description:`Takes the organization and its members and invitations away. Its records must be deleted first.`,children:[(0,I.jsx)(Pd,{message:r?void 0:c}),(0,I.jsx)(V,{variant:`danger`,onClick:()=>i(!0),children:`Delete organization`}),r&&(0,I.jsxs)(Md,{title:`Delete ${e.name}?`,description:`Type its name to confirm. This cannot be undone.`,onClose:()=>i(!1),actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:()=>i(!1),children:`Cancel`}),(0,I.jsx)(V,{variant:`danger`,loading:s,disabled:a!==e.name,onClick:()=>void d(),children:`Delete`})]}),children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(er,{"aria-label":`Organization name`,value:a,onChange:e=>o(e.target.value)})]})]})},x8=({organization:e,basePath:t,owner:n})=>{let{session:r}=B(),{busy:i,error:a,run:o}=qm();return(0,I.jsxs)(Nd,{title:`Leave`,description:n?`An organization keeps an owner: hand it over before you leave, unless it has another owner.`:`You stop being a member, and lose your roles here.`,children:[(0,I.jsx)(Pd,{message:a}),(0,I.jsxs)(V,{loading:i,onClick:()=>void o(async()=>{await r.organizations.leave(e.id),_8(t)}),children:[`Leave `,e.name]})]})},S8=({current:e,basePath:t,onChanged:n})=>{let r=e?.organization;if(!r)return(0,I.jsx)(`div`,{className:`mx-auto w-full max-w-3xl px-4 py-6 md:px-6`,children:(0,I.jsx)(ud,{title:`Organization`,subtitle:`You do not work in an organization now. Choose one under Organizations.`})});let i=e.role===`owner`;return(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:r.name,subtitle:e.role?`You are ${Lm[e.role].toLowerCase()} here.`:`You work here through your global roles, without being a member.`}),(0,I.jsx)(v8,{organization:r,editable:zm(e),onSaved:n},`${r.name}/${r.slug}`),i&&e.memberId&&(0,I.jsx)(y8,{organization:r,memberId:e.memberId}),e.role&&(0,I.jsx)(x8,{organization:r,basePath:t,owner:i}),i&&(0,I.jsx)(b8,{organization:r,basePath:t})]})},C8=e=>e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,63),w8=({organization:e,current:t,busy:n,onOpen:r})=>(0,I.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2.5`,children:[(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium`,children:e.name}),(0,I.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.slug})]}),t?(0,I.jsx)(zn,{tone:`green`,children:`Current`}):(0,I.jsx)(V,{size:`sm`,loading:n,onClick:r,children:`Open`})]}),T8=({basePath:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(``),[i,a]=(0,l.useState)(),{busy:o,error:s,run:c}=qm(),u=()=>c(async()=>{await t.organizations.create({name:n.trim(),slug:i??C8(n)}),_8(e)});return(0,I.jsxs)(Nd,{title:`New organization`,description:`You become its owner, with every role, and work in it once it is made.`,children:[(0,I.jsx)(Pd,{message:s}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:e=>{e.preventDefault(),u()},children:[(0,I.jsx)(er,{"aria-label":`Name`,placeholder:`Name`,value:n,onChange:e=>r(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(er,{"aria-label":`Slug`,placeholder:`slug`,value:i??C8(n),onChange:e=>a(e.target.value),wrapperClassName:`sm:w-48`}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:o,disabled:!n.trim(),children:`Create`})]})]})},E8=({basePath:e,currentId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)([]),{busy:s,error:c,run:u}=qm();return(0,l.useEffect)(()=>{let e=setTimeout(()=>void n.organizations.search(r).then(o,()=>o([])),200);return()=>clearTimeout(e)},[n,r]),(0,I.jsxs)(Nd,{title:`Find an organization`,description:`Your global roles let you work in any organization, with what those roles allow there. Opening one you are not a member of is written to the audit log.`,children:[(0,I.jsx)(Pd,{message:c}),(0,I.jsx)(er,{"aria-label":`Find an organization`,placeholder:`Name or slug`,value:r,onChange:e=>i(e.target.value),leading:(0,I.jsx)(kt,{className:`size-3.5`}),wrapperClassName:`mb-3`}),a.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:a.map(r=>(0,I.jsx)(w8,{organization:r,current:r.id===t,busy:s,onOpen:()=>void u(async()=>{await n.organizations.switchTo(r.id),_8(e)})},r.id))})]})},D8=()=>{let{session:e,organizations:t}=B(),[n,r]=(0,l.useState)([]);if((0,l.useEffect)(()=>{e.organizations.myInvitations().then(r,()=>r([]))},[e]),n.length===0)return null;let i=t?.roles??[];return(0,I.jsx)(Nd,{title:`Invitations for you`,description:`Open the link in the invitation email to accept one.`,children:(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(e=>(0,I.jsxs)(`li`,{className:`px-3 py-2.5 text-[13px]`,children:[(0,I.jsx)(`span`,{className:`font-medium`,children:e.organizationName??`An organization`}),`: `,e.appRoles.map(e=>Rm(i,e)).join(`, `)||`no app roles`,(0,I.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[`Until `,new Date(e.expiresAt).toLocaleDateString()]})]},e.id))})})},O8=({state:e,basePath:t})=>{let{session:n,organizations:r,state:i}=B(),{busy:a,error:o,run:s}=qm(),c=i.kind===`signed-in`?i.user:void 0,l=r?.create===`everyone`||c!==void 0&&Xm(c),u=e.current?.organization?.id;return(0,I.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 px-4 py-6 md:px-6`,children:[(0,I.jsx)(ud,{title:`Organizations`,subtitle:`You work in one organization at a time; what you see follows from your roles there.`}),(0,I.jsxs)(Nd,{title:`Your organizations`,description:e.organizations.length>0?`The organizations you are a member of.`:`You are not a member of an organization yet.`,children:[(0,I.jsx)(Pd,{message:o??e.error}),e.organizations.length>0&&(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:e.organizations.map(e=>(0,I.jsx)(w8,{organization:e,current:e.id===u,busy:a,onOpen:()=>void s(async()=>{await n.organizations.switchTo(e.id),_8(t)})},e.id))})]}),(0,I.jsx)(D8,{}),l&&(0,I.jsx)(T8,{basePath:t}),(e.current?.globalRoles.length??0)>0&&(0,I.jsx)(E8,{basePath:t,currentId:u})]})},k8=(e,t)=>t?.active?{...e,role:t.active}:e,A8=(e,t)=>e instanceof Zs?hd(e):t,j8=(e,t=!0)=>{let{session:n}=B(),r=sh(),[i,a]=(0,l.useState)();(0,l.useEffect)(()=>{t&&n.roles.current().then(a,e=>r.show({state:`error`,title:A8(e,`Could not read your roles`)}))},[n,r,t]);let o=(0,l.useCallback)(t=>void n.roles.switchTo(t).then(e,e=>r.show({state:`error`,title:A8(e,`Could not switch the role`)})),[n,r,e]);return{...i&&{current:i},switchTo:o}},M8=e=>new Set((e.userMenu?.items??[]).flatMap(e=>e.kind===`resource`?[e.resource]:e.kind===`page`?[e.page]:[])),N8=(e,t,n)=>(e.userMenu?.items??[]).map((r,i)=>{if(r.kind===`link`)return{id:`link-${i}`,label:r.label,icon:lg(r.icon,Pe),href:r.href,external:!0};if(r.kind===`page`){let i=e.pages[r.page];return{id:r.page,label:r.label??i?.title??W(r.page),icon:lg(r.icon??i?.icon,Je),href:is({kind:`page`,page:r.page},t),active:r.page===n}}return{id:r.resource,label:r.label??e.views[r.resource]?.names?.plural??W(r.resource),icon:lg(r.icon,sg(r.resource)),href:is({kind:`list`,resource:r.resource},t),active:r.resource===n}}),P8={sales:`Sales`,crm:`CRM`,catalog:`Catalog`,inventory:`Inventory`,core:`Admin`,hr:`HR`},F8=(e,t=``,n={})=>{let r=new Map,i=new Map,a=M8(e);for(let n of Object.values(e.pages)){if(n.nav?.hidden||a.has(n.name))continue;let e=n.nav?.group??`Pages`,o=r.get(e)??{label:e,items:[]};o.items.push({id:n.name,label:n.title,icon:lg(n.icon,Je),href:is({kind:`page`,page:n.name},t)}),r.set(e,o),i.set(n.name,n.nav?.order??2**53-1)}for(let o of Object.values(e.resources)){let s=e.views[o.name];if(!s||s.nav?.hidden||a.has(o.name))continue;let c=o.table.schema??`public`,l=s.nav?.group??P8[c]??W(c),u=r.get(l)??{label:l,items:[]};u.items.push({id:o.name,label:s.names?.plural??W(o.name),icon:sg(o.name),href:is({kind:`list`,resource:o.name},t),...n[o.name]&&{recent:n[o.name]}}),r.set(l,u),i.set(o.name,s.nav?.order??2**53-1)}for(let n of e.sources??[]){if(n.state!==`error`)continue;let e=r.get(n.source.label)??{label:n.source.label,items:[]};for(let r of n.source.resources)e.items.push({id:r,label:W(r),icon:sg(r),href:is({kind:`list`,resource:r},t),problem:`Cannot reach ${n.source.label}`});r.set(n.source.label,e)}return[...r.values()].map(e=>({...e,items:[...e.items].sort((e,t)=>(i.get(e.id)??0)-(i.get(t.id)??0))}))},I8=({action:e,label:t,danger:n,onCancel:r,onConfirm:i})=>(0,I.jsx)(Md,{title:`${t}?`,description:e.confirm,onClose:r,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:r,children:`Cancel`}),(0,I.jsx)(V,{variant:n?`danger`:`primary`,onClick:i,children:t})]})}),L8=(0,l.createContext)(void 0),R8=({value:e,children:t})=>(0,I.jsx)(L8.Provider,{value:e,children:t}),z8=()=>(0,l.useContext)(L8),B8=(e,t={})=>e.replace(/\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(e,n)=>encodeURIComponent(t[n]===null||t[n]===void 0?``:String(t[n]))),V8=(e,t)=>({model:e,record:t,key:es(th(e,t)),etag:typeof t.etag==`string`?t.etag:void 0,permissions:t.permissions}),H8=(e,t,n=``)=>({queryKey:H.count(t.name,n),queryFn:async()=>{let r=await e.list(t.name,{filter:n||void 0,pageSize:1,count:`exact`,fields:t.primaryKey});return r.totalSize??r.totalSizeEstimate}}),U8=(e,t=``)=>Tm(H8(U(),e,t)),W8=(e,{filter:t=``,sort:n=``,key:r})=>{let i=U();return Tm({queryKey:r===void 0?H.firstRecord(e.name,t,n):H.record(e.name,r),queryFn:async()=>{if(r!==void 0){let t=await i.get(e.name,r);return{...V8(e,t.record),etag:t.etag,permissions:t.permissions}}let a=await i.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:1});return a.items[0]?V8(e,a.items[0]):null}})},G8=(e,{filter:t=``,sort:n=``,pageSize:r,pageToken:i=``})=>{let a=U();return Tm({queryKey:H.list(e.name,t,n,r,i),placeholderData:xp,queryFn:()=>a.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:r,pageToken:i||void 0})})},K8=()=>{let e=Zf();return(0,l.useCallback)(t=>e.invalidateQueries({predicate:e=>e.queryKey[1]===t}),[e])},q8=e=>e instanceof Error?e.message:`Something went wrong`,J8=(e,t,n)=>{let{views:r}=G(),{actions:i}=xh(),a=Cg(e),o=U(),s=jm(e),c=sh(),u=K8(),{go:d}=Yg(),[f,p]=(0,l.useState)(),m=r[e]?.actions??[],h=e=>{let n=e.run?.kind;if((n===`update`||n===`delete`)&&!t)return`Needs a record`;if(n===`update`&&(!L_(a,`update`)||t?.permissions?.update===!1))return`You cannot change this record`;if(n===`delete`&&(!L_(a,`delete`)||t?.permissions?.delete===!1))return`You cannot delete this record`;if(!e.run&&!i?.[e.name])return`The app has no handler for "${e.name}"`},g=async r=>{let{run:a}=r;if(a?.kind===`link`){`to`in a?d(Ko(a.to,t?.record)):window.location.assign(B8(a.href,t?.record));return}a?.kind===`update`?await o.update(e,t.key,a.values,t.etag??`*`):a?.kind===`delete`?await o.remove(e,t.key,{etag:t.etag}):await i[r.name]({resource:e,record:t?.record,recordKey:t?.key,etag:t?.etag,client:s,navigate:d}),await u(e),c.show({state:`success`,title:`${r.label}: done`}),n?.(r)};return{actions:m,blocked:h,running:f,run:async e=>{h(e)||(p(e.name),await g(e).catch(t=>c.show({state:`error`,title:`${e.label} failed`,description:q8(t)})),p(void 0))}}},Y8=(e,t,n)=>{let r=J8(e,n),i=r.actions.find(e=>e.name===t);return{action:i,blocked:i?r.blocked(i):`No action "${t}"`,running:r.running===t,run:()=>i?r.run(i):Promise.resolve()}},X8=e=>e.props,Z8=({node:e})=>{let{name:t,resource:n,label:r,variant:i}=X8(e),a=z8(),o=Y8(n??a?.model.name??``,t,n===void 0||n===a?.model.name?a:void 0),[s,c]=(0,l.useState)(!1);if(!o.action)return null;let u=r??o.action.label;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{size:`sm`,variant:i??`secondary`,loading:o.running,disabled:!!o.blocked,title:o.blocked,onClick:()=>o.action.confirm?c(!0):void o.run(),children:u}),s&&(0,I.jsx)(I8,{action:o.action,label:u,danger:i===`danger`,onCancel:()=>c(!1),onConfirm:()=>{c(!1),o.run()}})]})},Q8=({title:e,description:t,actions:n,className:r,children:i})=>(0,I.jsxs)(`section`,{className:F(`flex min-w-0 flex-col rounded-lg border border-border bg-background`,r),"aria-label":e,children:[(e||t||n)&&(0,I.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-x-4 gap-y-2 px-4 pt-4`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[e&&(0,I.jsx)(`h2`,{className:`text-[15px] font-semibold tracking-tight`,children:e}),t&&(0,I.jsx)(`p`,{className:`mt-0.5 text-[13px] text-muted-foreground`,children:t})]}),n&&(0,I.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:n})]}),(0,I.jsx)(`div`,{className:`min-w-0 flex-1 p-4 text-[13px]`,children:i})]}),$8=({children:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e}),e5=({node:e,children:t,slots:n})=>{let{title:r,description:i}=X8(e);return(0,I.jsx)(Q8,{title:r,description:i,actions:n.actions,className:`h-full`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})})},t5=({model:e,filter:t,sort:n,limit:r=12,title:i,description:a,empty:o,actions:s,children:c})=>{let l=G8(e,{filter:t,sort:n,pageSize:r}),u=l.data?.items??[];return(0,I.jsx)(Q8,{title:i,description:a,actions:s,children:l.isPending?(0,I.jsx)(`div`,{className:`flex gap-3`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(Zn,{className:`h-24 w-56`},t))}):l.error?(0,I.jsx)(w_,{title:`Could not load`,error:l.error}):u.length===0?(0,I.jsx)($8,{children:o??`Nothing here yet.`}):(0,I.jsx)(`ul`,{className:`-mx-4 flex snap-x gap-3 overflow-x-auto px-4 pb-1`,children:u.map(t=>{let n=V8(e,t);return(0,I.jsx)(`li`,{className:`flex w-60 shrink-0 snap-start flex-col gap-2 rounded-lg border border-border bg-surface p-3`,children:(0,I.jsx)(R8,{value:n,children:c})},n.key)})})})},n5=({node:e,children:t,slots:n})=>{let{resource:r,...i}=X8(e),a=G().resources[r];return a?(0,I.jsx)(t5,{...i,model:a,actions:n.actions,children:t}):null},r5=({field:e,value:t,known:n})=>{let{resources:r,views:i}=G(),a=U(),o=Zf(),s=e.relation?r[e.relation.resource]:void 0,c=String(t),l=Tm({queryKey:H.relatedLabel(s?.name??``,c),enabled:!!s&&n===void 0,queryFn:async()=>(await e_(o,a,s,[c],i[s.name])).get(c)??c});return s?(0,I.jsx)(Xg,{to:{kind:`record`,resource:s.name,key:c},className:`font-medium text-primary-text hover:underline`,children:n??l.data??c}):(0,I.jsx)(`span`,{children:c})},i5=({model:e,field:t,value:n,format:r,relationLabel:i})=>{let{views:a}=G(),o={...a[e.name]?.fields[t.name],...r&&{format:r}};if(n==null||n===``)return(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(t.type===`relation`)return(0,I.jsx)(r5,{field:t,value:n,known:i});let s=t.type===`file`?s_(n):void 0;if(s&&`url`in s&&s.url)return(0,I.jsx)(`a`,{href:s.url,target:`_blank`,rel:`noreferrer`,className:`font-medium text-primary-text hover:underline`,children:s.name});let c=h_(t,n,o);return t.type===`enum`||o.format===`badge`?(0,I.jsx)(cT,{value:n,hints:o,children:c}):(0,I.jsx)(`span`,{className:F(o.format===`code`&&`font-mono text-xs`,(t.type===`decimal`||t.type===`integer`)&&`tabular-nums`),children:c})},a5=e=>{let{views:t}=G(),n=j_(e.field,t[e.model.name]?.fields[e.field.name]),r=(0,I.jsx)(i5,{...e});return n?(0,I.jsx)(N_,{shown:n,part:`display`,field:e.field,value:e.value,fallback:r}):r},o5=(e,t,n)=>{if(!t)return[];let r=Js(e,t.model.name,n);return r.ok?r.steps:[]},s5=(e,t,n,r,i)=>({queryKey:H.pathValue(n?.model.name??``,n?.key??``,r),enabled:i.length>1,queryFn:async()=>{let r=n.record;for(let n of i.slice(0,-1)){let i=r[n.field.name];if(i==null)return null;let a=n.field.relation.resource;r=(await t.fetchQuery({queryKey:H.record(a,String(i)),queryFn:()=>e.get(a,String(i))})).record}return r[i.at(-1).field.name]??null}}),c5=(e,t,n)=>{let r=t.at(-1);return!e||!r?{state:`missing`}:t.length===1?{state:`ready`,value:e.record[r.field.name],field:r.field,model:r.model}:n.isPending?{state:`loading`}:{state:`ready`,value:n.data??null,field:r.field,model:r.model}},l5=(e,t)=>{let{resources:n}=G(),r=o5(n,e,t);return c5(e,r,Tm(s5(U(),Zf(),e,t,r)))},u5=(e,t)=>{let{resources:n}=G(),r=U(),i=Zf(),a=t.map(t=>o5(n,e,t)),o=Cm({queries:t.map((t,n)=>s5(r,i,e,t,a[n]))});return t.map((t,n)=>c5(e,a[n],o[n]))},d5=(e,t)=>{if(t)return t;let n=e.split(`.`).map(e=>W(e).toLowerCase()).join(` `);return n[0].toUpperCase()+n.slice(1)},f5=({node:e})=>{let{name:t,label:n,format:r}=X8(e),{views:i}=G(),a=l5(z8(),t);if(a.state===`missing`)return null;let o=a.state===`loading`?(0,I.jsx)(Zn,{className:`h-4 w-24`}):(0,I.jsx)(a5,{model:a.model,field:a.field,value:a.value,format:r});if(n===!1)return(0,I.jsx)(`div`,{className:`text-[13px]`,children:o});let s=n??d5(t,a.state===`ready`?i[a.model.name]?.fields[a.field.name]?.label:void 0);return(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:s}),(0,I.jsx)(`div`,{className:`mt-0.5 truncate text-[13px]`,children:o})]})},p5={1:``,2:`md:grid-cols-2`,3:`md:grid-cols-2 xl:grid-cols-3`,4:`sm:grid-cols-2 xl:grid-cols-4`},m5={1:``,2:`md:col-span-2`,3:`md:col-span-2 xl:col-span-3`,4:`sm:col-span-2 md:col-span-2 xl:col-span-4`},h5=({node:e,children:t})=>{let{columns:n=2}=X8(e),r=e.children;return(0,I.jsx)(`div`,{className:F(`grid grid-cols-1 gap-4`,p5[n]),children:t.map((e,t)=>{let n=r[t],i=typeof n==`object`?n.props.span:void 0;return(0,I.jsx)(`div`,{className:F(`min-w-0`,i&&m5[i]),children:e},t)})})},g5=`font-medium text-primary-text hover:underline`,_5=({node:e})=>{let t=X8(e),n=z8()?.record,r=e.children.filter(e=>typeof e==`string`).join(``);if(t.to){let e=Ko(t.to,n);return(0,I.jsx)(Xg,{to:e,className:g5,children:r||is(e)})}let i=t.href??``;return(0,I.jsx)(`a`,{href:i,className:g5,...i.startsWith(`http`)&&{target:`_blank`,rel:`noreferrer`},children:r||i})},v5=(e,t,n)=>Object.fromEntries(t.map(t=>{let r=e.fields[t];if(r.type===`file`)return[t,n?.record[t]??null];if(n)return[t,r.type===`boolean`?!!n.record[t]:g_(n.record[t])];let i=r.default&&`value`in r.default?r.default.value:void 0;return[t,r.type===`boolean`?!!i:g_(i)]})),y5=(e,t,n)=>Object.fromEntries(Object.entries(t).flatMap(([t,r])=>{let i=e.fields[t];return G_(r)?r.key===g_(n.record[t])?[]:[[t,i.type===`integer`?Number(r.key):r.key]]:S_(i,r,n.record[t])?[[t,y_(i,r)]]:[]})),b5=({model:e,record:t,mode:n,label:r,title:i,fields:a,values:o,onClose:s})=>{let{resources:c,views:u}=G(),d=U(),f=sh(),p=K8(),m=u[e.name],[h,g]=(0,l.useState)(()=>v5(e,a,t)),[_,v]=(0,l.useState)({}),[y,b]=(0,l.useState)(),[x,S]=(0,l.useState)(!1),C=async()=>{S(!0),b(void 0),await(n===`create`?d.create(e.name,{...Y_(e,c,h),...o}):d.update(e.name,t.key,y5(e,h,t),t.etag??`*`)).then(async()=>{await p(e.name),f.show({state:`success`,title:`${i??r}: saved`}),s()},e=>{Fs(e)&&v(Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[]))),b(e)}),S(!1)};return(0,I.jsx)(Md,{title:i??r,onClose:s,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:s,children:`Cancel`}),(0,I.jsx)(V,{variant:`primary`,loading:x,onClick:()=>void C(),children:n===`create`?`Create`:`Save`})]}),children:(0,I.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),C()},children:[y!==void 0&&Object.keys(_).length===0&&(0,I.jsx)(w_,{title:`Not saved`,error:y}),a.map(n=>{let r=e.fields[n],i=h[n],a=r.relation?c[r.relation.resource]:void 0;return(0,I.jsx)(H_,{label:m?.fields[n]?.label??W(n),help:m?.fields[n]?.help,error:_[n],children:(0,I.jsx)(I_,{field:r,hints:m?.fields[n],value:G_(i)?i.key:i,stored:t?.record[n],relationLabel:G_(i)?i.label:void 0,relationPicker:a?{target:a,view:u[a.name]}:void 0,invalid:!!_[n],resource:e.name,onChange:e=>{v(({[n]:e,...t})=>t),g(t=>({...t,[n]:e}))}})},n)})]})})},x5=({model:e,recordKey:t,children:n})=>{let r=W8(e,{key:t});return(0,I.jsx)(I.Fragment,{children:n(r.data??void 0)})},S5=({node:e})=>{let t=X8(e),n=z8(),{resources:r}=G(),i=r[t.resource??n?.model.name??``],a=Cg(i?.name??``),[o,s]=(0,l.useState)(!1);if(!i||!(t.mode===`create`?L_(a,`create`):L_(a,`update`)&&n?.permissions?.update!==!1))return null;let c=e=>(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{size:`sm`,variant:t.variant??`secondary`,disabled:t.mode===`edit`&&!e,onClick:()=>s(!0),children:t.label}),o&&(0,I.jsx)(b5,{...t,model:i,record:t.mode===`edit`?e:void 0,onClose:()=>s(!1)})]});return t.mode===`edit`&&t.recordKey!==void 0?(0,I.jsx)(x5,{model:i,recordKey:t.recordKey,children:c}):c(t.mode===`edit`?n:void 0)},C5=({node:e,children:t,slots:n})=>{let{title:r,description:i}=X8(e);return(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,I.jsxs)(`div`,{className:`mx-auto flex max-w-[1200px] flex-col gap-6 px-4 pb-16 pt-6 md:px-10 md:py-8`,children:[(0,I.jsx)(ud,{title:r,subtitle:i,actions:n.actions}),t]})})},w5=(e,t)=>{let n=z8(),r=l5(typeof e==`string`?n:void 0,typeof e==`string`?e:``);return typeof e==`number`?e:e===void 0?t:r.state===`ready`?Number(r.value):r.state===`loading`?void 0:NaN},T5=({node:e})=>{let{value:t,max:n,label:r}=X8(e),i=w5(t,0),a=w5(n,100);if(i===void 0||a===void 0)return(0,I.jsx)(Zn,{className:`h-6 w-full`});if(!Number.isFinite(i)||!Number.isFinite(a))return null;let o=a>0?Math.min(1,Math.max(0,i/a)):0;return(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 text-xs`,children:[(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:r}),(0,I.jsxs)(`span`,{className:`tabular-nums`,children:[i.toLocaleString(`en-IE`),` / `,a.toLocaleString(`en-IE`)]})]}),(0,I.jsx)(`div`,{role:`progressbar`,"aria-label":r,"aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":a,className:`mt-1.5 h-2 overflow-hidden rounded-full bg-muted`,children:(0,I.jsx)(`div`,{className:o>=.9?`h-full rounded-full bg-warning`:`h-full rounded-full bg-primary`,style:{width:`${o*100}%`}})})]})},Ane=({model:e,filter:t,sort:n,recordKey:r,title:i,description:a,empty:o,actions:s,children:c})=>{let l=W8(e,{filter:t,sort:n,key:r}),u=e=>l.data?(0,I.jsx)(R8,{value:l.data,children:e}):void 0,d=l.isPending?(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(Zn,{className:`h-4 w-1/2`}),(0,I.jsx)(Zn,{className:`h-4 w-1/3`})]}):l.error?(0,I.jsx)(w_,{title:`Could not load`,error:l.error}):l.data?u((0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:c})):(0,I.jsx)($8,{children:o??`Nothing here yet.`});return(0,I.jsx)(Q8,{title:i,description:a,actions:s?u(s):void 0,className:`h-full`,children:d})},jne=({node:e,children:t,slots:n})=>{let{resource:r,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l}=X8(e),u=G().resources[r];return u?(0,I.jsx)(Ane,{model:u,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l,actions:n.actions,children:t}):null},Mne=({node:e,children:t})=>{let{when:n}=X8(e),{resources:r}=G(),i=U(),a=z8(),o=(0,l.useMemo)(()=>Iee(n),[n]),s=o.ok?o.paths:[],c=s.map(e=>Ree(e,e=>!!(a&&Object.hasOwn(a.model.fields,e)))),u=s.filter((e,t)=>c[t]===void 0),d=u5(a,u),f=Cm({queries:c.flatMap(e=>{let t=e===void 0?void 0:r[e];return t?[H8(i,t)]:[]})});if(!o.ok||d.some(e=>e.state===`loading`)||f.some(e=>e.isPending))return null;let p={};u.forEach((e,t)=>{let n=d[t];n.state===`ready`&&(p[e]=n.value)});let m=0;return s.forEach((e,t)=>{c[t]!==void 0&&(p[e]=r[c[t]]?f[m++]?.data??0:0)}),Lee(o,p)?(0,I.jsx)(I.Fragment,{children:t}):null},E5=`text-2xl font-semibold tracking-tight tabular-nums`,Nne=({model:e,filter:t})=>{let n=U8(e,t);return n.isPending?(0,I.jsx)(Zn,{className:`h-8 w-16`}):n.error?(0,I.jsx)(`span`,{className:`text-[13px] text-danger-text`,children:`Could not count`}):(0,I.jsx)(Xg,{to:{kind:`list`,resource:e.name,filter:t},className:`${E5} hover:text-primary-text`,children:n.data.toLocaleString(`en-IE`)})},Pne=({field:e,format:t})=>{let n=l5(z8(),e);return n.state===`loading`?(0,I.jsx)(Zn,{className:`h-8 w-16`}):n.state===`missing`?null:(0,I.jsx)(`span`,{className:E5,children:(0,I.jsx)(a5,{model:n.model,field:n.field,value:n.value,format:t})})},Fne=({node:e})=>{let{label:t,value:n,resource:r,filter:i,field:a,format:o,description:s}=X8(e),{resources:c}=G(),l=r===void 0?void 0:c[r];return(0,I.jsxs)(Q8,{className:`h-full`,children:[(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:t}),(0,I.jsxs)(`div`,{className:`mt-1`,children:[n!==void 0&&(0,I.jsx)(`span`,{className:E5,children:n}),l&&(0,I.jsx)(Nne,{model:l,filter:i}),a!==void 0&&(0,I.jsx)(Pne,{field:a,format:o})]}),s&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:s})]})},Ine=(e,t,n)=>{let{resources:r,views:i}=G(),a=U(),o=Zf(),s=t.flatMap(t=>{let i=e.fields[t],a=i?.type===`relation`&&i.relation?r[i.relation.resource]:void 0;if(!a||a.primaryKey.length!==1)return[];let o=[...new Set(n.flatMap(e=>e[t]===null||e[t]===void 0?[]:[String(e[t])]))].sort();return o.length>0?[{name:t,target:a,ids:o}]:[]}),c=Cm({queries:s.map(({target:e,ids:t})=>({queryKey:H.labelMap(e.name,t.join(`,`)),queryFn:()=>e_(o,a,e,t,i[e.name])}))});return new Map(s.flatMap(({name:e},t)=>c[t]?.data?[[e,c[t].data]]:[]))},D5=e=>e.includes(`.`),Lne=e=>{let{resources:t,views:n}=G();return r=>{let i=Js(t,e.name,r),a=i.ok?i.steps.at(-1):void 0,o=a?.field.name??r;return n[a?.model.name??e.name]?.fields[o]?.label??W(o)}},Rne=({model:e,row:t,column:n})=>{let r=l5(V8(e,t),n);return r.state===`loading`?(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`…`}):r.state===`missing`?(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,I.jsx)(a5,{model:r.model,field:r.field,value:r.value})},O5=({model:e,columns:t,rows:n,label:r,pager:i})=>{let{resources:a}=G(),o=Lne(e),s=t[0]===void 0?void 0:Js(a,e.name,t[0]),c=!s?.ok||s.steps.at(-1).field.type!==`relation`,l=Ine(e,t.filter(e=>!D5(e)),n),u=(t,n)=>D5(n)?(0,I.jsx)(Rne,{model:e,row:t,column:n}):(0,I.jsx)(a5,{model:e,field:e.fields[n],value:t[n],relationLabel:l.get(n)?.get(String(t[n]))});return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{className:`-mx-4 overflow-x-auto`,children:(0,I.jsxs)(`table`,{className:`w-full min-w-max text-left text-[13px]`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsx)(`tr`,{className:`border-b text-xs text-muted-foreground`,children:t.map(e=>(0,I.jsx)(`th`,{scope:`col`,className:`px-4 py-2 font-medium`,children:o(e)},e))})}),(0,I.jsx)(`tbody`,{children:n.map(n=>{let r=V8(e,n);return(0,I.jsx)(`tr`,{className:`border-b last:border-0 hover:bg-surface`,children:t.map((t,i)=>(0,I.jsx)(`td`,{className:`px-4 py-2`,children:i===0&&c?(0,I.jsx)(Xg,{to:{kind:`record`,resource:e.name,key:r.key},className:`font-medium text-primary-text hover:underline`,children:u(n,t)}):u(n,t)},t))},r.key)})})]})}),i&&(i.hasPrevious||i.hasNext)&&(0,I.jsxs)(`nav`,{"aria-label":`${r} pages`,className:`mt-3 flex items-center justify-end gap-2 text-xs text-muted-foreground`,children:[(0,I.jsxs)(`span`,{children:[`Page `,i.page]}),(0,I.jsx)(V,{size:`sm`,"aria-label":`Previous page`,disabled:!i.hasPrevious||i.busy,onClick:i.previous,children:(0,I.jsx)(le,{className:`size-3.5`})}),(0,I.jsx)(V,{size:`sm`,"aria-label":`Next page`,disabled:!i.hasNext||i.busy,onClick:i.next,children:(0,I.jsx)(P,{className:`size-3.5`})})]})]})},k5=(e,t)=>t?.list?.columns??Object.keys(e.fields).filter(t=>!e.primaryKey.includes(t)&&t!==e.tenant).slice(0,5),zne=({model:e,view:t,filter:n,sort:r,columns:i,pageSize:a=10,title:o,description:s,empty:c,actions:u})=>{let d=(i??k5(e,t)).filter(t=>Object.hasOwn(e.fields,t)),[f,p]=(0,l.useState)([``]),m=G8(e,{filter:n,sort:r,pageSize:a,pageToken:f.at(-1)}),h=m.data?.items??[],g=m.data?.nextPageToken;return(0,I.jsx)(Q8,{title:o,description:s,actions:u,className:`h-full`,children:m.isPending?(0,I.jsx)(`div`,{className:`flex flex-col gap-2`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(Zn,{className:`h-4 w-full`},t))}):m.error?(0,I.jsx)(w_,{title:`Could not load`,error:m.error}):h.length===0&&f.length===1?(0,I.jsx)($8,{children:c??`Nothing here yet.`}):(0,I.jsx)(O5,{model:e,columns:d,rows:h,label:o??e.name,pager:{page:f.length,hasPrevious:f.length>1,hasNext:!!g,busy:m.isFetching,previous:()=>p(e=>e.slice(0,-1)),next:()=>g&&p(e=>[...e,g])}})})},Bne={Page:C5,Grid:h5,Card:e5,Stat:Fne,RecordCard:jne,Field:f5,Table:({node:e,slots:t})=>{let n=X8(e),{resources:r,views:i}=G(),a=r[n.resource];return a?(0,I.jsx)(zne,{...n,model:a,view:i[a.name],actions:t.actions}):null},CardRow:n5,Progress:T5,ModalForm:S5,Action:Z8,Show:Mne,Link:_5},A5=e=>typeof e==`string`||!e.custom&&e.type===`Link`,j5=e=>{let t=[];for(let n of e){let e=t.at(-1);A5(n)&&e&&A5(e[0])?e.push(n):t.push([n])}return t.map((e,t)=>{let[n]=e;return A5(n)?(0,I.jsx)(`p`,{className:`text-[13px] leading-relaxed`,children:e.map((e,t)=>typeof e==`string`?(0,I.jsx)(l.Fragment,{children:e},t):(0,I.jsx)(M5,{node:e},t))},t):(0,I.jsx)(M5,{node:n},t)})},Vne=e=>Ws(e)||Array.isArray(e)&&e.length>0&&e.every(Ws),Hne=e=>Object.fromEntries(Object.entries(e.props).flatMap(([e,t])=>Vne(t)?[[e,(0,I.jsx)(I.Fragment,{children:j5(Array.isArray(t)?t:[t])})]]:[])),M5=({node:e})=>{let{components:t}=xh();if(e.custom){let n=t?.[e.type];return n?(0,I.jsx)(Qg,{name:e.type,children:(0,I.jsx)(n,{...zo(e.props),children:e.children.length>0?j5(e.children):void 0})}):(0,I.jsxs)(Zg,{children:[`No component is registered as `,e.type,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]})}let n=Bne[e.type];return n?(0,I.jsx)(n,{node:e,slots:Hne(e),children:j5(e.children)}):(0,I.jsxs)(Zg,{children:[e.type,` is not a block this version of the app knows.`]})},Une=({name:e})=>{let t=G().pages[e];return t?(0,I.jsx)(M5,{node:t.tree}):(0,I.jsxs)(bg,{title:`Not found`,children:[`There is no page called `,e,`.`]})},N5=e=>typeof e==`string`&&e.trim()!==``,Wne=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return{problem:`its plugin.json is not an object`};let{name:t,version:n,api:r,protobase:i,entry:a,css:o}=e;return N5(t)?Number.isInteger(r)?N5(i)?N5(a)?o!==void 0&&!N5(o)?{problem:`its plugin.json names a stylesheet that is no URL`}:n!==void 0&&!N5(n)?{problem:`its plugin.json has a version that is no text`}:{manifest:{name:t,api:r,protobase:i,entry:a,...n!==void 0&&{version:n},...o!==void 0&&{css:o}}}:{problem:`its plugin.json names no module`}:{problem:`its plugin.json names no Protobase versions`}:{problem:`its plugin.json names no plugin API`}:{problem:`its plugin.json names no plugin`}},P5=class extends Error{name=`UiConflictError`},Gne=e=>Object.keys(e).some(e=>e==="default"||/^[A-Z]/.test(e))?c(e):e,F5=(e,t)=>[...(e.extends??[]).map(Gne).flatMap((e,n)=>F5(e,e.name??`${t} extends[${n}]`)),{ui:e,label:t}],I5=(e,t,n)=>{let r={},i=new Map;for(let{ui:a,label:o}of t)for(let[t,s]of Object.entries(n(a)??{})){if(Object.hasOwn(r,t)&&r[t]!==s)throw new P5(`${e} "${t}" is defined twice, by ${i.get(t)} and by ${o}; rename one of them`);r[t]=s,i.set(t,i.get(t)??o)}return r},L5=e=>e.length<=1?e[0]:()=>e.map((e,t)=>(0,I.jsx)(e,{},t)),R5=(...e)=>{let t=e.flatMap((e,t)=>F5(e,e.name??`UI config ${t+1}`)),n=I5(`The component`,t,e=>e.components),r=I5(`The action handler`,t,e=>e.actions),i=I5(`The field type`,t,e=>e.fields),a=L5(t.flatMap(({ui:e})=>e.shell?.actions?[e.shell.actions]:[])),o=L5(t.flatMap(({ui:e})=>e.shell?.rightPanel?[e.shell.rightPanel]:[])),s=e.at(-1)?.name;return{...s&&{name:s},components:n,actions:r,...Object.keys(i).length>0&&{fields:i},...(a||o)&&{shell:{...a&&{actions:a},...o&&{rightPanel:o}}}}},z5=(0,l.createContext)(null),Kne=z5.Provider,qne=()=>{let e=(0,l.useContext)(z5);if(!e)throw Error(`usePlugin is for the components of a plugin the app loaded`);return e},B5=(e,t,n)=>{let r=n=>(0,I.jsx)(Kne,{value:e,children:(0,I.jsx)(t,{...n})});return r.displayName=`${e.name}:${n}`,r},Jne=(e,t,n)=>({of:n.of,display:B5(e,n.display,`fields.${t}.display`),...n.editor&&{editor:B5(e,n.editor,`fields.${t}.editor`)},...n.cell&&{cell:B5(e,n.cell,`fields.${t}.cell`)}}),Yne=(e,t)=>{let n=R5({...c(t),name:e.name}),r=Object.fromEntries(Object.entries(n.components??{}).map(([t,n])=>[t,B5(e,n,t)])),i=n.fields&&Object.fromEntries(Object.entries(n.fields).map(([t,n])=>[t,Jne(e,t,n)])),a=n.shell&&{...n.shell.actions&&{actions:B5(e,n.shell.actions,`shell.actions`)},...n.shell.rightPanel&&{rightPanel:B5(e,n.shell.rightPanel,`shell.rightPanel`)}};return{name:e.name,components:r,...n.actions&&{actions:n.actions},...i&&{fields:i},...a&&{shell:a}}},Xne=`0.12.20`,V5={pluginApi:1}.pluginApi,H5=Xne,Zne={readJson:async e=>{let t=await fetch(e,{cache:`no-cache`,credentials:`same-origin`});return t.ok?{json:await t.json()}:{status:t.status}},addStylesheet:e=>{if([...document.querySelectorAll(`link[rel="stylesheet"]`)].some(t=>t.href===e))return;let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=e,document.head.append(t)},importModule:e=>ph(()=>import(e),[])},Qne={api:V5,version:H5},$ne=e=>e instanceof Error?e.message:String(e),ere=async(e,t,n,r=Qne)=>{let i=new URL(e.url,n).href,a=(e,t)=>({kind:`off`,url:i,...t&&{name:t},reason:e}),o;try{let n=await t.readJson(i);if(`status`in n)return a(`its plugin.json answered ${n.status}`);let s=Wne(n.json);if(`problem`in s)return a(s.problem);let{manifest:c}=s;o=c.name;let l=hs(c,r);if(l)return a(l,o);c.css&&t.addStylesheet(new URL(c.css,i).href);let u=await t.importModule(new URL(c.entry,i).href),d={name:o,...c.version&&{version:c.version},url:i,settings:e.settings??{}};return{kind:`loaded`,plugin:d,ui:Yne(d,u)}}catch(e){return a(`it could not be loaded: ${$ne(e)}`,o)}},tre=(e,t)=>{let n=R5(e??{}),r=[],i=[];for(let e of t){if(e.kind===`off`){i.push(e);continue}try{R5(...r,e.ui,n),r.push(e.ui)}catch(t){if(!(t instanceof P5))throw t;i.push({kind:`off`,url:e.plugin.url,name:e.plugin.name,reason:t.message})}}return{ui:r.length===0?n:R5(...r,n),off:i}},nre=1e4,U5=[],rre=(e,t)=>{let n=JSON.stringify(e),[r,i]=(0,l.useState)({key:`[]`,loads:U5,settled:!0});return(0,l.useEffect)(()=>{if(e.length===0)return;let r=!0,a=!1,o=e.map(()=>void 0),s=()=>{if(!r)return;let t=o.filter(e=>e!==void 0);i({key:n,loads:t,settled:a||t.length===e.length})},c=setTimeout(()=>{a=!0,s()},nre);return e.forEach((e,n)=>{ere(e,t,window.location.href).then(e=>{o[n]=e,s()})}),()=>{r=!1,clearTimeout(c)}},[n,t]),e.length===0?{loads:U5,settled:!0}:r.key===n?r:{loads:U5,settled:!1}},W5=(0,l.createContext)([]),ire=()=>(0,l.useContext)(W5),are=({ui:e,loader:t=Zne,children:n})=>{let{plugins:r=[]}=G(),{loads:i,settled:a}=rre(r,t),o=(0,l.useMemo)(()=>tre(e,i),[e,i]);return a?(0,I.jsx)(bh.Provider,{value:o.ui,children:(0,I.jsx)(W5.Provider,{value:o.off,children:n})}):(0,I.jsxs)(`div`,{className:`flex h-full min-h-48 items-center justify-center gap-2 text-[13px] text-muted-foreground`,children:[(0,I.jsx)(nr,{}),` Loading`]})},ore=({off:e})=>{let[t,n]=(0,l.useState)(!1);return t||e.length===0?null:(0,I.jsxs)(`div`,{role:`region`,"aria-label":`Plugins off`,className:`flex items-start gap-3 border-b border-warning/40 bg-warning-soft px-4 py-2 text-[13px] text-warning-text`,children:[(0,I.jsx)(Ct,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0`}),(0,I.jsx)(`ul`,{className:`min-w-0 flex-1 space-y-0.5 break-words`,children:e.map(e=>(0,I.jsxs)(`li`,{children:[`The plugin `,(0,I.jsx)(`span`,{className:`font-semibold`,children:e.name??e.url}),` is off: `,e.reason,`.`]},e.url))}),(0,I.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`rounded p-0.5 hover:bg-warning/10`,onClick:()=>n(!0),children:(0,I.jsx)(dn,{"aria-hidden":!0,className:`size-4`})})]})},sre=({rows:e})=>(0,I.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-[13px]`,children:e.map(e=>(0,I.jsxs)(`div`,{className:`contents`,children:[(0,I.jsx)(`dt`,{className:`text-muted-foreground`,children:e.label}),(0,I.jsx)(`dd`,{className:`text-right tabular-nums text-foreground`,children:e.value})]},e.label))}),cre=({records:e,onNavigate:t})=>(0,I.jsx)(`ul`,{className:`-mx-2`,children:e.map(e=>(0,I.jsx)(`li`,{children:(0,I.jsxs)(`a`,{href:e.href??`#`,onClick:n=>{n.preventDefault(),e.href&&t?.(e.href)},className:`group flex items-center justify-between gap-3 rounded-md px-2 py-2 hover:bg-muted`,children:[(0,I.jsxs)(`span`,{className:`min-w-0`,children:[(0,I.jsx)(`span`,{className:`block text-[11px] uppercase tracking-wide text-faint-foreground`,children:e.kind}),(0,I.jsx)(`span`,{className:`block truncate text-[13px] font-medium text-primary-text`,children:e.label}),e.meta&&(0,I.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:e.meta})]}),(0,I.jsx)(P,{className:`size-4 shrink-0 text-faint-foreground group-hover:text-foreground`})]})},e.label))}),G5=({title:e,children:t})=>(0,I.jsxs)(`div`,{className:`rounded-lg border border-border bg-background p-4`,children:[(0,I.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),t]}),K5=({title:e,rows:t})=>t.length===0?null:(0,I.jsx)(G5,{title:e,children:(0,I.jsx)(sre,{rows:t})}),lre=({collection:e,title:t,status:n,lastEditedBy:r,presence:i=[],actions:a})=>(0,I.jsxs)(`header`,{className:`flex flex-col gap-4 border-b border-border pb-6 md:flex-row md:items-end md:justify-between md:gap-6`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e}),(0,I.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,I.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground md:text-2xl`,children:t}),(0,I.jsx)(zn,{tone:n.tone,children:n.label})]}),(0,I.jsx)(`p`,{className:`mt-1.5 text-xs text-muted-foreground`,children:r.name?(0,I.jsxs)(I.Fragment,{children:[`Last edited by `,(0,I.jsx)(`span`,{className:`font-medium text-foreground`,children:r.name}),` `,r.ago]}):(0,I.jsxs)(I.Fragment,{children:[`Last updated `,r.ago]})})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-4`,children:[i.length>0&&(0,I.jsxs)(`span`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,I.jsx)(jn,{people:i,size:`md`}),i.length,` viewing`]}),a]})]}),q5=(e,t)=>[`${t}_at`,`${t}At`].find(t=>e.fields[t]),J5=({item:e,scope:t})=>{let{components:n}=xh(),r=n?.[e.component],i=r?(0,I.jsx)(R8,{value:t,children:(0,I.jsx)(Qg,{name:e.component,children:(0,I.jsx)(r,{...zo(e.props??{})})})}):(0,I.jsxs)(Zg,{children:[`No component is registered as `,e.component,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]});return e.sidebar?e.title?(0,I.jsx)(G5,{title:e.title,children:i}):i:e.title?(0,I.jsx)(U_,{title:e.title,children:i}):(0,I.jsx)(`section`,{className:`py-8`,children:i})},Y5=e=>{if(typeof e==`number`)return e;if(typeof e==`string`&&e.trim()!==``)return Number(e)},ure=(e,t)=>{let n=Y5(e[t.latitude]),r=Y5(e[t.longitude]);if(n!==void 0&&r!==void 0&&Math.abs(n)<=90&&Math.abs(r)<=180)return{latitude:n,longitude:r}},dre=(0,l.lazy)(()=>ph(()=>import(`./record-map-DJgpmB9O.js`).then(e=>({default:e.RecordMap})),__vite__mapDeps([0,1,2,3,4,5]))),fre=15,X5=({item:e,record:t})=>{let n=G().maps?.style,r=ure(t,e);if(!n||!r)return null;let i=(0,I.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-muted ${e.sidebar?`h-48`:`h-64 md:h-80`}`,children:(0,I.jsx)(l.Suspense,{fallback:null,children:(0,I.jsx)(dre,{style:n,position:r,zoom:e.zoom??fre},`${r.latitude},${r.longitude}`)})});return e.sidebar?(0,I.jsx)(G5,{title:e.title,children:i}):(0,I.jsx)(U_,{title:e.title,children:i})},pre=({actions:e})=>(0,I.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background`,children:[(0,I.jsx)(`h3`,{className:`hidden border-b border-border px-4 py-2.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground md:block`,children:`Actions`}),(0,I.jsx)(`ul`,{className:`flex flex-wrap gap-2 p-2 md:block md:divide-y md:divide-border md:p-0`,children:e.map(({name:e,description:t,icon:n,onRun:r,blocked:i,running:a})=>(0,I.jsx)(`li`,{children:(0,I.jsxs)(`button`,{type:`button`,onClick:r,disabled:!!i||a,title:i,className:`flex min-h-11 items-center gap-2 rounded-md border border-border-strong px-3 text-left hover:bg-surface disabled:cursor-default disabled:opacity-60 md:min-h-0 md:w-full md:items-start md:gap-3 md:rounded-none md:border-0 md:px-4 md:py-3`,children:[(0,I.jsx)(n,{className:`size-4 shrink-0 text-muted-foreground md:mt-0.5`}),(0,I.jsxs)(`span`,{children:[(0,I.jsx)(`span`,{className:`block text-[13px] font-medium text-foreground`,children:e}),t&&(0,I.jsx)(`span`,{className:`mt-0.5 hidden text-xs leading-snug text-muted-foreground md:block`,children:t})]})]})},e))})]}),mre=e=>sT(e)??pn,hre=({model:e,stored:t,recordKey:n})=>{let{go:r}=Yg(),i={model:e,record:t.record,key:n,etag:t.etag,permissions:t.permissions},a=J8(e.name,i,t=>t.run?.kind===`delete`&&r({kind:`list`,resource:e.name},{replace:!0})),[o,s]=(0,l.useState)();return a.actions.length===0?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(pre,{actions:a.actions.map(e=>({name:e.label,icon:mre(e.icon),blocked:a.blocked(e),running:a.running===e.name,onRun:()=>e.confirm?s(e):void a.run(e)}))}),o&&(0,I.jsx)(I8,{action:o,label:o.label,danger:o.run?.kind===`delete`,onCancel:()=>s(void 0),onConfirm:()=>{s(void 0),a.run(o)}})]})},Z5=[[`M8 hex bolt A2, 100 pcs`,`FST`,1890],[`M10 hex nut A2, 100 pcs`,`FST`,1240],[`Stainless washer 8 mm, 250 pcs`,`FST`,990],[`Cable tie 300 mm, 100 pcs`,`ELC`,650],[`Cable gland M20, 25 pcs`,`ELC`,2340],[`Junction box IP65`,`ELC`,1480],[`Hydraulic hose 1/2 in, 5 m`,`HYD`,8650],[`Hydraulic coupling 3/8 in`,`HYD`,1895],[`Pallet wrap 500 mm`,`PKG`,740],[`Corrugated box 400 x 300`,`PKG`,215],[`Bubble wrap roll 50 m`,`PKG`,1990],[`Safety gloves, size L`,`PPE`,395],[`Safety glasses, clear`,`PPE`,450],[`Ear defenders SNR 31`,`PPE`,1295],[`Ball bearing 6204-2RS`,`BRG`,685],[`Taper roller bearing 30205`,`BRG`,1420],[`Timing belt HTD 5M, 600 mm`,`BLT`,2780],[`V-belt SPA 1250`,`BLT`,1360],[`Grease cartridge, 400 g`,`LUB`,920],[`Machine oil ISO 68, 5 l`,`LUB`,3950],[`Angle grinder disc 125 mm, 10 pcs`,`ABR`,1880],[`Drill bit set HSS, 19 pcs`,`TLS`,3490],[`Torque wrench 20-100 Nm`,`TLS`,14900],[`Pneumatic cylinder 40 x 100`,`PNE`,6120],[`Air hose PU 8 mm, 20 m`,`PNE`,2475],[`LED panel 600 x 600, 40 W`,`LGT`,3290],[`Pallet label roll 100 x 150`,`LBL`,1175],[`Thermal printer ribbon`,`LBL`,890],[`Euro pallet EPAL, used`,`PLT`,1150],[`Roll container, galvanised`,`PLT`,9800]];Z5.length;var gre=e=>{let[t,n,r]=Z5[e%Z5.length],i=e%Z5.length;return{id:`P-${200+i}`,sku:`${n}-${String(1e3+i*7).padStart(4,`0`)}`,name:t,category:n,priceCents:r}},Q5=`grid grid-cols-[28px_minmax(0,1fr)_88px_112px_112px_32px] items-center gap-2 pointer-coarse:grid-cols-[44px_minmax(0,1fr)_88px_112px_112px_44px]`,$5=e=>e.quantity*e.unitPriceCents,_re=(e,t=.21)=>{let n=e.reduce((e,t)=>e+$5(t),0),r=Math.round(n*t);return{subtotalCents:n,vatCents:r,totalCents:n+r}},vre=({items:e,label:t})=>{let[n,r]=(0,l.useState)(!1),i=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!n)return;let e=e=>{(e instanceof KeyboardEvent?e.key===`Escape`:!i.current?.contains(e.target))&&r(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,e)}},[n]),(0,I.jsxs)(`div`,{ref:i,className:`relative flex justify-center`,children:[(0,I.jsx)(`button`,{type:`button`,"aria-label":t,"aria-haspopup":`menu`,"aria-expanded":n,onClick:()=>r(!n),className:`inline-flex size-7 items-center justify-center rounded text-faint-foreground hover:bg-muted hover:text-foreground pointer-coarse:size-11`,children:(0,I.jsx)(Me,{className:`size-4`})}),n&&(0,I.jsx)(`ul`,{role:`menu`,className:`absolute right-0 top-full z-30 mt-1 min-w-36 rounded-md border bg-background py-1 text-[13px] shadow-pop`,children:e.map(e=>(0,I.jsx)(`li`,{role:`none`,children:(0,I.jsx)(`button`,{type:`button`,role:`menuitem`,disabled:e.disabled,className:F(`block min-h-9 w-full whitespace-nowrap px-3 py-1.5 text-left hover:bg-muted disabled:text-faint-foreground disabled:hover:bg-transparent`,e.destructive&&`text-danger-text`),onClick:()=>{r(!1),e.onSelect()},children:e.label})},e.label))})]})},e7=({value:e,onCommit:t,format:n,parse:r,label:i,width:a=`w-full`})=>{let[o,s]=(0,l.useState)(null);return(0,I.jsx)(`input`,{"aria-label":i,inputMode:`decimal`,value:o??n(e),onFocus:e=>e.currentTarget.select(),onChange:e=>s(e.target.value),onBlur:()=>{if(o===null)return;let e=r(o);s(null),Number.isFinite(e)&&e>=0&&t(e)},onKeyDown:e=>e.key===`Enter`&&e.currentTarget.blur(),className:F(`h-7 rounded-md border border-transparent bg-transparent px-2 text-right text-[13px] tabular-nums text-foreground outline-none hover:border-border-strong focus:border-primary focus:bg-background focus:ring-2 focus:ring-primary/20`,a)})};function yre(){var e=[...arguments];return(0,l.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var t7=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function n7(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function r7(e){return`nodeType`in e}function i7(e){return e?n7(e)?e:r7(e)?e.ownerDocument?.defaultView??window:window:window}function a7(e){let{Document:t}=i7(e);return e instanceof t}function o7(e){return!n7(e)&&e instanceof i7(e).HTMLElement}function s7(e){return e instanceof i7(e).SVGElement}function c7(e){return e?n7(e)?e.document:r7(e)?a7(e)?e:o7(e)||s7(e)?e.ownerDocument:document:document:document}var l7=t7?l.useLayoutEffect:l.useEffect;function u7(e){let t=(0,l.useRef)(e);return l7(()=>{t.current=e}),(0,l.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function bre(){let e=(0,l.useRef)(null);return[(0,l.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,l.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function d7(e,t){t===void 0&&(t=[e]);let n=(0,l.useRef)(e);return l7(()=>{n.current!==e&&(n.current=e)},t),n}function f7(e,t){let n=(0,l.useRef)();return(0,l.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function p7(e){let t=u7(e),n=(0,l.useRef)(null);return[n,(0,l.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function m7(e){let t=(0,l.useRef)();return(0,l.useEffect)(()=>{t.current=e},[e]),t.current}var h7={};function g7(e,t){return(0,l.useMemo)(()=>{if(t)return t;let n=h7[e]==null?0:h7[e]+1;return h7[e]=n,e+`-`+n},[e,t])}function _7(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var v7=_7(1),y7=_7(-1);function xre(e){return`clientX`in e&&`clientY`in e}function b7(e){if(!e)return!1;let{KeyboardEvent:t}=i7(e.target);return t&&e instanceof t}function Sre(e){if(!e)return!1;let{TouchEvent:t}=i7(e.target);return t&&e instanceof t}function x7(e){if(Sre(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return xre(e)?{x:e.clientX,y:e.clientY}:null}var S7=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[S7.Translate.toString(e),S7.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),C7=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Cre(e){return e.matches(C7)?e:e.querySelector(C7)}var wre={display:`none`};function Tre(e){let{id:t,value:n}=e;return l.createElement(`div`,{id:t,style:wre},n)}function Ere(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return l.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Dre(){let[e,t]=(0,l.useState)(``);return{announce:(0,l.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var w7=(0,l.createContext)(null);function Ore(e){let t=(0,l.useContext)(w7);(0,l.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function kre(){let[e]=(0,l.useState)(()=>new Set),t=(0,l.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,l.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Are={draggable:`
|
|
63
63
|
To pick up a draggable item, press the space bar.
|
|
64
64
|
While dragging, use the arrow keys to move the item.
|
|
65
65
|
Press space again to drop the item in its new position, or press escape to cancel.
|