@protobase/ui 0.12.3 → 0.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/record-page.js +115 -111
- package/dist/package.js +1 -1
- package/dist/shell/assets/{app-Cqr5Ze7R.js → app-C1uXjaoy.js} +2 -2
- package/dist/shell/assets/{index-DheSSTn2.css → index-BVOqIEYd.css} +1 -1
- package/dist/shell/assets/{index-ntYv19kQ.js → index-uIZKnNIY.js} +1 -1
- package/dist/shell/assets/{shared-protobase-ui-eH-UjL47.js → shared-protobase-ui-DDq8y6_Q.js} +1 -1
- package/dist/shell/index.html +4 -4
- package/dist/shell/protobase.shell.json +1 -1
- package/package.json +4 -4
|
@@ -58,8 +58,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
58
58
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function D1(e,t){if(e){if(typeof e==`string`)return O1(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)?O1(e,t):void 0}}function O1(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 k1(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 A1(e){if(Array.isArray(e))return e}function j1(e,t){if(e==null)return{};var n,r,i=M1(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 M1(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 N1(){return N1=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},N1.apply(null,arguments)}function P1(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 F1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?P1(Object(n),!0).forEach(function(t){I1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function I1(e,t,n){return(t=L1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L1(e){var t=R1(e,`string`);return typeof t==`symbol`?t:t+``}function R1(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 z1={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:jL.axis};function B1(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=F1(F1(F1({},c),Xw(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var d=+(a===`top`&&!o||a===`bottom`&&o);u=F1(F1({},u),{},{x1:t,y1:n+d*i,x2:t+r,y2:n+d*i})}else{var f=+(a===`left`&&!o||a===`right`&&o);u=F1(F1({},u),{},{x1:t+f*r,y1:n,x2:t+f*r,y2:n+i})}return l.createElement(`line`,N1({},u,{className:Ww(`recharts-cartesian-axis-line`,_T(s,`className`))}))}function V1(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 H1(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function U1(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function W1(e){var t=e.option,n=e.tickProps,r=e.value,i,a=Ww(n.className,`recharts-cartesian-axis-tick-value`);if(l.isValidElement(t))i=l.cloneElement(t,F1(F1({},n),{},{className:a}));else if(typeof t==`function`)i=t(F1(F1({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=Ww(o,VZ(t))),i=l.createElement($X,N1({},n,{className:o}),r)}return i}function G1(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=pO(),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&&t1(o.ticks,e)||(a.current={ticks:e,axisId:r,axisType:n},i(x1({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,l.useEffect)(()=>r==null||n==null?FT:()=>{i(S1({axisId:r,axisType:n}))},[i,r,n]),null}var K1=(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=g1(F1(F1({},S),{},{ticks:r}),b,x),D=Xw(S),O=Zw(i),k=HX(D.textAnchor)?D.textAnchor:H1(f,p),A=U1(f,p),j={};typeof a==`object`&&(j=a);var M=F1(F1({},D),{},{fill:`none`},j),N=E.map(e=>F1({entry:e},V1(e,m,h,g,_,f,v,p,y))),ee=N.map(e=>{var t=e.entry,n=e.line;return l.createElement(cT,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},a&&l.createElement(`line`,N1({},M,n,{className:Ww(`recharts-cartesian-axis-tick-line`,_T(a,`className`))})))}),te=N.map((e,t)=>{var n=e.entry,r=e.tick,a=F1(F1({},F1(F1(F1(F1({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(cT,N1({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},JE(C,n,t)),i&&l.createElement(W1,{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(G1,{ticks:E,axisId:T,axisType:w}),te.length>0&&l.createElement(BJ,{zIndex:jL.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))}),q1=(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=j1(e,w1),f=T1((0,l.useState)(``),2),p=f[0],m=f[1],h=T1((0,l.useState)(``),2),g=h[0],_=h[1],v=(0,l.useRef)(null);(0,l.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>_1({ticks:v.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>v1({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(BJ,{zIndex:e.zIndex},l.createElement(cT,{className:Ww(`recharts-cartesian-axis`,a)},l.createElement(B1,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:Xw(e)}),l.createElement(K1,{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(uZ,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},l.createElement(wZ,{label:e.label,labelRef:e.labelRef}),e.children)))}),J1=l.forwardRef((e,t)=>{var n=eD(e,z1);return l.createElement(q1,N1({},n,{ref:t}))});J1.displayName=`CartesianAxis`;var Y1=(0,l.createContext)({grid:{stroke:`#ccc`,fill:`none`}});Y1.Provider;var X1=()=>(0,l.useContext)(Y1),Z1=[`x1`,`y1`,`x2`,`y2`,`key`],Q1=[`offset`],$1=[`xAxisId`,`yAxisId`],e0=[`xAxisId`,`yAxisId`];function t0(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 n0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?t0(Object(n),!0).forEach(function(t){r0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function r0(e,t,n){return(t=i0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i0(e){var t=a0(e,`string`);return typeof t==`symbol`?t:t+``}function a0(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 o0(){return o0=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},o0.apply(null,arguments)}function s0(e,t){if(e==null)return{};var n,r,i=c0(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 c0(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 l0=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 u0(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=Xw(s0(n,Z1))??{};u.offset;var d=s0(u,Q1),f=Array.isArray(d.strokeDasharray)?d.strokeDasharray.join(`,`):d.strokeDasharray;r=l.createElement(`line`,o0({},d,{strokeDasharray:f,x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function d0(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=s0(e,$1),s=a.map((e,r)=>{var a=n0(n0({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return l.createElement(u0,{key:`line-${r}`,option:i,lineItemProps:a})});return l.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function f0(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=s0(e,e0),s=a.map((e,r)=>{var a=n0(n0({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return l.createElement(u0,{option:i,lineItemProps:a,key:`line-${r}`})});return l.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function p0(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 m0(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 h0=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return jj(g1(n0(n0(n0({},z1),n),{},{ticks:Mj(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},g0=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return jj(g1(n0(n0(n0({},z1),n),{},{ticks:Mj(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},_0={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:jL.grid};function v0(e){var t=tN(),n=nN(),r=eN(),i=n0(n0({},eD(e,_0)),{},{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=gM(),g=q(e=>dK(e,`xAxis`,a,h)),_=q(e=>dK(e,`yAxis`,o,h)),v=X1(),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(!Sj(u)||!Sj(d)||!K(s)||!K(c))return null;var b=i.verticalCoordinatesGenerator||h0,x=i.horizontalCoordinatesGenerator||g0,S=i.horizontalPoints,C=i.verticalPoints;if((!S||!S.length)&&typeof x==`function`){var w=p&&p.length,T=x({yAxis:_?n0(n0({},_),{},{ticks:w?p:_.ticks}):void 0,width:t??u,height:n??d,offset:r},w?!0:f);SM(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?n0(n0({},g),{},{ticks:E?m:g.ticks}):void 0,width:t??u,height:n??d,offset:r},E?!0:f);SM(Array.isArray(D),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof D}]`),Array.isArray(D)&&(C=D)}return l.createElement(BJ,{zIndex:i.zIndex},l.createElement(`g`,{className:`recharts-cartesian-grid`},l.createElement(l0,{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(p0,o0({},i,{horizontalPoints:S})),l.createElement(m0,o0({},i,{verticalPoints:C})),l.createElement(d0,o0({},i,y,{offset:r,horizontalPoints:S,xAxis:g,yAxis:_})),l.createElement(f0,o0({},i,y,{offset:r,verticalPoints:C,xAxis:g,yAxis:_}))))}v0.displayName=`CartesianGrid`;var y0=EA({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))}}}),b0=y0.actions;b0.addErrorBar,b0.replaceErrorBar,b0.removeErrorBar;var x0=y0.reducer,S0=[`children`];function C0(e,t){if(e==null)return{};var n,r,i=w0(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 w0(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 T0=(0,l.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function E0(e){var t=e.children,n=C0(e,S0);return l.createElement(T0.Provider,{value:n},t)}function D0(e,t){var n=q(t=>fW(t,e)),r=q(e=>hW(e,t)),i=n?.allowDataOverflow??uW.allowDataOverflow,a=r?.allowDataOverflow??pW.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function O0(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=m$(),a=D0(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,u=q(e=>zG(e,t,!1)),d=q(e=>BG(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 k0(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function A0(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var j0=`Invariant failed`;function M0(e,t){if(!e)throw Error(j0)}var N0=[`option`];function P0(e,t){if(e==null)return{};var n,r,i=F0(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 F0(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 I0=lI;function L0(e){var t=e.option,n=P0(e,N0);return l.createElement(aQ,{option:t,DefaultShape:I0,shapeProps:n,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`})}var R0=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)||MT(n);return i?e(n,r):(!i&&M0(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},z0=(e,t,n)=>n,B0=J([CW,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),V0=J([B0],e=>e?.maxBarSize),H0=(e,t,n,r)=>r,U0=J([rN,CW,k0,A0,z0],(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`)),W0=(e,t,n)=>{var r=rN(e),i=k0(e,t),a=A0(e,t);if(i!=null&&a!=null)return r===`horizontal`?YW(e,`yAxis`,a,n):YW(e,`xAxis`,i,n)},G0=J([U0,wL,(e,t)=>{var n=rN(e),r=k0(e,t),i=A0(e,t);if(r!=null&&i!=null)return n===`horizontal`?cK(e,`xAxis`,r):cK(e,`yAxis`,i)}],S$),K0=(e,t,n)=>{var r=B0(e,t);if(r==null)return 0;var i=k0(e,t),a=A0(e,t);if(i==null||a==null)return 0;var o=rN(e),s=xL(e),c=r.maxBarSize,l=MT(c)?s:c,u,d;return o===`horizontal`?(u=mK(e,`xAxis`,i,n),d=pK(e,`xAxis`,i,n)):(u=mK(e,`yAxis`,a,n),d=pK(e,`yAxis`,a,n)),Wj(u,d,!0)??l??0},q0=(e,t,n)=>{var r=rN(e),i=k0(e,t),a=A0(e,t);if(i!=null&&a!=null){var o,s;return r===`horizontal`?(o=mK(e,`xAxis`,i,n),s=pK(e,`xAxis`,i,n)):(o=mK(e,`yAxis`,a,n),s=pK(e,`yAxis`,a,n)),Wj(o,s)}},J0=J([fM,mM,(e,t,n)=>{var r=k0(e,t);if(r!=null)return mK(e,`xAxis`,r,n)},(e,t,n)=>{var r=A0(e,t);if(r!=null)return mK(e,`yAxis`,r,n)},(e,t,n)=>{var r=k0(e,t);if(r!=null)return pK(e,`xAxis`,r,n)},(e,t,n)=>{var r=A0(e,t);if(r!=null)return pK(e,`yAxis`,r,n)},J([J([G0,xL,SL,CL,K0,q0,V0],k$),B0],j$),rN,qI,q0,J([W0,B0],A$),B0,H0],(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 L2({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})}}),Y0=[`index`];function X0(){return X0=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},X0.apply(null,arguments)}function Z0(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 $0=(0,l.createContext)(void 0),e2=e=>{var t=(0,l.useContext)($0);if(t!=null)return t.stackId;if(e!=null)return Ij(e)},t2=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,n2=e=>{var t=(0,l.useContext)($0);if(t!=null){var n=t.stackId;return`url(#${t2(n,e)})`}},r2=e=>{var t=e.index,n=Z0(e,Y0),r=n2(t);return l.createElement(cT,X0({className:`recharts-bar-stack-layer`,clipPath:r},n))},i2=[`onMouseEnter`,`onMouseLeave`,`onClick`],a2=[`value`,`background`,`tooltipPosition`],o2=[`id`],s2=[`onMouseEnter`,`onClick`,`onMouseLeave`];function c2(e,t){return p2(e)||f2(e,t)||u2(e,t)||l2()}function l2(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
59
59
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u2(e,t){if(e){if(typeof e==`string`)return d2(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)?d2(e,t):void 0}}function d2(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 f2(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 p2(e){if(Array.isArray(e))return e}function m2(){return m2=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},m2.apply(null,arguments)}function h2(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 g2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?h2(Object(n),!0).forEach(function(t){_2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _2(e,t,n){return(t=v2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v2(e){var t=y2(e,`string`);return typeof t==`symbol`?t:t+``}function y2(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 b2(e,t){if(e==null)return{};var n,r,i=x2(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 x2(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 S2=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:Kj(n,t),payload:e}]},C2=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:FT,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Kj(a,t),hide:o,type:u,color:i,unit:s,formatter:c,graphicalItemId:d}};return l.createElement(lQ,{tooltipEntrySettings:f})});function w2(e){var t=q(Lq),n=e.data,r=e.dataKey,i=e.background,a=e.allOtherBarProps,o=a.onMouseEnter,s=a.onMouseLeave,c=a.onClick,u=b2(a,i2),d=oQ(o,r,a.id),f=sQ(s),p=cQ(c,r,a.id);if(!i||n==null)return null;var m=Zw(i);return l.createElement(BJ,{zIndex:M$(i,jL.barBackground)},n.map((e,n)=>{e.value;var a=e.background;e.tooltipPosition;var o=b2(e,a2);if(!a)return null;var s=d(e,e.originalDataIndex),c=f(e,e.originalDataIndex),h=p(e,e.originalDataIndex),g=g2(g2(g2(g2(g2({option:i,isActive:String(e.originalDataIndex)===t},o),{},{fill:`#eee`},a),m),JE(u,e,n)),{},{onMouseEnter:s,onMouseLeave:c,onClick:h,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return l.createElement(L0,m2({key:`background-bar-${n}`},g))}))}function T2(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 g2(g2({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return l.createElement(MZ,{value:t?r:void 0},n)}function E2(e){var t=e.shape,n=e.activeBar,r=e.baseProps,i=e.entry,a=e.index,o=e.dataKey,s=q(Lq),c=q(zq),u=n&&String(i.originalDataIndex)===s&&(c==null||o===c),d=s!=null&&(String(i.originalDataIndex)!==s||c!=null&&o!==c),f=c2((0,l.useState)(!1),2),p=f[0],m=f[1],h=c2((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(L0,m2({},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(BJ,{zIndex:jL.activeBar},l.createElement(r2,{index:i.originalDataIndex},S)):S}function D2(e){var t=e.shape,n=e.baseProps,r=e.entry,i=e.index,a=e.dataKey;return l.createElement(L0,m2({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function O2(e){var t=e.data,n=e.props,r=e.animationElapsedTime,i=e.isAnimating,a=e.isEntrance,o=Xw(n)??{},s=o.id,c=b2(o,o2),u=n.shape,d=n.dataKey,f=n.activeBar,p=n.onMouseEnter,m=n.onClick,h=n.onMouseLeave,g=b2(n,s2),_=oQ(p,d,s),v=sQ(h),y=cQ(m,d,s);return t?l.createElement(l.Fragment,null,t.map((e,t)=>l.createElement(r2,m2({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},JE(g,e,t),{onMouseEnter:_(e,e.originalDataIndex),onMouseLeave:v(e,e.originalDataIndex),onClick:y(e,e.originalDataIndex)}),f?l.createElement(E2,{shape:u,activeBar:f,baseProps:c,entry:e,index:t,dataKey:d,animationElapsedTime:r,isAnimating:i,isEntrance:a}):l.createElement(D2,{shape:u,baseProps:c,entry:e,index:t,dataKey:d,animationElapsedTime:r,isAnimating:i,isEntrance:a})))):null}var k2=(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`?[g2(g2({},e.prev),{},{height:AT(e.prev.height,0,t),y:AT(e.prev.y,e.prev.y+e.prev.height,t)})]:[g2(g2({},e.prev),{},{width:AT(e.prev.width,0,t)})];if(e.status===`matched`)return[g2(g2({},e.next),{},{x:AT(e.prev.x,e.next.x,t),y:AT(e.prev.y,e.next.y,t),width:AT(e.prev.width,e.next.width,t),height:AT(e.prev.height,e.next.height,t)})];var r=e.next;return n===`horizontal`?[g2(g2({},r),{},{height:AT(0,r.height,t),y:AT(r.stackedBarStart,r.y,t)})]:[g2(g2({},r),{},{width:AT(0,r.width,t),x:AT(r.stackedBarStart,r.x,t)})]});function A2(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=MQ(t.onAnimationStart,t.onAnimationEnd),f=d.isAnimating,p=d.handleAnimationStart,m=d.handleAnimationEnd;return l.createElement(T2,{showLabels:!f,rects:r},l.createElement(NQ,{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(cT,null,l.createElement(O2,{props:t,data:e,animationElapsedTime:n,isAnimating:f||n<1,isEntrance:r}))),l.createElement(LZ,{label:t.label}),t.children)}function j2(e){var t=(0,l.useRef)(null);return l.createElement(A2,{previousRectanglesRef:t,props:e})}var M2=0,N2=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:Oj(e,t)}},P2=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=Ww(`recharts-bar`,i),f=u;return l.createElement(cT,{className:d,id:u},s&&l.createElement(`defs`,null,l.createElement(O0,{clipPathId:f,xAxisId:a,yAxisId:o})),l.createElement(cT,{className:`recharts-bar-rectangles`,clipPath:s?`url(#clipPath-${f})`:void 0},l.createElement(w2,{data:n,dataKey:r,background:c,allOtherBarProps:this.props}),l.createElement(j2,this.props)))}},F2={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,animationInterpolateFn:k2,animationMatchBy:vQ,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:M2,shape:I0,xAxisId:0,yAxisId:0,zIndex:jL.bar};function I2(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=D0(t,n).needClip,p=iN(),m=gM(),h=JZ(e.children,BY),g=q(t=>J0(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(E0,{xAxisId:t,yAxisId:n,data:g,dataPointFormatter:N2,errorBarOffset:_},l.createElement(P2,m2({},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 L2(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=Rj({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=Nj(E,y)}else p=Oj(e,r),Array.isArray(p)||(p=[b,p]);var D=R0(i,M2)(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=Lj({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=CT(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=ST(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=Lj({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=ST(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:g2(g2({},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 R2(e){var t=eD(e,F2),n=e2(t.stackId),r=gM();return l.createElement(UQ,{id:t.id,type:`bar`},e=>l.createElement(l.Fragment,null,l.createElement(uQ,{legendPayload:S2(t)}),l.createElement(C2,{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(XQ,{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!==I0}),l.createElement(BJ,{zIndex:t.zIndex},l.createElement(I2,m2({},t,{id:e})))))}var z2=l.memo(R2,NN);z2.displayName=`Bar`;var B2=[`domain`,`range`],V2=[`domain`,`range`];function H2(e,t){if(e==null)return{};var n,r,i=U2(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 U2(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 W2(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 G2(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=H2(e,B2),a=t.domain,o=t.range,s=H2(t,V2);return!W2(n,a)||!W2(r,o)?!1:NN(i,s)}var K2=[`type`],q2=[`dangerouslySetInnerHTML`,`ticks`,`scale`],J2=[`id`,`scale`];function Y2(){return Y2=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},Y2.apply(null,arguments)}function X2(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 Z2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?X2(Object(n),!0).forEach(function(t){Q2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Q2(e,t,n){return(t=$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $2(e){var t=e4(e,`string`);return typeof t==`symbol`?t:t+``}function e4(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 t4(e,t){if(e==null)return{};var n,r,i=n4(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 n4(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 r4(e){var t=pO(),n=(0,l.useRef)(null),r=aN(),i=e.type,a=t4(e,K2),o=FL(r,`xAxis`,i),s=(0,l.useMemo)(()=>{if(o!=null)return Z2(Z2({},a),{},{type:o})},[a,o]);return(0,l.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(i$(s)):n.current!==s&&t(a$({prev:n.current,next:s})),n.current=s)},[s,t]),(0,l.useLayoutEffect)(()=>()=>{n.current&&=(t(o$(n.current)),null)},[t]),null}var i4=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(mM),c=gM(),u=pO(),d=`xAxis`,f=q(e=>fK(e,d,t,c)),p=q(e=>eK(e,t)),m=q(e=>aK(e,t)),h=q(e=>dW(e,t));if((0,l.useLayoutEffect)(()=>{if(!(r!==`auto`||!p||hZ(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(d$({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=t4(e,q2);h.id,h.scale;var _=t4(h,J2);return l.createElement(J1,Y2({},g,_,{ref:a,labelRef:o,x:m.x,y:m.y,width:p.width,height:p.height,className:Ww(`recharts-${d} ${d}`,n),viewBox:s,ticks:f,axisType:d,axisId:t}))},a4={allowDataOverflow:uW.allowDataOverflow,allowDecimals:uW.allowDecimals,allowDuplicatedCategory:uW.allowDuplicatedCategory,angle:uW.angle,axisLine:z1.axisLine,height:uW.height,hide:!1,includeHidden:uW.includeHidden,interval:uW.interval,label:!1,minTickGap:uW.minTickGap,mirror:uW.mirror,orientation:uW.orientation,padding:uW.padding,reversed:uW.reversed,scale:uW.scale,tick:uW.tick,tickCount:uW.tickCount,tickLine:z1.tickLine,tickSize:z1.tickSize,type:uW.type,niceTicks:uW.niceTicks,xAxisId:0},o4=l.memo(e=>{var t=eD(e,a4);return l.createElement(l.Fragment,null,l.createElement(r4,{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(i4,t))},G2);o4.displayName=`XAxis`;var s4=[`type`],c4=[`dangerouslySetInnerHTML`,`ticks`,`scale`],l4=[`id`,`scale`];function u4(){return u4=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},u4.apply(null,arguments)}function d4(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 f4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?d4(Object(n),!0).forEach(function(t){p4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function p4(e,t,n){return(t=m4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m4(e){var t=h4(e,`string`);return typeof t==`symbol`?t:t+``}function h4(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 g4(e,t){if(e==null)return{};var n,r,i=_4(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 _4(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 v4(e){var t=pO(),n=(0,l.useRef)(null),r=aN(),i=e.type,a=g4(e,s4),o=FL(r,`yAxis`,i),s=(0,l.useMemo)(()=>{if(o!=null)return f4(f4({},a),{},{type:o})},[o,a]);return(0,l.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(s$(s)):n.current!==s&&t(c$({prev:n.current,next:s})),n.current=s)},[s,t]),(0,l.useLayoutEffect)(()=>()=>{n.current&&=(t(l$(n.current)),null)},[t]),null}function y4(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(mM),c=gM(),u=pO(),d=`yAxis`,f=q(e=>sK(e,t)),p=q(e=>oK(e,t)),m=q(e=>fK(e,d,t,c)),h=q(e=>mW(e,t));if((0,l.useLayoutEffect)(()=>{if(!(r!==`auto`||!f||hZ(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(u$({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=g4(e,c4);h.id,h.scale;var _=g4(h,l4);return l.createElement(J1,u4({},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:Ww(`recharts-${d} ${d}`,n),viewBox:s,ticks:m,axisType:d,axisId:t}))}var b4={allowDataOverflow:pW.allowDataOverflow,allowDecimals:pW.allowDecimals,allowDuplicatedCategory:pW.allowDuplicatedCategory,angle:pW.angle,axisLine:z1.axisLine,hide:!1,includeHidden:pW.includeHidden,interval:pW.interval,label:!1,minTickGap:pW.minTickGap,mirror:pW.mirror,orientation:pW.orientation,padding:pW.padding,reversed:pW.reversed,scale:pW.scale,tick:pW.tick,tickCount:pW.tickCount,tickLine:z1.tickLine,tickSize:z1.tickSize,type:pW.type,niceTicks:pW.niceTicks,width:pW.width,yAxisId:0},x4=l.memo(e=>{var t=eD(e,b4);return l.createElement(l.Fragment,null,l.createElement(v4,{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(y4,t))},G2);x4.displayName=`YAxis`;var S4=J([(e,t)=>t,rN,ZL,oR,Aq,Mq,uJ,fM],SJ);function C4(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function w4(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(C4(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 T4=hA(`mouseClick`),E4=fj();E4.startListening({actionCreator:T4,effect:(e,t)=>{var n=e.payload,r=S4(t.getState(),w4(n));r?.activeIndex!=null&&t.dispatch(FK({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var D4=hA(`mouseMove`),O4=fj(),k4=null,A4=null,j4=null;O4.startListening({actionCreator:D4,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);k4!==null&&(cancelAnimationFrame(k4),k4=null),A4!==null&&(typeof i!=`number`||!o)&&(clearTimeout(A4),A4=null),j4=w4(n);var s=()=>{var e=t.getState(),n=yK(e,e.tooltip.settings.shared);if(!j4){k4=null,A4=null;return}if(n===`axis`){var r=S4(e,j4);r?.activeIndex==null?t.dispatch(MK()):t.dispatch(PK({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}k4=null,A4=null};if(!o){s();return}i===`raf`?k4=requestAnimationFrame(s):typeof i==`number`&&A4===null&&(A4=setTimeout(s,i))}});function M4(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 N4={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},P4=EA({name:`rootProps`,initialState:N4,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??N4.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}}}),F4=P4.reducer,I4=P4.actions.updateOptions,L4=EA({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)}});L4.actions.updatePolarOptions;var R4=L4.reducer,z4=hA(`keyDown`),B4=hA(`focus`),V4=hA(`blur`),H4=fj(),U4=null,W4=null,G4=null;H4.startListening({actionCreator:z4,effect:(e,t)=>{G4=e.payload,U4!==null&&(cancelAnimationFrame(U4),U4=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);W4!==null&&(typeof r!=`number`||!a)&&(clearTimeout(W4),W4=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=G4;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=XK(n,vq(e),KW(e),Dq(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=Mq(e),c=vq(e),l=yK(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=hJ(e,l,`hover`,String(n.index));t.dispatch(LK({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=hK(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=KW(e),h=Dq(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(XK(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(XK(_(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=hJ(e,l,`hover`,String(p));t.dispatch(LK({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{U4=null,W4=null}};if(!a){o();return}r===`raf`?U4=requestAnimationFrame(o):typeof r==`number`&&W4===null&&(o(),G4=null,W4=setTimeout(()=>{G4?o():(W4=null,U4=null)},r))}}),H4.startListening({actionCreator:B4,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=hJ(n,yK(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(LK({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),H4.startListening({actionCreator:V4,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(LK({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function K4(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 q4=hA(`externalEvent`),J4=fj(),Y4=new Map,X4=new Map,Z4=new Map;J4.startListening({actionCreator:q4,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=K4(i);Z4.set(a,{handler:r,reactEvent:o});var s=Y4.get(a);s!==void 0&&(cancelAnimationFrame(s),Y4.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=X4.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),X4.delete(a));var p=()=>{var e=Z4.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:Hq(i),activeDataKey:zq(i),activeIndex:Lq(i),activeLabel:Rq(i),activeTooltipIndex:Lq(i),isTooltipActive:Uq(i)};n&&n(o,r)}finally{Y4.delete(a),X4.delete(a),Z4.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);Y4.set(a,m)}else if(typeof l==`number`){if(!X4.has(a)){p();var h=setTimeout(p,l);X4.set(a,h)}}else p()}}});var Q4=J([J([eq],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)}}}),$4=hA(`touchMove`),e3=fj(),t3=null,n3=null,r3=null,i3=null;e3.startListening({actionCreator:$4,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){i3=K4(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);t3!==null&&(cancelAnimationFrame(t3),t3=null),n3!==null&&(typeof i!=`number`||!o)&&(clearTimeout(n3),n3=null),r3=Array.from(n.touches).map(e=>w4({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(i3!=null){var e=t.getState(),n=yK(e,e.tooltip.settings.shared);if(n===`axis`){var r=r3?.[0];if(r==null){t3=null,n3=null;return}var i=S4(e,r);i?.activeIndex!=null&&t.dispatch(PK({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=i3.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(tM),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=mq(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=Q4(e,s,c);t.dispatch(AK({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}t3=null,n3=null}};if(!o){s();return}i===`raf`?t3=requestAnimationFrame(s):typeof i==`number`&&n3===null&&(s(),i3=null,n3=setTimeout(()=>{i3?s():(n3=null,t3=null)},i))}}});var a3={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},o3=EA({name:`eventSettings`,initialState:a3,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Y(t.payload.throttledEvents))}}}),s3=o3.actions.setEventSettings,c3=o3.reducer,l3=rk({brush:I$,cartesianAxis:f$,chartData:dY,errorBars:x0,eventSettings:c3,graphicalItems:YQ,layout:bj,legend:mN,options:iY,polarAxis:BZ,polarOptions:R4,referenceElements:V$,renderedTicks:C1,rootProps:F4,tooltip:RK,zIndex:zJ}),u3=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Xte({reducer:l3,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([E4.middleware,O4.middleware,H4.middleware,J4.middleware,e3.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(SA({type:`raf`}))},devTools:nP.devToolsEnabled&&{serialize:{replacer:M4},name:`recharts-${t}`}})};function d3(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=gM(),a=(0,l.useRef)(null);if(i)return n;a.current??=u3(t,r);var o=dO;return l.createElement(AN,{context:o,store:a.current},n)}function f3(e){var t=e.layout,n=e.margin,r=pO(),i=gM();return(0,l.useEffect)(()=>{i||(r(_j(t)),r(gj(n)))},[r,i,t,n]),null}var p3=(0,l.memo)(f3,NN);function m3(e){var t=pO();return(0,l.useEffect)(()=>{t(I4(e))},[t,e]),null}var h3=(0,l.memo)(e=>{var t=pO();return(0,l.useEffect)(()=>{t(s3(e))},[t,e]),null},NN);function g3(e){var t=e.zIndex,n=e.isPanorama,r=(0,l.useRef)(null),i=pO();return(0,l.useLayoutEffect)(()=>(r.current&&i(LJ({zIndex:t,element:r.current,isPanorama:n})),()=>{i(RJ({zIndex:t,isPanorama:n}))}),[i,t,n]),l.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function _3(e){var t=e.children,n=e.isPanorama,r=q(wJ);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(g3,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>l.createElement(g3,{key:e,zIndex:e,isPanorama:n})))}var v3=[`children`];function y3(e,t){if(e==null)return{};var n,r,i=b3(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 b3(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 x3(){return x3=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},x3.apply(null,arguments)}var S3={width:`100%`,height:`100%`,display:`block`},C3=(0,l.forwardRef)((e,t)=>{var n=tN(),r=nN(),i=wP();if(!Sj(n)||!Sj(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(rT,x3({},o,{title:s,desc:c,role:d,tabIndex:u,width:n,height:r,style:S3,ref:t}),a)}),w3=e=>{var t=e.children,n=q(vM);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return l.createElement(rT,{width:r,height:i,x:o,y:a},t)},T3=(0,l.forwardRef)((e,t)=>{var n=e.children,r=y3(e,v3);return gM()?l.createElement(w3,null,l.createElement(_3,{isPanorama:!0},n)):l.createElement(C3,x3({ref:t},r),l.createElement(_3,{isPanorama:!1},n))});function E3(e,t){return j3(e)||A3(e,t)||O3(e,t)||D3()}function D3(){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 O3(e,t){if(e){if(typeof e==`string`)return k3(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)?k3(e,t):void 0}}function k3(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 A3(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 j3(e){if(Array.isArray(e))return e}function M3(){var e=pO(),t=E3((0,l.useState)(null),2),n=t[0],r=t[1],i=q(Zj);return(0,l.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;X(t)&&t!==i&&e(yj(t))}},[n,e,i]),r}function N3(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 P3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?N3(Object(n),!0).forEach(function(t){F3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function F3(e,t,n){return(t=I3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I3(e){var t=L3(e,`string`);return typeof t==`symbol`?t:t+``}function L3(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 R3(){return R3=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},R3.apply(null,arguments)}function z3(e,t){return W3(e)||U3(e,t)||V3(e,t)||B3()}function B3(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
61
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V3(e,t){if(e){if(typeof e==`string`)return H3(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)?H3(e,t):void 0}}function H3(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 U3(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 W3(e){if(Array.isArray(e))return e}var G3=()=>(SY(),null);function K3(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var q3=(0,l.forwardRef)((e,t)=>{var n=(0,l.useRef)(null),r=z3((0,l.useState)({containerWidth:K3(e.style?.width),containerHeight:K3(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(cN,{width:i.containerWidth,height:i.containerHeight}),l.createElement(`div`,R3({ref:s},e)))}),J3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=z3((0,l.useState)({containerWidth:K3(n),containerHeight:K3(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(cN,{width:a.containerWidth,height:a.containerHeight}),l.createElement(`div`,R3({ref:c},e)))}),Y3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(`div`,R3({ref:t},e)))}),X3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?l.createElement(J3,R3({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?l.createElement(Y3,R3({},e,{width:n,height:r,ref:t})):l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(`div`,R3({ref:t},e)))});function Z3(e){return e?q3:X3}var Q3=(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=pO(),w=z3((0,l.useState)(null),2),T=w[0],E=w[1],D=z3((0,l.useState)(null),2),O=D[0],k=D[1],A=M3(),j=YM(),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(T4(e)),C(q4({handler:a,reactEvent:e}))},[C,a]),ne=(0,l.useCallback)(e=>{C(D4(e)),C(q4({handler:u,reactEvent:e}))},[C,u]),re=(0,l.useCallback)(e=>{C(MK()),C(q4({handler:d,reactEvent:e}))},[C,d]),ie=(0,l.useCallback)(e=>{C(D4(e)),C(q4({handler:f,reactEvent:e}))},[C,f]),ae=(0,l.useCallback)(()=>{C(B4())},[C]),oe=(0,l.useCallback)(()=>{C(V4())},[C]),se=(0,l.useCallback)(e=>{C(z4(e.key))},[C]),ce=(0,l.useCallback)(e=>{C(q4({handler:o,reactEvent:e}))},[C,o]),le=(0,l.useCallback)(e=>{C(q4({handler:s,reactEvent:e}))},[C,s]),ue=(0,l.useCallback)(e=>{C(q4({handler:c,reactEvent:e}))},[C,c]),P=(0,l.useCallback)(e=>{C(q4({handler:p,reactEvent:e}))},[C,p]),de=(0,l.useCallback)(e=>{C(q4({handler:g,reactEvent:e}))},[C,g]),fe=(0,l.useCallback)(e=>{x&&C($4(e)),C(q4({handler:h,reactEvent:e}))},[C,x,h]),pe=(0,l.useCallback)(e=>{C(q4({handler:m,reactEvent:e}))},[C,m]),me=Z3(y);return l.createElement(XJ.Provider,{value:T},l.createElement(GT.Provider,{value:O},l.createElement(me,{width:M??_?.width,height:N??_?.height,className:Ww(`recharts-wrapper`,r),style:P3({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(G3,null),n)))}),$3=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function e6(e,t){if(e==null)return{};var n,r,i=t6(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 t6(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 n6=(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=Xw(e6(e,$3));return c?l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(T3,{otherAttributes:f,title:u,desc:d},a)):l.createElement(Q3,{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(T3,{otherAttributes:f,title:u,desc:d,ref:t},l.createElement(Y$,null,a)))});function r6(){return r6=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},r6.apply(null,arguments)}function i6(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 a6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i6(Object(n),!0).forEach(function(t){o6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o6(e,t,n){return(t=s6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s6(e){var t=c6(e,`string`);return typeof t==`symbol`?t:t+``}function c6(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 l6=a6({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`},a3),u6=(0,l.forwardRef)(function(e,t){var n=eD(e.categoricalChartProps,l6),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(d3,{preloadedState:{options:c},reduxStoreName:s.id??r},l.createElement(N$,{chartData:s.data}),l.createElement(p3,{layout:n.layout,margin:n.margin}),l.createElement(h3,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),l.createElement(m3,{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(n6,r6({},n,{ref:t})))}),d6=[`axis`,`item`],f6=(0,l.forwardRef)((e,t)=>l.createElement(u6,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:d6,tooltipPayloadSearcher:nY,categoricalChartProps:e,ref:t})),p6={fontSize:11,fill:`var(--muted-foreground)`},m6=({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??zw(d),m=hn(`(min-width: 640px)`),h=Vw(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:L_(Bw(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)(Ow,{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)(ZM,{width:`100%`,height:`100%`,children:(0,I.jsxs)(f6,{data:p,margin:{top:4,right:0,bottom:0,left:0},barCategoryGap:d===`day`?`22%`:`30%`,children:[(0,I.jsx)(v0,{vertical:!1,stroke:`var(--border)`}),(0,I.jsx)(o4,{dataKey:`at`,padding:{left:4,right:m?4:18},tickFormatter:vd,tick:p6,axisLine:!1,tickLine:!1,interval:d===`day`?m?4:9:m?1:3,height:18}),(0,I.jsx)(x4,{width:m?36:28,tick:p6,axisLine:!1,tickLine:!1,tickCount:3}),(0,I.jsx)(zY,{cursor:{fill:`var(--muted)`},content:(0,I.jsx)(Hw,{noun:t}),isAnimationActive:!1}),(0,I.jsx)(z2,{dataKey:`count`,fill:`var(--primary)`,radius:[2,2,0,0],isAnimationActive:!1})]})})})]})},h6={"7d":`last 7 days`,"30d":`last 30 days`,"90d":`last 90 days`,"1y":`last year`,all:`all time`},g6=({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=tw(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)(m6,{title:n,noun:r,data:c,granularity:a,onGranularityChange:o,periodLabel:a===`week`?`last 12 weeks`:h6[s]})},_6=({value:e,onCommit:t,placeholder:n})=>{let[r,i]=(0,l.useState)(e);return(0,l.useEffect)(()=>i(e),[e]),(0,l.useEffect)(()=>{if(r===e)return;let n=setTimeout(()=>t(r),350);return()=>clearTimeout(n)},[r,e,t]),(0,I.jsx)(Qn,{wrapperClassName:`min-w-0 flex-1 sm:w-72 sm:flex-none`,leading:(0,I.jsx)(Et,{className:`size-4`}),placeholder:n,"aria-label":`Search`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>e.key===`Enter`&&t(r)})},v6=(e,t,n,r)=>e.map(e=>{let i=t.fields[e.id],a=i&&r_(r,i,n?.fields[e.id]);return a?{...e,render:t=>(0,I.jsx)(o_,{shown:a,part:`cell`,field:i,value:t[e.id],fallback:G_(e,e.value?e.value(t):t[e.id])})}:e}),y6=jo(),b6=e=>e.find(e=>e.kind===`search`),x6=({address:e})=>{let{resources:t}=G(),n=t[e.resource];return n?(0,I.jsx)(S6,{model:n,address:e}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no resource called `,e.resource,`.`]})},S6=({model:e,address:t})=>{let n=G(),{set:r,go:i}=Eg(),a=e.name,o=n.views[a],s=(0,l.useMemo)(()=>$C(o,e),[o,e]),{fields:c}=$m(),u=(0,l.useMemo)(()=>v6(IC(e,o),e,o,c),[e,o,c]),d=t.filter,f=(0,l.useMemo)(()=>QC(s,d),[s,d]),p=f.ok?f.state:uC,m=f.ok?f.extras:[],{orderBy:h,filterLayout:g}=t,_=gn(),[v,y]=(0,l.useState)(!1),b=ow({model:e,resources:n.resources,views:n.views,view:o,state:p,extras:m}),x=(0,l.useMemo)(()=>gg(e,o,u.map(e=>e.id)),[e,o,u]),S=lw({resources:n.resources,views:n.views,model:e,columns:x,filter:f.ok?d:``,orderBy:h}),C=fg(o,t.display),w=Nw(e,S.page,S.key,C!==void 0),T=qm(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=tg(a),{state:k}=B(),A=_w({model:e,view:o,restore:vw(e),onReview:e=>i({kind:`record`,resource:a,key:e.key})}),j=(e,t=m)=>r({filter:qC(s,e,t)}),M=b6(m),N=e=>{let t=m.filter(e=>e.kind!==`search`);j(p,e?[...t,y6.search(e)]:t)},ee=o?.names?.plural??W(a),te=(0,I.jsx)(EC,{layout:g,config:b,value:p,onChange:j}),ne=pC(b,p),re=(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)(Rt,{className:`size-3.5`}),`Filters`,ne.length>0&&` (${ne.length})`]}),(0,I.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,I.jsx)(sC,{scroll:!0,chips:ne,onRemove:e=>j(mC(p,e)),onClear:()=>j(uC)})})]}),(0,I.jsx)(uw,{title:`Filters`,open:v,onClose:()=>y(!1),children:(0,I.jsx)(EC,{layout:`panel`,fullWidth:!0,config:b,value:p,onChange:j})})]}),ie=t=>i({kind:`record`,resource:a,key:Ym(e,t)}),ae=S.source?(0,I.jsx)(aC,{columns:u,source:S.source,sort:xg(h),onSortChange:e=>r({orderBy:Sg(e)}),onOpenRow:ie,rowActions:[{label:`Open ${D.toLowerCase()}`,onSelect:ie},...u_(O,`delete`)?[{label:`Delete`,destructive:!0,available:e=>d_(e,`delete`),onSelect:e=>void A.start(E(e))}]:[]],bulkActions:u_(O,`delete`)?[{label:e=>`Delete ${e}`,destructive:!0,onRun:e=>A.startBulk(e.map(E))}]:[],rowNumbers:!1,pinKey:k.kind===`signed-in`?A_(k.user.id,a):void 0,className:`min-h-0 flex-1`}):(0,I.jsx)(`div`,{className:`flex-1 rounded-lg border bg-surface`}),oe=C?C.kind===`cards`?(0,I.jsx)(Sw,{model:e,view:o,display:C,list:w}):(0,I.jsx)(Dw,{display:C,list:w}):ae;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)(rd,{title:ee,subtitle:o?.help,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Aw,{view:o,value:C?.name??`table`,onChange:e=>r({display:e})}),C&&(0,I.jsx)(Mw,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e})}),e.search?.length?(0,I.jsx)(_6,{value:M?.kind===`search`?M.text:``,onCommit:N,placeholder:`Search ${ee.toLowerCase()}`}):null,u_(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()]})]})}),!f.ok&&(0,I.jsx)(Zg,{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)(Zg,{title:`Could not load rows`,error:S.error}),o?.chart&&(0,I.jsx)(g6,{resource:a,chart:o.chart,title:`${ee} created`,noun:ee.toLowerCase(),filter:f.ok?d:``}),_?g===`bar`&&te:re,_&&g===`panel`?(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[te,oe]}):oe]})},C6=({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)(Bm,{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)})}),w6=e=>e?.role===`owner`?[`owner`,`admin`,`member`]:[`admin`,`member`],T6=({member:e,current:t,onChanged:n})=>{let{session:r,organizations:i}=B(),a=t.organization.id,{busy:o,error:s,run:c}=Vm(),l=i?.roles??[],u=e.id===t.memberId,d=w6(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:jm[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)(C6,{roles:l,selected:e.appRoles,grantable:Pm(l,t),disabled:o,onChange:t=>void c(async()=>{await r.organizations.setAppRoles(e.id,t),n()})}),(0,I.jsx)(Dd,{message:s})]})},E6=({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 qs?cd(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)(rd,{title:`Members`,subtitle:`Who works in ${e.organization.name}, and with which roles.`}),(0,I.jsxs)(Ed,{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)(Dd,{message:i}),n?(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(t=>(0,I.jsx)(T6,{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)($n,{}),` Loading`]})]})]}):null},D6=({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,O6=({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}=Vm(),_=()=>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)(Ed,{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)(Dd,{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)(Qn,{"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:w6(e).map(e=>(0,I.jsx)(`option`,{value:e,children:jm[e]},e))}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:m,disabled:!a.trim(),children:`Invite`})]}),(0,I.jsx)(C6,{roles:i,selected:u,grantable:Pm(i,e),onChange:d})]}),(0,I.jsx)(D6,{link:f})]})},k6=({invitation:e,organizationId:t,onChanged:n})=>{let{session:r,organizations:i}=B(),[a,o]=(0,l.useState)(),{busy:s,error:c,run:u}=Vm(),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:[jm[e.role],e.appRoles.length>0&&` · ${e.appRoles.map(e=>Mm(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)(Dd,{message:c}),(0,I.jsx)(D6,{link:a})]})},A6=({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)(rd,{title:`Invitations`,subtitle:`People invited to ${e.organization.name}.`}),(0,I.jsx)(O6,{current:e,onSent:a}),(0,I.jsx)(Ed,{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)(k6,{invitation:e,organizationId:i,onChanged:a},e.id))})})]})},j6=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 qs?cd(e):`Could not read your organizations`))},[e,t,c]),{current:n,organizations:i,...o&&{error:o},reload:d}},M6=e=>window.location.assign(`${e}/`),N6=({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}=Vm(),f=i.trim()!==e.name||o!==e.slug;return(0,I.jsxs)(Ed,{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)(Dd,{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)(Qn,{"aria-label":`Name`,value:i,disabled:!t,onChange:e=>a(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(Qn,{"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`})]})]})},P6=({organization:e,memberId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=Vm();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)(Ed,{title:`Hand over`,description:`Make another member the owner. You stay as an admin.`,children:[(0,I.jsx)(Dd,{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`})]})]})},F6=({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}=Vm(),d=()=>u(async()=>{await n.organizations.remove(e.id),M6(t)});return(0,I.jsxs)(Ed,{title:`Delete organization`,description:`Takes the organization and its members and invitations away. Its records must be deleted first.`,children:[(0,I.jsx)(Dd,{message:r?void 0:c}),(0,I.jsx)(V,{variant:`danger`,onClick:()=>i(!0),children:`Delete organization`}),r&&(0,I.jsxs)(Td,{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)(Dd,{message:c}),(0,I.jsx)(Qn,{"aria-label":`Organization name`,value:a,onChange:e=>o(e.target.value)})]})]})},I6=({organization:e,basePath:t,owner:n})=>{let{session:r}=B(),{busy:i,error:a,run:o}=Vm();return(0,I.jsxs)(Ed,{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)(Dd,{message:a}),(0,I.jsxs)(V,{loading:i,onClick:()=>void o(async()=>{await r.organizations.leave(e.id),M6(t)}),children:[`Leave `,e.name]})]})},L6=({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)(rd,{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)(rd,{title:r.name,subtitle:e.role?`You are ${jm[e.role].toLowerCase()} here.`:`You work here through your global roles, without being a member.`}),(0,I.jsx)(N6,{organization:r,editable:Nm(e),onSaved:n},`${r.name}/${r.slug}`),i&&e.memberId&&(0,I.jsx)(P6,{organization:r,memberId:e.memberId}),e.role&&(0,I.jsx)(I6,{organization:r,basePath:t,owner:i}),i&&(0,I.jsx)(F6,{organization:r,basePath:t})]})},R6=e=>e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,63),z6=({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)(Mn,{tone:`green`,children:`Current`}):(0,I.jsx)(V,{size:`sm`,loading:n,onClick:r,children:`Open`})]}),B6=({basePath:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(``),[i,a]=(0,l.useState)(),{busy:o,error:s,run:c}=Vm(),u=()=>c(async()=>{await t.organizations.create({name:n.trim(),slug:i??R6(n)}),M6(e)});return(0,I.jsxs)(Ed,{title:`New organization`,description:`You become its owner, with every role, and work in it once it is made.`,children:[(0,I.jsx)(Dd,{message:s}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:e=>{e.preventDefault(),u()},children:[(0,I.jsx)(Qn,{"aria-label":`Name`,placeholder:`Name`,value:n,onChange:e=>r(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(Qn,{"aria-label":`Slug`,placeholder:`slug`,value:i??R6(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`})]})]})},V6=({basePath:e,currentId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)([]),{busy:s,error:c,run:u}=Vm();return(0,l.useEffect)(()=>{let e=setTimeout(()=>void n.organizations.search(r).then(o,()=>o([])),200);return()=>clearTimeout(e)},[n,r]),(0,I.jsxs)(Ed,{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)(Dd,{message:c}),(0,I.jsx)(Qn,{"aria-label":`Find an organization`,placeholder:`Name or slug`,value:r,onChange:e=>i(e.target.value),leading:(0,I.jsx)(Et,{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)(z6,{organization:r,current:r.id===t,busy:s,onOpen:()=>void u(async()=>{await n.organizations.switchTo(r.id),M6(e)})},r.id))})]})},H6=()=>{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)(Ed,{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=>Mm(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))})})},U6=({state:e,basePath:t})=>{let{session:n,organizations:r,state:i}=B(),{busy:a,error:o,run:s}=Vm(),c=i.kind===`signed-in`?i.user:void 0,l=r?.create===`everyone`||c!==void 0&&Wm(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)(rd,{title:`Organizations`,subtitle:`You work in one organization at a time; what you see follows from your roles there.`}),(0,I.jsxs)(Ed,{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)(Dd,{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)(z6,{organization:e,current:e.id===u,busy:a,onOpen:()=>void s(async()=>{await n.organizations.switchTo(e.id),M6(t)})},e.id))})]}),(0,I.jsx)(H6,{}),l&&(0,I.jsx)(B6,{basePath:t}),(e.current?.globalRoles.length??0)>0&&(0,I.jsx)(V6,{basePath:t,currentId:u})]})},W6=(e,t)=>t?.active?{...e,role:t.active}:e,G6=(e,t)=>e instanceof qs?cd(e):t,K6=e=>{let{session:t}=B(),n=Zm(),[r,i]=(0,l.useState)();(0,l.useEffect)(()=>{t.roles.current().then(i,e=>n.show({state:`error`,title:G6(e,`Could not read your roles`)}))},[t,n]);let a=(0,l.useCallback)(r=>void t.roles.switchTo(r).then(e,e=>n.show({state:`error`,title:G6(e,`Could not switch the role`)})),[t,n,e]);return{...r&&{current:r},switchTo:a}},q6=e=>new Set((e.userMenu?.items??[]).flatMap(e=>e.kind===`resource`?[e.resource]:e.kind===`page`?[e.page]:[])),J6=(e,t,n)=>(e.userMenu?.items??[]).map((r,i)=>{if(r.kind===`link`)return{id:`link-${i}`,label:r.label,icon:Vh(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:Vh(r.icon??i?.icon,Je),href:$o({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:Vh(r.icon,zh(r.resource)),href:$o({kind:`list`,resource:r.resource},t),active:r.resource===n}}),Y6={sales:`Sales`,crm:`CRM`,catalog:`Catalog`,inventory:`Inventory`,core:`Admin`,hr:`HR`},X6=(e,t=``,n={})=>{let r=new Map,i=new Map,a=q6(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:Vh(n.icon,Je),href:$o({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??Y6[c]??W(c),u=r.get(l)??{label:l,items:[]};u.items.push({id:o.name,label:s.names?.plural??W(o.name),icon:zh(o.name),href:$o({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:zh(r),href:$o({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))}))},Z6=({action:e,label:t,danger:n,onCancel:r,onConfirm:i})=>(0,I.jsx)(Td,{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})]})}),Q6=(0,l.createContext)(void 0),$6=({value:e,children:t})=>(0,I.jsx)(Q6.Provider,{value:e,children:t}),e8=()=>(0,l.useContext)(Q6),t8=(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]))),n8=(e,t)=>({model:e,record:t,key:Yo(Ym(e,t)),etag:typeof t.etag==`string`?t.etag:void 0,permissions:t.permissions}),r8=(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}}),i8=(e,t=``)=>vm(r8(U(),e,t)),a8=(e,{filter:t=``,sort:n=``,key:r})=>{let i=U();return vm({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{...n8(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]?n8(e,a.items[0]):null}})},o8=(e,{filter:t=``,sort:n=``,pageSize:r,pageToken:i=``})=>{let a=U();return vm({queryKey:H.list(e.name,t,n,r,i),placeholderData:mp,queryFn:()=>a.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:r,pageToken:i||void 0})})},s8=()=>{let e=Wf();return(0,l.useCallback)(t=>e.invalidateQueries({predicate:e=>e.queryKey[1]===t}),[e])},c8=e=>e instanceof Error?e.message:`Something went wrong`,l8=(e,t,n)=>{let{views:r}=G(),{actions:i}=$m(),a=tg(e),o=U(),s=wm(e),c=Zm(),u=s8(),{go:d}=Eg(),[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`&&(!u_(a,`update`)||t?.permissions?.update===!1))return`You cannot change this record`;if(n===`delete`&&(!u_(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(Vo(a.to,t?.record)):window.location.assign(t8(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:c8(t)})),p(void 0))}}},u8=(e,t,n)=>{let r=l8(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()}},d8=e=>e.props,f8=({node:e})=>{let{name:t,resource:n,label:r,variant:i}=d8(e),a=e8(),o=u8(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)(Z6,{action:o.action,label:u,danger:i===`danger`,onCancel:()=>c(!1),onConfirm:()=>{c(!1),o.run()}})]})},p8=({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})]}),m8=({children:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e}),h8=({node:e,children:t,slots:n})=>{let{title:r,description:i}=d8(e);return(0,I.jsx)(p8,{title:r,description:i,actions:n.actions,className:`h-full`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})})},g8=({model:e,filter:t,sort:n,limit:r=12,title:i,description:a,empty:o,actions:s,children:c})=>{let l=o8(e,{filter:t,sort:n,pageSize:r}),u=l.data?.items??[];return(0,I.jsx)(p8,{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)(fS,{className:`h-24 w-56`},t))}):l.error?(0,I.jsx)(Zg,{title:`Could not load`,error:l.error}):u.length===0?(0,I.jsx)(m8,{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=n8(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)($6,{value:n,children:c})},n.key)})})})},_8=({node:e,children:t,slots:n})=>{let{resource:r,...i}=d8(e),a=G().resources[r];return a?(0,I.jsx)(g8,{...i,model:a,actions:n.actions,children:t}):null},v8=({field:e,value:t,known:n})=>{let{resources:r,views:i}=G(),a=U(),o=Wf(),s=e.relation?r[e.relation.resource]:void 0,c=String(t),l=vm({queryKey:H.relatedLabel(s?.name??``,c),enabled:!!s&&n===void 0,queryFn:async()=>(await iw(o,a,s,[c],i[s.name])).get(c)??c});return s?(0,I.jsx)(Dg,{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})},y8=({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)(v8,{field:t,value:n,known:i});let s=t.type===`file`?Fg(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=Hg(t,n,o);return t.type===`enum`||o.format===`badge`?(0,I.jsx)(Mn,{tone:OC(String(n)),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})},b8=e=>{let{views:t}=G(),n=i_(e.field,t[e.model.name]?.fields[e.field.name]),r=(0,I.jsx)(y8,{...e});return n?(0,I.jsx)(o_,{shown:n,part:`display`,field:e.field,value:e.value,fallback:r}):r},x8=(e,t,n)=>{if(!t)return[];let r=Ks(e,t.model.name,n);return r.ok?r.steps:[]},S8=(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}}),C8=(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}},w8=(e,t)=>{let{resources:n}=G(),r=x8(n,e,t);return C8(e,r,vm(S8(U(),Wf(),e,t,r)))},T8=(e,t)=>{let{resources:n}=G(),r=U(),i=Wf(),a=t.map(t=>x8(n,e,t)),o=gm({queries:t.map((t,n)=>S8(r,i,e,t,a[n]))});return t.map((t,n)=>C8(e,a[n],o[n]))},E8=(e,t)=>{if(t)return t;let n=e.split(`.`).map(e=>W(e).toLowerCase()).join(` `);return n[0].toUpperCase()+n.slice(1)},D8=({node:e})=>{let{name:t,label:n,format:r}=d8(e),{views:i}=G(),a=w8(e8(),t);if(a.state===`missing`)return null;let o=a.state===`loading`?(0,I.jsx)(fS,{className:`h-4 w-24`}):(0,I.jsx)(b8,{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??E8(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})]})},O8={1:``,2:`md:grid-cols-2`,3:`md:grid-cols-2 xl:grid-cols-3`,4:`sm:grid-cols-2 xl:grid-cols-4`},k8={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`},A8=({node:e,children:t})=>{let{columns:n=2}=d8(e),r=e.children;return(0,I.jsx)(`div`,{className:F(`grid grid-cols-1 gap-4`,O8[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&&k8[i]),children:e},t)})})},j8=`font-medium text-primary-text hover:underline`,M8=({node:e})=>{let t=d8(e),n=e8()?.record,r=e.children.filter(e=>typeof e==`string`).join(``);if(t.to){let e=Vo(t.to,n);return(0,I.jsx)(Dg,{to:e,className:j8,children:r||$o(e)})}let i=t.href??``;return(0,I.jsx)(`a`,{href:i,className:j8,...i.startsWith(`http`)&&{target:`_blank`,rel:`noreferrer`},children:r||i})},N8=(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]:Ug(n.record[t])];let i=r.default&&`value`in r.default?r.default.value:void 0;return[t,r.type===`boolean`?!!i:Ug(i)]})),P8=(e,t,n)=>Object.fromEntries(Object.entries(t).flatMap(([t,r])=>{let i=e.fields[t];return v_(r)?r.key===Ug(n.record[t])?[]:[[t,i.type===`integer`?Number(r.key):r.key]]:Yg(i,r,n.record[t])?[[t,Kg(i,r)]]:[]})),F8=({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=Zm(),p=s8(),m=u[e.name],[h,g]=(0,l.useState)(()=>N8(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,{...S_(e,c,h),...o}):d.update(e.name,t.key,P8(e,h,t),t.etag??`*`)).then(async()=>{await p(e.name),f.show({state:`success`,title:`${i??r}: saved`}),s()},e=>{Os(e)&&v(Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[]))),b(e)}),S(!1)};return(0,I.jsx)(Td,{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)(Zg,{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)(l_,{field:r,hints:m?.fields[n],value:v_(i)?i.key:i,stored:t?.record[n],relationLabel:v_(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)})]})})},I8=({model:e,recordKey:t,children:n})=>{let r=a8(e,{key:t});return(0,I.jsx)(I.Fragment,{children:n(r.data??void 0)})},L8=({node:e})=>{let t=d8(e),n=e8(),{resources:r}=G(),i=r[t.resource??n?.model.name??``],a=tg(i?.name??``),[o,s]=(0,l.useState)(!1);if(!i||!(t.mode===`create`?u_(a,`create`):u_(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)(F8,{...t,model:i,record:t.mode===`edit`?e:void 0,onClose:()=>s(!1)})]});return t.mode===`edit`&&t.recordKey!==void 0?(0,I.jsx)(I8,{model:i,recordKey:t.recordKey,children:c}):c(t.mode===`edit`?n:void 0)},R8=({node:e,children:t,slots:n})=>{let{title:r,description:i}=d8(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)(rd,{title:r,subtitle:i,actions:n.actions}),t]})})},z8=(e,t)=>{let n=e8(),r=w8(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},B8=({node:e})=>{let{value:t,max:n,label:r}=d8(e),i=z8(t,0),a=z8(n,100);if(i===void 0||a===void 0)return(0,I.jsx)(fS,{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}%`}})})]})},V8=({model:e,filter:t,sort:n,recordKey:r,title:i,description:a,empty:o,actions:s,children:c})=>{let l=a8(e,{filter:t,sort:n,key:r}),u=e=>l.data?(0,I.jsx)($6,{value:l.data,children:e}):void 0,d=l.isPending?(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(fS,{className:`h-4 w-1/2`}),(0,I.jsx)(fS,{className:`h-4 w-1/3`})]}):l.error?(0,I.jsx)(Zg,{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)(m8,{children:o??`Nothing here yet.`});return(0,I.jsx)(p8,{title:i,description:a,actions:s?u(s):void 0,className:`h-full`,children:d})},H8=({node:e,children:t,slots:n})=>{let{resource:r,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l}=d8(e),u=G().resources[r];return u?(0,I.jsx)(V8,{model:u,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l,actions:n.actions,children:t}):null},U8=({node:e,children:t})=>{let{when:n}=d8(e),{resources:r}=G(),i=U(),a=e8(),o=(0,l.useMemo)(()=>vee(n),[n]),s=o.ok?o.paths:[],c=s.map(e=>bee(e,e=>!!(a&&Object.hasOwn(a.model.fields,e)))),u=s.filter((e,t)=>c[t]===void 0),d=T8(a,u),f=gm({queries:c.flatMap(e=>{let t=e===void 0?void 0:r[e];return t?[r8(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)}),yee(o,p)?(0,I.jsx)(I.Fragment,{children:t}):null},W8=`text-2xl font-semibold tracking-tight tabular-nums`,G8=({model:e,filter:t})=>{let n=i8(e,t);return n.isPending?(0,I.jsx)(fS,{className:`h-8 w-16`}):n.error?(0,I.jsx)(`span`,{className:`text-[13px] text-danger-text`,children:`Could not count`}):(0,I.jsx)(Dg,{to:{kind:`list`,resource:e.name,filter:t},className:`${W8} hover:text-primary-text`,children:n.data.toLocaleString(`en-IE`)})},K8=({field:e,format:t})=>{let n=w8(e8(),e);return n.state===`loading`?(0,I.jsx)(fS,{className:`h-8 w-16`}):n.state===`missing`?null:(0,I.jsx)(`span`,{className:W8,children:(0,I.jsx)(b8,{model:n.model,field:n.field,value:n.value,format:t})})},q8=({node:e})=>{let{label:t,value:n,resource:r,filter:i,field:a,format:o,description:s}=d8(e),{resources:c}=G(),l=r===void 0?void 0:c[r];return(0,I.jsxs)(p8,{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:W8,children:n}),l&&(0,I.jsx)(G8,{model:l,filter:i}),a!==void 0&&(0,I.jsx)(K8,{field:a,format:o})]}),s&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:s})]})},J8=(e,t,n)=>{let{resources:r,views:i}=G(),a=U(),o=Wf(),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=gm({queries:s.map(({target:e,ids:t})=>({queryKey:H.labelMap(e.name,t.join(`,`)),queryFn:()=>iw(o,a,e,t,i[e.name])}))});return new Map(s.flatMap(({name:e},t)=>c[t]?.data?[[e,c[t].data]]:[]))},Y8=e=>e.includes(`.`),X8=e=>{let{resources:t,views:n}=G();return r=>{let i=Ks(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)}},Z8=({model:e,row:t,column:n})=>{let r=w8(n8(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)(b8,{model:r.model,field:r.field,value:r.value})},Q8=({model:e,columns:t,rows:n,label:r,pager:i})=>{let{resources:a}=G(),o=X8(e),s=t[0]===void 0?void 0:Ks(a,e.name,t[0]),c=!s?.ok||s.steps.at(-1).field.type!==`relation`,l=J8(e,t.filter(e=>!Y8(e)),n),u=(t,n)=>Y8(n)?(0,I.jsx)(Z8,{model:e,row:t,column:n}):(0,I.jsx)(b8,{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=n8(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)(Dg,{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`})})]})]})},$8=(e,t)=>t?.list?.columns??Object.keys(e.fields).filter(t=>!e.primaryKey.includes(t)&&t!==e.tenant).slice(0,5),e5=({model:e,view:t,filter:n,sort:r,columns:i,pageSize:a=10,title:o,description:s,empty:c,actions:u})=>{let d=(i??$8(e,t)).filter(t=>Object.hasOwn(e.fields,t)),[f,p]=(0,l.useState)([``]),m=o8(e,{filter:n,sort:r,pageSize:a,pageToken:f.at(-1)}),h=m.data?.items??[],g=m.data?.nextPageToken;return(0,I.jsx)(p8,{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)(fS,{className:`h-4 w-full`},t))}):m.error?(0,I.jsx)(Zg,{title:`Could not load`,error:m.error}):h.length===0&&f.length===1?(0,I.jsx)(m8,{children:c??`Nothing here yet.`}):(0,I.jsx)(Q8,{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])}})})},t5={Page:R8,Grid:A8,Card:h8,Stat:q8,RecordCard:H8,Field:D8,Table:({node:e,slots:t})=>{let n=d8(e),{resources:r,views:i}=G(),a=r[n.resource];return a?(0,I.jsx)(e5,{...n,model:a,view:i[a.name],actions:t.actions}):null},CardRow:_8,Progress:B8,ModalForm:L8,Action:f8,Show:U8,Link:M8},n5=e=>typeof e==`string`||!e.custom&&e.type===`Link`,r5=e=>{let t=[];for(let n of e){let e=t.at(-1);n5(n)&&e&&n5(e[0])?e.push(n):t.push([n])}return t.map((e,t)=>{let[n]=e;return n5(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)(o5,{node:e},t))},t):(0,I.jsx)(o5,{node:n},t)})},i5=e=>Hs(e)||Array.isArray(e)&&e.length>0&&e.every(Hs),a5=e=>Object.fromEntries(Object.entries(e.props).flatMap(([e,t])=>i5(t)?[[e,(0,I.jsx)(I.Fragment,{children:r5(Array.isArray(t)?t:[t])})]]:[])),o5=({node:e})=>{let{components:t}=$m();if(e.custom){let n=t?.[e.type];return n?(0,I.jsx)(kg,{name:e.type,children:(0,I.jsx)(n,{...Po(e.props),children:e.children.length>0?r5(e.children):void 0})}):(0,I.jsxs)(Og,{children:[`No component is registered as `,e.type,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]})}let n=t5[e.type];return n?(0,I.jsx)(n,{node:e,slots:a5(e),children:r5(e.children)}):(0,I.jsxs)(Og,{children:[e.type,` is not a block this version of the app knows.`]})},s5=({name:e})=>{let t=G().pages[e];return t?(0,I.jsx)(o5,{node:t.tree}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no page called `,e,`.`]})},c5=e=>typeof e==`string`&&e.trim()!==``,l5=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 c5(t)?Number.isInteger(r)?c5(i)?c5(a)?o!==void 0&&!c5(o)?{problem:`its plugin.json names a stylesheet that is no URL`}:n!==void 0&&!c5(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`}},u5=class extends Error{name=`UiConflictError`},d5=e=>Object.keys(e).some(e=>e==="default"||/^[A-Z]/.test(e))?c(e):e,f5=(e,t)=>[...(e.extends??[]).map(d5).flatMap((e,n)=>f5(e,e.name??`${t} extends[${n}]`)),{ui:e,label:t}],p5=(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 u5(`${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},m5=e=>e.length<=1?e[0]:()=>e.map((e,t)=>(0,I.jsx)(e,{},t)),h5=(...e)=>{let t=e.flatMap((e,t)=>f5(e,e.name??`UI config ${t+1}`)),n=p5(`The component`,t,e=>e.components),r=p5(`The action handler`,t,e=>e.actions),i=p5(`The field type`,t,e=>e.fields),a=m5(t.flatMap(({ui:e})=>e.shell?.actions?[e.shell.actions]:[])),o=m5(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}}}}},g5=(0,l.createContext)(null),_5=g5.Provider,v5=()=>{let e=(0,l.useContext)(g5);if(!e)throw Error(`usePlugin is for the components of a plugin the app loaded`);return e},y5=(e,t,n)=>{let r=n=>(0,I.jsx)(_5,{value:e,children:(0,I.jsx)(t,{...n})});return r.displayName=`${e.name}:${n}`,r},b5=(e,t,n)=>({of:n.of,display:y5(e,n.display,`fields.${t}.display`),...n.editor&&{editor:y5(e,n.editor,`fields.${t}.editor`)},...n.cell&&{cell:y5(e,n.cell,`fields.${t}.cell`)}}),x5=(e,t)=>{let n=h5({...c(t),name:e.name}),r=Object.fromEntries(Object.entries(n.components??{}).map(([t,n])=>[t,y5(e,n,t)])),i=n.fields&&Object.fromEntries(Object.entries(n.fields).map(([t,n])=>[t,b5(e,t,n)])),a=n.shell&&{...n.shell.actions&&{actions:y5(e,n.shell.actions,`shell.actions`)},...n.shell.rightPanel&&{rightPanel:y5(e,n.shell.rightPanel,`shell.rightPanel`)}};return{name:e.name,components:r,...n.actions&&{actions:n.actions},...i&&{fields:i},...a&&{shell:a}}},S5=`0.12.3`,C5={pluginApi:1}.pluginApi,w5=S5,T5=`modulepreload`,E5=function(e){return`/`+e},D5={},O5=function(e){return e.pathname.endsWith(`.css`)},k5=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=E5(t,n);let r=s(t);if(r.href in D5)return;D5[r.href]=!0;let i=O5(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:T5,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},A5={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=>k5(()=>import(e),[])},j5={api:C5,version:w5},M5=e=>e instanceof Error?e.message:String(e),N5=async(e,t,n,r=j5)=>{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=l5(n.json);if(`problem`in s)return a(s.problem);let{manifest:c}=s;o=c.name;let l=ls(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:x5(d,u)}}catch(e){return a(`it could not be loaded: ${M5(e)}`,o)}},P5=(e,t)=>{let n=h5(e??{}),r=[],i=[];for(let e of t){if(e.kind===`off`){i.push(e);continue}try{h5(...r,e.ui,n),r.push(e.ui)}catch(t){if(!(t instanceof u5))throw t;i.push({kind:`off`,url:e.plugin.url,name:e.plugin.name,reason:t.message})}}return{ui:r.length===0?n:h5(...r,n),off:i}},F5=1e4,I5=[],L5=(e,t)=>{let n=JSON.stringify(e),[r,i]=(0,l.useState)({key:`[]`,loads:I5,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()},F5);return e.forEach((e,n)=>{N5(e,t,window.location.href).then(e=>{o[n]=e,s()})}),()=>{r=!1,clearTimeout(c)}},[n,t]),e.length===0?{loads:I5,settled:!0}:r.key===n?r:{loads:I5,settled:!1}},R5=(0,l.createContext)([]),z5=()=>(0,l.useContext)(R5),B5=({ui:e,loader:t=A5,children:n})=>{let{plugins:r=[]}=G(),{loads:i,settled:a}=L5(r,t),o=(0,l.useMemo)(()=>P5(e,i),[e,i]);return a?(0,I.jsx)(Qm.Provider,{value:o.ui,children:(0,I.jsx)(R5.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)($n,{}),` Loading`]})},V5=({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)(tee,{"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)(ln,{"aria-hidden":!0,className:`size-4`})})]})},H5=({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))}),U5=({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))}),W5=({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]}),G5=({title:e,rows:t})=>t.length===0?null:(0,I.jsx)(W5,{title:e,children:(0,I.jsx)(H5,{rows:t})}),K5=({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)(Mn,{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)(kn,{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}=$m(),r=n?.[e.component],i=r?(0,I.jsx)($6,{value:t,children:(0,I.jsx)(kg,{name:e.component,children:(0,I.jsx)(r,{...Po(e.props??{})})})}):(0,I.jsxs)(Og,{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)(W5,{title:e.title,children:i}):i:e.title?(0,I.jsx)(g_,{title:e.title,children:i}):(0,I.jsx)(`section`,{className:`py-8`,children:i})},Y5=({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))})]}),X5={wallet:an,"file-text":He,send:At},Z5=e=>e?X5[e]??dn:dn,ine=({model:e,stored:t,recordKey:n})=>{let{go:r}=Eg(),i={model:e,record:t.record,key:n,etag:t.etag,permissions:t.permissions},a=l8(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)(Y5,{actions:a.actions.map(e=>({name:e.label,icon:Z5(e.icon),blocked:a.blocked(e),running:a.running===e.name,onRun:()=>e.confirm?s(e):void a.run(e)}))}),o&&(0,I.jsx)(Z6,{action:o,label:o.label,danger:o.run?.kind===`delete`,onCancel:()=>s(void 0),onConfirm:()=>{s(void 0),a.run(o)}})]})},Q5=[[`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]];Q5.length;var ane=e=>{let[t,n,r]=Q5[e%Q5.length],i=e%Q5.length;return{id:`P-${200+i}`,sku:`${n}-${String(1e3+i*7).padStart(4,`0`)}`,name:t,category:n,priceCents:r}},$5=`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]`,e7=e=>e.quantity*e.unitPriceCents,one=(e,t=.21)=>{let n=e.reduce((e,t)=>e+e7(t),0),r=Math.round(n*t);return{subtotalCents:n,vatCents:r,totalCents:n+r}},sne=({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))})]})},t7=({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 cne(){var e=[...arguments];return(0,l.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var n7=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function r7(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function i7(e){return`nodeType`in e}function a7(e){return e?r7(e)?e:i7(e)?e.ownerDocument?.defaultView??window:window:window}function o7(e){let{Document:t}=a7(e);return e instanceof t}function s7(e){return!r7(e)&&e instanceof a7(e).HTMLElement}function c7(e){return e instanceof a7(e).SVGElement}function l7(e){return e?r7(e)?e.document:i7(e)?o7(e)?e:s7(e)||c7(e)?e.ownerDocument:document:document:document}var u7=n7?l.useLayoutEffect:l.useEffect;function d7(e){let t=(0,l.useRef)(e);return u7(()=>{t.current=e}),(0,l.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function lne(){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 f7(e,t){t===void 0&&(t=[e]);let n=(0,l.useRef)(e);return u7(()=>{n.current!==e&&(n.current=e)},t),n}function p7(e,t){let n=(0,l.useRef)();return(0,l.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function m7(e){let t=d7(e),n=(0,l.useRef)(null);return[n,(0,l.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function h7(e){let t=(0,l.useRef)();return(0,l.useEffect)(()=>{t.current=e},[e]),t.current}var g7={};function _7(e,t){return(0,l.useMemo)(()=>{if(t)return t;let n=g7[e]==null?0:g7[e]+1;return g7[e]=n,e+`-`+n},[e,t])}function v7(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 y7=v7(1),b7=v7(-1);function une(e){return`clientX`in e&&`clientY`in e}function x7(e){if(!e)return!1;let{KeyboardEvent:t}=a7(e.target);return t&&e instanceof t}function dne(e){if(!e)return!1;let{TouchEvent:t}=a7(e.target);return t&&e instanceof t}function S7(e){if(dne(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 une(e)?{x:e.clientX,y:e.clientY}:null}var C7=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[C7.Translate.toString(e),C7.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),w7=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function fne(e){return e.matches(w7)?e:e.querySelector(w7)}var pne={display:`none`};function mne(e){let{id:t,value:n}=e;return l.createElement(`div`,{id:t,style:pne},n)}function hne(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 gne(){let[e,t]=(0,l.useState)(``);return{announce:(0,l.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var T7=(0,l.createContext)(null);function _ne(e){let t=(0,l.useContext)(T7);(0,l.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function vne(){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 yne={draggable:`
|
|
61
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V3(e,t){if(e){if(typeof e==`string`)return H3(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)?H3(e,t):void 0}}function H3(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 U3(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 W3(e){if(Array.isArray(e))return e}var G3=()=>(SY(),null);function K3(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var q3=(0,l.forwardRef)((e,t)=>{var n=(0,l.useRef)(null),r=z3((0,l.useState)({containerWidth:K3(e.style?.width),containerHeight:K3(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(cN,{width:i.containerWidth,height:i.containerHeight}),l.createElement(`div`,R3({ref:s},e)))}),J3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=z3((0,l.useState)({containerWidth:K3(n),containerHeight:K3(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(cN,{width:a.containerWidth,height:a.containerHeight}),l.createElement(`div`,R3({ref:c},e)))}),Y3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(`div`,R3({ref:t},e)))}),X3=(0,l.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?l.createElement(J3,R3({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?l.createElement(Y3,R3({},e,{width:n,height:r,ref:t})):l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(`div`,R3({ref:t},e)))});function Z3(e){return e?q3:X3}var Q3=(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=pO(),w=z3((0,l.useState)(null),2),T=w[0],E=w[1],D=z3((0,l.useState)(null),2),O=D[0],k=D[1],A=M3(),j=YM(),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(T4(e)),C(q4({handler:a,reactEvent:e}))},[C,a]),ne=(0,l.useCallback)(e=>{C(D4(e)),C(q4({handler:u,reactEvent:e}))},[C,u]),re=(0,l.useCallback)(e=>{C(MK()),C(q4({handler:d,reactEvent:e}))},[C,d]),ie=(0,l.useCallback)(e=>{C(D4(e)),C(q4({handler:f,reactEvent:e}))},[C,f]),ae=(0,l.useCallback)(()=>{C(B4())},[C]),oe=(0,l.useCallback)(()=>{C(V4())},[C]),se=(0,l.useCallback)(e=>{C(z4(e.key))},[C]),ce=(0,l.useCallback)(e=>{C(q4({handler:o,reactEvent:e}))},[C,o]),le=(0,l.useCallback)(e=>{C(q4({handler:s,reactEvent:e}))},[C,s]),ue=(0,l.useCallback)(e=>{C(q4({handler:c,reactEvent:e}))},[C,c]),P=(0,l.useCallback)(e=>{C(q4({handler:p,reactEvent:e}))},[C,p]),de=(0,l.useCallback)(e=>{C(q4({handler:g,reactEvent:e}))},[C,g]),fe=(0,l.useCallback)(e=>{x&&C($4(e)),C(q4({handler:h,reactEvent:e}))},[C,x,h]),pe=(0,l.useCallback)(e=>{C(q4({handler:m,reactEvent:e}))},[C,m]),me=Z3(y);return l.createElement(XJ.Provider,{value:T},l.createElement(GT.Provider,{value:O},l.createElement(me,{width:M??_?.width,height:N??_?.height,className:Ww(`recharts-wrapper`,r),style:P3({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(G3,null),n)))}),$3=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function e6(e,t){if(e==null)return{};var n,r,i=t6(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 t6(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 n6=(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=Xw(e6(e,$3));return c?l.createElement(l.Fragment,null,l.createElement(cN,{width:n,height:r}),l.createElement(T3,{otherAttributes:f,title:u,desc:d},a)):l.createElement(Q3,{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(T3,{otherAttributes:f,title:u,desc:d,ref:t},l.createElement(Y$,null,a)))});function r6(){return r6=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},r6.apply(null,arguments)}function i6(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 a6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i6(Object(n),!0).forEach(function(t){o6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o6(e,t,n){return(t=s6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s6(e){var t=c6(e,`string`);return typeof t==`symbol`?t:t+``}function c6(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 l6=a6({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`},a3),u6=(0,l.forwardRef)(function(e,t){var n=eD(e.categoricalChartProps,l6),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(d3,{preloadedState:{options:c},reduxStoreName:s.id??r},l.createElement(N$,{chartData:s.data}),l.createElement(p3,{layout:n.layout,margin:n.margin}),l.createElement(h3,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),l.createElement(m3,{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(n6,r6({},n,{ref:t})))}),d6=[`axis`,`item`],f6=(0,l.forwardRef)((e,t)=>l.createElement(u6,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:d6,tooltipPayloadSearcher:nY,categoricalChartProps:e,ref:t})),p6={fontSize:11,fill:`var(--muted-foreground)`},m6=({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??zw(d),m=hn(`(min-width: 640px)`),h=Vw(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:L_(Bw(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)(Ow,{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)(ZM,{width:`100%`,height:`100%`,children:(0,I.jsxs)(f6,{data:p,margin:{top:4,right:0,bottom:0,left:0},barCategoryGap:d===`day`?`22%`:`30%`,children:[(0,I.jsx)(v0,{vertical:!1,stroke:`var(--border)`}),(0,I.jsx)(o4,{dataKey:`at`,padding:{left:4,right:m?4:18},tickFormatter:vd,tick:p6,axisLine:!1,tickLine:!1,interval:d===`day`?m?4:9:m?1:3,height:18}),(0,I.jsx)(x4,{width:m?36:28,tick:p6,axisLine:!1,tickLine:!1,tickCount:3}),(0,I.jsx)(zY,{cursor:{fill:`var(--muted)`},content:(0,I.jsx)(Hw,{noun:t}),isAnimationActive:!1}),(0,I.jsx)(z2,{dataKey:`count`,fill:`var(--primary)`,radius:[2,2,0,0],isAnimationActive:!1})]})})})]})},h6={"7d":`last 7 days`,"30d":`last 30 days`,"90d":`last 90 days`,"1y":`last year`,all:`all time`},g6=({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=tw(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)(m6,{title:n,noun:r,data:c,granularity:a,onGranularityChange:o,periodLabel:a===`week`?`last 12 weeks`:h6[s]})},_6=({value:e,onCommit:t,placeholder:n})=>{let[r,i]=(0,l.useState)(e);return(0,l.useEffect)(()=>i(e),[e]),(0,l.useEffect)(()=>{if(r===e)return;let n=setTimeout(()=>t(r),350);return()=>clearTimeout(n)},[r,e,t]),(0,I.jsx)(Qn,{wrapperClassName:`min-w-0 flex-1 sm:w-72 sm:flex-none`,leading:(0,I.jsx)(Et,{className:`size-4`}),placeholder:n,"aria-label":`Search`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>e.key===`Enter`&&t(r)})},v6=(e,t,n,r)=>e.map(e=>{let i=t.fields[e.id],a=i&&r_(r,i,n?.fields[e.id]);return a?{...e,render:t=>(0,I.jsx)(o_,{shown:a,part:`cell`,field:i,value:t[e.id],fallback:G_(e,e.value?e.value(t):t[e.id])})}:e}),y6=jo(),b6=e=>e.find(e=>e.kind===`search`),x6=({address:e})=>{let{resources:t}=G(),n=t[e.resource];return n?(0,I.jsx)(S6,{model:n,address:e}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no resource called `,e.resource,`.`]})},S6=({model:e,address:t})=>{let n=G(),{set:r,go:i}=Eg(),a=e.name,o=n.views[a],s=(0,l.useMemo)(()=>$C(o,e),[o,e]),{fields:c}=$m(),u=(0,l.useMemo)(()=>v6(IC(e,o),e,o,c),[e,o,c]),d=t.filter,f=(0,l.useMemo)(()=>QC(s,d),[s,d]),p=f.ok?f.state:uC,m=f.ok?f.extras:[],{orderBy:h,filterLayout:g}=t,_=gn(),[v,y]=(0,l.useState)(!1),b=ow({model:e,resources:n.resources,views:n.views,view:o,state:p,extras:m}),x=(0,l.useMemo)(()=>gg(e,o,u.map(e=>e.id)),[e,o,u]),S=lw({resources:n.resources,views:n.views,model:e,columns:x,filter:f.ok?d:``,orderBy:h}),C=fg(o,t.display),w=Nw(e,S.page,S.key,C!==void 0),T=qm(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=tg(a),{state:k}=B(),A=_w({model:e,view:o,restore:vw(e),onReview:e=>i({kind:`record`,resource:a,key:e.key})}),j=(e,t=m)=>r({filter:qC(s,e,t)}),M=b6(m),N=e=>{let t=m.filter(e=>e.kind!==`search`);j(p,e?[...t,y6.search(e)]:t)},ee=o?.names?.plural??W(a),te=(0,I.jsx)(EC,{layout:g,config:b,value:p,onChange:j}),ne=pC(b,p),re=(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)(Rt,{className:`size-3.5`}),`Filters`,ne.length>0&&` (${ne.length})`]}),(0,I.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,I.jsx)(sC,{scroll:!0,chips:ne,onRemove:e=>j(mC(p,e)),onClear:()=>j(uC)})})]}),(0,I.jsx)(uw,{title:`Filters`,open:v,onClose:()=>y(!1),children:(0,I.jsx)(EC,{layout:`panel`,fullWidth:!0,config:b,value:p,onChange:j})})]}),ie=t=>i({kind:`record`,resource:a,key:Ym(e,t)}),ae=S.source?(0,I.jsx)(aC,{columns:u,source:S.source,sort:xg(h),onSortChange:e=>r({orderBy:Sg(e)}),onOpenRow:ie,rowActions:[{label:`Open ${D.toLowerCase()}`,onSelect:ie},...u_(O,`delete`)?[{label:`Delete`,destructive:!0,available:e=>d_(e,`delete`),onSelect:e=>void A.start(E(e))}]:[]],bulkActions:u_(O,`delete`)?[{label:e=>`Delete ${e}`,destructive:!0,onRun:e=>A.startBulk(e.map(E))}]:[],rowNumbers:!1,pinKey:k.kind===`signed-in`?A_(k.user.id,a):void 0,className:`min-h-0 flex-1`}):(0,I.jsx)(`div`,{className:`flex-1 rounded-lg border bg-surface`}),oe=C?C.kind===`cards`?(0,I.jsx)(Sw,{model:e,view:o,display:C,list:w}):(0,I.jsx)(Dw,{display:C,list:w}):ae;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)(rd,{title:ee,subtitle:o?.help,actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Aw,{view:o,value:C?.name??`table`,onChange:e=>r({display:e})}),C&&(0,I.jsx)(Mw,{model:e,view:o,display:C,orderBy:h,onChange:e=>r({orderBy:e})}),e.search?.length?(0,I.jsx)(_6,{value:M?.kind===`search`?M.text:``,onCommit:N,placeholder:`Search ${ee.toLowerCase()}`}):null,u_(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()]})]})}),!f.ok&&(0,I.jsx)(Zg,{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)(Zg,{title:`Could not load rows`,error:S.error}),o?.chart&&(0,I.jsx)(g6,{resource:a,chart:o.chart,title:`${ee} created`,noun:ee.toLowerCase(),filter:f.ok?d:``}),_?g===`bar`&&te:re,_&&g===`panel`?(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-4`,children:[te,oe]}):oe]})},C6=({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)(Bm,{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)})}),w6=e=>e?.role===`owner`?[`owner`,`admin`,`member`]:[`admin`,`member`],T6=({member:e,current:t,onChanged:n})=>{let{session:r,organizations:i}=B(),a=t.organization.id,{busy:o,error:s,run:c}=Vm(),l=i?.roles??[],u=e.id===t.memberId,d=w6(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:jm[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)(C6,{roles:l,selected:e.appRoles,grantable:Pm(l,t),disabled:o,onChange:t=>void c(async()=>{await r.organizations.setAppRoles(e.id,t),n()})}),(0,I.jsx)(Dd,{message:s})]})},E6=({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 qs?cd(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)(rd,{title:`Members`,subtitle:`Who works in ${e.organization.name}, and with which roles.`}),(0,I.jsxs)(Ed,{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)(Dd,{message:i}),n?(0,I.jsx)(`ul`,{className:`divide-y rounded-md border`,children:n.map(t=>(0,I.jsx)(T6,{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)($n,{}),` Loading`]})]})]}):null},D6=({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,O6=({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}=Vm(),_=()=>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)(Ed,{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)(Dd,{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)(Qn,{"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:w6(e).map(e=>(0,I.jsx)(`option`,{value:e,children:jm[e]},e))}),(0,I.jsx)(V,{type:`submit`,variant:`primary`,loading:m,disabled:!a.trim(),children:`Invite`})]}),(0,I.jsx)(C6,{roles:i,selected:u,grantable:Pm(i,e),onChange:d})]}),(0,I.jsx)(D6,{link:f})]})},k6=({invitation:e,organizationId:t,onChanged:n})=>{let{session:r,organizations:i}=B(),[a,o]=(0,l.useState)(),{busy:s,error:c,run:u}=Vm(),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:[jm[e.role],e.appRoles.length>0&&` · ${e.appRoles.map(e=>Mm(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)(Dd,{message:c}),(0,I.jsx)(D6,{link:a})]})},A6=({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)(rd,{title:`Invitations`,subtitle:`People invited to ${e.organization.name}.`}),(0,I.jsx)(O6,{current:e,onSent:a}),(0,I.jsx)(Ed,{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)(k6,{invitation:e,organizationId:i,onChanged:a},e.id))})})]})},j6=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 qs?cd(e):`Could not read your organizations`))},[e,t,c]),{current:n,organizations:i,...o&&{error:o},reload:d}},M6=e=>window.location.assign(`${e}/`),N6=({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}=Vm(),f=i.trim()!==e.name||o!==e.slug;return(0,I.jsxs)(Ed,{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)(Dd,{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)(Qn,{"aria-label":`Name`,value:i,disabled:!t,onChange:e=>a(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(Qn,{"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`})]})]})},P6=({organization:e,memberId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(``),{busy:s,error:c,run:u}=Vm();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)(Ed,{title:`Hand over`,description:`Make another member the owner. You stay as an admin.`,children:[(0,I.jsx)(Dd,{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`})]})]})},F6=({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}=Vm(),d=()=>u(async()=>{await n.organizations.remove(e.id),M6(t)});return(0,I.jsxs)(Ed,{title:`Delete organization`,description:`Takes the organization and its members and invitations away. Its records must be deleted first.`,children:[(0,I.jsx)(Dd,{message:r?void 0:c}),(0,I.jsx)(V,{variant:`danger`,onClick:()=>i(!0),children:`Delete organization`}),r&&(0,I.jsxs)(Td,{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)(Dd,{message:c}),(0,I.jsx)(Qn,{"aria-label":`Organization name`,value:a,onChange:e=>o(e.target.value)})]})]})},I6=({organization:e,basePath:t,owner:n})=>{let{session:r}=B(),{busy:i,error:a,run:o}=Vm();return(0,I.jsxs)(Ed,{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)(Dd,{message:a}),(0,I.jsxs)(V,{loading:i,onClick:()=>void o(async()=>{await r.organizations.leave(e.id),M6(t)}),children:[`Leave `,e.name]})]})},L6=({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)(rd,{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)(rd,{title:r.name,subtitle:e.role?`You are ${jm[e.role].toLowerCase()} here.`:`You work here through your global roles, without being a member.`}),(0,I.jsx)(N6,{organization:r,editable:Nm(e),onSaved:n},`${r.name}/${r.slug}`),i&&e.memberId&&(0,I.jsx)(P6,{organization:r,memberId:e.memberId}),e.role&&(0,I.jsx)(I6,{organization:r,basePath:t,owner:i}),i&&(0,I.jsx)(F6,{organization:r,basePath:t})]})},R6=e=>e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,63),z6=({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)(Mn,{tone:`green`,children:`Current`}):(0,I.jsx)(V,{size:`sm`,loading:n,onClick:r,children:`Open`})]}),B6=({basePath:e})=>{let{session:t}=B(),[n,r]=(0,l.useState)(``),[i,a]=(0,l.useState)(),{busy:o,error:s,run:c}=Vm(),u=()=>c(async()=>{await t.organizations.create({name:n.trim(),slug:i??R6(n)}),M6(e)});return(0,I.jsxs)(Ed,{title:`New organization`,description:`You become its owner, with every role, and work in it once it is made.`,children:[(0,I.jsx)(Dd,{message:s}),(0,I.jsxs)(`form`,{className:`flex flex-col gap-2 sm:flex-row`,onSubmit:e=>{e.preventDefault(),u()},children:[(0,I.jsx)(Qn,{"aria-label":`Name`,placeholder:`Name`,value:n,onChange:e=>r(e.target.value),wrapperClassName:`flex-1`}),(0,I.jsx)(Qn,{"aria-label":`Slug`,placeholder:`slug`,value:i??R6(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`})]})]})},V6=({basePath:e,currentId:t})=>{let{session:n}=B(),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)([]),{busy:s,error:c,run:u}=Vm();return(0,l.useEffect)(()=>{let e=setTimeout(()=>void n.organizations.search(r).then(o,()=>o([])),200);return()=>clearTimeout(e)},[n,r]),(0,I.jsxs)(Ed,{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)(Dd,{message:c}),(0,I.jsx)(Qn,{"aria-label":`Find an organization`,placeholder:`Name or slug`,value:r,onChange:e=>i(e.target.value),leading:(0,I.jsx)(Et,{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)(z6,{organization:r,current:r.id===t,busy:s,onOpen:()=>void u(async()=>{await n.organizations.switchTo(r.id),M6(e)})},r.id))})]})},H6=()=>{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)(Ed,{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=>Mm(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))})})},U6=({state:e,basePath:t})=>{let{session:n,organizations:r,state:i}=B(),{busy:a,error:o,run:s}=Vm(),c=i.kind===`signed-in`?i.user:void 0,l=r?.create===`everyone`||c!==void 0&&Wm(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)(rd,{title:`Organizations`,subtitle:`You work in one organization at a time; what you see follows from your roles there.`}),(0,I.jsxs)(Ed,{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)(Dd,{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)(z6,{organization:e,current:e.id===u,busy:a,onOpen:()=>void s(async()=>{await n.organizations.switchTo(e.id),M6(t)})},e.id))})]}),(0,I.jsx)(H6,{}),l&&(0,I.jsx)(B6,{basePath:t}),(e.current?.globalRoles.length??0)>0&&(0,I.jsx)(V6,{basePath:t,currentId:u})]})},W6=(e,t)=>t?.active?{...e,role:t.active}:e,G6=(e,t)=>e instanceof qs?cd(e):t,K6=e=>{let{session:t}=B(),n=Zm(),[r,i]=(0,l.useState)();(0,l.useEffect)(()=>{t.roles.current().then(i,e=>n.show({state:`error`,title:G6(e,`Could not read your roles`)}))},[t,n]);let a=(0,l.useCallback)(r=>void t.roles.switchTo(r).then(e,e=>n.show({state:`error`,title:G6(e,`Could not switch the role`)})),[t,n,e]);return{...r&&{current:r},switchTo:a}},q6=e=>new Set((e.userMenu?.items??[]).flatMap(e=>e.kind===`resource`?[e.resource]:e.kind===`page`?[e.page]:[])),J6=(e,t,n)=>(e.userMenu?.items??[]).map((r,i)=>{if(r.kind===`link`)return{id:`link-${i}`,label:r.label,icon:Vh(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:Vh(r.icon??i?.icon,Je),href:$o({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:Vh(r.icon,zh(r.resource)),href:$o({kind:`list`,resource:r.resource},t),active:r.resource===n}}),Y6={sales:`Sales`,crm:`CRM`,catalog:`Catalog`,inventory:`Inventory`,core:`Admin`,hr:`HR`},X6=(e,t=``,n={})=>{let r=new Map,i=new Map,a=q6(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:Vh(n.icon,Je),href:$o({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??Y6[c]??W(c),u=r.get(l)??{label:l,items:[]};u.items.push({id:o.name,label:s.names?.plural??W(o.name),icon:zh(o.name),href:$o({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:zh(r),href:$o({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))}))},Z6=({action:e,label:t,danger:n,onCancel:r,onConfirm:i})=>(0,I.jsx)(Td,{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})]})}),Q6=(0,l.createContext)(void 0),$6=({value:e,children:t})=>(0,I.jsx)(Q6.Provider,{value:e,children:t}),e8=()=>(0,l.useContext)(Q6),t8=(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]))),n8=(e,t)=>({model:e,record:t,key:Yo(Ym(e,t)),etag:typeof t.etag==`string`?t.etag:void 0,permissions:t.permissions}),r8=(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}}),i8=(e,t=``)=>vm(r8(U(),e,t)),a8=(e,{filter:t=``,sort:n=``,key:r})=>{let i=U();return vm({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{...n8(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]?n8(e,a.items[0]):null}})},o8=(e,{filter:t=``,sort:n=``,pageSize:r,pageToken:i=``})=>{let a=U();return vm({queryKey:H.list(e.name,t,n,r,i),placeholderData:mp,queryFn:()=>a.list(e.name,{filter:t||void 0,orderBy:n||void 0,pageSize:r,pageToken:i||void 0})})},s8=()=>{let e=Wf();return(0,l.useCallback)(t=>e.invalidateQueries({predicate:e=>e.queryKey[1]===t}),[e])},c8=e=>e instanceof Error?e.message:`Something went wrong`,l8=(e,t,n)=>{let{views:r}=G(),{actions:i}=$m(),a=tg(e),o=U(),s=wm(e),c=Zm(),u=s8(),{go:d}=Eg(),[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`&&(!u_(a,`update`)||t?.permissions?.update===!1))return`You cannot change this record`;if(n===`delete`&&(!u_(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(Vo(a.to,t?.record)):window.location.assign(t8(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:c8(t)})),p(void 0))}}},u8=(e,t,n)=>{let r=l8(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()}},d8=e=>e.props,f8=({node:e})=>{let{name:t,resource:n,label:r,variant:i}=d8(e),a=e8(),o=u8(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)(Z6,{action:o.action,label:u,danger:i===`danger`,onCancel:()=>c(!1),onConfirm:()=>{c(!1),o.run()}})]})},p8=({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})]}),m8=({children:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e}),h8=({node:e,children:t,slots:n})=>{let{title:r,description:i}=d8(e);return(0,I.jsx)(p8,{title:r,description:i,actions:n.actions,className:`h-full`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})})},g8=({model:e,filter:t,sort:n,limit:r=12,title:i,description:a,empty:o,actions:s,children:c})=>{let l=o8(e,{filter:t,sort:n,pageSize:r}),u=l.data?.items??[];return(0,I.jsx)(p8,{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)(fS,{className:`h-24 w-56`},t))}):l.error?(0,I.jsx)(Zg,{title:`Could not load`,error:l.error}):u.length===0?(0,I.jsx)(m8,{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=n8(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)($6,{value:n,children:c})},n.key)})})})},_8=({node:e,children:t,slots:n})=>{let{resource:r,...i}=d8(e),a=G().resources[r];return a?(0,I.jsx)(g8,{...i,model:a,actions:n.actions,children:t}):null},v8=({field:e,value:t,known:n})=>{let{resources:r,views:i}=G(),a=U(),o=Wf(),s=e.relation?r[e.relation.resource]:void 0,c=String(t),l=vm({queryKey:H.relatedLabel(s?.name??``,c),enabled:!!s&&n===void 0,queryFn:async()=>(await iw(o,a,s,[c],i[s.name])).get(c)??c});return s?(0,I.jsx)(Dg,{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})},y8=({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)(v8,{field:t,value:n,known:i});let s=t.type===`file`?Fg(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=Hg(t,n,o);return t.type===`enum`||o.format===`badge`?(0,I.jsx)(Mn,{tone:OC(String(n)),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})},b8=e=>{let{views:t}=G(),n=i_(e.field,t[e.model.name]?.fields[e.field.name]),r=(0,I.jsx)(y8,{...e});return n?(0,I.jsx)(o_,{shown:n,part:`display`,field:e.field,value:e.value,fallback:r}):r},x8=(e,t,n)=>{if(!t)return[];let r=Ks(e,t.model.name,n);return r.ok?r.steps:[]},S8=(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}}),C8=(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}},w8=(e,t)=>{let{resources:n}=G(),r=x8(n,e,t);return C8(e,r,vm(S8(U(),Wf(),e,t,r)))},T8=(e,t)=>{let{resources:n}=G(),r=U(),i=Wf(),a=t.map(t=>x8(n,e,t)),o=gm({queries:t.map((t,n)=>S8(r,i,e,t,a[n]))});return t.map((t,n)=>C8(e,a[n],o[n]))},E8=(e,t)=>{if(t)return t;let n=e.split(`.`).map(e=>W(e).toLowerCase()).join(` `);return n[0].toUpperCase()+n.slice(1)},D8=({node:e})=>{let{name:t,label:n,format:r}=d8(e),{views:i}=G(),a=w8(e8(),t);if(a.state===`missing`)return null;let o=a.state===`loading`?(0,I.jsx)(fS,{className:`h-4 w-24`}):(0,I.jsx)(b8,{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??E8(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})]})},O8={1:``,2:`md:grid-cols-2`,3:`md:grid-cols-2 xl:grid-cols-3`,4:`sm:grid-cols-2 xl:grid-cols-4`},k8={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`},A8=({node:e,children:t})=>{let{columns:n=2}=d8(e),r=e.children;return(0,I.jsx)(`div`,{className:F(`grid grid-cols-1 gap-4`,O8[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&&k8[i]),children:e},t)})})},j8=`font-medium text-primary-text hover:underline`,M8=({node:e})=>{let t=d8(e),n=e8()?.record,r=e.children.filter(e=>typeof e==`string`).join(``);if(t.to){let e=Vo(t.to,n);return(0,I.jsx)(Dg,{to:e,className:j8,children:r||$o(e)})}let i=t.href??``;return(0,I.jsx)(`a`,{href:i,className:j8,...i.startsWith(`http`)&&{target:`_blank`,rel:`noreferrer`},children:r||i})},N8=(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]:Ug(n.record[t])];let i=r.default&&`value`in r.default?r.default.value:void 0;return[t,r.type===`boolean`?!!i:Ug(i)]})),P8=(e,t,n)=>Object.fromEntries(Object.entries(t).flatMap(([t,r])=>{let i=e.fields[t];return v_(r)?r.key===Ug(n.record[t])?[]:[[t,i.type===`integer`?Number(r.key):r.key]]:Yg(i,r,n.record[t])?[[t,Kg(i,r)]]:[]})),F8=({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=Zm(),p=s8(),m=u[e.name],[h,g]=(0,l.useState)(()=>N8(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,{...S_(e,c,h),...o}):d.update(e.name,t.key,P8(e,h,t),t.etag??`*`)).then(async()=>{await p(e.name),f.show({state:`success`,title:`${i??r}: saved`}),s()},e=>{Os(e)&&v(Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[]))),b(e)}),S(!1)};return(0,I.jsx)(Td,{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)(Zg,{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)(l_,{field:r,hints:m?.fields[n],value:v_(i)?i.key:i,stored:t?.record[n],relationLabel:v_(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)})]})})},I8=({model:e,recordKey:t,children:n})=>{let r=a8(e,{key:t});return(0,I.jsx)(I.Fragment,{children:n(r.data??void 0)})},L8=({node:e})=>{let t=d8(e),n=e8(),{resources:r}=G(),i=r[t.resource??n?.model.name??``],a=tg(i?.name??``),[o,s]=(0,l.useState)(!1);if(!i||!(t.mode===`create`?u_(a,`create`):u_(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)(F8,{...t,model:i,record:t.mode===`edit`?e:void 0,onClose:()=>s(!1)})]});return t.mode===`edit`&&t.recordKey!==void 0?(0,I.jsx)(I8,{model:i,recordKey:t.recordKey,children:c}):c(t.mode===`edit`?n:void 0)},R8=({node:e,children:t,slots:n})=>{let{title:r,description:i}=d8(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)(rd,{title:r,subtitle:i,actions:n.actions}),t]})})},z8=(e,t)=>{let n=e8(),r=w8(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},B8=({node:e})=>{let{value:t,max:n,label:r}=d8(e),i=z8(t,0),a=z8(n,100);if(i===void 0||a===void 0)return(0,I.jsx)(fS,{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}%`}})})]})},V8=({model:e,filter:t,sort:n,recordKey:r,title:i,description:a,empty:o,actions:s,children:c})=>{let l=a8(e,{filter:t,sort:n,key:r}),u=e=>l.data?(0,I.jsx)($6,{value:l.data,children:e}):void 0,d=l.isPending?(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(fS,{className:`h-4 w-1/2`}),(0,I.jsx)(fS,{className:`h-4 w-1/3`})]}):l.error?(0,I.jsx)(Zg,{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)(m8,{children:o??`Nothing here yet.`});return(0,I.jsx)(p8,{title:i,description:a,actions:s?u(s):void 0,className:`h-full`,children:d})},H8=({node:e,children:t,slots:n})=>{let{resource:r,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l}=d8(e),u=G().resources[r];return u?(0,I.jsx)(V8,{model:u,filter:i,sort:a,recordKey:o,title:s,description:c,empty:l,actions:n.actions,children:t}):null},U8=({node:e,children:t})=>{let{when:n}=d8(e),{resources:r}=G(),i=U(),a=e8(),o=(0,l.useMemo)(()=>vee(n),[n]),s=o.ok?o.paths:[],c=s.map(e=>bee(e,e=>!!(a&&Object.hasOwn(a.model.fields,e)))),u=s.filter((e,t)=>c[t]===void 0),d=T8(a,u),f=gm({queries:c.flatMap(e=>{let t=e===void 0?void 0:r[e];return t?[r8(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)}),yee(o,p)?(0,I.jsx)(I.Fragment,{children:t}):null},W8=`text-2xl font-semibold tracking-tight tabular-nums`,G8=({model:e,filter:t})=>{let n=i8(e,t);return n.isPending?(0,I.jsx)(fS,{className:`h-8 w-16`}):n.error?(0,I.jsx)(`span`,{className:`text-[13px] text-danger-text`,children:`Could not count`}):(0,I.jsx)(Dg,{to:{kind:`list`,resource:e.name,filter:t},className:`${W8} hover:text-primary-text`,children:n.data.toLocaleString(`en-IE`)})},K8=({field:e,format:t})=>{let n=w8(e8(),e);return n.state===`loading`?(0,I.jsx)(fS,{className:`h-8 w-16`}):n.state===`missing`?null:(0,I.jsx)(`span`,{className:W8,children:(0,I.jsx)(b8,{model:n.model,field:n.field,value:n.value,format:t})})},q8=({node:e})=>{let{label:t,value:n,resource:r,filter:i,field:a,format:o,description:s}=d8(e),{resources:c}=G(),l=r===void 0?void 0:c[r];return(0,I.jsxs)(p8,{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:W8,children:n}),l&&(0,I.jsx)(G8,{model:l,filter:i}),a!==void 0&&(0,I.jsx)(K8,{field:a,format:o})]}),s&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:s})]})},J8=(e,t,n)=>{let{resources:r,views:i}=G(),a=U(),o=Wf(),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=gm({queries:s.map(({target:e,ids:t})=>({queryKey:H.labelMap(e.name,t.join(`,`)),queryFn:()=>iw(o,a,e,t,i[e.name])}))});return new Map(s.flatMap(({name:e},t)=>c[t]?.data?[[e,c[t].data]]:[]))},Y8=e=>e.includes(`.`),X8=e=>{let{resources:t,views:n}=G();return r=>{let i=Ks(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)}},Z8=({model:e,row:t,column:n})=>{let r=w8(n8(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)(b8,{model:r.model,field:r.field,value:r.value})},Q8=({model:e,columns:t,rows:n,label:r,pager:i})=>{let{resources:a}=G(),o=X8(e),s=t[0]===void 0?void 0:Ks(a,e.name,t[0]),c=!s?.ok||s.steps.at(-1).field.type!==`relation`,l=J8(e,t.filter(e=>!Y8(e)),n),u=(t,n)=>Y8(n)?(0,I.jsx)(Z8,{model:e,row:t,column:n}):(0,I.jsx)(b8,{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=n8(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)(Dg,{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`})})]})]})},$8=(e,t)=>t?.list?.columns??Object.keys(e.fields).filter(t=>!e.primaryKey.includes(t)&&t!==e.tenant).slice(0,5),e5=({model:e,view:t,filter:n,sort:r,columns:i,pageSize:a=10,title:o,description:s,empty:c,actions:u})=>{let d=(i??$8(e,t)).filter(t=>Object.hasOwn(e.fields,t)),[f,p]=(0,l.useState)([``]),m=o8(e,{filter:n,sort:r,pageSize:a,pageToken:f.at(-1)}),h=m.data?.items??[],g=m.data?.nextPageToken;return(0,I.jsx)(p8,{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)(fS,{className:`h-4 w-full`},t))}):m.error?(0,I.jsx)(Zg,{title:`Could not load`,error:m.error}):h.length===0&&f.length===1?(0,I.jsx)(m8,{children:c??`Nothing here yet.`}):(0,I.jsx)(Q8,{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])}})})},t5={Page:R8,Grid:A8,Card:h8,Stat:q8,RecordCard:H8,Field:D8,Table:({node:e,slots:t})=>{let n=d8(e),{resources:r,views:i}=G(),a=r[n.resource];return a?(0,I.jsx)(e5,{...n,model:a,view:i[a.name],actions:t.actions}):null},CardRow:_8,Progress:B8,ModalForm:L8,Action:f8,Show:U8,Link:M8},n5=e=>typeof e==`string`||!e.custom&&e.type===`Link`,r5=e=>{let t=[];for(let n of e){let e=t.at(-1);n5(n)&&e&&n5(e[0])?e.push(n):t.push([n])}return t.map((e,t)=>{let[n]=e;return n5(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)(o5,{node:e},t))},t):(0,I.jsx)(o5,{node:n},t)})},i5=e=>Hs(e)||Array.isArray(e)&&e.length>0&&e.every(Hs),a5=e=>Object.fromEntries(Object.entries(e.props).flatMap(([e,t])=>i5(t)?[[e,(0,I.jsx)(I.Fragment,{children:r5(Array.isArray(t)?t:[t])})]]:[])),o5=({node:e})=>{let{components:t}=$m();if(e.custom){let n=t?.[e.type];return n?(0,I.jsx)(kg,{name:e.type,children:(0,I.jsx)(n,{...Po(e.props),children:e.children.length>0?r5(e.children):void 0})}):(0,I.jsxs)(Og,{children:[`No component is registered as `,e.type,`. Export it from protobase.ui.tsx, or load the plugin that provides it.`]})}let n=t5[e.type];return n?(0,I.jsx)(n,{node:e,slots:a5(e),children:r5(e.children)}):(0,I.jsxs)(Og,{children:[e.type,` is not a block this version of the app knows.`]})},s5=({name:e})=>{let t=G().pages[e];return t?(0,I.jsx)(o5,{node:t.tree}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no page called `,e,`.`]})},c5=e=>typeof e==`string`&&e.trim()!==``,l5=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 c5(t)?Number.isInteger(r)?c5(i)?c5(a)?o!==void 0&&!c5(o)?{problem:`its plugin.json names a stylesheet that is no URL`}:n!==void 0&&!c5(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`}},u5=class extends Error{name=`UiConflictError`},d5=e=>Object.keys(e).some(e=>e==="default"||/^[A-Z]/.test(e))?c(e):e,f5=(e,t)=>[...(e.extends??[]).map(d5).flatMap((e,n)=>f5(e,e.name??`${t} extends[${n}]`)),{ui:e,label:t}],p5=(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 u5(`${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},m5=e=>e.length<=1?e[0]:()=>e.map((e,t)=>(0,I.jsx)(e,{},t)),h5=(...e)=>{let t=e.flatMap((e,t)=>f5(e,e.name??`UI config ${t+1}`)),n=p5(`The component`,t,e=>e.components),r=p5(`The action handler`,t,e=>e.actions),i=p5(`The field type`,t,e=>e.fields),a=m5(t.flatMap(({ui:e})=>e.shell?.actions?[e.shell.actions]:[])),o=m5(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}}}}},g5=(0,l.createContext)(null),_5=g5.Provider,v5=()=>{let e=(0,l.useContext)(g5);if(!e)throw Error(`usePlugin is for the components of a plugin the app loaded`);return e},y5=(e,t,n)=>{let r=n=>(0,I.jsx)(_5,{value:e,children:(0,I.jsx)(t,{...n})});return r.displayName=`${e.name}:${n}`,r},b5=(e,t,n)=>({of:n.of,display:y5(e,n.display,`fields.${t}.display`),...n.editor&&{editor:y5(e,n.editor,`fields.${t}.editor`)},...n.cell&&{cell:y5(e,n.cell,`fields.${t}.cell`)}}),x5=(e,t)=>{let n=h5({...c(t),name:e.name}),r=Object.fromEntries(Object.entries(n.components??{}).map(([t,n])=>[t,y5(e,n,t)])),i=n.fields&&Object.fromEntries(Object.entries(n.fields).map(([t,n])=>[t,b5(e,t,n)])),a=n.shell&&{...n.shell.actions&&{actions:y5(e,n.shell.actions,`shell.actions`)},...n.shell.rightPanel&&{rightPanel:y5(e,n.shell.rightPanel,`shell.rightPanel`)}};return{name:e.name,components:r,...n.actions&&{actions:n.actions},...i&&{fields:i},...a&&{shell:a}}},S5=`0.12.4`,C5={pluginApi:1}.pluginApi,w5=S5,T5=`modulepreload`,E5=function(e){return`/`+e},D5={},O5=function(e){return e.pathname.endsWith(`.css`)},k5=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=E5(t,n);let r=s(t);if(r.href in D5)return;D5[r.href]=!0;let i=O5(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:T5,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},A5={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=>k5(()=>import(e),[])},j5={api:C5,version:w5},M5=e=>e instanceof Error?e.message:String(e),N5=async(e,t,n,r=j5)=>{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=l5(n.json);if(`problem`in s)return a(s.problem);let{manifest:c}=s;o=c.name;let l=ls(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:x5(d,u)}}catch(e){return a(`it could not be loaded: ${M5(e)}`,o)}},P5=(e,t)=>{let n=h5(e??{}),r=[],i=[];for(let e of t){if(e.kind===`off`){i.push(e);continue}try{h5(...r,e.ui,n),r.push(e.ui)}catch(t){if(!(t instanceof u5))throw t;i.push({kind:`off`,url:e.plugin.url,name:e.plugin.name,reason:t.message})}}return{ui:r.length===0?n:h5(...r,n),off:i}},F5=1e4,I5=[],L5=(e,t)=>{let n=JSON.stringify(e),[r,i]=(0,l.useState)({key:`[]`,loads:I5,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()},F5);return e.forEach((e,n)=>{N5(e,t,window.location.href).then(e=>{o[n]=e,s()})}),()=>{r=!1,clearTimeout(c)}},[n,t]),e.length===0?{loads:I5,settled:!0}:r.key===n?r:{loads:I5,settled:!1}},R5=(0,l.createContext)([]),z5=()=>(0,l.useContext)(R5),B5=({ui:e,loader:t=A5,children:n})=>{let{plugins:r=[]}=G(),{loads:i,settled:a}=L5(r,t),o=(0,l.useMemo)(()=>P5(e,i),[e,i]);return a?(0,I.jsx)(Qm.Provider,{value:o.ui,children:(0,I.jsx)(R5.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)($n,{}),` Loading`]})},V5=({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)(tee,{"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)(ln,{"aria-hidden":!0,className:`size-4`})})]})},H5=({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))}),U5=({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))}),W5=({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]}),G5=({title:e,rows:t})=>t.length===0?null:(0,I.jsx)(W5,{title:e,children:(0,I.jsx)(H5,{rows:t})}),K5=({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)(Mn,{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)(kn,{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}=$m(),r=n?.[e.component],i=r?(0,I.jsx)($6,{value:t,children:(0,I.jsx)(kg,{name:e.component,children:(0,I.jsx)(r,{...Po(e.props??{})})})}):(0,I.jsxs)(Og,{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)(W5,{title:e.title,children:i}):i:e.title?(0,I.jsx)(g_,{title:e.title,children:i}):(0,I.jsx)(`section`,{className:`py-8`,children:i})},Y5=({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))})]}),X5={wallet:an,"file-text":He,send:At},Z5=e=>e?X5[e]??dn:dn,ine=({model:e,stored:t,recordKey:n})=>{let{go:r}=Eg(),i={model:e,record:t.record,key:n,etag:t.etag,permissions:t.permissions},a=l8(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)(Y5,{actions:a.actions.map(e=>({name:e.label,icon:Z5(e.icon),blocked:a.blocked(e),running:a.running===e.name,onRun:()=>e.confirm?s(e):void a.run(e)}))}),o&&(0,I.jsx)(Z6,{action:o,label:o.label,danger:o.run?.kind===`delete`,onCancel:()=>s(void 0),onConfirm:()=>{s(void 0),a.run(o)}})]})},Q5=[[`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]];Q5.length;var ane=e=>{let[t,n,r]=Q5[e%Q5.length],i=e%Q5.length;return{id:`P-${200+i}`,sku:`${n}-${String(1e3+i*7).padStart(4,`0`)}`,name:t,category:n,priceCents:r}},$5=`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]`,e7=e=>e.quantity*e.unitPriceCents,one=(e,t=.21)=>{let n=e.reduce((e,t)=>e+e7(t),0),r=Math.round(n*t);return{subtotalCents:n,vatCents:r,totalCents:n+r}},sne=({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))})]})},t7=({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 cne(){var e=[...arguments];return(0,l.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var n7=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function r7(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function i7(e){return`nodeType`in e}function a7(e){return e?r7(e)?e:i7(e)?e.ownerDocument?.defaultView??window:window:window}function o7(e){let{Document:t}=a7(e);return e instanceof t}function s7(e){return!r7(e)&&e instanceof a7(e).HTMLElement}function c7(e){return e instanceof a7(e).SVGElement}function l7(e){return e?r7(e)?e.document:i7(e)?o7(e)?e:s7(e)||c7(e)?e.ownerDocument:document:document:document}var u7=n7?l.useLayoutEffect:l.useEffect;function d7(e){let t=(0,l.useRef)(e);return u7(()=>{t.current=e}),(0,l.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function lne(){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 f7(e,t){t===void 0&&(t=[e]);let n=(0,l.useRef)(e);return u7(()=>{n.current!==e&&(n.current=e)},t),n}function p7(e,t){let n=(0,l.useRef)();return(0,l.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function m7(e){let t=d7(e),n=(0,l.useRef)(null);return[n,(0,l.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function h7(e){let t=(0,l.useRef)();return(0,l.useEffect)(()=>{t.current=e},[e]),t.current}var g7={};function _7(e,t){return(0,l.useMemo)(()=>{if(t)return t;let n=g7[e]==null?0:g7[e]+1;return g7[e]=n,e+`-`+n},[e,t])}function v7(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 y7=v7(1),b7=v7(-1);function une(e){return`clientX`in e&&`clientY`in e}function x7(e){if(!e)return!1;let{KeyboardEvent:t}=a7(e.target);return t&&e instanceof t}function dne(e){if(!e)return!1;let{TouchEvent:t}=a7(e.target);return t&&e instanceof t}function S7(e){if(dne(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 une(e)?{x:e.clientX,y:e.clientY}:null}var C7=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[C7.Translate.toString(e),C7.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),w7=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function fne(e){return e.matches(w7)?e:e.querySelector(w7)}var pne={display:`none`};function mne(e){let{id:t,value:n}=e;return l.createElement(`div`,{id:t,style:pne},n)}function hne(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 gne(){let[e,t]=(0,l.useState)(``);return{announce:(0,l.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var T7=(0,l.createContext)(null);function _ne(e){let t=(0,l.useContext)(T7);(0,l.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function vne(){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 yne={draggable:`
|
|
62
62
|
To pick up a draggable item, press the space bar.
|
|
63
63
|
While dragging, use the arrow keys to move the item.
|
|
64
64
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
65
|
-
`},bne={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function xne(e){let{announcements:t=bne,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=yne}=e,{announce:a,announcement:o}=gne(),s=_7(`DndLiveRegion`),[c,u]=(0,l.useState)(!1);if((0,l.useEffect)(()=>{u(!0)},[]),_ne((0,l.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let d=l.createElement(l.Fragment,null,l.createElement(mne,{id:r,value:i.draggable}),l.createElement(hne,{id:s,announcement:o}));return n?(0,Yx.createPortal)(d,n):d}var E7;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(E7||={});function D7(){}function O7(e,t){return(0,l.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function Sne(){var e=[...arguments];return(0,l.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var k7=Object.freeze({x:0,y:0});function A7(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function j7(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Cne(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function M7(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function N7(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function P7(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var wne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=P7(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=A7(P7(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(j7)},Tne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=M7(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=M7(r),o=i.reduce((e,t,r)=>e+A7(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(j7)};function Ene(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Dne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Ene(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(Cne)};function One(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function F7(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:k7}function kne(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Ane=kne(1);function jne(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Mne(e,t,n){let r=jne(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Nne={ignoreTransform:!1};function I7(e,t){t===void 0&&(t=Nne);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=a7(e).getComputedStyle(e);t&&(n=Mne(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function L7(e){return I7(e,{ignoreTransform:!0})}function Pne(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Fne(e,t){return t===void 0&&(t=a7(e).getComputedStyle(e)),t.position===`fixed`}function Ine(e,t){t===void 0&&(t=a7(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function R7(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(o7(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!s7(i)||c7(i)||n.includes(i))return n;let a=a7(e).getComputedStyle(i);return i!==e&&Ine(i,a)&&n.push(i),Fne(i,a)?n:r(i.parentNode)}return e?r(e):n}function z7(e){let[t]=R7(e,1);return t??null}function B7(e){return!n7||!e?null:r7(e)?e:i7(e)?o7(e)||e===l7(e).scrollingElement?window:s7(e)?e:null:null}function V7(e){return r7(e)?e.scrollX:e.scrollLeft}function H7(e){return r7(e)?e.scrollY:e.scrollTop}function U7(e){return{x:V7(e),y:H7(e)}}var W7;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(W7||={});function G7(e){return!n7||!e?!1:e===document.scrollingElement}function K7(e){let t={x:0,y:0},n=G7(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Lne={x:.2,y:.2};function Rne(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Lne);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=K7(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=W7.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=W7.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=W7.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=W7.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function zne(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function q7(e){return e.reduce((e,t)=>y7(e,U7(t)),k7)}function Bne(e){return e.reduce((e,t)=>e+V7(t),0)}function Vne(e){return e.reduce((e,t)=>e+H7(t),0)}function Hne(e,t){if(t===void 0&&(t=I7),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);z7(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Une=[[`x`,[`left`,`right`],Bne],[`y`,[`top`,`bottom`],Vne]],J7=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=R7(t),r=q7(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Une)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Y7=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function Wne(e){let{EventTarget:t}=a7(e);return e instanceof t?e:l7(e)}function X7(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var Z7;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Z7||={});function Q7(e){e.preventDefault()}function Gne(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var $7={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},Kne=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},e9=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Y7(l7(t)),this.windowListeners=new Y7(a7(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Z7.Resize,this.handleCancel),this.windowListeners.add(Z7.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Z7.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Hne(n),t(k7)}handleKeyDown(e){if(x7(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=$7,coordinateGetter:a=Kne,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:k7;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=b7(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=K7(n),p=zne(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,y7(b7(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};e9.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=$7,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function t9(e){return!!(e&&`distance`in e)}function n9(e){return!!(e&&`delay`in e)}var r9=class{constructor(e,t,n){n===void 0&&(n=Wne(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=l7(i),this.documentListeners=new Y7(this.document),this.listeners=new Y7(n),this.windowListeners=new Y7(a7(i)),this.initialCoordinates=S7(r)??k7,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Z7.Resize,this.handleCancel),this.windowListeners.add(Z7.DragStart,Q7),this.windowListeners.add(Z7.VisibilityChange,this.handleCancel),this.windowListeners.add(Z7.ContextMenu,Q7),this.documentListeners.add(Z7.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(n9(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(t9(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Z7.Click,Gne,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Z7.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=S7(e)??k7,s=b7(n,o);if(!t&&a){if(t9(a)){if(a.tolerance!=null&&X7(s,a.tolerance))return this.handleCancel();if(X7(s,a.distance))return this.handleStart()}if(n9(a)&&X7(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},qne={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},i9=class extends r9{constructor(e){let{event:t}=e,n=l7(t.target);super(e,qne,n)}};i9.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var Jne={move:{name:`mousemove`},end:{name:`mouseup`}},a9;(function(e){e[e.RightClick=2]=`RightClick`})(a9||={});var o9=class extends r9{constructor(e){super(e,Jne,l7(e.event.target))}};o9.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==a9.RightClick&&(r?.({event:n}),!0)}}];var s9={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},c9=class extends r9{constructor(e){super(e,s9)}static setup(){return window.addEventListener(s9.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(s9.move.name,e)};function e(){}}};c9.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var l9;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(l9||={});var u9;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(u9||={});function Yne(e){let{acceleration:t,activator:n=l9.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=u9.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e,m=Zne({delta:f,disabled:!a}),[h,g]=lne(),_=(0,l.useRef)({x:0,y:0}),v=(0,l.useRef)({x:0,y:0}),y=(0,l.useMemo)(()=>{switch(n){case l9.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case l9.DraggableRect:return i}},[n,i,c]),b=(0,l.useRef)(null),x=(0,l.useCallback)(()=>{let e=b.current;if(!e)return;let t=_.current.x*v.current.x,n=_.current.y*v.current.y;e.scrollBy(t,n)},[]),S=(0,l.useMemo)(()=>s===u9.TreeOrder?[...u].reverse():u,[s,u]);(0,l.useEffect)(()=>{if(!a||!u.length||!y){g();return}for(let e of S){if(r?.(e)===!1)continue;let n=u.indexOf(e),i=d[n];if(!i)continue;let{direction:a,speed:s}=Rne(e,i,y,t,p);for(let e of[`x`,`y`])m[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){g(),b.current=e,h(x,o),_.current=s,v.current=a;return}}_.current={x:0,y:0},v.current={x:0,y:0},g()},[t,x,r,g,a,o,JSON.stringify(y),JSON.stringify(m),h,u,S,d,JSON.stringify(p)])}var Xne={x:{[W7.Backward]:!1,[W7.Forward]:!1},y:{[W7.Backward]:!1,[W7.Forward]:!1}};function Zne(e){let{delta:t,disabled:n}=e,r=h7(t);return p7(e=>{if(n||!r||!e)return Xne;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[W7.Backward]:e.x[W7.Backward]||i.x===-1,[W7.Forward]:e.x[W7.Forward]||i.x===1},y:{[W7.Backward]:e.y[W7.Backward]||i.y===-1,[W7.Forward]:e.y[W7.Forward]||i.y===1}}},[n,t,r])}function Qne(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return p7(e=>t==null?null:r??e??null,[r,t])}function $ne(e,t){return(0,l.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var d9;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(d9||={});var f9;(function(e){e.Optimized=`optimized`})(f9||={});var p9=new Map;function ere(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,l.useState)(null),{frequency:s,measure:c,strategy:u}=i,d=(0,l.useRef)(e),f=_(),p=f7(f),m=(0,l.useCallback)(function(e){e===void 0&&(e=[]),!p.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[p]),h=(0,l.useRef)(null),g=p7(t=>{if(f&&!n)return p9;if(!t||t===p9||d.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new J7(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,f,c]);return(0,l.useEffect)(()=>{d.current=e},[e]),(0,l.useEffect)(()=>{f||m()},[n,f]),(0,l.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,l.useEffect)(()=>{f||typeof s!=`number`||h.current!==null||(h.current=setTimeout(()=>{m(),h.current=null},s))},[s,f,m,...r]),{droppableRects:g,measureDroppableContainers:m,measuringScheduled:a!=null};function _(){switch(u){case d9.Always:return!1;case d9.BeforeDragging:return n;default:return!n}}}function m9(e,t){return p7(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function tre(e,t){return m9(e,t)}function nre(e){let{callback:t,disabled:n}=e,r=d7(t),i=(0,l.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,l.useEffect)(()=>()=>i?.disconnect(),[i]),i}function h9(e){let{callback:t,disabled:n}=e,r=d7(t),i=(0,l.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,l.useEffect)(()=>()=>i?.disconnect(),[i]),i}function rre(e){return new J7(I7(e),e)}function g9(e,t,n){t===void 0&&(t=rre);let[r,i]=(0,l.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=nre({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=h9({callback:a});return u7(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function ire(e){return F7(e,m9(e))}var _9=[];function are(e){let t=(0,l.useRef)(e),n=p7(n=>e?n&&n!==_9&&e&&t.current&&e.parentNode===t.current.parentNode?n:R7(e):_9,[e]);return(0,l.useEffect)(()=>{t.current=e},[e]),n}function ore(e){let[t,n]=(0,l.useState)(null),r=(0,l.useRef)(e),i=(0,l.useCallback)(e=>{let t=B7(e.target);t&&n(e=>e?(e.set(t,U7(t)),new Map(e)):null)},[]);return(0,l.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=B7(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,U7(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{B7(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,l.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>y7(e,t),k7):q7(e):k7,[e,t])}function v9(e,t){t===void 0&&(t=[]);let n=(0,l.useRef)(null);return(0,l.useEffect)(()=>{n.current=null},t),(0,l.useEffect)(()=>{let t=e!==k7;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?b7(e,n.current):k7}function sre(e){(0,l.useEffect)(()=>{if(!n7)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function cre(e,t){return(0,l.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function y9(e){return(0,l.useMemo)(()=>e?Pne(e):null,[e])}var b9=[];function lre(e,t){t===void 0&&(t=I7);let[n]=e,r=y9(n?a7(n):null),[i,a]=(0,l.useState)(b9);function o(){a(()=>e.length?e.map(e=>G7(e)?r:new J7(t(e),e)):b9)}let s=h9({callback:o});return u7(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function ure(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return s7(t)?t:e}function dre(e){let{measure:t}=e,[n,r]=(0,l.useState)(null),i=h9({callback:(0,l.useCallback)(e=>{for(let{target:n}of e)if(s7(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=m7((0,l.useCallback)(e=>{let n=ure(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,l.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var fre=[{sensor:i9,options:{}},{sensor:e9,options:{}}],pre={current:{}},x9={draggable:{measure:L7},droppable:{measure:L7,strategy:d9.WhileDragging,frequency:f9.Optimized},dragOverlay:{measure:I7}},S9=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},mre={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new S9,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:D7},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:x9,measureDroppableContainers:D7,windowRect:null,measuringScheduled:!1},hre={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:D7,draggableNodes:new Map,over:null,measureDroppableContainers:D7},C9=(0,l.createContext)(hre),w9=(0,l.createContext)(mre);function gre(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new S9}}}function _re(e,t){switch(t.type){case E7.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case E7.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case E7.DragEnd:case E7.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case E7.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new S9(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case E7.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new S9(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case E7.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new S9(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function vre(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,l.useContext)(C9),a=h7(r),o=h7(n?.id);return(0,l.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!x7(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=fne(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function yre(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function bre(e){return(0,l.useMemo)(()=>({draggable:{...x9.draggable,...e?.draggable},droppable:{...x9.droppable,...e?.droppable},dragOverlay:{...x9.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function xre(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,l.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;u7(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=F7(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=z7(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var T9=(0,l.createContext)({...k7,scaleX:1,scaleY:1}),E9;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(E9||={});var Sre=(0,l.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=fre,collisionDetection:o=Dne,measuring:s,modifiers:c,...u}=e,[d,f]=(0,l.useReducer)(_re,void 0,gre),[p,m]=vne(),[h,g]=(0,l.useState)(E9.Uninitialized),_=h===E9.Initialized,{draggable:{active:v,nodes:y,translate:b},droppable:{containers:x}}=d,S=v==null?null:y.get(v),C=(0,l.useRef)({initial:null,translated:null}),w=(0,l.useMemo)(()=>v==null?null:{id:v,data:S?.data??pre,rect:C},[v,S]),T=(0,l.useRef)(null),[E,D]=(0,l.useState)(null),[O,k]=(0,l.useState)(null),A=f7(u,Object.values(u)),j=_7(`DndDescribedBy`,t),M=(0,l.useMemo)(()=>x.getEnabled(),[x]),N=bre(s),{droppableRects:ee,measureDroppableContainers:te,measuringScheduled:ne}=ere(M,{dragging:_,dependencies:[b.x,b.y],config:N.droppable}),re=Qne(y,v),ie=(0,l.useMemo)(()=>O?S7(O):null,[O]),ae=Fe(),oe=tre(re,N.draggable.measure);xre({activeNode:v==null?null:y.get(v),config:ae.layoutShiftCompensation,initialRect:oe,measure:N.draggable.measure});let se=g9(re,N.draggable.measure,oe),ce=g9(re?re.parentElement:null),le=(0,l.useRef)({activatorEvent:null,active:null,activeNode:re,collisionRect:null,collisions:null,droppableRects:ee,draggableNodes:y,draggingNode:null,draggingNodeRect:null,droppableContainers:x,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=x.getNodeFor(le.current.over?.id),P=dre({measure:N.dragOverlay.measure}),de=P.nodeRef.current??re,fe=_?P.rect??se:null,pe=!!(P.nodeRef.current&&P.rect),me=ire(pe?null:se),he=y9(de?a7(de):null),ge=are(_?ue??re:null),_e=lre(ge),ve=yre(c,{transform:{x:b.x-me.x,y:b.y-me.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:se,containerNodeRect:ce,draggingNodeRect:fe,over:le.current.over,overlayNodeRect:P.rect,scrollableAncestors:ge,scrollableAncestorRects:_e,windowRect:he}),ye=ie?y7(ie,b):null,be=ore(ge),xe=v9(be),Se=v9(be,[se]),Ce=y7(ve,xe),we=fe?Ane(fe,ve):null,Te=w&&we?o({active:w,collisionRect:we,droppableRects:ee,droppableContainers:M,pointerCoordinates:ye}):null,Ee=N7(Te,`id`),[De,Oe]=(0,l.useState)(null),ke=One(pe?ve:y7(ve,Se),De?.rect??null,se),Ae=(0,l.useRef)(null),je=(0,l.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=y.get(T.current);if(!i)return;let a=e.nativeEvent,o=new n({active:T.current,activeNode:i,event:a,options:r,context:le,onAbort(e){if(!y.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),p({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!y.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),p({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=y.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:C}};(0,Yx.unstable_batchedUpdates)(()=>{r?.(i),g(E9.Initializing),f({type:E7.DragStart,initialCoordinates:e,active:t}),p({type:`onDragStart`,event:i}),D(Ae.current),k(a)})},onMove(e){f({type:E7.DragMove,coordinates:e})},onEnd:s(E7.DragEnd),onCancel:s(E7.DragCancel)});Ae.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=le.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===E7.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=E7.DragCancel)}T.current=null,(0,Yx.unstable_batchedUpdates)(()=>{f({type:e}),g(E9.Uninitialized),Oe(null),D(null),k(null),Ae.current=null;let t=e===E7.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),p({type:t,event:o})}})}}},[y]),Me=$ne(a,(0,l.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=y.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,je(n,t))},[y,je]));sre(a),u7(()=>{se&&h===E9.Initializing&&g(E9.Initialized)},[se,h]),(0,l.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=le.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:Ce.x,y:Ce.y},over:i};(0,Yx.unstable_batchedUpdates)(()=>{e?.(a),p({type:`onDragMove`,event:a})})},[Ce.x,Ce.y]),(0,l.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=le.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(Ee),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Yx.unstable_batchedUpdates)(()=>{Oe(s),a?.(c),p({type:`onDragOver`,event:c})})},[Ee]),u7(()=>{le.current={activatorEvent:O,active:w,activeNode:re,collisionRect:we,collisions:Te,droppableRects:ee,draggableNodes:y,draggingNode:de,draggingNodeRect:fe,droppableContainers:x,over:De,scrollableAncestors:ge,scrollAdjustedTranslate:Ce},C.current={initial:fe,translated:we}},[w,re,Te,we,y,de,fe,ee,x,De,ge,Ce]),Yne({...ae,delta:b,draggingRect:we,pointerCoordinates:ye,scrollableAncestors:ge,scrollableAncestorRects:_e});let Ne=(0,l.useMemo)(()=>({active:w,activeNode:re,activeNodeRect:se,activatorEvent:O,collisions:Te,containerNodeRect:ce,dragOverlay:P,draggableNodes:y,droppableContainers:x,droppableRects:ee,over:De,measureDroppableContainers:te,scrollableAncestors:ge,scrollableAncestorRects:_e,measuringConfiguration:N,measuringScheduled:ne,windowRect:he}),[w,re,se,O,Te,ce,P,y,x,ee,De,te,ge,_e,N,ne,he]),Pe=(0,l.useMemo)(()=>({activatorEvent:O,activators:Me,active:w,activeNodeRect:se,ariaDescribedById:{draggable:j},dispatch:f,draggableNodes:y,over:De,measureDroppableContainers:te}),[O,Me,w,se,f,j,y,De,te]);return l.createElement(T7.Provider,{value:m},l.createElement(C9.Provider,{value:Pe},l.createElement(w9.Provider,{value:Ne},l.createElement(T9.Provider,{value:ke},i)),l.createElement(vre,{disabled:n?.restoreFocus===!1})),l.createElement(xne,{...n,hiddenTextDescribedById:j}));function Fe(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=_&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),Cre=(0,l.createContext)(null),D9=`button`,wre=`Draggable`;function Tre(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=_7(wre),{activators:o,activatorEvent:s,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=(0,l.useContext)(C9),{role:m=D9,roleDescription:h=`draggable`,tabIndex:g=0}=i??{},_=c?.id===t,v=(0,l.useContext)(_?T9:Cre),[y,b]=m7(),[x,S]=m7(),C=cre(o,t),w=f7(n);return u7(()=>(f.set(t,{id:t,key:a,node:y,activatorNode:x,data:w}),()=>{let e=f.get(t);e&&e.key===a&&f.delete(t)}),[f,t]),{active:c,activatorEvent:s,activeNodeRect:u,attributes:(0,l.useMemo)(()=>({role:m,tabIndex:g,"aria-disabled":r,"aria-pressed":_&&m===D9?!0:void 0,"aria-roledescription":h,"aria-describedby":d.draggable}),[r,m,g,_,h,d.draggable]),isDragging:_,listeners:r?void 0:C,node:y,over:p,setNodeRef:b,setActivatorNodeRef:S,transform:v}}function Ere(){return(0,l.useContext)(w9)}var Dre=`Droppable`,Ore={timeout:25};function kre(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=_7(Dre),{active:o,dispatch:s,over:c,measureDroppableContainers:u}=(0,l.useContext)(C9),d=(0,l.useRef)({disabled:n}),f=(0,l.useRef)(!1),p=(0,l.useRef)(null),m=(0,l.useRef)(null),{disabled:h,updateMeasurementsFor:g,timeout:_}={...Ore,...i},v=f7(g??r),y=h9({callback:(0,l.useCallback)(()=>{if(!f.current){f.current=!0;return}m.current!=null&&clearTimeout(m.current),m.current=setTimeout(()=>{u(Array.isArray(v.current)?v.current:[v.current]),m.current=null},_)},[_]),disabled:h||!o}),[b,x]=m7((0,l.useCallback)((e,t)=>{y&&(t&&(y.unobserve(t),f.current=!1),e&&y.observe(e))},[y])),S=f7(t);return(0,l.useEffect)(()=>{y&&b.current&&(y.disconnect(),f.current=!1,y.observe(b.current))},[b,y]),(0,l.useEffect)(()=>(s({type:E7.RegisterDroppable,element:{id:r,key:a,disabled:n,node:b,rect:p,data:S}}),()=>s({type:E7.UnregisterDroppable,key:a,id:r})),[r]),(0,l.useEffect)(()=>{n!==d.current.disabled&&(s({type:E7.SetDroppableDisabled,id:r,key:a,disabled:n}),d.current.disabled=n)},[r,a,n,s]),{active:o,rect:p,isOver:c?.id===r,node:b,over:c,setNodeRef:x}}function O9(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Are(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function k9(e){return e!==null&&e>=0}function jre(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Mre(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var A9=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=O9(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},j9={scaleX:1,scaleY:1},Nre=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...j9}:null}let s=Pre(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...j9}:r<t&&r>=a?{x:0,y:o.height+s,...j9}:{x:0,y:0,...j9}};function Pre(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var M9=`Sortable`,N9=l.createContext({activeIndex:-1,containerId:M9,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:A9,disabled:{draggable:!1,droppable:!1}});function Fre(e){let{children:t,id:n,items:r,strategy:i=A9,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:u,measureDroppableContainers:d}=Ere(),f=_7(M9,n),p=s.rect!==null,m=(0,l.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),h=o!=null,g=o?m.indexOf(o.id):-1,_=u?m.indexOf(u.id):-1,v=(0,l.useRef)(m),y=!jre(m,v.current),b=_!==-1&&g===-1||y,x=Mre(a);u7(()=>{y&&h&&d(m)},[y,m,h,d]),(0,l.useEffect)(()=>{v.current=m},[m]);let S=(0,l.useMemo)(()=>({activeIndex:g,containerId:f,disabled:x,disableTransforms:b,items:m,overIndex:_,useDragOverlay:p,sortedRects:Are(m,c),strategy:i}),[g,f,x.draggable,x.droppable,b,m,_,c,p,i]);return l.createElement(N9.Provider,{value:S},t)}var Ire=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return O9(n,r,i).indexOf(t)},Lre=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Rre={duration:200,easing:`ease`},P9=`transform`,zre=C7.Transition.toString({property:P9,duration:0,easing:`linear`}),Bre={roleDescription:`sortable`};function Vre(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,l.useState)(null),s=(0,l.useRef)(n);return u7(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=I7(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,l.useEffect)(()=>{a&&o(null)},[a]),a}function Hre(e){let{animateLayoutChanges:t=Lre,attributes:n,disabled:r,data:i,getNewIndex:a=Ire,id:o,strategy:s,resizeObserverConfig:c,transition:u=Rre}=e,{items:d,containerId:f,activeIndex:p,disabled:m,disableTransforms:h,sortedRects:g,overIndex:_,useDragOverlay:v,strategy:y}=(0,l.useContext)(N9),b=Ure(r,m),x=d.indexOf(o),S=(0,l.useMemo)(()=>({sortable:{containerId:f,index:x,items:d},...i}),[f,i,x,d]),C=(0,l.useMemo)(()=>d.slice(d.indexOf(o)),[d,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=kre({id:o,data:S,disabled:b.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:ee,over:te,setActivatorNodeRef:ne,transform:re}=Tre({id:o,data:S,attributes:{...Bre,...n},disabled:b.draggable}),ie=cne(D,M),ae=!!O,oe=ae&&!h&&k9(p)&&k9(_),se=!v&&ee,ce=oe?(se&&oe?re:null)??(s??y)({rects:g,activeNodeRect:A,activeIndex:p,overIndex:_,index:x}):null,le=k9(p)&&k9(_)?a({id:o,items:d,activeIndex:p,overIndex:_}):x,ue=O?.id,P=(0,l.useRef)({activeId:ue,items:d,newIndex:le,containerId:f}),de=d!==P.current.items,fe=t({active:O,containerId:f,isDragging:ee,isSorting:ae,id:o,index:x,items:d,newIndex:P.current.newIndex,previousItems:P.current.items,previousContainerId:P.current.containerId,transition:u,wasDragging:P.current.activeId!=null}),pe=Vre({disabled:!fe,index:x,node:T,rect:w});return(0,l.useEffect)(()=>{ae&&P.current.newIndex!==le&&(P.current.newIndex=le),f!==P.current.containerId&&(P.current.containerId=f),d!==P.current.items&&(P.current.items=d)},[ae,le,f,d]),(0,l.useEffect)(()=>{if(ue===P.current.activeId)return;if(ue!=null&&P.current.activeId==null){P.current.activeId=ue;return}let e=setTimeout(()=>{P.current.activeId=ue},50);return()=>clearTimeout(e)},[ue]),{active:O,activeIndex:p,attributes:j,data:S,rect:w,index:x,newIndex:le,items:d,isOver:E,isSorting:ae,isDragging:ee,listeners:N,node:T,overIndex:_,over:te,setNodeRef:ie,setActivatorNodeRef:ne,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:pe??ce,transition:me()};function me(){if(pe||de&&P.current.newIndex===x)return zre;if(!(se&&!x7(k)||!u)&&(ae||fe))return C7.Transition.toString({...u,property:P9})}}function Ure(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function F9(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Wre=[$.Down,$.Right,$.Up,$.Left],Gre=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Wre.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case $.Down:r.top<a.top&&t.push(n);break;case $.Up:r.top>a.top&&t.push(n);break;case $.Left:r.left>a.left&&t.push(n);break;case $.Right:r.left<a.left&&t.push(n)}});let c=Tne({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=N7(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=R7(c).some((e,t)=>s[t]!==e),i=I9(e,t),a=Kre(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:b7(u,l)}}}};function I9(e,t){return!F9(e)||!F9(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Kre(e,t){return!F9(e)||!F9(t)||!I9(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var qre=e=>Math.round(Number(e.replace(`,`,`.`).replace(/[^0-9.]/g,``))*100),Jre=({line:e,position:t,count:n,reorderable:r,editable:i,onChange:a,onRemove:o,onMove:s})=>{let{attributes:c,listeners:l,setNodeRef:u,setActivatorNodeRef:d,transform:f,transition:p,isDragging:m}=Hre({id:e.id,disabled:!r}),h=[...r?[{label:`Move up`,disabled:t===0,onSelect:()=>s(t-1)},{label:`Move down`,disabled:t===n-1,onSelect:()=>s(t+1)}]:[],...i?[{label:`Remove line`,destructive:!0,onSelect:o}]:[]];return(0,I.jsxs)(`div`,{ref:u,"data-line-id":e.id,style:{transform:f?`translate3d(0, ${f.y}px, 0)`:void 0,transition:p},className:F(`group relative border-b border-border bg-background px-2 py-1 last:border-b-0 hover:bg-surface`,$5,m&&`z-10 bg-surface opacity-80 shadow-pop`),children:[r?(0,I.jsx)(`button`,{ref:d,type:`button`,"aria-label":`Drag to reorder ${e.description}`,...c,...l,style:{touchAction:`none`},className:`flex size-7 cursor-grab items-center justify-center rounded text-faint-foreground opacity-60 hover:bg-muted hover:opacity-100 focus-visible:opacity-100 active:cursor-grabbing pointer-coarse:size-11`,children:(0,I.jsx)(We,{className:`size-4`})}):(0,I.jsx)(`span`,{}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`p`,{className:`truncate text-[13px] text-foreground`,children:e.description}),(0,I.jsx)(`p`,{className:`font-mono text-[11px] text-faint-foreground`,children:e.productId})]}),i?(0,I.jsx)(t7,{label:`Quantity`,value:e.quantity,format:String,parse:e=>Math.round(Number(e)),onCommit:e=>a({quantity:e})}):(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] tabular-nums`,children:e.quantity}),i?(0,I.jsx)(t7,{label:`Unit price`,value:e.unitPriceCents,format:e=>(e/100).toFixed(2),parse:qre,onCommit:e=>a({unitPriceCents:e})}):(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] tabular-nums`,children:(e.unitPriceCents/100).toFixed(2)}),(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] font-medium tabular-nums text-foreground`,children:F_(e7(e))}),h.length>0?(0,I.jsx)(sne,{label:`Actions for ${e.description}`,items:h}):(0,I.jsx)(`span`,{})]})},Yre=(e,t,n)=>{if(t===n||t<0||t>=e.length)return[...e];let r=[...e],[i]=r.splice(t,1);return r.splice(Math.min(Math.max(n,0),r.length),0,i),r},Xre=({lines:e,vatRate:t})=>{let n=one(e,t);return(0,I.jsxs)(`dl`,{className:`ml-auto grid w-64 grid-cols-[1fr_auto] gap-x-6 gap-y-1 px-2 pt-3 text-[13px] tabular-nums`,children:[(0,I.jsx)(`dt`,{className:`text-muted-foreground`,children:`Subtotal`}),(0,I.jsx)(`dd`,{className:`text-right text-foreground`,children:F_(n.subtotalCents)}),(0,I.jsxs)(`dt`,{className:`text-muted-foreground`,children:[`VAT `,Math.round(t*100),`%`]}),(0,I.jsx)(`dd`,{className:`text-right text-foreground`,children:F_(n.vatCents)}),(0,I.jsx)(`dt`,{className:`mt-1 border-t border-border pt-2 font-semibold text-foreground`,children:`Total`}),(0,I.jsx)(`dd`,{className:`mt-1 border-t border-border pt-2 text-right text-[15px] font-semibold text-foreground`,children:F_(n.totalCents)})]})},L9=`px-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,Zre=`To pick up a line, press space or enter on its drag handle. Use the up and down arrow keys to move it, space or enter to drop it, and escape to cancel. The row menu also has Move up and Move down.`,Qre=e=>{let t=t=>e.find(e=>e.id===t)?.description??`line`,n=t=>e.findIndex(e=>e.id===t)+1;return{onDragStart:({active:r})=>`Picked up ${t(r.id)}, line ${n(r.id)} of ${e.length}.`,onDragOver:({active:r,over:i})=>i?`${t(r.id)} is over line ${n(i.id)} of ${e.length}.`:void 0,onDragEnd:({active:r,over:i})=>i?`${t(r.id)} was dropped at line ${n(i.id)} of ${e.length}.`:`${t(r.id)} was dropped where it started.`,onDragCancel:({active:e})=>`Moving ${t(e.id)} was cancelled. It is back at line ${n(e.id)}.`}},$re=({lines:e,onChange:t,onReorder:n,vatRate:r=.21,readOnly:i,reorderable:a=!i})=>{let o=Sne(O7(o9,{activationConstraint:{distance:4}}),O7(c9,{activationConstraint:{delay:250,tolerance:5}}),O7(e9,{coordinateGetter:Gre})),s=(r,i)=>{let a=e[r];!a||i<0||i>=e.length||r===i||(n??(e=>t(e)))(Yre(e,r,i),{id:a.id,from:r,to:i})};return(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background`,children:[(0,I.jsxs)(`div`,{className:`${$5} border-b border-border bg-surface px-2 py-2`,children:[(0,I.jsx)(`span`,{}),(0,I.jsx)(`span`,{className:L9,children:`Item`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Qty`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Unit price`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Line total`}),(0,I.jsx)(`span`,{})]}),(0,I.jsx)(Sre,{sensors:o,collisionDetection:wne,onDragEnd:({active:t,over:n})=>{n&&t.id!==n.id&&s(e.findIndex(e=>e.id===t.id),e.findIndex(e=>e.id===n.id))},accessibility:{announcements:Qre(e),screenReaderInstructions:{draggable:Zre}},children:(0,I.jsx)(Fre,{items:e.map(e=>e.id),strategy:Nre,children:e.map((n,r)=>(0,I.jsx)(Jre,{line:n,position:r,count:e.length,reorderable:a,editable:!i,onChange:r=>t(e.map(e=>e.id===n.id?{...e,...r}:e)),onRemove:()=>t(e.filter(e=>e.id!==n.id)),onMove:e=>s(r,e)},n.id))})}),!i&&(0,I.jsx)(`div`,{className:`border-t border-border bg-surface px-2 py-1.5`,children:(0,I.jsxs)(V,{variant:`ghost`,size:`sm`,onClick:()=>{let n=ane(e.length*3+1);t([...e,{id:`new-${e.length}-${n.id}`,productId:n.id,description:n.name,quantity:1,unitPriceCents:n.priceCents}])},children:[(0,I.jsx)(xt,{className:`size-3.5`}),`Add line`]})})]}),(0,I.jsx)(Xre,{lines:e,vatRate:r})]})},eie=(e,t)=>Object.values(e).find(e=>e.name!==t.name&&e.fields.position&&e.fields.quantity&&Object.values(e.fields).some(e=>e.type===`relation`&&e.relation?.resource===t.name)),tie=e=>({id:String(e.id),productId:String(e.productId??``),description:String(e.description??``),quantity:Number(e.quantity),unitPriceCents:Math.round(Number(e.unitPrice)*100)}),nie=({lines:e,draft:t,vatRate:n,saving:r})=>{let i=u_(tg(e.name),`update`);return(0,I.jsx)(g_,{title:`Lines`,help:`What the document bills for. Drag the handle, or use the menu, to change the order; Save applies it.`,children:(0,I.jsx)(`div`,{className:`-mx-4 overflow-x-auto px-4 [-webkit-overflow-scrolling:touch] md:mx-0 md:px-0`,children:(0,I.jsx)(`div`,{className:`min-w-[560px]`,children:(0,I.jsx)($re,{lines:t.shown.map(tie),onChange:()=>void 0,onReorder:e=>t.setOrder(e.map(e=>e.id)),vatRate:n,readOnly:!0,reorderable:i&&!r})})})})},rie=(e,t,n)=>`protobase:draft:${e}:${t}:${n}`,iie=(e,t,n)=>Hn(()=>{let r=e.getItem(t);if(r===null)return;let i=JSON.parse(r);if(i&&i.etag===n&&typeof i.fields==`object`&&i.fields!==null)return{etag:n,fields:i.fields,...Array.isArray(i.order)&&{order:i.order.map(String)}}},void 0),aie=(e,t,n)=>Hn(()=>n?e.setItem(t,JSON.stringify(n)):e.removeItem(t),void 0),R9=(e,{filter:t,orderBy:n,pageSize:r=50,fields:i,startToken:a=``,enabled:o=!0}={})=>{let s=U(),c=bs(t)??``,l=bm({queryKey:[...H.list(e,c,n??``,r,a),i?.join(`,`)??``],enabled:o,initialPageParam:a,queryFn:({pageParam:t})=>s.list(e,{filter:c,orderBy:n,pageSize:r,fields:i,pageToken:t}),getNextPageParam:e=>e.nextPageToken||void 0}),u=l.data?.pages??[];return{...l,items:u.flatMap(e=>e.items),totalEstimate:u[0]?.totalSizeEstimate}},oie=(e,t)=>Number(e.position)-Number(t.position),sie=(e,t,n)=>{let r=e&&Object.values(e.fields).find(e=>e.type===`relation`&&e.relation?.resource===t.name),i=R9(e?.name??``,{enabled:!!(e&&r),filter:r?`${r.name} = "${n}"`:void 0,pageSize:200,...e?.fields.position?.sortable&&{orderBy:`position asc`}});return{items:[...i.items].sort(oie),loading:i.isPending&&!!e}},cie=(e,t)=>{let[n,r]=(0,l.useState)(),i=t.map(e=>String(e.id)),a=(0,l.useMemo)(()=>{if(!n)return t;let e=n.flatMap(e=>t.filter(t=>String(t.id)===e)),r=t.filter(e=>!n.includes(String(e.id)));return[...e,...r]},[n,t]),o=a.map(e=>String(e.id)),s=n!==void 0&&o.some((e,t)=>e!==i[t]),c=(0,l.useCallback)(()=>!e||!s?[]:[{op:`reorder`,resource:e.name,field:`position`,keys:a.map(t=>Ym(e,t)),etags:Object.fromEntries(a.flatMap(t=>typeof t.etag==`string`?[[Yo(Ym(e,t)),t.etag]]:[]))}],[e,s,a]);return{shown:a,dirty:s,order:s?o:void 0,setOrder:e=>r(e),reset:()=>r(void 0),op:c}},z9=(e,t)=>{let n=U(),r=Wf(),i=Yo(t);return ym({mutationFn:({patch:r,etag:i})=>n.update(e,t,r,i),onSuccess:t=>{r.setQueryData(H.record(e,i),t),r.invalidateQueries({queryKey:[`page`,e]}),r.invalidateQueries({queryKey:[`list`,e]})}})},B9=e=>e instanceof Ds,lie=e=>{let t=typeof e.resource==`string`?e.resource:e.resource.toModel().name;return e.op===`reorder`?`reorder ${t} by ${e.field}`:`${e.op} ${t}`},uie=(e,t)=>{let n=e.operation,r=n===void 0?void 0:t[n];return r?`Operation ${n+1} (${lie(r)}) failed: ${e.message} Nothing was saved.`:`${e.message} Nothing was saved.`},die=(e,t)=>new e.constructor({...e.problem,detail:uie(e,t)}),V9=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==t)),fie=({model:e,stored:t,recordKey:n,mode:r,subject:i,draftKey:a,lines:o})=>{let s=U(),c=Wf(),u=z9(e.name,n),d=m_(r,i),[f]=(0,l.useState)(()=>a?iie(localStorage,a,t.etag):void 0),[p,m]=(0,l.useState)(f?.fields??{}),[h,g]=(0,l.useState)(!!f),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)({}),[x,S]=(0,l.useState)({}),C=Object.keys(p).length>0,w=C||!!o?.dirty;(0,l.useEffect)(()=>{f?.order&&o?.setOrder(f.order)},[]),(0,l.useEffect)(()=>{if(!a)return;let n=Object.fromEntries(Object.entries(p).filter(([t])=>!e.fields[t]?.sensitive)),r=Object.keys(n).length>0||!!o?.dirty;aie(localStorage,a,r?{etag:t.etag,fields:n,...o?.order&&{order:o.order}}:void 0)},[a,e,p,o?.dirty,o?.order,t.etag]);let T=n=>n in p?p[n]:[`boolean`,`file`].includes(e.fields[n].type)?t.record[n]:Ug(t.record[n]),E=(n,r)=>{S(e=>V9(e,n)),m(i=>Yg(e.fields[n],r,t.record[n])?{...i,[n]:r}:V9(i,n))},D=async()=>{let r=await s.get(e.name,n);c.setQueryData(H.record(e.name,n),r);let i={},a={};for(let[n,o]of Object.entries(p)){let s=e.fields[n];Yg(s,o,r.record[n])&&(a[n]=o,Ug(r.record[n])!==Ug(t.record[n])&&(i[n]=s.type===`file`?Hg(s,r.record[n]):Ug(r.record[n])))}m(a),b(i)},O=()=>Object.fromEntries(Object.entries(p).map(([t,n])=>[t,Kg(e.fields[t],n)])),k=e=>Os(e)?Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[])):{},A=async()=>{try{await u.mutateAsync({patch:O(),etag:t.etag})}catch(e){throw B9(e)?await D():Os(e)&&S(k(e)),e}},j=async r=>{let i=[...C?[{op:`update`,resource:e.name,key:n,data:O(),etag:t.etag}]:[],...r];try{await s.batchWrite(i)}catch(e){throw B9(e)?(await D(),await c.invalidateQueries({queryKey:[`list`]}),v(!0)):Os(e)&&S(k(e)),Os(e)?die(e,i):e}await Promise.all([c.invalidateQueries({queryKey:H.record(e.name,n)}),c.invalidateQueries({queryKey:[`list`]}),c.invalidateQueries({queryKey:[`page`]})]),o?.reset()};return{value:T,change:E,save:()=>d.run(async()=>{let e=o?.op()??[];e.length>0?await j(e):await A(),m({}),b({}),S({}),v(!1),g(!1)}),dirty:w,discard:()=>{m({}),b({}),S({}),v(!1),g(!1),o?.reset()},restored:h&&w,dismissRestored:()=>g(!1),linesConflict:_,saving:d.phase===`saving`,phase:d.phase,message:d.message,conflicts:y,errors:x,keepMine:e=>b(t=>V9(t,e)),useTheirs:e=>{b(t=>V9(t,e)),m(t=>V9(t,e))}}},pie=(e,t,n,r,i,a)=>{let o=U(),s=Wf(),c=Object.values(e.fields).filter(t=>t.type===`relation`&&t.relation&&t.name!==e.tenant&&i[t.name]!=null&&n[t.relation.resource]?.primaryKey.length===1),l=gm({queries:c.map(e=>{let t=n[e.relation.resource],a=String(i[e.name]);return{queryKey:H.relatedLabel(t.name,a),queryFn:async()=>(await iw(s,o,t,[a],r[t.name])).get(a)??a}})}),u=c.map(e=>({kind:`record`,resource:e.relation.resource,key:String(i[e.name])}));return{addresses:Object.fromEntries(c.map((e,t)=>[e.name,u[t]])),labels:Object.fromEntries(c.map((e,t)=>[e.name,l[t]?.data])),records:c.map((e,n)=>({kind:t?.fields[e.name]?.label??W(e.name),label:l[n]?.data??String(i[e.name]),href:$o(u[n],a)}))}},H9=jo(),U9=500,W9=(...e)=>e.filter(e=>!!e).map(e=>`(${e})`).join(` AND `),mie=(e,t)=>{let n=U(),{resources:r}=G(),i=e.through,a=i?r[i.resource]:void 0,o=i?.key??a?.primaryKey[0],s=i?W9(go(H9.eq(i.field,t)),i.filter):``,c=vm({queryKey:H.list(a?.name??``,s,``,U9,`related:${o}`),enabled:!!(a&&o),queryFn:async()=>{let e=await n.search(a.name,{filter:s,fields:[o],pageSize:U9});return[...new Set(e.items.flatMap(e=>e[o]===null||e[o]===void 0?[]:[String(e[o])]))]}});return i?c.data?{filter:c.data.length===0?null:W9(go(H9.in(e.field,c.data)),e.filter),isPending:!1,error:null}:{filter:void 0,isPending:c.isPending,error:c.error}:{filter:W9(go(H9.eq(e.field,t)),e.filter),isPending:!1,error:null}},hie=({item:e,model:t,filter:n})=>{let r=U(),{views:i}=G(),[a,o]=(0,l.useState)([``]),s=e.pageSize??10,c=e.sort??``,u=a.at(-1)??``,d=vm({queryKey:H.list(t.name,n,c,s,u),placeholderData:mp,queryFn:()=>r.search(t.name,{filter:n,orderBy:c||void 0,pageSize:s,pageToken:u||void 0})});if(d.isPending)return(0,I.jsx)(G9,{});if(d.error)return(0,I.jsx)(Zg,{title:`Could not load`,error:d.error});let f=d.data.items;if(f.length===0&&a.length===1)return(0,I.jsx)(K9,{text:e.empty});let p=(e.columns??$8(t,i[t.name]).filter(t=>t!==e.field)).filter(e=>e.includes(`.`)||Object.hasOwn(t.fields,e)),m=d.data.nextPageToken;return(0,I.jsx)(Q8,{model:t,columns:p,rows:f,label:e.title,pager:{page:a.length,hasPrevious:a.length>1,hasNext:!!m,busy:d.isFetching,previous:()=>o(e=>e.slice(0,-1)),next:()=>m&&o(e=>[...e,m])}})},G9=()=>(0,I.jsx)(`div`,{className:`flex flex-col gap-2`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(fS,{className:`h-4 w-full`},t))}),K9=({text:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e??`Nothing here yet.`}),gie=({item:e,recordKey:t})=>{let{resources:n}=G(),r=n[e.resource],i=mie(e,t);return r?(0,I.jsx)(g_,{title:e.title,help:e.help,children:i.isPending?(0,I.jsx)(G9,{}):i.error?(0,I.jsx)(Zg,{title:`Could not load`,error:i.error}):i.filter===null||i.filter===void 0?(0,I.jsx)(K9,{text:e.empty}):(0,I.jsx)(hie,{item:e,model:r,filter:i.filter},i.filter)}):null},_ie=(e,t)=>t===e.tenant||e.primaryKey.includes(t),vie=(e,t)=>{if(t&&t.layout.length>0)return t.layout;let n=Object.values(e.fields).filter(t=>!_ie(e,t.name)),r=n.filter(e=>!e.readOnly);return[{kind:`section`,title:`Details`,fields:(r.length>0?r:n).map(e=>e.name)}]},yie=({resource:e,recordKey:t})=>{let{resources:n}=G(),r=n[e],i=Gm(e,t);return r?i.isPending?(0,I.jsx)(Qh,{title:`Loading`,children:`Fetching the record.`}):i.error?(0,I.jsx)(`div`,{className:`p-8`,children:Os(i.error)&&i.error.status===404?(0,I.jsx)(Qh,{title:`Not found`,children:`This record does not exist, or you cannot see it.`}):(0,I.jsx)(Zg,{title:`Could not load the record`,error:i.error})}):(0,I.jsx)(bie,{model:r,recordKey:t,stored:i.data}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no resource called `,e,`.`]})},bie=({model:e,recordKey:t,stored:n})=>{let r=G(),{basePath:i}=rg(),{go:a,open:o}=Eg(),s=r.views[e.name],c=s?.names?.singular??W(e.name),u=Jm(e,s,n.record,t),{state:d}=B(),f=(0,l.useMemo)(()=>eie(r.resources,e),[r.resources,e]),p=cie(f,sie(f,e,t).items),m=fie({model:e,stored:n,recordKey:t,mode:s?.saveFeedback??`toast`,subject:u,draftKey:d.kind===`signed-in`?rie(d.user.id,e.name,t):void 0,lines:p});lg(m.dirty);let h=Wf(),g=U(),_=tg(e.name),v=vw(e),y=u_(_,`update`)&&n.permissions?.update!==!1,b=_w({model:e,view:s,restore:v,onDeleted:()=>a({kind:`list`,resource:e.name},{replace:!0}),onReview:()=>void h.invalidateQueries({queryKey:H.record(e.name,t)})}),x=pie(e,s,r.resources,r.views,n.record,i),{fields:S}=$m(),C=vie(e,s),w=C.flatMap(e=>e.kind===`sidebar`?e.fields:[]),T=e.fields.status?.type===`enum`?String(n.record.status):void 0,E=q5(e,`updated`),D=E&&n.record[E]?Math.max(0,Math.round((Date.now()-Date.parse(String(n.record[E])))/1e3)):void 0,O=e=>s?.fields[e],k=e=>f_(n.permissions,e)!==`hidden`,A=r=>{let i=e.fields[r],a=f_(n.permissions,r);if(!i||a===`hidden`)return null;let o=m.conflicts[r];return(0,I.jsx)(h_,{label:O(r)?.label??W(r),help:O(r)?.help,error:m.errors[r],conflict:o===void 0?void 0:{user:{name:`Someone else`,initials:`?`,hue:40},ago:`just now`,theirValue:o||`—`,onKeepMine:()=>m.keepMine(r),onUseTheirs:()=>m.useTheirs(r)},children:(0,I.jsx)(l_,{field:i,hints:O(r),value:m.value(r),stored:n.record[r],relationLabel:x.labels[r],relationTo:x.addresses[r],locked:!y||a===`read`,invalid:!!m.errors[r],reveal:i.sensitive?()=>g.reveal(e.name,t,r):void 0,resource:e.name,onChange:e=>m.change(r,e)})},i.sensitive?`${r}:${n.etag}`:r)},j=C.findIndex(e=>e.kind===`sidebar`),M=(0,I.jsx)(G5,{title:`Summary`,rows:w.flatMap(t=>{let r=e.fields[t];if(!r||!k(t))return[];let i=Hg(r,n.record[t],O(t)),a=r.type===`enum`?(0,I.jsx)(Mn,{tone:OC(String(n.record[t])),children:i}):(0,I.jsx)(`strong`,{children:i}),o=r_(S,r,O(t));return[{label:O(t)?.label??W(t),value:o?(0,I.jsx)(o_,{shown:o,part:`display`,field:r,value:n.record[t],fallback:a}):a}]})}),N={model:e,record:n.record,key:t,etag:n.etag,permissions:n.permissions},ee=(0,I.jsxs)(I.Fragment,{children:[m.dirty&&(0,I.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Unsaved changes`}),m.dirty&&y&&(0,I.jsx)(V,{className:`max-md:min-h-11`,disabled:m.saving,onClick:m.discard,children:`Discard`}),u_(_,`delete`)&&n.permissions?.delete!==!1&&(0,I.jsx)(V,{variant:`danger`,className:`max-md:min-h-11`,onClick:()=>void b.start({key:t,title:u,etag:n.etag,snapshot:n.record}),children:`Delete`}),y&&(0,I.jsxs)(V,{variant:`primary`,className:`max-md:min-h-11 max-md:flex-1`,loading:m.saving,disabled:!m.dirty&&m.phase!==`saved`,onClick:()=>void m.save(),children:[m.phase===`saved`&&(0,I.jsx)(ae,{className:`size-4`}),m.phase===`saved`?`Saved`:`Save`]})]});return(0,I.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[b.dialogs,(0,I.jsxs)(`div`,{className:`mx-auto max-w-[1100px] px-4 pb-28 pt-6 md:px-10 md:py-8`,children:[(0,I.jsx)(K5,{collection:s?.names?.plural??W(e.name),title:u,status:{label:T?Ho(T,O(`status`)?.valueLabels):c,tone:T?OC(T):`neutral`},lastEditedBy:{ago:D===void 0?`recently`:Sd(D)},actions:(0,I.jsx)(`div`,{className:`hidden items-center gap-4 md:flex`,children:ee})}),m.message&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(Zg,{title:`Not saved`,error:Error(m.message)})}),m.linesConflict&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(Zg,{title:`The lines were changed by someone else`,error:Error(`The lines were reloaded. Your new order is kept: Save again to apply it, or Discard to drop it.`)})}),m.restored&&(0,I.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-3 rounded-lg border bg-surface px-3 py-2 text-[13px]`,role:`status`,children:[(0,I.jsx)(`span`,{children:`Your unsaved changes were restored.`}),(0,I.jsxs)(`span`,{className:`flex gap-2`,children:[(0,I.jsx)(V,{size:`sm`,onClick:m.dismissRestored,children:`Keep`}),(0,I.jsx)(V,{size:`sm`,onClick:m.discard,children:`Discard`})]})]}),(0,I.jsxs)(`div`,{className:`grid grid-cols-1 gap-8 md:grid-cols-[minmax(0,1fr)_300px] md:gap-12`,children:[(0,I.jsxs)(`main`,{className:`divide-y divide-border`,children:[C.flatMap((n,r)=>{if(n.kind===`related`)return[(0,I.jsx)(gie,{item:n,recordKey:t},`related:${n.title}`)];if(n.kind===`custom`)return n.sidebar?[]:[(0,I.jsx)(J5,{item:n,scope:N},`custom:${r}`)];if(n.kind!==`section`)return[];let i=n.fields.filter(t=>e.fields[t]&&k(t));return i.length===0?[]:[(0,I.jsx)(g_,{title:n.title,help:n.help,children:(0,I.jsx)(`div`,{className:`grid grid-cols-1 gap-x-6 gap-y-5 sm:grid-cols-2`,children:i.map(A)})},n.title)]}),f&&(0,I.jsx)(nie,{lines:f,draft:p,vatRate:Number(n.record.vatRate??21)/100,saving:m.saving})]}),(0,I.jsxs)(`aside`,{className:`space-y-4 md:pt-8`,children:[(0,I.jsx)(ine,{model:e,stored:n,recordKey:t}),j===-1&&M,C.map((e,t)=>e.kind===`custom`&&e.sidebar?(0,I.jsx)(J5,{item:e,scope:N},`custom:${t}`):t===j?(0,I.jsx)(l.Fragment,{children:M},`summary`):null),(0,I.jsx)(G5,{title:`Details`,rows:[q5(e,`created`),E].flatMap(t=>{let r=t?e.fields[t]:void 0;return t&&r&&k(t)?[{label:O(t)?.label??W(t),value:Hg(r,n.record[t],O(t))}]:[]})}),x.records.length>0&&(0,I.jsx)(W5,{title:`Related records`,children:(0,I.jsx)(U5,{records:x.records,onNavigate:o})})]})]})]}),(0,I.jsx)(`div`,{className:`fixed inset-x-0 bottom-0 z-30 flex items-center gap-2 border-t bg-background p-3 md:hidden`,children:ee})]})},xie=e=>Os(e)?e.status===401||e.status===403?`It did not accept your sign-in: ${e.message}`:e.message:`It did not answer.`,Sie=({status:e})=>{let t=Wf();return e.state===`error`?(0,I.jsx)(`div`,{className:`flex h-full min-h-48 items-center justify-center p-8`,children:(0,I.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,I.jsxs)(`h1`,{className:`text-[15px] font-semibold`,children:[`Cannot reach `,e.source.label]}),(0,I.jsxs)(`p`,{className:`mt-1 text-[13px] text-muted-foreground`,children:[xie(e.error),` The rest of the app works as before.`]}),(0,I.jsx)(V,{className:`mt-3`,onClick:()=>void t.refetchQueries({queryKey:H.sourceMetas(e.source.url)}),children:`Try again`})]})}):(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)($n,{}),` Loading from `,e.source.label]})},Cie=(e,t)=>{let[n,r]=(0,l.useState)(e);return(0,l.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n},wie=jo(),Tie=e=>Object.values(e.resources).flatMap(t=>{let n=e.views[t.name];return!t.search?.length||!n||n.nav?.hidden||e.permissions[t.name]?.read===!1?[]:[{model:t,view:n,label:n.names?.plural??W(t.name)}]}),Eie=e=>{let t=e.map(e=>e.label.toLowerCase());return t.length===0?`Search`:t.length===1?`Search ${t[0]}`:t.length===2?`Search ${t[0]} and ${t[1]}`:`Search ${t[0]}, ${t[1]} and more`},Die=e=>go(wie.search(e.trim())),q9=e=>{let t=e.view?.searchResult?.title;return t?.length?t:[qm(e.model,e.view)]},J9=e=>{let t=q9(e);return e.view?.searchResult?.subtitle??e.model.search?.find(e=>!t.includes(e))},Oie=e=>{let t=J9(e),n=[...q9(e),...t?[t]:[],...e.model.search??[]];return[...new Set([...e.model.primaryKey,...n.filter(t=>Object.hasOwn(e.model.fields,t))])]},Y9=(e,t,n)=>{let r=t[n];return r==null?``:e.model.fields[n]?.type===`enum`?Ho(String(r),e.view?.fields[n]?.valueLabels):String(r)},kie=(e,t,n,r=``)=>{let i=Yo(Ym(e.model,t)),a=q9(e),o=J9(e),s=Jo(e.model,t,n,[...a,...o?[o]:[]])??o,c=s?Y9(e,t,s):``;return{id:i,title:a.map(n=>Y9(e,t,n)).filter(Boolean).join(` `)||i,...c&&{subtitle:c},href:$o({kind:`record`,resource:e.model.name,key:i},r)}},Aie=()=>{let e=G(),t=U(),{basePath:n}=rg(),r=(0,l.useMemo)(()=>Tie(e),[e]),[i,a]=(0,l.useState)(``),o=i.trim(),s=Cie(o,200),c=o.length>=2,u=c&&s.length>=2,d=gm({queries:r.map(e=>({queryKey:[`global-search`,e.model.name,s],enabled:u,staleTime:1/0,gcTime:0,queryFn:()=>t.list(e.model.name,{filter:Die(s),pageSize:5,fields:Oie(e)})}))}),f=r.flatMap((e,t)=>{let r=d[t];if(!u||!r)return[];if(r.error)return[{id:e.model.name,label:e.label,hits:[],failed:!0}];let i=(r.data?.items??[]).map(t=>kie(e,t,s,n));return i.length>0?[{id:e.model.name,label:e.label,hits:i}]:[]});return{available:r.length>0,placeholder:Eie(r),text:i,setText:a,query:u?s:``,loading:c&&(o!==s||d.some(e=>e.isFetching)),groups:f}},jie=e=>!!(e?.updateAvailable&&e.indicator),X9={immediate:`Updates as soon as a release is out`,weekly:`Updates at a set time every week`,scheduled:`Updates at the time set for this release`,manual:`Updates only when asked to`},Mie=e=>e.updating?`Updating now`:e.nextUpdateAt?`${X9[e.policy]}: next on ${yd(Date.parse(e.nextUpdateAt))} UTC`:X9[e.policy],Nie=e=>Os(e)&&e.status===409?`Already on the latest version, or an update is running.`:Os(e)&&e.status===403?`Only an admin can update the runtime.`:`The update could not be started. Try again later.`,Pie=18e5,Fie=3e4,Iie=e=>{let t=Mh(),n=(0,l.useRef)(t);n.current=t;let r=t!==void 0;return(0,l.useMemo)(()=>r?ed({url:e,token:()=>n.current}):void 0,[e,r])},Lie=e=>{let[t,n]=(0,l.useState)(),[r,i]=(0,l.useState)(!1),[a,o]=(0,l.useState)(),[s,c]=(0,l.useState)(),u=t?.updating??!1;return(0,l.useEffect)(()=>{if(!e)return;let t=!0,r=()=>e.status().then(e=>{t&&(n(e),c(void 0))},e=>t&&c(e));r();let i=setInterval(()=>void r(),u?Fie:Pie);return()=>{t=!1,clearInterval(i)}},[e,u]),{status:t,update:(0,l.useCallback)(async()=>{e&&(i(!0),o(void 0),await e.update().then(n,o),i(!1))},[e]),requesting:r,error:a,checkError:s}},Z9=({label:e,value:t})=>(0,I.jsxs)(`div`,{className:`flex justify-between gap-4 py-1 text-[13px]`,children:[(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:e}),(0,I.jsx)(`span`,{className:`font-medium tabular-nums`,children:t})]}),Q9=({client:e})=>{let{status:t,update:n,requesting:r,error:i,checkError:a}=Lie(e),[o,s]=(0,l.useState)(!1);return!t||!o&&!jie(t)?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(V,{size:`sm`,variant:`ghost`,"aria-label":`Update available`,title:`Update available`,onClick:()=>s(!0),className:`max-md:size-9 max-md:p-0`,children:[(0,I.jsx)(me,{className:`size-3.5 text-primary`}),(0,I.jsx)(`span`,{className:`max-md:sr-only`,children:`Update`})]}),o&&(0,I.jsxs)(Td,{title:`Runtime update`,description:Mie(t),onClose:()=>s(!1),actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:()=>s(!1),children:`Close`}),(0,I.jsx)(V,{variant:`primary`,loading:r,disabled:t.updating||!t.updateAvailable,onClick:()=>void n(),children:t.updating?`Updating…`:`Update now`})]}),children:[(0,I.jsx)(Z9,{label:`Current version`,value:t.version}),(0,I.jsx)(Z9,{label:`Latest version`,value:t.latest}),i!==void 0&&(0,I.jsx)(`p`,{role:`alert`,className:`mt-3 text-[13px] text-danger-text`,children:Nie(i)}),a!==void 0&&(0,I.jsx)(`p`,{className:`mt-3 text-[13px] text-muted-foreground`,children:`The status could not be checked again; this is the last one read.`})]})]})},Rie=({url:e})=>(0,I.jsx)(Q9,{client:Iie(e)}),zie=({url:e,client:t})=>t?(0,I.jsx)(Q9,{client:t}):(0,I.jsx)(Rie,{url:e}),Bie=({signIn:e,onStop:t})=>{let[n,r]=(0,l.useState)(!1),[i,a]=(0,l.useState)(),o=async()=>{r(!0),a(void 0);try{await t()}catch(e){if(!(e instanceof qs))throw e;a(cd(e)),r(!1)}};return(0,I.jsxs)(`div`,{role:`region`,"aria-label":`Staff session`,className:`flex flex-wrap items-center gap-x-3 gap-y-2 border-b border-warning/40 bg-warning-soft px-4 py-2 text-[13px] text-warning-text`,children:[(0,I.jsx)(en,{"aria-hidden":!0,className:`size-4 shrink-0`}),(0,I.jsxs)(`p`,{className:`min-w-64 flex-1 break-words`,children:[(0,I.jsx)(`span`,{className:`font-semibold`,children:e.staffName??e.staff}),` is signed in as `,(0,I.jsx)(`span`,{className:`font-semibold`,children:e.user}),` until`,` `,yd(Date.parse(e.expiresAt)),`. Reason: `,e.reason]}),i&&(0,I.jsx)(`p`,{role:`alert`,className:`text-xs font-medium text-danger-text`,children:i}),(0,I.jsx)(V,{size:`sm`,loading:n,onClick:()=>void o(),children:`Stop staff session`})]})},Vie=(e,t,n)=>({filter:n.filter??``,orderBy:n.orderBy??bg(e,t),pageSize:n.limit??3,fields:[...new Set([...e.primaryKey,qm(e,t),n.status])]}),Hie=(e,t,n,r,i,a)=>r.map(r=>{let o=Yo(Ym(e,r)),s=String(r[n.status]??``);return{id:o,label:Jm(e,t,r,o),href:$o({kind:`record`,resource:e.name,key:o},i),status:e.fields[n.status]?.type===`enum`&&s?Ho(s,t.fields[n.status]?.valueLabels):s,tone:n.tones[s]??`neutral`,pulse:n.pulse?.includes(s)??!1,active:o===a}}),Uie=(e,t,n,r,i)=>{let a=n.find(t=>Yo(Ym(e,t))===r);return a!==void 0&&t.some(e=>!Object.is(a[e],i[e]))},$9=({model:e,request:t})=>H.navRecent(e.name,t.filter,t.orderBy,t.pageSize),Wie=e=>{let t=Wf();(0,l.useEffect)(()=>t.getQueryCache().subscribe(n=>{if(n.type!==`updated`||n.action.type!==`success`)return;let[r,i,a]=n.query.queryKey,o=n.action.data?.record;if(r===`record`&&typeof a==`string`&&o)for(let n of e){if(n.model.name!==i)continue;let e=t.getQueryData($9(n));e&&Uie(n.model,n.request.fields,e.items,a,o)&&t.invalidateQueries({queryKey:$9(n),exact:!0})}}),[t,e])},Gie=(e,t,n)=>{let r=U(),i=(0,l.useMemo)(()=>{let t=q6(e);return Object.values(e.views).flatMap(n=>{let r=e.resources[n.resource],i=n.nav?.recent;return r&&i&&!n.nav?.hidden&&!t.has(r.name)?[{model:r,view:n,recent:i,request:Vie(r,n,i)}]:[]})},[e]);Wie(i);let a=gm({queries:i.map(e=>({queryKey:$9(e),queryFn:()=>r.list(e.model.name,e.request),refetchOnWindowFocus:!0}))});return Object.fromEntries(i.map(({model:e,view:r,recent:i},o)=>{let s=a[o];if(s.isPending)return[e.name,{state:`loading`}];if(s.isError)return[e.name,{state:`error`}];let c=n.resource===e.name?n.key:void 0;return[e.name,{state:`ready`,records:Hie(e,r,i,s.data.items,t,c)}]}))},Kie=e=>e?.kind===`page`?e.page:e?.resource,qie=e=>e?.kind===`record`?e:void 0,Jie=({workspace:e,sidebarMode:t,assistant:n,runtime:r})=>{let i=G(),{state:a,session:o,signOut:s,stopStaffSession:c,organizations:u}=B();if(a.kind!==`signed-in`)throw Error(`The shell is only rendered for a signed-in user`);let{user:d,staff:f}=a,{path:p,params:m,basePath:h}=rg(),{address:g,go:_,open:v}=Eg(),y=Kie(g),b=qie(g),x=Aie(),S=X6(i,h,Gie(i,h,{resource:y,key:b?.key})),C=Object.keys(i.pages)[0],w=Object.keys(i.resources)[0],T=g?.kind===`page`?i.pages[g.page]:void 0;(0,l.useEffect)(()=>{p===`/`&&(C?_({kind:`page`,page:C},{replace:!0}):w&&_({kind:`list`,resource:w},{replace:!0}))},[p,C,w,_]);let E=g?.kind===`page`?void 0:g?.resource,D=E?Gh(i,E):void 0,O=E?i.views[E]:void 0,k=S.find(e=>e.items.some(e=>e.id===y)),A=E?i.resources[E]:void 0,j=Gm(b?.resource??``,b?.key??``,!!(A&&b)),M=A&&b&&j.data?Jm(A,O,j.data.record,b.key):b?.key,{shell:N}=$m(),ee=N?.actions,te=N?.rightPanel,[ne,re]=(0,l.useState)(!1),ie=i.assistant?.url,ae=ie&&(0,I.jsx)(Ph,{open:ne,onToggle:()=>re(!ne)}),oe=ie&&ne&&(0,I.jsx)(Lh,{url:ie,client:n,page:m.size>0?`${p}?${m}`:p,onClose:()=>re(!1)}),se=i.runtime?.url,ce=se&&(0,I.jsx)(zie,{url:se,client:r}),le=K6((0,l.useCallback)(()=>M6(h),[h])),ue=W6(d,le.current),P=Wm(ue),de=z5(),fe=j6(!!u),pe=fe.current,me=!!u&&pe!==void 0&&!pe.organization,he=u?Aee[p]:void 0,ge=p===`/-/account`?`Sign-in & security`:p===`/-/sign-in-policy`?`Sign-in policy`:he,_e=ge?[ge]:Uh({basePath:h,address:g,group:k?.label,page:T,resourceLabel:O?.names?.plural??(E&&W(E)),recordTitle:M}),ve=p===`/-/account`?(0,I.jsx)(Af,{email:d.email}):p===`/-/sign-in-policy`?P?(0,I.jsx)(Hf,{}):(0,I.jsx)(Qh,{title:`Admins only`,children:`Only an admin can change how people sign in.`}):he&&p===`/-/organization`?(0,I.jsx)(L6,{current:pe,basePath:h,onChanged:fe.reload}):he&&(p===`/-/organization/members`||p===`/-/organization/invitations`)?Nm(pe)?p===`/-/organization/members`?(0,I.jsx)(E6,{current:pe}):(0,I.jsx)(A6,{current:pe}):(0,I.jsx)(Qh,{title:`Owners and admins only`,children:`Only the organization's owners and admins manage its members.`}):he&&p===`/-/organizations`||me?(0,I.jsx)(U6,{state:fe,basePath:h}):g?g.kind===`page`?T?(0,I.jsx)(s5,{name:T.name},T.name):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no page called `,g.page,`.`]}):D&&D.state!==`ready`?(0,I.jsx)(Sie,{status:D}):g.kind===`create`?(0,I.jsx)(D_,{resource:g.resource},`${g.resource}/new`):g.kind===`record`?(0,I.jsx)(yie,{resource:g.resource,recordKey:g.key},`${g.resource}/${g.key}`):(0,I.jsx)(x6,{address:g},g.resource):p===`/`?(0,I.jsx)(Qh,{title:`Choose a resource`,children:`Pick one from the sidebar.`}):(0,I.jsx)(Qh,{title:`Not found`,children:`There is nothing at this address.`}),ye=(0,I.jsx)(or,{sidebarMode:t??`text-small`,activeItem:y??``,breadcrumb:_e,user:gte(ue),onSignOut:()=>void s(),workspace:pe?.organization?.name??e,navGroups:S,bottomBar:Hh(i,h,y),userMenu:[...J6(i,h,y),...u?jee(h,p,pe):[],...mn(h,p,P)],organizations:u&&{...pe?.organization&&{current:{id:pe.organization.id,name:pe.organization.name}},others:fe.organizations.filter(e=>e.id!==pe?.organization?.id),onSwitch:e=>void o.organizations.switchTo(e).then(()=>M6(h))},roles:le.current?.active?{active:le.current.active,roles:le.current.roles,onSwitch:le.switchTo}:void 0,onNavigate:v,search:x.available?{placeholder:x.placeholder,text:x.text,onTextChange:x.setText,query:x.query,loading:x.loading,groups:x.groups,onSelect:v}:void 0,actions:(ee||ce||ae)&&(0,I.jsxs)(I.Fragment,{children:[ee&&(0,I.jsx)(kg,{name:`shell.actions`,fallback:null,children:(0,I.jsx)(ee,{})}),ce,ae]}),rightPanel:(te||oe)&&(0,I.jsxs)(I.Fragment,{children:[te&&(0,I.jsx)(kg,{name:`shell.rightPanel`,fallback:null,children:(0,I.jsx)(te,{})}),oe]}),children:ve}),be=P&&de.length>0;return!f&&!be?ye:(0,I.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[f&&(0,I.jsx)(Bie,{signIn:f,onStop:c}),be&&(0,I.jsx)(V5,{off:de}),(0,I.jsx)(`div`,{className:`min-h-0 flex-1`,children:ye})]})},Yie=({baseUrl:e,client:t,sources:n,basePath:r,initialUrl:i,workspace:a,sidebarMode:o,ui:s,assistant:c,runtime:l,pluginLoader:u})=>{let{session:d,markSignedOut:f}=B();return(0,I.jsx)(Em,{baseUrl:e,client:t,sources:n,token:d.token,onUnauthenticated:f,children:(0,I.jsx)(sg,{basePath:r,initialUrl:i,children:(0,I.jsx)(eg,{children:(0,I.jsx)(wte,{children:(0,I.jsx)(B5,{ui:s,...u&&{loader:u},children:(0,I.jsx)(Jie,{workspace:a,sidebarMode:o,assistant:c,runtime:l})})})})})})},Xie=({auth:e,workspace:t,...n})=>(0,I.jsx)(nd,{session:e,children:(0,I.jsx)(pte,{workspace:t,children:(0,I.jsx)(Yie,{workspace:t,...n})})});export{oh as A,wm as B,xh as C,uh as D,dh as E,Ete as F,Tte as I,Gm as L,nh as M,th as N,lh as O,eh as P,Em as R,Th as S,mh as T,c as V,Jh as _,C5 as a,kh as b,h5 as c,Ew as d,ew as f,Eg as g,Dg as h,R9 as i,ih as j,sh as k,e8 as l,tw as m,B9 as n,w5 as o,nw as p,z9 as r,v5 as s,Xie as t,Tw as u,Nh as v,_h as w,Dh as x,Mh as y,U as z};
|
|
65
|
+
`},bne={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function xne(e){let{announcements:t=bne,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=yne}=e,{announce:a,announcement:o}=gne(),s=_7(`DndLiveRegion`),[c,u]=(0,l.useState)(!1);if((0,l.useEffect)(()=>{u(!0)},[]),_ne((0,l.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let d=l.createElement(l.Fragment,null,l.createElement(mne,{id:r,value:i.draggable}),l.createElement(hne,{id:s,announcement:o}));return n?(0,Yx.createPortal)(d,n):d}var E7;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(E7||={});function D7(){}function O7(e,t){return(0,l.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function Sne(){var e=[...arguments];return(0,l.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var k7=Object.freeze({x:0,y:0});function A7(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function j7(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Cne(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function M7(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function N7(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function P7(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var wne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=P7(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=A7(P7(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(j7)},Tne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=M7(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=M7(r),o=i.reduce((e,t,r)=>e+A7(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(j7)};function Ene(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Dne=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Ene(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(Cne)};function One(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function F7(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:k7}function kne(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Ane=kne(1);function jne(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Mne(e,t,n){let r=jne(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Nne={ignoreTransform:!1};function I7(e,t){t===void 0&&(t=Nne);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=a7(e).getComputedStyle(e);t&&(n=Mne(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function L7(e){return I7(e,{ignoreTransform:!0})}function Pne(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Fne(e,t){return t===void 0&&(t=a7(e).getComputedStyle(e)),t.position===`fixed`}function Ine(e,t){t===void 0&&(t=a7(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function R7(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(o7(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!s7(i)||c7(i)||n.includes(i))return n;let a=a7(e).getComputedStyle(i);return i!==e&&Ine(i,a)&&n.push(i),Fne(i,a)?n:r(i.parentNode)}return e?r(e):n}function z7(e){let[t]=R7(e,1);return t??null}function B7(e){return!n7||!e?null:r7(e)?e:i7(e)?o7(e)||e===l7(e).scrollingElement?window:s7(e)?e:null:null}function V7(e){return r7(e)?e.scrollX:e.scrollLeft}function H7(e){return r7(e)?e.scrollY:e.scrollTop}function U7(e){return{x:V7(e),y:H7(e)}}var W7;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(W7||={});function G7(e){return!n7||!e?!1:e===document.scrollingElement}function K7(e){let t={x:0,y:0},n=G7(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Lne={x:.2,y:.2};function Rne(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Lne);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=K7(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=W7.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=W7.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=W7.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=W7.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function zne(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function q7(e){return e.reduce((e,t)=>y7(e,U7(t)),k7)}function Bne(e){return e.reduce((e,t)=>e+V7(t),0)}function Vne(e){return e.reduce((e,t)=>e+H7(t),0)}function Hne(e,t){if(t===void 0&&(t=I7),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);z7(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Une=[[`x`,[`left`,`right`],Bne],[`y`,[`top`,`bottom`],Vne]],J7=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=R7(t),r=q7(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Une)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Y7=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function Wne(e){let{EventTarget:t}=a7(e);return e instanceof t?e:l7(e)}function X7(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var Z7;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Z7||={});function Q7(e){e.preventDefault()}function Gne(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var $7={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},Kne=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},e9=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Y7(l7(t)),this.windowListeners=new Y7(a7(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Z7.Resize,this.handleCancel),this.windowListeners.add(Z7.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Z7.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Hne(n),t(k7)}handleKeyDown(e){if(x7(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=$7,coordinateGetter:a=Kne,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:k7;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=b7(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=K7(n),p=zne(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,y7(b7(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};e9.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=$7,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function t9(e){return!!(e&&`distance`in e)}function n9(e){return!!(e&&`delay`in e)}var r9=class{constructor(e,t,n){n===void 0&&(n=Wne(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=l7(i),this.documentListeners=new Y7(this.document),this.listeners=new Y7(n),this.windowListeners=new Y7(a7(i)),this.initialCoordinates=S7(r)??k7,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Z7.Resize,this.handleCancel),this.windowListeners.add(Z7.DragStart,Q7),this.windowListeners.add(Z7.VisibilityChange,this.handleCancel),this.windowListeners.add(Z7.ContextMenu,Q7),this.documentListeners.add(Z7.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(n9(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(t9(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Z7.Click,Gne,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Z7.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=S7(e)??k7,s=b7(n,o);if(!t&&a){if(t9(a)){if(a.tolerance!=null&&X7(s,a.tolerance))return this.handleCancel();if(X7(s,a.distance))return this.handleStart()}if(n9(a)&&X7(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},qne={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},i9=class extends r9{constructor(e){let{event:t}=e,n=l7(t.target);super(e,qne,n)}};i9.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var Jne={move:{name:`mousemove`},end:{name:`mouseup`}},a9;(function(e){e[e.RightClick=2]=`RightClick`})(a9||={});var o9=class extends r9{constructor(e){super(e,Jne,l7(e.event.target))}};o9.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==a9.RightClick&&(r?.({event:n}),!0)}}];var s9={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},c9=class extends r9{constructor(e){super(e,s9)}static setup(){return window.addEventListener(s9.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(s9.move.name,e)};function e(){}}};c9.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var l9;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(l9||={});var u9;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(u9||={});function Yne(e){let{acceleration:t,activator:n=l9.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=u9.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:p}=e,m=Zne({delta:f,disabled:!a}),[h,g]=lne(),_=(0,l.useRef)({x:0,y:0}),v=(0,l.useRef)({x:0,y:0}),y=(0,l.useMemo)(()=>{switch(n){case l9.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case l9.DraggableRect:return i}},[n,i,c]),b=(0,l.useRef)(null),x=(0,l.useCallback)(()=>{let e=b.current;if(!e)return;let t=_.current.x*v.current.x,n=_.current.y*v.current.y;e.scrollBy(t,n)},[]),S=(0,l.useMemo)(()=>s===u9.TreeOrder?[...u].reverse():u,[s,u]);(0,l.useEffect)(()=>{if(!a||!u.length||!y){g();return}for(let e of S){if(r?.(e)===!1)continue;let n=u.indexOf(e),i=d[n];if(!i)continue;let{direction:a,speed:s}=Rne(e,i,y,t,p);for(let e of[`x`,`y`])m[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){g(),b.current=e,h(x,o),_.current=s,v.current=a;return}}_.current={x:0,y:0},v.current={x:0,y:0},g()},[t,x,r,g,a,o,JSON.stringify(y),JSON.stringify(m),h,u,S,d,JSON.stringify(p)])}var Xne={x:{[W7.Backward]:!1,[W7.Forward]:!1},y:{[W7.Backward]:!1,[W7.Forward]:!1}};function Zne(e){let{delta:t,disabled:n}=e,r=h7(t);return p7(e=>{if(n||!r||!e)return Xne;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[W7.Backward]:e.x[W7.Backward]||i.x===-1,[W7.Forward]:e.x[W7.Forward]||i.x===1},y:{[W7.Backward]:e.y[W7.Backward]||i.y===-1,[W7.Forward]:e.y[W7.Forward]||i.y===1}}},[n,t,r])}function Qne(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return p7(e=>t==null?null:r??e??null,[r,t])}function $ne(e,t){return(0,l.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var d9;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(d9||={});var f9;(function(e){e.Optimized=`optimized`})(f9||={});var p9=new Map;function ere(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,l.useState)(null),{frequency:s,measure:c,strategy:u}=i,d=(0,l.useRef)(e),f=_(),p=f7(f),m=(0,l.useCallback)(function(e){e===void 0&&(e=[]),!p.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[p]),h=(0,l.useRef)(null),g=p7(t=>{if(f&&!n)return p9;if(!t||t===p9||d.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new J7(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,f,c]);return(0,l.useEffect)(()=>{d.current=e},[e]),(0,l.useEffect)(()=>{f||m()},[n,f]),(0,l.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,l.useEffect)(()=>{f||typeof s!=`number`||h.current!==null||(h.current=setTimeout(()=>{m(),h.current=null},s))},[s,f,m,...r]),{droppableRects:g,measureDroppableContainers:m,measuringScheduled:a!=null};function _(){switch(u){case d9.Always:return!1;case d9.BeforeDragging:return n;default:return!n}}}function m9(e,t){return p7(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function tre(e,t){return m9(e,t)}function nre(e){let{callback:t,disabled:n}=e,r=d7(t),i=(0,l.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,l.useEffect)(()=>()=>i?.disconnect(),[i]),i}function h9(e){let{callback:t,disabled:n}=e,r=d7(t),i=(0,l.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,l.useEffect)(()=>()=>i?.disconnect(),[i]),i}function rre(e){return new J7(I7(e),e)}function g9(e,t,n){t===void 0&&(t=rre);let[r,i]=(0,l.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=nre({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=h9({callback:a});return u7(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function ire(e){return F7(e,m9(e))}var _9=[];function are(e){let t=(0,l.useRef)(e),n=p7(n=>e?n&&n!==_9&&e&&t.current&&e.parentNode===t.current.parentNode?n:R7(e):_9,[e]);return(0,l.useEffect)(()=>{t.current=e},[e]),n}function ore(e){let[t,n]=(0,l.useState)(null),r=(0,l.useRef)(e),i=(0,l.useCallback)(e=>{let t=B7(e.target);t&&n(e=>e?(e.set(t,U7(t)),new Map(e)):null)},[]);return(0,l.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=B7(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,U7(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{B7(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,l.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>y7(e,t),k7):q7(e):k7,[e,t])}function v9(e,t){t===void 0&&(t=[]);let n=(0,l.useRef)(null);return(0,l.useEffect)(()=>{n.current=null},t),(0,l.useEffect)(()=>{let t=e!==k7;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?b7(e,n.current):k7}function sre(e){(0,l.useEffect)(()=>{if(!n7)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function cre(e,t){return(0,l.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function y9(e){return(0,l.useMemo)(()=>e?Pne(e):null,[e])}var b9=[];function lre(e,t){t===void 0&&(t=I7);let[n]=e,r=y9(n?a7(n):null),[i,a]=(0,l.useState)(b9);function o(){a(()=>e.length?e.map(e=>G7(e)?r:new J7(t(e),e)):b9)}let s=h9({callback:o});return u7(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function ure(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return s7(t)?t:e}function dre(e){let{measure:t}=e,[n,r]=(0,l.useState)(null),i=h9({callback:(0,l.useCallback)(e=>{for(let{target:n}of e)if(s7(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=m7((0,l.useCallback)(e=>{let n=ure(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,l.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var fre=[{sensor:i9,options:{}},{sensor:e9,options:{}}],pre={current:{}},x9={draggable:{measure:L7},droppable:{measure:L7,strategy:d9.WhileDragging,frequency:f9.Optimized},dragOverlay:{measure:I7}},S9=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},mre={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new S9,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:D7},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:x9,measureDroppableContainers:D7,windowRect:null,measuringScheduled:!1},hre={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:D7,draggableNodes:new Map,over:null,measureDroppableContainers:D7},C9=(0,l.createContext)(hre),w9=(0,l.createContext)(mre);function gre(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new S9}}}function _re(e,t){switch(t.type){case E7.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case E7.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case E7.DragEnd:case E7.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case E7.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new S9(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case E7.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new S9(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case E7.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new S9(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function vre(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,l.useContext)(C9),a=h7(r),o=h7(n?.id);return(0,l.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!x7(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=fne(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function yre(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function bre(e){return(0,l.useMemo)(()=>({draggable:{...x9.draggable,...e?.draggable},droppable:{...x9.droppable,...e?.droppable},dragOverlay:{...x9.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function xre(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,l.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;u7(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=F7(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=z7(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var T9=(0,l.createContext)({...k7,scaleX:1,scaleY:1}),E9;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(E9||={});var Sre=(0,l.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=fre,collisionDetection:o=Dne,measuring:s,modifiers:c,...u}=e,[d,f]=(0,l.useReducer)(_re,void 0,gre),[p,m]=vne(),[h,g]=(0,l.useState)(E9.Uninitialized),_=h===E9.Initialized,{draggable:{active:v,nodes:y,translate:b},droppable:{containers:x}}=d,S=v==null?null:y.get(v),C=(0,l.useRef)({initial:null,translated:null}),w=(0,l.useMemo)(()=>v==null?null:{id:v,data:S?.data??pre,rect:C},[v,S]),T=(0,l.useRef)(null),[E,D]=(0,l.useState)(null),[O,k]=(0,l.useState)(null),A=f7(u,Object.values(u)),j=_7(`DndDescribedBy`,t),M=(0,l.useMemo)(()=>x.getEnabled(),[x]),N=bre(s),{droppableRects:ee,measureDroppableContainers:te,measuringScheduled:ne}=ere(M,{dragging:_,dependencies:[b.x,b.y],config:N.droppable}),re=Qne(y,v),ie=(0,l.useMemo)(()=>O?S7(O):null,[O]),ae=Fe(),oe=tre(re,N.draggable.measure);xre({activeNode:v==null?null:y.get(v),config:ae.layoutShiftCompensation,initialRect:oe,measure:N.draggable.measure});let se=g9(re,N.draggable.measure,oe),ce=g9(re?re.parentElement:null),le=(0,l.useRef)({activatorEvent:null,active:null,activeNode:re,collisionRect:null,collisions:null,droppableRects:ee,draggableNodes:y,draggingNode:null,draggingNodeRect:null,droppableContainers:x,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=x.getNodeFor(le.current.over?.id),P=dre({measure:N.dragOverlay.measure}),de=P.nodeRef.current??re,fe=_?P.rect??se:null,pe=!!(P.nodeRef.current&&P.rect),me=ire(pe?null:se),he=y9(de?a7(de):null),ge=are(_?ue??re:null),_e=lre(ge),ve=yre(c,{transform:{x:b.x-me.x,y:b.y-me.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:se,containerNodeRect:ce,draggingNodeRect:fe,over:le.current.over,overlayNodeRect:P.rect,scrollableAncestors:ge,scrollableAncestorRects:_e,windowRect:he}),ye=ie?y7(ie,b):null,be=ore(ge),xe=v9(be),Se=v9(be,[se]),Ce=y7(ve,xe),we=fe?Ane(fe,ve):null,Te=w&&we?o({active:w,collisionRect:we,droppableRects:ee,droppableContainers:M,pointerCoordinates:ye}):null,Ee=N7(Te,`id`),[De,Oe]=(0,l.useState)(null),ke=One(pe?ve:y7(ve,Se),De?.rect??null,se),Ae=(0,l.useRef)(null),je=(0,l.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=y.get(T.current);if(!i)return;let a=e.nativeEvent,o=new n({active:T.current,activeNode:i,event:a,options:r,context:le,onAbort(e){if(!y.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),p({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!y.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),p({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=y.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:C}};(0,Yx.unstable_batchedUpdates)(()=>{r?.(i),g(E9.Initializing),f({type:E7.DragStart,initialCoordinates:e,active:t}),p({type:`onDragStart`,event:i}),D(Ae.current),k(a)})},onMove(e){f({type:E7.DragMove,coordinates:e})},onEnd:s(E7.DragEnd),onCancel:s(E7.DragCancel)});Ae.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=le.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===E7.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=E7.DragCancel)}T.current=null,(0,Yx.unstable_batchedUpdates)(()=>{f({type:e}),g(E9.Uninitialized),Oe(null),D(null),k(null),Ae.current=null;let t=e===E7.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),p({type:t,event:o})}})}}},[y]),Me=$ne(a,(0,l.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=y.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,je(n,t))},[y,je]));sre(a),u7(()=>{se&&h===E9.Initializing&&g(E9.Initialized)},[se,h]),(0,l.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=le.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:Ce.x,y:Ce.y},over:i};(0,Yx.unstable_batchedUpdates)(()=>{e?.(a),p({type:`onDragMove`,event:a})})},[Ce.x,Ce.y]),(0,l.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=le.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(Ee),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Yx.unstable_batchedUpdates)(()=>{Oe(s),a?.(c),p({type:`onDragOver`,event:c})})},[Ee]),u7(()=>{le.current={activatorEvent:O,active:w,activeNode:re,collisionRect:we,collisions:Te,droppableRects:ee,draggableNodes:y,draggingNode:de,draggingNodeRect:fe,droppableContainers:x,over:De,scrollableAncestors:ge,scrollAdjustedTranslate:Ce},C.current={initial:fe,translated:we}},[w,re,Te,we,y,de,fe,ee,x,De,ge,Ce]),Yne({...ae,delta:b,draggingRect:we,pointerCoordinates:ye,scrollableAncestors:ge,scrollableAncestorRects:_e});let Ne=(0,l.useMemo)(()=>({active:w,activeNode:re,activeNodeRect:se,activatorEvent:O,collisions:Te,containerNodeRect:ce,dragOverlay:P,draggableNodes:y,droppableContainers:x,droppableRects:ee,over:De,measureDroppableContainers:te,scrollableAncestors:ge,scrollableAncestorRects:_e,measuringConfiguration:N,measuringScheduled:ne,windowRect:he}),[w,re,se,O,Te,ce,P,y,x,ee,De,te,ge,_e,N,ne,he]),Pe=(0,l.useMemo)(()=>({activatorEvent:O,activators:Me,active:w,activeNodeRect:se,ariaDescribedById:{draggable:j},dispatch:f,draggableNodes:y,over:De,measureDroppableContainers:te}),[O,Me,w,se,f,j,y,De,te]);return l.createElement(T7.Provider,{value:m},l.createElement(C9.Provider,{value:Pe},l.createElement(w9.Provider,{value:Ne},l.createElement(T9.Provider,{value:ke},i)),l.createElement(vre,{disabled:n?.restoreFocus===!1})),l.createElement(xne,{...n,hiddenTextDescribedById:j}));function Fe(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=_&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),Cre=(0,l.createContext)(null),D9=`button`,wre=`Draggable`;function Tre(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=_7(wre),{activators:o,activatorEvent:s,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:p}=(0,l.useContext)(C9),{role:m=D9,roleDescription:h=`draggable`,tabIndex:g=0}=i??{},_=c?.id===t,v=(0,l.useContext)(_?T9:Cre),[y,b]=m7(),[x,S]=m7(),C=cre(o,t),w=f7(n);return u7(()=>(f.set(t,{id:t,key:a,node:y,activatorNode:x,data:w}),()=>{let e=f.get(t);e&&e.key===a&&f.delete(t)}),[f,t]),{active:c,activatorEvent:s,activeNodeRect:u,attributes:(0,l.useMemo)(()=>({role:m,tabIndex:g,"aria-disabled":r,"aria-pressed":_&&m===D9?!0:void 0,"aria-roledescription":h,"aria-describedby":d.draggable}),[r,m,g,_,h,d.draggable]),isDragging:_,listeners:r?void 0:C,node:y,over:p,setNodeRef:b,setActivatorNodeRef:S,transform:v}}function Ere(){return(0,l.useContext)(w9)}var Dre=`Droppable`,Ore={timeout:25};function kre(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=_7(Dre),{active:o,dispatch:s,over:c,measureDroppableContainers:u}=(0,l.useContext)(C9),d=(0,l.useRef)({disabled:n}),f=(0,l.useRef)(!1),p=(0,l.useRef)(null),m=(0,l.useRef)(null),{disabled:h,updateMeasurementsFor:g,timeout:_}={...Ore,...i},v=f7(g??r),y=h9({callback:(0,l.useCallback)(()=>{if(!f.current){f.current=!0;return}m.current!=null&&clearTimeout(m.current),m.current=setTimeout(()=>{u(Array.isArray(v.current)?v.current:[v.current]),m.current=null},_)},[_]),disabled:h||!o}),[b,x]=m7((0,l.useCallback)((e,t)=>{y&&(t&&(y.unobserve(t),f.current=!1),e&&y.observe(e))},[y])),S=f7(t);return(0,l.useEffect)(()=>{y&&b.current&&(y.disconnect(),f.current=!1,y.observe(b.current))},[b,y]),(0,l.useEffect)(()=>(s({type:E7.RegisterDroppable,element:{id:r,key:a,disabled:n,node:b,rect:p,data:S}}),()=>s({type:E7.UnregisterDroppable,key:a,id:r})),[r]),(0,l.useEffect)(()=>{n!==d.current.disabled&&(s({type:E7.SetDroppableDisabled,id:r,key:a,disabled:n}),d.current.disabled=n)},[r,a,n,s]),{active:o,rect:p,isOver:c?.id===r,node:b,over:c,setNodeRef:x}}function O9(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Are(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function k9(e){return e!==null&&e>=0}function jre(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Mre(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var A9=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=O9(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},j9={scaleX:1,scaleY:1},Nre=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...j9}:null}let s=Pre(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...j9}:r<t&&r>=a?{x:0,y:o.height+s,...j9}:{x:0,y:0,...j9}};function Pre(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var M9=`Sortable`,N9=l.createContext({activeIndex:-1,containerId:M9,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:A9,disabled:{draggable:!1,droppable:!1}});function Fre(e){let{children:t,id:n,items:r,strategy:i=A9,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:u,measureDroppableContainers:d}=Ere(),f=_7(M9,n),p=s.rect!==null,m=(0,l.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),h=o!=null,g=o?m.indexOf(o.id):-1,_=u?m.indexOf(u.id):-1,v=(0,l.useRef)(m),y=!jre(m,v.current),b=_!==-1&&g===-1||y,x=Mre(a);u7(()=>{y&&h&&d(m)},[y,m,h,d]),(0,l.useEffect)(()=>{v.current=m},[m]);let S=(0,l.useMemo)(()=>({activeIndex:g,containerId:f,disabled:x,disableTransforms:b,items:m,overIndex:_,useDragOverlay:p,sortedRects:Are(m,c),strategy:i}),[g,f,x.draggable,x.droppable,b,m,_,c,p,i]);return l.createElement(N9.Provider,{value:S},t)}var Ire=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return O9(n,r,i).indexOf(t)},Lre=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Rre={duration:200,easing:`ease`},P9=`transform`,zre=C7.Transition.toString({property:P9,duration:0,easing:`linear`}),Bre={roleDescription:`sortable`};function Vre(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,l.useState)(null),s=(0,l.useRef)(n);return u7(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=I7(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,l.useEffect)(()=>{a&&o(null)},[a]),a}function Hre(e){let{animateLayoutChanges:t=Lre,attributes:n,disabled:r,data:i,getNewIndex:a=Ire,id:o,strategy:s,resizeObserverConfig:c,transition:u=Rre}=e,{items:d,containerId:f,activeIndex:p,disabled:m,disableTransforms:h,sortedRects:g,overIndex:_,useDragOverlay:v,strategy:y}=(0,l.useContext)(N9),b=Ure(r,m),x=d.indexOf(o),S=(0,l.useMemo)(()=>({sortable:{containerId:f,index:x,items:d},...i}),[f,i,x,d]),C=(0,l.useMemo)(()=>d.slice(d.indexOf(o)),[d,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=kre({id:o,data:S,disabled:b.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:ee,over:te,setActivatorNodeRef:ne,transform:re}=Tre({id:o,data:S,attributes:{...Bre,...n},disabled:b.draggable}),ie=cne(D,M),ae=!!O,oe=ae&&!h&&k9(p)&&k9(_),se=!v&&ee,ce=oe?(se&&oe?re:null)??(s??y)({rects:g,activeNodeRect:A,activeIndex:p,overIndex:_,index:x}):null,le=k9(p)&&k9(_)?a({id:o,items:d,activeIndex:p,overIndex:_}):x,ue=O?.id,P=(0,l.useRef)({activeId:ue,items:d,newIndex:le,containerId:f}),de=d!==P.current.items,fe=t({active:O,containerId:f,isDragging:ee,isSorting:ae,id:o,index:x,items:d,newIndex:P.current.newIndex,previousItems:P.current.items,previousContainerId:P.current.containerId,transition:u,wasDragging:P.current.activeId!=null}),pe=Vre({disabled:!fe,index:x,node:T,rect:w});return(0,l.useEffect)(()=>{ae&&P.current.newIndex!==le&&(P.current.newIndex=le),f!==P.current.containerId&&(P.current.containerId=f),d!==P.current.items&&(P.current.items=d)},[ae,le,f,d]),(0,l.useEffect)(()=>{if(ue===P.current.activeId)return;if(ue!=null&&P.current.activeId==null){P.current.activeId=ue;return}let e=setTimeout(()=>{P.current.activeId=ue},50);return()=>clearTimeout(e)},[ue]),{active:O,activeIndex:p,attributes:j,data:S,rect:w,index:x,newIndex:le,items:d,isOver:E,isSorting:ae,isDragging:ee,listeners:N,node:T,overIndex:_,over:te,setNodeRef:ie,setActivatorNodeRef:ne,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:pe??ce,transition:me()};function me(){if(pe||de&&P.current.newIndex===x)return zre;if(!(se&&!x7(k)||!u)&&(ae||fe))return C7.Transition.toString({...u,property:P9})}}function Ure(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function F9(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Wre=[$.Down,$.Right,$.Up,$.Left],Gre=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Wre.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case $.Down:r.top<a.top&&t.push(n);break;case $.Up:r.top>a.top&&t.push(n);break;case $.Left:r.left>a.left&&t.push(n);break;case $.Right:r.left<a.left&&t.push(n)}});let c=Tne({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=N7(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=R7(c).some((e,t)=>s[t]!==e),i=I9(e,t),a=Kre(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:b7(u,l)}}}};function I9(e,t){return!F9(e)||!F9(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Kre(e,t){return!F9(e)||!F9(t)||!I9(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var qre=e=>Math.round(Number(e.replace(`,`,`.`).replace(/[^0-9.]/g,``))*100),Jre=({line:e,position:t,count:n,reorderable:r,editable:i,onChange:a,onRemove:o,onMove:s})=>{let{attributes:c,listeners:l,setNodeRef:u,setActivatorNodeRef:d,transform:f,transition:p,isDragging:m}=Hre({id:e.id,disabled:!r}),h=[...r?[{label:`Move up`,disabled:t===0,onSelect:()=>s(t-1)},{label:`Move down`,disabled:t===n-1,onSelect:()=>s(t+1)}]:[],...i?[{label:`Remove line`,destructive:!0,onSelect:o}]:[]];return(0,I.jsxs)(`div`,{ref:u,"data-line-id":e.id,style:{transform:f?`translate3d(0, ${f.y}px, 0)`:void 0,transition:p},className:F(`group relative border-b border-border bg-background px-2 py-1 last:border-b-0 hover:bg-surface`,$5,m&&`z-10 bg-surface opacity-80 shadow-pop`),children:[r?(0,I.jsx)(`button`,{ref:d,type:`button`,"aria-label":`Drag to reorder ${e.description}`,...c,...l,style:{touchAction:`none`},className:`flex size-7 cursor-grab items-center justify-center rounded text-faint-foreground opacity-60 hover:bg-muted hover:opacity-100 focus-visible:opacity-100 active:cursor-grabbing pointer-coarse:size-11`,children:(0,I.jsx)(We,{className:`size-4`})}):(0,I.jsx)(`span`,{}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`p`,{className:`truncate text-[13px] text-foreground`,children:e.description}),(0,I.jsx)(`p`,{className:`font-mono text-[11px] text-faint-foreground`,children:e.productId})]}),i?(0,I.jsx)(t7,{label:`Quantity`,value:e.quantity,format:String,parse:e=>Math.round(Number(e)),onCommit:e=>a({quantity:e})}):(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] tabular-nums`,children:e.quantity}),i?(0,I.jsx)(t7,{label:`Unit price`,value:e.unitPriceCents,format:e=>(e/100).toFixed(2),parse:qre,onCommit:e=>a({unitPriceCents:e})}):(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] tabular-nums`,children:(e.unitPriceCents/100).toFixed(2)}),(0,I.jsx)(`span`,{className:`px-2 text-right text-[13px] font-medium tabular-nums text-foreground`,children:F_(e7(e))}),h.length>0?(0,I.jsx)(sne,{label:`Actions for ${e.description}`,items:h}):(0,I.jsx)(`span`,{})]})},Yre=(e,t,n)=>{if(t===n||t<0||t>=e.length)return[...e];let r=[...e],[i]=r.splice(t,1);return r.splice(Math.min(Math.max(n,0),r.length),0,i),r},Xre=({lines:e,vatRate:t})=>{let n=one(e,t);return(0,I.jsxs)(`dl`,{className:`ml-auto grid w-64 grid-cols-[1fr_auto] gap-x-6 gap-y-1 px-2 pt-3 text-[13px] tabular-nums`,children:[(0,I.jsx)(`dt`,{className:`text-muted-foreground`,children:`Subtotal`}),(0,I.jsx)(`dd`,{className:`text-right text-foreground`,children:F_(n.subtotalCents)}),(0,I.jsxs)(`dt`,{className:`text-muted-foreground`,children:[`VAT `,Math.round(t*100),`%`]}),(0,I.jsx)(`dd`,{className:`text-right text-foreground`,children:F_(n.vatCents)}),(0,I.jsx)(`dt`,{className:`mt-1 border-t border-border pt-2 font-semibold text-foreground`,children:`Total`}),(0,I.jsx)(`dd`,{className:`mt-1 border-t border-border pt-2 text-right text-[15px] font-semibold text-foreground`,children:F_(n.totalCents)})]})},L9=`px-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,Zre=`To pick up a line, press space or enter on its drag handle. Use the up and down arrow keys to move it, space or enter to drop it, and escape to cancel. The row menu also has Move up and Move down.`,Qre=e=>{let t=t=>e.find(e=>e.id===t)?.description??`line`,n=t=>e.findIndex(e=>e.id===t)+1;return{onDragStart:({active:r})=>`Picked up ${t(r.id)}, line ${n(r.id)} of ${e.length}.`,onDragOver:({active:r,over:i})=>i?`${t(r.id)} is over line ${n(i.id)} of ${e.length}.`:void 0,onDragEnd:({active:r,over:i})=>i?`${t(r.id)} was dropped at line ${n(i.id)} of ${e.length}.`:`${t(r.id)} was dropped where it started.`,onDragCancel:({active:e})=>`Moving ${t(e.id)} was cancelled. It is back at line ${n(e.id)}.`}},$re=({lines:e,onChange:t,onReorder:n,vatRate:r=.21,readOnly:i,reorderable:a=!i})=>{let o=Sne(O7(o9,{activationConstraint:{distance:4}}),O7(c9,{activationConstraint:{delay:250,tolerance:5}}),O7(e9,{coordinateGetter:Gre})),s=(r,i)=>{let a=e[r];!a||i<0||i>=e.length||r===i||(n??(e=>t(e)))(Yre(e,r,i),{id:a.id,from:r,to:i})};return(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background`,children:[(0,I.jsxs)(`div`,{className:`${$5} border-b border-border bg-surface px-2 py-2`,children:[(0,I.jsx)(`span`,{}),(0,I.jsx)(`span`,{className:L9,children:`Item`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Qty`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Unit price`}),(0,I.jsx)(`span`,{className:`${L9} text-right`,children:`Line total`}),(0,I.jsx)(`span`,{})]}),(0,I.jsx)(Sre,{sensors:o,collisionDetection:wne,onDragEnd:({active:t,over:n})=>{n&&t.id!==n.id&&s(e.findIndex(e=>e.id===t.id),e.findIndex(e=>e.id===n.id))},accessibility:{announcements:Qre(e),screenReaderInstructions:{draggable:Zre}},children:(0,I.jsx)(Fre,{items:e.map(e=>e.id),strategy:Nre,children:e.map((n,r)=>(0,I.jsx)(Jre,{line:n,position:r,count:e.length,reorderable:a,editable:!i,onChange:r=>t(e.map(e=>e.id===n.id?{...e,...r}:e)),onRemove:()=>t(e.filter(e=>e.id!==n.id)),onMove:e=>s(r,e)},n.id))})}),!i&&(0,I.jsx)(`div`,{className:`border-t border-border bg-surface px-2 py-1.5`,children:(0,I.jsxs)(V,{variant:`ghost`,size:`sm`,onClick:()=>{let n=ane(e.length*3+1);t([...e,{id:`new-${e.length}-${n.id}`,productId:n.id,description:n.name,quantity:1,unitPriceCents:n.priceCents}])},children:[(0,I.jsx)(xt,{className:`size-3.5`}),`Add line`]})})]}),(0,I.jsx)(Xre,{lines:e,vatRate:r})]})},eie=(e,t)=>Object.values(e).find(e=>e.name!==t.name&&e.fields.position&&e.fields.quantity&&Object.values(e.fields).some(e=>e.type===`relation`&&e.relation?.resource===t.name)),tie=e=>({id:String(e.id),productId:String(e.productId??``),description:String(e.description??``),quantity:Number(e.quantity),unitPriceCents:Math.round(Number(e.unitPrice)*100)}),nie=({lines:e,draft:t,vatRate:n,saving:r})=>{let i=u_(tg(e.name),`update`);return(0,I.jsx)(g_,{title:`Lines`,help:`What the document bills for. Drag the handle, or use the menu, to change the order; Save applies it.`,children:(0,I.jsx)(`div`,{className:`-mx-4 overflow-x-auto px-4 [-webkit-overflow-scrolling:touch] md:mx-0 md:px-0`,children:(0,I.jsx)(`div`,{className:`min-w-[560px]`,children:(0,I.jsx)($re,{lines:t.shown.map(tie),onChange:()=>void 0,onReorder:e=>t.setOrder(e.map(e=>e.id)),vatRate:n,readOnly:!0,reorderable:i&&!r})})})})},rie=(e,t,n)=>`protobase:draft:${e}:${t}:${n}`,iie=(e,t,n)=>Hn(()=>{let r=e.getItem(t);if(r===null)return;let i=JSON.parse(r);if(i&&i.etag===n&&typeof i.fields==`object`&&i.fields!==null)return{etag:n,fields:i.fields,...Array.isArray(i.order)&&{order:i.order.map(String)}}},void 0),aie=(e,t,n)=>Hn(()=>n?e.setItem(t,JSON.stringify(n)):e.removeItem(t),void 0),R9=(e,{filter:t,orderBy:n,pageSize:r=50,fields:i,startToken:a=``,enabled:o=!0}={})=>{let s=U(),c=bs(t)??``,l=bm({queryKey:[...H.list(e,c,n??``,r,a),i?.join(`,`)??``],enabled:o,initialPageParam:a,queryFn:({pageParam:t})=>s.list(e,{filter:c,orderBy:n,pageSize:r,fields:i,pageToken:t}),getNextPageParam:e=>e.nextPageToken||void 0}),u=l.data?.pages??[];return{...l,items:u.flatMap(e=>e.items),totalEstimate:u[0]?.totalSizeEstimate}},oie=(e,t)=>Number(e.position)-Number(t.position),sie=(e,t,n)=>{let r=e&&Object.values(e.fields).find(e=>e.type===`relation`&&e.relation?.resource===t.name),i=R9(e?.name??``,{enabled:!!(e&&r),filter:r?`${r.name} = "${n}"`:void 0,pageSize:200,...e?.fields.position?.sortable&&{orderBy:`position asc`}});return{items:[...i.items].sort(oie),loading:i.isPending&&!!e}},cie=(e,t)=>{let[n,r]=(0,l.useState)(),i=t.map(e=>String(e.id)),a=(0,l.useMemo)(()=>{if(!n)return t;let e=n.flatMap(e=>t.filter(t=>String(t.id)===e)),r=t.filter(e=>!n.includes(String(e.id)));return[...e,...r]},[n,t]),o=a.map(e=>String(e.id)),s=n!==void 0&&o.some((e,t)=>e!==i[t]),c=(0,l.useCallback)(()=>!e||!s?[]:[{op:`reorder`,resource:e.name,field:`position`,keys:a.map(t=>Ym(e,t)),etags:Object.fromEntries(a.flatMap(t=>typeof t.etag==`string`?[[Yo(Ym(e,t)),t.etag]]:[]))}],[e,s,a]);return{shown:a,dirty:s,order:s?o:void 0,setOrder:e=>r(e),reset:()=>r(void 0),op:c}},z9=(e,t)=>{let n=U(),r=Wf(),i=Yo(t);return ym({mutationFn:({patch:r,etag:i})=>n.update(e,t,r,i),onSuccess:t=>{r.setQueryData(H.record(e,i),t),r.invalidateQueries({queryKey:[`page`,e]}),r.invalidateQueries({queryKey:[`list`,e]})}})},B9=e=>e instanceof Ds,lie=e=>{let t=typeof e.resource==`string`?e.resource:e.resource.toModel().name;return e.op===`reorder`?`reorder ${t} by ${e.field}`:`${e.op} ${t}`},uie=(e,t)=>{let n=e.operation,r=n===void 0?void 0:t[n];return r?`Operation ${n+1} (${lie(r)}) failed: ${e.message} Nothing was saved.`:`${e.message} Nothing was saved.`},die=(e,t)=>new e.constructor({...e.problem,detail:uie(e,t)}),V9=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==t)),fie=({model:e,stored:t,recordKey:n,mode:r,subject:i,draftKey:a,lines:o})=>{let s=U(),c=Wf(),u=z9(e.name,n),d=m_(r,i),[f]=(0,l.useState)(()=>a?iie(localStorage,a,t.etag):void 0),[p,m]=(0,l.useState)(f?.fields??{}),[h,g]=(0,l.useState)(!!f),[_,v]=(0,l.useState)(!1),[y,b]=(0,l.useState)({}),[x,S]=(0,l.useState)({}),C=Object.keys(p).length>0,w=C||!!o?.dirty;(0,l.useEffect)(()=>{f?.order&&o?.setOrder(f.order)},[]),(0,l.useEffect)(()=>{if(!a)return;let n=Object.fromEntries(Object.entries(p).filter(([t])=>!e.fields[t]?.sensitive)),r=Object.keys(n).length>0||!!o?.dirty;aie(localStorage,a,r?{etag:t.etag,fields:n,...o?.order&&{order:o.order}}:void 0)},[a,e,p,o?.dirty,o?.order,t.etag]);let T=n=>n in p?p[n]:[`boolean`,`file`].includes(e.fields[n].type)?t.record[n]:Ug(t.record[n]),E=(n,r)=>{S(e=>V9(e,n)),m(i=>Yg(e.fields[n],r,t.record[n])?{...i,[n]:r}:V9(i,n))},D=async()=>{let r=await s.get(e.name,n);c.setQueryData(H.record(e.name,n),r);let i={},a={};for(let[n,o]of Object.entries(p)){let s=e.fields[n];Yg(s,o,r.record[n])&&(a[n]=o,Ug(r.record[n])!==Ug(t.record[n])&&(i[n]=s.type===`file`?Hg(s,r.record[n]):Ug(r.record[n])))}m(a),b(i)},O=()=>Object.fromEntries(Object.entries(p).map(([t,n])=>[t,Kg(e.fields[t],n)])),k=e=>Os(e)?Object.fromEntries(e.errors.flatMap(e=>e.field?[[e.field,e.message]]:[])):{},A=async()=>{try{await u.mutateAsync({patch:O(),etag:t.etag})}catch(e){throw B9(e)?await D():Os(e)&&S(k(e)),e}},j=async r=>{let i=[...C?[{op:`update`,resource:e.name,key:n,data:O(),etag:t.etag}]:[],...r];try{await s.batchWrite(i)}catch(e){throw B9(e)?(await D(),await c.invalidateQueries({queryKey:[`list`]}),v(!0)):Os(e)&&S(k(e)),Os(e)?die(e,i):e}await Promise.all([c.invalidateQueries({queryKey:H.record(e.name,n)}),c.invalidateQueries({queryKey:[`list`]}),c.invalidateQueries({queryKey:[`page`]})]),o?.reset()};return{value:T,change:E,save:()=>d.run(async()=>{let e=o?.op()??[];e.length>0?await j(e):await A(),m({}),b({}),S({}),v(!1),g(!1)}),dirty:w,discard:()=>{m({}),b({}),S({}),v(!1),g(!1),o?.reset()},restored:h&&w,dismissRestored:()=>g(!1),linesConflict:_,saving:d.phase===`saving`,phase:d.phase,message:d.message,conflicts:y,errors:x,keepMine:e=>b(t=>V9(t,e)),useTheirs:e=>{b(t=>V9(t,e)),m(t=>V9(t,e))}}},pie=(e,t,n,r,i,a)=>{let o=U(),s=Wf(),c=Object.values(e.fields).filter(t=>t.type===`relation`&&t.relation&&t.name!==e.tenant&&i[t.name]!=null&&n[t.relation.resource]?.primaryKey.length===1),l=gm({queries:c.map(e=>{let t=n[e.relation.resource],a=String(i[e.name]);return{queryKey:H.relatedLabel(t.name,a),queryFn:async()=>(await iw(s,o,t,[a],r[t.name])).get(a)??a}})}),u=c.map(e=>({kind:`record`,resource:e.relation.resource,key:String(i[e.name])}));return{addresses:Object.fromEntries(c.map((e,t)=>[e.name,u[t]])),labels:Object.fromEntries(c.map((e,t)=>[e.name,l[t]?.data])),records:c.map((e,n)=>({kind:t?.fields[e.name]?.label??W(e.name),label:l[n]?.data??String(i[e.name]),href:$o(u[n],a)}))}},H9=jo(),U9=500,W9=(...e)=>e.filter(e=>!!e).map(e=>`(${e})`).join(` AND `),mie=(e,t)=>{let n=U(),{resources:r}=G(),i=e.through,a=i?r[i.resource]:void 0,o=i?.key??a?.primaryKey[0],s=i?W9(go(H9.eq(i.field,t)),i.filter):``,c=vm({queryKey:H.list(a?.name??``,s,``,U9,`related:${o}`),enabled:!!(a&&o),queryFn:async()=>{let e=await n.search(a.name,{filter:s,fields:[o],pageSize:U9});return[...new Set(e.items.flatMap(e=>e[o]===null||e[o]===void 0?[]:[String(e[o])]))]}});return i?c.data?{filter:c.data.length===0?null:W9(go(H9.in(e.field,c.data)),e.filter),isPending:!1,error:null}:{filter:void 0,isPending:c.isPending,error:c.error}:{filter:W9(go(H9.eq(e.field,t)),e.filter),isPending:!1,error:null}},hie=({item:e,model:t,filter:n})=>{let r=U(),{views:i}=G(),[a,o]=(0,l.useState)([``]),s=e.pageSize??10,c=e.sort??``,u=a.at(-1)??``,d=vm({queryKey:H.list(t.name,n,c,s,u),placeholderData:mp,queryFn:()=>r.search(t.name,{filter:n,orderBy:c||void 0,pageSize:s,pageToken:u||void 0})});if(d.isPending)return(0,I.jsx)(G9,{});if(d.error)return(0,I.jsx)(Zg,{title:`Could not load`,error:d.error});let f=d.data.items;if(f.length===0&&a.length===1)return(0,I.jsx)(K9,{text:e.empty});let p=(e.columns??$8(t,i[t.name]).filter(t=>t!==e.field)).filter(e=>e.includes(`.`)||Object.hasOwn(t.fields,e)),m=d.data.nextPageToken;return(0,I.jsx)(Q8,{model:t,columns:p,rows:f,label:e.title,pager:{page:a.length,hasPrevious:a.length>1,hasNext:!!m,busy:d.isFetching,previous:()=>o(e=>e.slice(0,-1)),next:()=>m&&o(e=>[...e,m])}})},G9=()=>(0,I.jsx)(`div`,{className:`flex flex-col gap-2`,children:Array.from({length:3},(e,t)=>(0,I.jsx)(fS,{className:`h-4 w-full`},t))}),K9=({text:e})=>(0,I.jsx)(`p`,{className:`text-[13px] text-muted-foreground`,children:e??`Nothing here yet.`}),gie=({item:e,recordKey:t})=>{let{resources:n}=G(),r=n[e.resource],i=mie(e,t);return r?(0,I.jsx)(g_,{title:e.title,help:e.help,children:i.isPending?(0,I.jsx)(G9,{}):i.error?(0,I.jsx)(Zg,{title:`Could not load`,error:i.error}):i.filter===null||i.filter===void 0?(0,I.jsx)(K9,{text:e.empty}):(0,I.jsx)(hie,{item:e,model:r,filter:i.filter},i.filter)}):null},_ie=(e,t)=>t===e.tenant||e.primaryKey.includes(t),vie=(e,t)=>{if(t&&t.layout.length>0)return t.layout;let n=Object.values(e.fields).filter(t=>!_ie(e,t.name)),r=n.filter(e=>!e.readOnly);return[{kind:`section`,title:`Details`,fields:(r.length>0?r:n).map(e=>e.name)}]},yie=({resource:e,recordKey:t})=>{let{resources:n}=G(),r=n[e],i=Gm(e,t);return r?i.isPending?(0,I.jsx)(Qh,{title:`Loading`,children:`Fetching the record.`}):i.error?(0,I.jsx)(`div`,{className:`p-8`,children:Os(i.error)&&i.error.status===404?(0,I.jsx)(Qh,{title:`Not found`,children:`This record does not exist, or you cannot see it.`}):(0,I.jsx)(Zg,{title:`Could not load the record`,error:i.error})}):(0,I.jsx)(bie,{model:r,recordKey:t,stored:i.data}):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no resource called `,e,`.`]})},bie=({model:e,recordKey:t,stored:n})=>{let r=G(),{basePath:i}=rg(),{go:a,open:o}=Eg(),s=r.views[e.name],c=s?.names?.singular??W(e.name),u=Jm(e,s,n.record,t),{state:d}=B(),f=(0,l.useMemo)(()=>eie(r.resources,e),[r.resources,e]),p=cie(f,sie(f,e,t).items),m=fie({model:e,stored:n,recordKey:t,mode:s?.saveFeedback??`toast`,subject:u,draftKey:d.kind===`signed-in`?rie(d.user.id,e.name,t):void 0,lines:p});lg(m.dirty);let h=Wf(),g=U(),_=tg(e.name),v=vw(e),y=u_(_,`update`)&&n.permissions?.update!==!1,b=u_(_,`delete`)&&n.permissions?.delete!==!1,x=_w({model:e,view:s,restore:v,onDeleted:()=>a({kind:`list`,resource:e.name},{replace:!0}),onReview:()=>void h.invalidateQueries({queryKey:H.record(e.name,t)})}),S=pie(e,s,r.resources,r.views,n.record,i),{fields:C}=$m(),w=vie(e,s),T=w.flatMap(e=>e.kind===`sidebar`?e.fields:[]),E=e.fields.status?.type===`enum`?String(n.record.status):void 0,D=q5(e,`updated`),O=D&&n.record[D]?Math.max(0,Math.round((Date.now()-Date.parse(String(n.record[D])))/1e3)):void 0,k=e=>s?.fields[e],A=e=>f_(n.permissions,e)!==`hidden`,j=r=>{let i=e.fields[r],a=f_(n.permissions,r);if(!i||a===`hidden`)return null;let o=m.conflicts[r];return(0,I.jsx)(h_,{label:k(r)?.label??W(r),help:k(r)?.help,error:m.errors[r],conflict:o===void 0?void 0:{user:{name:`Someone else`,initials:`?`,hue:40},ago:`just now`,theirValue:o||`—`,onKeepMine:()=>m.keepMine(r),onUseTheirs:()=>m.useTheirs(r)},children:(0,I.jsx)(l_,{field:i,hints:k(r),value:m.value(r),stored:n.record[r],relationLabel:S.labels[r],relationTo:S.addresses[r],locked:!y||a===`read`,invalid:!!m.errors[r],reveal:i.sensitive?()=>g.reveal(e.name,t,r):void 0,resource:e.name,onChange:e=>m.change(r,e)})},i.sensitive?`${r}:${n.etag}`:r)},M=w.findIndex(e=>e.kind===`sidebar`),N=(0,I.jsx)(G5,{title:`Summary`,rows:T.flatMap(t=>{let r=e.fields[t];if(!r||!A(t))return[];let i=Hg(r,n.record[t],k(t)),a=r.type===`enum`?(0,I.jsx)(Mn,{tone:OC(String(n.record[t])),children:i}):(0,I.jsx)(`strong`,{children:i}),o=r_(C,r,k(t));return[{label:k(t)?.label??W(t),value:o?(0,I.jsx)(o_,{shown:o,part:`display`,field:r,value:n.record[t],fallback:a}):a}]})}),ee={model:e,record:n.record,key:t,etag:n.etag,permissions:n.permissions},te=(0,I.jsxs)(I.Fragment,{children:[m.dirty&&(0,I.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Unsaved changes`}),m.dirty&&y&&(0,I.jsx)(V,{className:`max-md:min-h-11`,disabled:m.saving,onClick:m.discard,children:`Discard`}),b&&(0,I.jsx)(V,{variant:`danger`,className:`max-md:min-h-11`,onClick:()=>void x.start({key:t,title:u,etag:n.etag,snapshot:n.record}),children:`Delete`}),y&&(0,I.jsxs)(V,{variant:`primary`,className:`max-md:min-h-11 max-md:flex-1`,loading:m.saving,disabled:!m.dirty&&m.phase!==`saved`,onClick:()=>void m.save(),children:[m.phase===`saved`&&(0,I.jsx)(ae,{className:`size-4`}),m.phase===`saved`?`Saved`:`Save`]})]});return(0,I.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[x.dialogs,(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,I.jsxs)(`div`,{className:`mx-auto max-w-[1100px] px-4 pb-8 pt-6 md:px-10 md:py-8`,children:[(0,I.jsx)(K5,{collection:s?.names?.plural??W(e.name),title:u,status:{label:E?Ho(E,k(`status`)?.valueLabels):c,tone:E?OC(E):`neutral`},lastEditedBy:{ago:O===void 0?`recently`:Sd(O)},actions:(0,I.jsx)(`div`,{className:`hidden items-center gap-4 md:flex`,children:te})}),m.message&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(Zg,{title:`Not saved`,error:Error(m.message)})}),m.linesConflict&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(Zg,{title:`The lines were changed by someone else`,error:Error(`The lines were reloaded. Your new order is kept: Save again to apply it, or Discard to drop it.`)})}),m.restored&&(0,I.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-3 rounded-lg border bg-surface px-3 py-2 text-[13px]`,role:`status`,children:[(0,I.jsx)(`span`,{children:`Your unsaved changes were restored.`}),(0,I.jsxs)(`span`,{className:`flex gap-2`,children:[(0,I.jsx)(V,{size:`sm`,onClick:m.dismissRestored,children:`Keep`}),(0,I.jsx)(V,{size:`sm`,onClick:m.discard,children:`Discard`})]})]}),(0,I.jsxs)(`div`,{className:`grid grid-cols-1 gap-8 md:grid-cols-[minmax(0,1fr)_300px] md:gap-12`,children:[(0,I.jsxs)(`main`,{className:`divide-y divide-border`,children:[w.flatMap((n,r)=>{if(n.kind===`related`)return[(0,I.jsx)(gie,{item:n,recordKey:t},`related:${n.title}`)];if(n.kind===`custom`)return n.sidebar?[]:[(0,I.jsx)(J5,{item:n,scope:ee},`custom:${r}`)];if(n.kind!==`section`)return[];let i=n.fields.filter(t=>e.fields[t]&&A(t));return i.length===0?[]:[(0,I.jsx)(g_,{title:n.title,help:n.help,children:(0,I.jsx)(`div`,{className:`grid grid-cols-1 gap-x-6 gap-y-5 sm:grid-cols-2`,children:i.map(j)})},n.title)]}),f&&(0,I.jsx)(nie,{lines:f,draft:p,vatRate:Number(n.record.vatRate??21)/100,saving:m.saving})]}),(0,I.jsxs)(`aside`,{className:`space-y-4 md:pt-8`,children:[(0,I.jsx)(ine,{model:e,stored:n,recordKey:t}),M===-1&&N,w.map((e,t)=>e.kind===`custom`&&e.sidebar?(0,I.jsx)(J5,{item:e,scope:ee},`custom:${t}`):t===M?(0,I.jsx)(l.Fragment,{children:N},`summary`):null),(0,I.jsx)(G5,{title:`Details`,rows:[q5(e,`created`),D].flatMap(t=>{let r=t?e.fields[t]:void 0;return t&&r&&A(t)?[{label:k(t)?.label??W(t),value:Hg(r,n.record[t],k(t))}]:[]})}),S.records.length>0&&(0,I.jsx)(W5,{title:`Related records`,children:(0,I.jsx)(U5,{records:S.records,onNavigate:o})})]})]})]})}),(m.dirty||b||y)&&(0,I.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-t bg-background p-3 md:hidden`,children:te})]})},xie=e=>Os(e)?e.status===401||e.status===403?`It did not accept your sign-in: ${e.message}`:e.message:`It did not answer.`,Sie=({status:e})=>{let t=Wf();return e.state===`error`?(0,I.jsx)(`div`,{className:`flex h-full min-h-48 items-center justify-center p-8`,children:(0,I.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,I.jsxs)(`h1`,{className:`text-[15px] font-semibold`,children:[`Cannot reach `,e.source.label]}),(0,I.jsxs)(`p`,{className:`mt-1 text-[13px] text-muted-foreground`,children:[xie(e.error),` The rest of the app works as before.`]}),(0,I.jsx)(V,{className:`mt-3`,onClick:()=>void t.refetchQueries({queryKey:H.sourceMetas(e.source.url)}),children:`Try again`})]})}):(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)($n,{}),` Loading from `,e.source.label]})},Cie=(e,t)=>{let[n,r]=(0,l.useState)(e);return(0,l.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n},wie=jo(),Tie=e=>Object.values(e.resources).flatMap(t=>{let n=e.views[t.name];return!t.search?.length||!n||n.nav?.hidden||e.permissions[t.name]?.read===!1?[]:[{model:t,view:n,label:n.names?.plural??W(t.name)}]}),Eie=e=>{let t=e.map(e=>e.label.toLowerCase());return t.length===0?`Search`:t.length===1?`Search ${t[0]}`:t.length===2?`Search ${t[0]} and ${t[1]}`:`Search ${t[0]}, ${t[1]} and more`},Die=e=>go(wie.search(e.trim())),q9=e=>{let t=e.view?.searchResult?.title;return t?.length?t:[qm(e.model,e.view)]},J9=e=>{let t=q9(e);return e.view?.searchResult?.subtitle??e.model.search?.find(e=>!t.includes(e))},Oie=e=>{let t=J9(e),n=[...q9(e),...t?[t]:[],...e.model.search??[]];return[...new Set([...e.model.primaryKey,...n.filter(t=>Object.hasOwn(e.model.fields,t))])]},Y9=(e,t,n)=>{let r=t[n];return r==null?``:e.model.fields[n]?.type===`enum`?Ho(String(r),e.view?.fields[n]?.valueLabels):String(r)},kie=(e,t,n,r=``)=>{let i=Yo(Ym(e.model,t)),a=q9(e),o=J9(e),s=Jo(e.model,t,n,[...a,...o?[o]:[]])??o,c=s?Y9(e,t,s):``;return{id:i,title:a.map(n=>Y9(e,t,n)).filter(Boolean).join(` `)||i,...c&&{subtitle:c},href:$o({kind:`record`,resource:e.model.name,key:i},r)}},Aie=()=>{let e=G(),t=U(),{basePath:n}=rg(),r=(0,l.useMemo)(()=>Tie(e),[e]),[i,a]=(0,l.useState)(``),o=i.trim(),s=Cie(o,200),c=o.length>=2,u=c&&s.length>=2,d=gm({queries:r.map(e=>({queryKey:[`global-search`,e.model.name,s],enabled:u,staleTime:1/0,gcTime:0,queryFn:()=>t.list(e.model.name,{filter:Die(s),pageSize:5,fields:Oie(e)})}))}),f=r.flatMap((e,t)=>{let r=d[t];if(!u||!r)return[];if(r.error)return[{id:e.model.name,label:e.label,hits:[],failed:!0}];let i=(r.data?.items??[]).map(t=>kie(e,t,s,n));return i.length>0?[{id:e.model.name,label:e.label,hits:i}]:[]});return{available:r.length>0,placeholder:Eie(r),text:i,setText:a,query:u?s:``,loading:c&&(o!==s||d.some(e=>e.isFetching)),groups:f}},jie=e=>!!(e?.updateAvailable&&e.indicator),X9={immediate:`Updates as soon as a release is out`,weekly:`Updates at a set time every week`,scheduled:`Updates at the time set for this release`,manual:`Updates only when asked to`},Mie=e=>e.updating?`Updating now`:e.nextUpdateAt?`${X9[e.policy]}: next on ${yd(Date.parse(e.nextUpdateAt))} UTC`:X9[e.policy],Nie=e=>Os(e)&&e.status===409?`Already on the latest version, or an update is running.`:Os(e)&&e.status===403?`Only an admin can update the runtime.`:`The update could not be started. Try again later.`,Pie=18e5,Fie=3e4,Iie=e=>{let t=Mh(),n=(0,l.useRef)(t);n.current=t;let r=t!==void 0;return(0,l.useMemo)(()=>r?ed({url:e,token:()=>n.current}):void 0,[e,r])},Lie=e=>{let[t,n]=(0,l.useState)(),[r,i]=(0,l.useState)(!1),[a,o]=(0,l.useState)(),[s,c]=(0,l.useState)(),u=t?.updating??!1;return(0,l.useEffect)(()=>{if(!e)return;let t=!0,r=()=>e.status().then(e=>{t&&(n(e),c(void 0))},e=>t&&c(e));r();let i=setInterval(()=>void r(),u?Fie:Pie);return()=>{t=!1,clearInterval(i)}},[e,u]),{status:t,update:(0,l.useCallback)(async()=>{e&&(i(!0),o(void 0),await e.update().then(n,o),i(!1))},[e]),requesting:r,error:a,checkError:s}},Z9=({label:e,value:t})=>(0,I.jsxs)(`div`,{className:`flex justify-between gap-4 py-1 text-[13px]`,children:[(0,I.jsx)(`span`,{className:`text-muted-foreground`,children:e}),(0,I.jsx)(`span`,{className:`font-medium tabular-nums`,children:t})]}),Q9=({client:e})=>{let{status:t,update:n,requesting:r,error:i,checkError:a}=Lie(e),[o,s]=(0,l.useState)(!1);return!t||!o&&!jie(t)?null:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(V,{size:`sm`,variant:`ghost`,"aria-label":`Update available`,title:`Update available`,onClick:()=>s(!0),className:`max-md:size-9 max-md:p-0`,children:[(0,I.jsx)(me,{className:`size-3.5 text-primary`}),(0,I.jsx)(`span`,{className:`max-md:sr-only`,children:`Update`})]}),o&&(0,I.jsxs)(Td,{title:`Runtime update`,description:Mie(t),onClose:()=>s(!1),actions:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(V,{onClick:()=>s(!1),children:`Close`}),(0,I.jsx)(V,{variant:`primary`,loading:r,disabled:t.updating||!t.updateAvailable,onClick:()=>void n(),children:t.updating?`Updating…`:`Update now`})]}),children:[(0,I.jsx)(Z9,{label:`Current version`,value:t.version}),(0,I.jsx)(Z9,{label:`Latest version`,value:t.latest}),i!==void 0&&(0,I.jsx)(`p`,{role:`alert`,className:`mt-3 text-[13px] text-danger-text`,children:Nie(i)}),a!==void 0&&(0,I.jsx)(`p`,{className:`mt-3 text-[13px] text-muted-foreground`,children:`The status could not be checked again; this is the last one read.`})]})]})},Rie=({url:e})=>(0,I.jsx)(Q9,{client:Iie(e)}),zie=({url:e,client:t})=>t?(0,I.jsx)(Q9,{client:t}):(0,I.jsx)(Rie,{url:e}),Bie=({signIn:e,onStop:t})=>{let[n,r]=(0,l.useState)(!1),[i,a]=(0,l.useState)(),o=async()=>{r(!0),a(void 0);try{await t()}catch(e){if(!(e instanceof qs))throw e;a(cd(e)),r(!1)}};return(0,I.jsxs)(`div`,{role:`region`,"aria-label":`Staff session`,className:`flex flex-wrap items-center gap-x-3 gap-y-2 border-b border-warning/40 bg-warning-soft px-4 py-2 text-[13px] text-warning-text`,children:[(0,I.jsx)(en,{"aria-hidden":!0,className:`size-4 shrink-0`}),(0,I.jsxs)(`p`,{className:`min-w-64 flex-1 break-words`,children:[(0,I.jsx)(`span`,{className:`font-semibold`,children:e.staffName??e.staff}),` is signed in as `,(0,I.jsx)(`span`,{className:`font-semibold`,children:e.user}),` until`,` `,yd(Date.parse(e.expiresAt)),`. Reason: `,e.reason]}),i&&(0,I.jsx)(`p`,{role:`alert`,className:`text-xs font-medium text-danger-text`,children:i}),(0,I.jsx)(V,{size:`sm`,loading:n,onClick:()=>void o(),children:`Stop staff session`})]})},Vie=(e,t,n)=>({filter:n.filter??``,orderBy:n.orderBy??bg(e,t),pageSize:n.limit??3,fields:[...new Set([...e.primaryKey,qm(e,t),n.status])]}),Hie=(e,t,n,r,i,a)=>r.map(r=>{let o=Yo(Ym(e,r)),s=String(r[n.status]??``);return{id:o,label:Jm(e,t,r,o),href:$o({kind:`record`,resource:e.name,key:o},i),status:e.fields[n.status]?.type===`enum`&&s?Ho(s,t.fields[n.status]?.valueLabels):s,tone:n.tones[s]??`neutral`,pulse:n.pulse?.includes(s)??!1,active:o===a}}),Uie=(e,t,n,r,i)=>{let a=n.find(t=>Yo(Ym(e,t))===r);return a!==void 0&&t.some(e=>!Object.is(a[e],i[e]))},$9=({model:e,request:t})=>H.navRecent(e.name,t.filter,t.orderBy,t.pageSize),Wie=e=>{let t=Wf();(0,l.useEffect)(()=>t.getQueryCache().subscribe(n=>{if(n.type!==`updated`||n.action.type!==`success`)return;let[r,i,a]=n.query.queryKey,o=n.action.data?.record;if(r===`record`&&typeof a==`string`&&o)for(let n of e){if(n.model.name!==i)continue;let e=t.getQueryData($9(n));e&&Uie(n.model,n.request.fields,e.items,a,o)&&t.invalidateQueries({queryKey:$9(n),exact:!0})}}),[t,e])},Gie=(e,t,n)=>{let r=U(),i=(0,l.useMemo)(()=>{let t=q6(e);return Object.values(e.views).flatMap(n=>{let r=e.resources[n.resource],i=n.nav?.recent;return r&&i&&!n.nav?.hidden&&!t.has(r.name)?[{model:r,view:n,recent:i,request:Vie(r,n,i)}]:[]})},[e]);Wie(i);let a=gm({queries:i.map(e=>({queryKey:$9(e),queryFn:()=>r.list(e.model.name,e.request),refetchOnWindowFocus:!0}))});return Object.fromEntries(i.map(({model:e,view:r,recent:i},o)=>{let s=a[o];if(s.isPending)return[e.name,{state:`loading`}];if(s.isError)return[e.name,{state:`error`}];let c=n.resource===e.name?n.key:void 0;return[e.name,{state:`ready`,records:Hie(e,r,i,s.data.items,t,c)}]}))},Kie=e=>e?.kind===`page`?e.page:e?.resource,qie=e=>e?.kind===`record`?e:void 0,Jie=({workspace:e,sidebarMode:t,assistant:n,runtime:r})=>{let i=G(),{state:a,session:o,signOut:s,stopStaffSession:c,organizations:u}=B();if(a.kind!==`signed-in`)throw Error(`The shell is only rendered for a signed-in user`);let{user:d,staff:f}=a,{path:p,params:m,basePath:h}=rg(),{address:g,go:_,open:v}=Eg(),y=Kie(g),b=qie(g),x=Aie(),S=X6(i,h,Gie(i,h,{resource:y,key:b?.key})),C=Object.keys(i.pages)[0],w=Object.keys(i.resources)[0],T=g?.kind===`page`?i.pages[g.page]:void 0;(0,l.useEffect)(()=>{p===`/`&&(C?_({kind:`page`,page:C},{replace:!0}):w&&_({kind:`list`,resource:w},{replace:!0}))},[p,C,w,_]);let E=g?.kind===`page`?void 0:g?.resource,D=E?Gh(i,E):void 0,O=E?i.views[E]:void 0,k=S.find(e=>e.items.some(e=>e.id===y)),A=E?i.resources[E]:void 0,j=Gm(b?.resource??``,b?.key??``,!!(A&&b)),M=A&&b&&j.data?Jm(A,O,j.data.record,b.key):b?.key,{shell:N}=$m(),ee=N?.actions,te=N?.rightPanel,[ne,re]=(0,l.useState)(!1),ie=i.assistant?.url,ae=ie&&(0,I.jsx)(Ph,{open:ne,onToggle:()=>re(!ne)}),oe=ie&&ne&&(0,I.jsx)(Lh,{url:ie,client:n,page:m.size>0?`${p}?${m}`:p,onClose:()=>re(!1)}),se=i.runtime?.url,ce=se&&(0,I.jsx)(zie,{url:se,client:r}),le=K6((0,l.useCallback)(()=>M6(h),[h])),ue=W6(d,le.current),P=Wm(ue),de=z5(),fe=j6(!!u),pe=fe.current,me=!!u&&pe!==void 0&&!pe.organization,he=u?Aee[p]:void 0,ge=p===`/-/account`?`Sign-in & security`:p===`/-/sign-in-policy`?`Sign-in policy`:he,_e=ge?[ge]:Uh({basePath:h,address:g,group:k?.label,page:T,resourceLabel:O?.names?.plural??(E&&W(E)),recordTitle:M}),ve=p===`/-/account`?(0,I.jsx)(Af,{email:d.email}):p===`/-/sign-in-policy`?P?(0,I.jsx)(Hf,{}):(0,I.jsx)(Qh,{title:`Admins only`,children:`Only an admin can change how people sign in.`}):he&&p===`/-/organization`?(0,I.jsx)(L6,{current:pe,basePath:h,onChanged:fe.reload}):he&&(p===`/-/organization/members`||p===`/-/organization/invitations`)?Nm(pe)?p===`/-/organization/members`?(0,I.jsx)(E6,{current:pe}):(0,I.jsx)(A6,{current:pe}):(0,I.jsx)(Qh,{title:`Owners and admins only`,children:`Only the organization's owners and admins manage its members.`}):he&&p===`/-/organizations`||me?(0,I.jsx)(U6,{state:fe,basePath:h}):g?g.kind===`page`?T?(0,I.jsx)(s5,{name:T.name},T.name):(0,I.jsxs)(Qh,{title:`Not found`,children:[`There is no page called `,g.page,`.`]}):D&&D.state!==`ready`?(0,I.jsx)(Sie,{status:D}):g.kind===`create`?(0,I.jsx)(D_,{resource:g.resource},`${g.resource}/new`):g.kind===`record`?(0,I.jsx)(yie,{resource:g.resource,recordKey:g.key},`${g.resource}/${g.key}`):(0,I.jsx)(x6,{address:g},g.resource):p===`/`?(0,I.jsx)(Qh,{title:`Choose a resource`,children:`Pick one from the sidebar.`}):(0,I.jsx)(Qh,{title:`Not found`,children:`There is nothing at this address.`}),ye=(0,I.jsx)(or,{sidebarMode:t??`text-small`,activeItem:y??``,breadcrumb:_e,user:gte(ue),onSignOut:()=>void s(),workspace:pe?.organization?.name??e,navGroups:S,bottomBar:Hh(i,h,y),userMenu:[...J6(i,h,y),...u?jee(h,p,pe):[],...mn(h,p,P)],organizations:u&&{...pe?.organization&&{current:{id:pe.organization.id,name:pe.organization.name}},others:fe.organizations.filter(e=>e.id!==pe?.organization?.id),onSwitch:e=>void o.organizations.switchTo(e).then(()=>M6(h))},roles:le.current?.active?{active:le.current.active,roles:le.current.roles,onSwitch:le.switchTo}:void 0,onNavigate:v,search:x.available?{placeholder:x.placeholder,text:x.text,onTextChange:x.setText,query:x.query,loading:x.loading,groups:x.groups,onSelect:v}:void 0,actions:(ee||ce||ae)&&(0,I.jsxs)(I.Fragment,{children:[ee&&(0,I.jsx)(kg,{name:`shell.actions`,fallback:null,children:(0,I.jsx)(ee,{})}),ce,ae]}),rightPanel:(te||oe)&&(0,I.jsxs)(I.Fragment,{children:[te&&(0,I.jsx)(kg,{name:`shell.rightPanel`,fallback:null,children:(0,I.jsx)(te,{})}),oe]}),children:ve}),be=P&&de.length>0;return!f&&!be?ye:(0,I.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[f&&(0,I.jsx)(Bie,{signIn:f,onStop:c}),be&&(0,I.jsx)(V5,{off:de}),(0,I.jsx)(`div`,{className:`min-h-0 flex-1`,children:ye})]})},Yie=({baseUrl:e,client:t,sources:n,basePath:r,initialUrl:i,workspace:a,sidebarMode:o,ui:s,assistant:c,runtime:l,pluginLoader:u})=>{let{session:d,markSignedOut:f}=B();return(0,I.jsx)(Em,{baseUrl:e,client:t,sources:n,token:d.token,onUnauthenticated:f,children:(0,I.jsx)(sg,{basePath:r,initialUrl:i,children:(0,I.jsx)(eg,{children:(0,I.jsx)(wte,{children:(0,I.jsx)(B5,{ui:s,...u&&{loader:u},children:(0,I.jsx)(Jie,{workspace:a,sidebarMode:o,assistant:c,runtime:l})})})})})})},Xie=({auth:e,workspace:t,...n})=>(0,I.jsx)(nd,{session:e,children:(0,I.jsx)(pte,{workspace:t,children:(0,I.jsx)(Yie,{workspace:t,...n})})});export{oh as A,wm as B,xh as C,uh as D,dh as E,Ete as F,Tte as I,Gm as L,nh as M,th as N,lh as O,eh as P,Em as R,Th as S,mh as T,c as V,Jh as _,C5 as a,kh as b,h5 as c,Ew as d,ew as f,Eg as g,Dg as h,R9 as i,ih as j,sh as k,e8 as l,tw as m,B9 as n,w5 as o,nw as p,z9 as r,v5 as s,Xie as t,Tw as u,Nh as v,_h as w,Dh as x,Mh as y,U as z};
|