@svgrid/enterprise 2.0.4 → 2.2.1
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/README.md +18 -6
- package/dist/cdn/svgrid-enterprise.svelte-external.js +14035 -6842
- package/dist/node/studio.js +7888 -2459
- package/package.json +9 -4
- package/src/SvGridMasterDetail.svelte +24 -3
- package/src/SvGridScheduler.svelte +4410 -0
- package/src/SvPivotDesigner.svelte +1990 -1045
- package/src/SvSchemaChart.svelte +10 -9
- package/src/ai.test.ts +522 -522
- package/src/ai.ts +202 -2
- package/src/export.ts +7 -1
- package/src/index.ts +409 -384
- package/src/install.ts +10 -0
- package/src/pivot-chart.test.ts +86 -0
- package/src/pivot-chart.ts +112 -0
- package/src/scheduler.ts +37 -0
- package/src/scheduling.test.ts +194 -0
- package/src/scheduling.ts +293 -0
- package/src/sources/filters.ts +6 -0
- package/src/studio/HANDLERS-DESIGN.md +142 -0
- package/src/studio/cli.ts +7 -2
- package/src/studio/emit-project.test.ts +1447 -13
- package/src/studio/emit-project.ts +3995 -1273
- package/src/studio/emit-schema.ts +146 -29
- package/src/studio/index.ts +320 -195
- package/src/studio/project.test.ts +370 -0
- package/src/studio/project.ts +1146 -26
- package/src/studio/sample-data.ts +4 -1
- package/src/studio/samples/ats.ts +2 -2
- package/src/studio/samples/clinic.ts +4 -2
- package/src/studio/samples/crm.ts +16 -8
- package/src/studio/samples/events.ts +4 -2
- package/src/studio/samples/fleet.ts +4 -2
- package/src/studio/samples/gym.ts +4 -2
- package/src/studio/samples/hr.ts +3 -1
- package/src/studio/samples/live-data.ts +308 -308
- package/src/studio/samples/projects.ts +2 -2
- package/src/studio/samples/restaurant.ts +4 -2
- package/src/studio/samples/samples.test.ts +13 -5
- package/src/studio/samples/shared.ts +346 -305
- package/src/studio/samples/support.ts +3 -1
- package/src/studio/scaffold.test.ts +15 -1
- package/src/studio/scaffold.ts +16 -0
- package/src/studio/themes.ts +7 -0
- package/src/studio/ui-components.ts +472 -0
- package/src/sveltekit/transport.test.ts +26 -0
- package/src/sveltekit/transport.ts +50 -5
- package/dist/designer/assets/index-Dp44bTid.js +0 -939
- package/dist/designer/assets/index-RJp6x8tw.css +0 -1
- package/dist/designer/assets/jszip.min-CjMo-QGg.js +0 -2
- package/dist/designer/index.html +0 -13
|
@@ -1,939 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=Array.isArray,d=Array.prototype.indexOf,f=Array.prototype.includes,p=Array.from,m=Object.defineProperty,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,_=Object.prototype,v=Array.prototype,y=Object.getPrototypeOf,b=Object.isExtensible;function x(e){return typeof e==`function`}var S=()=>{};function C(e){for(var t=0;t<e.length;t++)e[t]()}function w(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function T(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var E=1<<24,D=1024,O=2048,ee=4096,te=8192,ne=16384,re=32768,ie=1<<25,ae=65536,oe=1<<19,se=1<<20,ce=1<<25,le=65536,ue=1<<21,k=1<<22,A=1<<23,j=Symbol(`$state`),de=Symbol(`legacy props`),M=Symbol(``),fe=Symbol(`attributes`),pe=Symbol(`class`),me=Symbol(`style`),he=Symbol(`text`),ge=Symbol(`form reset`),_e=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ve=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ye(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function be(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function xe(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Se(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Ce(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function we(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Te(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Ee(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function De(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Oe(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ke(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ae={},je=Symbol(`uninitialized`),Me=`http://www.w3.org/1999/xhtml`;function Ne(){console.warn(`https://svelte.dev/e/derived_inert`)}function Pe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Fe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ie(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Le=!1;function Re(e){Le=e}var ze;function Be(e){if(e===null)throw Pe(),Ae;return ze=e}function Ve(){return Be(xn(ze))}function N(e){if(Le){if(xn(ze)!==null)throw Pe(),Ae;ze=e}}function P(e=1){if(Le){for(var t=e,n=ze;t--;)n=xn(n);ze=n}}function He(e=!0){for(var t=0,n=ze;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=xn(n);e&&n.remove(),n=i}}function Ue(e){if(!e||e.nodeType!==8)throw Pe(),Ae;return e.data}function We(e){return e===this.v}function Ge(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ke(e){return!Ge(e,this.v)}var qe=!1,Je=!1,Ye=null;function Xe(e){Ye=e}function Ze(e,t=!1,n){Ye={p:Ye,i:!1,c:null,e:null,s:e,x:null,r:dr,l:Je&&!t?{s:null,u:null,$:[]}:null}}function Qe(e){var t=Ye,n=t.e;if(n!==null){t.e=null;for(var r of n)Rn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ye=t.p,e??{}}function $e(){return!Je||Ye!==null&&Ye.l===null}var et=[];function tt(){var e=et;et=[],C(e)}function nt(e){if(et.length===0&&!bt){var t=et;queueMicrotask(()=>{t===et&&tt()})}et.push(e)}function rt(){for(;et.length>0;)tt()}function it(e){var t=dr;if(t===null)return cr.f|=A,e;if(!(t.f&32768)&&!(t.f&4))throw e;at(e,t)}function at(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}var ot=~(O|ee|D);function st(e,t){e.f=e.f&ot|t}function ct(e){e.f&512||e.deps===null?st(e,D):st(e,ee)}function lt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=le,lt(t.deps))}function ut(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),lt(e.deps),st(e,D)}var dt=!1,ft=!1;function pt(e){var t=ft;try{return ft=!1,[e(),ft]}finally{ft=t}}var mt=null,ht=null,gt=null,_t=null,vt=null,yt=null,bt=!1,xt=!1,St=null,Ct=null,wt=0,Tt=1,Et=class e{id=Tt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;unblocked=new Set;#r=new Set;#i=new Set;#a=new Set;#o=0;#s=new Map;#c=null;#l=[];#u=[];#d=new Set;#f=new Set;#p=new Map;#m=new Set;is_fork=!1;#h=!1;#g(){if(this.is_fork)return!0;for(let n of this.#s.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#p.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#p.has(e)||this.#p.set(e,{d:[],m:[]}),this.#m.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#p.get(e);if(n){this.#p.delete(e);for(var r of n.d)st(r,O),t(r);for(r of n.m)st(r,ee),t(r)}this.#m.add(e)}#_(){if(this.#e=!0,wt++>1e3&&(this.#w(),Ot()),!this.#g()){for(let e of this.#d)this.#f.delete(e),st(e,O),this.schedule(e);for(let e of this.#f)st(e,ee),this.schedule(e)}let t=this.#l;this.#l=[],this.apply();var n=St=[],r=[],i=Ct=[];for(let e of t)try{this.#v(e,n,r)}catch(t){throw Ft(e),t}if(gt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(St=null,Ct=null,this.#g()){this.#x(r),this.#x(n);for(let[e,t]of this.#p)Pt(e,t);i.length>0&>.#_();return}let o=this.#y();if(o){o.#b(this);return}this.#d.clear(),this.#f.clear();for(let e of this.#r)e(this);this.#r.clear(),_t=this,At(r),At(n),_t=null,this.#c?.resolve();var s=gt;if(this.linked&&this.#o===0&&this.#w(),qe&&!this.linked&&(this.#S(),gt=s),this.#l.length>0){s===null&&(s=this,this.#C());let e=s;e.#l.push(...this.#l.filter(t=>!e.#l.includes(t)))}s!==null&&s.#_()}#v(e,t,n){e.f^=D;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#p.has(r))&&r.fn!==null){a?r.f^=D:i&4?t.push(r):qe&&i&16777224?n.push(r):wr(r)&&(i&16&&this.#f.add(r),kr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#y(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#b(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve)}let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#f.delete(i),st(i,O),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#w(),gt=this,this.#_()}#x(e){for(var t=0;t<e.length;t+=1)ut(e[t],this.#d,this.#f)}capture(e,t,n=!1){e.v!==je&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),vt?.set(e,t)),this.is_fork||(e.v=t)}activate(){gt=this}deactivate(){gt=null,vt=null}flush(){try{xt=!0,gt=this,this.#_()}finally{wt=0,yt=null,St=null,Ct=null,xt=!1,gt=null,vt=null,en.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear(),this.#a.clear(),this.#w()}register_created_effect(e){this.#u.push(e)}#S(){this.#w();for(let l=mt;l!==null;l=l.#n){var e=l.id<this.id,t=[];for(let[r,[i,a]]of this.current){if(l.current.has(r)){var n=l.current.get(r)[0];if(e&&i!==n)l.current.set(r,[i,a]);else continue}t.push(r)}if(e)for(let[e,t]of this.async_deriveds){let n=l.async_deriveds.get(e);n&&t.promise.then(n.resolve)}if(l.#e){var r=[...l.current.keys()].filter(e=>!this.current.has(e));if(r.length===0)e&&l.discard();else if(t.length>0){if(e)for(let e of this.#m)l.unskip_effect(e,e=>{e.f&4194320?l.schedule(e):l.#x([e])});l.activate();var i=new Set,a=new Map;for(var o of t)jt(o,r,i,a);a=new Map;var s=[...l.current.keys()].filter(e=>this.current.has(e)?this.current.get(e)[0]!==e.v:!0);if(s.length>0)for(let e of this.#u)!(e.f&155648)&&Mt(e,s,a)&&(e.f&4194320?(st(e,O),l.schedule(e)):l.#d.add(e));if(l.#l.length>0&&!l.#h){l.apply();for(var c of l.#l)l.#v(c,[],[]);l.#l=[]}l.deactivate()}}}}increment(e,t){if(this.#o+=1,e){let e=this.#s.get(t)??0;this.#s.set(t,e+1)}}decrement(e,t){if(--this.#o,e){let e=this.#s.get(t)??0;e===1?this.#s.delete(t):this.#s.set(t,e-1)}this.#h||(this.#h=!0,nt(()=>{this.#h=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#d.add(t);for(let e of t)this.#f.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}on_fork_commit(e){this.#a.add(e)}run_fork_commit_callbacks(){for(let e of this.#a)e(this);this.#a.clear()}settled(){return(this.#c??=w()).promise}static ensure(){if(gt===null){let t=gt=new e;t.#C(),!xt&&!bt&&nt(()=>{t.#e||t.flush()})}return gt}apply(){if(!qe||!this.is_fork&&this.#t===null&&this.#n===null){vt=null;return}vt=new Map;for(let[e,[t]]of this.current)vt.set(e,t);for(let t=mt;t!==null;t=t.#n)if(!(t===this||t.is_fork)){var e=!1;if(t.id<this.id){for(let[n,[,r]]of t.current)if(!r&&this.current.has(n)){e=!0;break}}if(!e)for(let[e,n]of t.previous)vt.has(e)||vt.set(e,n)}}schedule(e){if(yt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(St!==null&&t===dr&&(qe||(cr===null||!(cr.f&2))&&!dt))return;if(n&96){if(!(n&1024))return;t.f^=D}}this.#l.push(t)}#C(){ht===null?mt=ht=this:(ht.#n=this,this.#t=ht),ht=this}#w(){var e=this.#t,t=this.#n;e===null?mt=t:e.#n=t,t===null?ht=e:t.#t=e,this.linked=!1}};function Dt(e){var t=bt;bt=!0;try{var n;for(e&&(gt!==null&&!gt.is_fork&>.flush(),n=e());;){if(rt(),gt===null)return n;gt.flush()}}finally{bt=t}}function Ot(){try{we()}catch(e){at(e,yt)}}var kt=null;function At(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&wr(r)&&(kt=new Set,kr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Qn(r),kt?.size>0)){en.clear();for(let e of kt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)kt.has(n)&&(kt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||kr(n)}}kt.clear()}}kt=null}}function jt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?jt(i,t,n,r):e&4194320&&!(e&2048)&&Mt(i,t,r)&&(st(i,O),Nt(i))}}function Mt(e,t,n){let r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(let r of e.deps){if(f.call(t,r))return!0;if(r.f&2&&Mt(r,t,n))return n.set(r,!0),!0}return n.set(e,!1),!1}function Nt(e){gt.schedule(e)}function Pt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),st(e,D);for(var n=e.first;n!==null;)Pt(n,t),n=n.next}}function Ft(e){st(e,D);for(var t=e.first;t!==null;)Ft(t),t=t.next}function It(e){let t=0,n=nn(0),r;return()=>{Fn()&&(H(n),Un(()=>(t===0&&(r=Nr(()=>e(()=>cn(n)))),t+=1,()=>{nt(()=>{--t,t===0&&(r?.(),r=void 0,cn(n))})})))}}var Lt=ae|oe;function Rt(e,t,n,r){new zt(e,t,n,r)}var zt=class{parent;is_pending=!1;transform_error;#e;#t=Le?ze:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=It(()=>(this.#m=nn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=dr;t.b=this,t.f|=128,n(e)},this.parent=dr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Wn(()=>{if(Le){let e=this.#t;Ve();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},Lt),Le&&(this.#e=ze)}#g(){try{this.#a=Kn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Kn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Kn(()=>e(this.#e)),nt(()=>{var e=this.#c=document.createDocumentFragment(),t=yn();e.append(t),this.#a=this.#x(()=>Kn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,$n(this.#o,()=>{this.#o=null}),this.#b(gt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Kn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();rr(this.#a,e);let t=this.#n.pending;this.#o=Kn(()=>t(this.#e))}else this.#b(gt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){ut(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=dr,n=cr,r=Ye;fr(this.#i),ur(this.#i),Xe(this.#i.ctx);try{return Et.ensure(),e()}catch(e){return it(e),null}finally{fr(t),ur(n),Xe(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&$n(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,nt(()=>{this.#d=!1,this.#m&&an(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),H(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;gt?.is_fork?(this.#a&>.skip_effect(this.#a),this.#o&>.skip_effect(this.#o),this.#s&>.skip_effect(this.#s),gt.on_fork_commit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Xn(this.#a),null),this.#o&&=(Xn(this.#o),null),this.#s&&=(Xn(this.#s),null),Le&&(Be(this.#t),P(),Be(He()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ie();return}r=!0,i&&ke(),this.#s!==null&&$n(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){at(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Kn(()=>{var t=dr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return at(e,this.#i.parent),null}}))};nt(()=>{var t;try{t=this.transform_error(e)}catch(e){at(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>at(e,this.#i&&this.#i.parent)):o(t)})}};function Bt(e,t,n,r){let i=$e()?Wt:qt;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=dr,s=Vt(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){if(!(o.f&16384)){s();try{r(e)}catch(e){at(e,o)}Ht()}}var u=Ut();if(n.length===0){c.then(()=>l(t.map(i))).finally(u);return}function d(){Promise.all(n.map(e=>Kt(e))).then(e=>l([...t.map(i),...e])).catch(e=>at(e,o)).finally(u)}c?c.then(()=>{s(),d(),Ht()}):d()}function Vt(){var e=dr,t=cr,n=Ye,r=gt;return function(i=!0){fr(e),ur(t),Xe(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function Ht(e=!0){fr(null),ur(null),Xe(null),e&>?.deactivate()}function Ut(){var e=dr,t=e.b,n=gt,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}function Wt(e){var t=2|O;return dr!==null&&(dr.f|=oe),{ctx:Ye,deps:null,effects:null,equals:We,f:t,fn:e,reactions:null,rv:0,v:je,wv:0,parent:dr,ac:null}}var Gt=Symbol(`obsolete`);function Kt(e,t,n){let r=dr;r===null&&ye();var i=void 0,a=nn(je),o=!cr,s=new Set;return Hn(()=>{var t=dr,n=w();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==_e&&n.reject(e)}).finally(Ht)}catch(e){n.reject(e),Ht()}var c=gt;if(o){if(t.f&32768)var l=Ut();if(r.b.is_rendered())c.async_deriveds.get(t)?.reject(Gt);else for(let e of s.values())e.reject(Gt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Gt&&(c.activate(),t?(a.f|=A,an(a,t)):(a.f&8388608&&(a.f^=A),an(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),In(()=>{for(let e of s)e.reject(Gt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function F(e){let t=Wt(e);return qe||mr(t),t}function qt(e){let t=Wt(e);return t.equals=Ke,t}function Jt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Xn(t[n])}}function Yt(e){var t,n=dr,r=e.parent;if(!or&&r!==null&&e.v!==je&&r.f&24576)return Ne(),e.v;fr(r);try{e.f&=~le,Jt(e),t=Er(e)}finally{fr(n)}return t}function Xt(e){var t=Yt(e);if(!e.equals(t)&&(e.wv=Cr(),(!gt?.is_fork||e.deps===null)&&(gt===null?e.v=t:(gt.capture(e,t,!0),_t?.capture(e,t,!0)),e.deps===null))){st(e,D);return}or||(vt===null?ct(e):(Fn()||gt?.is_fork)&&vt.set(e,t))}function Zt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(_e),t.fn!==null&&(t.teardown=S),t.ac=null,Or(t,0),Jn(t))}function Qt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&kr(t)}var $t=new Set,en=new Map,tn=!1;function nn(e,t){return{f:0,v:e,reactions:null,equals:We,rv:0,wv:0}}function I(e,t){let n=nn(e,t);return mr(n),n}function rn(e,t=!1,n=!0){let r=nn(e);return t||(r.equals=Ke),Je&&n&&Ye!==null&&Ye.l!==null&&(Ye.l.s??=[]).push(r),r}function L(e,t,n=!1){return cr!==null&&(!lr||cr.f&131072)&&$e()&&cr.f&4325394&&(pr===null||!f.call(pr,e))&&Oe(),an(e,n?un(t):t,Ct)}function an(e,t,n=null){if(!e.equals(t)){en.set(e,or?t:e.v);var r=Et.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Yt(t),vt===null&&ct(t)}e.wv=Cr(),ln(e,O,n),$e()&&dr!==null&&dr.f&1024&&!(dr.f&96)&&(_r===null?vr([e]):_r.push(e)),!r.is_fork&&$t.size>0&&!tn&&on()}return t}function on(){tn=!1;for(let e of $t){e.f&1024&&st(e,ee);let t;try{t=wr(e)}catch{t=!0}t&&kr(e)}$t.clear()}function sn(e,t=1){var n=H(e),r=t===1?n++:n--;return L(e,n),r}function cn(e){L(e,e.v+1)}function ln(e,t,n){var r=e.reactions;if(r!==null)for(var i=$e(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===dr)){var l=(c&O)===0;if(l&&st(s,t),c&131072)$t.add(s);else if(c&2){var u=s;vt?.delete(u),c&65536||(c&512&&(dr===null||!(dr.f&2097152))&&(s.f|=le),ln(u,ee,n))}else if(l){var d=s;c&16&&kt!==null&&kt.add(d),n===null?Nt(d):n.push(d)}}}}function un(e){if(typeof e!=`object`||!e||j in e)return e;let t=y(e);if(t!==_&&t!==v)return e;var n=new Map,r=u(e),i=I(0),a=null,o=xr,s=e=>{if(xr===o)return e();var t=cr,n=xr;ur(null),Sr(o);var r=e();return ur(t),Sr(n),r};return r&&n.set(`length`,I(e.length,a)),new Proxy(e,{defineProperty(e,t,r){(!(`value`in r)||r.configurable===!1||r.enumerable===!1||r.writable===!1)&&Ee();var i=n.get(t);return i===void 0?s(()=>{var e=I(r.value,a);return n.set(t,e),e}):L(i,r.value,!0),!0},deleteProperty(e,t){var r=n.get(t);if(r===void 0){if(t in e){let e=s(()=>I(je,a));n.set(t,e),cn(i)}}else L(r,je),cn(i);return!0},get(t,r,i){if(r===j)return e;var o=n.get(r),c=r in t;if(o===void 0&&(!c||h(t,r)?.writable)&&(o=s(()=>I(un(c?t[r]:je),a)),n.set(r,o)),o!==void 0){var l=H(o);return l===je?void 0:l}return Reflect.get(t,r,i)},getOwnPropertyDescriptor(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);if(r&&`value`in r){var i=n.get(t);i&&(r.value=H(i))}else if(r===void 0){var a=n.get(t),o=a?.v;if(a!==void 0&&o!==je)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return r},has(e,t){if(t===j)return!0;var r=n.get(t),i=r!==void 0&&r.v!==je||Reflect.has(e,t);return(r!==void 0||dr!==null&&(!i||h(e,t)?.writable))&&(r===void 0&&(r=s(()=>I(i?un(e[t]):je,a)),n.set(t,r)),H(r)===je)?!1:i},set(e,t,o,c){var l=n.get(t),u=t in e;if(r&&t===`length`)for(var d=o;d<l.v;d+=1){var f=n.get(d+``);f===void 0?d in e&&(f=s(()=>I(je,a)),n.set(d+``,f)):L(f,je)}if(l===void 0)(!u||h(e,t)?.writable)&&(l=s(()=>I(void 0,a)),L(l,un(o)),n.set(t,l));else{u=l.v!==je;var p=s(()=>un(o));L(l,p)}var m=Reflect.getOwnPropertyDescriptor(e,t);if(m?.set&&m.set.call(c,o),!u){if(r&&typeof t==`string`){var g=n.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&L(g,_+1)}cn(i)}return!0},ownKeys(e){H(i);var t=Reflect.ownKeys(e).filter(e=>{var t=n.get(e);return t===void 0||t.v!==je});for(var[r,a]of n)a.v!==je&&!(r in e)&&t.push(r);return t},setPrototypeOf(){De()}})}function dn(e){try{if(typeof e==`object`&&e&&j in e)return e[j]}catch{}return e}function fn(e,t){return Object.is(dn(e),dn(t))}new Set([`copyWithin`,`fill`,`pop`,`push`,`reverse`,`shift`,`sort`,`splice`,`unshift`]);var pn,mn,hn,gn,_n;function vn(){if(pn===void 0){pn=window,mn=document,hn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;gn=h(t,`firstChild`).get,_n=h(t,`nextSibling`).get,b(e)&&(e[pe]=void 0,e[fe]=null,e[me]=void 0,e.__e=void 0),b(n)&&(n[he]=void 0)}}function yn(e=``){return document.createTextNode(e)}function bn(e){return gn.call(e)}function xn(e){return _n.call(e)}function R(e,t){if(!Le)return bn(e);var n=bn(ze);if(n===null)n=ze.appendChild(yn());else if(t&&n.nodeType!==3){var r=yn();return n?.before(r),Be(r),r}return t&&Tn(n),Be(n),n}function z(e,t=!1){if(!Le){var n=bn(e);return n instanceof Comment&&n.data===``?xn(n):n}if(t){if(ze?.nodeType!==3){var r=yn();return ze?.before(r),Be(r),r}Tn(ze)}return ze}function B(e,t=1,n=!1){let r=Le?ze:e;for(var i;t--;)i=r,r=xn(r);if(!Le)return r;if(n){if(r?.nodeType!==3){var a=yn();return r===null?i?.after(a):r.before(a),Be(a),a}Tn(r)}return Be(r),r}function Sn(e){e.textContent=``}function Cn(){return!qe||kt!==null?!1:(dr.f&re)!==0}function wn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function Tn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function En(e,t){if(t){let t=document.body;e.autofocus=!0,nt(()=>{document.activeElement===t&&e.focus()})}}function Dn(e){Le&&bn(e)!==null&&Sn(e)}var On=!1;function kn(){On||(On=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ge]?.()})},{capture:!0}))}function An(e){var t=cr,n=dr;ur(null),fr(null);try{return e()}finally{ur(t),fr(n)}}function jn(e,t,n,r=n){e.addEventListener(t,()=>An(n));let i=e[ge];i?e[ge]=()=>{i(),r(!0)}:e[ge]=()=>r(!0),kn()}function Mn(e){dr===null&&(cr===null&&Ce(e),Se()),or&&xe(e)}function Nn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Pn(e,t){var n=dr;n!==null&&n.f&8192&&(e|=te);var r={ctx:Ye,deps:null,nodes:null,f:e|O|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};gt?.register_created_effect(r);var i=r;if(e&4)St===null?Et.ensure().schedule(r):St.push(r);else if(t!==null){try{kr(r)}catch(e){throw Xn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=ae))}if(i!==null&&(i.parent=n,n!==null&&Nn(i,n),cr!==null&&cr.f&2&&!(e&64))){var a=cr;(a.effects??=[]).push(i)}return r}function Fn(){return cr!==null&&!lr}function In(e){let t=Pn(8,null);return st(t,D),t.teardown=e,t}function Ln(e){Mn(`$effect`);var t=dr.f;if(!cr&&t&32&&!(t&32768)){var n=Ye;(n.e??=[]).push(e)}else return Rn(e)}function Rn(e){return Pn(4|se,e)}function zn(e){return Mn(`$effect.pre`),Pn(8|se,e)}function Bn(e){Et.ensure();let t=Pn(64|oe,e);return(e={})=>new Promise(n=>{e.outro?$n(t,()=>{Xn(t),n(void 0)}):(Xn(t),n(void 0))})}function Vn(e){return Pn(4,e)}function Hn(e){return Pn(k|oe,e)}function Un(e,t=0){return Pn(8|t,e)}function V(e,t=[],n=[],r=[]){Bt(r,t,n,t=>{Pn(8,()=>e(...t.map(H)))})}function Wn(e,t=0){return Pn(16|t,e)}function Gn(e,t=0){return Pn(E|t,e)}function Kn(e){return Pn(32|oe,e)}function qn(e){var t=e.teardown;if(t!==null){let e=or,n=cr;sr(!0),ur(null);try{t.call(null)}finally{sr(e),ur(n)}}}function Jn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&An(()=>{e.abort(_e)});var r=n.next;n.f&64?n.parent=null:Xn(n,t),n=r}}function Yn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Xn(t),t=n}}function Xn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Zn(e.nodes.start,e.nodes.end),n=!0),st(e,ie),Jn(e,t&&!n),Or(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();qn(e),e.f^=ie,e.f|=ne;var i=e.parent;i!==null&&i.first!==null&&Qn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Zn(e,t){for(;e!==null;){var n=e===t?null:xn(e);e.remove(),e=n}}function Qn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function $n(e,t,n=!0){var r=[];er(e,r,!0);var i=()=>{n&&Xn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function er(e,t,n){if(!(e.f&8192)){e.f^=te;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;er(i,t,o?n:!1)}i=a}}}function tr(e){nr(e,!0)}function nr(e,t){if(e.f&8192){e.f^=te,e.f&1024||(st(e,O),Et.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;nr(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function rr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:xn(n);t.append(n),n=i}}var ir=null,ar=!1,or=!1;function sr(e){or=e}var cr=null,lr=!1;function ur(e){cr=e}var dr=null;function fr(e){dr=e}var pr=null;function mr(e){cr!==null&&(!qe||cr.f&2)&&(pr===null?pr=[e]:pr.push(e))}var hr=null,gr=0,_r=null;function vr(e){_r=e}var yr=1,br=0,xr=br;function Sr(e){xr=e}function Cr(){return++yr}function wr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~le),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(wr(a)&&Xt(a),a.wv>e.wv)return!0}t&512&&vt===null&&st(e,D)}return!1}function Tr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!qe&&pr!==null&&f.call(pr,e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?Tr(a,t,!1):t===a&&(n?st(a,O):a.f&1024&&st(a,ee),Nt(a))}}function Er(e){var t=hr,n=gr,r=_r,i=cr,a=pr,o=Ye,s=lr,c=xr,l=e.f;hr=null,gr=0,_r=null,cr=l&96?null:e,pr=null,Xe(e.ctx),lr=!1,xr=++br,e.ac!==null&&(An(()=>{e.ac.abort(_e)}),e.ac=null);try{e.f|=ue;var u=e.fn,d=u();e.f|=re;var f=e.deps,p=gt?.is_fork;if(hr!==null){var m;if(p||Or(e,gr),f!==null&&gr>0)for(f.length=gr+hr.length,m=0;m<hr.length;m++)f[gr+m]=hr[m];else e.deps=f=hr;if(Fn()&&e.f&512)for(m=gr;m<f.length;m++)(f[m].reactions??=[]).push(e)}else !p&&f!==null&&gr<f.length&&(Or(e,gr),f.length=gr);if($e()&&_r!==null&&!lr&&f!==null&&!(e.f&6146))for(m=0;m<_r.length;m++)Tr(_r[m],e);if(i!==null&&i!==e){if(br++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=br;if(t!==null)for(let e of t)e.rv=br;_r!==null&&(r===null?r=_r:r.push(..._r))}return e.f&8388608&&(e.f^=A),d}catch(e){return it(e)}finally{e.f^=ue,hr=t,gr=n,_r=r,cr=i,pr=a,Xe(o),lr=s,xr=c}}function Dr(e,t){let n=t.reactions;if(n!==null){var r=d.call(n,e);if(r!==-1){var i=n.length-1;i===0?n=t.reactions=null:(n[r]=n[i],n.pop())}}if(n===null&&t.f&2&&(hr===null||!f.call(hr,t))){var a=t;a.f&512&&(a.f^=512,a.f&=~le),a.v!==je&&ct(a),Zt(a),Or(a,0)}}function Or(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Dr(e,n[r])}function kr(e){var t=e.f;if(!(t&16384)){st(e,D);var n=dr,r=ar;dr=e,ar=!0;try{t&16777232?Yn(e):Jn(e),qn(e);var i=Er(e);e.teardown=typeof i==`function`?i:null,e.wv=yr}finally{ar=r,dr=n}}}async function Ar(){if(qe)return new Promise(e=>{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),Dt()}function H(e){var t=(e.f&2)!=0;if(ir?.add(e),cr!==null&&!lr&&!(dr!==null&&dr.f&16384)&&(pr===null||!f.call(pr,e))){var n=cr.deps;if(cr.f&2097152)e.rv<br&&(e.rv=br,hr===null&&n!==null&&n[gr]===e?gr++:hr===null?hr=[e]:hr.push(e));else{cr.deps??=[],f.call(cr.deps,e)||cr.deps.push(e);var r=e.reactions;r===null?e.reactions=[cr]:f.call(r,cr)||r.push(cr)}}if(or&&en.has(e))return en.get(e);if(t){var i=e;if(or){var a=i.v;return(!(i.f&1024)&&i.reactions!==null||Mr(i))&&(a=Yt(i)),en.set(i,a),a}var o=(i.f&512)==0&&!lr&&cr!==null&&(ar||(cr.f&512)!=0),s=(i.f&re)===0;wr(i)&&(o&&(i.f|=512),Xt(i)),o&&!s&&(Qt(i),jr(i))}if(vt?.has(e))return vt.get(e);if(e.f&8388608)throw e.v;return e.v}function jr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Qt(t),jr(t))}function Mr(e){if(e.v===je)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(en.has(t)||t.f&2&&Mr(t))return!0;return!1}function Nr(e){var t=lr;try{return lr=!0,e()}finally{lr=t}}function Pr(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(j in e)Fr(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&j in n&&Fr(n)}}}function Fr(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Fr(e[n],t)}catch{}let n=y(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=g(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}function Ir(e){return e.endsWith(`capture`)&&e!==`gotpointercapture`&&e!==`lostpointercapture`}var Lr=[`beforeinput`,`click`,`change`,`dblclick`,`contextmenu`,`focusin`,`focusout`,`input`,`keydown`,`keyup`,`mousedown`,`mousemove`,`mouseout`,`mouseover`,`mouseup`,`pointerdown`,`pointermove`,`pointerout`,`pointerover`,`pointerup`,`touchend`,`touchmove`,`touchstart`];function Rr(e){return Lr.includes(e)}var zr=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`),Br={formnovalidate:`formNoValidate`,ismap:`isMap`,nomodule:`noModule`,playsinline:`playsInline`,readonly:`readOnly`,defaultvalue:`defaultValue`,defaultchecked:`defaultChecked`,srcobject:`srcObject`,novalidate:`noValidate`,allowfullscreen:`allowFullscreen`,disablepictureinpicture:`disablePictureInPicture`,disableremoteplayback:`disableRemotePlayback`};function Vr(e){return e=e.toLowerCase(),Br[e]??e}[...zr];var Hr=[`touchstart`,`touchmove`];function Ur(e){return Hr.includes(e)}var Wr=Symbol(`events`),Gr=new Set,Kr=new Set;function qr(e,t,n,r={}){function i(e){if(r.capture||Zr.call(t,e),!e.cancelBubble)return An(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?nt(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Jr(e,t,n,r,i){var a={capture:r,passive:i},o=qr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&In(()=>{t.removeEventListener(e,o,a)})}function U(e,t,n){(t[Wr]??={})[e]=n}function Yr(e){for(var t=0;t<e.length;t++)Gr.add(e[t]);for(var n of Kr)n(e)}var Xr=null;function Zr(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],a=i[0]||e.target;Xr=e;var o=0,s=Xr===e&&e[Wr];if(s){var c=i.indexOf(s);if(c!==-1&&(t===document||t===window)){e[Wr]=t;return}var l=i.indexOf(t);if(l===-1)return;c<=l&&(o=c)}if(a=i[o]||e.target,a!==t){m(e,`currentTarget`,{configurable:!0,get(){return a||n}});var u=cr,d=dr;ur(null),fr(null);try{for(var f,p=[];a!==null;){var h=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Wr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(e){f?p.push(e):f=e}if(e.cancelBubble||h===t||h===null)break;a=h}if(f){for(let e of p)queueMicrotask(()=>{throw e});throw f}}finally{e[Wr]=t,delete e.currentTarget,ur(u),fr(d)}}}var Qr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function $r(e){return Qr?.createHTML(e)??e}function ei(e){var t=wn(`template`);return t.innerHTML=$r(e.replaceAll(`<!>`,`<!---->`)),t.content}function ti(e,t){var n=dr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function W(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(Le)return ti(ze,null),ze;i===void 0&&(i=ei(a?e:`<!>`+e),n||(i=bn(i)));var t=r||hn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=bn(t),s=t.lastChild;ti(o,s)}else ti(t,t);return t}}function ni(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=(t&1)!=0,a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(Le)return ti(ze,null),ze;if(!o){var e=bn(ei(a));if(i)for(o=document.createDocumentFragment();bn(e);)o.appendChild(bn(e));else o=bn(e)}var t=o.cloneNode(!0);if(i){var n=bn(t),r=t.lastChild;ti(n,r)}else ti(t,t);return t}}function G(e,t){return ni(e,t,`svg`)}function ri(e=``){if(!Le){var t=yn(e+``);return ti(t,t),t}var n=ze;return n.nodeType===3?Tn(n):(n.before(n=yn()),Be(n)),ti(n,n),n}function ii(){if(Le)return ti(ze,null),ze;var e=document.createDocumentFragment(),t=document.createComment(``),n=yn();return e.append(t,n),ti(t,n),e}function K(e,t){if(Le){var n=dr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=ze),Ve();return}e!==null&&e.before(t)}var ai=!0;function q(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[he]??=e.nodeValue)&&(e[he]=n,e.nodeValue=`${n}`)}function oi(e,t){return ci(e,t)}var si=new Map;function ci(e,{target:t,anchor:n,props:r={},events:i,context:a,intro:o=!0,transformError:s}){vn();var c=void 0,l=Bn(()=>{var l=n??t.appendChild(yn());Rt(l,{pending:()=>{}},t=>{Ze({});var n=Ye;if(a&&(n.c=a),i&&(r.$$events=i),Le&&ti(t,null),ai=o,c=e(t,r)||{},ai=!0,Le&&(dr.nodes.end=ze,ze===null||ze.nodeType!==8||ze.data!==`]`))throw Pe(),Ae;Qe()},s);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Ur(r);for(let e of[t,document]){var a=si.get(e);a===void 0&&(a=new Map,si.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Zr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(p(Gr)),Kr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=si.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Zr),r.delete(e),r.size===0&&si.delete(n)):r.set(e,i)}Kr.delete(d),l!==n&&l.parentNode?.removeChild(l)}});return li.set(c,l),c}var li=new WeakMap,ui=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)tr(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Xn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();rr(r,t),t.append(yn()),this.#n.set(e,{effect:r,fragment:t})}else Xn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),$n(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Xn(n.effect),this.#n.delete(e))};ensure(e,t){var n=gt,r=Cn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=yn();i.append(a),this.#n.set(e,{effect:Kn(()=>t(a)),fragment:i})}else this.#t.set(e,Kn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Le&&(this.anchor=ze),this.#a(n)}};function J(e,t,n=!1){var r;Le&&(r=ze,Ve());var i=new ui(e),a=n?ae:0;function o(e,t){if(Le){var n=Ue(r);if(e!==parseInt(n.substring(1))){var a=He();Be(a),i.anchor=a,Re(!1),i.ensure(e,t),Re(!0);return}}i.ensure(e,t)}Wn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function di(e,t){return t}function fi(e,t,n){for(var r=[],i=t.length,a,o=t.length,s=0;s<i;s++){let n=t[s];$n(n,()=>{if(a){if(a.pending.delete(n),a.done.add(n),a.pending.size===0){var t=e.outrogroups;pi(e,p(a.done)),t.delete(a),t.size===0&&(e.outrogroups=null)}}else --o},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var l=n,u=l.parentNode;Sn(u),u.append(l),e.items.clear()}pi(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function pi(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=ce,rr(a,document.createDocumentFragment())):Xn(t[i],n)}}var mi;function Y(e,t,n,r,i,a=null){var o=e,s=new Map;if(t&4){var c=e;o=Le?Be(bn(c)):c.appendChild(yn())}Le&&Ve();var l=null,d=qt(()=>{var e=n();return u(e)?e:e==null?[]:p(e)}),f,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=l,gi(v,f,o,t,r),l!==null&&(f.length===0?l.f&33554432?(l.f^=ce,vi(l,null,o)):tr(l):$n(l,()=>{l=null})))}function _(e){v.pending.delete(e)}var v={effect:Wn(()=>{f=H(d);var e=f.length;let c=!1;Le&&Ue(o)===`[!`!=(e===0)&&(o=He(),Be(o),Re(!1),c=!0);for(var u=new Set,p=gt,v=Cn(),y=0;y<e;y+=1){Le&&ze.nodeType===8&&ze.data===`]`&&(o=ze,c=!0,Re(!1));var b=f[y],x=r(b,y),S=h?null:s.get(x);S?(S.v&&an(S.v,b),S.i&&an(S.i,y),v&&p.unskip_effect(S.e)):(S=_i(s,h?o:mi??=yn(),b,x,y,i,t,n),h||(S.e.f|=ce),s.set(x,S)),u.add(x)}if(e===0&&a&&!l&&(h?l=Kn(()=>a(o)):(l=Kn(()=>a(mi??=yn())),l.f|=ce)),e>u.size&&be(``,``,``),Le&&e>0&&Be(He()),!h)if(m.set(p,u),v){for(let[e,t]of s)u.has(e)||p.skip_effect(t.e);p.oncommit(g),p.ondiscard(_)}else g(p);c&&Re(!0),H(d)}),flags:t,items:s,pending:m,outrogroups:null,fallback:l};h=!1,Le&&(o=ze)}function hi(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function gi(e,t,n,r,i){var a=(r&8)!=0,o=t.length,s=e.items,c=hi(e.effect.first),l,u=null,d,f=[],m=[],h,g,_,v;if(a)for(v=0;v<o;v+=1)h=t[v],g=i(h,v),_=s.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(d??=new Set).add(_));for(v=0;v<o;v+=1){if(h=t[v],g=i(h,v),_=s.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(tr(_),a&&(_.nodes?.a?.unfix(),(d??=new Set).delete(_))),_.f&33554432)if(_.f^=ce,_===c)vi(_,null,n);else{var y=u?u.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),yi(e,u,_),yi(e,_,y),vi(_,y,n),u=_,f=[],m=[],c=hi(u.next);continue}if(_!==c){if(l!==void 0&&l.has(_)){if(f.length<m.length){var b=m[0],x;u=b.prev;var S=f[0],C=f[f.length-1];for(x=0;x<f.length;x+=1)vi(f[x],b,n);for(x=0;x<m.length;x+=1)l.delete(m[x]);yi(e,S.prev,C.next),yi(e,u,S),yi(e,C,b),c=b,u=C,--v,f=[],m=[]}else l.delete(_),vi(_,c,n),yi(e,_.prev,_.next),yi(e,_,u===null?e.effect.first:u.next),yi(e,u,_),u=_;continue}for(f=[],m=[];c!==null&&c!==_;)(l??=new Set).add(c),m.push(c),c=hi(c.next);if(c===null)continue}_.f&33554432||f.push(_),u=_,c=hi(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(pi(e,p(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||l!==void 0){var w=[];if(l!==void 0)for(_ of l)_.f&8192||w.push(_);for(;c!==null;)!(c.f&8192)&&c!==e.fallback&&w.push(c),c=hi(c.next);var T=w.length;if(T>0){var E=r&4&&o===0?n:null;if(a){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}fi(e,w,E)}}a&&nt(()=>{if(d!==void 0)for(_ of d)_.nodes?.a?.apply()})}function _i(e,t,n,r,i,a,o,s){var c=o&1?o&16?nn(n):rn(n,!1,!1):null,l=o&2?nn(i):null;return{v:c,i:l,e:Kn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function vi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=xn(r);if(a.before(r),r===i)return;r=o}}function yi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function bi(e,t,...n){var r=new ui(e);Wn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},ae)}function xi(e,t,n){var r;Le&&(r=ze,Ve());var i=new ui(e);Wn(()=>{var e=t()??null;if(Le&&Ue(r)===`[`!=(e!==null)){var a=He();Be(a),i.anchor=a,Re(!1),i.ensure(e,e&&(t=>n(t,e))),Re(!0);return}i.ensure(e,e&&(t=>n(t,e)))},ae)}var Si=()=>performance.now(),Ci={tick:e=>requestAnimationFrame(e),now:()=>Si(),tasks:new Set};function wi(){let e=Ci.now();Ci.tasks.forEach(t=>{t.c(e)||(Ci.tasks.delete(t),t.f())}),Ci.tasks.size!==0&&Ci.tick(wi)}function Ti(e){let t;return Ci.tasks.size===0&&Ci.tick(wi),{promise:new Promise(n=>{Ci.tasks.add(t={c:e,f:n})}),abort(){Ci.tasks.delete(t)}}}function Ei(e,t){An(()=>{e.dispatchEvent(new CustomEvent(t))})}function Di(e){if(e===`float`)return`cssFloat`;if(e===`offset`)return`cssOffset`;if(e.startsWith(`--`))return e;let t=e.split(`-`);return t.length===1?t[0]:t[0]+t.slice(1).map(e=>e[0].toUpperCase()+e.slice(1)).join(``)}function Oi(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=Di(n.trim());t[i]=r.trim()}return t}var ki=e=>e;function Ai(e,t,n,r){var i=(e&1)!=0,a=(e&2)!=0,o=i&&a,s=(e&4)!=0,c=o?`both`:i?`in`:`out`,l,u=t.inert,d=t.style.overflow,f,p;function m(){return An(()=>l??=n()(t,r?.()??{},{direction:c}))}var h={is_global:s,in(){if(t.inert=u,!i){p?.abort(),p?.reset?.();return}a||f?.abort(),f=ji(t,m(),p,1,()=>{Ei(t,`introstart`)},()=>{Ei(t,`introend`),f?.abort(),f=l=void 0,t.style.overflow=d})},out(e){if(!a){e?.(),l=void 0;return}t.inert=!0,p=ji(t,m(),f,0,()=>{Ei(t,`outrostart`)},()=>{Ei(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=dr;if((g.nodes.t??=[]).push(h),i&&ai){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&Vn(()=>{Nr(()=>h.in())})}}function ji(e,t,n,r,i,a){var o=r===1;if(x(t)){var s,c=!1;return nt(()=>{c||(s=ji(e,t({direction:o?`in`:`out`}),n,r,i,a))}),{abort:()=>{c=!0,s?.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return i(),a(),{abort:S,deactivate:S,reset:S,t:()=>r};let{delay:l=0,css:u,tick:d,easing:f=ki}=t;var p=[];if(o&&n===void 0&&(d&&d(0,1),u)){var m=Oi(u(0,1));p.push(m,m)}var h=()=>1-r,g=e.animate(p,{duration:l,fill:`forwards`});return g.onfinish=()=>{g.cancel(),i();var o=n?.t()??1-r;n?.abort();var s=r-o,c=t.duration*Math.abs(s),l=[];if(c>0){var p=!1;if(u)for(var m=Math.ceil(c/(1e3/60)),_=0;_<=m;_+=1){var v=o+s*f(_/m),y=Oi(u(v,1-v));l.push(y),p||=y.overflow===`hidden`}p&&(e.style.overflow=`hidden`),h=()=>{var e=g.currentTime;return o+s*f(e/c)},d&&Ti(()=>{if(g.playState!==`running`)return!1;var e=h();return d(e,1-e),!0})}g=e.animate(l,{duration:c,fill:`forwards`}),g.onfinish=()=>{h=()=>r,d?.(r,1-r),a()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=S)},deactivate:()=>{a=S},reset:()=>{r===0&&d?.(1,0)},t:()=>h()}}function Mi(e,t,n){Vn(()=>{var r=Nr(()=>t(e,n?.())||{});if(n&&r?.update){var i=!1,a={};Un(()=>{var e=n();Pr(e),i&&Ge(a,e)&&(a=e,r.update(e))}),i=!0}if(r?.destroy)return()=>r.destroy()})}function Ni(e,t){var n=void 0,r;Gn(()=>{n!==(n=t())&&(r&&=(Xn(r),null),n&&(r=Kn(()=>{Vn(()=>n(e))})))})}function Pi(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Pi(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Fi(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Pi(e))&&(r&&(r+=` `),r+=t);return r}function Ii(e){return typeof e==`object`?Fi(e):e??``}var Li=[...`
|
|
2
|
-
\r\f\xA0\v`];function Ri(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||Li.includes(r[o-1]))&&(s===r.length||Li.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function zi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function Bi(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Vi(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(Bi)),i&&c.push(...Object.keys(i).map(Bi));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=Bi(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=zi(r)),i&&(n+=zi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function X(e,t,n,r,i,a){var o=e[pe];if(Le||o!==n||o===void 0){var s=Ri(n,r,a);(!Le||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[pe]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function Hi(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function Ui(e,t,n,r){var i=e[me];if(Le||i!==t){var a=Vi(t,r);(!Le||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[me]=t}else r&&(Array.isArray(r)?(Hi(e,n?.[0],r[0]),Hi(e,n?.[1],r[1],`important`)):Hi(e,n,r));return r}function Wi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!u(t))return Fe();for(var r of e.options)r.selected=t.includes(qi(r));return}for(r of e.options)if(fn(qi(r),t)){r.selected=!0;return}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Gi(e){var t=new MutationObserver(()=>{Wi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),In(()=>{t.disconnect()})}function Ki(e,t,n=t){var r=new WeakSet,i=!0;jn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),qi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&qi(o)}n(a),e.__value=a,gt!==null&&r.add(gt)}),Vn(()=>{var a=t();if(e===document.activeElement){var o=qe?_t:gt;if(r.has(o))return}if(Wi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=qi(s),n(a))}e.__value=a,i=!1}),Gi(e)}function qi(e){return`__value`in e?e.__value:e.value}var Ji=Symbol(`class`),Yi=Symbol(`style`),Xi=Symbol(`is custom element`),Zi=Symbol(`is html`),Qi=ve?`link`:`LINK`,$i=ve?`input`:`INPUT`,ea=ve?`option`:`OPTION`,ta=ve?`select`:`SELECT`,na=ve?`progress`:`PROGRESS`;function Z(e){if(Le){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Q(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Q(e,`checked`,null),e.checked=r}}};e[ge]=n,nt(n),kn()}}function ra(e,t){var n=la(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==na)||(e.value=t??``)}function ia(e,t){var n=la(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function aa(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function Q(e,t,n,r){var i=la(e);Le&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Qi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[M]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&da(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function oa(e,t,n){var r=cr,i=dr;let a=Le;Le&&Re(!1),ur(null),fr(null);try{t!==`style`&&(ua.has(e.getAttribute(`is`)||e.nodeName)||!customElements||customElements.get(e.getAttribute(`is`)||e.nodeName.toLowerCase())?da(e).includes(t):n&&typeof n==`object`)?e[t]=n:Q(e,t,n==null?n:String(n))}finally{ur(r),fr(i),a&&Re(!0)}}function sa(e,t,n,r,i=!1,a=!1){if(Le&&i&&e.nodeName===$i){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||Z(o)}var s=la(e),c=s[Xi],l=!s[Zi];let u=Le&&c;u&&Re(!1);var d=t||{},f=e.nodeName===ea;for(var p in t)p in n||(n[p]=null);n.class?n.class=Ii(n.class):(r||n[Ji])&&(n.class=null),n[Yi]&&(n.style??=null);var m=da(e);for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){X(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[Ji],n[Ji]),d[i]=o,d[Ji]=n[Ji];continue}if(i===`style`){Ui(e,o,t?.[Yi],n[Yi]),d[i]=o,d[Yi]=n[Yi];continue}var h=d[i];if(!(o===h&&!(o===void 0&&e.hasAttribute(i)))){d[i]=o;var g=i[0]+i[1];if(g!==`$$`)if(g===`on`){let t={},n=`$$`+i,r=i.slice(2);var _=Rr(r);if(Ir(r)&&(r=r.slice(0,-7),t.capture=!0),!_&&h){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(_)U(r,e,o),Yr([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=qr(r,e,a,t)}}else if(i===`style`)Q(e,i,o);else if(i===`autofocus`)En(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)aa(e,o);else{var v=i;l||(v=Vr(v));var y=v===`defaultValue`||v===`defaultChecked`;if(o==null&&!c&&!y)if(s[i]=null,v===`value`||v===`checked`){let n=e,r=t===void 0;if(v===`value`){let e=n.defaultValue;n.removeAttribute(v),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(v),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else y||m.includes(v)&&(c||typeof o!=`string`)?(e[v]=o,v in s&&(s[v]=je)):typeof o!=`function`&&Q(e,v,o,a)}}}return u&&Re(!0),d}function ca(e,t,n=[],r=[],i=[],a,o=!1,s=!1){Bt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===ta,l=!1;if(Gn(()=>{var u=t(...n.map(H)),d=sa(e,r,u,a,o,s);l&&c&&`value`in u&&Wi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Xn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Xn(i[t]),i[t]=Kn(()=>Ni(e,()=>f))),d[t]=f}r=d}),c){var u=e;Vn(()=>{Wi(u,r.value,!0),Gi(u)})}l=!0})}function la(e){return e[fe]??={[Xi]:e.nodeName.includes(`-`),[Zi]:e.namespaceURI===Me}}var ua=new Map;function da(e){var t=e.getAttribute(`is`)||e.nodeName,n=ua.get(t);if(n)return n;ua.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=g(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=y(i)}return n}function fa(e,t,n=t){var r=new WeakSet;jn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=ma(e)?ha(a):a,n(a),gt!==null&&r.add(gt),await Ar(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(Le&&e.defaultValue!==e.value||Nr(t)==null&&e.value)&&(n(ma(e)?ha(e.value):e.value),gt!==null&&r.add(gt)),Un(()=>{var n=t();if(e===document.activeElement){var i=qe?_t:gt;if(r.has(i))return}ma(e)&&n===ha(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function pa(e,t,n=t){jn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Le&&e.defaultChecked!==e.checked||Nr(t)==null)&&n(e.checked),Un(()=>{e.checked=!!t()})}function ma(e){var t=e.type;return t===`number`||t===`range`}function ha(e){return e===``?null:+e}var ga=new class e{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(e){this.#n=e}observe(e,t){var n=this.#e.get(e)||new Set;return n.add(t),this.#e.set(e,n),this.#r().observe(e,this.#n),()=>{var n=this.#e.get(e);n.delete(t),n.size===0&&(this.#e.delete(e),this.#t.unobserve(e))}}#r(){return this.#t??=new ResizeObserver(t=>{for(var n of t){e.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}})}}({box:`border-box`});function _a(e,t,n){var r=ga.observe(e,()=>n(e[t]));Vn(()=>(Nr(()=>n(e[t])),r))}function va(e,t){return e===t||e?.[j]===t}function ya(e={},t,n,r){var i=Ye.r,a=dr;return Vn(()=>{var o,s;return Un(()=>{o=s,s=r?.()||[],Nr(()=>{va(n(...s),e)||(t(e,...s),o&&va(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&va(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var ba={get(e,t){if(!e.exclude.includes(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function xa(e,t,n){return new Proxy({props:e,exclude:t},ba)}var Sa={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(x(r)&&(r=r()),typeof r==`object`&&r&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let i=e.props[r];x(i)&&(i=i());let a=h(i,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(x(r)&&(r=r()),typeof r==`object`&&r&&t in r){let e=h(r,t);return e&&!e.configurable&&(e.configurable=!0),e}}},has(e,t){if(t===j||t===de)return!1;for(let n of e.props)if(x(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){let t=[];for(let n of e.props)if(x(n)&&(n=n()),n){for(let e in n)t.includes(e)||t.push(e);for(let e of Object.getOwnPropertySymbols(n))t.includes(e)||t.push(e)}return t}};function Ca(...e){return new Proxy({props:e},Sa)}function $(e,t,n,r){var i=!Je||(n&2)!=0,a=(n&8)!=0,o=(n&16)!=0,s=r,c=!0,l=void 0,u=()=>o&&i?(l??=Wt(r),H(l)):(c&&(c=!1,s=o?Nr(r):r),s);let d;if(a){var f=j in e||de in e;d=h(e,t)?.set??(f&&t in e?n=>e[t]=n:void 0)}var p,m=!1;a?[p,m]=pt(()=>e[t]):p=e[t],p===void 0&&r!==void 0&&(p=u(),d&&(i&&Te(t),d(p)));var g=i?()=>{var n=e[t];return n===void 0?u():(c=!0,n)}:()=>{var n=e[t];return n!==void 0&&(s=void 0),n===void 0?s:n};if(i&&!(n&4))return g;if(d){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||m)&&d(t?g():e),e):g()})}var v=!1,y=(n&1?Wt:qt)(()=>(v=!1,g()));a&&H(y);var b=dr;return(function(e,t){if(arguments.length>0){let n=t?H(y):i&&a?un(e):e;return L(y,n),v=!0,s!==void 0&&(s=n),e}return or&&v||b.f&16384?y.v:H(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);function wa(e,t){if(e)switch(e.trim()){case`d`:return t===`datetime`?{year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`}:{year:`numeric`,month:`numeric`,day:`numeric`};case`D`:return t===`datetime`?{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`,hour:`numeric`,minute:`numeric`}:{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`};case`y-m-d`:return t===`datetime`?{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}:{year:`numeric`,month:`2-digit`,day:`2-digit`};case`medium`:return{dateStyle:`medium`,timeStyle:t===`datetime`?`short`:void 0};case`short`:return{dateStyle:`short`,timeStyle:t===`datetime`?`short`:void 0};case`long`:return{dateStyle:`long`,timeStyle:t===`datetime`?`short`:void 0};default:return}}var Ta=new Map;function Ea(e,t){let n=(Array.isArray(e)?e.join(`,`):e??``)+`|`+(t.style??``)+`|`+(t.currency??``)+`|`+(t.minimumFractionDigits??``)+`|`+(t.maximumFractionDigits??``)+`|`+(t.useGrouping??``)+`|`+(t.currencyDisplay??``)+`|`+(t.notation??``),r=Ta.get(n);return r||(r=new Intl.NumberFormat(e,t),Ta.set(n,r)),r}var Da=new Map;function Oa(e,t){let n=(Array.isArray(e)?e.join(`,`):e??``)+`|`+(t.dateStyle??``)+`|`+(t.timeStyle??``)+`|`+(t.year??``)+`|`+(t.month??``)+`|`+(t.day??``)+`|`+(t.hour??``)+`|`+(t.minute??``)+`|`+(t.second??``)+`|`+(t.weekday??``)+`|`+(t.hour12??``),r=Da.get(n);return r||(r=new Intl.DateTimeFormat(e,t),Da.set(n,r)),r}function ka(e,t){let n=typeof e==`number`?e:Number(e);if(!Number.isFinite(n))return String(e??``);let r=t.locales;if(t.type===`currency`)return Ea(r,{style:`currency`,currency:t.currency??`USD`,...t.options}).format(n);if(t.type===`percent`){let e=t.valueIsPercentPoints===!0?n/100:n;return Ea(r,{style:`percent`,minimumFractionDigits:0,maximumFractionDigits:2,...t.options}).format(e)}return Ea(r,t.options??{}).format(n)}var Aa={arrows:[`↓`,`→`,`↑`],traffic:[`🔴`,`🟡`,`🟢`],triangles:[`▼`,`◆`,`▲`]};function ja(e){let t=1/0,n=-1/0,r=!1;for(let i of e){if(i==null||i===``)continue;let e=Number(i);Number.isFinite(e)&&(r=!0,e<t&&(t=e),e>n&&(n=e))}return r?{min:t,max:n}:null}function Ma(e,t,n){let r=0;for(let e=0;e<t.length;e+=1)n>=t[e]&&(r=e+1);return e[Math.min(e.length-1,Math.max(0,r))]??e[e.length-1]}function Na(e){return e<0?0:e>1?1:e}function Pa(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return[n>>16&255,n>>8&255,n&255]}function Fa(e){return`#`+e.map(e=>Math.round(Na(e/255)*255).toString(16).padStart(2,`0`)).join(``)}function Ia(e){let t=Pa(e);if(!t)return null;let n=t.map(e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return .2126*n[0]+.7152*n[1]+.0722*n[2]>.45?`#1e293b`:`#ffffff`}function La(e,t,n){let r=Pa(e),i=Pa(t);if(!r||!i)return e;let a=Na(n);return Fa([r[0]+(i[0]-r[0])*a,r[1]+(i[1]-r[1])*a,r[2]+(i[2]-r[2])*a])}function Ra(e,t){return e.mid?t<=.5?La(e.min,e.mid,t/.5):La(e.mid,e.max,(t-.5)/.5):La(e.min,e.max,t)}function za(e,t,n,r,i){let a={};for(let o of r){if(o.columns&&!o.columns.includes(n))continue;let r=Number(e);if(o.type===`rule`){if(o.when({value:e,row:t})){if(o.background&&(a.background=o.background,!o.color)){let e=Ia(o.background);e&&(a.color=e)}o.color&&(a.color=o.color),o.fontWeight!=null&&(a.fontWeight=o.fontWeight)}continue}if(!(e==null||e===``||!Number.isFinite(r))){if(o.type===`colorScale`){let e=o.minValue??i?.min??r,t=o.maxValue??i?.max??r;a.background=Ra(o,t===e?.5:Na((r-e)/(t-e)));let n=Ia(a.background);n&&(a.color=n)}else if(o.type===`dataBar`){let e=o.minValue??Math.min(0,i?.min??0),t=(o.maxValue??i?.max??r)-e||1;a.dataBar={percent:Na((r-e)/t)*100,color:r<0?o.negativeColor??`#ef4444`:o.color,fromRight:!1},o.showValue===!1&&(a.color=`transparent`)}else if(o.type===`iconSet`){let e=Aa[o.set??`arrows`];a.icon=Ma(e,o.thresholds,r),o.iconOnly&&(a.iconOnly=!0)}}}return a}function Ba(e){return e.some(e=>e.type===`colorScale`||e.type===`dataBar`)}function Va(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e==`number`&&Number.isFinite(e)){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}if(typeof e==`string`&&e.trim()!==``){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}function Ha(e,t){if(e==null)return``;if(!t)return String(e);if(t.type===`number`||t.type===`currency`||t.type===`percent`)return ka(e,{type:t.type,locales:t.locales,currency:t.type===`currency`?t.currency??`USD`:void 0,valueIsPercentPoints:t.type===`percent`?t.valueIsPercentPoints:void 0,options:t.options});if(t.type===`date`||t.type===`datetime`){let n=Va(e);if(n){let e=wa(t.pattern,t.type),r=e||t.options?{...e,...t.options}:t.type===`date`?{year:`numeric`,month:`2-digit`,day:`2-digit`}:{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};return Oa(t.locales,r).format(n)}}return String(e)}function Ua(e,t,n={}){let r=n.columns&&n.columns.length?n.columns.map(e=>t.find(t=>t.field===e)).filter(e=>!!e):t.filter(e=>e.field),i=r.map(e=>e.field),a={};for(let e of r)e.align&&(a[e.field]=e.align);let o={};for(let e of r)o[e.field]=e.header;let s=[o];for(let t of e){let e={};for(let i of r){let r=t[i.field];e[i.field]=n.rawValues?r:Ha(r,i.format)}s.push(e)}return{records:s,fields:i,align:a}}var Wa=``;function Ga(e){if(e?.aborted)throw new DOMException(`Export aborted`,`AbortError`)}var Ka=()=>new Promise(e=>setTimeout(e,0));function qa(e,t){let n=e==null?``:e instanceof Date?e.toISOString():String(e);return n===``?n:n.includes(t)||n.includes(`"`)||n.includes(`
|
|
3
|
-
`)||n.includes(`\r`)?`"${n.replace(/"/g,`""`)}"`:n}async function Ja(e,t,n={}){let r=n.csv?.delimiter??`,`,i=n.csv?.eol??`\r
|
|
4
|
-
`,a=n.csv?.bom??!0,o=Math.max(1,n.chunkRows??5e3),s=e.length,c=[];for(let i=0;i<e.length;i++){Ga(n.signal);let a=e[i];c.push(t.map(e=>qa(a[e],r)).join(r)),i>0&&i%o===0&&(n.onProgress?.({phase:`serialize`,ratio:i/s,row:i,total:s}),await Ka())}n.onProgress?.({phase:`serialize`,ratio:1,row:s,total:s});let l=c.join(i);return(a?Wa:``)+l}async function Ya(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length-1,a=[];for(let o=1;o<e.length;o++){Ga(n.signal);let s=e[o],c={};for(let e of t)c[e]=s[e];a.push(c),o>0&&o%r===0&&(n.onProgress?.({phase:`serialize`,ratio:o/i,row:o,total:i}),await Ka())}return n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),JSON.stringify(a,null,2)}function Xa(e){return(e==null?``:e instanceof Date?e.toISOString():String(e)).replace(/\\/g,`\\\\`).replace(/\|/g,`\\|`).replace(/\r?\n/g,`<br>`)}async function Za(e,t,n={}){let r=Math.max(1,n.chunkRows??5e3),i=e.length,a=n.align??{},o=e[0],s=`| ${t.map(e=>Xa(o?.[e])).join(` | `)} |`,c=`| ${t.map(e=>{let t=a[e];return t===`right`?`---:`:t===`center`?`:--:`:`---`}).join(` | `)} |`,l=[];for(let a=1;a<e.length;a++){Ga(n.signal);let o=e[a];l.push(`| ${t.map(e=>Xa(o[e])).join(` | `)} |`),a>0&&a%r===0&&(n.onProgress?.({phase:`serialize`,ratio:a/i,row:a,total:i}),await Ka())}return n.onProgress?.({phase:`serialize`,ratio:1,row:i,total:i}),[s,c,...l].join(`
|
|
5
|
-
`)+`
|
|
6
|
-
`}function Qa(e,t){if(typeof document>`u`||typeof URL>`u`)throw Error(`@svgrid/grid: export requires a browser environment`);let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),0)}function $a(e,t,n){if(typeof document>`u`||typeof URL>`u`)throw Error(`@svgrid/grid: text export requires a browser environment`);Qa(new Blob([e],{type:n}),t)}async function eo(e){if(typeof navigator>`u`||!navigator.clipboard)throw Error(`@svgrid/grid: clipboard API is unavailable in this context`);await navigator.clipboard.writeText(e)}function to(e,t,n){let r=n.map(e=>e.getCellValueByColumnId(t));if(typeof e==`function`)return e(r.map(e=>Number(e)).filter(e=>Number.isFinite(e)),n.map(e=>e.original));if(e===`count`)return n.length;if(e===`countDistinct`)return new Set(r.map(e=>String(e??``))).size;if(e===`first`)return r[0];let i=r.map(e=>Number(e)).filter(e=>Number.isFinite(e));if(i.length)switch(e){case`sum`:return i.reduce((e,t)=>e+t,0);case`avg`:return i.reduce((e,t)=>e+t,0)/i.length;case`min`:return Math.min(...i);case`max`:return Math.max(...i);case`extent`:return`${Math.min(...i)} – ${Math.max(...i)}`;default:return}}function no(e){let t=e,n=new Set;return{get state(){return t},setState(e){t=e(t),n.forEach(e=>e())},subscribe(e){return n.add(e),()=>n.delete(e)}}}var ro={key:`rowSortingFeature`},io={key:`columnFilteringFeature`},ao={key:`columnGroupingFeature`};function oo(e){return e}var so={auto:(e,t)=>String(e).localeCompare(String(t)),number:(e,t)=>Number(e??0)-Number(t??0),date:(e,t)=>new Date(e).getTime()-new Date(t).getTime()},co={includesString:(e,t)=>String(e).toLowerCase().includes(t.toLowerCase()),equals:(e,t)=>e===t};function lo(){return({rows:e})=>e}function uo(){return({table:e,rows:t})=>{let n=e.getState().columnFilters??[];return n.length?t.filter(e=>n.every(t=>{let n=e.getAllCells().find(e=>e.column.id===t.id)?.getValue();return(t.fn?co[t.fn]:co.includesString)(n,t.value)})):t}}function fo(){return({table:e,rows:t})=>{let n=e.getState().grouping??[];if(!n.length)return t;let r=e.getAllColumns();function i(t,a,o,s){if(a>=n.length)return t.map(e=>({...e,depth:o}));let c=n[a];if(!c)return t;let l=new Map;for(let e of t){let t=e.getCellValueByColumnId(c),n=String(t??``),r=l.get(n)??[];r.push(e),l.set(n,r)}let u=[],d=0;return l.forEach((t,l)=>{let f=`${s}_${c}_${l}`,p=i(t,a+1,o+1,f),m=a+1>=n.length?p.length:p.reduce((e,t)=>e+(t.leafCount??0),0),h=e=>{if(e===c)return l;let n,r=!1;for(let i of t){let t=i.getCellValueByColumnId(e);if(!r)n=t,r=!0;else if(t!==n)return}return n},g={};r.forEach(e=>{let n=e.columnDef.field;if(!n)return;let r=e.columnDef.aggregate;g[n]=r?to(r,e.id,t):h(e.id)});let _={id:f,index:d++,original:g,depth:o,subRows:p,leafCount:m,getCanExpand:()=>!0,getIsExpanded:()=>!!(e.getState().expanded??{})[f],toggleExpanded:()=>{e.setExpanded(e=>({...e,[f]:!e[f]}))},getIsSelected:()=>!!(e.getState().rowSelection??{})[f],toggleSelected:()=>{e.setRowSelection(e=>({...e,[f]:!e[f]}))},getAllCells:()=>[],getCellValueByColumnId:e=>{let t=r.find(t=>t.id===e)?.columnDef.field;return t&&t in g?g[t]:h(e)}};u.push(_)}),u}return i(t,0,0,`group`)}}function po(){return({table:e,rows:t})=>{let n=e.getState().expanded??{},r=[],i=e=>{if(r.push(e),e.subRows?.length&&n[e.id])for(let t of e.subRows)i(t)};for(let e of t)i(e);return r}}function mo(e=so){return({table:t,rows:n})=>{let r=t.getState().sorting??[];return r.length?[...n].sort((n,i)=>{for(let a of r){let r=t.getAllColumns().find(e=>e.id===a.id);if(!r)continue;let o=r.columnDef.editorType,s=(o===`number`?e.number:o===`date`||o===`datetime`?e.date:e.auto)(n.getCellValueByColumnId(r.id),i.getCellValueByColumnId(r.id));if(s!==0)return a.desc?-s:s}return 0}):n}}function ho(e){let t=no({sorting:[],columnFilters:[],pagination:{pageIndex:0,pageSize:e.data.length||10},grouping:[],expanded:{},rowSelection:{},activeCell:{rowIndex:0,colIndex:0,cellId:null},...e.state??{}}),n=no(e),r=null,i=[],a=[],o=null,s=null,c=[],l=null,u=null,d=e._rowModels,f=null,p={store:t,optionsStore:n,get state(){return t.state},getState(){return t.state},setOptions(e){n.setState(t=>typeof e==`function`?e(t):e)},setColumnFilters(n){t.setState(e=>({...e,columnFilters:typeof n==`function`?n(e.columnFilters??[]):n})),e.onColumnFiltersChange?.(n)},setPagination(n){t.setState(e=>({...e,pagination:typeof n==`function`?n(e.pagination??{pageIndex:0,pageSize:10}):n})),e.onPaginationChange?.(n)},setGrouping(n){t.setState(e=>({...e,grouping:typeof n==`function`?n(e.grouping??[]):n})),e.onGroupingChange?.(n)},setExpanded(n){t.setState(e=>({...e,expanded:typeof n==`function`?n(e.expanded??{}):n})),e.onExpandedChange?.(n)},setRowSelection(n){t.setState(e=>({...e,rowSelection:typeof n==`function`?n(e.rowSelection??{}):n})),e.onRowSelectionChange?.(n)},setActiveCell(n){t.setState(e=>{let t=e.activeCell??{rowIndex:0,colIndex:0,cellId:null},r=typeof n==`function`?n(t):n;return{...e,activeCell:r}}),e.onActiveCellChange?.(n)},moveActiveCell(e){let t=p.getRowModel().rows,n=p.getAllColumns(),r=Math.max(t.length-1,0),i=Math.max(n.length-1,0),a=p.getState().activeCell??{rowIndex:0,colIndex:0,cellId:null},o=Math.min(Math.max(a.rowIndex+(e.rowDelta??0),0),r),s=Math.min(Math.max(a.colIndex+(e.colDelta??0),0),i),c=n[s]?.id??`col_0`;p.setActiveCell({rowIndex:o,colIndex:s,cellId:`${o}_${c}`})},getAllColumns(){if(r===e.columns&&i.length)return i;if(r&&e.columns.length===r.length&&i.length===e.columns.length&&e.columns.every((e,t)=>{let n=r[t];return e.field===n.field&&e.id===n.id&&e.header===n.header&&e.editorType===n.editorType}))return r=e.columns,i;r=e.columns,a=[];let n=(r,i,a)=>{let o=[];return r.forEach((r,s)=>{let c=r.id??r.field??`${a??`col`}_${i}_${s}`;if(r.columns?.length){o.push(...n(r.columns,i+1,c));return}o.push({id:c,depth:i,parentId:a,columnDef:r,getCanSort:()=>!!e._features.rowSortingFeature&&r.sortable!==!1,getCanFilter:()=>!!e._features.columnFilteringFeature&&r.filterable!==!1,getIsSorted:()=>{let e=t.state.sorting?.find(e=>e.id===c);return e?e.desc?`desc`:`asc`:!1},getToggleSortingHandler:()=>()=>{let n=t.state.sorting??[],r=n.find(e=>e.id===c),i=r?r.desc?n.filter(e=>e.id!==c):n.map(e=>e.id===c?{...e,desc:!0}:e):[...n,{id:c,desc:!1}];t.setState(e=>({...e,sorting:i})),e.onSortingChange?.(i)}})}),o};return i=n(e.columns,0),i},getHeaderGroups(){return a.length||(a=[{id:`header_group_0`,headers:p.getAllColumns().map(e=>{let t={id:e.id,isPlaceholder:!1,colSpan:1,column:e,getContext:()=>({header:t,column:e,table:p})};return t})}]),a},getFooterGroups(){return p.getHeaderGroups()},getRowModel(){let n=p.getAllColumns();if(o!==e.data||s!==n){o=e.data,s=n;let r=new Map;for(let e=0;e<n.length;e++)r.set(n[e].id,e);let i=n.length;c=Array(e.data.length);let a=e.getRowId;for(let o=0;o<e.data.length;o++){let s=e.data[o],l=a?a(s,o):String(o),u=null,d=null;function f(){let e=Array(i);for(let t=0;t<i;t++){let r=n[t];r.columnDef.fieldFn?e[t]=r.columnDef.fieldFn(s):r.columnDef.field?e[t]=s[r.columnDef.field]:e[t]=void 0}return e}let m={id:l,index:o,original:s,depth:0,getCanExpand:()=>!1,getIsExpanded:()=>!!(t.state.expanded??{})[l],toggleExpanded:()=>{p.setExpanded(e=>({...e,[l]:!e[l]}))},getIsSelected:()=>!!(t.state.rowSelection??{})[l],toggleSelected:()=>{p.setRowSelection(e=>({...e,[l]:!e[l]}))},getAllCells:()=>{if(d)return d;let e=Array(i);for(let t=0;t<i;t++){let r=n[t],i=t,a={id:`${l}_${r.id}`,row:m,column:r,getValue:()=>(u||=f(),u[i]),getContext:()=>({cell:a,row:m,column:r,table:p,getValue:()=>a.getValue()})};e[t]=a}return d=e,e},getCellValueByColumnId:e=>{let t=r.get(e);if(t!==void 0)return u||=f(),u[t]}};c[o]=m}}let r={sorting:t.state.sorting,columnFilters:t.state.columnFilters,pagination:t.state.pagination,grouping:t.state.grouping,expanded:t.state.expanded,rowSelection:t.state.rowSelection};if(l&&u===c&&d===e._rowModels&&f?.sorting===r.sorting&&f?.columnFilters===r.columnFilters&&f?.pagination===r.pagination&&f?.grouping===r.grouping&&f?.expanded===r.expanded&&f?.rowSelection===r.rowSelection)return l;let i=c,a=e._rowModels??{};return[a.coreRowModel,a.filteredRowModel,a.sortedRowModel,a.groupedRowModel,a.expandedRowModel,a.paginatedRowModel].forEach(e=>{e&&(i=e({table:p,rows:i}))}),d=e._rowModels,f=r,u=c,l={rows:i},l}};return p}function go(e,t=()=>({})){let n=ho(e),r=I(un(t(n.store.state)));return n.store.subscribe(()=>{L(r,t(n.store.state),!0)}),Object.defineProperty(n,"state",{get(){return H(r)},configurable:!0,enumerable:!0}),n}var _o=16,vo=280,yo=50,bo=`http://www.w3.org/2000/svg`;function xo(){let e=document.createElementNS(bo,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`3`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`);let t=document.createElementNS(bo,`path`);return t.setAttribute(`d`,`M6 9l6 6 6-6`),e.appendChild(t),e}var So=`
|
|
7
|
-
:host {
|
|
8
|
-
display: flex;
|
|
9
|
-
user-select: none;
|
|
10
|
-
background: var(--sg-scrollbar-bg, #eef2f8);
|
|
11
|
-
/* The 1px separator is drawn on the INNER edge only (the edge facing
|
|
12
|
-
the grid body) via the orientation rules below. A full inset box
|
|
13
|
-
here doubled up with the grid's own frame border on the outer edge,
|
|
14
|
-
reading as a 2px border - most visible in dense-gridline themes
|
|
15
|
-
like Excel, which should show a single 1px line. */
|
|
16
|
-
/* Start hidden + non-interactive - viewport/content sizes are 0 until
|
|
17
|
-
after the first layout pass, so without this default the scrollbar
|
|
18
|
-
paints visible for one frame and then JS hides it on mount. That
|
|
19
|
-
flicker is what shows up as a "flashing horizontal scrollbar"
|
|
20
|
-
every time a demo first renders. updateGeometry() switches us to
|
|
21
|
-
opacity 1 the moment the grid genuinely has overflow. */
|
|
22
|
-
opacity: 0;
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
transition: opacity 120ms ease;
|
|
25
|
-
}
|
|
26
|
-
:host([orientation="vertical"]) {
|
|
27
|
-
flex-direction: column;
|
|
28
|
-
width: ${_o}px;
|
|
29
|
-
/* LTR: vertical scrollbar sits at the right, inner edge is the left. */
|
|
30
|
-
box-shadow: inset 1px 0 0 0 var(--sg-scrollbar-border, rgba(15, 23, 42, 0.04));
|
|
31
|
-
}
|
|
32
|
-
:host([orientation="vertical"]:dir(rtl)) {
|
|
33
|
-
/* RTL flips the scrollbar to the left, so the inner edge is the right. */
|
|
34
|
-
box-shadow: inset -1px 0 0 0 var(--sg-scrollbar-border, rgba(15, 23, 42, 0.04));
|
|
35
|
-
}
|
|
36
|
-
:host([orientation="horizontal"]) {
|
|
37
|
-
flex-direction: row;
|
|
38
|
-
height: ${_o}px;
|
|
39
|
-
/* Horizontal scrollbar sits at the bottom, inner edge is the top. */
|
|
40
|
-
box-shadow: inset 0 1px 0 0 var(--sg-scrollbar-border, rgba(15, 23, 42, 0.04));
|
|
41
|
-
}
|
|
42
|
-
.arrow {
|
|
43
|
-
flex: none;
|
|
44
|
-
display: flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
justify-content: center;
|
|
47
|
-
width: ${_o}px;
|
|
48
|
-
height: ${_o}px;
|
|
49
|
-
margin: 0;
|
|
50
|
-
padding: 0;
|
|
51
|
-
border: 0;
|
|
52
|
-
border-radius: 3px;
|
|
53
|
-
background: transparent;
|
|
54
|
-
color: var(--sg-scrollbar-arrow, #64748b);
|
|
55
|
-
cursor: pointer;
|
|
56
|
-
transition: background-color 100ms ease, color 100ms ease;
|
|
57
|
-
}
|
|
58
|
-
.arrow:hover {
|
|
59
|
-
background: var(--sg-scrollbar-arrow-hover-bg, #dde4ee);
|
|
60
|
-
color: var(--sg-scrollbar-arrow-hover, #1f2937);
|
|
61
|
-
}
|
|
62
|
-
.arrow:active {
|
|
63
|
-
background: var(--sg-scrollbar-arrow-active-bg, #c7d1df);
|
|
64
|
-
color: var(--sg-scrollbar-arrow-active, #0f172a);
|
|
65
|
-
}
|
|
66
|
-
.arrow:disabled {
|
|
67
|
-
color: var(--sg-scrollbar-arrow-disabled, #cbd5e1);
|
|
68
|
-
cursor: default;
|
|
69
|
-
}
|
|
70
|
-
.arrow:disabled:hover {
|
|
71
|
-
background: transparent;
|
|
72
|
-
}
|
|
73
|
-
.arrow svg {
|
|
74
|
-
width: 10px;
|
|
75
|
-
height: 10px;
|
|
76
|
-
display: block;
|
|
77
|
-
}
|
|
78
|
-
:host([orientation="vertical"]) .arrow-start svg {
|
|
79
|
-
transform: rotate(180deg);
|
|
80
|
-
}
|
|
81
|
-
:host([orientation="horizontal"]) .arrow-start svg {
|
|
82
|
-
transform: rotate(90deg);
|
|
83
|
-
}
|
|
84
|
-
:host([orientation="horizontal"]) .arrow-end svg {
|
|
85
|
-
transform: rotate(-90deg);
|
|
86
|
-
}
|
|
87
|
-
.track {
|
|
88
|
-
position: relative;
|
|
89
|
-
flex: 1 1 0;
|
|
90
|
-
min-width: 0;
|
|
91
|
-
min-height: 0;
|
|
92
|
-
}
|
|
93
|
-
.thumb {
|
|
94
|
-
position: absolute;
|
|
95
|
-
border-radius: var(--sg-scrollbar-thumb-radius, 6px);
|
|
96
|
-
background: var(--sg-scrollbar-thumb, #b1bccd);
|
|
97
|
-
cursor: pointer;
|
|
98
|
-
transition: background-color 100ms ease;
|
|
99
|
-
}
|
|
100
|
-
.thumb:hover {
|
|
101
|
-
background: var(--sg-scrollbar-thumb-hover, #8693a7);
|
|
102
|
-
}
|
|
103
|
-
.thumb:active {
|
|
104
|
-
background: var(--sg-scrollbar-thumb-active, #64748b);
|
|
105
|
-
}
|
|
106
|
-
:host([orientation="vertical"]) .thumb {
|
|
107
|
-
left: 3px;
|
|
108
|
-
right: 3px;
|
|
109
|
-
}
|
|
110
|
-
:host([orientation="horizontal"]) .thumb {
|
|
111
|
-
top: 3px;
|
|
112
|
-
bottom: 3px;
|
|
113
|
-
}
|
|
114
|
-
`,Co=typeof HTMLElement<`u`?HTMLElement:class{},wo=class extends Co{constructor(...e){super(...e),this.dragging=!1,this.dragStart=0,this.valueStart=0,this.holdTimer=null,this.resizeObserver=null,this.resizeFrame=0,this.onArrowStartPointerDown=e=>{e.preventDefault(),this.startHold(-1)},this.onArrowEndPointerDown=e=>{e.preventDefault(),this.startHold(1)},this.stopHold=()=>{this.holdTimer!==null&&(clearTimeout(this.holdTimer),clearInterval(this.holdTimer),this.holdTimer=null)},this.onThumbPointerDown=e=>{e.preventDefault(),this.dragging=!0,this.dragStart=this.orientation===`vertical`?e.clientY:e.clientX,this.valueStart=this.value,document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.onPointerUp)},this.onTrackPointerDown=e=>{if(e.target===this.thumb)return;let t=this.track.getBoundingClientRect(),n=this.orientation===`vertical`?e.clientY-t.top:e.clientX-t.left,r=this.orientation===`vertical`?t.height:t.width,i=this.computeThumbSize(r),a=Math.max(r-i,1),o=Math.min(Math.max(n-i/2,0),a);this.emitScroll(o/a*this.maxValue)},this.onPointerMove=e=>{if(!this.dragging)return;let t=(this.orientation===`vertical`?e.clientY:e.clientX)-this.dragStart,n=this.track.getBoundingClientRect(),r=this.orientation===`vertical`?n.height:n.width,i=this.computeThumbSize(r),a=Math.max(r-i,1);this.emitScroll(this.valueStart+t/a*this.maxValue)},this.onPointerUp=()=>{this.dragging=!1,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp)}}static get observedAttributes(){return[`orientation`,`viewport-size`,`content-size`,`value`,`step`]}connectedCallback(){if(this.shadowRoot)return;let e=this.attachShadow({mode:`open`}),t=document.createElement(`style`);t.textContent=So,this.startArrow=this.createArrow(`start`),this.endArrow=this.createArrow(`end`),this.track=document.createElement(`div`),this.track.className=`track`,this.thumb=document.createElement(`div`),this.thumb.className=`thumb`,this.track.appendChild(this.thumb),e.append(t,this.startArrow,this.track,this.endArrow),this.thumb.addEventListener(`pointerdown`,this.onThumbPointerDown),this.track.addEventListener(`pointerdown`,this.onTrackPointerDown),this.startArrow.addEventListener(`pointerdown`,this.onArrowStartPointerDown),this.endArrow.addEventListener(`pointerdown`,this.onArrowEndPointerDown);for(let e of[this.startArrow,this.endArrow])e.addEventListener(`pointerup`,this.stopHold),e.addEventListener(`pointerleave`,this.stopHold),e.addEventListener(`pointercancel`,this.stopHold);this.resizeObserver=new ResizeObserver(()=>{this.resizeFrame||=requestAnimationFrame(()=>{this.resizeFrame=0,this.render()})}),this.resizeObserver.observe(this),this.render()}disconnectedCallback(){this.stopHold(),this.resizeFrame&&cancelAnimationFrame(this.resizeFrame),this.resizeFrame=0,this.resizeObserver?.disconnect(),this.resizeObserver=null,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.onPointerUp)}attributeChangedCallback(){this.render()}get orientation(){return this.getAttribute(`orientation`)===`horizontal`?`horizontal`:`vertical`}get viewportSize(){return Number(this.getAttribute(`viewport-size`)||`0`)}get contentSize(){return Number(this.getAttribute(`content-size`)||`0`)}get value(){return Number(this.getAttribute(`value`)||`0`)}get step(){let e=Number(this.getAttribute(`step`)||`40`);return e>0?e:40}get maxValue(){return Math.max(this.contentSize-this.viewportSize,0)}getTrackLength(){let e=this.track.getBoundingClientRect(),t=this.orientation===`vertical`?e.height:e.width;return t>0?t:Math.max(this.viewportSize-_o*2,1)}computeThumbSize(e){if(this.contentSize<=0||this.viewportSize<=0||e<=0)return 0;let t=Math.min(this.viewportSize/this.contentSize,1);return Math.max(20,t*e)}createArrow(e){let t=document.createElement(`button`);return t.type=`button`,t.className=`arrow arrow-${e}`,t.setAttribute(`aria-label`,e===`start`?`Scroll back`:`Scroll forward`),t.appendChild(xo()),t}startHold(e){this.stopHold();let t=()=>this.emitScroll(this.value+e*this.step);t(),this.holdTimer=setTimeout(()=>{this.holdTimer=setInterval(t,yo)},vo)}emitScroll(e){let t=Math.min(Math.max(e,0),this.maxValue);this.dispatchEvent(new CustomEvent(`scroll-change`,{detail:{value:t},bubbles:!0,composed:!0}))}render(){if(!this.shadowRoot)return;let e=this.viewportSize,t=this.contentSize<=e||e<=0;this.style.opacity=t?`0`:`1`,this.style.pointerEvents=t?`none`:`auto`;let n=this.getTrackLength(),r=this.computeThumbSize(n),i=this.maxValue,a=(i>0?this.value/i:0)*Math.max(n-r,0);this.orientation===`vertical`?(this.thumb.style.height=`${r}px`,this.thumb.style.transform=`translateY(${a}px)`):(this.thumb.style.width=`${r}px`,this.thumb.style.transform=`translateX(${a}px)`),this.startArrow.disabled=t||this.value<=0,this.endArrow.disabled=t||this.value>=i}};typeof window<`u`&&!customElements.get(`sv-grid-scrollbar`)&&customElements.define(`sv-grid-scrollbar`,wo);var To=class{constructor(e,t){this.component=e,this.props=t}},Eo=class{constructor(e,t){this.snippet=e,this.params=t}},Do=(e,t)=>new Eo(e,t),Oo={width:88,height:22,color:`var(--sg-accent, #2563eb)`,negativeColor:`#ef4444`,lineWidth:1.5};function ko(e){return Array.isArray(e)?e.map(e=>Number(e)).filter(e=>Number.isFinite(e)):typeof e==`string`&&e.trim()?e.split(/[,\s]+/).map(e=>Number(e)).filter(e=>Number.isFinite(e)):[]}function Ao(e,t={}){if(!e.length)return null;let n=t.width??Oo.width,r=t.height??Oo.height,i=t.type??`line`,a=t.color??Oo.color,o=t.negativeColor??Oo.negativeColor,s=t.lineWidth??Oo.lineWidth,c=Math.ceil(s)+1,l=Math.max(1,n-c*2),u=Math.max(1,r-c*2),d={width:n,height:r,type:i,color:a,negativeColor:o,lineWidth:s};if(i===`winloss`){let t=e.length,n=t>1?Math.min(2,l/t/3):0,i=l/t,a=Math.max(1,i-n),o=r/2,s=u/2,f=e.map((e,t)=>{let n=c+t*i+(i-a)/2;return e>0?{x:n,y:o-s,w:a,h:s,negative:!1}:e<0?{x:n,y:o,w:a,h:s,negative:!0}:{x:n,y:o-1,w:a,h:2,negative:!1}});return{...d,linePath:``,areaPath:``,bars:f,lastPoint:null}}let f=t.min??Math.min(...e),p=t.max??Math.max(...e),m=p-f||1;if(i===`bar`){let t=e.length,n=t>1?Math.min(2,l/t/3):0,r=l/t,i=Math.max(1,r-n),a=f<0&&p>0?0:f,o=c+u-(a-f)/m*u,s=e.map((e,t)=>{let n=c+t*r+(r-i)/2,s=c+u-(e-f)/m*u;return{x:n,y:Math.min(s,o),w:i,h:Math.max(1,Math.abs(s-o)),negative:e<a}});return{...d,linePath:``,areaPath:``,bars:s,lastPoint:null}}let h=e.length,g=h>1?l/(h-1):0,_=e.map((e,t)=>({x:h===1?c+l/2:c+t*g,y:c+u-(e-f)/m*u})),v=h===1?`M${jo(_[0].x-1)},${jo(_[0].y)} L${jo(_[0].x+1)},${jo(_[0].y)}`:_.map((e,t)=>`${t===0?`M`:`L`}${jo(e.x)},${jo(e.y)}`).join(` `),y=_[0],b=_[_.length-1],x=c+u,S=i===`area`?`${v} L${jo(b.x)},${jo(x)} L${jo(y.x)},${jo(x)} Z`:``;return{...d,linePath:v,areaPath:S,bars:[],lastPoint:t.lastPoint===!1?null:{x:b.x,y:b.y}}}function jo(e){return Math.round(e*100)/100}var Mo=[`--sg-accent`,`--sg-on-accent`,`--sg-bg`,`--sg-fg`,`--sg-muted`,`--sg-border`,`--sg-header-bg`,`--sg-header-fg`,`--sg-row-hover-bg`,`--sg-row-alt-bg`,`--sg-selection-bg`,`--sg-selection-fg`,`--sg-input-bg`,`--sg-input-border`,`--sg-danger`,`--sg-focus-ring`,`--sg-radius`,`--sg-font`,`--sg-invalid-bg`,`--sg-invalid-border`,`--sg-invalid-fg`,`--sg-rating-on`,`--sg-rating-empty`,`--sg-rating-hover`];function No(e,t=Mo){let n=getComputedStyle(e);for(let r of t){let t=n.getPropertyValue(r).trim();t&&e.style.setProperty(r,t)}return document.body.appendChild(e),{destroy(){e.parentNode===document.body&&document.body.removeChild(e)}}}function Po(e,t={}){if(typeof e.animate!=`function`||typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let n=t.up?6:-6,r=t.scale??.97;return e.animate([{opacity:0,transform:`translateY(${n}px) scale(${r})`},{opacity:1,transform:`translateY(0) scale(1)`}],{duration:t.duration??140,easing:`cubic-bezier(0.16, 1, 0.3, 1)`}),{}}function Fo(e,t){let n=t.gap??2,r=window.innerHeight-e.bottom,i=e.top,a=r<t.estimatedHeight&&i>r,o=Math.max(e.width,t.minWidth??0),s=e.left;if(t.clampHorizontal!==!1){let e=window.innerWidth-o-4;s=Math.max(4,Math.min(s,e))}return{top:a?e.top-t.estimatedHeight-n:e.bottom+n,left:s,width:o,openUpward:a}}var Io=W(`<span class="sv-grid-chip sv-grid-chip-removable svelte-pda97a"> <span class="sv-grid-chip-remove svelte-pda97a" role="button">×</span></span>`),Lo=W(`<span class="sv-grid-dropdown-chips svelte-pda97a"></span>`),Ro=W(`<span class="sv-grid-chip svelte-pda97a"> </span>`),zo=W(`<span class="sv-grid-dropdown-label svelte-pda97a"> </span>`),Bo=W(`<input type="search" class="sv-grid-dropdown-search" placeholder="Search…"/>`),Vo=W(`<div class="sv-grid-dropdown-empty"> </div>`),Ho=W(`<span class="sv-grid-dropdown-check" aria-hidden="true"> </span>`),Uo=W(`<span class="sv-grid-dropdown-option-chip"> </span>`),Wo=W(`<span class="sv-grid-dropdown-option-label"> </span>`),Go=W(`<div role="option"><!> <!></div>`),Ko=W(`<div class="sv-grid-dropdown-footer"><button type="button" class="sv-grid-dropdown-done">Done</button></div>`),qo=W(`<div role="listbox"><!> <!> <!></div>`),Jo=W(`<div><button type="button" aria-haspopup="listbox"><!> <span class="sv-grid-dropdown-caret svelte-pda97a" aria-hidden="true">▾</span></button> <!></div>`);function Yo(e,t){Ze(t,!0);let n=$(t,`multiple`,3,!1),r=$(t,`placeholder`,3,`Select…`),i=$(t,`renderChipsInTrigger`,3,!1),a=$(t,`searchable`,3,!1),o=$(t,`autoOpen`,3,!0),s=I(``),c=F(()=>!a()||!H(s).trim()?t.options:(()=>{let e=H(s).trim().toLowerCase();return t.options.filter(t=>t.label.toLowerCase().includes(e))})()),l=I(!1),u=I(-1),d=I(null),f=I(null),p=I(null),m=I(un({top:0,left:0,width:0,openUpward:!1})),h=F(()=>Array.isArray(t.value)?t.value:t.value==null||t.value===``?[]:[t.value]),g=F(()=>{if(H(h).length===0)return r();if(!n()){let e=H(h)[0],n=t.options.find(t=>String(t.value)===String(e));return n?n.label:String(e)}return`${H(h).length} selected`}),_=F(()=>{if(n()||H(h).length!==1)return;let e=H(h)[0];return t.options.find(t=>String(t.value)===String(e))?.color});function v(e){return H(h).some(t=>String(t)===String(e.value))}function y(e){if(n()){let n=v(e)?H(h).filter(t=>String(t)!==String(e.value)):[...H(h),e.value];t.onChange?.(n)}else t.onChange?.(e.value),L(l,!1),t.onCommit?.()}function b(){if(!H(l)){if(L(l,!0),H(u)<0){let e=t.options.findIndex(e=>v(e));L(u,e>=0?e:0,!0)}x()}}function x(){if(!H(f))return;let e=Math.min(t.options.length,10)*32+(n()?40:0)+8;L(m,Fo(H(f).getBoundingClientRect(),{estimatedHeight:e,clampHorizontal:!1}),!0)}Ln(()=>{if(!H(l))return;let e=()=>x();return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}});function S(){L(l,!1),L(u,-1)}function C(e){if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),S(),t.onCancel?.();return}if(e.key===`ArrowDown`){if(e.preventDefault(),!H(l)){b();return}L(u,Math.min(H(u)+1,t.options.length-1),!0),w()}else if(e.key===`ArrowUp`){if(e.preventDefault(),!H(l)){b();return}L(u,Math.max(H(u)-1,0),!0),w()}else if(e.key===`Home`){if(!H(l))return;e.preventDefault(),L(u,0),w()}else if(e.key===`End`){if(!H(l))return;e.preventDefault(),L(u,t.options.length-1),w()}else if(e.key===`Enter`){if(e.preventDefault(),!H(l)){b();return}let r=t.options[H(u)];r?y(r):n()&&(S(),t.onCommit?.())}else if(e.key===` `&&H(l)){e.preventDefault();let n=t.options[H(u)];n&&y(n)}else e.key===`Tab`&&(H(l)&&S(),t.onCommit?.())}function w(){queueMicrotask(()=>{H(p)&&H(p).querySelector(`[data-opt-idx="${H(u)}"]`)?.scrollIntoView({block:`nearest`})})}function T(e){let n=e.relatedTarget;n&&H(d)?.contains(n)||(H(l)&&S(),t.onCommit?.())}function E(e,r){r.preventDefault(),r.stopPropagation();let i=H(h).filter(t=>String(t)!==String(e));t.onChange?.(n()?i:i[0]??null)}function D(e){o()&&(e.focus(),b())}Ln(()=>{if(!H(l))return;let e=e=>{let n=e.target;n&&(H(d)?.contains(n)||H(p)?.contains(n)||(S(),t.onCommit?.()))};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)});function O(e){return`background: color-mix(in srgb, ${e} 22%, transparent);border-color: color-mix(in srgb, ${e} 45%, transparent);color: color-mix(in srgb, ${e} 80%, var(--sg-fg, #0f172a));`}var ee=Jo();let te;var ne=R(ee);let re;var ie=R(ne),ae=e=>{var n=Lo();Y(n,21,()=>H(h),e=>String(e),(e,n)=>{let r=F(()=>t.options.find(e=>String(e.value)===String(H(n))));var i=Io(),a=R(i),o=B(a);Q(o,`tabindex`,-1),N(i),V((e,t,n)=>{Ui(i,e),q(a,`${t??``} `),Q(o,`aria-label`,`Remove ${n??``}`)},[()=>H(r)?.color?O(H(r).color):``,()=>H(r)?H(r).label:String(H(n)),()=>H(r)?H(r).label:String(H(n))]),U(`mousedown`,o,e=>e.preventDefault()),U(`click`,o,e=>E(H(n),e)),K(e,i)}),N(n),K(e,n)},oe=e=>{var t=Ro(),n=R(t,!0);N(t),V(e=>{Ui(t,e),q(n,H(g))},[()=>O(H(_))]),K(e,t)},se=e=>{var t=zo(),n=R(t,!0);N(t),V(()=>q(n,H(g))),K(e,t)};J(ie,e=>{i()&&H(h).length>0?e(ae):!n()&&H(h).length===1&&H(_)?e(oe,1):e(se,-1)}),P(2),N(ne),ya(ne,e=>L(f,e),()=>H(f)),Mi(ne,e=>D?.(e));var ce=B(ne,2),le=e=>{let r=F(()=>t.options.length>10),i=F(()=>H(r)?320+(n()?40:0)+8:null);var o=qo();let d,f;var h=R(o),g=e=>{var n=Bo();Z(n),U(`mousedown`,n,e=>e.stopPropagation()),U(`click`,n,e=>e.stopPropagation()),U(`keydown`,n,e=>{e.key===`Escape`&&(e.preventDefault(),L(l,!1),t.onCancel?.())}),fa(n,()=>H(s),e=>L(s,e)),K(e,n)};J(h,e=>{a()&&e(g)});var _=B(h,2),b=e=>{var t=Vo(),n=R(t,!0);N(t),V(()=>q(n,a()&&H(s)?`No matches for "${H(s)}"`:`No options`)),K(e,t)},x=e=>{var t=ii();Y(z(t),19,()=>H(c),e=>String(e.value),(e,t,r)=>{let i=F(()=>v(H(t)));var a=Go();let o;var s=R(a),c=e=>{var t=Ho(),n=R(t,!0);N(t),V(()=>q(n,H(i)?`✓`:``)),K(e,t)};J(s,e=>{n()&&e(c)});var l=B(s,2),d=e=>{var n=Uo(),r=R(n,!0);N(n),V(e=>{Ui(n,e),q(r,H(t).label)},[()=>O(H(t).color)]),K(e,n)},f=e=>{var n=Wo(),r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)};J(l,e=>{H(t).color?e(d):e(f,-1)}),N(a),V(()=>{o=X(a,1,`sv-grid-dropdown-option`,null,o,{"sv-grid-dropdown-option-selected":H(i),"sv-grid-dropdown-option-highlighted":H(r)===H(u)}),Q(a,`aria-selected`,H(i)),Q(a,`data-opt-idx`,H(r))}),U(`mousedown`,a,e=>{e.preventDefault(),y(H(t))}),Jr(`mouseenter`,a,()=>L(u,H(r),!0)),K(e,a)}),K(e,t)};J(_,e=>{H(c).length===0?e(b):e(x,-1)});var C=B(_,2),w=e=>{var n=Ko(),r=R(n);N(n),U(`mousedown`,r,e=>e.preventDefault()),U(`click`,r,()=>{S(),t.onCommit?.()}),K(e,n)};J(C,e=>{n()&&e(w)}),N(o),ya(o,e=>L(p,e),()=>H(p)),Mi(o,e=>No?.(e)),Mi(o,(e,t)=>Po?.(e,t),()=>({up:H(m).openUpward})),V(()=>{d=X(o,1,`sv-grid-dropdown-panel`,null,d,{"sv-grid-dropdown-panel-fits":!H(r)}),Q(o,`aria-multiselectable`,n()),f=Ui(o,``,f,{position:`fixed`,top:`${H(m).top}px`,left:`${H(m).left}px`,width:`${H(m).width}px`,"max-height":H(i)===null?null:`${H(i)}px`,"z-index":`2147483647`})}),U(`pointerdown`,o,e=>e.stopPropagation()),U(`mousedown`,o,e=>e.stopPropagation()),U(`click`,o,e=>e.stopPropagation()),K(e,o)};J(ce,e=>{H(l)&&e(le)}),N(ee),ya(ee,e=>L(d,e),()=>H(d)),V(()=>{te=X(ee,1,`sv-grid-dropdown svelte-pda97a`,null,te,{"sv-grid-dropdown-open":H(l)}),re=X(ne,1,`sv-grid-dropdown-trigger svelte-pda97a`,null,re,{"sv-grid-dropdown-trigger-chips":i()&&H(h).length>0}),Q(ne,`aria-expanded`,H(l))}),U(`focusout`,ee,T),U(`click`,ee,e=>e.stopPropagation()),U(`dblclick`,ee,e=>e.stopPropagation()),U(`pointerdown`,ee,e=>e.stopPropagation()),U(`mousedown`,ee,e=>e.stopPropagation()),U(`click`,ne,()=>H(l)?S():b()),U(`keydown`,ne,C),K(e,ee),Qe()}Yr([`focusout`,`click`,`dblclick`,`pointerdown`,`mousedown`,`keydown`]);var Xo=e=>e?`${e}__error`:void 0,Zo=e=>e?`${e}__hint`:void 0,Qo=0,$o=(e=`sv-ed`)=>`${e}-${Qo++}`;function es(e){let t=[e.error?Xo(e.id):void 0,e.hint?Zo(e.id):void 0].filter(Boolean);return{"aria-invalid":e.invalid?`true`:void 0,"aria-required":e.required?`true`:void 0,"aria-describedby":t.length?t.join(` `):void 0,"aria-label":e.ariaLabel}}function ts(e,t){if(!t)return e;let n={...e};for(let e in t){let r=t[e];r!=null&&r!==``&&(n[e]=r)}return n}function ns(e){if(e==null)return null;let t=e instanceof Date?new Date(e.getTime()):new Date(e);return isNaN(t.getTime())?null:t}function rs(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function is(e){return new Date(e.getFullYear(),e.getMonth(),1)}function as(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function os(e){return as(e).getDate()}function ss(e,t=0){let n=rs(e),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function cs(e,t){return!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function ls(e,t){return!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function us(e,t){let n=rs(e).getTime(),r=rs(t).getTime();return n<r?-1:+(n>r)}function ds(e,t){let n=new Date(e.getTime());return n.setDate(n.getDate()+t),n}function fs(e,t){let n=e.getDate(),r=new Date(e.getFullYear(),e.getMonth()+t,1,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());return r.setDate(Math.min(n,os(r))),r}function ps(e,t){return fs(e,t*12)}function ms(e,t,n){return t&&e.getTime()<t.getTime()?new Date(t.getTime()):n&&e.getTime()>n.getTime()?new Date(n.getTime()):e}function hs(e){let t=rs(e),n=(t.getDay()+6)%7;t.setDate(t.getDate()-n+3);let r=new Date(t.getFullYear(),0,4),i=(r.getDay()+6)%7;r.setDate(r.getDate()-i+3);let a=t.getTime()-r.getTime();return 1+Math.round(a/(168*3600*1e3))}function gs(e){let t=Math.floor(e/10)*10;return{start:t,end:t+9}}function _s(e,t=0,n=6){let r=is(e),i=ss(r,t),a=[],o=i;for(let e=0;e<n;e++){let e=[],t=hs(o);for(let n=0;n<7;n++)e.push({date:o,inMonth:o.getMonth()===r.getMonth()&&o.getFullYear()===r.getFullYear(),week:t}),o=ds(o,1);a.push(e)}return a}function vs(e=0){return Array.from({length:7},(t,n)=>(e+n)%7)}function ys(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}var bs=()=>({dates:[],anchor:null,rangeStart:null});function xs(e,t){return e.some(e=>cs(e,t))}function Ss(e,t){let n=us(e,t)<=0?rs(e):rs(t),r=us(e,t)<=0?rs(t):rs(e),i=[],a=n;for(;us(a,r)<=0;)i.push(a),a=ds(a,1);return i}function Cs(e){let t=[];for(let n of e)t.some(e=>cs(e,n))||t.push(rs(n));return t.sort((e,t)=>e.getTime()-t.getTime()),t}function ws(e,t){return xs(e,t)?e.filter(e=>!cs(e,t)):[...e,rs(t)]}function Ts(e,t,n,r={},i=0){let a=rs(t),o=()=>({dates:[a],anchor:a,rangeStart:null});switch(n){case`none`:return{...e};case`default`:case`one`:return o();case`zeroOrOne`:return xs(e.dates,a)&&e.dates.length===1?bs():o();case`many`:case`zeroOrMany`:return{dates:Cs(ws(e.dates,a)),anchor:a,rangeStart:null};case`oneOrMany`:{let t=ws(e.dates,a);return{dates:Cs(t.length===0?[a]:t),anchor:a,rangeStart:null}}case`oneExtended`:return r.shift&&e.anchor?{dates:Ss(e.anchor,a),anchor:e.anchor,rangeStart:null}:r.ctrl?{dates:Cs(ws(e.dates,a)),anchor:a,rangeStart:null}:o();case`week`:{let e=ss(a,i);return{dates:Array.from({length:7},(t,n)=>ds(e,n)),anchor:e,rangeStart:null}}case`range`:return e.rangeStart?{dates:Ss(e.rangeStart,a),anchor:e.rangeStart,rangeStart:null}:{dates:[a],anchor:a,rangeStart:a};default:return o()}}function Es(e){if(!e)return[];let t=[];for(let n of e){let e=ns(n);e&&t.push(e)}return t}function Ds(e,t,n){let r=ns(t??null),i=ns(n??null);return!!(r&&us(e,r)<0||i&&us(e,i)>0)}function Os(e,t){return t?typeof t==`function`?t(e):Es(t).some(t=>cs(t,e)):!1}function ks(e,t){return Ds(e,t.min,t.max)||Os(e,t.restrictedDates)}function As(e,t){return t?typeof t==`function`?t(e):Es(t).some(t=>cs(t,e)):!1}var js=864e5,Ms=e=>Math.round(rs(e).getTime()/js);function Ns(e,t){let n=rs(e),r=t.from==null?null:rs(ns(t.from)??n),i=t.until==null?null:rs(ns(t.until)??n);if(r&&n<r||i&&n>i)return!1;let a=Math.max(1,Math.floor(t.interval??1));switch(t.freq){case`daily`:return r?(Ms(n)-Ms(r))%a===0:!0;case`weekly`:{let e=t.weekdays&&t.weekdays.length?t.weekdays:r?[r.getDay()]:null;return!(!e||!e.includes(n.getDay())||a>1&&r&&Math.round((ss(n,0).getTime()-ss(r,0).getTime())/(js*7))%a!==0)}case`monthly`:{let e=t.day??r?.getDate();return e!=null&&n.getDate()!==e?!1:r?((n.getFullYear()-r.getFullYear())*12+(n.getMonth()-r.getMonth()))%a===0:e!=null}case`yearly`:{if(t.month!=null&&n.getMonth()!==t.month)return!1;let e=t.day??r?.getDate();return e!=null&&n.getDate()!==e?!1:r?(n.getFullYear()-r.getFullYear())%a===0:t.month!=null||e!=null}}}function Ps(e,t){return t?(Array.isArray(t)?t:[t]).some(t=>Ns(e,t)):!1}var Fs=()=>typeof navigator<`u`?navigator.language:`en-US`;function Is(e){if(e==null)return[];let t=Array.isArray(e)?e:[e],n=[];for(let e of t){let t=ns(e);t&&n.push(rs(t))}return n}function Ls(e){let t=()=>e.selectionMode?.()??`one`,n=()=>e.firstDayOfWeek?.()??0,r=()=>e.weeks?.()??6,i=()=>Math.max(1,e.months?.()??1),a=()=>e.displayMode?.()??`month`,o=()=>e.disabled?.()??!1,s=()=>e.readonly?.()??!1,c=()=>e.locale?.()??Fs(),l=()=>e.dayNameFormat?.()??`short`,u=()=>e.monthNameFormat?.()??`long`,d=I(un(bs())),f=I(un(rs(new Date))),p=I(`month`),m=I(un(rs(new Date))),h=I(null),g=`fade`,_=I(0),v=F(()=>({min:e.min?.()??null,max:e.max?.()??null,restrictedDates:e.restrictedDates?.()??null})),y=F(()=>!o()&&!s()),b=``,x=!1;Ln(()=>{let t=Is(e.value()),n=t.map(e=>e.getTime()).join(`,`);if(n!==b&&(b=n,L(d,{dates:t,anchor:t[t.length-1]??null,rangeStart:null},!0),!x)){x=!0;let e=t[0]??rs(new Date);L(f,rs(e),!0),L(m,rs(e),!0),L(p,a(),!0)}});let S=F(()=>new Intl.DateTimeFormat(c(),{weekday:l()})),C=F(()=>new Intl.DateTimeFormat(c(),{month:u(),year:`numeric`})),w=F(()=>new Intl.DateTimeFormat(c(),{month:`short`})),T=F(()=>new Intl.DateTimeFormat(c(),{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`})),E=F(()=>vs(n()).map(e=>{let t=new Date(2021,7,1+e);return{label:H(S).format(t),weekday:e}})),D=F(()=>Array.from({length:i()},(e,t)=>{let i=fs(H(f),t);return{month:i,title:H(C).format(i),matrix:_s(i,n(),r())}})),O=F(()=>{if(t()!==`range`)return null;let e=H(d).rangeStart;return!e||!H(h)?null:Ss(e,H(h))}),ee=e=>!!H(O)&&H(O).some(t=>cs(t,e));function te(t,n){return{disabled:ks(t,H(v)),selected:xs(H(d).dates,t),important:As(t,e.importantDates?.()??null),today:cs(t,new Date),outside:!ls(t,n),focused:cs(t,H(m)),preview:ee(t),recurring:Ps(t,e.recurrence?.()??null)}}let ne=F(()=>H(p)===`month`?H(C).format(H(f)):H(p)===`year`?String(H(f).getFullYear()):(()=>{let{start:e,end:t}=gs(H(f).getFullYear());return`${e} - ${t}`})()),re=F(()=>Array.from({length:12},(e,t)=>({index:t,label:H(w).format(new Date(H(f).getFullYear(),t,1)),current:t===new Date().getMonth()&&H(f).getFullYear()===new Date().getFullYear(),selected:H(d).dates.some(e=>e.getMonth()===t&&e.getFullYear()===H(f).getFullYear())}))),ie=F(()=>{let{start:e}=gs(H(f).getFullYear());return Array.from({length:12},(t,n)=>{let r=e-1+n;return{year:r,outside:n===0||n===11,current:r===new Date().getFullYear(),selected:H(d).dates.some(e=>e.getFullYear()===r)}})}),ae=F(()=>t()===`zeroOrOne`||t()===`zeroOrMany`||t()===`none`);function oe(t){L(d,t,!0),b=t.dates.map(e=>e.getTime()).join(`,`),e.onChange?.(t.dates.map(e=>new Date(e.getTime())))}function se(e,r){!H(y)||ks(e,H(v))||(L(m,rs(e),!0),oe(Ts(H(d),e,t(),{ctrl:r?.ctrlKey||r?.metaKey,shift:r?.shiftKey},n())))}function ce(t,n=H(p)){L(f,rs(t),!0),L(p,n,!0),sn(_),e.onNavigate?.(H(f),H(p))}function le(){g=`drillUp`,H(p)===`month`?ce(H(f),`year`):H(p)===`year`&&ce(H(f),`decade`)}function ue(e){g=e===1?`next`:`prev`,H(p)===`month`?ce(fs(H(f),e)):H(p)===`year`?ce(ps(H(f),e)):ce(ps(H(f),e*10))}function k(e){g=`drillDown`,ce(new Date(H(f).getFullYear(),e,1),`month`),L(m,new Date(H(f).getFullYear(),e,Math.min(H(m).getDate(),28)),!0)}function A(e){g=`drillDown`,ce(new Date(e,H(f).getMonth(),1),`year`)}function j(){g=`fade`;let e=new Date;ce(e,`month`),L(m,rs(e),!0),H(y)&&se(e)}let de=e=>new Date(e.getFullYear(),e.getMonth(),1);function M(e){if(!H(y))return;let t=typeof e.value==`function`?e.value():e.value,n=Array.isArray(t),r=n?t:[t,t],i=ns(r[0]),a=ns(r[1]);i&&(L(m,rs(i),!0),g=`fade`,L(f,de(i),!0),sn(_),oe(n&&a?{dates:Ss(i,a),anchor:rs(a),rangeStart:null}:{dates:[rs(i)],anchor:rs(i),rangeStart:null}))}function fe(){H(y)&&oe(bs())}let pe=e=>L(h,e,!0);function me(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),H(p)===`year`?k(H(m).getMonth()):A(H(m).getFullYear()))}function he(e){if(H(p)!==`month`)return me(e);let t=null;switch(e.key){case`ArrowLeft`:t=ds(H(m),-1);break;case`ArrowRight`:t=ds(H(m),1);break;case`ArrowUp`:t=ds(H(m),-7);break;case`ArrowDown`:t=ds(H(m),7);break;case`Home`:t=ds(H(m),-((H(m).getDay()-n()+7)%7));break;case`End`:t=ds(H(m),6-(H(m).getDay()-n()+7)%7);break;case`PageUp`:t=e.shiftKey?ps(H(m),-1):fs(H(m),-1);break;case`PageDown`:t=e.shiftKey?ps(H(m),1):fs(H(m),1);break;case`Enter`:case` `:e.preventDefault(),se(H(m),e);return;default:return}t&&(e.preventDefault(),L(m,rs(t),!0),ls(H(m),H(f))||ce(H(m),`month`))}return{get view(){return H(f)},get mode(){return H(p)},get title(){return H(ne)},get panels(){return H(D)},get weekdayHeaders(){return H(E)},get yearCells(){return H(re)},get decadeCells(){return H(ie)},get selectedDates(){return H(d).dates},get previewRange(){return H(O)},get focusDate(){return H(m)},get hoverDate(){return H(h)},get canClear(){return H(ae)},get isInteractive(){return H(y)},get navToken(){return H(_)},get navDir(){return g},dayState:te,inPreview:ee,formatFullDate:e=>H(T).format(e),formatMonthTitle:e=>H(C).format(e),pickDay:se,step:ue,drillUp:le,pickMonth:k,pickYear:A,goToday:j,applyPreset:M,clearSelection:fe,setHover:pe,onKeydown:he,navProps(e){return{type:`button`,disabled:o(),"aria-label":e===1?`Next`:`Previous`,onclick:()=>ue(e)}},titleProps(){return{type:`button`,disabled:o()||H(p)===`decade`,"aria-live":`polite`,onclick:le}},gridProps(){return{role:`grid`,"aria-label":H(ne),tabindex:-1,onkeydown:he}},dayProps(t,n){let r=te(t.date,n);return{type:`button`,role:`gridcell`,"aria-selected":r.selected,"aria-disabled":r.disabled,"aria-current":r.today?`date`:void 0,"aria-label":H(T).format(t.date),title:e.dateTooltip?.()?.(t.date)??void 0,tabindex:r.focused?0:-1,disabled:r.disabled||o(),onclick:e=>se(t.date,e),onpointerenter:()=>pe(t.date),onpointerleave:()=>pe(null)}},monthCellProps(e){return{type:`button`,disabled:o(),onclick:()=>k(e)}},yearCellProps(e){return{type:`button`,disabled:o(),onclick:()=>A(e)}},presetProps(e){return{type:`button`,disabled:!H(y),onclick:()=>M(e)}}}}var Rs=W(`<button> </button>`),zs=W(`<div class="sv-cal__presets svelte-14r5ivh" role="group"></div>`),Bs=W(`<div class="sv-cal__panel-title svelte-14r5ivh"> </div>`),Vs=W(`<span class="sv-cal__wk-head svelte-14r5ivh" aria-hidden="true">#</span>`),Hs=W(`<span class="sv-cal__weekday svelte-14r5ivh" role="columnheader"> </span>`),Us=W(`<div class="sv-cal__weekdays svelte-14r5ivh" role="row"><!> <!></div>`),Ws=W(`<span class="sv-cal__wk svelte-14r5ivh" aria-hidden="true"> </span>`),Gs=W(`<span class="sv-cal__day sv-cal__day--empty svelte-14r5ivh" role="gridcell" aria-hidden="true"></span>`),Ks=W(`<span class="sv-cal__daybody svelte-14r5ivh"><!></span>`),qs=W(`<button><span class="sv-cal__daynum svelte-14r5ivh"> </span><!></button>`),Js=W(`<div class="sv-cal__week svelte-14r5ivh" role="row"><!> <!></div>`),Ys=W(`<div class="sv-cal__panel"><!> <!> <!></div>`),Xs=W(`<div></div>`),Zs=W(`<button> </button>`),Qs=W(`<div></div>`),$s=W(`<button> </button>`),ec=W(`<div></div>`),tc=W(`<button type="button" class="sv-cal__foot-btn svelte-14r5ivh"> </button>`),nc=W(`<div class="sv-cal__footer svelte-14r5ivh"><button type="button" class="sv-cal__foot-btn svelte-14r5ivh"> </button> <!></div>`),rc=W(`<input type="hidden"/>`),ic=W(`<div role="group"><!> <div class="sv-cal__main svelte-14r5ivh"><div class="sv-cal__header svelte-14r5ivh"><button><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-14r5ivh"><path d="M15 18l-6-6 6-6"></path></svg></button> <button> </button> <button><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-14r5ivh"><path d="M9 18l6-6-6-6"></path></svg></button></div> <div class="sv-cal__view svelte-14r5ivh"><!></div> <!></div> <!></div>`);function ac(e,t){Ze(t,!0);let n={label:`Calendar`,shortcuts:`Shortcuts`,today:`Today`,clear:`Clear`,prev:`Previous`,next:`Next`},r=$(t,`value`,3,null),i=$(t,`selectionMode`,3,`one`),a=$(t,`min`,3,null),o=$(t,`max`,3,null),s=$(t,`restrictedDates`,3,null),c=$(t,`importantDates`,3,null),l=$(t,`firstDayOfWeek`,3,0),u=$(t,`weeks`,3,6),d=$(t,`weekNumbers`,3,!1),f=$(t,`months`,3,1),p=$(t,`hideDayNames`,3,!1),m=$(t,`hideOtherMonthDays`,3,!1),h=$(t,`dayNameFormat`,3,`short`),g=$(t,`monthNameFormat`,3,`long`),_=$(t,`footer`,3,!1),v=$(t,`disabled`,3,!1),y=$(t,`readonly`,3,!1),b=$(t,`locale`,19,()=>typeof navigator<`u`?navigator.language:`en-US`),x=$(t,`displayMode`,3,`month`),S=$(t,`animate`,3,!1),C=$(t,`wheelNavigation`,3,!1),w=$(t,`recurrence`,3,null),T=F(()=>ts(n,t.messages)),E=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),D=F(()=>m()||f()>1),O=Ls({value:()=>r(),onChange:e=>t.onChange?.(e),onNavigate:(e,n)=>t.onNavigate?.(e,n),selectionMode:()=>i(),min:()=>a(),max:()=>o(),restrictedDates:()=>s(),importantDates:()=>c(),firstDayOfWeek:()=>l(),weeks:()=>u(),months:()=>f(),displayMode:()=>x(),disabled:()=>v(),readonly:()=>y(),locale:()=>b(),dayNameFormat:()=>h(),monthNameFormat:()=>g(),dateTooltip:()=>t.dateTooltip,recurrence:()=>w()}),ee=F(()=>S()===!0?`slide`:S()||`none`),te=I(void 0),ne=!1;function re(){if(H(ee)===`none`||!H(te)||typeof H(te).animate!=`function`)return;let e=H(ee)===`slide`,t=O.navDir,n=e?t===`next`?{transform:`translateX(34px)`,opacity:0}:t===`prev`?{transform:`translateX(-34px)`,opacity:0}:t===`drillDown`?{transform:`scale(0.85)`,opacity:0}:t===`drillUp`?{transform:`scale(1.14)`,opacity:0}:{opacity:0}:{opacity:0,transform:`scale(0.98)`};H(te).animate([n,{transform:`none`,opacity:1}],{duration:e&&(t===`next`||t===`prev`)?300:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`})}Ln(()=>{if(O.navToken,!ne){ne=!0;return}Nr(re)});function ie(e){let t=e=>{!C()||v()||(e.preventDefault(),O.step(e.deltaY>0||e.deltaX>0?1:-1))};return e.addEventListener(`wheel`,t,{passive:!1}),{destroy:()=>e.removeEventListener(`wheel`,t)}}var ae=ic();let oe;var se=R(ae),ce=e=>{var n=zs();Y(n,21,()=>t.presets,di,(e,t)=>{var n=Rs();ca(n,e=>({class:`sv-cal__preset`,...e}),[()=>O.presetProps(H(t))],void 0,void 0,`svelte-14r5ivh`);var r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)}),N(n),V(()=>Q(n,`aria-label`,H(T).shortcuts)),K(e,n)};J(se,e=>{t.presets&&t.presets.length&&e(ce)});var le=B(se,2),ue=R(le),k=R(ue);ca(k,e=>({class:`sv-cal__nav`,...e}),[()=>O.navProps(-1)],void 0,void 0,`svelte-14r5ivh`);var A=B(k,2);ca(A,e=>({class:`sv-cal__title`,...e}),[()=>O.titleProps()],void 0,void 0,`svelte-14r5ivh`);var j=R(A,!0);N(A),ca(B(A,2),e=>({class:`sv-cal__nav`,...e}),[()=>O.navProps(1)],void 0,void 0,`svelte-14r5ivh`),N(ue);var de=B(ue,2),M=R(de),fe=e=>{var n=Xs();ca(n,e=>({class:`sv-cal__panels`,...e}),[()=>O.gridProps()],void 0,void 0,`svelte-14r5ivh`),Y(n,21,()=>O.panels,e=>e.month.getTime(),(e,n)=>{var r=Ys(),i=R(r),a=e=>{var t=Bs(),r=R(t,!0);N(t),V(()=>q(r,H(n).title)),K(e,t)};J(i,e=>{f()>1&&e(a)});var o=B(i,2),s=e=>{var t=Us(),n=R(t),r=e=>{K(e,Vs())};J(n,e=>{d()&&e(r)}),Y(B(n,2),17,()=>O.weekdayHeaders,e=>e.weekday,(e,t)=>{var n=Hs(),r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)}),N(t),K(e,t)};J(o,e=>{p()||e(s)}),Y(B(o,2),17,()=>H(n).matrix,di,(e,r)=>{var i=Js(),a=R(i),o=e=>{var t=Ws(),n=R(t,!0);N(t),V(()=>q(n,H(r)[0]?.week)),K(e,t)};J(a,e=>{d()&&e(o)}),Y(B(a,2),17,()=>H(r),e=>e.date.getTime(),(e,r)=>{let i=F(()=>O.dayState(H(r).date,H(n).month));var a=ii(),o=z(a),s=e=>{K(e,Gs())},c=e=>{var a=qs();ca(a,e=>({class:`sv-cal__day`,...e,[Ji]:{"is-selected":H(i).selected,"is-today":H(i).today,"is-outside":H(i).outside,"is-important":H(i).important,"is-preview":H(i).preview,"is-focused":H(i).focused,"is-recurring":H(i).recurring}}),[()=>O.dayProps(H(r),H(n).month)],void 0,void 0,`svelte-14r5ivh`);var o=R(a),s=R(o,!0);N(o);var c=B(o),l=e=>{var n=Ks();bi(R(n),()=>t.day,()=>H(r).date,()=>H(i)),N(n),K(e,n)};J(c,e=>{t.day&&e(l)}),N(a),V(e=>q(s,e),[()=>H(r).date.getDate()]),K(e,a)};J(o,e=>{H(i).outside&&H(D)?e(s):e(c,-1)}),K(e,a)}),N(i),K(e,i)}),N(r),K(e,r)}),N(n),K(e,n)},pe=e=>{var t=Qs();ca(t,e=>({class:`sv-cal__grid-mode`,...e}),[()=>O.gridProps()],void 0,void 0,`svelte-14r5ivh`),Y(t,21,()=>O.yearCells,e=>e.index,(e,t)=>{var n=Zs();ca(n,e=>({class:`sv-cal__cell`,...e,[Ji]:{"is-today":H(t).current,"is-selected":H(t).selected}}),[()=>O.monthCellProps(H(t).index)],void 0,void 0,`svelte-14r5ivh`);var r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)}),N(t),K(e,t)},me=e=>{var t=ec();ca(t,e=>({class:`sv-cal__grid-mode`,...e}),[()=>O.gridProps()],void 0,void 0,`svelte-14r5ivh`),Y(t,21,()=>O.decadeCells,e=>e.year,(e,t)=>{var n=$s();ca(n,e=>({class:`sv-cal__cell`,...e,[Ji]:{"is-outside":H(t).outside,"is-today":H(t).current,"is-selected":H(t).selected}}),[()=>O.yearCellProps(H(t).year)],void 0,void 0,`svelte-14r5ivh`);var r=R(n,!0);N(n),V(()=>q(r,H(t).year)),K(e,n)}),N(t),K(e,t)};J(M,e=>{O.mode===`month`?e(fe):O.mode===`year`?e(pe,1):e(me,-1)}),N(de),ya(de,e=>L(te,e),()=>H(te));var he=B(de,2),ge=e=>{var t=nc(),n=R(t),r=R(n,!0);N(n);var i=B(n,2),a=e=>{var t=tc(),n=R(t,!0);N(t),V(()=>{t.disabled=v(),q(n,H(T).clear)}),U(`click`,t,function(...e){O.clearSelection?.apply(this,e)}),K(e,t)};J(i,e=>{O.canClear&&e(a)}),N(t),V(()=>{n.disabled=v(),q(r,H(T).today)}),U(`click`,n,function(...e){O.goToday?.apply(this,e)}),K(e,t)};J(he,e=>{_()&&e(ge)}),N(le),Mi(le,e=>ie?.(e));var _e=B(le,2),ve=e=>{var n=rc();Z(n),V(e=>{Q(n,`name`,t.name),ra(n,e)},[()=>O.selectedDates.map(e=>e.toISOString()).join(`,`)]),K(e,n)};J(_e,e=>{t.name&&e(ve)}),N(ae),V(()=>{oe=X(ae,1,`sv-cal svelte-14r5ivh`,null,oe,{"sv-cal--disabled":v(),"sv-cal--with-presets":t.presets&&t.presets.length,"sv-cal--band":i()===`range`||i()===`week`,"sv-cal--rich":!!t.day}),Q(ae,`aria-label`,H(T).label),Q(ae,`aria-disabled`,v()),Q(ae,`dir`,H(E)),q(j,O.title),ae.dir=ae.dir}),K(e,ae),Qe()}Yr([`click`]);var oc=240,sc=oc/2,cc=sc-22,lc=sc-58;function uc(e,t){let n=(e-90)*Math.PI/180;return{x:sc+t*Math.cos(n),y:sc+t*Math.sin(n)}}function dc(e){if(e==null){let e=new Date;return{h:e.getHours(),m:e.getMinutes()}}if(typeof e==`string`){let t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?/);if(t)return{h:Math.min(23,+t[1]),m:Math.min(59,+t[2])};let n=new Date(e);if(!isNaN(n.getTime()))return{h:n.getHours(),m:n.getMinutes()};let r=new Date;return{h:r.getHours(),m:r.getMinutes()}}let t=new Date(e);return{h:t.getHours(),m:t.getMinutes()}}function fc(e){let t=()=>e.format?.()??`24-hour`,n=()=>e.minuteInterval?.()??1,r=()=>e.autoSwitchToMinutes?.()??!0,i=()=>e.disabled?.()??!1,a=()=>e.readonly?.()??!1,o=F(()=>t()===`12-hour`),s=F(()=>!i()&&!a()),c=I(0),l=I(0),u=I(`hour`),d=!1,f=``;Ln(()=>{let{h:t,m:n}=dc(e.value()),r=`${t}:${n}`;r!==f&&(f=r,L(c,t,!0),L(l,n,!0),d||(d=!0,L(u,e.selection?.()??`hour`,!0)))});let p=F(()=>H(o)?H(c)%12==0?12:H(c)%12:H(c)),m=F(()=>H(c)>=12),h=F(()=>String(H(l)).padStart(2,`0`)),g=F(()=>{let e=[];if(H(o))for(let t=0;t<12;t++){let n=t===0?12:t,r=uc(t*30,cc);e.push({label:String(n),x:r.x,y:r.y,value:n,ring:`outer`})}else for(let t=0;t<12;t++){let n=uc(t*30,cc),r=uc(t*30,lc),i=t+12,a=t;e.push({label:String(i).padStart(2,`0`),x:n.x,y:n.y,value:i,ring:`outer`}),e.push({label:a===0?`00`:String(a).padStart(2,`0`),x:r.x,y:r.y,value:a,ring:`inner`})}return e}),_=F(()=>Array.from({length:12},(e,t)=>{let n=t*5,r=uc(t*30,cc);return{label:String(n).padStart(2,`0`),x:r.x,y:r.y,value:n,ring:`outer`}})),v=F(()=>H(u)===`hour`?H(o)?H(p)%12*30:H(c)%12*30:H(l)*6),y=F(()=>H(u)===`hour`&&!H(o)&&H(c)%12===H(c)&&H(c)<12?lc:cc),b=F(()=>uc(H(v),H(y)));function x(){let t=new Date;t.setHours(H(c),H(l),0,0),e.onChange?.(t)}let S=e=>{let t=Math.max(1,Math.floor(n()));return Math.round(e/t)*t%60};function C(e){L(u,e,!0)}function w(e){L(l,S(e),!0),f=`${H(c)}:${H(l)}`,x()}function T(e){e!==H(m)&&(L(c,e?H(c)%12+12:H(c)%12,!0),f=`${H(c)}:${H(l)}`,x())}function E(e,t){if(H(s))if(H(u)===`hour`){let n=Math.round(e/30)%12;if(H(o)){let e=(n===0?12:n)%12;L(c,H(m)?e+12:e,!0)}else L(c,t<160/2?n:n+12,!0);f=`${H(c)}:${H(l)}`,x()}else w(Math.round(e/6)%60)}function D(){H(u)===`hour`&&r()&&L(u,`minute`)}function O(e){if(!H(s))return;let t=H(u)===`minute`?Math.max(1,Math.floor(n())):1;e.key===`ArrowUp`||e.key===`ArrowRight`?(e.preventDefault(),H(u)===`hour`?L(c,(H(c)+1)%24):L(l,(H(l)+t)%60),f=`${H(c)}:${H(l)}`,x()):e.key===`ArrowDown`||e.key===`ArrowLeft`?(e.preventDefault(),H(u)===`hour`?L(c,(H(c)+23)%24):L(l,(H(l)-t+60)%60),f=`${H(c)}:${H(l)}`,x()):e.key===`Tab`&&!e.shiftKey&&H(u)===`hour`&&L(u,`minute`)}function ee(){let e=new Date;L(c,e.getHours(),!0),L(l,e.getMinutes(),!0),f=`${H(c)}:${H(l)}`,x()}function te(e){return H(o)?e.value===H(p):e.value===H(c)}return{SIZE:oc,C:sc,get hours(){return H(c)},get minutes(){return H(l)},get selection(){return H(u)},get is12(){return H(o)},get isInteractive(){return H(s)},get displayHour(){return H(p)},get isPm(){return H(m)},get mm(){return H(h)},get hourTicks(){return H(g)},get minuteTicks(){return H(_)},get handEnd(){return H(b)},isActiveHour:te,setSelection:C,setMinute:w,setAmPm:T,pointerSelect:E,endPointer:D,onKeydown:O,now:ee,segProps(e){return{type:`button`,disabled:i(),onclick:()=>C(e)}},ampmProps(e){return{type:`button`,disabled:i(),onclick:()=>T(e)}},dialProps(){return{role:`slider`,tabindex:i()?-1:0,"aria-label":H(u)===`hour`?`Hour`:`Minute`,"aria-valuenow":H(u)===`hour`?H(c):H(l),"aria-valuemin":0,"aria-valuemax":H(u)===`hour`?23:59,onkeydown:O}},nowProps(){return{type:`button`,disabled:i(),onclick:ee}}}}var pc=W(`<div class="sv-tp__ampm svelte-1l2tcyg"><button> </button> <button> </button></div>`),mc=G(`<text dominant-baseline="central" text-anchor="middle"> </text>`),hc=G(`<text dominant-baseline="central" text-anchor="middle"> </text>`),gc=W(`<div class="sv-tp__footer svelte-1l2tcyg"><button> </button></div>`),_c=W(`<input type="hidden"/>`),vc=W(`<div role="group"><div class="sv-tp__head svelte-1l2tcyg"><button> </button> <span class="sv-tp__colon svelte-1l2tcyg">:</span> <button> </button> <!></div> <svg><circle class="sv-tp__face svelte-1l2tcyg"></circle><line class="sv-tp__hand svelte-1l2tcyg"></line><circle class="sv-tp__hub svelte-1l2tcyg" r="3"></circle><circle class="sv-tp__knob svelte-1l2tcyg" r="15"></circle><!></svg> <!> <!></div>`);function yc(e,t){Ze(t,!0);let n={label:`Time picker`,am:`AM`,pm:`PM`,now:`Now`},r=$(t,`value`,3,null),i=$(t,`format`,3,`24-hour`),a=$(t,`minuteInterval`,3,1),o=$(t,`autoSwitchToMinutes`,3,!0),s=$(t,`footer`,3,!1),c=$(t,`disabled`,3,!1),l=$(t,`readonly`,3,!1),u=$(t,`selection`,3,`hour`),d=F(()=>ts(n,t.messages)),f=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),p=fc({value:()=>r(),onChange:e=>t.onChange?.(e),format:()=>i(),minuteInterval:()=>a(),autoSwitchToMinutes:()=>o(),disabled:()=>c(),readonly:()=>l(),selection:()=>u()}),m=null,h=!1;function g(e){let t=m.getBoundingClientRect(),n=p.SIZE/t.width,r=(e.clientX-t.left)*n-p.C,i=(e.clientY-t.top)*n-p.C,a=Math.atan2(i,r)*180/Math.PI+90;return a<0&&(a+=360),{angle:a,dist:Math.hypot(r,i)}}function _(e){if(!p.isInteractive)return;h=!0,m?.setPointerCapture(e.pointerId);let{angle:t,dist:n}=g(e);p.pointerSelect(t,n)}function v(e){if(!h)return;let{angle:t,dist:n}=g(e);p.pointerSelect(t,n)}function y(e){h&&(h=!1,m?.releasePointerCapture(e.pointerId),p.endPointer())}var b=vc();let x;var S=R(b),C=R(S);ca(C,e=>({class:`sv-tp__seg`,...e,[Ji]:{"is-active":p.selection===`hour`}}),[()=>p.segProps(`hour`)],void 0,void 0,`svelte-1l2tcyg`);var w=R(C,!0);N(C);var T=B(C,4);ca(T,e=>({class:`sv-tp__seg`,...e,[Ji]:{"is-active":p.selection===`minute`}}),[()=>p.segProps(`minute`)],void 0,void 0,`svelte-1l2tcyg`);var E=R(T,!0);N(T);var D=B(T,2),O=e=>{var t=pc(),n=R(t);ca(n,e=>({...e,[Ji]:{"is-active":!p.isPm}}),[()=>p.ampmProps(!1)],void 0,void 0,`svelte-1l2tcyg`);var r=R(n,!0);N(n);var i=B(n,2);ca(i,e=>({...e,[Ji]:{"is-active":p.isPm}}),[()=>p.ampmProps(!0)],void 0,void 0,`svelte-1l2tcyg`);var a=R(i,!0);N(i),N(t),V(()=>{q(r,H(d).am),q(a,H(d).pm)}),K(e,t)};J(D,e=>{p.is12&&e(O)}),N(S);var ee=B(S,2);ca(ee,e=>({class:`sv-tp__dial`,viewBox:`0 0 ${p.SIZE} ${p.SIZE}`,width:`100%`,...e,onpointerdown:_,onpointermove:v,onpointerup:y,onpointercancel:y}),[()=>p.dialProps()],void 0,void 0,`svelte-1l2tcyg`);var te=R(ee),ne=B(te),re=B(ne),ie=B(re),ae=B(ie),oe=e=>{var t=ii();Y(z(t),17,()=>p.hourTicks,e=>e.ring+`-`+e.value,(e,t)=>{var n=mc();let r;var i=R(n,!0);N(n),V(e=>{r=X(n,0,`sv-tp__num svelte-1l2tcyg`,null,r,e),Q(n,`x`,H(t).x),Q(n,`y`,H(t).y),q(i,H(t).label)},[()=>({"is-active":p.isActiveHour(H(t)),"is-inner":H(t).ring===`inner`})]),K(e,n)}),K(e,t)},se=e=>{var t=ii();Y(z(t),17,()=>p.minuteTicks,e=>e.value,(e,t)=>{var n=hc();let r;var i=R(n,!0);N(n),V(()=>{r=X(n,0,`sv-tp__num svelte-1l2tcyg`,null,r,{"is-active":H(t).value===p.minutes}),Q(n,`x`,H(t).x),Q(n,`y`,H(t).y),q(i,H(t).label)}),K(e,n)}),K(e,t)};J(ae,e=>{p.selection===`hour`?e(oe):e(se,-1)}),N(ee),ya(ee,e=>m=e,()=>m);var ce=B(ee,2),le=e=>{var t=gc(),n=R(t);ca(n,e=>({class:`sv-tp__now`,...e}),[()=>p.nowProps()],void 0,void 0,`svelte-1l2tcyg`);var r=R(n,!0);N(n),N(t),V(()=>q(r,H(d).now)),K(e,t)};J(ce,e=>{s()&&e(le)});var ue=B(ce,2),k=e=>{var n=_c();Z(n),V(e=>{Q(n,`name`,t.name),ra(n,e)},[()=>`${String(p.hours).padStart(2,`0`)}:${p.mm}`]),K(e,n)};J(ue,e=>{t.name&&e(k)}),N(b),V(e=>{x=X(b,1,`sv-tp svelte-1l2tcyg`,null,x,{"sv-tp--disabled":c()}),Q(b,`aria-label`,H(d).label),Q(b,`dir`,H(f)),q(w,e),q(E,p.mm),Q(te,`cx`,p.C),Q(te,`cy`,p.C),Q(te,`r`,p.C-4),Q(ne,`x1`,p.C),Q(ne,`y1`,p.C),Q(ne,`x2`,p.handEnd.x),Q(ne,`y2`,p.handEnd.y),Q(re,`cx`,p.C),Q(re,`cy`,p.C),Q(ie,`cx`,p.handEnd.x),Q(ie,`cy`,p.handEnd.y),b.dir=b.dir},[()=>String(p.displayHour).padStart(2,`0`)]),K(e,b),Qe()}var bc=W(`<span class="sv-field__req svelte-n4hjmr" aria-hidden="true">*</span>`),xc=W(`<label class="sv-field__label svelte-n4hjmr"> <!></label>`),Sc=W(`<span class="sv-field__error svelte-n4hjmr" role="alert"> </span>`),Cc=W(`<span class="sv-field__hint svelte-n4hjmr"> </span>`),wc=W(`<div><!> <!> <!></div>`);function Tc(e,t){Ze(t,!0);let n=$(t,`required`,3,!1),r=$(t,`block`,3,!1),i=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0);var a=wc();let o;var s=R(a),c=e=>{var r=xc(),i=R(r,!0),a=B(i),o=e=>{K(e,bc())};J(a,e=>{n()&&e(o)}),N(r),V(()=>{Q(r,`for`,t.id),q(i,t.label)}),K(e,r)};J(s,e=>{t.label&&e(c)});var l=B(s,2);bi(l,()=>t.children);var u=B(l,2),d=e=>{var n=Sc(),r=R(n,!0);N(n),V(e=>{Q(n,`id`,e),q(r,t.error)},[()=>Xo(t.id)]),K(e,n)},f=e=>{var n=Cc(),r=R(n,!0);N(n),V(e=>{Q(n,`id`,e),q(r,t.hint)},[()=>Zo(t.id)]),K(e,n)};J(u,e=>{t.error?e(d):t.hint&&e(f,1)}),N(a),V(()=>{o=X(a,1,`sv-field svelte-n4hjmr`,null,o,{"sv-field--block":r()}),Q(a,`dir`,H(i)),a.dir=a.dir}),K(e,a),Qe()}var Ec=[`dddd`,`ddd`,`dd`,`d`,`MMMM`,`MMM`,`MM`,`M`,`yyyy`,`yy`,`HH`,`H`,`hh`,`h`,`mm`,`m`,`ss`,`s`,`fff`,`ff`,`f`,`tt`,`t`];function Dc(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`\\`&&n+1<e.length){t.push({literal:e[n+1]}),n+=2;continue}if(r===`'`){let r=n+1,i=``;for(;r<e.length&&e[r]!==`'`;)i+=e[r],r++;t.push({literal:i}),n=r+1;continue}let i=null;for(let t of Ec)if(e.startsWith(t,n)){i=t;break}i?(t.push({token:i}),n+=i.length):(t.push({literal:r}),n+=1)}return t}var Oc=(e,t)=>String(Math.abs(e)).padStart(t,`0`),kc=new Map,Ac=new Map,jc=new Map;function Mc(e){let t=kc.get(e);if(!t){let n=new Intl.DateTimeFormat(e,{month:`long`}),r=new Intl.DateTimeFormat(e,{month:`short`});t={long:Array.from({length:12},(e,t)=>n.format(new Date(2021,t,1))),short:Array.from({length:12},(e,t)=>r.format(new Date(2021,t,1)))},kc.set(e,t)}return t}function Nc(e){let t=Ac.get(e);if(!t){let n=new Intl.DateTimeFormat(e,{weekday:`long`}),r=new Intl.DateTimeFormat(e,{weekday:`short`});t={long:Array.from({length:7},(e,t)=>n.format(new Date(2021,7,1+t))),short:Array.from({length:7},(e,t)=>r.format(new Date(2021,7,1+t)))},Ac.set(e,t)}return t}function Pc(e){let t=jc.get(e);if(!t){let n=new Intl.DateTimeFormat(e,{hour:`numeric`,hour12:!0});t={am:n.formatToParts(new Date(2021,0,1,9)).find(e=>e.type===`dayPeriod`)?.value??`AM`,pm:n.formatToParts(new Date(2021,0,1,21)).find(e=>e.type===`dayPeriod`)?.value??`PM`},jc.set(e,t)}return t}function Fc(e,t,n=`en-US`){let r=Dc(t),i=e.getHours(),a=i%12==0?12:i%12,o=e.getMilliseconds(),s=``;for(let t of r){if(`literal`in t){s+=t.literal;continue}switch(t.token){case`d`:s+=String(e.getDate());break;case`dd`:s+=Oc(e.getDate(),2);break;case`ddd`:s+=Nc(n).short[e.getDay()];break;case`dddd`:s+=Nc(n).long[e.getDay()];break;case`M`:s+=String(e.getMonth()+1);break;case`MM`:s+=Oc(e.getMonth()+1,2);break;case`MMM`:s+=Mc(n).short[e.getMonth()];break;case`MMMM`:s+=Mc(n).long[e.getMonth()];break;case`yy`:s+=Oc(e.getFullYear()%100,2);break;case`yyyy`:s+=Oc(e.getFullYear(),4);break;case`H`:s+=String(i);break;case`HH`:s+=Oc(i,2);break;case`h`:s+=String(a);break;case`hh`:s+=Oc(a,2);break;case`m`:s+=String(e.getMinutes());break;case`mm`:s+=Oc(e.getMinutes(),2);break;case`s`:s+=String(e.getSeconds());break;case`ss`:s+=Oc(e.getSeconds(),2);break;case`f`:s+=Oc(o,3).slice(0,1);break;case`ff`:s+=Oc(o,3).slice(0,2);break;case`fff`:s+=Oc(o,3);break;case`t`:s+=(i<12?Pc(n).am:Pc(n).pm).slice(0,1);break;case`tt`:s+=i<12?Pc(n).am:Pc(n).pm;break;default:s+=t.token}}return s}var Ic={d:2,dd:2,M:2,MM:2,yy:2,yyyy:4,H:2,HH:2,h:2,hh:2,m:2,mm:2,s:2,ss:2,f:1,ff:2,fff:3};function Lc(e,t,n){let r=0;for(;r<n&&t+r<e.length&&e[t+r]>=`0`&&e[t+r]<=`9`;)r++;return r===0?null:{value:parseInt(e.slice(t,t+r),10),len:r}}function Rc(e,t,n){let r=n.map((e,t)=>({name:e,index:t})).sort((e,t)=>t.name.length-e.name.length),i=e.slice(t).toLowerCase();for(let{name:e,index:t}of r)if(e&&i.startsWith(e.toLowerCase()))return{index:t,len:e.length};return null}function zc(e,t,n=`en-US`,r=2029,i){let a=Dc(t),o={},s=0,c=e;for(let e of a){if(`literal`in e){for(let t of e.literal){if(t===` `){for(;c[s]===` `;)s++;continue}if(c[s]!==t)return null;s++}continue}let t=e.token;switch(t){case`ddd`:case`dddd`:{let e=Rc(c,s,Nc(n)[t===`ddd`?`short`:`long`]);if(!e)return null;s+=e.len;break}case`MMM`:case`MMMM`:{let e=Rc(c,s,Mc(n)[t===`MMM`?`short`:`long`]);if(!e)return null;o.month=e.index,s+=e.len;break}case`t`:case`tt`:{let e=Pc(n),t=c.slice(s).toLowerCase();if(t.startsWith(e.pm.toLowerCase()))o.isPm=!0,s+=e.pm.length;else if(t.startsWith(e.am.toLowerCase()))o.isPm=!1,s+=e.am.length;else if(t.startsWith(e.pm.slice(0,1).toLowerCase()))o.isPm=!0,s+=1;else if(t.startsWith(e.am.slice(0,1).toLowerCase()))o.isPm=!1,s+=1;else return null;break}default:{let e=Lc(c,s,Ic[t]??2);if(!e)return null;s+=e.len;let n=e.value;switch(t){case`d`:case`dd`:o.day=n;break;case`M`:case`MM`:o.month=n-1;break;case`yy`:o.year=n<=r%100?2e3+n:1900+n;break;case`yyyy`:o.year=n;break;case`H`:case`HH`:o.hour=n;break;case`h`:case`hh`:o.hour12=n;break;case`m`:case`mm`:o.minute=n;break;case`s`:case`ss`:o.second=n;break;case`f`:o.ms=n*100;break;case`ff`:o.ms=n*10;break;case`fff`:o.ms=n;break}}}}if(s!==c.length&&c.slice(s).trim()!==``)return null;let l=i??new Date(1970,0,1),u=o.hour;u==null&&o.hour12!=null&&(u=o.hour12%12,o.isPm&&(u+=12));let d=o.year??l.getFullYear(),f=o.month??l.getMonth(),p=o.day??l.getDate(),m=new Date(d,f,p,u??l.getHours(),o.minute??l.getMinutes(),o.second??l.getSeconds(),o.ms??l.getMilliseconds());return o.day!=null&&m.getDate()!==p||o.month!=null&&m.getMonth()!==f||isNaN(m.getTime())?null:m}var Bc=()=>typeof navigator<`u`?navigator.language:`en-US`;function Vc(e){let t=()=>e.formatString?.()??`yyyy-MM-dd HH:mm`,n=()=>e.nullable?.()??!0,r=()=>e.locale?.()??Bc(),i=()=>e.dropDownDisplayMode?.()??`both`,a=()=>e.spinButtons?.()??!1,o=()=>e.stepMinutes?.()??1,s=()=>e.disabled?.()??!1,c=()=>e.readonly?.()??!1,l=F(()=>!s()&&!c()),u=F(()=>ns(e.min?.()??null)),d=F(()=>ns(e.max?.()??null)),f=I(null),p=I(``),m=``;Ln(()=>{let n=ns(e.value()),i=n?String(n.getTime()):`null`;i!==m&&(m=i,L(f,n,!0),L(p,n?Fc(n,t(),r()):``,!0))});let h=I(!1),g=I(`date`),_=F(()=>i()!==`time`),v=F(()=>i()!==`calendar`);function y(n){let i=n?ms(n,H(u),H(d)):null;L(f,i,!0),m=i?String(i.getTime()):`null`,L(p,i?Fc(i,t(),r()):``,!0),e.onChange?.(i)}function b(){let e=H(p).trim();if(!e){n()?y(null):L(p,H(f)?Fc(H(f),t(),r()):``,!0);return}let i=zc(e,t(),r(),2029,H(f)??new Date);i?y(i):L(p,H(f)?Fc(H(f),t(),r()):``,!0)}function x(e){let t=H(f)??new Date;y(new Date(t.getTime()+e*6e4))}function S(t){let n=t[0];n&&(y(ys(n,H(f)??rs(n))),i()===`calendar`?(L(h,!1),e.onCommit?.(H(f))):i()===`both`&&L(g,`time`))}function C(e){y(ys(H(f)??new Date,e))}function w(){!H(l)||H(h)||(L(g,i()===`time`?`time`:`date`,!0),L(h,!0))}function T(){L(h,!1)}function E(){(H(h)?T:w)()}function D(e){L(g,e,!0)}function O(t){t.key===`Enter`?(t.preventDefault(),b(),T(),e.onCommit?.(H(f))):t.key===`Escape`?(T(),e.onCancel?.()):t.key===`ArrowDown`&&(t.altKey||!H(p))?(t.preventDefault(),w()):a()&&t.key===`ArrowUp`?(t.preventDefault(),x(o())):a()&&t.key===`ArrowDown`&&(t.preventDefault(),x(-o()))}return{get current(){return H(f)},get text(){return H(p)},set text(e){L(p,e,!0)},get open(){return H(h)},get tab(){return H(g)},get isInteractive(){return H(l)},get showDateTab(){return H(_)},get showTimeTab(){return H(v)},commit:y,commitFromText:b,bump:x,onCalendarChange:S,onTimeChange:C,openPanel:w,closePanel:T,toggle:E,setTab:D,onInputKeydown:O,inputProps(){return{id:e.id?.(),type:`text`,disabled:s(),readonly:c(),...es({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()}),onblur:b,onkeydown:O}},toggleProps(){return{type:`button`,"aria-label":e.toggleLabel?.()??`Open picker`,"aria-haspopup":`dialog`,"aria-expanded":H(h),disabled:!H(l),tabindex:-1,onclick:E}},clearProps(){return{type:`button`,"aria-label":e.clearLabel?.()??`Clear`,onclick:()=>y(null)}},spinProps(e){return{type:`button`,tabindex:-1,"aria-label":e===1?`Increment`:`Decrement`,disabled:!H(l),onclick:()=>x(e*o())}},tabProps(e){return{type:`button`,role:`tab`,"aria-selected":H(g)===e,onclick:()=>D(e)}}}}var Hc=W(`<div class="sv-dtp__spin svelte-1wyw11g"><button>▲</button> <button>▼</button></div>`),Uc=W(`<button>×</button>`),Wc=W(`<div class="sv-dtp__tabs" role="tablist"><button> </button> <button> </button></div>`),Gc=W(`<div class="sv-dtp__panel" role="dialog"><!> <div class="sv-dtp__body"><!></div></div>`),Kc=W(`<input type="hidden"/>`),qc=W(`<div><div><!> <input/> <!> <button><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"></rect><path d="M16 2v4M8 2v4M3 10h18"></path></svg></button></div> <!> <!></div>`);function Jc(e,t){Ze(t,!0);let n={dialog:`Choose date and time`,date:`DATE`,time:`TIME`,clear:`Clear`,open:`Open picker`},r=$(t,`value`,3,null),i=$(t,`formatString`,3,`yyyy-MM-dd HH:mm`),a=$(t,`min`,3,null),o=$(t,`max`,3,null),s=$(t,`nullable`,3,!0),c=$(t,`placeholder`,3,`Select date & time`),l=$(t,`disabled`,3,!1),u=$(t,`readonly`,3,!1),d=$(t,`locale`,19,()=>typeof navigator<`u`?navigator.language:`en-US`),f=$(t,`firstDayOfWeek`,3,0),p=$(t,`weekNumbers`,3,!1),m=$(t,`hourFormat`,3,`24-hour`),h=$(t,`minuteInterval`,3,1),g=$(t,`dropDownDisplayMode`,3,`both`),_=$(t,`spinButtons`,3,!1),v=$(t,`stepMinutes`,3,1),y=$(t,`autoOpen`,3,!1),b=$(t,`animate`,3,!1),x=$(t,`invalid`,3,!1),S=$(t,`required`,3,!1),C=$o(`sv-dtp`),w=F(()=>t.id??C),T=F(()=>ts(n,t.messages)),E=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),D=Vc({value:()=>r(),onChange:e=>t.onChange?.(e),onCommit:e=>t.onCommit?.(e),onCancel:()=>t.onCancel?.(),formatString:()=>i(),min:()=>a(),max:()=>o(),nullable:()=>s(),locale:()=>d(),dropDownDisplayMode:()=>g(),spinButtons:()=>_(),stepMinutes:()=>v(),disabled:()=>l(),readonly:()=>u(),toggleLabel:()=>H(T).open,clearLabel:()=>H(T).clear,id:()=>H(w),invalid:()=>x(),required:()=>S(),error:()=>t.error,hint:()=>t.hint,ariaLabel:()=>t.ariaLabel}),O=I(null),ee=I(null),te=I(un({top:0,left:0,width:0,openUpward:!1}));function ne(){H(O)&&L(te,Fo(H(O).getBoundingClientRect(),{estimatedHeight:360,minWidth:300}),!0)}Ln(()=>{if(!D.open)return;ne();let e=()=>ne();window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e);let t=e=>{let t=e.target;t&&(H(O)?.contains(t)||H(ee)?.contains(t)||D.closePanel())};return document.addEventListener(`pointerdown`,t,!0),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e),document.removeEventListener(`pointerdown`,t,!0)}});function re(e){y()&&(e.focus(),D.openPanel())}function ie(e){let n=e.relatedTarget;n&&(H(O)?.contains(n)||H(ee)?.contains(n))||t.onCommit?.(D.current)}Tc(e,{get id(){return H(w)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return S()},get dir(){return t.dir},children:(e,n)=>{var r=qc();let i;var u=R(r);let g;var v=R(u),y=e=>{var t=Hc(),n=R(t);ca(n,e=>({...e}),[()=>D.spinProps(1)],void 0,void 0,`svelte-1wyw11g`),ca(B(n,2),e=>({...e}),[()=>D.spinProps(-1)],void 0,void 0,`svelte-1wyw11g`),N(t),K(e,t)};J(v,e=>{_()&&e(y)});var S=B(v,2);ca(S,e=>({class:`sv-dtp__input`,placeholder:c(),...e}),[()=>D.inputProps()],void 0,void 0,`svelte-1wyw11g`,!0),Vn(()=>fa(S,()=>D.text,e=>D.text=e)),Mi(S,e=>re?.(e));var C=B(S,2),w=e=>{var t=Uc();ca(t,e=>({class:`sv-dtp__clear`,...e}),[()=>D.clearProps()],void 0,void 0,`svelte-1wyw11g`),K(e,t)};J(C,e=>{s()&&D.current&&D.isInteractive&&e(w)}),ca(B(C,2),e=>({class:`sv-dtp__toggle`,...e}),[()=>D.toggleProps()],void 0,void 0,`svelte-1wyw11g`),N(u),ya(u,e=>L(O,e),()=>H(O));var ne=B(u,2),ae=e=>{var t=Gc();let n;var r=R(t),i=e=>{var t=Wc(),n=R(t);ca(n,e=>({...e,[Ji]:{"is-active":D.tab===`date`}}),[()=>D.tabProps(`date`)],void 0,void 0,`svelte-1wyw11g`);var r=R(n,!0);N(n);var i=B(n,2);ca(i,e=>({...e,[Ji]:{"is-active":D.tab===`time`}}),[()=>D.tabProps(`time`)],void 0,void 0,`svelte-1wyw11g`);var a=R(i,!0);N(i),N(t),V(()=>{q(r,H(T).date),q(a,H(T).time)}),K(e,t)};J(r,e=>{D.showDateTab&&D.showTimeTab&&e(i)});var s=B(r,2),c=R(s),l=e=>{ac(e,{get value(){return D.current},selectionMode:`one`,get min(){return a()},get max(){return o()},get firstDayOfWeek(){return f()},get weekNumbers(){return p()},get locale(){return d()},get animate(){return b()},get dir(){return H(E)},get onChange(){return D.onCalendarChange}})},u=e=>{yc(e,{get value(){return D.current},get format(){return m()},get minuteInterval(){return h()},footer:!0,get dir(){return H(E)},get onChange(){return D.onTimeChange}})};J(c,e=>{D.tab===`date`&&D.showDateTab?e(l):D.showTimeTab&&e(u,1)}),N(s),N(t),ya(t,e=>L(ee,e),()=>H(ee)),Mi(t,e=>No?.(e)),Mi(t,(e,t)=>Po?.(e,t),()=>({up:H(te).openUpward})),V(()=>{Q(t,`aria-label`,H(T).dialog),Q(t,`dir`,H(E)),n=Ui(t,``,n,{position:`fixed`,top:`${H(te).top}px`,left:`${H(te).left}px`}),t.dir=t.dir}),K(e,t)};J(ne,e=>{D.open&&e(ae)});var oe=B(ne,2),se=e=>{var n=Kc();Z(n),V(e=>{Q(n,`name`,t.name),ra(n,e)},[()=>D.current?D.current.toISOString():``]),K(e,n)};J(oe,e=>{t.name&&e(se)}),N(r),V(()=>{i=X(r,1,`sv-dtp svelte-1wyw11g`,null,i,{"sv-dtp--disabled":l()}),Q(r,`dir`,H(E)),g=X(u,1,`sv-dtp__field svelte-1wyw11g`,null,g,{"is-invalid":x()}),r.dir=r.dir}),U(`focusout`,r,ie),K(e,r)},$$slots:{default:!0}}),Qe()}Yr([`focusout`]);var Yc=new Map;function Xc(e){return Yc.get(e)}function Zc(e){return Yc.has(e)}function Qc(e){return{value:e.value,onChange:e.onChange,onCommit:e.onCommit,onCancel:e.onCancel}}function $c(e,t){return e.props?e.props(t):Qc(t)}function el(e){let t=``;return e.color&&(t+=`color:${e.color};`),e.fontWeight!=null&&(t+=`font-weight:${e.fontWeight};`),t}function tl(e){return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}function nl(e,t){return`${e}:${t}`}function rl(e){if(!e)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.filter(Boolean).join(` `);if(typeof e==`object`){let t=[];for(let[n,r]of Object.entries(e))r&&t.push(n);return t.join(` `)}return``}function il(e){if(e==null||e===``)return``;if(typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e))return e;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?``:t.toISOString().slice(0,10)}function al(e){if(e==null||e===``)return``;if(typeof e==`string`&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(e))return e;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?``:t.toISOString().slice(0,16)}function ol(e){return String(e).replace(/-native$/,``)}function sl(e){if(e instanceof Date)return e;if(typeof e==`string`){let t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?/);if(t){let e=new Date;return e.setHours(Math.min(23,+t[1]),Math.min(59,+t[2]),t[3]?+t[3]:0,0),e}}return null}function cl(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:null}function ll(e,t){let n=ol(e);return n===`date`?il(t):n===`datetime`?al(t):String(t??``)}function ul(e){let t=ol(e);return t===`number`?`number`:t===`date`?`date`:t===`datetime`?`datetime-local`:t===`time`?`time`:t===`password`?`password`:t===`color`?`color`:`text`}function dl(e){return e==null||e===``?[]:Array.isArray(e)?e.filter(e=>e!=null&&e!==``):[e]}function fl(e,t){let n=e.find(e=>e.value===t||String(e.value)===String(t));return n?n.label:String(t??``)}function pl(e,t){return e.find(e=>e.value===t||String(e.value)===String(t))?.color}function ml(e){return e?`background: color-mix(in srgb, ${e} 22%, transparent);border-color: color-mix(in srgb, ${e} 45%, transparent);color: color-mix(in srgb, ${e} 80%, var(--sg-fg, #0f172a));`:``}function hl(e){let t=ol(e);return t===`number`?`sv-grid-cell-editor sv-grid-cell-editor-number`:t===`date`?`sv-grid-cell-editor sv-grid-cell-editor-date`:t===`datetime`?`sv-grid-cell-editor sv-grid-cell-editor-datetime`:t===`color`?`sv-grid-cell-editor sv-grid-cell-editor-color`:`sv-grid-cell-editor`}function gl(e){if(e==null||e===``)return null;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:t}function _l(e,t){return Math.max(8,Math.min(e,window.innerWidth-t-8))}function vl(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e.replace(/"/g,`\\"`)}function yl(e,t){if(e==null||e===``)return NaN;if(t){let t=(e instanceof Date?e:new Date(String(e))).getTime();return Number.isFinite(t)?t:NaN}let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:NaN}function bl(e){let t=Math.abs(e),n=t>=1e3?0:t>=100?1:t>=1?2:4;return e.toLocaleString(void 0,{maximumFractionDigits:n})}function xl(e){return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function Sl(e){return e<=0?0:e>=1?1:e}var Cl=1e5,wl=9e8,Tl=.995;function El(e,t,n){let r=[e,t].filter(e=>Number.isFinite(e)&&e>Cl&&e<wl);return r.length===0?n:Math.floor(Math.min(...r)*Tl)}function Dl(e,t,n){let r=Math.max(t,1),i=Math.min(Math.max(e,0),r),a=e>r,o=Math.max(i-n,1),s=Math.max(e-n,0);return{active:a,domTotal:i,domToLogical(e){return a?Sl(e/o)*s:e},logicalToDom(e){return a?Sl(e/Math.max(s,1))*Math.max(i-n,0):e}}}function Ol(e){function t(){let t={...e.props.features??{}};return e.props.sortable===!0?t.rowSortingFeature=ro:e.props.sortable===!1&&delete t.rowSortingFeature,e.props.filterable===!0?t.columnFilteringFeature=io:e.props.filterable===!1&&delete t.columnFilteringFeature,e.props.groupable===!0?t.columnGroupingFeature=ao:e.props.groupable===!1&&delete t.columnGroupingFeature,oo(t)}return{resolveEffectiveFeatures:t}}function kl(e){function t(t,n){n&&(e.tooltipTimer&&window.clearTimeout(e.tooltipTimer),e.tooltipTimer=window.setTimeout(()=>{let r=t.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,o=r.bottom+64<a;e.tooltip={text:n,x:Math.min(Math.max(r.left+6,10),i-290),y:o?r.bottom+6:r.top-6,below:o}},250))}function n(){e.tooltipTimer&&=(window.clearTimeout(e.tooltipTimer),null),e.tooltip=null}function r(){e.scrollSyncRaf=null,e.scrollVersion+=1,e.rowVirtualizationEnabled&&e.virtualizer.setScrollOffset(e.domToLogicalRowOffset(e.pendingScrollTop)),e.columnVirtualizationEnabled&&e.columnVirtualizer.setHorizontalOffset(e.pendingScrollLeft)}function i(t,n){e.pendingScrollTop=t,e.pendingScrollLeft=n,e.scrollSyncRaf===null&&(e.scrollSyncRaf=requestAnimationFrame(r))}function a(t){let n=t.currentTarget;if(n&&((e.columnMenuFor||e.operatorMenuFor||e.contextMenuFor)&&e.closeMenus(),i(n.scrollTop,n.scrollLeft),e.props.alignedGridGroup!=null&&e.broadcastAlignedScroll(n.scrollLeft),e.props.onScrollBottomReached)){let{scrollTop:t,scrollHeight:r,clientHeight:i}=n,a=t+i>=r-32;a&&e.scrollBottomArmed?(e.scrollBottomArmed=!1,e.props.onScrollBottomReached({scrollTop:t,scrollHeight:r,clientHeight:i})):!a&&!e.scrollBottomArmed&&(e.scrollBottomArmed=!0)}}return{showTooltipFor:t,hideTooltip:n,flushScheduledScrollSync:r,scheduleScrollSync:i,onBodyScroll:a}}function Al(e){return e.ctrlKey&&e.key===`Home`?`gridStart`:e.ctrlKey&&e.key===`End`?`gridEnd`:e.key===`ArrowLeft`?`moveLeft`:e.key===`ArrowRight`?`moveRight`:e.key===`ArrowUp`?`moveUp`:e.key===`ArrowDown`?`moveDown`:e.key===`Home`?`rowStart`:e.key===`End`?`rowEnd`:e.key===`PageUp`?`pageUp`:e.key===`PageDown`?`pageDown`:e.key===`Enter`?e.shiftKey?`moveUp`:`moveDown`:e.key===`Tab`?e.shiftKey?`tabPrev`:`tabNext`:e.key===`F2`||e.key===` `?`activate`:e.key===`Delete`?`clearCells`:`noop`}function jl(e,t,n){let r=n.pageSize??10,i=e.rowIndex,a=e.colIndex;return t===`moveLeft`&&--a,t===`moveRight`&&(a+=1),t===`moveUp`&&--i,t===`moveDown`&&(i+=1),t===`tabNext`&&(a+=1,a>n.maxCol&&(a=0,i+=1)),t===`tabPrev`&&(--a,a<0&&(a=n.maxCol,--i)),t===`rowStart`&&(a=0),t===`rowEnd`&&(a=n.maxCol),t===`gridStart`&&(i=0,a=0),t===`gridEnd`&&(i=n.maxRow,a=n.maxCol),t===`pageUp`&&(i-=r),t===`pageDown`&&(i+=r),i=Math.min(Math.max(i,0),Math.max(n.maxRow,0)),a=Math.min(Math.max(a,0),Math.max(n.maxCol,0)),{rowIndex:i,colIndex:a,cellId:e.cellId}}function Ml(e){function t(t){if(t.target!==t.currentTarget||e.editingCell)return;if((t.ctrlKey||t.metaKey)&&!t.altKey){let n=t.key.toLowerCase();if(n===`c`){t.preventDefault(),e.copySelectionToClipboard();return}if(n===`v`){typeof navigator.clipboard?.readText==`function`&&(t.preventDefault(),e.pasteFromClipboard());return}if(n===`x`){t.preventDefault(),e.cutSelectionToClipboard();return}if(n===`z`&&!t.shiftKey){if(t.preventDefault(),e.historyPtr>=0){let t=e.history[e.historyPtr];t&&(e.applyHistoryStep(t,`undo`),--e.historyPtr,e.historyVersion+=1)}return}if(n===`z`&&t.shiftKey||n===`y`){if(t.preventDefault(),e.historyPtr<e.history.length-1){let t=e.history[e.historyPtr+1];t&&(e.applyHistoryStep(t,`redo`),e.historyPtr+=1,e.historyVersion+=1)}return}if(n===`f`){t.preventDefault(),e.findOpen=!0;return}}if(t.key===`Escape`&&e.findOpen){t.preventDefault(),e.findOpen=!1;return}if((t.key===`Delete`||t.key===`Backspace`)&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&e.clearSelectedCells()){t.preventDefault();return}let n=e.grid.getState().activeCell??{rowIndex:0,colIndex:0,cellId:null};if(t.key===`F2`){t.preventDefault(),e.onCellDoubleClick(n.rowIndex,n.colIndex);return}let r=Al(t);if(r===`noop`){t.key.length===1&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&e.startEditingWithChar(n.rowIndex,n.colIndex,t.key)&&t.preventDefault();return}if(t.preventDefault(),r===`clearCells`){e.clearSelectedCellValues();return}if(r===`activate`){let r=e.allRows[n.rowIndex],i=e.allColumns[n.colIndex];if(t.key===` `){r?.toggleSelected?.();return}if(t.ctrlKey&&r?.getCanExpand?.()){r.toggleExpanded?.();return}if(i?.columnDef.editorType===`checkbox`){e.toggleBooleanCell(n.rowIndex,n.colIndex);return}e.onCellDoubleClick(n.rowIndex,n.colIndex);return}function i(){let t=e.grid.getState().pagination?.pageSize;if(t&&t>0)return t;let r=e.scrollContainer?.clientHeight??0,i=e.headerHeight??0,a=typeof e.props.rowHeight==`function`?e.props.rowHeight(n.rowIndex)??30:e.props.rowHeight??30,o=Math.max(0,r-i);return Math.max(1,Math.floor(o/Math.max(a,1))-1)}let a=jl(n,r,{maxRow:Math.max(e.allRows.length-1,0),maxCol:Math.max(e.allColumns.length-1,0),pageSize:i()});e.setActiveCell(a.rowIndex,a.colIndex),e.scrollActiveCellIntoView(a.rowIndex,a.colIndex),t.shiftKey&&(r===`moveLeft`||r===`moveRight`||r===`moveUp`||r===`moveDown`)?e.extendSelection(a.rowIndex,a.colIndex):e.setSelection(a.rowIndex,a.colIndex)}function n(t){t.key===`Escape`&&(e.columnMenuFor||e.operatorMenuFor)&&e.closeMenus()}function r(t,n){if(!e.allColumns.find(e=>e.id===n)?.getCanSort?.())return;let r=e.grid.getState().sorting??[],i=r.find(e=>e.id===n);if(!t.shiftKey){let t=i?i.desc?[]:[{id:n,desc:!0}]:[{id:n,desc:!1}];e.grid.store.setState(e=>({...e,sorting:t}));return}let a=i?i.desc?r.filter(e=>e.id!==n):r.map(e=>e.id===n?{...e,desc:!0}:e):[...r,{id:n,desc:!1}];e.grid.store.setState(e=>({...e,sorting:a}))}return{onGridKeyDown:t,onWindowKeydown:n,onHeaderSortClick:r}}function Nl(e,t){let n=t.columnDef;return n.fieldFn?n.fieldFn(e.original):n.field?e.original[n.field]:e.getCellValueByColumnId(t.id)}function Pl(e){return typeof e.getCanExpand==`function`&&e.getCanExpand()}function Fl(e){let t=e.columnDef.header;return typeof t==`string`?t:e.id}function Il(e,t){let n=e.columnDef.format;return n&&(n.type===`number`||n.type===`currency`||n.type===`percent`)?ka(t,{type:n.type,locales:n.locales,currency:n.type===`currency`?n.currency??`USD`:void 0,valueIsPercentPoints:n.type===`percent`?n.valueIsPercentPoints:void 0,options:n.options}):String(t)}function Ll(e){let t=e.columnDef.align;if(t)return t;let n=e.columnDef.editorType;return n===`number`||n===`date`||n===`datetime`?`right`:n===`checkbox`?`center`:`left`}function Rl(e,t){let n=t.columnDef;if(n.fieldFn)return n.fieldFn(e);let r=n.field;if(r)return e[r]}function zl(e,t){let n=t.columnDef;if(n.fieldFn)return n.fieldFn(e);if(n.field)return e[n.field]}function Bl(e,t){return(e.id??e.field??null)===t}function Vl(e){function t(t,n){let r={},i=t.length,a=Object.keys(e.editedCellValues).length>0;for(let o of n){let n=o.columnDef,s=n.fieldFn,c=n.field,l=o.id,u=0,d=0;for(let n=0;n<i;n+=1){let r=t[n],i,o=s?s(r.original):c?r.original[c]:r.getCellValueByColumnId(l);if(a){let t=nl(r.id,l);i=t in e.editedCellValues?e.editedCellValues[t]:o}else i=o;let f=Number(i);Number.isFinite(f)&&(u+=f,d+=1)}r[l]=d>0?Il(o,u):`Count: ${i}`}return r}function n(e){return e.column!==void 0}return{computeSummaries:t,hasRenderedColumn:n}}function Hl(e){function t(t,n){e.filterRowValues={...e.filterRowValues,[t]:n};let r=e.filterMenuValues[t]??{operator:`contains`,value:``};e.filterMenuValues={...e.filterMenuValues,[t]:{...r,value:n}}}function n(t,n){let r=e.filterMenuValues[t]??{operator:`contains`,value:``};e.filterMenuValues={...e.filterMenuValues,[t]:{...r,operator:n}}}function r(t,n){let r=e.filterMenuValues[t]??{operator:`contains`,value:``};e.filterMenuValues={...e.filterMenuValues,[t]:{...r,value:n}},e.filterRowValues={...e.filterRowValues,[t]:n}}function i(t,n){let r=e.filterMenuValues[t]??{operator:`between`,value:``};e.filterMenuValues={...e.filterMenuValues,[t]:{...r,valueTo:n}}}function a(e,t){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),t())}function o(t){if(e.valueFilters[t])return!0;let n=e.filterMenuValues[t];return!!(n&&(n.operator===`isBlank`||n.value.trim()))}function s(){e.columnMenuFor=null,e.filterMenuFor=null,e.operatorMenuFor=null,e.chooseColumnsPos=null}function c(t){t.stopPropagation();let n=t.currentTarget,r=(n.closest(`.sv-grid-menu`)??n).getBoundingClientRect(),i=r.right+4;e.chooseColumnsPos={x:i+240+8>window.innerWidth?_l(r.left-240-4,240):_l(i,240),y:r.top}}function l(t,n){t.stopPropagation();let r=e.columnMenuFor===n;if(s(),r)return;let i=t.currentTarget.getBoundingClientRect();e.columnMenuPos={x:_l(i.right-240,240),y:i.bottom+4},e.columnMenuTab=`general`,e.columnMenuFor=n}function u(t,n){t.stopPropagation();let r=e.filterMenuFor===n;if(s(),r)return;if(!e.showColumnFiltersEffective&&e.showFilterRowEffective){let t=e.scrollContainer?.querySelector(`[data-svgrid-filter-col="${vl(n)}"]`);t&&(t.focus(),t.select(),t.classList.add(`sv-grid-filter-value-pulse`),setTimeout(()=>t.classList.remove(`sv-grid-filter-value-pulse`),700));return}let i=t.currentTarget.getBoundingClientRect();e.filterMenuPos={x:_l(i.right-260,260),y:i.bottom+4},e.columnMenuSearch=``,e.filterMenuFor=n}function d(t,n){t.stopPropagation();let r=e.operatorMenuFor===n;if(s(),r)return;let i=t.currentTarget.getBoundingClientRect();e.operatorMenuPos={x:_l(i.left,184),y:i.bottom+4},e.operatorMenuFor=n}function f(t,n){e.grid.store.setState(e=>({...e,sorting:[{id:t,desc:n}]})),s()}function p(t){e.grid.store.setState(e=>({...e,sorting:(e.sorting??[]).filter(e=>e.id!==t)})),s()}function m(t){let n=e.grid.getState().grouping??[];if(n.includes(t)){s();return}e.grid.setGrouping([...n,t]),s()}function h(t){let n=e.grid.getState().grouping??[];e.grid.setGrouping(n.filter(e=>e!==t)),s()}function g(t,n){let r=e.valueFilters[t];return r?r.has(n):!0}function _(t,n){let r=e.columnMenuFacetValues,i=new Set(e.valueFilters[t]??r);if(i.has(n)?i.delete(n):i.add(n),i.size===r.length){let n={...e.valueFilters};delete n[t],e.valueFilters=n}else e.valueFilters={...e.valueFilters,[t]:i}}function v(t){let n=e.valueFilters[t];return!n||n.size>=e.columnMenuFacetValues.length}function y(t){if(v(t))e.valueFilters={...e.valueFilters,[t]:new Set};else{let n={...e.valueFilters};delete n[t],e.valueFilters=n}}function b(t){if(e.valueFilters[t]){let n={...e.valueFilters};delete n[t],e.valueFilters=n}if(e.filterMenuValues[t]){let n={...e.filterMenuValues};delete n[t],e.filterMenuValues=n}if(e.filterRowValues[t]){let n={...e.filterRowValues};delete n[t],e.filterRowValues=n}}function x(t,n){return e.props.externalPagination===!0?(e.props.onPaginationChange?.({pageIndex:Math.max(0,t),pageSize:n}),e.scrollContainer?.scrollTo?.({top:0}),!0):!1}function S(t){x((e.props.pageIndex??0)+t,e.props.pageSize??10)||(e.grid.setPagination(e=>({...e,pageIndex:Math.max((e?.pageIndex??0)+t,0)})),e.scrollContainer?.scrollTo?.({top:0}))}function C(t){x(t,e.props.pageSize??10)||(e.grid.setPagination(e=>({...e,pageIndex:Math.max(0,t)})),e.scrollContainer?.scrollTo?.({top:0}))}function w(t){x(0,t)||e.grid.setPagination(e=>{let n=e?.pageSize??10,r=(e?.pageIndex??0)*n;return{...e,pageSize:t,pageIndex:Math.max(0,Math.floor(r/t))}})}function T(t,n){let r=e.internalData.slice(),i=t.row?r.indexOf(t.row):-1,a=i<0?r.length:i+n;r.splice(a,0,{}),e.internalData=r}function E(t){t.row&&(e.internalData=e.internalData.filter(e=>e!==t.row))}function D(t){e.internalColumns=e.internalColumns.filter(e=>(e.id??e.field)!==t.columnId)}let O={copy:{label:`Copy`,run:()=>e.copySelectionToClipboard()},cut:{label:`Cut`,run:()=>e.cutSelectionToClipboard()},paste:{label:`Paste`,run:()=>void e.pasteFromClipboard()},clear:{label:`Clear`,run:()=>e.clearSelectedCells()},row_above:{label:`Insert row above`,run:e=>T(e,0)},row_below:{label:`Insert row below`,run:e=>T(e,1)},remove_row:{label:`Remove row`,run:E},remove_col:{label:`Remove column`,run:D},comment:{label:`Edit comment`,run:e=>re(e)}},ee=[`copy`,`cut`,`paste`,`clear`,`separator`,`row_above`,`row_below`,`remove_row`,`separator`,`remove_col`];function te(t,n,r,i){if(!e.props.contextMenu)return;t.preventDefault(),s(),e.contextMenuFor=null;let a=e.allRows[n],o=a?.original??null,c=a?.id??String(n),l=t.clientY+280>window.innerHeight?Math.max(8,t.clientY-280):t.clientY;e.contextMenuPos={x:_l(t.clientX,220),y:l},e.contextMenuFor={rowIndex:n,colIndex:r,columnId:i,rowId:c,row:o}}function ne(){e.contextMenuFor=null}function re(t){e.commentDraft=e.noteOverrides?.[t.rowId]?.[t.columnId]??e.props.notes?.[t.rowId]?.[t.columnId]??``,e.commentEditFor={rowId:t.rowId,columnId:t.columnId,x:e.contextMenuPos.x,y:e.contextMenuPos.y},e.contextMenuFor=null}function ie(t,n,r){let i={...e.noteOverrides};i[t]={...i[t]??{},[n]:r},e.noteOverrides=i,e.props.onNoteChange?.({rowId:t,columnId:n,note:r})}function ae(){let t=e.commentEditFor;t&&(ie(t.rowId,t.columnId,e.commentDraft),e.commentEditFor=null)}function oe(){let t=e.commentEditFor;t&&(ie(t.rowId,t.columnId,``),e.commentEditFor=null)}function se(){e.commentEditFor=null}function ce(){let t=e.contextMenuFor;if(!t)return[];let n=e.props.contextMenu,r=Array.isArray(n)?n:[...ee,...e.props.editableComments?[`separator`,`comment`]:[]],i=[];for(let e of r){if(e===`separator`){i.push({key:`sep`+i.length,label:``,separator:!0});continue}if(typeof e==`string`){let n=O[e];if(!n)continue;i.push({key:e,label:n.label,run:()=>n.run(t)});continue}e.hidden?.(t)||i.push({key:e.key,label:e.label,disabled:e.disabled?.(t)??!1,run:()=>e.action(t)})}return i.filter((e,t,n)=>!e.separator||t>0&&t<n.length-1&&!n[t-1]?.separator)}return{updateFilterRow:t,updateFilterOperator:n,updateFilterMenuValue:r,updateFilterMenuValueTo:i,toggleCheckboxWithKeyboard:a,isColumnFiltered:o,closeMenus:s,openChooseColumns:c,openColumnMenu:l,openFilterMenu:u,openOperatorMenu:d,sortColumnFromMenu:f,clearColumnSort:p,groupByColumnFromMenu:m,clearGroupingFromMenu:h,isFacetChecked:g,toggleFacetValue:_,isAllFacetsChecked:v,toggleAllFacets:y,clearColumnFilter:b,changePage:S,goToPage:C,setPageSize:w,openContextMenu:te,closeContextMenu:ne,contextMenuItems:ce,saveComment:ae,removeComment:oe,closeCommentEditor:se}}function Ul(e){function t(t,n,r){let i=e.props.conditionalFormats;return i?.length?za(r,t.original,n.id,i,e.conditionalColumnStats.get(n.id)??null):null}function n(t,n){return e.props.rowClass?rl(e.props.rowClass({row:t.original,rowIndex:n})):``}function r(e,t){let n=t.columnDef.cellClass;return n==null?``:typeof n==`string`||Array.isArray(n)?rl(n):typeof n==`function`?rl(n({row:e,column:t,cell:void 0,table:void 0,getValue:()=>e.getCellValueByColumnId(t.id)})):``}function i(e,t){let n=t.columnDef.tooltip;if(n==null)return null;if(typeof n==`string`)return n||null;if(typeof n==`function`){let r=n({row:e,column:t,cell:void 0,table:void 0,getValue:()=>e.getCellValueByColumnId(t.id)});return r?String(r):null}return null}function a(t,n){let r=n.columnDef.validate;if(typeof r!=`function`)return{invalid:!1,message:null};let i=e.editedCellValues??{},a=nl(t.id,n.id),o=r({value:a in i?i[a]:t.getCellValueByColumnId(n.id),row:t.original,rowIndex:t.index,column:n});if(o==null||o===!0)return{invalid:!1,message:null};if(o===!1)return{invalid:!0,message:null};let s=String(o);return{invalid:!0,message:s.trim()?s:null}}function o(t,n){let r=e.noteOverrides?.[t.id]?.[n.id];if(r!==void 0)return r.trim()?r:null;let i=e.props.notes;if(!i)return null;let a=i[t.id];if(!a)return null;let o=a[n.id];return o&&o.trim()?o:null}function s(t,n){let r=t.columnDef.editorOptions;if(typeof r==`function`)return n?.original?ry(r(n.original)):[];let i=t.id;return(!e.editorOptionsCache[i]||e.editorOptionsCache[i+`__src`]!==r)&&(e.editorOptionsCache[i]=ry(r),e.editorOptionsCache[i+`__src`]=r),e.editorOptionsCache[i]}function c(e,t,n){let r=s(e,n),i=e.columnDef.editorSeparator??`, `;return Array.isArray(t)?t.map(e=>fl(r,e)).join(i):t==null||t===``?``:fl(r,t)}function l(t,n,r){let i=t.columnDef.formatter;if(typeof i==`function`){let a=i({value:n,row:r,column:t,table:e.grid});return String(a??``)}if(t.columnDef.editorType===`password`){let e=String(n??``);return e.length>0?`•`.repeat(Math.min(e.length,12)):``}let a=t.columnDef.format;if(!a)return String(n??``);if(a.type===`number`||a.type===`currency`||a.type===`percent`)return ka(n,{type:a.type,locales:a.locales,currency:a.type===`currency`?a.currency??`USD`:void 0,valueIsPercentPoints:a.type===`percent`?a.valueIsPercentPoints:void 0,options:a.options});if(a.type===`date`||a.type===`datetime`){let e=gl(n);if(e){let t=wa(a.pattern,a.type),n=t||a.options?{...t,...a.options}:a.type===`date`?{year:`numeric`,month:`2-digit`,day:`2-digit`}:{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};return Oa(a.locales,n).format(e)}}return String(n??``)}function u(t,n){let r=t.columnDef,i=r.formatter;if(typeof i==`function`)return String(i({value:n,row:null,column:t,table:e.grid})??``);if(r.editorType===`password`){let e=String(n??``);return e.length>0?`•`.repeat(Math.min(e.length,12)):``}let a=r.format;if(!a)return String(n??``);if(a.type===`number`||a.type===`currency`||a.type===`percent`)return ka(n,{type:a.type,locales:a.locales,currency:a.type===`currency`?a.currency??`USD`:void 0,valueIsPercentPoints:a.type===`percent`?a.valueIsPercentPoints:void 0,options:a.options});if(a.type===`date`||a.type===`datetime`){let e=gl(n);if(e){let t=wa(a.pattern,a.type),n=t||a.options?{...t,...a.options}:a.type===`date`?{year:`numeric`,month:`2-digit`,day:`2-digit`}:{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};return Oa(a.locales,n).format(e)}}return String(n??``)}function d(e,t){let n=t.columnDef.cellClass;if(typeof n!=`function`)return``;let r=Rl(e,t),i=n({getValue:()=>r,value:r,row:null,column:t});return i?String(i):``}return{cellConditionalFormat:t,computeRowClass:n,computeCellClass:r,computeCellTooltip:i,computeCellValidity:a,computeCellNote:o,getColumnEditorOptions:s,formatListCellValue:c,formatCellValue:l,formatPinnedValue:u,computePinnedCellClass:d}}function Wl(e){function t(t,n){let r=t.columnDef.editable;if(r===!1)return!1;if(typeof r!=`function`||!n)return!0;let i={cell:{id:`${n.id}_${t.id}`,row:n,column:t,getValue:()=>Nl(n,t),getContext:()=>i},row:n,column:t,table:e.grid,getValue:()=>Nl(n,t)};try{return r(i)!==!1}catch{return!1}}function n(n,r){let i=e.allRows[n],a=e.allColumns[r];return a?t(a,i):!1}function r(t,n){let r=e.allColumns.find(e=>e.id===n);return r?Nl(t,r):t.getCellValueByColumnId(n)}function i(t,n,r){let i=nl(t,n);return i in e.editedCellValues?e.editedCellValues[i]:r}function a(n,r,i){if(!e.editingEnabled)return!1;let a=e.allRows[n],o=e.allColumns[r];if(!a||!o||Pl(a)||!t(o,a))return!1;let s=o.columnDef.editorType??`text`;return s===`checkbox`||s===`date`||s===`datetime`||s===`list`||s===`chips`||s===`number`&&!/[0-9.+\-]/.test(i)?!1:(e.editorSelectAll=!1,e.editingCell={rowId:a.id,columnId:o.id,editorType:s,value:i},e.setActiveCell(n,r),e.setSelection(n,r),!0)}function o(){if(!e.editingCell)return;let t=e.allRows.find(t=>t.id===e.editingCell?.rowId),n=e.allColumns.find(t=>t.id===e.editingCell?.columnId),r=iy(e.editingCell.editorType,e.editingCell.value,{multiple:n?.columnDef.editorMultiple===!0}),i,a=r;if(t?.original&&n?.columnDef.field){i=t.original[n.columnDef.field];let o=n.columnDef.valueParser;o&&(a=o({newValue:r,oldValue:i,rawInput:e.editingCell.value,data:t.original,columnId:e.editingCell.columnId})),t.original[n.columnDef.field]=a}let o=nl(e.editingCell.rowId,e.editingCell.columnId);if(e.editedCellValues={...e.editedCellValues,[o]:a},e.grid.store.setState(e=>({...e})),i!==a&&t?.original&&n?.columnDef.field){let t={rowId:e.editingCell.rowId,columnId:e.editingCell.columnId,field:n.columnDef.field,before:i,after:a},r=e.history.slice(0,e.historyPtr+1);if(r.push(t),r.length>e.UNDO_LIMIT){let t=r.length-e.UNDO_LIMIT;e.history=r.slice(t),e.historyPtr=e.history.length-1}else e.history=r,e.historyPtr=e.history.length-1;e.historyVersion+=1}if(e.props.onCellValueChange&&t?.original&&n){let r=e.internalData.indexOf(t.original);e.props.onCellValueChange({rowIndex:r,columnId:n.id,oldValue:i,newValue:a,row:t.original})}e.editingCell=null}function s(t,n){let r=e.allRows.find(e=>e.id===t.rowId),i=e.allColumns.find(e=>e.id===t.columnId);if(!r?.original||!i)return;let a=n===`undo`?t.before:t.after;r.original[t.field]=a;let o=nl(t.rowId,t.columnId);if(e.editedCellValues={...e.editedCellValues,[o]:a},e.grid.store.setState(e=>({...e})),e.props.onCellValueChange){let i=e.internalData.indexOf(r.original);e.props.onCellValueChange({rowIndex:i,columnId:t.columnId,oldValue:n===`undo`?t.after:t.before,newValue:a,row:r.original})}}function c(t){e.editingCell=e.editingCell?{...e.editingCell,value:t}:e.editingCell}function l(t){t.stopPropagation(),t.key===`Enter`?(t.preventDefault(),o(),e.gridRootEl?.focus({preventScroll:!0})):t.key===`Escape`&&(t.preventDefault(),e.editingCell=null,e.gridRootEl?.focus({preventScroll:!0}))}function u(t){let n=e.editorSelectAll;requestAnimationFrame(()=>{t.focus({preventScroll:!0});try{if(n)t.select();else{let e=t.value.length;t.setSelectionRange(e,e)}}catch{}})}function d(n,r){if(!e.editingEnabled)return;let a=e.allRows[n],o=e.allColumns[r];if(!a||!o||Pl(a))return;if(e.props.fullRowEditing){if(e.fullRowEdit?.rowId===a.id)return;_(n);return}if(!t(o,a)||e.editingCell?.rowId===a.id&&e.editingCell?.columnId===o.id)return;let s=o.columnDef.editorType??`text`;e.editorSelectAll=!0;let c=i(a.id,o.id,a.getCellValueByColumnId(o.id));(s===`list`||s===`chips`)&&(o.columnDef.editorMultiple?c=dl(c):Array.isArray(c)&&(c=c[0]??``)),e.editingCell={rowId:a.id,columnId:o.id,editorType:s,value:c},e.setActiveCell(n,r),e.setSelection(n,r)}async function f(){if(!navigator.clipboard?.readText)return;let e;try{e=await navigator.clipboard.readText()}catch{return}m(e)}function p(t){if(e.editingCell||typeof navigator.clipboard?.readText==`function`)return;let n=t.clipboardData?.getData(`text/plain`)??``;n&&(t.preventDefault(),m(n))}function m(t){let r=e.selectionRange.anchor??e.grid.getState().activeCell;if(!r)return;let i=e.selectionRange.focus??r,a=Math.min(r.rowIndex,i.rowIndex),o=Math.min(r.colIndex,i.colIndex),s=Math.max(r.rowIndex,i.rowIndex),c=Math.max(r.colIndex,i.colIndex),l=t.replace(/\r\n/g,`
|
|
115
|
-
`).split(`
|
|
116
|
-
`);if(l.length>0&&l[l.length-1]===``&&l.pop(),!l.length)return;let u=l.length===1&&(l[0]?.split(` `).length??0)===1&&(a!==s||o!==c),d=u?s-a+1:l.length,f=u?c-o+1:Math.max(...l.map(e=>e.split(` `).length)),p=e.internalData.slice();for(let t=0;t<d;t+=1){let r=a+t,i=e.allRows[r];if(!i||Pl(i))continue;let s=Number(i.id);if(!Number.isInteger(s)||s<0||s>=p.length)continue;let c=p[s];if(!c)continue;let d=u?null:l[t]?.split(` `)??[],m={...c};for(let t=0;t<f;t+=1){let i=e.allColumns[o+t];if(!i?.columnDef.field||!n(r,o+t))continue;let a=i.columnDef.editorType??`text`,s=u?l[0]:d?.[t]??``;m[i.columnDef.field]=iy(a,s)}p[s]=m}e.internalData=p,e.grid.store.setState(e=>({...e}))}function h(n,r){if(!e.editingEnabled)return!1;let i=e.allRows[n];if(!i||Pl(i))return!1;let a=e.allColumns.findIndex(e=>e.id===r);if(a<0)return!1;let o=e.allColumns[a];return t(o,i)?e.editingCell?.rowId===i.id&&e.editingCell?.columnId===r?!0:(d(n,a),e.editingCell?.rowId===i.id&&e.editingCell?.columnId===r):!1}function g(t=!1){return e.editingCell?(t?e.editingCell=null:o(),!0):!1}function _(n){if(!e.editingEnabled||!e.props.fullRowEditing)return!1;let r=e.allRows[n];if(!r||Pl(r))return!1;e.fullRowEdit&&e.fullRowEdit.rowId!==r.id&&y(),e.editingCell=null;let a={};for(let n of e.allColumns)n.columnDef.field&&t(n,r)&&(a[n.id]=i(r.id,n.id,r.getCellValueByColumnId(n.id)));return e.fullRowEdit={rowId:r.id,draft:a},e.setActiveCell(n,Math.max(0,e.allColumns.findIndex(e=>e.id in a))),!0}function v(t,n){let r=e.fullRowEdit;r&&(e.fullRowEdit={rowId:r.rowId,draft:{...r.draft,[t]:n}})}function y(){let t=e.fullRowEdit;if(!t)return;let n=e.allRows.find(e=>e.id===t.rowId);if(!n?.original){e.fullRowEdit=null;return}let r=[];for(let i of e.allColumns){if(!(i.id in t.draft))continue;let a=i.columnDef.field;if(!a)continue;let o=iy(i.columnDef.editorType??`text`,t.draft[i.id],{multiple:i.columnDef.editorMultiple===!0}),s=n.original[a],c=i.columnDef.valueParser,l=c?c({newValue:o,oldValue:s,rawInput:String(t.draft[i.id]??``),data:n.original,columnId:i.id}):o;if(s!==l){n.original[a]=l;let o=nl(t.rowId,i.id);e.editedCellValues={...e.editedCellValues,[o]:l},r.push({columnId:i.id,field:a,before:s,after:l})}}if(r.length){let n=e.history.slice(0,e.historyPtr+1);for(let e of r)n.push({rowId:t.rowId,columnId:e.columnId,field:e.field,before:e.before,after:e.after});n.length>e.UNDO_LIMIT&&(n=n.slice(n.length-e.UNDO_LIMIT)),e.history=n,e.historyPtr=e.history.length-1,e.historyVersion+=1}if(e.grid.store.setState(e=>({...e})),e.props.onCellValueChange&&r.length){let t=e.internalData.indexOf(n.original);for(let i of r)e.props.onCellValueChange({rowIndex:t,columnId:i.columnId,oldValue:i.before,newValue:i.after,row:n.original})}e.fullRowEdit=null}function b(){e.fullRowEdit=null}return{isCellEditable:t,isCellEditableAt:n,getRowColumnValue:r,getCellDisplayValue:i,startEditingWithChar:a,startEditing:h,stopEditing:g,startFullRowEdit:_,setFullRowDraft:v,commitFullRowEdit:y,cancelFullRowEdit:b,saveEditingCell:o,applyHistoryStep:s,updateEditingCellValue:c,onEditorKeyDown:l,focusOnMount:u,onCellDoubleClick:d,pasteFromClipboard:f,onGridPaste:p}}function Gl(e){function t(t){return!!e.rowSelectionState[t]}function n(t){e.grid.setRowSelection(e=>({...e,[t]:!e[t]}))}function r(){let t=e.allRows.filter(e=>!Pl(e)),n=e.headerSelectionState!==`all`;e.grid.setRowSelection(e=>{let r={...e};for(let e of t)n?r[e.id]=!0:delete r[e.id];return r})}function i(t,n){if(e.userHasActivatedCell=!0,e.grid.setActiveCell({rowIndex:t,colIndex:n,cellId:fy(`svgrid`,t,n)}),e.props.onActiveCellChange){let r=e.allColumns[n];e.props.onActiveCellChange({rowIndex:t,colIndex:n,columnId:r?.id??``})}}function a(t,n){if(!e.scrollContainer||t<0||t>=e.allRows.length||n<0||n>=e.allColumns.length)return;if(e.rowVirtualizationEnabled){let n=e.scrollContainer,r=n.querySelector(`tr.sv-grid-row [data-svgrid-row="${t}"]`)?.closest(`tr.sv-grid-row`);if(r)r.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:`instant`});else if(e.rowScrollScalingActive){let r=e.theadEl?.offsetHeight??e.headerHeight??0,i=e.virtualizer.getOffsetForIndex(t),a=Math.max(e.logicalToDomRowOffset(i)-r,0);Math.abs(a-n.scrollTop)>.5&&(n.scrollTop=a)}else{let r=n.scrollTop,i=n.clientHeight,a=e.theadEl?.offsetHeight??e.headerHeight??0,o=a+e.virtualizer.getOffsetForIndex(t),s=o+e.virtualizer.getSizeForIndex(t),c=r;o<r+a?c=o-a:s>r+i&&(c=s-i),c=Math.max(c,0),c!==r&&(n.scrollTop=c)}}else{let r=e.scrollContainer.querySelector(`td[data-svgrid-row="${t}"][data-svgrid-col="${n}"]`);if(r){e.theadEl?.offsetHeight;let t=e.scrollContainer.getBoundingClientRect(),n=r.getBoundingClientRect(),i=n.top-t.top,a=n.bottom-t.top,o=e.scrollContainer.clientHeight,s=e.scrollContainer.scrollTop;i<e.headerHeight?s=e.scrollContainer.scrollTop+i-e.headerHeight:a>o&&(s=e.scrollContainer.scrollTop+a-o),s=Math.max(s,0),s!==e.scrollContainer.scrollTop&&(e.scrollContainer.scrollTop=s)}}let r=e.renderedColumnItems.find(e=>e.index===n),i=e.props.columnWidth??140,a=r?.start??e.columnVirtualizer?.getOffsetForIndex?.(n)??n*i,o=a+(r?.size??e.columnVirtualizer?.getSizeForIndex?.(n)??i),s=e.scrollContainer.scrollLeft,c=s+e.scrollContainer.clientWidth;a<s?e.scrollContainer.scrollLeft=a:o>c&&(e.scrollContainer.scrollLeft=o-e.scrollContainer.clientWidth)}function o(e){let t=e?.anchor,n=e?.focus;return!t||!n?null:{minRow:Math.min(t.rowIndex,n.rowIndex),maxRow:Math.max(t.rowIndex,n.rowIndex),minCol:Math.min(t.colIndex,n.colIndex),maxCol:Math.max(t.colIndex,n.colIndex)}}function s(){let t=[];for(let n of e.selectionRanges??[]){let e=o(n);e&&t.push(e)}let n=o(e.selectionRange);return n&&t.push(n),t}function c(t,n,r=!1){if(!e.enableCellSelectionEffective)return;if(r){let t=e.selectionRange;t.anchor&&t.focus&&(e.selectionRanges=[...e.selectionRanges,t])}else e.selectionRanges=[];let i={rowIndex:t,colIndex:n};e.selectionRange={anchor:i,focus:i}}function l(t,n){e.enableCellSelectionEffective&&(e.selectionRange={anchor:e.selectionRange.anchor??{rowIndex:t,colIndex:n},focus:{rowIndex:t,colIndex:n}})}function u(e,t){for(let n of s())if(e>=n.minRow&&e<=n.maxRow&&t>=n.minCol&&t<=n.maxCol)return!0;return!1}function d(e,t){for(let n of s())if(!(e<n.minRow||e>n.maxRow||t<n.minCol||t>n.maxCol))return{top:e===n.minRow,bottom:e===n.maxRow,left:t===n.minCol,right:t===n.maxCol};return null}function f(t,n){let r=e.fillDrag;if(!r)return!1;let i=Math.min(r.sourceMinRow,r.targetRow),a=Math.max(r.sourceMaxRow,r.targetRow),o=Math.min(r.sourceMinCol,r.targetCol),s=Math.max(r.sourceMaxCol,r.targetCol);return t<i||t>a||n<o||n>s?!1:!(t>=r.sourceMinRow&&t<=r.sourceMaxRow&&n>=r.sourceMinCol&&n<=r.sourceMaxCol)}function p(t,n){let r=e.fillDrag;if(!r)return null;let i=Math.min(r.sourceMinRow,r.targetRow),a=Math.max(r.sourceMaxRow,r.targetRow),o=Math.min(r.sourceMinCol,r.targetCol),s=Math.max(r.sourceMaxCol,r.targetCol);if(t<i||t>a||n<o||n>s)return null;let c=t===i,l=t===a,u=n===o,d=n===s;return!c&&!l&&!u&&!d?null:{top:c,bottom:l,left:u,right:d}}function m(t){return e.allColumns.find(e=>e.id===t)}function h(t,n,r){if(r.button!==0)return;let a=e.allRows[t],o=e.allColumns[n];if(!a||!o||Pl(a))return;let s=e.grid.getState().activeCell;e.activeAtPointerDown=s?{rowIndex:s.rowIndex,colIndex:s.colIndex}:null,r.shiftKey?(l(t,n),i(t,n)):(i(t,n),c(t,n,r.ctrlKey||r.metaKey),r.pointerType!==`touch`&&(e.isDraggingSelection=!0))}function g(t,n){if(!e.isDraggingSelection)return;let r=e.allRows[t];!r||Pl(r)||(l(t,n),i(t,n))}function _(){e.isDraggingSelection=!1,e.fillDrag&&e.onFillPointerUp()}function v(t){if(e.fillDrag){e.onFillPointerMove(t);return}e.isDraggingSelection&&t.buttons===0&&_()}function y(t,n){let r=e.allRows[t],a=e.allColumns[n];if(!r||!a)return;if(e.gridRootEl?.focus({preventScroll:!0}),Pl(r)){i(t,n),r.toggleExpanded?.();return}let o=Nl(r,a),s=e.getCellDisplayValue(r.id,a.id,o);if(e.props.onCellClick?.({rowIndex:t,colIndex:n,columnId:a.id,value:s,row:r.original}),e.props.onRowClick?.({rowIndex:t,columnId:a.id,row:r.original}),a.columnDef.editorType===`checkbox`||typeof s==`boolean`){e.toggleBooleanCell(t,n),i(t,n),c(t,n),e.editingCell=null;return}if(e.activeAtPointerDown!==null&&e.activeAtPointerDown.rowIndex===t&&e.activeAtPointerDown.colIndex===n&&e.editingEnabled){e.onCellDoubleClick(t,n);return}e.editingCell=null}function b(t,n){let r=e.allRows[t],i=e.allColumns[n];if(r&&i&&!Pl(r)){let a=e.getCellDisplayValue(r.id,i.id,Nl(r,i));e.props.onCellDoubleClick?.({rowIndex:t,colIndex:n,columnId:i.id,value:a,row:r.original}),e.props.onRowDoubleClick?.({rowIndex:t,columnId:i.id,row:r.original})}e.onCellDoubleClick(t,n)}return{isRowSelected:t,toggleRowSelectionById:n,toggleSelectAllRows:r,setActiveCell:i,scrollActiveCellIntoView:a,setSelection:c,extendSelection:l,isCellInSelectedRange:u,getCellRangeEdges:d,fillMarqueeEdges:p,getSelectionRects:s,isInFillPreview:f,findColumnById:m,onCellPointerDown:h,onCellPointerEnter:g,endDragSelection:_,onWindowPointerMove:v,onCellClick:y,emitCellDoubleClick:b}}function Kl(e){function t(t){let n=e.pinnedOffsets.left[t];if(n!==void 0)return`position: sticky; left: ${n}px; z-index: 30;`;let r=e.pinnedOffsets.right[t];return r===void 0?``:`position: sticky; right: ${r}px; z-index: 30;`}function n(t){return e.columnPinning.left.includes(t)?`left`:e.columnPinning.right.includes(t)?`right`:null}function r(){return e.allColumns.map(e=>e.id)}function i(){e.props.onColumnOrderChange?.(r())}function a(t){e.userColumnOrder=[...t],i()}function o(e,t,n){if(e===t)return;let i=r().filter(t=>t!==e),o=i.indexOf(t);o<0||(n===`after`&&o++,i.splice(o,0,e),a(i))}function s(t,n){(e.props.enableColumnReorder??!1)&&(e.colDragId=n,t.dataTransfer?.setData(`text/plain`,n),t.dataTransfer.effectAllowed=`move`)}function c(t,n){if(!e.colDragId||e.colDragId===n)return;t.preventDefault(),t.dataTransfer.dropEffect=`move`;let r=t.currentTarget.getBoundingClientRect();e.colDropSide=t.clientX<r.left+r.width/2?`before`:`after`,e.colDropOnId=n}function l(t){e.colDropOnId===t&&(e.colDropOnId=null,e.colDropSide=null)}function u(t,n){t.preventDefault(),e.colDragId&&e.colDropSide&&o(e.colDragId,n,e.colDropSide),e.colDragId=null,e.colDropOnId=null,e.colDropSide=null}function d(){e.colDragId=null,e.colDropOnId=null,e.colDropSide=null}function f(t){let n=e.columnPinning.left.filter(e=>e!==t),r=e.columnPinning.right.filter(e=>e!==t);e.columnPinning={left:[...n,t],right:r},e.closeMenus()}function p(t){e.columnPinning={left:e.columnPinning.left.filter(e=>e!==t),right:[t,...e.columnPinning.right.filter(e=>e!==t)]},e.closeMenus()}function m(t){e.columnPinning={left:e.columnPinning.left.filter(e=>e!==t),right:e.columnPinning.right.filter(e=>e!==t)},e.closeMenus()}function h(t){if(e.hiddenColumns[t]){let n={...e.hiddenColumns};delete n[t],e.hiddenColumns=n}else e.hiddenColumns={...e.hiddenColumns,[t]:!0}}function g(t,n){let r=e.toolPanelColumns.map(e=>e.id),i=r.indexOf(t),a=i+n;i<0||a<0||a>=r.length||([r[i],r[a]]=[r[a],r[i]],e.userColumnOrder=r)}function _(t){let n=e.grid.getState().grouping??[];e.grid.setGrouping(n.includes(t)?n.filter(e=>e!==t):[...n,t])}function v(t){if(e.columnWidths[t]!==void 0)return e.columnWidths[t];let n=e.grid.getAllColumns().find(e=>e.id===t);return n?.columnDef.width===void 0?e.props.columnWidth??140:n.columnDef.width}function y(t){let n=e.fittedColumnWidths?.[t];return n!==void 0&&e.columnWidths[t]===void 0?n:v(t)}function b(t,n){t.stopPropagation(),t.preventDefault(),e.resizingColumnId=n,e.resizeStartX=t.clientX,e.resizeStartWidth=y(n),document.addEventListener(`pointermove`,x),document.addEventListener(`pointerup`,S),document.addEventListener(`pointercancel`,S)}function x(t){e.resizingColumnId&&(e.resizePendingWidth=Math.max(e.MIN_COLUMN_WIDTH,e.resizeStartWidth+(t.clientX-e.resizeStartX)),e.resizeRaf===null&&(e.resizeRaf=requestAnimationFrame(()=>{e.resizeRaf=null,e.resizingColumnId&&(e.columnWidths={...e.columnWidths,[e.resizingColumnId]:e.resizePendingWidth})})))}function S(){e.resizeRaf!==null&&(cancelAnimationFrame(e.resizeRaf),e.resizeRaf=null),e.resizingColumnId&&e.resizePendingWidth&&(e.columnWidths={...e.columnWidths,[e.resizingColumnId]:e.resizePendingWidth}),e.resizingColumnId=null,document.removeEventListener(`pointermove`,x),document.removeEventListener(`pointerup`,S),document.removeEventListener(`pointercancel`,S)}function C(t,n){if(!t)return 0;e.measureCanvas||=document.createElement(`canvas`);let r=e.measureCanvas.getContext(`2d`);return r?(r.font=n,r.measureText(t).width):0}function w(t){if(!e.gridRootEl)return;let n=e.gridRootEl.querySelector(`[data-col-id="${CSS.escape(t)}"]`);if(!n)return;let r=getComputedStyle(n).font,i=e.MIN_COLUMN_WIDTH,a=e.gridRootEl.querySelector(`[data-svgrid-header-col="${CSS.escape(t)}"]`);if(a){let e=a.querySelector(`.sv-grid-header-label`)??a,t=e.textContent??``;i=Math.max(i,C(t,getComputedStyle(e).font)+70)}e.gridRootEl.querySelectorAll(`[data-col-id="${CSS.escape(t)}"]`).forEach(e=>{let t=C(e.textContent??``,r);t>i&&(i=t)}),e.columnWidths={...e.columnWidths,[t]:Math.max(e.MIN_COLUMN_WIDTH,Math.ceil(i)+24)}}function T(){for(let t of e.allColumns)w(t.id)}function E(){e.columnWidths={},e.hiddenColumns={},e.columnPinning={left:[],right:[]}}return{cellPinStyle:t,isColumnPinned:n,getCurrentColumnOrder:r,emitColumnOrder:i,setColumnOrderInternal:a,applyColumnDrop:o,onColumnHeaderDragStart:s,onColumnHeaderDragOver:c,onColumnHeaderDragLeave:l,onColumnHeaderDrop:u,onColumnHeaderDragEnd:d,pinColumnLeft:f,pinColumnRight:p,unpinColumn:m,toggleColumnVisibleInPanel:h,moveColumnInPanel:g,toggleGroupInPanel:_,getColumnBaseWidth:v,getColumnWidth:y,startColumnResize:b,onColumnResizeMove:x,endColumnResize:S,measureText:C,autosizeColumn:w,autosizeAllColumns:T,resetColumns:E}}var ql=null,Jl=0;function Yl(e){let t=++Jl,n=()=>e.props.rowDragManaged===!0,r=()=>e.props.rowDragGroup??null;function i(t){let n=e.allRows[t];return n?n.original:null}function a(){return!n()||!ql?!1:ql.gridId===t?!0:ql.group!=null&&ql.group===r()}function o(){e.rowDragActive=!1,e.rowDropIndex=null,e.rowDropSide=null}function s(n,r,i,a){e.props.onRowDragEnd?.({row:n,toIndex:r,sameGrid:i,fromGridId:a,toGridId:t})}function c(a,o){if(!n())return;let s=i(o);if(s!=null){ql={group:r(),gridId:t,row:s,sourceProps:e.props,removeFromSource:()=>{e.internalData=e.internalData.filter(e=>e!==s)}},e.rowDragActive=!0;try{a.dataTransfer?.setData(`text/plain`,String(o)),a.dataTransfer&&(a.dataTransfer.effectAllowed=`move`)}catch{}}}function l(t,n){if(!a())return;t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect=`move`);let r=t.currentTarget.getBoundingClientRect();e.rowDropIndex=n,e.rowDropSide=t.clientY<r.top+r.height/2?`before`:`after`}function u(t){e.rowDropIndex===t&&(e.rowDropIndex=null,e.rowDropSide=null)}function d(n,r){if(!a()||!ql)return;n.preventDefault(),n.stopPropagation();let c=e.rowDropSide??`before`,l=ql.row,u=i(r),d=ql.gridId,f=d===t;o();let p=e.internalData.slice();if(f){let e=p.indexOf(l);if(e<0){ql=null;return}p.splice(e,1)}let m=u==null?p.length:p.indexOf(u);m<0&&(m=p.length),c===`after`&&(m+=1),p.splice(m,0,l),e.internalData=p,f||ql.removeFromSource(),s(l,m,f,d),ql=null}function f(e){a()&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))}function p(n){if(!a()||!ql)return;n.preventDefault();let r=ql.row,i=ql.gridId,c=i===t;o();let l=e.internalData.slice();if(c){let e=l.indexOf(r);e>=0&&l.splice(e,1)}l.push(r),e.internalData=l,c||ql.removeFromSource(),s(r,l.length-1,c,i),ql=null}function m(){o(),ql=null}return{onRowDragStart:c,onRowDragOver:l,onRowDragLeave:u,onRowDrop:d,onRowsContainerDragOver:f,onRowsContainerDrop:p,onRowDragEnd:m,rowDragGridId:t}}var Xl=new Map,Zl=0;function Ql(e){let t=++Zl,n=``,r=()=>e.props.alignedGridGroup??null;function i(){let e=r();if(!e)return[];let n=Xl.get(e);if(!n)return[];let i=[];for(let e of n.values())e.id!==t&&i.push(e);return i}let a={id:t,applyScroll(t){let n=e.scrollContainer;n&&n.scrollLeft!==t&&(n.scrollLeft=t)},applyWidths(t){let r={...e.columnWidths,...t};n=JSON.stringify(r),e.columnWidths=r}};function o(){let e=r();if(!e)return()=>{};let n=Xl.get(e);return n||(n=new Map,Xl.set(e,n)),n.set(t,a),()=>{let n=Xl.get(e);n&&(n.delete(t),n.size||Xl.delete(e))}}function s(e){let t=i();for(let n of t)n.applyScroll(e)}function c(){if(!r())return;let t=JSON.stringify(e.columnWidths??{});if(t===n)return;n=t;let a=e.columnWidths;for(let e of i())e.applyWidths(a)}return{register:o,broadcastScroll:s,broadcastWidths:c,alignedGridId:t}}function $l(e){switch(e){case`number`:return{editorType:`number`};case`boolean`:return{editorType:`checkbox`};case`date`:return{editorType:`date`,format:{type:`date`}};case`dateString`:return{editorType:`date`};default:return{editorType:`text`}}}function eu(e){if(e!=null)return typeof e==`number`&&Number.isFinite(e)?`number`:typeof e==`boolean`?`boolean`:e instanceof Date?`date`:typeof e==`string`&&/^\d{4}-\d{2}-\d{2}([T\s]|$)/.test(e)?`dateString`:`text`}function tu(e,t,n){return e.map(e=>{if(e.columns&&e.columns.length)return{...e,columns:tu(e.columns,t,n)};let r=e.editorType!=null,i=e.cellDataType;if(!i&&n&&!r&&t!=null){let n=e.field;i=eu(e.fieldFn?.(t)??(typeof n==`string`?t[n]:void 0))}if(!i)return e;let a=$l(i);return{...e,editorType:e.editorType??a.editorType,format:e.format??a.format}})}function nu(e,t,n){return e.id??e.field??`${t??`col`}_d_${n}`}function ru(e){let t=new Set,n=new Map,r=new Map;function i(e,a,o){e.forEach((e,s)=>{let c=nu(e,a,s);if(e.columns?.length){let r=e.columns.some(e=>e.columnGroupShow===`open`||e.columnGroupShow===`closed`);r&&(t.add(c),n.set(c,e.openByDefault===!0)),i(e.columns,c,r?c:o)}else{let t=e.columnGroupShow;(t===`open`||t===`closed`)&&o&&r.set(c,{groupId:o,show:t})}})}return i(e,void 0,void 0),{collapsibleGroupIds:t,defaultOpen:n,leafControl:r}}function iu(e,t){let n={};for(let[r,i]of e.leafControl){let e=t.has(i.groupId);(i.show===`open`?e:!e)&&(n[r]=!0)}return n}function au(e){function t(){let t=t=>e.grid.getAllColumns().find(e=>e.id===t),n=()=>e.allColumns.map(e=>({field:e.columnDef.field,header:typeof e.columnDef.header==`string`?e.columnDef.header:e.id,format:e.columnDef.format,align:Ll(e)})).filter(e=>!!e.field),r=t=>{if(t===`all`)return e.internalData;let n=[];for(let r of e.allRows)Pl(r)||t===`selected`&&!e.rowSelectionState[r.id]||n.push(r.original);return n},i=(e,t,i)=>Ua(r(e),n(),{columns:t,rawValues:i});return{getCellValue(n,r){let i=e.internalData[n],a=t(r);if(!(!i||!a)){if(a.columnDef.fieldFn)return a.columnDef.fieldFn(i);if(a.columnDef.field)return i[a.columnDef.field]}},setCellValue(n,r,i){let a=e.internalData[n],o=t(r);if(!a||!o?.columnDef.field)return;let s=e.internalData.slice();s[n]={...a,[o.columnDef.field]:i},e.internalData=s},startEditing(t,n){return e.startEditing(t,n)},stopEditing(t){return e.stopEditing(t??!1)},selectCells(t){if(!t||t.length===0){e.selectionRange={anchor:null,focus:null},e.selectionRanges=[];return}let n=e.internalData.length,r=e.allColumns.length;if(n===0||r===0)return;let i=t.map(([e,t,i,a])=>({anchor:{rowIndex:Math.max(0,Math.min(n-1,Math.min(e,i))),colIndex:Math.max(0,Math.min(r-1,Math.min(t,a)))},focus:{rowIndex:Math.max(0,Math.min(n-1,Math.max(e,i))),colIndex:Math.max(0,Math.min(r-1,Math.max(t,a)))}}));e.selectionRanges=i.slice(0,-1);let a=i[i.length-1];e.selectionRange=a,e.setActiveCell(a.anchor.rowIndex,a.anchor.colIndex)},getSelected(){return e.getSelectionRects().map(e=>[e.minRow,e.minCol,e.maxRow,e.maxCol])},addRow(e,t=`bottom`){this.addRows([e],t)},addRows(t,n=`bottom`){let r=e.internalData.slice();n===`top`?r.unshift(...t):n===`bottom`?r.push(...t):typeof n==`number`&&r.splice(Math.max(0,Math.min(n,r.length)),0,...t),e.internalData=r},removeRow(e){this.removeRows([e])},removeRows(t){let n=new Set(t);e.internalData=e.internalData.filter((e,t)=>!n.has(t))},applyTransaction(t){let n=e.props.getRowId,r=e.internalData.slice(),i=0,a=0,o=0;if(t.remove?.length){let e=new Set,i=new Set;for(let n of t.remove)typeof n==`string`?e.add(n):i.add(n);r=r.filter((t,r)=>{let a=i.has(t)||(n?e.has(n(t,r)):!1);return a&&(o+=1),!a})}if(t.update?.length&&n){let e=new Map;for(let r of t.update)e.set(n(r,0),r);r=r.map((t,r)=>{let i=e.get(n(t,r));return i?(a+=1,i):t})}return t.add?.length&&(r.push(...t.add),i+=t.add.length),e.internalData=r,{added:i,updated:a,removed:o}},addColumn(e,t=`right`){this.addColumns([e],t)},addColumns(t,n=`right`){let r=e.internalColumns.slice();n===`left`?r.unshift(...t):n===`right`?r.push(...t):typeof n==`number`&&r.splice(Math.max(0,Math.min(n,r.length)),0,...t),e.internalColumns=r},removeColumn(t){e.internalColumns=e.internalColumns.filter(e=>!Bl(e,t))},setColumnVisible(t,n){if(n){let n={...e.hiddenColumns};delete n[t],e.hiddenColumns=n}else e.hiddenColumns={...e.hiddenColumns,[t]:!0}},isColumnVisible(t){return!e.hiddenColumns[t]},setSort(t,n){let r=e.allColumns.find(e=>e.id===t);if(r&&!r.getCanSort?.())return;let i=n?[{id:t,desc:n===`desc`}]:(e.grid.getState().sorting??[]).filter(e=>e.id!==t);e.grid.store.setState(e=>({...e,sorting:i}))},clearSort(){e.grid.store.setState(e=>({...e,sorting:[]}))},setGroupBy(t){e.grid.setGrouping([...t])},setFilter(t,n){let r=e.allColumns.find(e=>e.id===t);if(!(r&&!r.getCanFilter?.())){if(!n){this.clearFilter(t);return}e.filterMenuValues={...e.filterMenuValues,[t]:{operator:n.operator,value:n.value??``,...n.operator===`between`?{valueTo:n.valueTo??``}:{},...n.operator2?{operator2:n.operator2,value2:n.value2??``,join:n.join??`AND`,...n.operator2===`between`?{valueTo2:n.valueTo2??``}:{}}:{}}}}},setFacetFilter(t,n){if(!n||n.length===0){if(e.valueFilters[t]){let n={...e.valueFilters};delete n[t],e.valueFilters=n}return}e.valueFilters={...e.valueFilters,[t]:new Set(n)}},clearFilter(t){e.clearColumnFilter(t)},clearAllFilters(){e.filterMenuValues={},e.filterRowValues={},e.valueFilters={},e.globalFilter!==``&&(e.globalFilter=``)},getFilters(){let t={};for(let[n,r]of Object.entries(e.filterMenuValues))t[n]={operator:r.operator,value:r.value,...r.operator===`between`&&r.valueTo?{valueTo:r.valueTo}:{}};return t},getDisplayedRows(){let t=[];for(let n of e.allRows)n.subRows&&n.subRows.length>0||t.push(n.original);return t},getData(){return e.internalData},getColumns(){let t=(e,t)=>({id:e.id,field:e.columnDef.field,header:typeof e.columnDef.header==`string`?e.columnDef.header:e.id,visible:t,format:e.columnDef.format,align:Ll(e)}),n=e.allColumns.map(e=>t(e,!0)),r=new Set(n.map(e=>e.id));for(let i of e.grid.getAllColumns())r.has(i.id)||n.push(t(i,!1));return n},async exportCsv(e={}){let{records:t,fields:n}=i(e.rows??`displayed`,e.columns,e.rawValues),r=await Ja(t,n,{csv:{delimiter:`,`,bom:e.bom??!0},signal:e.signal,onProgress:e.onProgress});return e.download!==!1&&$a(r,`${e.filename??`grid`}.csv`,`text/csv;charset=utf-8`),r},async exportTsv(e={}){let{records:t,fields:n}=i(e.rows??`displayed`,e.columns,e.rawValues),r=await Ja(t,n,{csv:{delimiter:` `,bom:e.bom??!0},signal:e.signal,onProgress:e.onProgress});return e.download!==!1&&$a(r,`${e.filename??`grid`}.tsv`,`text/tab-separated-values;charset=utf-8`),r},async exportJson(e={}){let{records:t,fields:n}=i(e.rows??`displayed`,e.columns,e.rawValues),r=await Ya(t,n,{signal:e.signal,onProgress:e.onProgress});return e.download!==!1&&$a(r,`${e.filename??`grid`}.json`,`application/json`),r},async copyToClipboard(e={}){let{records:t,fields:n,align:r}=i(e.rows??`displayed`,e.columns,e.rawValues),a=e.format??`tsv`,o=a===`markdown`?await Za(t,n,{align:r}):await Ja(t,n,{csv:{delimiter:a===`csv`?`,`:` `,bom:!1}});return await eo(o),o},clearRowSelection(){e.grid.setRowSelection(()=>({})),e.props.onRowSelectionChange?.({},[])},setColumnWidth(t,n){let r=Math.max(e.MIN_COLUMN_WIDTH,Math.floor(n));e.columnWidths={...e.columnWidths,[t]:r}},getColumnWidths(){let t={};for(let n of e.allColumns)t[n.id]=e.getColumnWidth(n.id);return t},autosizeColumn(t){e.autosizeColumn(t)},autosizeAllColumns(){e.autosizeAllColumns()},setColumnPinning(t){e.columnPinning={left:Array.from(new Set(t.left??[])),right:Array.from(new Set(t.right??[]))}},getColumnPinning(){return{left:e.columnPinning.left.slice(),right:e.columnPinning.right.slice()}},setColumnOrder(t){e.setColumnOrderInternal(t)},getColumnOrder(){return e.getCurrentColumnOrder()},setRowExpanded(t,n){e.grid.setExpanded(e=>({...e,[t]:!!n}))},expandAllGroups(){let t={},n=e=>{for(let r of e){r.getCanExpand?.()&&(t[r.id]=!0);let e=r.subRows;e&&e.length>0&&n(e)}};n(e.grid.getRowModel().rows),e.grid.setExpanded(()=>t)},collapseAllGroups(){e.grid.setExpanded(()=>({}))},undo(){if(e.historyPtr<0)return!1;let t=e.history[e.historyPtr];return t?(e.applyHistoryStep(t,`undo`),--e.historyPtr,e.historyVersion+=1,!0):!1},redo(){if(e.historyPtr>=e.history.length-1)return!1;let t=e.history[e.historyPtr+1];return t?(e.applyHistoryStep(t,`redo`),e.historyPtr+=1,e.historyVersion+=1,!0):!1},canUndo(){return e.historyVersion,e.historyPtr>=0},canRedo(){return e.historyVersion,e.historyPtr<e.history.length-1},clearHistory(){e.history=[],e.historyPtr=-1,e.historyVersion+=1},openFind(){e.findOpen=!0},closeFind(){e.findOpen=!1,e.findQuery=``},setFindQuery(t){e.findQuery=t,e.findHitIndex=0},getFindHits(){return e.findHits.slice()},getSelectedRows(){let t=[];for(let n of e.allRows)Pl(n)||e.rowSelectionState[n.id]&&t.push(n.original);return t},getSelectedRowIds(){let t=[];for(let n of e.allRows)!Pl(n)&&e.rowSelectionState[n.id]&&t.push(n.id);return t},selectRows(t,n=!1){let r=new Set(t);e.grid.setRowSelection(e=>{let t=n?{...e}:{};for(let e of r)t[e]=!0;return t})},selectAllRows(){let t={};for(let n of e.allRows)Pl(n)||(t[n.id]=!0);e.grid.setRowSelection(()=>t)},toggleRowSelected(t){e.toggleRowSelectionById(t)},getPageInfo(){let{pageIndex:t,pageSize:n}=e.paginationState,r=e.allRowsBeforePagination.length;return{pageIndex:t,pageSize:n,pageCount:Math.max(1,Math.ceil(r/Math.max(1,n))),total:r}},setPage(t){let n=e.allRowsBeforePagination.length,r=Math.max(1,Math.ceil(n/Math.max(1,e.paginationState.pageSize)));e.goToPage(Math.max(0,Math.min(t,r-1)))},nextPage(){this.setPage(e.paginationState.pageIndex+1)},prevPage(){this.setPage(e.paginationState.pageIndex-1)},firstPage(){this.setPage(0)},lastPage(){let t=e.allRowsBeforePagination.length,n=Math.max(1,Math.ceil(t/Math.max(1,e.paginationState.pageSize)));this.setPage(n-1)},setPageSize(t){e.setPageSize(Math.max(1,Math.floor(t)))},scrollToRow(t){if(!e.scrollContainer)return;let n=Math.max(0,e.allRows.length-1),r=Math.max(0,Math.min(t,n)),i=e.virtualizer.getOffsetForIndex(r);e.scrollContainer.scrollTop=e.logicalToDomRowOffset(i),e.scheduleScrollSync(e.scrollContainer.scrollTop,e.scrollContainer.scrollLeft)},getActiveCell(){let t=e.activeCell;if(!t||t.rowIndex<0||t.colIndex<0)return null;let n=e.allColumns[t.colIndex];return{rowIndex:t.rowIndex,colIndex:t.colIndex,columnId:n?.id??``}},setActiveCell(t,n){let r=Math.max(0,Math.min(t,Math.max(0,e.allRows.length-1))),i=Math.max(0,Math.min(n,Math.max(0,e.allColumns.length-1)));e.setActiveCell(r,i)},getState(){return{sorting:(e.grid.getState().sorting??[]).map(e=>({id:e.id,desc:e.desc})),grouping:[...e.grid.getState().grouping??[]],pagination:{pageIndex:e.paginationState.pageIndex,pageSize:e.paginationState.pageSize},columnWidths:this.getColumnWidths(),columnPinning:this.getColumnPinning(),columnOrder:e.getCurrentColumnOrder(),hiddenColumns:Object.keys(e.hiddenColumns).filter(t=>e.hiddenColumns[t]),globalFilter:e.globalFilter,columnFilters:this.getFilters(),facetFilters:Object.fromEntries(Object.entries(e.valueFilters).map(([e,t])=>[e,Array.from(t)]))}},setState(t){if(t.sorting){let n=t.sorting.map(e=>({id:e.id,desc:e.desc}));e.grid.store.setState(e=>({...e,sorting:n}))}if(t.grouping&&e.grid.setGrouping([...t.grouping]),t.pagination){let n=t.pagination;e.grid.setPagination(e=>({...e,...n}))}if(t.columnWidths&&(e.columnWidths={...t.columnWidths}),t.columnPinning&&(e.columnPinning={left:[...t.columnPinning.left??[]],right:[...t.columnPinning.right??[]]}),t.columnOrder&&e.setColumnOrderInternal(t.columnOrder),t.hiddenColumns){let n={};for(let e of t.hiddenColumns)n[e]=!0;e.hiddenColumns=n}if(t.globalFilter!==void 0&&(e.globalFilter=t.globalFilter),t.columnFilters&&(e.filterMenuValues={...t.columnFilters}),t.facetFilters){let n={};for(let[e,r]of Object.entries(t.facetFilters))n[e]=new Set(r);e.valueFilters=n}},refresh(){e.grid.store.setState(e=>({...e}))}}}return{buildApi:t}}var ou=[[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],[`Q1`,`Q2`,`Q3`,`Q4`]];function su(e,t){if(!t)return e;if(t===t.toUpperCase()&&t!==t.toLowerCase())return e.toUpperCase();if(t===t.toLowerCase()&&t!==t.toUpperCase())return e.toLowerCase();let n=t[0];return n&&n===n.toUpperCase()&&t.slice(1)===t.slice(1).toLowerCase()?e[0].toUpperCase()+e.slice(1).toLowerCase():e}function cu(e){let t=e.map(e=>e.toLowerCase());outer:for(let e of ou){let n=e.map(e=>e.toLowerCase()),r=[];for(let e of t){let t=n.indexOf(e);if(t<0)continue outer;r.push(t)}return{sequence:e,indices:r}}return null}function lu(e,t,n,r){let i=e.sequence.length,a=e.indices[e.indices.length-1],o=t[t.length-1],s=[];for(let t=0;t<r;t+=1){let r=((a+n*(t+1))%i+i)%i;s.push(su(e.sequence[r],o))}return s}function uu(e){let t=[],n=/^(.*?)(\d+)(.*)$/;for(let r of e){let e=r.match(n);if(!e)return null;t.push({prefix:e[1]??``,numStr:e[2]??``,suffix:e[3]??``})}let r=t[0].prefix,i=t[0].suffix;for(let e of t)if(e.prefix!==r||e.suffix!==i)return null;let a=t[0].numStr,o=a.length,s=a.length>1&&a[0]===`0`&&a!==`0`?`0`:``;return{prefix:r,suffix:i,numbers:t.map(e=>Number(e.numStr)),numberFormat:{width:o,padChar:s}}}function du(e,t){let n=String(e);return!t.padChar||n.length>=t.width?n:n.padStart(t.width,t.padChar)}function fu(e){if(e.length<2)return null;let t=e[1]-e[0];for(let n=2;n<e.length;n+=1)if(e[n]-e[n-1]!==t)return null;return t}function pu(e,t){if(e.length===0||t<=0)return[];let n=e.map(e=>Number(e));if(e.every(e=>e!==null&&e!==``&&e!==void 0)&&n.every(e=>Number.isFinite(e))&&e.length>=2){let e=fu(n);if(e!==null){let r=n[n.length-1];return Array.from({length:t},(t,n)=>r+e*(n+1))}}let r=e.every(e=>typeof e==`string`);if(r&&e.length>=1){let n=e,r=cu(n);if(r)return lu(r,n,n.length>=2?fu(r.indices)??1:1,t)}if(r&&e.length>=1){let n=uu(e);if(n){let e=n.numbers.length>=2?fu(n.numbers)??1:1,r=n.numbers[n.numbers.length-1];return Array.from({length:t},(t,i)=>{let a=r+e*(i+1);return n.prefix+du(a,n.numberFormat)+n.suffix})}}return Array.from({length:t},(t,n)=>mu(e[n%e.length]))}function mu(e){return Array.isArray(e)?e.slice():e&&typeof e==`object`&&e.constructor===Object?{...e}:e}function hu(e){function t(t,n){let r=e.internalData[t],i=e.findColumnById(n);if(!(!r||!i?.columnDef.field))return r[i.columnDef.field]}function n(t,n,r){let i=e.internalData[t],a=e.findColumnById(n);if(!i||!a?.columnDef.field)return;let o=a.columnDef.field,s=i[o];if(s===r)return;let c=e.allRows.find(e=>e.original===i)?.id,l=e.internalData.slice();if(l[t]={...i,[o]:r},e.internalData=l,c){let t=nl(c,n);e.editedCellValues={...e.editedCellValues,[t]:r}}e.props.onCellValueChange?.({rowIndex:t,columnId:n,oldValue:s,newValue:r,row:l[t]})}function r(){let r=e.fillDrag;if(!r)return;e.fillDrag=null;let i=Math.min(r.sourceMinRow,r.targetRow),a=Math.max(r.sourceMaxRow,r.targetRow),o=Math.min(r.sourceMinCol,r.targetCol),s=Math.max(r.sourceMaxCol,r.targetCol),c=a>r.sourceMaxRow||i<r.sourceMinRow,l=s>r.sourceMaxCol||o<r.sourceMinCol;if(c)for(let o=r.sourceMinCol;o<=r.sourceMaxCol;o+=1){let s=e.allColumns[o];if(!s?.columnDef.field||s.columnDef.editable===!1)continue;let c=[];for(let e=r.sourceMinRow;e<=r.sourceMaxRow;e+=1)c.push(t(e,s.id));if(a>r.sourceMaxRow){let t=a-r.sourceMaxRow,i=pu(c,t);for(let a=0;a<t;a+=1){let t=r.sourceMaxRow+1+a;e.isCellEditableAt(t,o)&&n(t,s.id,i[a])}}if(i<r.sourceMinRow){let t=c.slice().reverse(),a=r.sourceMinRow-i,l=pu(t,a);for(let t=0;t<a;t+=1){let i=r.sourceMinRow-1-t;e.isCellEditableAt(i,o)&&n(i,s.id,l[t])}}}else if(l)for(let i=r.sourceMinRow;i<=r.sourceMaxRow;i+=1){let a=[];for(let n=r.sourceMinCol;n<=r.sourceMaxCol;n+=1){let r=e.allColumns[n];r&&a.push(t(i,r.id))}if(s>r.sourceMaxCol){let t=s-r.sourceMaxCol,o=pu(a,t);for(let a=0;a<t;a+=1){let t=r.sourceMaxCol+1+a,s=e.allColumns[t];s&&e.isCellEditableAt(i,t)&&n(i,s.id,o[a])}}if(o<r.sourceMinCol){let t=a.slice().reverse(),s=r.sourceMinCol-o,c=pu(t,s);for(let t=0;t<s;t+=1){let a=r.sourceMinCol-1-t,o=e.allColumns[a];o&&e.isCellEditableAt(i,a)&&n(i,o.id,c[t])}}}e.selectionRange={anchor:{rowIndex:i,colIndex:o},focus:{rowIndex:a,colIndex:s}}}function i(){let t=e.selectionRange.anchor,r=e.selectionRange.focus;if(t&&r){let i=Math.min(t.rowIndex,r.rowIndex),a=Math.max(t.rowIndex,r.rowIndex),o=Math.min(t.colIndex,r.colIndex),s=Math.max(t.colIndex,r.colIndex);for(let t=i;t<=a;t+=1)for(let r=o;r<=s;r+=1){let i=e.allColumns[r];i?.columnDef.field&&e.isCellEditableAt(t,r)&&n(t,i.id,null)}return}let i=e.grid.getState().activeCell;if(i&&e.userHasActivatedCell){let t=e.allColumns[i.colIndex];t?.columnDef.field&&e.isCellEditableAt(i.rowIndex,i.colIndex)&&n(i.rowIndex,t.id,null)}}function a(t,n,r){t.stopPropagation(),t.preventDefault();let i=e.selectionRange.anchor,a=e.selectionRange.focus;i&&a?e.fillDrag={sourceMinRow:Math.min(i.rowIndex,a.rowIndex),sourceMaxRow:Math.max(i.rowIndex,a.rowIndex),sourceMinCol:Math.min(i.colIndex,a.colIndex),sourceMaxCol:Math.max(i.colIndex,a.colIndex),targetRow:n,targetCol:r}:e.fillDrag={sourceMinRow:n,sourceMaxRow:n,sourceMinCol:r,sourceMaxCol:r,targetRow:n,targetCol:r}}function o(t){if(!e.fillDrag)return;let n=document.elementFromPoint(t.clientX,t.clientY)?.closest(`td[data-svgrid-row][data-svgrid-col]`);if(!n)return;let r=Number(n.dataset.svgridRow),i=Number(n.dataset.svgridCol);!Number.isFinite(r)||!Number.isFinite(i)||r===e.fillDrag.targetRow&&i===e.fillDrag.targetCol||(e.fillDrag={...e.fillDrag,targetRow:r,targetCol:i})}function s(){e.fillDrag&&r()}function c(t,n){let r=e.allRows[t],i=e.allColumns[n];if(!r||!i||!i.columnDef.field)return;let a=Nl(r,i),o=!e.getCellDisplayValue(r.id,i.id,a);r.original[i.columnDef.field]=o;let s=nl(r.id,i.id);e.editedCellValues={...e.editedCellValues,[s]:o},e.grid.store.setState(e=>({...e}))}function l(e){if(navigator.clipboard?.writeText){navigator.clipboard.writeText(e).catch(()=>u(e));return}u(e)}function u(t){if(typeof document>`u`)return!1;let n=document.activeElement,r=document.createElement(`textarea`);r.value=t,r.setAttribute(`readonly`,``),r.style.cssText=`position:fixed;top:0;left:-9999px;width:1px;height:1px;padding:0;border:0;`,document.body.appendChild(r);let i=!1;try{r.select(),r.setSelectionRange(0,t.length),i=document.execCommand(`copy`)}catch{i=!1}return document.body.removeChild(r),(n??e.gridRootEl)?.focus?.({preventScroll:!0}),i}function d(){let t=e.getSelectionRects();if(!t.length)return;let n=e.props.copyHeadersToClipboard===!0,r=e.props.processCellForClipboard,i=[];for(let a of t){let t=[];if(n){let n=[];for(let t=a.minCol;t<=a.maxCol;t+=1){let r=e.allColumns[t];n.push(r?Fl(r):``)}t.push(n.join(` `))}for(let n=a.minRow;n<=a.maxRow;n+=1){let i=e.allRows[n];if(!i||Pl(i))continue;let o=[];for(let t=a.minCol;t<=a.maxCol;t+=1){let a=e.allColumns[t];if(!a){o.push(``);continue}let s=Nl(i,a),c=e.getCellDisplayValue(i.id,a.id,s);r&&(c=r({value:c,column:a,row:i.original,rowIndex:n,columnId:a.id})),o.push(String(c??``))}t.push(o.join(` `))}i.push(t.join(`
|
|
117
|
-
`))}l(i.join(`
|
|
118
|
-
|
|
119
|
-
`))}function f(){let t=e.selectionRange.anchor??e.grid.getState().activeCell;if(!t)return!1;let n=e.selectionRange.focus??t,r=Math.min(t.rowIndex,n.rowIndex),i=Math.min(t.colIndex,n.colIndex),a=Math.max(t.rowIndex,n.rowIndex),o=Math.max(t.colIndex,n.colIndex),s=e.internalData.slice(),c=!1,l=[];for(let t=r;t<=a;t+=1){let n=e.allRows[t];if(!n||Pl(n))continue;let r=Number(n.id);if(!Number.isInteger(r)||r<0||r>=s.length)continue;let a=s[r];if(!a)continue;let u={...a},d=!1;for(let n=i;n<=o;n+=1){let i=e.allColumns[n];if(!i?.columnDef.field||!e.isCellEditableAt(t,n))continue;let a=i.columnDef.editorType??`text`,o=i.columnDef.field,s=u[o],c=iy(a,``);u[o]=c,d=!0,l.push({rowIndex:r,columnId:i.id,oldValue:s,newValue:c,row:u})}d&&(s[r]=u,c=!0)}if(c&&(e.internalData=s,e.grid.store.setState(e=>({...e})),e.props.onCellValueChange))for(let t of l)e.props.onCellValueChange(t);return c}async function p(){d(),f()}return{readCellRaw:t,writeCellRaw:n,applyFillPattern:r,clearSelectedCellValues:i,startFillDrag:a,onFillPointerMove:o,onFillPointerUp:s,toggleBooleanCell:c,copySelectionToClipboard:d,clearSelectedCells:f,cutSelectionToClipboard:p}}var gu=[{value:`contains`,label:`Contains`,iconName:`op-contains`},{value:`equals`,label:`Equals`,iconName:`op-equals`},{value:`startsWith`,label:`Starts with`,iconName:`op-startsWith`},{value:`greaterThan`,label:`Greater than`,iconName:`op-greaterThan`},{value:`lessThan`,label:`Less than`,iconName:`op-lessThan`},{value:`between`,label:`Between`,iconName:`op-between`},{value:`isBlank`,label:`Is blank`,iconName:`op-isBlank`}],_u=[`contains`,`equals`,`startsWith`,`isBlank`],vu=[`equals`,`greaterThan`,`lessThan`,`between`,`isBlank`],yu=[`equals`,`lessThan`,`greaterThan`,`between`,`isBlank`],bu=[`equals`,`isBlank`],xu={value:`contains`,label:`Contains`,iconName:`op-contains`};function Su(e){return gu.find(t=>t.value===e)??xu}function Cu(e){let t=e?.columnDef.editorType??`text`;return(t===`number`?vu:t===`date`||t===`datetime`?yu:t===`checkbox`?bu:_u).map(e=>gu.find(t=>t.value===e)).filter(e=>!!e)}function wu(e){return Cu(e)[0]?.value??`contains`}function Tu(e,t){let n=t?.columnDef.editorType;if(n===`date`||n===`datetime`){if(e.value===`lessThan`)return`Before`;if(e.value===`greaterThan`)return`After`}return e.label}var Eu=30,Du=10;function Ou(e){let t=e.columnDef.editorType;return t===`number`?{isDate:!1}:t===`date`||t===`datetime`?{isDate:!0}:null}function ku(e,t,n,r){let i=1/0,a=-1/0,o=new Set;for(let s of n){let n=yl(r(s,e),t);Number.isFinite(n)&&(o.add(n),n<i&&(i=n),n>a&&(a=n))}if(o.size<=Eu||!Number.isFinite(i)||!Number.isFinite(a)||i===a)return null;let s=a-i,c=[];for(let e=0;e<Du;e+=1){let n=i+s*e/Du,r=i+s*(e+1)/Du,a=t?`${xl(n)} – ${xl(r)}`:`${bl(n)} – ${bl(r)}`;c.push({label:a,numericMin:n,numericMax:r,isLast:e===Du-1,isDate:t})}return c}function Au(e,t){return!Number.isFinite(e)||e<t.numericMin?!1:t.isLast?e<=t.numericMax:e<t.numericMax}var ju=8e6,Mu=null;function Nu(e){let t={},n=(e,r)=>{for(let i of e){let e=r||i.visible===!1;if(i.columns?.length)n(i.columns,e);else if(e){let e=i.id??i.field;e&&(t[e]=!0)}}};return n(e,!1),t}function Pu(){if(typeof window<`u`){let e=window.__svgridMaxDomHeight;if(typeof e==`number`&&Number.isFinite(e)&&e>0)return e}if(Mu!=null)return Mu;if(typeof document>`u`||!document.body)return ju;try{let e=document.createElement(`div`);e.style.cssText=`position:fixed;top:0;left:-9999px;width:1px;height:100px;overflow:auto;visibility:hidden;pointer-events:none;`;let t=document.createElement(`div`);t.style.cssText=`width:1px;height:1000000000px;`,e.appendChild(t),document.body.appendChild(e);let n=t.offsetHeight,r=e.scrollHeight;document.body.removeChild(e),Mu=El(n,r,ju)}catch{Mu=ju}return Mu}function Fu(e,t){let n=0,r=new ResizeObserver(()=>{n||=requestAnimationFrame(()=>{n=0,t()})});return r.observe(e),()=>{n&&cancelAnimationFrame(n),r.disconnect()}}function Iu(e){let t=F(()=>e.editable??e.enableInlineEditing??!1),n=F(()=>e.pageable??e.showPagination??!1),r=F(()=>e.groupable??e.showGroupingControls??!1),i=I(``),a=I(null),o=I(null),s=I(un({})),c=I(un({})),l=I(null),u=I(null),d=I(0),f=I(0),p=``,m=0,h=0,g=null,_=I(un({anchor:null,focus:null})),v=I([]),y=I(!1),b=I(null),x=null,S=I(null),C=I(null),w=I(un({})),T=I(un([])),E=I(-1),D=I(0),O=I(null),ee=null,te=I(!1),ne=I(``),re=I(0),ie=F(()=>{let e=H(ne).trim().toLowerCase();if(!e||!H(te))return[];let t=[];for(let n=0;n<H(gt).length;n+=1){let r=H(gt)[n];if(r)for(let i=0;i<H(et).length;i+=1){let a=H(et)[i];if(!a)continue;let o=r.getCellValueByColumnId(a.id);o!=null&&String(o).toLowerCase().includes(e)&&t.push({rowIndex:n,colIndex:i,columnId:a.id})}}return t}),ae=I(null),oe=I(0),se=!0,ce=I(un({})),le=I(null),ue=0,k=0,A=I(un({left:[...e.initialColumnPinning?.left??[]],right:[...e.initialColumnPinning?.right??[]]})),j=I(0),de=I(0),M=I(0),fe=F(()=>e.rowNumberWidth??56),pe=F(()=>e.showRowNumbers??!1),me=I(null),he=I(`general`),ge=I(un({x:0,y:0})),_e=I(``),ve=I(null),ye=I(un({x:0,y:0})),be=I(null),xe=I(un({x:0,y:0})),Se=I(null),Ce=I(null),we=I(un({x:0,y:0})),Te=I(un({})),Ee=I(null),De=I(``),Oe=I(un({})),ke=F(()=>(H(f),H(a)?H(a).clientWidth:0)),Ae=F(()=>(H(f),H(a)?H(a).clientHeight:0)),je=F(()=>(H(d),H(f),Mt.version,H(j),{scrollTop:H(a)?.scrollTop??0,scrollLeft:H(a)?.scrollLeft??0,clientHeight:H(a)?.clientHeight??0,clientWidth:H(a)?.clientWidth??0,scrollHeight:H(a)?.scrollHeight??0,scrollWidth:H(a)?.scrollWidth??0})),Me=F(()=>{Mt.version;let e=Mt.getTotalSize(),t=H(je).scrollHeight;return Math.max(e,t)>H(Ae)+1}),Ne=F(()=>e.showGlobalFilter??(e.filterMode??`menu`)===`global`),Pe=F(()=>e.showFilterRow??(e.filterMode??`menu`)===`row`),Fe=F(()=>e.showColumnFilters??(e.filterMode??`menu`)===`menu`),Ie=F(()=>e.showColumnFilters===!0),Le=F(()=>e.showRowSelection??((e.selectionMode??`both`)===`row`||(e.selectionMode??`both`)===`both`)),Re=F(()=>e.enableCellSelection??((e.selectionMode??`both`)===`cell`||(e.selectionMode??`both`)===`both`)),ze=I(e.data),Be=t=>tu(t,e.data?.[0],e.inferColumnTypes===!0),Ve=I(Be(e.columns)),N=I(un(Nu(e.columns))),P=F(()=>ru(e.columns)),He=I(un((()=>{let t=ru(e.columns),n=new Set;for(let e of t.collapsibleGroupIds)t.defaultOpen.get(e)||n.add(e);return n})())),Ue=F(()=>iu(H(P),H(He)));function We(e){let t=new Set(H(He));t.has(e)?t.delete(e):t.add(e),L(He,t,!0)}function Ge(e){return H(He).has(e)}Ln(()=>{L(ze,e.data),L(w,{},!0)}),Ln(()=>{L(Ve,Be(e.columns))});let Ke=e.externalSort===!0,qe=e.externalFilter===!0,Je=F(()=>e.externalPagination===!0),Ye=({rows:e})=>e,Xe=go({get _features(){return Sn()},get _rowModels(){return{coreRowModel:lo(),filteredRowModel:uo(),sortedRowModel:Ke?Ye:mo(so),groupedRowModel:fo(),expandedRowModel:po()}},get columns(){return H(Ve)},get data(){return H(ze)},get getRowId(){return e.getRowId},state:{columnFilters:[],grouping:[],sorting:[],pagination:{pageIndex:0,pageSize:e.pageSize??10},rowSelection:{},expanded:{},activeCell:{rowIndex:0,colIndex:0,cellId:null}}}),Ze=null;Ln(()=>Xe.store.subscribe(()=>{L(de,H(de)+1);let e=Xe.getState();(!Ze||Ze.sorting!==e.sorting||Ze.columnFilters!==e.columnFilters||Ze.pagination!==e.pagination||Ze.grouping!==e.grouping||Ze.expanded!==e.expanded||Ze.rowSelection!==e.rowSelection)&&(L(M,H(M)+1),Ze={sorting:e.sorting,columnFilters:e.columnFilters,pagination:e.pagination,grouping:e.grouping,expanded:e.expanded,rowSelection:e.rowSelection})}));let Qe=I(un([...e.columnOrder??[]])),$e=``;Ln(()=>{let t=e.columnOrder?[...e.columnOrder].join(`|`):``;t!==$e&&($e=t,L(Qe,e.columnOrder?[...e.columnOrder]:[],!0))});let et=F(()=>{let e=Xe.getAllColumns().filter(e=>!H(N)[e.id]&&!H(Ue)[e.id]);if(H(Qe).length>0){let t=new Map(e.map(e=>[e.id,e])),n=new Set,r=[];for(let e of H(Qe)){let i=t.get(e);i&&!n.has(e)&&(r.push(i),n.add(e))}for(let t of e)n.has(t.id)||r.push(t);e=r}let t=H(A).left,n=H(A).right;if(!t.length&&!n.length)return e;let r=new Set([...t,...n]),i=t=>e.find(e=>e.id===t),a=t.map(i).filter(e=>!!e),o=n.map(i).filter(e=>!!e),s=e.filter(e=>!r.has(e.id));return[...a,...s,...o]}),tt=F(()=>{let e=Xe.getHeaderGroups();if(!e.length)return e;let t=new Map(e[0].headers.map(e=>[e.column.id,e])),n=[];for(let e of H(et)){let r=t.get(e.id);r&&n.push(r)}return[{id:e[0].id,headers:n}]}),nt=F(()=>{let t=e.columns??[];function n(e){let t=0;for(let r of e)r.columns?.length&&(t=Math.max(t,1+n(r.columns)));return t}let r=n(t);if(r===0)return[];let i=[];function a(e,t,n){return e.id??e.field??`${t??`col`}_d_${n}`}let o=H(Ue);function s(e,t,n){e.forEach((e,r)=>{let c=a(e,t,r);e.columns?.length?s(e.columns,c,n+1):o[c]||i.push({id:c,widthPx:Y(c)})})}s(t,void 0,0);function c(e,t,n){let r=[];for(let i of e){let e=a(i,t,r.length);if(!i.columns?.length&&o[e])continue;let s=n.leaf;i.columns?.length?c(i.columns,e,n):n.leaf+=1;let l=n.leaf;r.push({def:i,id:e,leafStart:s,leafEnd:l})}return r}let l=c(t,void 0,{leaf:0});function u(e,t,n){if(t===n)return e;let r=[];for(let i of e)if(i.def.columns?.length){let e={leaf:i.leafStart},a=c(i.def.columns,i.id,e);r.push(...u(a,t+1,n))}else r.push(i);return r}function d(e,t){let n=0;for(let r=e;r<t;r+=1)n+=i[r]?.widthPx??0;return n}let f=[];for(let e=0;e<r;e+=1){let t=u(l,0,e).map(t=>{let n=!t.def.columns?.length,r=typeof t.def.header==`string`?t.def.header:``,i=H(P).collapsibleGroupIds.has(t.id);return{key:`${t.id}_d${e}`,label:n?``:r,colSpan:Math.max(1,t.leafEnd-t.leafStart),widthPx:d(t.leafStart,t.leafEnd),firstLeafIndex:t.leafStart,isPlaceholder:n,groupId:i?t.id:void 0,collapsible:i,collapsed:i&&H(He).has(t.id)}});f.push({id:`gh_${e}`,cells:t})}return f}),rt=F(()=>{let e=H(pe)?H(fe):0,t=H(Le)?44:0,n={},r=e+t;for(let e of H(A).left)n[e]=r,r+=Y(e);let i={},a=0;for(let e=H(A).right.length-1;e>=0;--e){let t=H(A).right[e];t&&(i[t]=a,a+=Y(t))}return{left:n,right:i}}),it=I(null),at=I(null),ot=I(null),st=I(!1),ct=I(null),lt=I(null),ut=F(()=>(e.conditionalFormats?.length??0)>0),dt=F(()=>{let t=new Map,n=e.conditionalFormats;if(!n?.length||!Ba(n))return t;for(let e of H(et)){if(!n.some(t=>(t.type===`colorScale`||t.type===`dataBar`)&&(!t.columns||t.columns.includes(e.id))))continue;let r=e.columnDef,i=r.fieldFn,a=r.field,o=ja((function*(){for(let t of H(gt))yield i?i(t.original):a?t.original[a]:t.getCellValueByColumnId(e.id)})());o&&t.set(e.id,o)}return t}),ft=F(()=>{H(de);let e={};for(let t of H(et))e[t.id]=t.getIsSorted();return e}),pt=F(()=>(H(de),Xe.getState().grouping??[])),mt=F(()=>(H(de),Xe.getState().pagination??{pageIndex:0,pageSize:10})),ht=F(()=>{H(M),H(ze),H(Ve);let t=Xe.getRowModel().rows;if(qe)return t;let n=t;if(H(i).trim()){let t=oy(H(i),e.filterLocale);n=n.filter(n=>n.getAllCells().some(n=>oy(String(n.getValue()??``),e.filterLocale).includes(t)))}let r=(e,t,n)=>e===`isBlank`?!0:e===`between`?t.trim().length>0&&(n??``).trim().length>0:t.trim().length>0,a=(t,n,r,i,a)=>sy(t,{id:n,operator:r,value:i,valueTo:r===`between`?a:void 0},{locale:e.filterLocale}),o=Object.entries(H(c)).filter(([e,t])=>{let n=r(t.operator,t.value,t.valueTo),i=!!t.operator2&&r(t.operator2,t.value2??``,t.valueTo2);return n||i});o.length&&(n=n.filter(e=>o.every(([t,n])=>{let i=xr(e,t),o=r(n.operator,n.value,n.valueTo),s=!!n.operator2&&r(n.operator2,n.value2??``,n.valueTo2),c=o?a(i,t,n.operator,n.value,n.valueTo):null,l=s?a(i,t,n.operator2,n.value2??``,n.valueTo2):null;return c===null?l??!0:l===null?c:n.join===`OR`?c||l:c&&l})));let s=Object.entries(H(Oe));if(s.length){let e=s.map(([e,t])=>({columnId:e,allowed:t,buckets:H(bn).get(e)??null}));n=n.filter(t=>e.every(({columnId:e,allowed:n,buckets:r})=>{let i=xr(t,e);if(r){let e=r[0].isDate,t=yl(i,e);if(!Number.isFinite(t))return!1;for(let e of r)if(Au(t,e))return n.has(e.label);return!1}return n.has(String(i??``))}))}return n}),gt=F(()=>{let e=H(ht);if(!H(n)||H(Je))return e;let{pageIndex:t,pageSize:r}=H(mt),i=t*r;return e.slice(i,i+r)});Ln(()=>{if(!H(n)||H(Je))return;let{pageIndex:e,pageSize:t}=H(mt),r=Math.ceil(H(ht).length/t);r>0&&e>=r&&Xe.setPagination({pageIndex:0,pageSize:t})});let _t=F(()=>H(Je)?e.rowCount??0:H(ht).length),vt=F(()=>H(Je)?e.pageIndex??0:H(mt).pageIndex),yt=F(()=>H(Je)?e.pageSize??10:H(mt).pageSize),bt=F(()=>(H(de),Xe.getState().rowSelection??{})),xt=``;Ln(()=>{let t=JSON.stringify(H(bt));if(t===xt)return;xt=t;let n=e.onRowSelectionChange;if(!n)return;let r=H(ze),i=[];for(let e=0;e<r.length;e++)H(bt)[String(e)]&&i.push(r[e]);n(H(bt),i)});let St=``;Ln(()=>{let t=H(_).anchor,n=H(_).focus,r=t&&n?[[Math.min(t.rowIndex,n.rowIndex),Math.min(t.colIndex,n.colIndex),Math.max(t.rowIndex,n.rowIndex),Math.max(t.colIndex,n.colIndex)]]:[],i=JSON.stringify(r);i!==St&&(St=i,e.onCellSelectionChange?.(r))});let Ct=F(()=>e.statusBar!=null&&e.statusBar!==!1),wt=F(()=>typeof e.statusBar==`object`&&e.statusBar.aggregates?e.statusBar.aggregates:[`count`,`sum`,`avg`,`min`,`max`]),Tt=F(()=>{if(!H(Ct))return null;let e=H(_).anchor,t=H(_).focus;if(!e||!t)return null;let n=Math.min(e.rowIndex,t.rowIndex),r=Math.max(e.rowIndex,t.rowIndex),i=Math.min(e.colIndex,t.colIndex),a=Math.max(e.colIndex,t.colIndex),o=0,s=0,c=0,l=1/0,u=-1/0;for(let e=n;e<=r;e+=1){let t=H(gt)[e];if(!(!t||Pl(t)))for(let e=i;e<=a;e+=1){let n=H(et)[e];if(!n)continue;o+=1;let r=Nl(t,n),i=Sr(t.id,n.id,r);if(i==null||i===``)continue;let a=Number(i);Number.isFinite(a)&&(s+=1,c+=a,a<l&&(l=a),a>u&&(u=a))}}return o<=1?null:{count:o,numericCount:s,sum:c,avg:s?c/s:0,min:s?l:0,max:s?u:0}}),Et=I(e.toolPanelDefaultOpen===!0),Dt=I(un(e.toolPanelDefaultTab??`columns`)),Ot=F(()=>e.toolPanel===!0),kt=F(()=>{H(de);let e=Xe.getAllColumns();if(!H(Qe).length)return e;let t=new Map(e.map(e=>[e.id,e])),n=[],r=new Set;for(let e of H(Qe)){let i=t.get(e);i&&!r.has(e)&&(n.push(i),r.add(e))}for(let t of e)r.has(t.id)||n.push(t);return n}),At=``;Ln(()=>{H(de);let t=Xe.getState().sorting??[],n=JSON.stringify(t);n!==At&&(At=n,e.onSortingChange?.(t))});let jt=``;Ln(()=>{if(!e.onFiltersChange)return;let t=Object.entries(H(c)).filter(([,e])=>e.operator===`isBlank`?!0:e.operator===`between`?e.value.trim().length>0&&(e.valueTo??``).trim().length>0:e.value.trim().length>0).map(([e,t])=>({id:e,operator:t.operator,value:t.value,...t.operator===`between`&&t.valueTo?{valueTo:t.valueTo}:{}})),n=Object.entries(H(Oe)).map(([e,t])=>({id:e,operator:`equals`,value:``,selectedValues:Array.from(t).sort()})),r=new Map;for(let e of t)r.set(e.id,e);for(let e of n){let t=r.get(e.id);r.set(e.id,t?{...t,selectedValues:e.selectedValues}:e)}let a={global:H(i),columns:Array.from(r.values())},o=JSON.stringify(a);o!==jt&&(jt=o,e.onFiltersChange(a))});let Mt=ty({count:0,estimateSize:36,overscan:8,viewportHeight:520,scrollOffset:0}),Nt=ny({count:0,viewportWidth:0,overscan:3,estimateSize:()=>140});Nt.subscribe(()=>{L(j,H(j)+1)});let Pt=F(()=>(e.virtualization??!0)&&H(gt).length>0),Ft=F(()=>(e.columnVirtualization??!0)&&H(et).length>0),It=F(()=>(Mt.version,Mt.getVirtualItems())),Lt=F(()=>(Mt.version,Mt.getTotalSize())),Rt=F(()=>H(It)[0]?.start??0),zt=F(()=>H(It)[H(It).length-1]?.end??0),Bt=F(()=>Math.max(H(Lt)-H(zt),0)),Vt=F(()=>Dl(H(Lt),Pu(),H(Ae))),Ht=F(()=>H(Vt).domTotal),Ut=F(()=>H(Vt).active);function Wt(e){return H(Vt).domToLogical(e)}function Gt(e){return H(Vt).logicalToDom(e)}let Kt=F(()=>{if(!H(Ut))return 0;Mt.version;let e=Mt.getState().scrollOffset;return e-H(Vt).logicalToDom(e)}),qt=F(()=>Math.max(H(Rt)-H(Kt),0)),Jt=F(()=>Math.max(H(Ht)-(H(zt)-H(Kt)),0)),Yt=F(()=>(H(j),Nt.getVirtualItems())),Xt=F(()=>(H(j),Nt.getTotalSize())),Zt=F(()=>{if(!H(Ft)){let e=0;return H(et).map((t,n)=>{let r=Y(t.id),i={index:n,key:n,size:r,start:e,end:e+r};return e+=r,i})}let e=H(Yt),t=H(A).left.length>0,n=H(A).right.length>0;if(!t&&!n||e.length===0)return e;let r=e[0].index,i=e[e.length-1].index,a=t?0:r,o=n?H(et).length-1:i;if(a===r&&o===i)return e;let s=[],c=0;for(let e=0;e<a;e+=1)c+=Y(H(et)[e].id);for(let e=a;e<=o;e+=1){let t=Y(H(et)[e].id);s.push({index:e,key:e,size:t,start:c,end:c+t}),c+=t}return s}),Qt=F(()=>H(Zt).map(e=>({item:e,column:H(et)[e.index]})).filter(Mn)),$t=F(()=>{if(H(Ft))return H(Xt);let e=0;for(let t of H(et))e+=Y(t.id);return e}),en=F(()=>{let e=(H(pe)?H(fe):0)+(H(Le)?44:0);for(let t of H(et))e+=Y(t.id);return e>H(ke)+1}),tn=F(()=>H(Zt)[0]?.start??0),nn=F(()=>H(Zt)[H(Zt).length-1]?.end??0),rn=F(()=>Math.max(H($t)-H(nn),0)),an=F(()=>(H(de),Xe.getState().activeCell??{rowIndex:0,colIndex:0,cellId:null})),on=F(()=>{let e=H(an),t=e.rowIndex>=0&&e.rowIndex<H(gt).length,n=e.colIndex>=0&&e.colIndex<H(et).length;return!t||!n?null:fy(`svgrid`,e.rowIndex,e.colIndex)}),sn=5e4,cn=I(un({}));Ln(()=>{H(w);let t=H(gt),n=H(et);if(!(e.enableRowSummaries??!0)){L(cn,{},!0);return}if(t.length*n.length<=sn||typeof requestAnimationFrame>`u`){L(cn,jn(t,n),!0);return}let r=!1,i=requestAnimationFrame(()=>{r||L(cn,jn(t,n),!0)});return()=>{r=!0,cancelAnimationFrame(i)}}),Ln(()=>{if(H(ae))return L(oe,H(ae).offsetHeight,!0),Fu(H(ae),()=>{L(oe,H(ae)?.offsetHeight??0,!0)})}),Ln(()=>{if(H(o))return Fu(H(o),()=>{L(d,H(d)+1)})}),Ln(()=>{!H(gt).length||!H(et).length||Xe.getState().activeCell?.cellId||Xe.setActiveCell({rowIndex:0,colIndex:0,cellId:fy(`svgrid`,0,0)})}),Ln(()=>{let t=`cols:${e.columns.length}`;if(t===p)return;let n=p===``;p=t,!n&&(L(_,{anchor:null,focus:null},!0),L(v,[]),L(S,null),H(a)&&(H(a).scrollTop=0,H(a).scrollLeft=0,L(d,H(d)+1)),Mt.setScrollOffset(0),Nt.setHorizontalOffset(0))}),Ln(()=>{if(!H(a)||!H(l))return;let e=H(l),t=e=>{let t=H(a);t&&(t.scrollTop=e.detail.value,En(t.scrollTop,t.scrollLeft))};return e.addEventListener(`scroll-change`,t),()=>e.removeEventListener(`scroll-change`,t)}),Ln(()=>{if(!H(a)||!H(u))return;let e=H(u),t=e=>{let t=H(a);t&&(t.scrollLeft=e.detail.value,En(t.scrollTop,t.scrollLeft))};return e.addEventListener(`scroll-change`,t),()=>e.removeEventListener(`scroll-change`,t)}),Ln(()=>{H(f);let t=typeof e.containerHeight==`string`?H(a)?.clientHeight??520:e.containerHeight??520,n=e.rowHeight;Mt.setOptions({count:H(gt).length,estimateSize:typeof n==`function`?n:n??30,overscan:e.overscan??8,viewportHeight:t})});let ln=I(!1);Ln(()=>{if(H(a))return Fu(H(a),()=>{L(f,H(f)+1),H(ln)||L(ln,!0)})}),Ln(()=>{H(ce),Nt.setOptions({count:H(et).length,estimateSize:t=>{let n=H(et)[t];return n?Y(n.id):e.columnWidth??140},overscan:e.columnOverscan??3,viewportHeight:H(ke)})}),Ln(()=>{H(a)&&(H(Pt)&&Mt.setScrollOffset(Wt(H(a).scrollTop)),H(Ft)&&Nt.setHorizontalOffset(H(a).scrollLeft))});let dn=!0,fn={},pn=F(()=>{H(de);let e=H(gt).filter(e=>!Pl(e));if(!e.length)return`none`;let t=0;for(let n of e)H(bt)[n.id]&&(t+=1);return t===0?`none`:t===e.length?`all`:`some`}),mn=I(!1),hn=F(()=>{if(H(f),!e.fitColumns)return null;let t=Xe.getAllColumns().filter(e=>!H(N)[e.id]);if(!t.length)return null;let n=H(pe)?H(fe):0,r=H(Le)?44:0,i=H(Me)?16:0,o=(H(a)?.clientWidth??0)-n-r-i;if(o<=0)return null;let s=0,c=0,l=[];for(let e of t){let t=mi(e.id);H(ce)[e.id]===void 0?(c+=t,l.push(e.id)):s+=t}let u=o-s;if(u<=0||c<=0||Math.abs(c-u)<=1)return null;let d=u/c;if(d<.85)return null;let p={},m=0;for(let e=0;e<l.length-1;e+=1){let t=l[e],n=Math.max(40,Math.round(mi(t)*d));p[t]=n,m+=n}let h=l[l.length-1];return p[h]=Math.max(40,u-m),p}),gn=0,_n=null,vn=F(()=>{if(!(e.enableCellSelection??!1))return null;let t=H(_).anchor,n=H(_).focus;if(t&&n)return{rowIndex:Math.max(t.rowIndex,n.rowIndex),colIndex:Math.max(t.colIndex,n.colIndex)};let r=H(an);return!H(mn)||!r?null:{rowIndex:r.rowIndex,colIndex:r.colIndex}}),yn=null,bn=F(()=>{let t=new Map;for(let n of H(et)){let r=Ou(n);if(!r)continue;let i=ku(n,r.isDate,e.data,zl);i&&t.set(n.id,i)}return t}),xn=F(()=>{let t=H(ve)??H(me);if(!t)return[];let n=H(et).find(e=>e.id===t);if(!n)return[];let r=H(bn).get(t);if(r)return r.map(e=>e.label);let i=new Set;for(let t of e.data)i.add(String(zl(t,n)??``));return Array.from(i).sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}),R=F(()=>{let e=H(_e).trim().toLowerCase();return e?H(xn).filter(t=>t.toLowerCase().includes(e)):H(xn)}),z=!1;Ln(()=>{if(z)return;let t=e.onApiReady;t&&(z=!0,t(Mi()))});let B={get props(){return e},get editingEnabled(){return H(t)},get paginationEnabled(){return H(n)},get groupingControlsEnabled(){return H(r)},get globalFilter(){return H(i)},set globalFilter(e){L(i,e,!0)},get scrollContainer(){return H(a)},set scrollContainer(e){L(a,e,!0)},get gridRootEl(){return H(o)},set gridRootEl(e){L(o,e,!0)},get filterRowValues(){return H(s)},set filterRowValues(e){L(s,e,!0)},get filterMenuValues(){return H(c)},set filterMenuValues(e){L(c,e,!0)},get verticalScrollbarEl(){return H(l)},set verticalScrollbarEl(e){L(l,e,!0)},get horizontalScrollbarEl(){return H(u)},set horizontalScrollbarEl(e){L(u,e,!0)},get scrollVersion(){return H(d)},set scrollVersion(e){L(d,e,!0)},get viewportVersion(){return H(f)},set viewportVersion(e){L(f,e,!0)},get lastResetSignature(){return p},set lastResetSignature(e){p=e},get pendingScrollTop(){return m},set pendingScrollTop(e){m=e},get pendingScrollLeft(){return h},set pendingScrollLeft(e){h=e},get scrollSyncRaf(){return g},set scrollSyncRaf(e){g=e},get selectionRange(){return H(_)},set selectionRange(e){L(_,e,!0)},get selectionRanges(){return H(v)},set selectionRanges(e){L(v,e)},get isDraggingSelection(){return H(y)},set isDraggingSelection(e){L(y,e,!0)},get fillDrag(){return H(b)},set fillDrag(e){L(b,e,!0)},get activeAtPointerDown(){return x},set activeAtPointerDown(e){x=e},get editingCell(){return H(S)},set editingCell(e){L(S,e,!0)},get fullRowEdit(){return H(C)},set fullRowEdit(e){L(C,e,!0)},get editedCellValues(){return H(w)},set editedCellValues(e){L(w,e,!0)},get UNDO_LIMIT(){return 200},get history(){return H(T)},set history(e){L(T,e,!0)},get historyPtr(){return H(E)},set historyPtr(e){L(E,e,!0)},get historyVersion(){return H(D)},set historyVersion(e){L(D,e,!0)},get tooltip(){return H(O)},set tooltip(e){L(O,e,!0)},get tooltipTimer(){return ee},set tooltipTimer(e){ee=e},get showTooltipFor(){return Cn},get hideTooltip(){return wn},get findOpen(){return H(te)},set findOpen(e){L(te,e,!0)},get findQuery(){return H(ne)},set findQuery(e){L(ne,e,!0)},get findHitIndex(){return H(re)},set findHitIndex(e){L(re,e,!0)},get findHits(){return H(ie)},get theadEl(){return H(ae)},set theadEl(e){L(ae,e,!0)},get headerHeight(){return H(oe)},set headerHeight(e){L(oe,e,!0)},get editorSelectAll(){return se},set editorSelectAll(e){se=e},get columnWidths(){return H(ce)},set columnWidths(e){L(ce,e,!0)},get resizingColumnId(){return H(le)},set resizingColumnId(e){L(le,e,!0)},get resizeStartX(){return ue},set resizeStartX(e){ue=e},get resizeStartWidth(){return k},set resizeStartWidth(e){k=e},get MIN_COLUMN_WIDTH(){return 40},get columnPinning(){return H(A)},set columnPinning(e){L(A,e,!0)},get columnVirtualizerVersion(){return H(j)},set columnVirtualizerVersion(e){L(j,e,!0)},get gridStateVersion(){return H(de)},set gridStateVersion(e){L(de,e,!0)},get selectionColumnWidth(){return 44},get rowNumberColumnWidth(){return H(fe)},get showRowNumbersEffective(){return H(pe)},get filterOperatorOptions(){return gu},get TEXT_OPERATORS(){return _u},get NUMBER_OPERATORS(){return vu},get DATE_OPERATORS(){return yu},get CHECKBOX_OPERATORS(){return bu},get columnMenuFor(){return H(me)},get columnMenuTab(){return H(he)},set columnMenuTab(e){L(he,e,!0)},set columnMenuFor(e){L(me,e,!0)},get columnMenuPos(){return H(ge)},set columnMenuPos(e){L(ge,e,!0)},get columnMenuSearch(){return H(_e)},set columnMenuSearch(e){L(_e,e,!0)},get filterMenuFor(){return H(ve)},set filterMenuFor(e){L(ve,e,!0)},get filterMenuPos(){return H(ye)},set filterMenuPos(e){L(ye,e,!0)},get operatorMenuFor(){return H(be)},set operatorMenuFor(e){L(be,e,!0)},get operatorMenuPos(){return H(xe)},set operatorMenuPos(e){L(xe,e,!0)},get chooseColumnsPos(){return H(Se)},set chooseColumnsPos(e){L(Se,e,!0)},get contextMenuFor(){return H(Ce)},set contextMenuFor(e){L(Ce,e,!0)},get contextMenuPos(){return H(we)},set contextMenuPos(e){L(we,e,!0)},get noteOverrides(){return H(Te)},set noteOverrides(e){L(Te,e,!0)},get commentEditFor(){return H(Ee)},set commentEditFor(e){L(Ee,e,!0)},get commentDraft(){return H(De)},set commentDraft(e){L(De,e,!0)},get valueFilters(){return H(Oe)},set valueFilters(e){L(Oe,e,!0)},get viewportWidth(){return H(ke)},get viewportHeight(){return H(Ae)},get scrollMetrics(){return H(je)},get hasVerticalOverflow(){return H(Me)},get showGlobalFilterEffective(){return H(Ne)},get showFilterRowEffective(){return H(Pe)},get showColumnFiltersEffective(){return H(Fe)},get showInlineColumnFilterEffective(){return H(Ie)},get showRowSelectionEffective(){return H(Le)},get enableCellSelectionEffective(){return H(Re)},get flushScheduledScrollSync(){return Tn},get scheduleScrollSync(){return En},get internalData(){return H(ze)},set internalData(e){L(ze,e)},get internalColumns(){return H(Ve)},set internalColumns(e){L(Ve,e)},get hiddenColumns(){return H(N)},set hiddenColumns(e){L(N,e,!0)},get toggleColumnGroup(){return We},get isColumnGroupCollapsed(){return Ge},get externalSortEnabled(){return Ke},get externalFilterEnabled(){return qe},get passthroughSortedRowModel(){return Ye},get resolveEffectiveFeatures(){return Sn},get grid(){return Xe},get userColumnOrder(){return H(Qe)},set userColumnOrder(e){L(Qe,e,!0)},get lastSeededOrder(){return $e},set lastSeededOrder(e){$e=e},get allColumns(){return H(et)},get headerGroups(){return H(tt)},get groupHeaderRows(){return H(nt)},get pinnedOffsets(){return H(rt)},get cellPinStyle(){return W},get isColumnPinned(){return ni},get colDragId(){return H(it)},set colDragId(e){L(it,e,!0)},get colDropOnId(){return H(at)},set colDropOnId(e){L(at,e,!0)},get colDropSide(){return H(ot)},set colDropSide(e){L(ot,e,!0)},get rowDragActive(){return H(st)},set rowDragActive(e){L(st,e,!0)},get rowDropIndex(){return H(ct)},set rowDropIndex(e){L(ct,e,!0)},get rowDropSide(){return H(lt)},set rowDropSide(e){L(lt,e,!0)},get onRowDragStart(){return Si},get onRowDragOver(){return Ci},get onRowDragLeave(){return wi},get onRowDrop(){return Ti},get onRowsContainerDragOver(){return Ei},get onRowsContainerDrop(){return Di},get onRowDragEnd(){return Oi},get broadcastAlignedScroll(){return Ai},get getCurrentColumnOrder(){return G},get emitColumnOrder(){return ri},get setColumnOrderInternal(){return ii},get applyColumnDrop(){return K},get onColumnHeaderDragStart(){return ai},get onColumnHeaderDragOver(){return q},get onColumnHeaderDragLeave(){return oi},get onColumnHeaderDrop(){return si},get onColumnHeaderDragEnd(){return ci},get pinColumnLeft(){return li},get pinColumnRight(){return ui},get unpinColumn(){return J},get getColumnBaseValue(){return Nl},get hasConditionalFormats(){return H(ut)},get conditionalColumnStats(){return H(dt)},get cellConditionalFormat(){return cr},get isGroupRow(){return Pl},get isCellEditable(){return yr},get isCellEditableAt(){return br},get sortDirectionByColumn(){return H(ft)},get groupingColumns(){return H(pt)},get paginationState(){return H(mt)},get externalPaginationEnabled(){return H(Je)},get paginationTotalRows(){return H(_t)},get paginationPageIndex(){return H(vt)},get paginationPageSize(){return H(yt)},get getRowColumnValue(){return xr},get allRowsBeforePagination(){return H(ht)},get allRows(){return H(gt)},get rowSelectionState(){return H(bt)},get lastSelectionSerialized(){return xt},set lastSelectionSerialized(e){xt=e},get lastCellRangeSerialized(){return St},set lastCellRangeSerialized(e){St=e},get statusBarEnabled(){return H(Ct)},get statusBarAggregates(){return H(wt)},get statusBarStats(){return H(Tt)},get toolPanelOpen(){return H(Et)},set toolPanelOpen(e){L(Et,e,!0)},get toolPanelTab(){return H(Dt)},set toolPanelTab(e){L(Dt,e,!0)},get toolPanelEnabled(){return H(Ot)},get toolPanelColumns(){return H(kt)},get toolPanelHeaderLabel(){return Fl},get toggleColumnVisibleInPanel(){return di},get moveColumnInPanel(){return fi},get toggleGroupInPanel(){return pi},get lastSortingSerialized(){return At},set lastSortingSerialized(e){At=e},get lastFiltersSerialized(){return jt},set lastFiltersSerialized(e){jt=e},get virtualizer(){return Mt},get columnVirtualizer(){return Nt},get rowVirtualizationEnabled(){return H(Pt)},get columnVirtualizationEnabled(){return H(Ft)},get virtualRows(){return H(It)},get virtualRowTotalSize(){return H(Lt)},get virtualRowStart(){return H(Rt)},get virtualRowEnd(){return H(zt)},get virtualRowBottomSpacer(){return H(Bt)},get rowDomTotalSize(){return H(Ht)},get rowScrollScalingActive(){return H(Ut)},get rowTopSpacer(){return H(qt)},get rowBottomSpacer(){return H(Jt)},get domToLogicalRowOffset(){return Wt},get logicalToDomRowOffset(){return Gt},get virtualColumns(){return H(Yt)},get virtualColumnTotalSize(){return H(Xt)},get renderedColumnItems(){return H(Zt)},get hasRenderedColumn(){return Mn},get renderedColumns(){return H(Qt)},get totalColumnWidth(){return H($t)},get hasHorizontalOverflow(){return H(en)},get columnWindowStart(){return H(tn)},get columnWindowEnd(){return H(nn)},get columnWindowRightSpacer(){return H(rn)},get activeCell(){return H(an)},get activeDescendantId(){return H(on)},get formatSummaryNumeric(){return Il},get computeSummaries(){return jn},get SUMMARY_DEFER_CELL_LIMIT(){return sn},get summaryByColumn(){return H(cn)},set summaryByColumn(e){L(cn,e,!0)},get hasMeasured(){return H(ln)},set hasMeasured(e){L(ln,e,!0)},get scrollBottomArmed(){return dn},set scrollBottomArmed(e){dn=e},get onBodyScroll(){return Dn},get computeRowClass(){return lr},get computeCellClass(){return ur},get computeCellTooltip(){return dr},get computeCellValidity(){return fr},get computeCellNote(){return pr},get getCellDisplayValue(){return Sr},get getColumnAlign(){return Ll},get editorOptionsCache(){return fn},get getColumnEditorOptions(){return mr},get formatListCellValue(){return hr},get formatCellValue(){return gr},get getPinnedCellValue(){return Rl},get formatPinnedValue(){return _r},get computePinnedCellClass(){return vr},get isRowSelected(){return Rr},get toggleRowSelectionById(){return zr},get headerSelectionState(){return H(pn)},get toggleSelectAllRows(){return Br},get userHasActivatedCell(){return H(mn)},set userHasActivatedCell(e){L(mn,e,!0)},get setActiveCell(){return Vr},get scrollActiveCellIntoView(){return Hr},get getColumnBaseWidth(){return mi},get fittedColumnWidths(){return H(hn)},get getColumnWidth(){return Y},get resizePendingWidth(){return gn},set resizePendingWidth(e){gn=e},get resizeRaf(){return _n},set resizeRaf(e){_n=e},get startColumnResize(){return hi},get onColumnResizeMove(){return gi},get endColumnResize(){return _i},get setSelection(){return Ur},get extendSelection(){return Wr},get isCellInSelectedRange(){return Gr},get getCellRangeEdges(){return Kr},get getSelectionRects(){return qr},get fillHandleCell(){return H(vn)},get isInFillPreview(){return Jr},get fillMarqueeEdges(){return U},get findColumnById(){return Yr},get readCellRaw(){return Ni},get writeCellRaw(){return Pi},get applyFillPattern(){return Fi},get clearSelectedCellValues(){return Ii},get startFillDrag(){return Li},get onFillPointerMove(){return Ri},get onFillPointerUp(){return zi},get toggleBooleanCell(){return Bi},get onCellPointerDown(){return Xr},get onCellPointerEnter(){return Zr},get endDragSelection(){return Qr},get onWindowPointerMove(){return $r},get onCellClick(){return ei},get emitCellDoubleClick(){return ti},get copySelectionToClipboard(){return Vi},get cutSelectionToClipboard(){return Hi},get pasteFromClipboard(){return Ir},get onGridPaste(){return Lr},get clearSelectedCells(){return X},get onCellDoubleClick(){return Fr},get startEditingWithChar(){return Cr},get startEditing(){return wr},get stopEditing(){return Tr},get startFullRowEdit(){return Er},get setFullRowDraft(){return Dr},get commitFullRowEdit(){return Or},get cancelFullRowEdit(){return kr},get saveEditingCell(){return Ar},get applyHistoryStep(){return jr},get updateEditingCellValue(){return Mr},get onEditorKeyDown(){return Nr},get focusOnMount(){return Pr},get onHeaderSortClick(){return An},get onGridKeyDown(){return On},get changePage(){return $n},get goToPage(){return er},get setPageSize(){return tr},get openContextMenu(){return nr},get closeContextMenu(){return rr},get contextMenuItems(){return ir},get saveComment(){return ar},get removeComment(){return or},get closeCommentEditor(){return sr},get updateFilterRow(){return Nn},get updateFilterOperator(){return Pn},get updateFilterMenuValue(){return Fn},get updateFilterMenuValueTo(){return In},get toggleCheckboxWithKeyboard(){return Rn},get getColumnAccessorValue(){return zl},get fallbackOperatorOption(){return xu},get operatorOption(){return Su},get operatorsForColumn(){return Cu},get defaultOperatorFor(){return wu},get operatorLabelFor(){return Tu},get isColumnFiltered(){return zn},get closeMenus(){return Bn},get measureCanvas(){return yn},set measureCanvas(e){yn=e},get measureText(){return vi},get autosizeColumn(){return yi},get autosizeAllColumns(){return bi},get resetColumns(){return xi},get openChooseColumns(){return Vn},get openColumnMenu(){return Hn},get openFilterMenu(){return Un},get openOperatorMenu(){return V},get sortColumnFromMenu(){return Wn},get clearColumnSort(){return Gn},get groupByColumnFromMenu(){return Kn},get clearGroupingFromMenu(){return qn},get isBucketableColumn(){return Ou},get buildBuckets(){return ku},get isInBucket(){return Au},get facetBucketsByColumn(){return H(bn)},get columnMenuFacetValues(){return H(xn)},get columnMenuVisibleFacets(){return H(R)},get isFacetChecked(){return Jn},get toggleFacetValue(){return Yn},get isAllFacetsChecked(){return Xn},get toggleAllFacets(){return Zn},get clearColumnFilter(){return Qn},get onWindowKeydown(){return kn},get columnDefMatchesId(){return Bl},get buildApi(){return Mi},get apiNotified(){return z},set apiNotified(e){z=e}},{resolveEffectiveFeatures:Sn}=Ol(B),{showTooltipFor:Cn,hideTooltip:wn,flushScheduledScrollSync:Tn,scheduleScrollSync:En,onBodyScroll:Dn}=kl(B),{onGridKeyDown:On,onWindowKeydown:kn,onHeaderSortClick:An}=Ml(B),{computeSummaries:jn,hasRenderedColumn:Mn}=Vl(B),{updateFilterRow:Nn,updateFilterOperator:Pn,updateFilterMenuValue:Fn,updateFilterMenuValueTo:In,toggleCheckboxWithKeyboard:Rn,isColumnFiltered:zn,closeMenus:Bn,openChooseColumns:Vn,openColumnMenu:Hn,openFilterMenu:Un,openOperatorMenu:V,sortColumnFromMenu:Wn,clearColumnSort:Gn,groupByColumnFromMenu:Kn,clearGroupingFromMenu:qn,isFacetChecked:Jn,toggleFacetValue:Yn,isAllFacetsChecked:Xn,toggleAllFacets:Zn,clearColumnFilter:Qn,changePage:$n,goToPage:er,setPageSize:tr,openContextMenu:nr,closeContextMenu:rr,contextMenuItems:ir,saveComment:ar,removeComment:or,closeCommentEditor:sr}=Hl(B),{cellConditionalFormat:cr,computeRowClass:lr,computeCellClass:ur,computeCellTooltip:dr,computeCellValidity:fr,computeCellNote:pr,getColumnEditorOptions:mr,formatListCellValue:hr,formatCellValue:gr,formatPinnedValue:_r,computePinnedCellClass:vr}=Ul(B),{isCellEditable:yr,isCellEditableAt:br,getRowColumnValue:xr,getCellDisplayValue:Sr,startEditingWithChar:Cr,startEditing:wr,stopEditing:Tr,startFullRowEdit:Er,setFullRowDraft:Dr,commitFullRowEdit:Or,cancelFullRowEdit:kr,saveEditingCell:Ar,applyHistoryStep:jr,updateEditingCellValue:Mr,onEditorKeyDown:Nr,focusOnMount:Pr,onCellDoubleClick:Fr,pasteFromClipboard:Ir,onGridPaste:Lr}=Wl(B),{isRowSelected:Rr,toggleRowSelectionById:zr,toggleSelectAllRows:Br,setActiveCell:Vr,scrollActiveCellIntoView:Hr,setSelection:Ur,extendSelection:Wr,isCellInSelectedRange:Gr,getCellRangeEdges:Kr,getSelectionRects:qr,isInFillPreview:Jr,fillMarqueeEdges:U,findColumnById:Yr,onCellPointerDown:Xr,onCellPointerEnter:Zr,endDragSelection:Qr,onWindowPointerMove:$r,onCellClick:ei,emitCellDoubleClick:ti}=Gl(B),{cellPinStyle:W,isColumnPinned:ni,getCurrentColumnOrder:G,emitColumnOrder:ri,setColumnOrderInternal:ii,applyColumnDrop:K,onColumnHeaderDragStart:ai,onColumnHeaderDragOver:q,onColumnHeaderDragLeave:oi,onColumnHeaderDrop:si,onColumnHeaderDragEnd:ci,pinColumnLeft:li,pinColumnRight:ui,unpinColumn:J,toggleColumnVisibleInPanel:di,moveColumnInPanel:fi,toggleGroupInPanel:pi,getColumnBaseWidth:mi,getColumnWidth:Y,startColumnResize:hi,onColumnResizeMove:gi,endColumnResize:_i,measureText:vi,autosizeColumn:yi,autosizeAllColumns:bi,resetColumns:xi}=Kl(B),{onRowDragStart:Si,onRowDragOver:Ci,onRowDragLeave:wi,onRowDrop:Ti,onRowsContainerDragOver:Ei,onRowsContainerDrop:Di,onRowDragEnd:Oi}=Yl(B),{register:ki,broadcastScroll:Ai,broadcastWidths:ji}=Ql(B),{buildApi:Mi}=au(B),{readCellRaw:Ni,writeCellRaw:Pi,applyFillPattern:Fi,clearSelectedCellValues:Ii,startFillDrag:Li,onFillPointerMove:Ri,onFillPointerUp:zi,toggleBooleanCell:Bi,copySelectionToClipboard:Vi,clearSelectedCells:X,cutSelectionToClipboard:Hi}=hu(B);return Ln(()=>{if(e.alignedGridGroup!=null)return ki()}),Ln(()=>{H(ce),ji()}),B}var Lu=W(`<option> </option>`),Ru=W(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),zu=W(`<option> </option>`),Bu=W(`<input class="sv-grid-menu-condition-value" placeholder="To"/>`),Vu=W(`<input class="sv-grid-menu-condition-value"/> <!>`,1),Hu=W(`<div class="sv-grid-menu-join" role="radiogroup" aria-label="Combine conditions"><button type="button">AND</button> <button type="button">OR</button> <button type="button" class="sv-grid-menu-join-x" title="Remove second condition" aria-label="Remove second condition">×</button></div> <select class="sv-grid-menu-operator-select" aria-label="Second filter condition"></select> <!>`,1),Uu=W(`<button type="button" class="sv-grid-menu-add-cond">+ Add condition</button>`),Wu=W(`<input class="sv-grid-menu-condition-value"/> <!> <!>`,1),Gu=W(`<label class="sv-grid-facet"><input type="checkbox"/> <span class="sv-grid-facet-label"> </span></label>`),Ku=W(`<div class="sv-grid-facet-empty">No values</div>`),qu=W(`<div class="sv-grid-facet-note"> </div>`),Ju=W(`<div class="sv-grid-menu-filter"><div class="sv-grid-menu-filter-head"><span class="sv-grid-header-icon"><!></span> Filter
|
|
120
|
-
condition</div> <select class="sv-grid-menu-operator-select" aria-label="Filter condition"></select> <!> <div class="sv-grid-menu-sep"></div> <div class="sv-grid-menu-filter-head">Values</div> <input class="sv-grid-menu-search" placeholder="Search values..."/> <label class="sv-grid-facet sv-grid-facet-all"><input type="checkbox"/> <span class="sv-grid-facet-label">(Select all)</span></label> <div class="sv-grid-facet-list"></div> <!> <div class="sv-grid-menu-actions"><button type="button" class="sv-grid-menu-btn">Clear filter</button> <button type="button" class="sv-grid-menu-btn sv-grid-menu-btn-primary">Done</button></div></div>`),Yu=W(`<div role="tooltip"> </div>`),Xu=W(`<div class="sv-grid-menu-backdrop" role="presentation"></div>`),Zu=W(`<button type="button" role="tab">Filter</button>`),Qu=W(`<div class="sv-grid-menu-tabs" role="tablist"><button type="button" role="tab">General</button> <!> <button type="button" role="tab">Columns</button></div>`),$u=W(`<label class="sv-grid-facet"><input type="checkbox"/> <span class="sv-grid-facet-label"> </span></label>`),ed=W(`<div class="sv-grid-menu-filter-head">Visible columns</div> <div class="sv-grid-facet-list"></div>`,1),td=W(`<button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Sort
|
|
121
|
-
ascending</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Sort
|
|
122
|
-
descending</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Remove sort</button>`,1),nd=W(`<div class="sv-grid-menu-sep"></div> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Pin to left</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Pin to right</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Unpin column</button>`,1),rd=W(`<div class="sv-grid-menu-sep"></div> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Group
|
|
123
|
-
by this column</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Remove grouping</button>`,1),id=W(`<button type="button" role="menuitem" aria-haspopup="menu"><span class="sv-grid-header-icon"><!></span> Choose columns <span class="sv-grid-header-icon sv-grid-menu-item-chevron"><!></span></button>`),ad=W(`<!> <!> <div class="sv-grid-menu-sep"></div> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Autosize
|
|
124
|
-
this column</button> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Autosize
|
|
125
|
-
all columns</button> <!> <div class="sv-grid-menu-sep"></div> <!> <button type="button" class="sv-grid-menu-item" role="menuitem"><span class="sv-grid-header-icon"><!></span> Reset columns</button>`,1),od=W(`<div class="sv-grid-menu sv-grid-column-menu" role="menu"><!> <!></div>`),sd=W(`<div class="sv-grid-menu sv-grid-filter-menu" role="menu"><!></div>`),cd=W(`<label class="sv-grid-facet"><input type="checkbox"/> <span class="sv-grid-facet-label"> </span></label>`),ld=W(`<div class="sv-grid-menu sv-grid-choose-columns-menu" role="menu"><div class="sv-grid-menu-filter-head">Visible columns</div> <div class="sv-grid-facet-list"></div></div>`),ud=W(`<button type="button" class="sv-grid-menu-item" role="menuitemradio"><span class="sv-grid-header-icon"><!></span> </button>`),dd=W(`<div class="sv-grid-menu sv-grid-operator-menu" role="menu"></div>`),fd=W(`<div class="sv-grid-menu-sep"></div>`),pd=W(`<button type="button" class="sv-grid-menu-item" role="menuitem"> </button>`),md=W(`<div class="sv-grid-menu-backdrop" role="presentation"></div> <div class="sv-grid-menu sv-grid-context-menu" role="menu"></div>`,1),hd=W(`<div class="sv-grid-menu-backdrop" role="presentation"></div> <div class="sv-grid-menu sv-grid-comment-editor" role="dialog" aria-label="Edit comment"><textarea class="sv-grid-comment-textarea" rows="3" placeholder="Add a comment…"></textarea> <div class="sv-grid-comment-actions"><button type="button" class="sv-grid-comment-remove">Remove</button> <span class="sv-grid-comment-spacer"></span> <button type="button" class="sv-grid-comment-cancel">Cancel</button> <button type="button" class="sv-grid-comment-save">Save</button></div></div>`,1),gd=W(`<!> <!> <!> <!> <!> <!> <!> <!>`,1);function _d(e,t){Ze(t,!0);let n=(e,n=S)=>{let i=F(()=>H(_).find(e=>e.id===n())),o=F(()=>H(ee)(H(i))),s=F(()=>H(a)[n()]?.operator??H(te)(H(i))),c=F(()=>ul(H(i)?.columnDef.editorType??`text`));var l=Ju(),u=R(l),d=R(u);bi(R(d),()=>t.icon,()=>`filter`),N(d),P(),N(u);var f=B(u,2);Y(f,21,()=>H(o),e=>e.value,(e,t)=>{var n=Lu(),r=R(n,!0);N(n);var a={};V(e=>{q(r,e),a!==(a=H(t).value)&&(n.value=(n.__value=H(t).value)??``)},[()=>H(ne)(H(t),H(i))]),K(e,n)}),N(f);var p;Gi(f);var m=B(f,2),h=e=>{let t=F(()=>H(a)[n()]);var r=Wu(),l=z(r);Z(l);var u=B(l,2),d=e=>{var t=Ru();Z(t),V(()=>{Q(t,`type`,H(c)),ra(t,H(a)[n()]?.valueTo??``)}),U(`input`,t,e=>H(O)(n(),e.currentTarget.value)),K(e,t)};J(u,e=>{H(s)===`between`&&e(d)});var f=B(u,2),p=e=>{let r=F(()=>H(t).operator2??H(te)(H(i)));var a=Hu(),s=z(a),l=R(s);let u;var d=B(l,2);let f;var p=B(d,2);N(s);var m=B(s,2);Y(m,21,()=>H(o),e=>e.value,(e,t)=>{var n=zu(),r=R(n,!0);N(n);var a={};V(e=>{q(r,e),a!==(a=H(t).value)&&(n.value=(n.__value=H(t).value)??``)},[()=>H(ne)(H(t),H(i))]),K(e,n)}),N(m);var h;Gi(m);var g=B(m,2),_=e=>{var i=Vu(),a=z(i);Z(a);var o=B(a,2),s=e=>{var r=Bu();Z(r),V(()=>{Q(r,`type`,H(c)),ra(r,H(t).valueTo2??``)}),U(`input`,r,e=>re(n(),{valueTo2:e.currentTarget.value})),K(e,r)};J(o,e=>{H(r)===`between`&&e(s)}),V(()=>{Q(a,`type`,H(c)),ra(a,H(t).value2??``),Q(a,`placeholder`,H(r)===`between`?`From`:`Filter value...`)}),U(`input`,a,e=>re(n(),{value2:e.currentTarget.value})),K(e,i)};J(g,e=>{H(r)!==`isBlank`&&e(_)}),V(()=>{u=X(l,1,``,null,u,{"is-on":(H(t).join??`AND`)===`AND`}),f=X(d,1,``,null,f,{"is-on":H(t).join===`OR`}),h!==(h=H(r))&&(m.value=(m.__value=H(r))??``,Wi(m,H(r)))}),U(`click`,l,()=>re(n(),{join:`AND`})),U(`click`,d,()=>re(n(),{join:`OR`})),U(`click`,p,()=>re(n(),{operator2:void 0,value2:void 0,valueTo2:void 0,join:void 0})),U(`change`,m,e=>re(n(),{operator2:e.currentTarget.value})),K(e,a)},m=e=>{var t=Uu();U(`click`,t,()=>re(n(),{operator2:H(te)(H(i)),value2:``,join:`AND`})),K(e,t)};J(f,e=>{H(t)?.operator2?e(p):e(m,-1)}),V(()=>{Q(l,`type`,H(c)),ra(l,H(a)[n()]?.value??``),Q(l,`placeholder`,H(s)===`between`?`From`:`Filter value...`)}),U(`input`,l,e=>H(D)(n(),e.currentTarget.value)),K(e,r)};J(m,e=>{H(s)!==`isBlank`&&e(h)});var g=B(m,6);Z(g);var v=B(g,2),y=R(v);Z(y),P(2),N(v);var b=B(v,2);Y(b,20,()=>H(M),e=>e,(e,t)=>{var r=Gu(),i=R(r);Z(i);var a=B(i,2),o=R(a,!0);N(a),N(r),V(e=>{ia(i,e),q(o,t===``?`(Blanks)`:t)},[()=>H(fe)(n(),t)]),U(`change`,i,()=>H(pe)(n(),t)),K(e,r)},e=>{K(e,Ku())}),N(b);var x=B(b,2),C=e=>{var t=qu(),n=R(t);N(t),V(()=>q(n,`Showing ${H(M).length??``} of ${H(de).length??``}`)),K(e,t)};J(x,e=>{H(de).length>H(M).length&&e(C)});var w=B(x,2),T=R(w),oe=B(T,2);N(w),N(l),V((e,t)=>{p!==(p=H(s))&&(f.value=(f.__value=H(s))??``,Wi(f,H(s))),ia(y,e),T.disabled=t},[()=>H(me)(n()),()=>!H(ie)(n())]),U(`change`,f,e=>H(E)(n(),e.currentTarget.value)),fa(g,()=>r().columnMenuSearch,e=>r().columnMenuSearch=e),U(`change`,y,()=>H(he)(n())),U(`click`,T,()=>H(ge)(n())),U(`click`,oe,function(...e){H(ae)?.apply(this,e)}),K(e,l)},r=$(t,`ctrl`,7),i=F(()=>r().groupingControlsEnabled),a=F(()=>r().filterMenuValues),o=F(()=>r().tooltip),s=F(()=>r().columnMenuFor),c=F(()=>r().columnMenuPos),l=F(()=>r().filterMenuFor),u=F(()=>r().filterMenuPos),d=F(()=>r().operatorMenuFor),f=F(()=>r().operatorMenuPos),p=F(()=>r().chooseColumnsPos),m=F(()=>r().showColumnFiltersEffective),h=F(()=>r().props.columnMenuTabs===!0),g=F(()=>r().grid),_=F(()=>r().allColumns),v=F(()=>r().isColumnPinned),y=F(()=>r().pinColumnLeft),b=F(()=>r().pinColumnRight),x=F(()=>r().unpinColumn),C=F(()=>r().sortDirectionByColumn),w=F(()=>r().groupingColumns),T=F(()=>r().columnVirtualizationEnabled),E=F(()=>r().updateFilterOperator),D=F(()=>r().updateFilterMenuValue),O=F(()=>r().updateFilterMenuValueTo),ee=F(()=>r().operatorsForColumn),te=F(()=>r().defaultOperatorFor),ne=F(()=>r().operatorLabelFor);function re(e,t){let n=H(_).find(t=>t.id===e),i=r().filterMenuValues[e]??{operator:H(te)(n),value:``};r().filterMenuValues={...r().filterMenuValues,[e]:{...i,...t}}}let ie=F(()=>r().isColumnFiltered),ae=F(()=>r().closeMenus),oe=F(()=>r().autosizeColumn),se=F(()=>r().autosizeAllColumns),ce=F(()=>r().resetColumns),le=F(()=>r().openChooseColumns),ue=F(()=>r().sortColumnFromMenu),k=F(()=>r().clearColumnSort),A=F(()=>r().groupByColumnFromMenu),j=F(()=>r().clearGroupingFromMenu),de=F(()=>r().columnMenuFacetValues),M=F(()=>r().columnMenuVisibleFacets),fe=F(()=>r().isFacetChecked),pe=F(()=>r().toggleFacetValue),me=F(()=>r().isAllFacetsChecked),he=F(()=>r().toggleAllFacets),ge=F(()=>r().clearColumnFilter),_e=F(()=>r().contextMenuFor),ve=F(()=>r().contextMenuPos),ye=F(()=>r().contextMenuItems),be=F(()=>r().closeContextMenu),xe=F(()=>r().commentEditFor),Se=F(()=>r().saveComment),Ce=F(()=>r().removeComment),we=F(()=>r().closeCommentEditor);var Te=gd(),Ee=z(Te),De=e=>{var t=Yu();let n;var r=R(t,!0);N(t),V(()=>{n=X(t,1,`sv-grid-tooltip`,null,n,{"sv-grid-tooltip-above":!H(o).below}),Ui(t,`left: ${H(o).x}px; top: ${H(o).y}px; ${H(o).below?``:`transform: translateY(-100%);`}`),q(r,H(o).text)}),K(e,t)};J(Ee,e=>{H(o)&&e(De)});var Oe=B(Ee,2),ke=e=>{var t=Xu();U(`click`,t,function(...e){H(ae)?.apply(this,e)}),K(e,t)};J(Oe,e=>{(H(s)||H(l)||H(d)||H(p))&&e(ke)});var Ae=B(Oe,2),je=e=>{let a=F(()=>H(s)),o=F(()=>H(_).find(e=>e.id===H(a))),l=F(()=>H(o)?.getCanSort?.()??!1),u=F(()=>H(o)?.columnDef.field!=null&&H(o)?.columnDef.filterable!==!1),d=F(()=>r().columnMenuTab);var f=od(),S=R(f),E=e=>{var t=Qu(),n=R(t);let i;var a=B(n,2),o=e=>{var t=Zu();let n;V(()=>{n=X(t,1,`sv-grid-menu-tab`,null,n,{"is-active":H(d)===`filter`}),Q(t,`aria-selected`,H(d)===`filter`)}),U(`click`,t,()=>r().columnMenuTab=`filter`),K(e,t)};J(a,e=>{H(u)&&H(m)&&e(o)});var s=B(a,2);let c;N(t),V(()=>{i=X(n,1,`sv-grid-menu-tab`,null,i,{"is-active":H(d)===`general`}),Q(n,`aria-selected`,H(d)===`general`),c=X(s,1,`sv-grid-menu-tab`,null,c,{"is-active":H(d)===`columns`}),Q(s,`aria-selected`,H(d)===`columns`)}),U(`click`,n,()=>r().columnMenuTab=`general`),U(`click`,s,()=>r().columnMenuTab=`columns`),K(e,t)};J(S,e=>{H(h)&&e(E)});var D=B(S,2),O=e=>{n(e,()=>H(a))},ee=e=>{var t=ed(),n=B(z(t),2);Y(n,21,()=>H(g).getAllColumns(),e=>e.id,(e,t)=>{var n=$u(),i=R(n);Z(i);var a=B(i,2),o=R(a,!0);N(a),N(n),V(()=>{ia(i,!r().hiddenColumns[H(t).id]),q(o,typeof H(t).columnDef.header==`string`?H(t).columnDef.header:H(t).id)}),U(`change`,i,e=>{if(e.currentTarget.checked){let e={...r().hiddenColumns};delete e[H(t).id],r().hiddenColumns=e}else r().hiddenColumns={...r().hiddenColumns,[H(t).id]:!0}}),K(e,n)}),N(n),K(e,t)},te=e=>{var n=ad(),r=z(n),o=e=>{var n=td(),r=z(n),i=R(r);bi(R(i),()=>t.icon,()=>`sort-asc`),N(i),P(),N(r);var o=B(r,2),s=R(o);bi(R(s),()=>t.icon,()=>`sort-desc`),N(s),P(),N(o);var c=B(o,2),l=R(c);bi(R(l),()=>t.icon,()=>`x`),N(l),P(),N(c),V(()=>c.disabled=!H(C)[H(a)]),U(`click`,r,()=>H(ue)(H(a),!1)),U(`click`,o,()=>H(ue)(H(a),!0)),U(`click`,c,()=>H(k)(H(a))),K(e,n)};J(r,e=>{H(l)&&e(o)});var s=B(r,2),c=e=>{let n=F(()=>H(v)(H(a)));var r=nd(),i=B(z(r),2),o=R(i);bi(R(o),()=>t.icon,()=>`op-startsWith`),N(o),P(),N(i);var s=B(i,2),c=R(s);bi(R(c),()=>t.icon,()=>`op-greaterThan`),N(c),P(),N(s);var l=B(s,2),u=R(l);bi(R(u),()=>t.icon,()=>`x`),N(u),P(),N(l),V(()=>{i.disabled=H(n)===`left`,s.disabled=H(n)===`right`,l.disabled=!H(n)}),U(`click`,i,()=>H(y)(H(a))),U(`click`,s,()=>H(b)(H(a))),U(`click`,l,()=>H(x)(H(a))),K(e,r)};J(s,e=>{H(T)||e(c)});var u=B(s,4),d=R(u);bi(R(d),()=>t.icon,()=>`autosize`),N(d),P(),N(u);var f=B(u,2),m=R(f);bi(R(m),()=>t.icon,()=>`autosize`),N(m),P(),N(f);var g=B(f,2),_=e=>{var n=rd(),r=B(z(n),2),i=R(r);bi(R(i),()=>t.icon,()=>`group`),N(i),P(),N(r);var o=B(r,2),s=R(o);bi(R(s),()=>t.icon,()=>`x`),N(s),P(),N(o),V((e,t)=>{r.disabled=e,o.disabled=t},[()=>H(w).includes(H(a)),()=>!H(w).includes(H(a))]),U(`click`,r,()=>H(A)(H(a))),U(`click`,o,()=>H(j)(H(a))),K(e,n)};J(g,e=>{H(i)&&e(_)});var S=B(g,4),E=e=>{var n=id();let r;var i=R(n);bi(R(i),()=>t.icon,()=>`columns`),N(i);var a=B(i,2);bi(R(a),()=>t.icon,()=>`chevron-down`),N(a),N(n),V(()=>{r=X(n,1,`sv-grid-menu-item`,null,r,{"is-open":H(p)!==null}),Q(n,`aria-expanded`,H(p)!==null)}),U(`click`,n,e=>H(le)(e)),K(e,n)};J(S,e=>{H(h)||e(E)});var D=B(S,2),O=R(D);bi(R(O),()=>t.icon,()=>`reset`),N(O),P(),N(D),U(`click`,u,()=>{H(oe)(H(a)),H(ae)()}),U(`click`,f,()=>{H(se)(),H(ae)()}),U(`click`,D,()=>{H(ce)(),H(ae)()}),K(e,n)};J(D,e=>{H(h)&&H(d)===`filter`&&H(u)&&H(m)?e(O):H(h)&&H(d)===`columns`?e(ee,1):e(te,-1)}),N(f),V(()=>Ui(f,`left: ${H(c).x}px; top: ${H(c).y}px; max-height: calc(100vh - ${H(c).y}px - 12px);`)),K(e,f)};J(Ae,e=>{H(s)&&e(je)});var Me=B(Ae,2),Ne=e=>{var t=sd();n(R(t),()=>H(l)),N(t),V(()=>Ui(t,`left: ${H(u).x}px; top: ${H(u).y}px; max-height: calc(100vh - ${H(u).y}px - 12px);`)),K(e,t)};J(Me,e=>{H(l)&&H(m)&&e(Ne)});var Pe=B(Me,2),Fe=e=>{let t=F(()=>H(g).getAllColumns());var n=ld(),i=B(R(n),2);Y(i,21,()=>H(t),e=>e.id,(e,t)=>{var n=cd(),i=R(n);Z(i);var a=B(i,2),o=R(a,!0);N(a),N(n),V(()=>{ia(i,!r().hiddenColumns[H(t).id]),q(o,typeof H(t).columnDef.header==`string`?H(t).columnDef.header:H(t).id)}),U(`change`,i,e=>{if(e.currentTarget.checked){let e={...r().hiddenColumns};delete e[H(t).id],r().hiddenColumns=e}else r().hiddenColumns={...r().hiddenColumns,[H(t).id]:!0}}),K(e,n)}),N(i),N(n),V(()=>Ui(n,`left: ${H(p).x}px; top: ${H(p).y}px;`)),K(e,n)};J(Pe,e=>{H(p)&&e(Fe)});var Ie=B(Pe,2),Le=e=>{let n=F(()=>H(d)),r=F(()=>H(_).find(e=>e.id===H(n))),i=F(()=>H(ee)(H(r))),o=F(()=>H(a)[H(n)]?.operator??H(te)(H(r)));var s=dd();Y(s,21,()=>H(i),e=>e.value,(e,i)=>{var a=ud(),s=R(a);bi(R(s),()=>t.icon,()=>H(i).iconName),N(s);var c=B(s);N(a),V(e=>{Q(a,`aria-checked`,H(o)===H(i).value),q(c,` ${e??``}`)},[()=>H(ne)(H(i),H(r))]),U(`click`,a,()=>{H(E)(H(n),H(i).value),H(ae)()}),K(e,a)}),N(s),V(()=>Ui(s,`left: ${H(f).x}px; top: ${H(f).y}px;`)),K(e,s)};J(Ie,e=>{H(d)&&e(Le)});var Re=B(Ie,2),ze=e=>{var t=md(),n=z(t),r=B(n,2);Y(r,21,()=>H(ye)(),e=>e.key,(e,t)=>{var n=ii(),r=z(n),i=e=>{K(e,fd())},a=e=>{var n=pd(),r=R(n,!0);N(n),V(()=>{n.disabled=H(t).disabled,q(r,H(t).label)}),U(`click`,n,()=>{H(t).run?.(),H(be)()}),K(e,n)};J(r,e=>{H(t).separator?e(i):e(a,-1)}),K(e,n)}),N(r),V(()=>Ui(r,`left: ${H(ve).x}px; top: ${H(ve).y}px;`)),U(`contextmenu`,n,e=>{e.preventDefault(),H(be)()}),U(`click`,n,function(...e){H(be)?.apply(this,e)}),K(e,t)};J(Re,e=>{H(_e)&&e(ze)});var Be=B(Re,2),Ve=e=>{var t=hd(),n=z(t),i=B(n,2),a=R(i);Dn(a),En(a,!0);var o=B(a,2),s=R(o),c=B(s,4),l=B(c,2);N(o),N(i),V(()=>Ui(i,`left: ${H(xe).x}px; top: ${H(xe).y}px;`)),U(`click`,n,function(...e){H(we)?.apply(this,e)}),U(`keydown`,a,e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),H(we)()),e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),H(Se)())}),fa(a,()=>r().commentDraft,e=>r().commentDraft=e),U(`click`,s,function(...e){H(Ce)?.apply(this,e)}),U(`click`,c,function(...e){H(we)?.apply(this,e)}),U(`click`,l,function(...e){H(Se)?.apply(this,e)}),K(e,t)};J(Be,e=>{H(xe)&&e(Ve)}),K(e,Te),Qe()}Yr([`change`,`input`,`click`,`contextmenu`,`keydown`]);var vd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Count</span> </span>`),yd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Numeric</span> </span>`),bd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Sum</span> </span>`),xd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Avg</span> </span>`),Sd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Min</span> </span>`),Cd=W(`<span class="sv-grid-status-item"><span class="sv-grid-status-label">Max</span> </span>`),wd=W(`<div class="sv-grid-status-bar" role="status" aria-live="polite"></div>`),Td=W(`<div role="navigation" aria-label="Pagination"><div class="sv-grid-pagination-pagesize"><span>Page Size:</span> <div class="sv-grid-pagination-pagesize-dd"><!></div></div> <span class="sv-grid-pagination-range"><strong> </strong> to <strong> </strong> of <strong> </strong></span> <div class="sv-grid-pagination-nav"><button type="button" class="sv-grid-pagination-btn" aria-label="First page">⇤</button> <button type="button" class="sv-grid-pagination-btn" aria-label="Previous page">‹</button> <span class="sv-grid-pagination-label">Page <strong> </strong> of <strong> </strong></span> <button type="button" class="sv-grid-pagination-btn" aria-label="Next page">›</button> <button type="button" class="sv-grid-pagination-btn" aria-label="Last page">⇥</button></div></div>`),Ed=W(`<!> <!>`,1);function Dd(e,t){Ze(t,!0);let n=$(t,`pager`,3,!0),r=$(t,`showStatus`,3,!0),i=$(t,`top`,3,!1),a=F(()=>t.ctrl.paginationEnabled),o=F(()=>t.ctrl.statusBarEnabled),s=F(()=>t.ctrl.statusBarAggregates),c=F(()=>t.ctrl.statusBarStats),l=F(()=>t.ctrl.changePage),u=F(()=>t.ctrl.goToPage),d=F(()=>t.ctrl.setPageSize);var f=Ed(),p=z(f),m=e=>{let t=F(()=>H(c));var n=wd();Y(n,20,()=>H(s),e=>e,(e,n)=>{var r=ii(),i=z(r),a=e=>{var n=vd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).count)]),K(e,n)},o=e=>{var n=yd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).numericCount)]),K(e,n)},s=e=>{var n=bd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).sum)]),K(e,n)},c=e=>{var n=xd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).avg)]),K(e,n)},l=e=>{var n=Sd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).min)]),K(e,n)},u=e=>{var n=Cd(),r=B(R(n),1,!0);N(n),V(e=>q(r,e),[()=>tl(H(t).max)]),K(e,n)};J(i,e=>{n===`count`?e(a):n===`numericCount`?e(o,1):H(t).numericCount>0&&n===`sum`?e(s,2):H(t).numericCount>0&&n===`avg`?e(c,3):H(t).numericCount>0&&n===`min`?e(l,4):H(t).numericCount>0&&n===`max`&&e(u,5)}),K(e,r)}),N(n),K(e,n)};J(p,e=>{r()&&H(o)&&H(c)&&e(m)});var h=B(p,2),g=e=>{let n=F(()=>t.ctrl.paginationTotalRows),r=F(()=>t.ctrl.paginationPageSize),a=F(()=>Math.max(1,Math.ceil(H(n)/H(r)))),o=F(()=>Math.min(t.ctrl.paginationPageIndex+1,H(a))),s=F(()=>H(n)===0?0:(H(o)-1)*H(r)+1),c=F(()=>Math.min(H(n),H(o)*H(r))),f=F(()=>H(o)<=1),p=F(()=>H(o)>=H(a)),m=F(()=>t.pageSizeOptions&&t.pageSizeOptions.length?t.pageSizeOptions:[10,25,50,100]);var h=Td();let g;var _=R(h),v=B(R(_),2),y=R(v);{let e=F(()=>H(m).map(e=>({value:e,label:String(e)})));Yo(y,{get options(){return H(e)},get value(){return H(r)},autoOpen:!1,onChange:e=>H(d)(Number(e))})}N(v),N(_);var b=B(_,2),x=R(b),S=R(x,!0);N(x);var C=B(x,2),w=R(C,!0);N(C);var T=B(C,2),E=R(T,!0);N(T),N(b);var D=B(b,2),O=R(D),ee=B(O,2),te=B(ee,2),ne=B(R(te)),re=R(ne,!0);N(ne);var ie=B(ne,2),ae=R(ie,!0);N(ie),N(te);var oe=B(te,2),se=B(oe,2);N(D),N(h),V((e,t,n,r,a)=>{g=X(h,1,`sv-grid-pagination`,null,g,{"sv-grid-pagination-top":i()}),q(S,e),q(w,t),q(E,n),O.disabled=H(f),ee.disabled=H(f),q(re,r),q(ae,a),oe.disabled=H(p),se.disabled=H(p)},[()=>H(s).toLocaleString(),()=>H(c).toLocaleString(),()=>H(n).toLocaleString(),()=>H(o).toLocaleString(),()=>H(a).toLocaleString()]),U(`click`,O,()=>H(u)(0)),U(`click`,ee,()=>H(l)(-1)),U(`click`,oe,()=>H(l)(1)),U(`click`,se,()=>H(u)(H(a)-1)),K(e,h)};J(h,e=>{n()&&H(a)&&e(g)}),K(e,f),Qe()}Yr([`click`]);var Od=W(`<button type="button" class="sv-board-lane-add svelte-1at5oyf">+</button>`),kd=W(`<div class="sv-board-drop-marker svelte-1at5oyf" aria-hidden="true"></div>`),Ad=W(`<div class="sv-board-card-title svelte-1at5oyf"> </div>`),jd=W(`<div class="sv-board-card-metarow svelte-1at5oyf"><dt class="svelte-1at5oyf"> </dt> <dd class="svelte-1at5oyf"> </dd></div>`),Md=W(`<dl class="sv-board-card-meta svelte-1at5oyf"></dl>`),Nd=W(`<!> <!>`,1),Pd=W(`<!> <article draggable="true"><!></article>`,1),Fd=W(`<div class="sv-board-drop-marker svelte-1at5oyf" aria-hidden="true"></div>`),Id=W(`<div class="sv-board-lane-empty svelte-1at5oyf">No cards</div>`),Ld=W(`<section class="sv-board-lane svelte-1at5oyf"><header class="sv-board-lane-head svelte-1at5oyf"><span class="sv-board-lane-title svelte-1at5oyf"> </span> <span> <!></span> <!></header> <div><!> <!> <!></div></section>`),Rd=W(`<div class="sv-board svelte-1at5oyf" role="group" aria-label="Board"></div>`);function zd(e,t){Ze(t,!0);let n=F(()=>t.board.groupBy);function r(e,t){return e[t]}function i(e){let t=r(e,H(n));return t==null?``:String(t)}function a(e){return e==null?``:e instanceof Date?e.toLocaleDateString():String(e)}let o=F(()=>t.columns.filter(e=>typeof e.field==`string`));function s(e){let t=H(o).find(t=>t.field===e);return t&&typeof t.header==`string`?t.header:e}let c=F(()=>t.board.titleField??H(o)[0]?.field),l=F(()=>t.board.cardFields?t.board.cardFields.slice(0,4):H(o).map(e=>e.field).filter(e=>e!==H(c)&&e!==H(n)).slice(0,3)),u=F(()=>{if(t.board.lanes&&t.board.lanes.length)return[...t.board.lanes];let e=new Set,n=[];for(let r of t.data){let t=i(r);e.has(t)||(e.add(t),n.push({id:t,title:t===``?`(empty)`:t}))}return n});function d(e){return t.data.filter(t=>i(t)===e)}function f(e){return e.title??(e.id===``?`(empty)`:e.id)}function p(e){let n=t.data.indexOf(e);return t.getRowId?t.getRowId(e,n):String(n)}let m=I(null),h=I(null),g=I(null),_=I(null);function v(e,t,n){L(m,t,!0),L(h,n,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,p(t)))}function y(e,t,n){if(!H(m))return;e.preventDefault(),e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`);let r=e.currentTarget.getBoundingClientRect(),i=e.clientY-r.top>r.height/2;L(g,t,!0),L(_,i?n+1:n,!0)}function b(e,t,n){H(m)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),H(g)!==t&&(L(g,t,!0),L(_,n,!0)))}function x(e,n){e.preventDefault();let r=H(m),i=H(h),a=H(_);if(S(),!r||i==null||i===n&&a==null)return;let o=a??d(n).length;if(i===n){let e=d(n).indexOf(r);e>-1&&o>e&&--o}t.board.onCardMove?.({row:r,fromLane:i,toLane:n,toIndex:o})}function S(){L(m,null),L(h,null),L(g,null),L(_,null)}var C=Rd();Y(C,21,()=>H(u),e=>e.id,(e,n)=>{let i=F(()=>d(H(n).id)),o=F(()=>H(n).wipLimit!=null&&H(i).length>H(n).wipLimit);var u=Ld(),h=R(u),C=R(h),w=R(C,!0);N(C);var T=B(C,2);let E;var D=R(T,!0),O=B(D),ee=e=>{var t=ri();V(()=>q(t,`/${H(n).wipLimit??``}`)),K(e,t)};J(O,e=>{H(n).wipLimit!=null&&e(ee)}),N(T);var te=B(T,2),ne=e=>{var r=Od();V(e=>Q(r,`aria-label`,e),[()=>`Add card to ${f(H(n))}`]),U(`click`,r,()=>t.board.onCardAdd?.(H(n).id)),K(e,r)};J(te,e=>{t.board.onCardAdd&&e(ne)}),N(h);var re=B(h,2);let ie;var ae=R(re);Y(ae,19,()=>H(i),e=>p(e),(e,i,o)=>{var u=Pd(),d=z(u),f=e=>{K(e,kd())};J(d,e=>{H(g)===H(n).id&&H(_)===H(o)&&e(f)});var p=B(d,2);let h;var b=R(p),x=e=>{var n=ii();bi(z(n),()=>t.board.card,()=>H(i)),K(e,n)},C=e=>{var t=Nd(),n=z(t),o=e=>{var t=Ad(),n=R(t,!0);N(t),V(e=>q(n,e),[()=>a(r(H(i),H(c)))]),K(e,t)};J(n,e=>{H(c)&&e(o)});var u=B(n,2),d=e=>{var t=Md();Y(t,20,()=>H(l),e=>e,(e,t)=>{let n=F(()=>a(r(H(i),t)));var o=ii(),c=z(o),l=e=>{var r=jd(),i=R(r),a=R(i,!0);N(i);var o=B(i,2),c=R(o,!0);N(o),N(r),V(e=>{q(a,e),q(c,H(n))},[()=>s(t)]),K(e,r)};J(c,e=>{H(n)!==``&&e(l)}),K(e,o)}),N(t),K(e,t)};J(u,e=>{H(l).length&&e(d)}),K(e,t)};J(b,e=>{t.board.card?e(x):e(C,-1)}),N(p),V(()=>h=X(p,1,`sv-board-card svelte-1at5oyf`,null,h,{"is-dragging":H(m)===H(i)})),Jr(`dragstart`,p,e=>v(e,H(i),H(n).id)),Jr(`dragover`,p,e=>y(e,H(n).id,H(o))),Jr(`dragend`,p,S),K(e,u)});var oe=B(ae,2),se=e=>{K(e,Fd())};J(oe,e=>{H(g)===H(n).id&&H(_)===H(i).length&&e(se)});var ce=B(oe,2),le=e=>{K(e,Id())};J(ce,e=>{H(i).length===0&&e(le)}),N(re),N(u),V((e,t)=>{Ui(u,H(n).color?`--sv-board-accent: ${H(n).color};`:void 0),Q(u,`aria-label`,e),q(w,t),E=X(T,1,`sv-board-lane-count svelte-1at5oyf`,null,E,{"is-over":H(o)}),Q(T,`title`,H(n).wipLimit==null?void 0:`WIP limit ${H(n).wipLimit}`),q(D,H(i).length),ie=X(re,1,`sv-board-lane-body svelte-1at5oyf`,null,ie,{"is-dropover":H(g)===H(n).id})},[()=>f(H(n)),()=>f(H(n))]),Jr(`dragover`,re,e=>b(e,H(n).id,H(i).length)),Jr(`drop`,re,e=>x(e,H(n).id)),K(e,u)}),N(C),K(e,C),Qe()}Yr([`click`]);var Bd=W(`<div class="sv-grid-state sv-grid-state-loading" role="status">Loading grid data...</div>`),Vd=W(`<div class="sv-grid-state sv-grid-state-error" role="alert"> </div>`),Hd=W(`<div><!></div>`),Ud=G(`<path d="M8 10l4-4 4 4"></path><path d="M8 14l4 4 4-4"></path>`,1),Wd=G(`<path d="M6 14l6-6 6 6"></path>`),Gd=G(`<path d="M6 10l6 6 6-6"></path>`),Kd=G(`<path d="M3 5h18l-7 8v6l-4 2v-8z"></path>`),qd=G(`<path d="M4 7h16"></path><path d="M4 12h16"></path><path d="M4 17h16"></path>`,1),Jd=G(`<path d="M12 3l8 4.5-8 4.5-8-4.5z"></path><path d="M4 12l8 4.5 8-4.5"></path><path d="M4 16.5l8 4.5 8-4.5"></path>`,1),Yd=G(`<path d="M18 6L6 18"></path><path d="M6 6l12 12"></path>`,1),Xd=G(`<path d="M6 9l6 6 6-6"></path>`),Zd=G(`<circle cx="11" cy="11" r="6"></circle><path d="M20 20l-4.5-4.5"></path>`,1),Qd=G(`<path d="M5 9.5h14"></path><path d="M5 14.5h14"></path>`,1),$d=G(`<path d="M5 5v14"></path><path d="M9 9h10"></path><path d="M9 15h7"></path>`,1),ef=G(`<path d="M8 5l9 7-9 7"></path>`),tf=G(`<path d="M16 5l-9 7 9 7"></path>`),nf=G(`<circle cx="12" cy="12" r="8"></circle><path d="M6.5 6.5l11 11"></path>`,1),rf=G(`<path d="M3 12h18"></path><path d="M3 12l4-4"></path><path d="M3 12l4 4"></path><path d="M21 12l-4-4"></path><path d="M21 12l-4 4"></path>`,1),af=G(`<rect x="3" y="4" width="5" height="16" rx="1"></rect><rect x="10" y="4" width="5" height="16" rx="1"></rect><rect x="17" y="4" width="4" height="16" rx="1"></rect>`,1),of=G(`<path d="M3 4v6h6"></path><path d="M3.5 10A9 9 0 1 0 6 5.3"></path>`,1),sf=G(`<svg class="sv-grid-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><!></svg>`),cf=W(`<div class="sv-grid-checkbox sv-grid-checkbox-readonly" role="checkbox" aria-readonly="true"></div>`),lf=W(`<span class="sv-grid-chip"> </span>`),uf=W(`<div class="sv-grid-chips-display"></div>`),df=G(`<path fill-opacity="0.18" stroke="none"></path>`),ff=G(`<path fill="none" stroke-linejoin="round" stroke-linecap="round"></path>`),pf=G(`<rect rx="0.5"></rect>`),mf=G(`<circle></circle>`),hf=G(`<svg class="sv-grid-sparkline" preserveAspectRatio="none" role="img"><!><!><!><!></svg>`),gf=W(`<span class="sv-grid-group-child-indent" aria-hidden="true"></span>`),_f=W(`<!> <!>`,1),vf=W(`<div class="sv-grid-cf-bg"></div>`),yf=W(`<div class="sv-grid-cf-bar"></div>`),bf=W(`<span class="sv-grid-cf-icon"> </span>`),xf=W(`<!> <!> <span class="sv-grid-cf-content"><!> <!></span>`,1),Sf=W(`<button type="button" class="sv-grid-checkbox" role="checkbox" aria-label="Edit checkbox value"></button>`),Cf=W(`<button type="button" role="radio">★</button>`),wf=W(`<span class="sv-grid-rating-editor" role="radiogroup" aria-label="Rating"><!> <button type="button" aria-label="Clear rating" class="sv-grid-rating-clear">×</button></span>`),Tf=W(`<textarea class="sv-grid-cell-editor sv-grid-cell-editor-textarea" rows="4"></textarea>`),Ef=W(`<button type="button" class="sv-grid-autocomplete-option" role="option"> </button>`),Df=W(`<div class="sv-grid-autocomplete-list" role="listbox"></div>`),Of=W(`<div class="sv-grid-autocomplete"><input class="sv-grid-cell-editor sv-grid-cell-editor-autocomplete" type="text"/> <!></div>`),kf=W(`<input type="color"/>`),Af=W(`<input/>`),jf=W(`<input type="checkbox" class="sv-grid-fr-editor sv-grid-fr-checkbox"/>`),Mf=W(`<option> </option>`),Nf=W(`<select class="sv-grid-cell-editor sv-grid-fr-editor"></select>`),Pf=W(`<input class="sv-grid-cell-editor sv-grid-fr-editor"/>`),Ff=W(`<span class="sv-grid-chip sv-grid-chip-removable"> <button type="button" class="sv-grid-chip-remove">×</button></span>`),If=W(`<button type="button" class="sv-grid-chip-commit" aria-label="Commit chip selection">Done</button>`),Lf=W(`<div class="sv-grid-cell-editor sv-grid-cell-editor-chips" role="group"><div class="sv-grid-chips-row"><!> <input class="sv-grid-chip-input" type="text"/> <!></div></div>`),Rf=W(`<span class="sv-grid-group-agg"><span class="sv-grid-group-agg-label"> </span> </span>`),zf=W(`<div class="sv-grid-group-content"><button type="button" class="sv-grid-group-toggle"> </button> <span class="sv-grid-group-label"> </span> <span class="sv-grid-group-count"> </span> <!></div>`),Bf=W(`<tr><td class="sv-grid-cell sv-grid-detail-cell"><!></td></tr>`),Vf=W(`<td class="sv-grid-cell sv-grid-row-number-cell"> </td>`),Hf=W(`<td class="sv-grid-cell sv-grid-selection-cell"></td>`),Uf=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),Wf=W(`<td> </td>`),Gf=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),Kf=W(`<tr><!><!><!><!><!></tr>`),qf=W(`<label class="sv-grid-global-filter">Filter all rows <input placeholder="Type to filter..."/></label>`),Jf=W(`<div class="sv-grid-toolbar"><button type="button"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="6" height="16" rx="1"></rect><rect x="11" y="4" width="4" height="16" rx="1"></rect><rect x="17" y="4" width="4" height="16" rx="1"></rect></svg> Columns & Filters</button></div>`),Yf=W(`<th class="sv-grid-column sv-grid-row-number-column" aria-hidden="true"></th>`),Xf=W(`<th class="sv-grid-column sv-grid-selection-column" aria-hidden="true"></th>`),Zf=W(`<button type="button"><span class="sv-grid-group-header-label"> </span> <svg class="sv-grid-group-caret" viewBox="0 0 16 16" width="10" height="10" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="4 6 8 10 12 6"></polyline></svg></button>`),Qf=W(`<span class="sv-grid-group-header-label"> </span>`),$f=W(`<th><!></th>`),ep=W(`<tr><!><!><!></tr>`),tp=W(`<th class="sv-grid-column sv-grid-row-number-column" aria-label="Row number"><span class="sv-grid-row-number-head">#</span></th>`),np=W(`<th class="sv-grid-column sv-grid-selection-column"><button type="button" class="sv-grid-checkbox" role="checkbox" aria-label="Select all rows"></button></th>`),rp=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),ip=W(`<span class="sv-grid-header-icon"><!></span>`),ap=W(`<span class="sv-grid-header-icon"><!></span>`),op=W(`<div class="sv-grid-header-custom" role="button" tabindex="-1"><!> <!></div>`),sp=W(`<span class="sv-grid-header-icon"><!></span>`),cp=W(`<span class="sv-grid-header-icon"><!></span>`),lp=W(`<span class="sv-grid-header-icon sv-grid-header-icon-hint"><!></span>`),up=W(`<button type="button" class="sv-grid-header-sort"><span class="sv-grid-header-label"> </span> <!></button>`),dp=W(`<span class="sv-grid-header-icon sv-grid-header-icon-flag" title="Grouped"><!></span>`),fp=W(`<button type="button" aria-label="Filter" aria-haspopup="menu"><!></button>`),pp=W(`<input class="sv-grid-column-filter" placeholder="Filter"/>`),mp=W(`<div class="sv-grid-header-cell"><!> <!> <!> <button type="button" aria-label="Column menu" aria-haspopup="menu"><!></button></div> <!> <div role="separator" aria-orientation="vertical" aria-label="Resize column"></div>`,1),hp=W(`<th><!></th>`),gp=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),_p=W(`<th class="sv-grid-column sv-grid-row-number-column"></th>`),vp=W(`<th class="sv-grid-column sv-grid-selection-column"></th>`),yp=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),bp=W(`<input class="sv-grid-filter-value sv-grid-filter-value-to" placeholder="To"/>`),xp=W(`<input class="sv-grid-filter-value"/> <!>`,1),Sp=W(`<th class="sv-grid-column"><div class="sv-grid-filter-row-control"><button type="button"><span class="sv-grid-header-icon"><!></span> <span class="sv-grid-caret"><!></span></button> <!></div></th>`),Cp=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),wp=W(`<tr><!><!><!><!><!></tr>`),Tp=W(`<tr><!><!><!><!><!></tr> <!>`,1),Ep=W(`<tbody class="sv-grid-pinned sv-grid-pinned-top-body" role="rowgroup"></tbody>`),Dp=W(`<tr class="sv-grid-row sv-grid-empty-row"><td class="sv-grid-cell sv-grid-empty-cell"> </td></tr>`),Op=W(`<tr class="sv-grid-row sv-grid-row-spacer" aria-hidden="true"><td class="sv-grid-cell sv-grid-cell-spacer"></td></tr>`),kp=W(`<tr><td><!></td></tr>`),Ap=W(`<td class="sv-grid-cell sv-grid-row-number-cell"> </td>`),jp=W(`<td class="sv-grid-cell sv-grid-selection-cell"><button type="button" class="sv-grid-checkbox" role="checkbox" aria-label="Select row"></button></td>`),Mp=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),Np=W(`<div class="sv-grid-fill-handle" role="button" aria-label="Fill handle"></div>`),Pp=W(`<span class="sv-grid-cell-note-corner" aria-label="Note"></span>`),Fp=W(`<td><!> <!> <!></td>`),Ip=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),Lp=W(`<tr><!><!><!><!><!></tr>`),Rp=W(`<tr class="sv-grid-row sv-grid-row-spacer" aria-hidden="true"><td class="sv-grid-cell sv-grid-cell-spacer"></td></tr>`),zp=W(`<!> <!> <!>`,1),Bp=W(`<tr><td><!></td></tr>`),Vp=W(`<td class="sv-grid-cell sv-grid-row-number-cell"> </td>`),Hp=W(`<td class="sv-grid-cell sv-grid-selection-cell"><button type="button" class="sv-grid-checkbox" role="checkbox" aria-label="Select row"></button></td>`),Up=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),Wp=W(`<span class="sv-grid-cell-note-corner" aria-label="Note"></span>`),Gp=W(`<td><!> <!></td>`),Kp=W(`<td class="sv-grid-cell sv-grid-cell-spacer" aria-hidden="true"></td>`),qp=W(`<tr><!><!><!><!><!></tr>`),Jp=W(`<tbody class="sv-grid-pinned sv-grid-pinned-bottom-body" role="rowgroup"></tbody>`),Yp=W(`<th class="sv-grid-column sv-grid-summary-column sv-grid-row-number-column"></th>`),Xp=W(`<th class="sv-grid-column sv-grid-summary-column sv-grid-selection-column"></th>`),Zp=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),Qp=W(`<th class="sv-grid-column sv-grid-summary-column"> </th>`),$p=W(`<th class="sv-grid-column sv-grid-column-spacer" aria-hidden="true"></th>`),em=W(`<tfoot class="sv-grid-foot" role="rowgroup"><tr><!><!><!><!><!></tr></tfoot>`),tm=W(`<div class="sv-grid-scrollbar-corner" aria-hidden="true"></div>`),nm=W(`<sv-grid-scrollbar></sv-grid-scrollbar>`,2),rm=W(`<sv-grid-scrollbar></sv-grid-scrollbar>`,2),im=W(`<div class="sv-grid-scrollbar-corner-br" aria-hidden="true"></div>`),am=W(`<div class="sv-grid-find" role="search" aria-label="Find in grid"><svg class="sv-grid-find-icon" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5" fill="none" stroke="currentColor" stroke-width="1.5"></circle><line x1="10.2" y1="10.2" x2="14" y2="14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line></svg> <input class="sv-grid-find-input" type="search" placeholder="Find in grid…"/> <span class="sv-grid-find-count"> </span> <button type="button" class="sv-grid-find-step" aria-label="Previous match">↑</button> <button type="button" class="sv-grid-find-step" aria-label="Next match">↓</button> <button type="button" class="sv-grid-find-close" aria-label="Close find">✕</button></div>`),om=W(`<div class="sv-grid-skeleton-cell"><span class="sv-grid-skeleton-bar"></span></div>`),sm=W(`<div class="sv-grid-skeleton-row"></div>`),cm=W(`<div class="sv-grid-skeleton" aria-hidden="true"></div>`),lm=W(`<div class="sv-grid-loading-overlay" role="status" aria-live="polite"><div class="sv-grid-loading-bar"></div> <!> <span class="sv-grid-sr-only">Loading…</span></div>`),um=W(`<li class="sv-grid-tool-panel-item"><label class="sv-grid-tool-panel-vis"><input type="checkbox"/> <span class="sv-grid-tool-panel-name"> </span></label> <span class="sv-grid-tool-panel-actions"><button type="button">⊞</button> <button type="button" class="sv-grid-tool-panel-btn" aria-label="Move up">↑</button> <button type="button" class="sv-grid-tool-panel-btn" aria-label="Move down">↓</button></span></li>`),dm=W(`<ul class="sv-grid-tool-panel-list"></ul>`),fm=W(`<button type="button" class="sv-grid-tp-filter-clear" title="Clear filter">✕</button>`),pm=W(`<option> </option>`),mm=W(`<input class="sv-grid-tp-filter-input" placeholder="To"/>`),hm=W(`<input class="sv-grid-tp-filter-input"/> <!>`,1),gm=W(`<div><div class="sv-grid-tp-filter-head"><span class="sv-grid-tp-filter-name"> </span> <!></div> <select class="sv-grid-tp-filter-op"></select> <!></div>`),_m=W(`<div class="sv-grid-tool-panel-filters"></div>`),vm=W(`<aside class="sv-grid-tool-panel" aria-label="Tool panel"><div class="sv-grid-tool-panel-head"><span> </span> <button type="button" class="sv-grid-tool-panel-close" aria-label="Close">✕</button></div> <div class="sv-grid-tool-panel-tabs" role="tablist"><button type="button" role="tab">Columns</button> <button type="button" role="tab">Filters</button></div> <!></aside>`),ym=W(`<div><!> <!> <!> <div class="sv-grid-shell"><div><table><thead class="sv-grid-head" role="rowgroup"><!><!></thead><!><tbody class="sv-grid-body" role="rowgroup"><!></tbody><!><!></table></div> <!> <!> <!> <!></div> <!> <!> <!> <!></div> <!>`,1);function bm(e,t){Ze(t,!0);let n=Iu(xa(t,[`$$slots`,`$$events`,`$$legacy`])),r=F(()=>t.board),i=F(()=>n.filterRowValues),a=F(()=>n.filterMenuValues),o=F(()=>n.showTooltipFor),s=F(()=>n.hideTooltip),c=F(()=>n.findHits),l=F(()=>n.headerHeight),u=F(()=>n.resizingColumnId),d=F(()=>n.selectionColumnWidth),f=F(()=>n.rowNumberColumnWidth),p=F(()=>n.showRowNumbersEffective),m=F(()=>n.columnMenuFor),h=F(()=>n.filterMenuFor),g=F(()=>n.operatorMenuFor),_=F(()=>n.viewportWidth),v=F(()=>n.viewportHeight),y=F(()=>n.scrollMetrics),b=F(()=>n.hasVerticalOverflow),x=F(()=>n.showGlobalFilterEffective),C=F(()=>n.showFilterRowEffective),w=F(()=>n.showInlineColumnFilterEffective),T=F(()=>n.showRowSelectionEffective),E=F(()=>n.grid),D=F(()=>n.allColumns),O=F(()=>n.headerGroups),ee=F(()=>n.groupHeaderRows),te=F(()=>n.cellPinStyle),ne=F(()=>n.isColumnPinned),re=F(()=>n.colDragId),ie=F(()=>n.colDropOnId),ae=F(()=>n.colDropSide),oe=F(()=>n.onColumnHeaderDragStart),se=F(()=>n.onColumnHeaderDragOver),ce=F(()=>n.onColumnHeaderDragLeave),le=F(()=>n.onColumnHeaderDrop),ue=F(()=>n.onColumnHeaderDragEnd),k=F(()=>t.rowDragManaged===!0),A=F(()=>n.rowDropIndex),j=F(()=>n.rowDropSide),de=F(()=>n.onRowDragStart),M=F(()=>n.onRowDragOver),fe=F(()=>n.onRowDragLeave),pe=F(()=>n.onRowDrop),me=F(()=>n.onRowsContainerDragOver),he=F(()=>n.onRowsContainerDrop),ge=F(()=>n.onRowDragEnd);function _e(e){return H(k)?{draggable:!0,ondragstart:t=>H(de)(t,e),ondragover:t=>H(M)(t,e),ondragleave:()=>H(fe)(e),ondrop:t=>H(pe)(t,e),ondragend:()=>H(ge)()}:{}}function ve(e){return!H(k)||H(A)!==e?``:H(j)===`after`?`sv-grid-row-drop-after`:`sv-grid-row-drop-before`}let ye=F(()=>n.getColumnBaseValue),be=F(()=>n.hasConditionalFormats),xe=F(()=>n.cellConditionalFormat),Se=F(()=>n.isGroupRow),Ce=F(()=>n.sortDirectionByColumn),we=F(()=>n.groupingColumns),Te=F(()=>n.allRows),Ee=F(()=>n.toolPanelEnabled),De=F(()=>n.toolPanelColumns),Oe=F(()=>n.toolPanelHeaderLabel),ke=F(()=>n.toggleColumnVisibleInPanel),Ae=F(()=>n.moveColumnInPanel),je=F(()=>n.toggleGroupInPanel),Me=F(()=>n.rowVirtualizationEnabled),Ne=F(()=>n.columnVirtualizationEnabled),Pe=F(()=>n.virtualRows),Fe=F(()=>n.rowTopSpacer),Ie=F(()=>n.rowBottomSpacer),Le=F(()=>n.rowDomTotalSize),Re=F(()=>n.renderedColumns),ze=F(()=>n.totalColumnWidth);function Be(e,t){let n=t.rowId,r=t.value;return{update(t){if(t.rowId!==n){n=t.rowId,r=t.value;return}t.active&&t.className&&!Object.is(t.value,r)&&(e.classList.remove(t.className),e.offsetWidth,e.classList.add(t.className)),r=t.value}}}function Ve(e){return e&&typeof e==`object`&&e.className?e.className:`sv-grid-cell-flash`}let He=F(()=>n.fullRowEdit);Ln(()=>{if(!H(He))return;let e=e=>{let t=e.target;t&&t.closest(`.sv-grid-fr-editor`)||n.commitFullRowEdit()};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)});function Ue(e){e.key===`Enter`?(e.preventDefault(),n.commitFullRowEdit(),n.gridRootEl?.focus({preventScroll:!0})):e.key===`Escape`&&(e.preventDefault(),n.cancelFullRowEdit(),n.gridRootEl?.focus({preventScroll:!0}))}function We(e){return typeof e==`object`&&e&&`value`in e?String(e.value):String(e)}function Ge(e){return typeof e==`object`&&e&&`label`in e?String(e.label):String(e)}let Ke=F(()=>n.hasHorizontalOverflow),qe=F(()=>n.columnWindowStart),Je=F(()=>n.columnWindowRightSpacer),Ye=F(()=>n.activeCell),Xe=F(()=>n.activeDescendantId),$e=F(()=>n.summaryByColumn),et=F(()=>n.hasMeasured),tt=F(()=>n.onBodyScroll),nt=F(()=>n.computeRowClass),rt=F(()=>n.computeCellClass),it=F(()=>n.computeCellTooltip),at=F(()=>n.computeCellValidity),ot=F(()=>n.computeCellNote),st=F(()=>n.getCellDisplayValue),ct=F(()=>n.getColumnAlign),lt=F(()=>n.getColumnEditorOptions),ut=F(()=>n.formatListCellValue),dt=F(()=>n.formatCellValue),ft=F(()=>n.getPinnedCellValue),pt=F(()=>n.formatPinnedValue),mt=F(()=>n.computePinnedCellClass),ht=F(()=>n.isRowSelected),gt=F(()=>n.toggleRowSelectionById),_t=F(()=>n.headerSelectionState),vt=F(()=>n.toggleSelectAllRows),yt=F(()=>n.setActiveCell),bt=F(()=>n.scrollActiveCellIntoView),xt=F(()=>n.getColumnWidth),St=F(()=>n.startColumnResize),Ct=F(()=>n.getCellRangeEdges),wt=F(()=>n.fillHandleCell),Tt=F(()=>n.isInFillPreview),Et=F(()=>n.fillMarqueeEdges),Dt=F(()=>n.startFillDrag),Ot=F(()=>n.onCellPointerDown),kt=F(()=>n.onCellPointerEnter),At=F(()=>n.endDragSelection),jt=F(()=>n.onWindowPointerMove),Mt=F(()=>n.onCellClick),Nt=F(()=>n.emitCellDoubleClick),Pt=F(()=>n.openContextMenu),Ft=F(()=>n.saveEditingCell),It=F(()=>n.updateEditingCellValue),Lt=F(()=>n.onEditorKeyDown),Rt=F(()=>n.focusOnMount);function zt(){let e=n.editingCell;return{value:e?.value,rowId:e?.rowId??``,columnId:e?.columnId??``,onChange:e=>H(It)(e),onCommit:e=>{e!==void 0&&H(It)(e),H(Ft)()},onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}}}let Bt=F(()=>n.onHeaderSortClick),Vt=F(()=>n.onGridKeyDown),Ht=F(()=>n.onGridPaste),Ut=F(()=>n.updateFilterRow),Wt=F(()=>n.updateFilterMenuValue),Gt=F(()=>n.updateFilterMenuValueTo),Kt=F(()=>n.updateFilterOperator),qt=F(()=>n.operatorsForColumn),Jt=F(()=>n.clearColumnFilter),Yt=F(()=>n.toggleCheckboxWithKeyboard),Xt=F(()=>n.operatorOption),Zt=F(()=>n.defaultOperatorFor),Qt=F(()=>n.isColumnFiltered),$t=F(()=>n.openColumnMenu),en=F(()=>n.openFilterMenu),tn=F(()=>n.openOperatorMenu),nn=F(()=>n.onWindowKeydown);var I=ii();Jr(`keydown`,pn,function(...e){H(nn)?.apply(this,e)}),Jr(`pointerup`,pn,function(...e){H(At)?.apply(this,e)}),Jr(`pointermove`,pn,function(...e){H(jt)?.apply(this,e)});var rn=z(I),L=e=>{K(e,Bd())},an=e=>{var n=Vd(),r=R(n,!0);N(n),V(()=>q(r,t.error)),K(e,n)},on=e=>{var n=Hd();let i;zd(R(n),{get data(){return t.data},get columns(){return t.columns},get board(){return H(r)},get getRowId(){return t.getRowId}}),N(n),V(()=>{i=X(n,1,`sv-grid-root sv-grid-board-root`,null,i,{"sv-grid-root-fill":t.containerHeight===`100%`}),Ui(n,`height: ${typeof t.containerHeight==`string`?t.containerHeight:`${t.containerHeight??520}px`};`)}),K(e,n)},sn=e=>{let r=(e,t=S)=>{var n=sf(),r=R(n),i=e=>{var t=Ud();P(),K(e,t)},a=e=>{K(e,Wd())},o=e=>{K(e,Gd())},s=e=>{K(e,Kd())},c=e=>{var t=qd();P(2),K(e,t)},l=e=>{var t=Jd();P(2),K(e,t)},u=e=>{var t=Yd();P(),K(e,t)},d=e=>{K(e,Xd())},f=e=>{var t=Zd();P(),K(e,t)},p=e=>{var t=Qd();P(),K(e,t)},m=e=>{var t=$d();P(2),K(e,t)},h=e=>{K(e,ef())},g=e=>{K(e,tf())},_=e=>{var t=nf();P(),K(e,t)},v=e=>{var t=rf();P(4),K(e,t)},y=e=>{var t=af();P(2),K(e,t)},b=e=>{var t=of();P(),K(e,t)};J(r,e=>{t()===`sort`?e(i):t()===`sort-asc`?e(a,1):t()===`sort-desc`?e(o,2):t()===`filter`?e(s,3):t()===`menu`?e(c,4):t()===`group`?e(l,5):t()===`x`?e(u,6):t()===`chevron-down`?e(d,7):t()===`op-contains`?e(f,8):t()===`op-equals`?e(p,9):t()===`op-startsWith`?e(m,10):t()===`op-greaterThan`?e(h,11):t()===`op-lessThan`?e(g,12):t()===`op-isBlank`?e(_,13):t()===`autosize`?e(v,14):t()===`columns`?e(y,15):t()===`reset`&&e(b,16)}),N(n),K(e,n)},A=(e,t=S,n=S,r=S)=>{var i=ii(),a=z(i),o=e=>{var t=cf();V((e,n)=>{Q(t,`aria-checked`,e),Q(t,`aria-label`,n)},[()=>!!r(),()=>H(Oe)(n())]),K(e,t)},s=e=>{let i=F(()=>Array.isArray(r())?r():r()==null||r()===``?[]:[r()]),a=F(()=>H(lt)(n(),t())),o=F(()=>n().columnDef.editorType===`chips`),s=F(()=>H(i).some(e=>pl(H(a),e)));var c=ii(),l=z(c),u=e=>{var t=uf();Y(t,21,()=>H(i),e=>String(e),(e,t)=>{var n=lf(),r=R(n,!0);N(n),V((e,t)=>{Ui(n,e),q(r,t)},[()=>ml(pl(H(a),H(t))),()=>fl(H(a),H(t))]),K(e,n)}),N(t),K(e,t)},d=e=>{var i=ri();V(e=>q(i,e),[()=>H(ut)(n(),r(),t())]),K(e,i)};J(l,e=>{H(i).length>0&&(H(o)||H(s))?e(u):e(d,-1)}),K(e,c)},c=e=>{let t=F(()=>Ao(ko(r()),n().columnDef.sparkline));var i=ii(),a=z(i),o=e=>{let n=F(()=>ko(r()));var i=hf(),a=R(i),o=e=>{var n=df();V(()=>{Q(n,`d`,H(t).areaPath),Q(n,`fill`,H(t).color)}),K(e,n)};J(a,e=>{H(t).areaPath&&e(o)});var s=B(a),c=e=>{var n=ff();V(()=>{Q(n,`d`,H(t).linePath),Q(n,`stroke`,H(t).color),Q(n,`stroke-width`,H(t).lineWidth)}),K(e,n)};J(s,e=>{H(t).linePath&&e(c)});var l=B(s);Y(l,17,()=>H(t).bars,di,(e,n)=>{var r=pf();V(()=>{Q(r,`x`,H(n).x),Q(r,`y`,H(n).y),Q(r,`width`,H(n).w),Q(r,`height`,H(n).h),Q(r,`fill`,H(n).negative?H(t).negativeColor:H(t).color)}),K(e,r)});var u=B(l),d=e=>{var n=mf();V(()=>{Q(n,`cx`,H(t).lastPoint.x),Q(n,`cy`,H(t).lastPoint.y),Q(n,`r`,H(t).lineWidth+.5),Q(n,`fill`,H(t).color)}),K(e,n)};J(u,e=>{H(t).lastPoint&&e(d)}),N(i),V(()=>{Q(i,`width`,H(t).width),Q(i,`height`,H(t).height),Q(i,`viewBox`,`0 0 ${H(t).width} ${H(t).height}`),Q(i,`aria-label`,`Sparkline, ${H(n).length} points, last ${H(n)[H(n).length-1]}`)}),K(e,i)};J(a,e=>{H(t)&&e(o)}),K(e,i)},l=e=>{let i=F(()=>n().columnDef.cell);var a=_f(),o=z(a),s=e=>{var n=gf();V(()=>Ui(n,`width: ${t().depth*20}px;`)),K(e,n)};J(o,e=>{t().depth>0&&n().id===H(D)[0]?.id&&e(s)});var c=B(o,2),l=e=>{let a=F(()=>H(i)({cell:{id:`${t().id}_${n().id}`,row:t(),column:n(),getValue:()=>r(),getContext:()=>({})},row:t(),column:n(),table:H(E),getValue:()=>r()}));var o=ii(),s=z(o),c=e=>{var t=ii();bi(z(t),()=>H(a).snippet,()=>H(a).params),K(e,t)},l=e=>{var t=ii();xi(z(t),()=>H(a).component,(e,t)=>{t(e,Ca(()=>H(a).props??{}))}),K(e,t)},u=e=>{var t=ri();V(()=>q(t,H(a))),K(e,t)},d=e=>{var i=ri();V(e=>q(i,e),[()=>H(dt)(n(),r(),t())]),K(e,i)};J(s,e=>{H(a)instanceof Eo?e(c):H(a)instanceof To?e(l,1):typeof H(a)==`string`||typeof H(a)==`number`?e(u,2):e(d,-1)}),K(e,o)},u=e=>{var t=ri();V(()=>q(t,H(i))),K(e,t)},d=e=>{var i=ri();V(e=>q(i,e),[()=>H(dt)(n(),r(),t())]),K(e,i)};J(c,e=>{typeof H(i)==`function`?e(l):typeof H(i)==`string`?e(u,1):e(d,-1)}),K(e,a)};J(a,e=>{n().columnDef.editorType===`checkbox`||typeof r()==`boolean`?e(o):(n().columnDef.editorType===`list`||n().columnDef.editorType===`chips`)&&n().columnDef.cell==null?e(s,1):n().columnDef.sparkline&&n().columnDef.cell==null?e(c,2):e(l,-1)}),K(e,i)},j=(e,t=S,n=S,r=S)=>{let i=F(()=>H(xe)(t(),n(),r()));var a=ii(),o=z(a),s=e=>{var a=xf(),o=z(a),s=e=>{var t=vf();V(()=>Ui(t,`background:${H(i).background}`)),K(e,t)};J(o,e=>{H(i).background&&e(s)});var c=B(o,2),l=e=>{var t=yf();V(()=>Ui(t,`width:${H(i).dataBar.percent}%;background:${H(i).dataBar.color}`)),K(e,t)};J(c,e=>{H(i).dataBar&&e(l)});var u=B(c,2),d=R(u),f=e=>{var t=bf(),n=R(t,!0);N(t),V(()=>q(n,H(i).icon)),K(e,t)};J(d,e=>{H(i).icon&&e(f)});var p=B(d,2),m=e=>{A(e,t,n,r)};J(p,e=>{H(i).iconOnly||e(m)}),N(u),V(e=>Ui(u,e),[()=>el(H(i))]),K(e,a)},c=e=>{A(e,t,n,r)};J(o,e=>{H(i)&&(H(i).background||H(i).dataBar||H(i).icon||H(i).color||H(i).fontWeight!=null)?e(s):e(c,-1)}),K(e,a)},de=(e,t=S,r=S)=>{var i=ii(),a=z(i),o=e=>{let i=F(()=>t().columnDef.cellEditor);var a=ii(),o=z(a);{let e=F(()=>({cell:r().getAllCells().find(e=>e.column.id===t().id),row:r(),column:t(),table:H(E),getValue:()=>n.editingCell?.value,value:n.editingCell?.value,update:e=>{n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell},commit:e=>{e!==void 0&&(n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell),H(Ft)()},cancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}}));bi(o,()=>H(i),()=>H(e))}K(e,a)},s=e=>{var t=Sf();V(e=>Q(t,`aria-checked`,e),[()=>!!n.editingCell.value]),U(`click`,t,e=>{e.stopPropagation();let t=!n.editingCell?.value;n.editingCell=n.editingCell?{...n.editingCell,value:t}:n.editingCell,H(Ft)()}),U(`keydown`,t,e=>H(Yt)(e,()=>{e.stopPropagation();let t=!n.editingCell?.value;n.editingCell=n.editingCell?{...n.editingCell,value:t}:n.editingCell,H(Ft)()})),Jr(`blur`,t,()=>H(Ft)()),K(e,t)},c=e=>{let i=F(()=>H(lt)(t(),r())),a=F(()=>t().columnDef.editorMultiple===!0);{let t=F(()=>n.editingCell?.value);Yo(e,{get options(){return H(i)},get value(){return H(t)},get multiple(){return H(a)},placeholder:`Select…`,onChange:e=>{n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell},onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},l=e=>{let i=F(()=>H(lt)(t(),r())),a=F(()=>t().columnDef.editorMultiple===!0),o=F(()=>dl(n.editingCell?.value));fe(e,()=>H(i),()=>H(a),()=>H(o))},u=e=>{let t=F(()=>Math.max(0,Math.min(5,Math.round(Number(n.editingCell?.value)||0))));var r=wf(),i=R(r);Y(i,16,()=>[1,2,3,4,5],e=>e,(e,r)=>{var i=Cf();V(()=>{Q(i,`aria-checked`,H(t)>=r),Q(i,`aria-label`,`${r} ${r===1?`star`:`stars`}`),X(i,1,`sv-grid-rating-star ${H(t)>=r?`sv-grid-rating-star-on`:``}`)}),U(`mousedown`,i,e=>e.preventDefault()),U(`click`,i,e=>{e.stopPropagation(),n.editingCell=n.editingCell?{...n.editingCell,value:r}:n.editingCell,H(Ft)()}),U(`keydown`,i,function(...e){H(Lt)?.apply(this,e)}),K(e,i)});var a=B(i,2);N(r),U(`mousedown`,a,e=>e.preventDefault()),U(`click`,a,e=>{e.stopPropagation(),n.editingCell=n.editingCell?{...n.editingCell,value:0}:n.editingCell,H(Ft)()}),K(e,r)},d=e=>{let i=F(()=>H(lt)(t(),r()));{let t=F(()=>n.editingCell?.value);Yo(e,{get options(){return H(i)},get value(){return H(t)},multiple:!1,placeholder:`Select…`,onChange:e=>{n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell},onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},f=e=>{let i=F(()=>H(lt)(t(),r()));{let t=F(()=>n.editingCell?.value);Yo(e,{get options(){return H(i)},get value(){return H(t)},multiple:!1,searchable:!0,placeholder:`Search…`,onChange:e=>{n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell},onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},p=e=>{var t=Tf();Dn(t),Mi(t,e=>H(Rt)?.(e)),V(e=>ra(t,e),[()=>String(n.editingCell?.value??``)]),U(`pointerdown`,t,e=>e.stopPropagation()),U(`input`,t,e=>H(It)(e.currentTarget.value)),U(`keydown`,t,e=>{if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0});return}(e.key===`Tab`||e.key===`Enter`&&(e.ctrlKey||e.metaKey))&&(e.preventDefault(),H(Ft)(),n.gridRootEl?.focus({preventScroll:!0}))}),Jr(`blur`,t,()=>H(Ft)()),K(e,t)},m=e=>{let i=F(()=>H(lt)(t(),r())),a=F(()=>String(n.editingCell?.value??``)),o=F(()=>H(a).trim()?H(i).filter(e=>String(e.label).toLowerCase().includes(H(a).toLowerCase())):H(i));var s=Of(),c=R(s);Z(c),Mi(c,e=>H(Rt)?.(e));var l=B(c,2),u=e=>{var t=Df();Y(t,21,()=>H(o).slice(0,50),e=>e.value,(e,t)=>{var r=Ef(),i=R(r,!0);N(r),V(e=>{Q(r,`aria-selected`,e),q(i,H(t).label)},[()=>String(H(t).value)===H(a)]),U(`mousedown`,r,e=>{e.preventDefault(),n.editingCell=n.editingCell?{...n.editingCell,value:H(t).value}:n.editingCell,H(Ft)()}),K(e,r)}),N(t),K(e,t)};J(l,e=>{H(o).length>0&&e(u)}),N(s),V(()=>ra(c,H(a))),U(`pointerdown`,c,e=>e.stopPropagation()),U(`input`,c,e=>H(It)(e.currentTarget.value)),Jr(`blur`,c,()=>H(Ft)()),U(`keydown`,c,function(...e){H(Lt)?.apply(this,e)}),K(e,s)},h=e=>{{let t=F(()=>n.editingCell?.value);Jc(e,{get value(){return H(t)},formatString:`yyyy-MM-dd`,dropDownDisplayMode:`calendar`,autoOpen:!0,onChange:e=>H(It)(e),onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},g=e=>{{let t=F(()=>n.editingCell?.value);Jc(e,{get value(){return H(t)},formatString:`yyyy-MM-dd HH:mm`,dropDownDisplayMode:`both`,autoOpen:!0,onChange:e=>H(It)(e),onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},_=e=>{{let t=F(()=>sl(n.editingCell?.value));Jc(e,{get value(){return H(t)},formatString:`HH:mm`,dropDownDisplayMode:`time`,autoOpen:!0,onChange:e=>H(It)(cl(e)),onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},v=e=>{var t=kf();Z(t),Mi(t,e=>H(Rt)?.(e)),V((e,n)=>{X(t,1,e),ra(t,n)},[()=>Ii(hl(`color`)),()=>ll(`color`,n.editingCell?.value)]),U(`input`,t,e=>H(It)(e.currentTarget.value)),U(`change`,t,e=>{H(It)(e.currentTarget.value),H(Ft)()}),Jr(`blur`,t,()=>H(Ft)()),U(`keydown`,t,function(...e){H(Lt)?.apply(this,e)}),K(e,t)},y=e=>{let t=F(()=>Xc(String(n.editingCell?.editorType))),r=F(()=>H(t).component);var i=ii(),a=z(i);{let e=F(()=>$c(H(t),zt()));xi(a,()=>H(r),(t,n)=>{n(t,Ca(()=>H(e)))})}K(e,i)},b=F(()=>Zc(String(n.editingCell?.editorType??``))),x=e=>{var t=Af();Z(t),Mi(t,e=>H(Rt)?.(e)),V((e,n,r)=>{X(t,1,e),Q(t,`type`,n),ra(t,r)},[()=>Ii(hl(n.editingCell?.editorType??`text`)),()=>ul(n.editingCell?.editorType??`text`),()=>ll(n.editingCell?.editorType??`text`,n.editingCell?.value)]),U(`input`,t,e=>H(It)(e.currentTarget.value)),Jr(`blur`,t,()=>H(Ft)()),U(`keydown`,t,function(...e){H(Lt)?.apply(this,e)}),K(e,t)};J(a,e=>{t().columnDef.cellEditor?e(o):n.editingCell?.editorType===`checkbox`?e(s,1):n.editingCell?.editorType===`list`?e(c,2):n.editingCell?.editorType===`chips`?e(l,3):n.editingCell?.editorType===`rating`?e(u,4):n.editingCell?.editorType===`select`?e(d,5):n.editingCell?.editorType===`rich-select`?e(f,6):n.editingCell?.editorType===`textarea`?e(p,7):n.editingCell?.editorType===`autocomplete`?e(m,8):n.editingCell?.editorType===`date`?e(h,9):n.editingCell?.editorType===`datetime`?e(g,10):n.editingCell?.editorType===`time`?e(_,11):n.editingCell?.editorType===`color`?e(v,12):H(b)?e(y,13):e(x,-1)}),K(e,i)},M=(e,t=S,r=S)=>{let i=F(()=>t().columnDef.editorType??`text`),a=F(()=>H(He)?.draft[t().id]);var o=ii(),s=z(o),c=e=>{var r=jf();Z(r),V(e=>ia(r,e),[()=>!!H(a)]),U(`change`,r,e=>n.setFullRowDraft(t().id,e.currentTarget.checked)),U(`keydown`,r,Ue),U(`pointerdown`,r,e=>e.stopPropagation()),U(`click`,r,e=>e.stopPropagation()),K(e,r)},l=e=>{let i=F(()=>H(lt)(t(),r()));var o=Nf();Y(o,21,()=>H(i),e=>We(e),(e,t)=>{var n=Mf(),r=R(n,!0);N(n);var i={};V((e,t)=>{q(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>Ge(H(t)),()=>We(H(t))]),K(e,n)}),N(o);var s;Gi(o),V(e=>{s!==(s=e)&&(o.value=(o.__value=e)??``,Wi(o,e))},[()=>String(H(a)??``)]),U(`change`,o,e=>n.setFullRowDraft(t().id,e.currentTarget.value)),U(`keydown`,o,Ue),U(`pointerdown`,o,e=>e.stopPropagation()),U(`click`,o,e=>e.stopPropagation()),K(e,o)},u=e=>{let r=F(()=>H(i)===`number`?`number`:H(i)===`date`?`date`:H(i)===`datetime`?`datetime-local`:H(i)===`time`?`time`:H(i)===`password`?`password`:`text`);var o=Pf();Z(o),V(e=>{Q(o,`type`,H(r)),ra(o,e)},[()=>String(H(a)??``)]),U(`input`,o,e=>n.setFullRowDraft(t().id,e.currentTarget.value)),U(`keydown`,o,Ue),U(`pointerdown`,o,e=>e.stopPropagation()),U(`click`,o,e=>e.stopPropagation()),K(e,o)};J(s,e=>{H(i)===`checkbox`?e(c):H(i)===`list`||H(i)===`select`||H(i)===`rich-select`?e(l,1):e(u,-1)}),K(e,o)},fe=(e,t=S,r=S,i=S)=>{var a=ii(),o=z(a),s=e=>{{let i=F(()=>n.editingCell?.value);Yo(e,{get options(){return t()},get value(){return H(i)},get multiple(){return r()},placeholder:`Pick…`,renderChipsInTrigger:!0,onChange:e=>{n.editingCell=n.editingCell?{...n.editingCell,value:e}:n.editingCell},onCommit:()=>H(Ft)(),onCancel:()=>{n.editingCell=null,n.gridRootEl?.focus({preventScroll:!0})}})}},c=e=>{var t=Lf();Q(t,`tabindex`,-1);var a=R(t),o=R(a);Y(o,19,i,(e,t)=>String(e)+`_`+t,(e,t,a)=>{var o=Ff(),s=R(o),c=B(s);N(o),V((e,t)=>{q(s,`${e??``} `),Q(c,`aria-label`,`Remove ${t??``}`)},[()=>String(H(t)),()=>String(H(t))]),U(`mousedown`,c,e=>e.preventDefault()),U(`click`,c,()=>{let e=i().filter((e,t)=>t!==H(a));n.editingCell=n.editingCell?{...n.editingCell,value:r()?e:e[0]??null}:n.editingCell}),K(e,o)});var s=B(o,2);Mi(s,e=>H(Rt)?.(e));var c=B(s,2),l=e=>{var t=If();U(`mousedown`,t,e=>e.preventDefault()),U(`click`,t,()=>H(Ft)()),K(e,t)};J(c,e=>{r()&&e(l)}),N(a),N(t),V(()=>Q(s,`placeholder`,r()?`Type, Enter to add`:`Type a value`)),U(`keydown`,s,e=>{if(e.key===`Enter`||r()&&e.key===`,`){e.preventDefault(),e.stopPropagation();let t=e.currentTarget,a=t.value.trim();if(a){let e=r()?[...i(),a]:[a];n.editingCell=n.editingCell?{...n.editingCell,value:r()?e:a}:n.editingCell,t.value=``,r()||H(Ft)()}}else if(e.key===`Escape`)H(Lt)(e);else if(e.key===`Backspace`&&e.currentTarget.value===``&&i().length>0){e.preventDefault();let t=i().slice(0,-1);n.editingCell=n.editingCell?{...n.editingCell,value:r()?t:t[0]??null}:n.editingCell}}),Jr(`blur`,s,()=>H(Ft)()),K(e,t)};J(o,e=>{t().length>0?e(s):e(c,-1)}),K(e,a)},pe=(e,t=S)=>{let n=F(()=>H(we)[t().depth]??``),r=F(()=>H(D).find(e=>e.id===H(n))),i=F(()=>typeof H(r)?.columnDef.header==`string`?H(r).columnDef.header:H(n)),a=F(()=>t().getCellValueByColumnId(H(n))),o=F(()=>H(r)?H(dt)(H(r),H(a),t()):String(H(a)??``)),s=F(()=>t().leafCount??t().subRows?.length??0);var c=zf(),l=R(c),u=R(l,!0);N(l);var d=B(l,2),f=R(d);N(d);var p=B(d,2),m=R(p);N(p),Y(B(p,2),17,()=>H(D),e=>e.id,(e,r)=>{var i=ii(),a=z(i),o=e=>{let n=F(()=>t().getCellValueByColumnId(H(r).id));var i=ii(),a=z(i),o=e=>{var i=Rf(),a=R(i),o=R(a,!0);N(a);var s=B(a);N(i),V(e=>{q(o,typeof H(r).columnDef.header==`string`?H(r).columnDef.header:H(r).id),q(s,` ${e??``}`)},[()=>H(dt)(H(r),H(n),t())]),K(e,i)};J(a,e=>{H(n)!=null&&H(n)!==``&&e(o)}),K(e,i)};J(a,e=>{H(r).columnDef.aggregate&&H(r).id!==H(n)&&e(o)}),K(e,i)}),N(c),V((e,n,r)=>{Ui(c,`padding-left: ${t().depth*20}px;`),Q(l,`aria-expanded`,e),Q(l,`aria-label`,n),q(u,r),q(f,`${H(i)??``}: ${H(o)??``}`),q(m,`${H(s)??``} ${H(s)===1?`row`:`rows`}`)},[()=>t().getIsExpanded?.()?`true`:`false`,()=>t().getIsExpanded?.()?`Collapse group`:`Expand group`,()=>t().getIsExpanded?.()?`▾`:`▸`]),U(`click`,l,e=>{e.stopPropagation(),t().toggleExpanded?.()}),K(e,c)},ge=(e,n=S,r=S)=>{var i=Bf();ca(i,e=>({class:`sv-grid-row sv-grid-detail-row`,...e}),[()=>uy(r()+1)]);var a=R(i),o=R(a),s=e=>{var i=ii();bi(z(i),()=>t.renderDetailRow,()=>({row:n().original,rowIndex:r()})),K(e,i)};J(o,e=>{t.renderDetailRow&&e(s)}),N(a),N(i),V(()=>Q(a,`colspan`,H(D).length+ +!!H(p)+ +!!H(T))),K(e,i)},Ze=(e,t=S,n=S,r=S)=>{var i=Kf(),a=R(i),o=e=>{var t=Vf(),r=R(t,!0);N(t),V(()=>{Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`),q(r,n()===`top`?`↑`:`↓`)}),K(e,t)};J(a,e=>{H(p)&&e(o)});var s=B(a),c=e=>{var t=Hf();V(()=>Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`)),K(e,t)};J(s,e=>{H(T)&&e(c)});var l=B(s),u=e=>{var t=Uf();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(l,e=>{H(Ne)&&H(qe)>0&&e(u)});var m=B(l);Y(m,17,()=>H(Re),e=>e.column.id,(e,n)=>{let r=F(()=>H(ft)(t(),H(n).column)),i=F(()=>H(mt)(t(),H(n).column));var a=Wf(),o=R(a,!0);N(a),V((e,t,r)=>{X(a,1,`sv-grid-cell ${H(i)}`),Q(a,`data-col-id`,H(n).column.id),Q(a,`data-pinned`,e),Ui(a,t),q(o,r)},[()=>H(ne)(H(n).column.id)??void 0,()=>`width: ${H(n).item.size}px; min-width: ${H(n).item.size}px; max-width: ${H(n).item.size}px; ${H(te)(H(n).column.id)}`,()=>H(pt)(H(n).column,H(r))]),K(e,a)});var h=B(m),g=e=>{var t=Gf();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(h,e=>{H(Ne)&&H(Je)>0&&e(g)}),N(i),V(()=>{X(i,1,`sv-grid-row sv-grid-pinned-row sv-grid-pinned-row-${n()}`),Q(i,`data-pinned-row`,n()),Q(i,`data-pinned-index`,r())}),K(e,i)};var Qe=ym(),At=z(Qe);let jt;var nn=R(At),I=e=>{var t=qf(),r=B(R(t));Z(r),N(t),fa(r,()=>n.globalFilter,e=>n.globalFilter=e),K(e,t)};J(nn,e=>{H(x)&&e(I)});var rn=B(nn,2),L=e=>{var t=Jf(),r=R(t);let i;N(t),V(()=>{i=X(r,1,`sv-grid-toolbar-btn`,null,i,{"is-active":n.toolPanelOpen}),Q(r,`aria-label`,n.toolPanelOpen?`Close tool panel`:`Open tool panel (columns & filters)`),Q(r,`aria-expanded`,n.toolPanelOpen)}),U(`click`,r,()=>n.toolPanelOpen=!n.toolPanelOpen),K(e,t)};J(rn,e=>{H(Ee)&&e(L)});var an=B(rn,2),on=e=>{Dd(e,{get ctrl(){return n},showStatus:!1,top:!0,pager:!0,get pageSizeOptions(){return t.pageSizeOptions}})};J(an,e=>{H(et)&&(t.paginationPosition===`top`||t.paginationPosition===`both`)&&e(on)});var sn=B(an,2),cn=R(sn);let ln;var un=R(cn);ca(un,e=>({class:`sv-grid-table`,...e,onkeydown:H(Vt),onpaste:H(Ht),style:`min-width: ${H(ze)}px;`,[Ji]:{"sv-grid-no-row-hover":t.enableRowHover!==!0}}),[()=>cy({activeDescendantId:H(Xe),rowCount:H(Te).length,colCount:H(D).length})]);var dn=R(un),fn=R(dn);Y(fn,17,()=>H(ee),e=>e.id,(e,r)=>{var i=ep();ca(i,e=>({class:`sv-grid-row sv-grid-header-row sv-grid-group-header-row`,...e,style:t.headerHeight?`height: ${t.headerHeight}px;`:void 0}),[()=>uy()]);var a=R(i),o=e=>{var t=Yf();V(()=>Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`)),K(e,t)};J(a,e=>{H(p)&&e(o)});var s=B(a),c=e=>{var t=Xf();V(()=>Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`)),K(e,t)};J(s,e=>{H(T)&&e(c)}),Y(B(s),17,()=>H(r).cells,e=>e.key,(e,t)=>{var r=$f();let i;var a=R(r),o=e=>{var r=ii(),i=z(r),a=e=>{var r=Zf();let i;var a=R(r),o=R(a,!0);N(a),P(2),N(r),V(()=>{i=X(r,1,`sv-grid-group-toggle`,null,i,{"is-collapsed":H(t).collapsed}),Q(r,`aria-expanded`,!H(t).collapsed),Q(r,`aria-label`,H(t).collapsed?`Expand ${H(t).label}`:`Collapse ${H(t).label}`),Q(r,`title`,H(t).collapsed?`Expand group`:`Collapse group`),q(o,H(t).label)}),U(`click`,r,()=>n.toggleColumnGroup(H(t).groupId)),K(e,r)},o=e=>{var n=Qf(),r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)};J(i,e=>{H(t).collapsible?e(a):e(o,-1)}),K(e,r)};J(a,e=>{H(t).isPlaceholder||e(o)}),N(r),V(()=>{i=X(r,1,`sv-grid-column sv-grid-group-header-cell`,null,i,{"sv-grid-group-header-placeholder":H(t).isPlaceholder}),Q(r,`colspan`,H(t).colSpan),Ui(r,`width: ${H(t).widthPx}px; min-width: ${H(t).widthPx}px; max-width: ${H(t).widthPx}px;`)}),K(e,r)}),N(i),K(e,i)}),Y(B(fn),17,()=>H(O),e=>e.id,(e,n)=>{var o=Tp(),s=z(o);ca(s,e=>({class:`sv-grid-row sv-grid-header-row`,...e,style:t.headerHeight?`height: ${t.headerHeight}px;`:void 0}),[()=>uy()]);var c=R(s),l=e=>{var t=tp();V(()=>Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`)),K(e,t)};J(c,e=>{H(p)&&e(l)});var _=B(c),v=e=>{var t=np(),n=R(t);N(t),V(()=>{Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`),Q(n,`aria-checked`,H(_t)===`all`?`true`:H(_t)===`some`?`mixed`:`false`)}),U(`click`,n,function(...e){H(vt)?.apply(this,e)}),U(`keydown`,n,e=>H(Yt)(e,H(vt))),K(e,t)};J(_,e=>{H(T)&&e(v)});var y=B(_),b=e=>{var t=rp();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(y,e=>{H(Ne)&&H(qe)>0&&e(b)});var x=B(y);Y(x,17,()=>H(Re),e=>e.column.id,(e,i)=>{let a=F(()=>H(n).headers[H(i).item.index]);var o=ii(),s=z(o),c=e=>{let n=F(()=>H(Ce)[H(a).column.id]),o=F(()=>H(we).includes(H(a).column.id));var s=hp(),c=e=>(t.enableColumnReorder??!1)&&H(oe)(e,H(a).column.id),l=e=>(t.enableColumnReorder??!1)&&H(se)(e,H(a).column.id),d=()=>(t.enableColumnReorder??!1)&&H(ce)(H(a).column.id),f=e=>(t.enableColumnReorder??!1)&&H(le)(e,H(a).column.id),p=()=>(t.enableColumnReorder??!1)&&H(ue)();ca(s,(e,n,r,i)=>({class:`sv-grid-column`,"data-svgrid-header-col":H(a).column.id,"data-align":e,"data-pinned":n,draggable:t.enableColumnReorder??!1?!0:void 0,ondragstart:c,ondragover:l,ondragleave:d,ondrop:f,ondragend:p,style:r,...i,[Ji]:{"is-drag-target-before":H(ie)===H(a).column.id&&H(ae)===`before`,"is-drag-target-after":H(ie)===H(a).column.id&&H(ae)===`after`,"is-dragging":H(re)===H(a).column.id}}),[()=>H(ct)(H(i).column),()=>H(ne)(H(i).column.id)??void 0,()=>`width: ${H(i).item.size}px; min-width: ${H(i).item.size}px; max-width: ${H(i).item.size}px; ${H(te)(H(i).column.id)}`,()=>ly({sortable:H(a).column.getCanSort(),sortDirection:H(n)===`asc`?`ascending`:H(n)===`desc`?`descending`:`none`})]);var g=R(s),_=e=>{var t=mp(),i=z(t),s=R(i),c=e=>{let t=F(()=>H(a).column.columnDef.header(H(a).getContext()));var i=op(),o=R(i),s=e=>{var n=ii();bi(z(n),()=>H(t).snippet,()=>H(t).params),K(e,n)},c=e=>{var n=ii();xi(z(n),()=>H(t).component,(e,n)=>{n(e,Ca(()=>H(t).props??{}))}),K(e,n)},l=e=>{var n=ri();V(()=>q(n,H(t))),K(e,n)},u=e=>{var t=ri();V(()=>q(t,H(a).id)),K(e,t)};J(o,e=>{H(t)instanceof Eo?e(s):H(t)instanceof To?e(c,1):typeof H(t)==`string`||typeof H(t)==`number`?e(l,2):e(u,-1)});var d=B(o,2),f=e=>{var t=ii(),i=z(t),a=e=>{var t=ip();r(R(t),()=>`sort-asc`),N(t),K(e,t)},o=e=>{var t=ap();r(R(t),()=>`sort-desc`),N(t),K(e,t)};J(i,e=>{H(n)===`asc`?e(a):H(n)===`desc`&&e(o,1)}),K(e,t)},p=F(()=>H(a).column.getCanSort());J(d,e=>{H(p)&&e(f)}),N(i),U(`click`,i,e=>{if(!H(a).column.getCanSort())return;let t=e.target;t&&t.closest(`button, a, input, select, textarea, [role="button"], [role="menuitem"]`)&&!t.classList.contains(`sv-grid-header-custom`)||H(Bt)(e,H(a).column.id)}),U(`keydown`,i,e=>{e.key!==`Enter`&&e.key!==` `||H(a).column.getCanSort()&&(e.preventDefault(),H(Bt)(e,H(a).column.id))}),K(e,i)},l=e=>{var t=up(),i=R(t),o=R(i,!0);N(i);var s=B(i,2),c=e=>{var t=ii(),i=z(t),a=e=>{var t=sp();r(R(t),()=>`sort-asc`),N(t),K(e,t)},o=e=>{var t=cp();r(R(t),()=>`sort-desc`),N(t),K(e,t)},s=e=>{var t=lp();r(R(t),()=>`sort`),N(t),K(e,t)};J(i,e=>{H(n)===`asc`?e(a):H(n)===`desc`?e(o,1):e(s,-1)}),K(e,t)},l=F(()=>H(a).column.getCanSort());J(s,e=>{H(l)&&e(c)}),N(t),V(()=>q(o,typeof H(a).column.columnDef.header==`string`?H(a).column.columnDef.header:H(a).id)),U(`click`,t,e=>H(Bt)(e,H(a).column.id)),K(e,t)};J(s,e=>{typeof H(a).column.columnDef.header==`function`?e(c):e(l,-1)});var d=B(s,2),f=e=>{var t=dp();r(R(t),()=>`group`),N(t),K(e,t)};J(d,e=>{H(o)&&e(f)});var p=B(d,2),g=e=>{var t=fp();let n;r(R(t),()=>`filter`),N(t),V(e=>n=X(t,1,`sv-grid-col-menu-btn sv-grid-col-filter-btn`,null,n,e),[()=>({"is-open":H(h)===H(a).column.id,"is-active":H(Qt)(H(a).column.id)})]),U(`click`,t,e=>H(en)(e,H(a).column.id)),K(e,t)},_=F(()=>H(a).column.getCanFilter());J(p,e=>{H(_)&&e(g)});var v=B(p,2);let y;r(R(v),()=>`menu`),N(v),N(i);var b=B(i,2),x=e=>{var t=pp();U(`input`,t,e=>{let t=e.currentTarget.value;H(E).setColumnFilters(e=>[...e.filter(e=>e.id!==H(a).column.id),...t?[{id:H(a).column.id,value:t,fn:`includesString`}]:[]])}),K(e,t)},S=F(()=>H(w)&&H(a).column.getCanFilter());J(b,e=>{H(S)&&e(x)});var C=B(b,2);let T;V(()=>{y=X(v,1,`sv-grid-col-menu-btn`,null,y,{"is-open":H(m)===H(a).column.id}),T=X(C,1,`sv-grid-resize-handle`,null,T,{"is-resizing":H(u)===H(a).column.id})}),U(`click`,v,e=>H($t)(e,H(a).column.id)),U(`pointerdown`,C,e=>H(St)(e,H(a).column.id)),U(`dblclick`,C,e=>e.stopPropagation()),K(e,t)};J(g,e=>{H(a).isPlaceholder||e(_)}),N(s),K(e,s)};J(s,e=>{H(a)&&e(c)}),K(e,o)});var S=B(x),D=e=>{var t=gp();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(S,e=>{H(Ne)&&H(Je)>0&&e(D)}),N(s);var O=B(s,2),ee=e=>{var t=wp();ca(t,e=>({...e}),[()=>uy()]);var n=R(t),o=e=>{var t=_p();V(()=>Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`)),K(e,t)};J(n,e=>{H(p)&&e(o)});var s=B(n),c=e=>{var t=vp();V(()=>Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`)),K(e,t)};J(s,e=>{H(T)&&e(c)});var l=B(s),u=e=>{var t=yp();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(l,e=>{H(Ne)&&H(qe)>0&&e(u)});var m=B(l);Y(m,17,()=>H(Re),e=>e.column.id,(e,t)=>{let n=F(()=>H(a)[H(t).column.id]?.operator??H(Zt)(H(t).column));var o=Sp(),s=R(o),c=R(s);let l;var u=R(c),d=R(u);{let e=F(()=>H(Xt)(H(n)).iconName);r(d,()=>H(e))}N(u);var f=B(u,2);r(R(f),()=>`chevron-down`),N(f),N(c);var p=B(c,2),m=e=>{let r=F(()=>ul(H(t).column.columnDef.editorType??`text`));var o=xp(),s=z(o);Z(s);var c=B(s,2),l=e=>{var n=bp();Z(n),V(()=>{Q(n,`type`,H(r)),ra(n,H(a)[H(t).column.id]?.valueTo??``)}),U(`input`,n,e=>H(Gt)(H(t).column.id,e.currentTarget.value)),K(e,n)};J(c,e=>{H(n)===`between`&&e(l)}),V(()=>{Q(s,`type`,H(r)),Q(s,`placeholder`,H(n)===`between`?`From`:`Filter…`),Q(s,`data-svgrid-filter-col`,H(t).column.id),ra(s,H(i)[H(t).column.id]??``)}),U(`input`,s,e=>H(Ut)(H(t).column.id,e.currentTarget.value)),K(e,o)};J(p,e=>{H(n)!==`isBlank`&&e(m)}),N(s),N(o),V((e,n,r,i)=>{Q(o,`data-pinned`,e),Ui(o,n),l=X(c,1,`sv-grid-filter-operator-btn`,null,l,{"is-open":H(g)===H(t).column.id}),Q(c,`title`,r),Q(c,`aria-label`,i)},[()=>H(ne)(H(t).column.id)??void 0,()=>`width: ${H(t).item.size}px; min-width: ${H(t).item.size}px; max-width: ${H(t).item.size}px; ${H(te)(H(t).column.id)}`,()=>`Condition: ${H(Xt)(H(n)).label}`,()=>`Filter condition: ${H(Xt)(H(n)).label}`]),U(`click`,c,e=>H(tn)(e,H(t).column.id)),K(e,o)});var h=B(m),_=e=>{var t=Cp();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(h,e=>{H(Ne)&&H(Je)>0&&e(_)}),N(t),K(e,t)};J(O,e=>{H(C)&&e(ee)}),K(e,o)}),N(dn),ya(dn,e=>n.theadEl=e,()=>n?.theadEl);var pn=B(dn),mn=e=>{var n=Ep();Y(n,21,()=>t.pinnedTopRows,di,(e,t,n)=>{Ze(e,()=>H(t),()=>`top`,()=>n)}),N(n),K(e,n)};J(pn,e=>{t.pinnedTopRows&&t.pinnedTopRows.length>0&&e(mn)});var hn=B(pn),gn=R(hn),_n=e=>{var n=Dp(),r=R(n),i=R(r,!0);N(r),N(n),V(()=>{Q(r,`colspan`,H(D).length+ +!!H(p)+ +!!H(T)),q(i,t.emptyMessage??`No rows to display.`)}),K(e,n)},vn=e=>{var r=zp(),i=z(r),a=e=>{var t=Op(),n=R(t);N(t),V(()=>{Ui(n,`height: ${H(Fe)}px; padding: 0; border: 0;`),Q(n,`colspan`,H(D).length+ +!!H(p)+ +!!H(T))}),K(e,t)};J(i,e=>{H(Fe)>0&&e(a)});var c=B(i,2);Y(c,17,()=>H(Pe),e=>e.key,(e,r)=>{let i=F(()=>H(r).index),a=F(()=>H(Te)[H(i)]);var c=ii(),l=z(c),u=e=>{var c=ii(),l=z(c),u=e=>{ge(e,()=>H(a),()=>H(i))},m=F(()=>t.isDetailRow?.(H(a).original,H(i))),h=e=>{var t=kp();ca(t,(e,t,n)=>({class:`sv-grid-row sv-grid-group-row`,"aria-level":H(a).depth+1,"aria-expanded":e,...t,style:`height: ${H(r).size}px;`,[Ji]:n}),[()=>H(a).getIsExpanded?.()?`true`:`false`,()=>uy(H(i)+1),()=>({"sv-grid-row-selected":H(ht)(H(a).id)})]);var n=R(t);let o;pe(R(n),()=>H(a)),N(n),N(t),V(()=>{o=X(n,1,`sv-grid-cell sv-grid-group-cell`,null,o,{"sv-grid-cell-active":H(Ye).rowIndex===H(i)}),Q(n,`colspan`,H(D).length+ +!!H(p)+ +!!H(T))}),U(`click`,n,()=>H(a).toggleExpanded?.()),K(e,t)},g=F(()=>H(Se)(H(a))),_=e=>{let c=F(()=>H(nt)(H(a),H(i)));var l=Lp();ca(l,(e,t,n,i)=>({class:e,...t,...n,style:`height: ${H(r).size}px;`,[Ji]:i}),[()=>`sv-grid-row ${H(c)} ${ve(H(i))}`,()=>uy(H(i)+1),()=>_e(H(i)),()=>({"sv-grid-row-selected":H(ht)(H(a).id),"sv-grid-row-alt":t.zebraRows&&H(i)%2==1,"sv-grid-row-draggable":H(k)})]);var u=R(l),m=e=>{var t=Ap(),n=R(t,!0);N(t),V(()=>{Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`),q(n,H(i)+1)}),K(e,t)};J(u,e=>{H(p)&&e(m)});var h=B(u),g=e=>{var t=jp(),n=R(t);N(t),V(e=>{Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`),Q(n,`aria-checked`,e)},[()=>H(ht)(H(a).id)]),U(`click`,t,()=>H(gt)(H(a).id)),U(`click`,n,e=>{e.stopPropagation(),H(gt)(H(a).id)}),U(`keydown`,n,e=>H(Yt)(e,()=>{e.stopPropagation(),H(gt)(H(a).id)})),K(e,t)};J(h,e=>{H(T)&&e(g)});var _=B(h),v=e=>{var t=Mp();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(_,e=>{H(Ne)&&H(qe)>0&&e(v)});var y=B(_);Y(y,17,()=>H(Re),e=>e.column.id,(e,t)=>{let r=F(()=>H(t).item.index),c=F(()=>H(ye)(H(a),H(t).column)),l=F(()=>H(st)(H(a).id,H(t).column.id,H(c))),u=F(()=>n.editingCell?.rowId===H(a).id&&n.editingCell?.columnId===H(t).column.id),d=F(()=>!!H(He)&&H(He).rowId===H(a).id&&H(t).column.id in H(He).draft),f=F(()=>H(Ct)(H(i),H(r))),p=F(()=>H(Et)(H(i),H(r))),m=F(()=>H(wt)&&H(wt).rowIndex===H(i)&&H(wt).colIndex===H(r)),h=F(()=>H(rt)(H(a),H(t).column)),g=F(()=>H(at)(H(a),H(t).column)),_=F(()=>H(ot)(H(a),H(t).column));var v=Fp(),y=e=>H(Ot)(H(i),H(r),e),b=()=>H(kt)(H(i),H(r)),x=()=>H(Nt)(H(i),H(r)),S=()=>H(Mt)(H(i),H(r)),C=e=>H(Pt)(e,H(i),H(r),H(t).column.id);ca(v,(e,n,a,o,s)=>({class:`sv-grid-cell ${H(h)}`,title:H(g).message??void 0,"data-svgrid-row":H(i),"data-svgrid-col":H(r),"data-col-id":H(t).column.id,"data-align":e,"data-pinned":n,"data-selected-range":H(f)?`true`:void 0,"data-range-top":H(f)?.top?`true`:void 0,"data-range-bottom":H(f)?.bottom?`true`:void 0,"data-range-left":H(f)?.left?`true`:void 0,"data-range-right":H(f)?.right?`true`:void 0,"data-fill-preview":a,"data-fill-top":H(p)?.top?`true`:void 0,"data-fill-bottom":H(p)?.bottom?`true`:void 0,"data-fill-left":H(p)?.left?`true`:void 0,"data-fill-right":H(p)?.right?`true`:void 0,style:o,onpointerdown:y,onpointerenter:b,ondblclick:x,onclick:S,oncontextmenu:C,...s,[Ji]:{"sv-grid-cell-editing":H(u)||H(d),"sv-grid-cell-active":H(Ye).rowIndex===H(i)&&H(Ye).colIndex===H(r),"sv-grid-cell-has-fill-handle":H(m),"sv-grid-cell-cf":H(be),"sv-grid-cell-invalid":H(g).invalid,"sv-grid-cell-has-note":H(_)!=null}}),[()=>H(ct)(H(t).column),()=>H(ne)(H(t).column.id)??void 0,()=>H(Tt)(H(i),H(r))?`true`:void 0,()=>`width: ${H(t).item.size}px; min-width: ${H(t).item.size}px; max-width: ${H(t).item.size}px; ${H(te)(H(t).column.id)}`,()=>dy({id:fy(`svgrid`,H(i),H(r)),rowIndex:H(i)+1,colIndex:H(r)+1,selected:H(ht)(H(a).id)})]);var w=R(v),T=e=>{M(e,()=>H(t).column,()=>H(a))},E=e=>{de(e,()=>H(t).column,()=>H(a))},D=e=>{j(e,()=>H(a),()=>H(t).column,()=>H(l))};J(w,e=>{H(d)?e(T):H(u)?e(E,1):e(D,-1)});var O=B(w,2),ee=e=>{var t=Np();Q(t,`tabindex`,-1),U(`pointerdown`,t,e=>H(Dt)(e,H(i),H(r))),K(e,t)};J(O,e=>{!H(u)&&H(wt)&&H(wt).rowIndex===H(i)&&H(wt).colIndex===H(r)&&e(ee)});var re=B(O,2),ie=e=>{var t=Pp();Jr(`pointerenter`,t,e=>{e.stopPropagation(),H(o)(e.currentTarget,H(_))}),Jr(`pointerleave`,t,e=>{e.stopPropagation(),H(s)()}),K(e,t)};J(re,e=>{H(_)!=null&&!H(u)&&e(ie)}),N(v),Mi(v,(e,t)=>Be?.(e,t),()=>({rowId:H(a).id,value:H(l),active:!!H(t).column.columnDef.cellFlash,className:Ve(H(t).column.columnDef.cellFlash)})),K(e,v)});var b=B(y),x=e=>{var t=Ip();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(b,e=>{H(Ne)&&H(Je)>0&&e(x)}),N(l),K(e,l)};J(l,e=>{H(m)?e(u):H(g)?e(h,1):e(_,-1)}),K(e,c)};J(l,e=>{H(a)&&e(u)}),K(e,c)});var l=B(c,2),u=e=>{var t=Rp(),n=R(t);N(t),V(()=>{Ui(n,`height: ${H(Ie)}px; padding: 0; border: 0;`),Q(n,`colspan`,H(D).length+ +!!H(p)+ +!!H(T))}),K(e,t)};J(l,e=>{H(Ie)>0&&e(u)}),K(e,r)},yn=e=>{var r=ii();Y(z(r),19,()=>H(Te),e=>e.id,(e,r,i)=>{var a=ii(),c=z(a),l=e=>{ge(e,()=>H(r),()=>H(i))},u=F(()=>t.isDetailRow?.(H(r).original,H(i))),m=e=>{var t=Bp();ca(t,(e,t,n)=>({class:`sv-grid-row sv-grid-group-row`,"aria-level":H(r).depth+1,"aria-expanded":e,...t,[Ji]:n}),[()=>H(r).getIsExpanded?.()?`true`:`false`,()=>uy(H(i)+1),()=>({"sv-grid-row-selected":H(ht)(H(r).id)})]);var n=R(t);let a;pe(R(n),()=>H(r)),N(n),N(t),V(()=>{a=X(n,1,`sv-grid-cell sv-grid-group-cell`,null,a,{"sv-grid-cell-active":H(Ye).rowIndex===H(i)}),Q(n,`colspan`,H(D).length+ +!!H(p)+ +!!H(T))}),U(`click`,n,()=>H(r).toggleExpanded?.()),K(e,t)},h=F(()=>H(Se)(H(r))),g=e=>{let a=F(()=>H(nt)(H(r),H(i)));var c=qp();ca(c,(e,t,n,r)=>({class:e,...t,...n,[Ji]:r}),[()=>`sv-grid-row ${H(a)} ${ve(H(i))}`,()=>uy(H(i)+1),()=>_e(H(i)),()=>({"sv-grid-row-selected":H(ht)(H(r).id),"sv-grid-row-alt":t.zebraRows&&H(i)%2==1,"sv-grid-row-draggable":H(k)})]);var l=R(c),u=e=>{var t=Vp(),n=R(t,!0);N(t),V(()=>{Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`),q(n,H(i)+1)}),K(e,t)};J(l,e=>{H(p)&&e(u)});var m=B(l),h=e=>{var t=Hp(),n=R(t);N(t),V(e=>{Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`),Q(n,`aria-checked`,e)},[()=>H(ht)(H(r).id)]),U(`click`,t,()=>H(gt)(H(r).id)),U(`click`,n,e=>{e.stopPropagation(),H(gt)(H(r).id)}),U(`keydown`,n,e=>H(Yt)(e,()=>{e.stopPropagation(),H(gt)(H(r).id)})),K(e,t)};J(m,e=>{H(T)&&e(h)});var g=B(m),_=e=>{var t=Up();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(g,e=>{H(Ne)&&H(qe)>0&&e(_)});var v=B(g);Y(v,17,()=>H(Re),e=>e.column.id,(e,t)=>{let a=F(()=>H(t).item.index),c=F(()=>H(ye)(H(r),H(t).column)),l=F(()=>H(st)(H(r).id,H(t).column.id,H(c))),u=F(()=>n.editingCell?.rowId===H(r).id&&n.editingCell?.columnId===H(t).column.id),d=F(()=>!!H(He)&&H(He).rowId===H(r).id&&H(t).column.id in H(He).draft),f=F(()=>H(Ct)(H(i),H(a))),p=F(()=>H(rt)(H(r),H(t).column)),m=F(()=>H(it)(H(r),H(t).column)),h=F(()=>H(at)(H(r),H(t).column)),g=F(()=>H(ot)(H(r),H(t).column));var _=Gp(),v=e=>H(Ot)(H(i),H(a),e),y=e=>{H(kt)(H(i),H(a));let t=H(h).invalid&&H(h).message?H(h).message:H(m);t&&H(o)(e.currentTarget,t)},b=()=>H(Nt)(H(i),H(a)),x=()=>H(Mt)(H(i),H(a)),S=e=>H(Pt)(e,H(i),H(a),H(t).column.id);ca(_,(e,n,r)=>({class:`sv-grid-cell ${H(p)}`,"data-svgrid-row":H(i),"data-svgrid-col":H(a),"data-col-id":H(t).column.id,"data-pinned":e,"data-selected-range":H(f)?`true`:void 0,"data-range-top":H(f)?.top?`true`:void 0,"data-range-bottom":H(f)?.bottom?`true`:void 0,"data-range-left":H(f)?.left?`true`:void 0,"data-range-right":H(f)?.right?`true`:void 0,style:n,onpointerdown:v,onpointerenter:y,onpointerleave:H(s),ondblclick:b,onclick:x,oncontextmenu:S,...r,[Ji]:{"sv-grid-cell-editing":H(u)||H(d),"sv-grid-cell-active":H(Ye).rowIndex===H(i)&&H(Ye).colIndex===H(a),"sv-grid-cell-cf":H(be),"sv-grid-cell-invalid":H(h).invalid,"sv-grid-cell-has-note":H(g)!=null}}),[()=>H(ne)(H(t).column.id)??void 0,()=>`width: ${H(t).item.size}px; min-width: ${H(t).item.size}px; max-width: ${H(t).item.size}px; ${H(te)(H(t).column.id)}`,()=>dy({id:fy(`svgrid`,H(i),H(a)),rowIndex:H(i)+1,colIndex:H(a)+1,selected:H(ht)(H(r).id)})]);var C=R(_),w=e=>{M(e,()=>H(t).column,()=>H(r))},T=e=>{de(e,()=>H(t).column,()=>H(r))},E=e=>{j(e,()=>H(r),()=>H(t).column,()=>H(l))};J(C,e=>{H(d)?e(w):H(u)?e(T,1):e(E,-1)});var D=B(C,2),O=e=>{var t=Wp();Jr(`pointerenter`,t,e=>{e.stopPropagation(),H(o)(e.currentTarget,H(g))}),Jr(`pointerleave`,t,e=>{e.stopPropagation(),H(s)()}),K(e,t)};J(D,e=>{H(g)!=null&&!H(u)&&e(O)}),N(_),Mi(_,(e,t)=>Be?.(e,t),()=>({rowId:H(r).id,value:H(l),active:!!H(t).column.columnDef.cellFlash,className:Ve(H(t).column.columnDef.cellFlash)})),K(e,_)});var y=B(v),b=e=>{var t=Kp();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(y,e=>{H(Ne)&&H(Je)>0&&e(b)}),N(c),K(e,c)};J(c,e=>{H(u)?e(l):H(h)?e(m,1):e(g,-1)}),K(e,a)}),K(e,r)};J(gn,e=>{!H(Te).length&&!(t.loading&&t.loadingOverlay)?e(_n):H(Me)?e(vn,1):e(yn,-1)}),N(hn);var bn=B(hn),xn=e=>{var n=Jp();Y(n,21,()=>t.pinnedBottomRows,di,(e,t,n)=>{Ze(e,()=>H(t),()=>`bottom`,()=>n)}),N(n),K(e,n)};J(bn,e=>{t.pinnedBottomRows&&t.pinnedBottomRows.length>0&&e(xn)});var Sn=B(bn),Cn=e=>{var t=em(),n=R(t);ca(n,e=>({class:`sv-grid-row sv-grid-summary-row`,...e}),[()=>uy()]);var r=R(n),i=e=>{var t=Yp();V(()=>Ui(t,`width: ${H(f)}px; min-width: ${H(f)}px; max-width: ${H(f)}px; left: 0;`)),K(e,t)};J(r,e=>{H(p)&&e(i)});var a=B(r),o=e=>{var t=Xp();V(()=>Ui(t,`width: ${H(d)}px; min-width: ${H(d)}px; max-width: ${H(d)}px; left: ${H(p)?H(f):0}px;`)),K(e,t)};J(a,e=>{H(T)&&e(o)});var s=B(a),c=e=>{var t=Zp();V(()=>Ui(t,`width: ${H(qe)}px; min-width: ${H(qe)}px; max-width: ${H(qe)}px;`)),K(e,t)};J(s,e=>{H(Ne)&&H(qe)>0&&e(c)});var l=B(s);Y(l,17,()=>H(Re),e=>e.column.id,(e,t)=>{var n=Qp(),r=R(n,!0);N(n),V((e,i)=>{Q(n,`data-pinned`,e),Ui(n,i),q(r,H($e)[H(t).column.id]??``)},[()=>H(ne)(H(t).column.id)??void 0,()=>`width: ${H(t).item.size}px; min-width: ${H(t).item.size}px; max-width: ${H(t).item.size}px; ${H(te)(H(t).column.id)}`]),K(e,n)});var u=B(l),m=e=>{var t=$p();V(()=>Ui(t,`width: ${H(Je)}px; min-width: ${H(Je)}px; max-width: ${H(Je)}px;`)),K(e,t)};J(u,e=>{H(Ne)&&H(Je)>0&&e(m)}),N(n),N(t),K(e,t)};J(Sn,e=>{(t.enableRowSummaries??!0)&&e(Cn)}),N(un),ya(un,e=>n.gridRootEl=e,()=>n?.gridRootEl),N(cn),ya(cn,e=>n.scrollContainer=e,()=>n?.scrollContainer);var wn=B(cn,2),Tn=e=>{var t=tm();V(()=>Ui(t,`height: ${H(l)}px;`)),K(e,t)};J(wn,e=>{H(et)&&H(b)&&e(Tn)});var On=B(wn,2),kn=e=>{var r=nm();X(r,1,`sv-grid-scrollbar sv-grid-scrollbar-vertical`),oa(r,`orientation`,`vertical`),V(()=>oa(r,`viewport-size`,H(v))),V(()=>oa(r,`content-size`,H(y).scrollHeight||H(Le)+H(l))),V(()=>oa(r,`value`,H(y).scrollTop)),V(()=>oa(r,`step`,typeof t.rowHeight==`number`?t.rowHeight:30)),ya(r,e=>n.verticalScrollbarEl=e,()=>n?.verticalScrollbarEl),V(()=>Ui(r,`top: ${H(l)}px; height: calc(100% - ${H(l)+(H(Ke)?16:0)}px);`)),K(e,r)};J(On,e=>{H(et)&&H(b)&&e(kn)});var An=B(On,2),jn=e=>{let r=F(()=>H(ze)+(H(p)?H(f):0)+(H(T)?H(d):0));var i=rm();X(i,1,`sv-grid-scrollbar sv-grid-scrollbar-horizontal`),oa(i,`orientation`,`horizontal`),V(()=>oa(i,`viewport-size`,H(_))),V(()=>oa(i,`content-size`,H(y).scrollWidth||H(r))),V(()=>oa(i,`value`,H(y).scrollLeft)),V(()=>oa(i,`step`,t.columnWidth??140)),ya(i,e=>n.horizontalScrollbarEl=e,()=>n?.horizontalScrollbarEl),V(()=>Ui(i,`width: calc(100% - ${H(b)?16:0}px);`)),K(e,i)};J(An,e=>{H(et)&&H(Ke)&&e(jn)});var Mn=B(An,2),Nn=e=>{K(e,im())};J(Mn,e=>{H(et)&&H(b)&&H(Ke)&&e(Nn)}),N(sn);var Pn=B(sn,2);{let e=F(()=>(t.paginationPosition??`bottom`)!==`top`);Dd(Pn,{get ctrl(){return n},get pager(){return H(e)},get pageSizeOptions(){return t.pageSizeOptions}})}var Fn=B(Pn,2),In=e=>{var t=am(),r=B(R(t),2);Z(r),En(r,!0);var i=B(r,2),a=R(i,!0);N(i);var o=B(i,2),s=B(o,2),l=B(s,2);N(t),V(e=>{q(a,e),o.disabled=H(c).length===0,s.disabled=H(c).length===0},[()=>H(c).length===0&&n.findQuery.trim()?`No matches`:H(c).length===0?``:`${n.findHitIndex+1} of ${H(c).length}`]),U(`input`,r,()=>n.findHitIndex=0),U(`keydown`,r,e=>{if(e.stopPropagation(),e.key===`Enter`){if(e.preventDefault(),H(c).length===0)return;n.findHitIndex=(n.findHitIndex+(e.shiftKey?-1:1)+H(c).length)%H(c).length;let t=H(c)[n.findHitIndex];t&&(H(yt)(t.rowIndex,t.colIndex),H(bt)(t.rowIndex,t.colIndex))}e.key===`Escape`&&(e.preventDefault(),n.findOpen=!1,n.findQuery=``)}),fa(r,()=>n.findQuery,e=>n.findQuery=e),U(`click`,o,()=>{n.findHitIndex=(n.findHitIndex-1+H(c).length)%H(c).length;let e=H(c)[n.findHitIndex];e&&(H(yt)(e.rowIndex,e.colIndex),H(bt)(e.rowIndex,e.colIndex))}),U(`click`,s,()=>{n.findHitIndex=(n.findHitIndex+1)%H(c).length;let e=H(c)[n.findHitIndex];e&&(H(yt)(e.rowIndex,e.colIndex),H(bt)(e.rowIndex,e.colIndex))}),U(`click`,l,()=>{n.findOpen=!1,n.findQuery=``}),K(e,t)};J(Fn,e=>{n.findOpen&&e(In)});var Ln=B(Fn,2),Rn=e=>{var n=lm(),r=B(R(n),2),i=e=>{var n=cm();Y(n,21,()=>Array(t.loadingSkeletonRows??8),di,(e,t)=>{var n=sm();Y(n,21,()=>H(D),e=>e.id,(e,t)=>{var n=om();V(e=>Ui(n,e),[()=>`width:${H(xt)(H(t).id)}px`]),K(e,n)}),N(n),K(e,n)}),N(n),K(e,n)};J(r,e=>{H(Te).length===0&&e(i)}),P(2),N(n),K(e,n)};J(Ln,e=>{t.loading&&t.loadingOverlay&&e(Rn)});var zn=B(Ln,2),Bn=e=>{var t=ii(),r=z(t),i=e=>{let t=F(()=>n.toolPanelTab);var r=vm(),i=R(r),o=R(i),s=R(o,!0);N(o);var c=B(o,2);N(i);var l=B(i,2),u=R(l);let d;var f=B(u,2);let p;N(l);var m=B(l,2),h=e=>{var t=dm();Y(t,23,()=>H(De),e=>e.id,(e,t,r)=>{let i=F(()=>!n.hiddenColumns[H(t).id]),a=F(()=>H(we).includes(H(t).id));var o=um(),s=R(o),c=R(s);Z(c);var l=B(c,2),u=R(l,!0);N(l),N(s);var d=B(s,2),f=R(d);let p;var m=B(f,2),h=B(m,2);N(d),N(o),V(e=>{ia(c,H(i)),q(u,e),p=X(f,1,`sv-grid-tool-panel-btn`,null,p,{"is-active":H(a)}),Q(f,`aria-label`,H(a)?`Ungroup`:`Group by`),Q(f,`title`,H(a)?`Ungroup`:`Group by this column`),m.disabled=H(r)===0,h.disabled=H(r)===H(De).length-1},[()=>H(Oe)(H(t))]),U(`change`,c,()=>H(ke)(H(t).id)),U(`click`,f,()=>H(je)(H(t).id)),U(`click`,m,()=>H(Ae)(H(t).id,-1)),U(`click`,h,()=>H(Ae)(H(t).id,1)),K(e,o)}),N(t),K(e,t)},g=e=>{var t=_m();Y(t,21,()=>H(De),e=>e.id,(e,t)=>{var n=ii(),r=z(n),i=e=>{let n=F(()=>H(a)[H(t).id]?.operator??H(Zt)(H(t))),r=F(()=>ul(H(t).columnDef.editorType??`text`));var i=gm();let o;var s=R(i),c=R(s),l=R(c,!0);N(c);var u=B(c,2),d=e=>{var n=fm();V(e=>Q(n,`aria-label`,e),[()=>`Clear ${H(Oe)(H(t))} filter`]),U(`click`,n,()=>H(Jt)(H(t).id)),K(e,n)},f=F(()=>H(Qt)(H(t).id));J(u,e=>{H(f)&&e(d)}),N(s);var p=B(s,2);Y(p,21,()=>H(qt)(H(t)),e=>e.value,(e,t)=>{var n=pm(),r=R(n,!0);N(n);var i={};V(e=>{q(r,e),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)},[()=>H(Xt)(H(t).value).label]),K(e,n)}),N(p);var m;Gi(p);var h=B(p,2),g=e=>{var i=hm(),o=z(i);Z(o);var s=B(o,2),c=e=>{var n=mm();Z(n),V(()=>{Q(n,`type`,H(r)),ra(n,H(a)[H(t).id]?.valueTo??``)}),U(`input`,n,e=>H(Gt)(H(t).id,e.currentTarget.value)),K(e,n)};J(s,e=>{H(n)===`between`&&e(c)}),V(()=>{Q(o,`type`,H(r)),Q(o,`placeholder`,H(n)===`between`?`From`:`Filter…`),ra(o,H(a)[H(t).id]?.value??``)}),U(`input`,o,e=>H(Wt)(H(t).id,e.currentTarget.value)),K(e,i)};J(h,e=>{H(n)!==`isBlank`&&e(g)}),N(i),V((e,t,r)=>{o=X(i,1,`sv-grid-tp-filter`,null,o,e),q(l,t),Q(p,`aria-label`,r),m!==(m=H(n))&&(p.value=(p.__value=H(n))??``,Wi(p,H(n)))},[()=>({"is-filtered":H(Qt)(H(t).id)}),()=>H(Oe)(H(t)),()=>`${H(Oe)(H(t))} filter condition`]),U(`change`,p,e=>H(Kt)(H(t).id,e.currentTarget.value)),K(e,i)};J(r,e=>{H(t).columnDef.field&&H(t).columnDef.filterable!==!1&&e(i)}),K(e,n)}),N(t),K(e,t)};J(m,e=>{H(t)===`columns`?e(h):e(g,-1)}),N(r),V(()=>{q(s,H(t)===`filters`?`Filters`:`Columns`),d=X(u,1,`sv-grid-tool-panel-tab`,null,d,{"is-active":H(t)===`columns`}),Q(u,`aria-selected`,H(t)===`columns`),p=X(f,1,`sv-grid-tool-panel-tab`,null,p,{"is-active":H(t)===`filters`}),Q(f,`aria-selected`,H(t)===`filters`)}),U(`click`,c,()=>n.toolPanelOpen=!1),U(`click`,u,()=>n.toolPanelTab=`columns`),U(`click`,f,()=>n.toolPanelTab=`filters`),K(e,r)};J(r,e=>{n.toolPanelOpen&&e(i)}),K(e,t)};J(zn,e=>{H(Ee)&&e(Bn)}),N(At),_d(B(At,2),{get ctrl(){return n},get icon(){return r}}),V(()=>{jt=X(At,1,`sv-grid-root`,null,jt,{"sv-grid-root-fill":t.containerHeight===`100%`}),Ui(sn,`height: ${typeof t.containerHeight==`string`?t.containerHeight:`${t.containerHeight??520}px`}; --sg-thead-h: ${H(l)}px; --sg-pinned-row-h: ${typeof t.rowHeight==`number`?t.rowHeight:30}px;`),ln=X(cn,1,`sv-grid-container sv-grid-container-custom-scrollbars`,null,ln,{"sv-grid-has-vscroll":H(et)&&H(b)}),Ui(cn,`overflow: auto; position: relative; height: calc(100% - ${H(et)&&H(Ke)?16:0}px);`)}),Jr(`scroll`,cn,function(...e){H(tt)?.apply(this,e)}),Jr(`dragover`,hn,function(...e){(H(k)?H(me):void 0)?.apply(this,e)}),Jr(`drop`,hn,function(...e){(H(k)?H(he):void 0)?.apply(this,e)}),K(e,Qe)};J(rn,e=>{t.loading&&!t.loadingOverlay&&!H(et)?e(L):t.error?e(an,1):H(r)?e(on,2):e(sn,-1)}),K(e,I),Qe()}Yr([`click`,`keydown`,`mousedown`,`pointerdown`,`input`,`change`,`dblclick`]),Yr([`click`]),[`a[href]`,`area[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`iframe`,`audio[controls]`,`video[controls]`,`[contenteditable]:not([contenteditable="false"])`,`[tabindex]`].join(`,`);var xm=null,Sm=null;function Cm(e){let t=document.createElement(`div`);return t.setAttribute(`aria-live`,e),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`role`,e===`assertive`?`alert`:`status`),Object.assign(t.style,{position:`absolute`,width:`1px`,height:`1px`,margin:`-1px`,border:`0`,padding:`0`,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`}),document.body.appendChild(t),t}function wm(e,t={}){if(typeof document>`u`||!e)return;let n=t.assertive??!1,r=n?Sm:xm;(!r||!r.isConnected)&&(r=Cm(n?`assertive`:`polite`),n?Sm=r:xm=r),r.textContent=``;let i=r;queueMicrotask(()=>{i.textContent=e})}Yr([`input`,`keydown`]);function Tm(e){let t=()=>e.disabled?.()??!1,n=()=>e.unique?.()??!0,r=()=>e.max?.()??1/0,i=()=>e.value(),a=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()}),o=I(``);function s(a){let s=a.trim();if(!(!s||t())&&!(i().length>=r())){if(n()&&i().includes(s)){L(o,``);return}e.onChange?.([...i(),s]),L(o,``)}}function c(n){t()||e.onChange?.(i().filter((e,t)=>t!==n))}function l(e){L(o,e,!0)}function u(e){L(o,e.currentTarget.value,!0)}function d(e){t()||(e.key===`Enter`||e.key===`,`?(e.preventDefault(),s(H(o))):e.key===`Backspace`&&H(o)===``&&i().length&&c(i().length-1))}function f(){s(H(o))}return{get tags(){return i()},get draft(){return H(o)},add:s,removeAt:c,setDraft:l,rootProps:()=>({role:`group`,...es(a())}),inputProps:()=>({type:`text`,value:H(o),disabled:t(),"aria-label":e.addLabel?.()??e.ariaLabel?.()??`Add tag`,oninput:u,onkeydown:d,onblur:f}),tagProps:e=>({"data-idx":e}),removeProps:t=>({type:`button`,"aria-label":`${e.removeLabel?.()??`Remove`} ${i()[t]??``}`.trim(),onclick:()=>c(t)})}}function Em(e){return e.toUpperCase().replace(/./g,e=>String.fromCodePoint(127397+e.charCodeAt(0)))}var Dm=[{code:`US`,name:`United States`,dial:`+1`},{code:`CA`,name:`Canada`,dial:`+1`},{code:`GB`,name:`United Kingdom`,dial:`+44`},{code:`IE`,name:`Ireland`,dial:`+353`},{code:`FR`,name:`France`,dial:`+33`},{code:`DE`,name:`Germany`,dial:`+49`},{code:`ES`,name:`Spain`,dial:`+34`},{code:`PT`,name:`Portugal`,dial:`+351`},{code:`IT`,name:`Italy`,dial:`+39`},{code:`NL`,name:`Netherlands`,dial:`+31`},{code:`BE`,name:`Belgium`,dial:`+32`},{code:`CH`,name:`Switzerland`,dial:`+41`},{code:`AT`,name:`Austria`,dial:`+43`},{code:`SE`,name:`Sweden`,dial:`+46`},{code:`NO`,name:`Norway`,dial:`+47`},{code:`DK`,name:`Denmark`,dial:`+45`},{code:`FI`,name:`Finland`,dial:`+358`},{code:`PL`,name:`Poland`,dial:`+48`},{code:`CZ`,name:`Czechia`,dial:`+420`},{code:`GR`,name:`Greece`,dial:`+30`},{code:`BG`,name:`Bulgaria`,dial:`+359`},{code:`RO`,name:`Romania`,dial:`+40`},{code:`UA`,name:`Ukraine`,dial:`+380`},{code:`RU`,name:`Russia`,dial:`+7`},{code:`TR`,name:`Turkey`,dial:`+90`},{code:`IL`,name:`Israel`,dial:`+972`},{code:`AE`,name:`United Arab Emirates`,dial:`+971`},{code:`SA`,name:`Saudi Arabia`,dial:`+966`},{code:`IN`,name:`India`,dial:`+91`},{code:`PK`,name:`Pakistan`,dial:`+92`},{code:`CN`,name:`China`,dial:`+86`},{code:`HK`,name:`Hong Kong`,dial:`+852`},{code:`JP`,name:`Japan`,dial:`+81`},{code:`KR`,name:`South Korea`,dial:`+82`},{code:`SG`,name:`Singapore`,dial:`+65`},{code:`MY`,name:`Malaysia`,dial:`+60`},{code:`TH`,name:`Thailand`,dial:`+66`},{code:`ID`,name:`Indonesia`,dial:`+62`},{code:`PH`,name:`Philippines`,dial:`+63`},{code:`VN`,name:`Vietnam`,dial:`+84`},{code:`AU`,name:`Australia`,dial:`+61`},{code:`NZ`,name:`New Zealand`,dial:`+64`},{code:`ZA`,name:`South Africa`,dial:`+27`},{code:`NG`,name:`Nigeria`,dial:`+234`},{code:`EG`,name:`Egypt`,dial:`+20`},{code:`KE`,name:`Kenya`,dial:`+254`},{code:`MA`,name:`Morocco`,dial:`+212`},{code:`BR`,name:`Brazil`,dial:`+55`},{code:`AR`,name:`Argentina`,dial:`+54`},{code:`CL`,name:`Chile`,dial:`+56`},{code:`CO`,name:`Colombia`,dial:`+57`},{code:`MX`,name:`Mexico`,dial:`+52`}],Om={US:10,CA:10,GB:10,IE:9,FR:9,DE:[10,11],ES:9,IT:[9,10],NL:9,BE:[8,9],CH:9,AT:[10,12],SE:[7,9],NO:8,DK:8,FI:[9,10],PL:9,PT:9,GR:10,CZ:9,RU:10,TR:10,IL:9,AE:9,SA:9,IN:10,PK:10,CN:11,HK:8,JP:10,KR:[9,10],SG:8,MY:[9,10],TH:9,ID:[9,11],PH:10,VN:9,AU:9,NZ:[8,10],ZA:9,NG:10,EG:10,KE:9,MA:9,BR:11,AR:10,CL:9,CO:10,MX:10};function km(e,t){let n=(t.match(/\d/g)??[]).length,r=Om[e.toUpperCase()];return r==null?n>0:typeof r==`number`?n===r:n>=r[0]&&n<=r[1]}var Am=new Map(Dm.map(e=>[e.code,e]));function jm(e){let t=()=>e.disabled?.()??!1,n=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()}),r=I(!1),i=I(``),a=I(0),o=F(()=>e.value()?Am.get(e.value())??null:null),s=F(()=>H(i).trim()===``?Dm:Dm.filter(e=>e.name.toLowerCase().includes(H(i).toLowerCase())||e.dial.includes(H(i))||e.code.toLowerCase()===H(i).toLowerCase()));function c(){t()||H(r)||(L(r,!0),L(i,``),L(a,0))}function l(){L(r,!1),e.focusTrigger?.()}function u(){H(r)?L(r,!1):c()}function d(t){e.onChange?.(t),L(r,!1),e.focusTrigger?.()}function f(e){L(i,e,!0),L(a,0)}function p(e){f(e.currentTarget.value)}function m(e){if(H(r))if(e.key===`ArrowDown`)e.preventDefault(),L(a,Math.min(H(a)+1,H(s).length-1),!0);else if(e.key===`ArrowUp`)e.preventDefault(),L(a,Math.max(H(a)-1,0),!0);else if(e.key===`Enter`){e.preventDefault();let t=H(s)[H(a)];t&&d(t.code)}else e.key===`Escape`&&(e.preventDefault(),l())}return{get open(){return H(r)},get activeIndex(){return H(a)},get query(){return H(i)},get filtered(){return H(s)},get selected(){return H(o)},get value(){return e.value()},isActive:e=>e===H(a),isSelected:t=>t===e.value(),setActive:e=>{L(a,e,!0)},setQuery:f,openPanel:c,close:l,toggle:u,pick:d,onKeydown:m,triggerProps:()=>({id:e.id?.(),type:`button`,"aria-haspopup":`listbox`,"aria-expanded":H(r),...es(n()),disabled:t(),onclick:u}),searchProps:()=>({type:`text`,value:H(i),"aria-label":e.searchLabel?.()??`Search countries`,oninput:p,onkeydown:m}),listboxProps:()=>({role:`listbox`}),optionProps:t=>{let n=H(s)[t];return{role:`option`,tabindex:-1,"aria-selected":n?n.code===e.value():!1,"data-idx":t,onclick:()=>{n&&d(n.code)},onpointermove:()=>{L(a,t,!0)}}}}}function Mm(e){let t=()=>e.min?.()??-1/0,n=()=>e.max?.()??1/0,r=()=>e.step?.()??1,i=()=>e.precision?.(),a=()=>e.grouping?.()??!1,o=()=>e.prefix?.()??``,s=()=>e.suffix?.()??``,c=()=>e.disabled?.()??!1,l=()=>e.readonly?.()??!1,u=F(()=>!c()&&!l()),d=I(``),f=I(!1),p=``,m=F(()=>new Intl.NumberFormat(void 0,{useGrouping:a(),minimumFractionDigits:i()??0,maximumFractionDigits:i()??20}));function h(e){return e==null?``:`${o()}${H(m).format(e)}${s()}`}Ln(()=>{let t=e.value(),n=t==null?`null`:String(t);n!==p&&(p=n,H(f)||L(d,h(t),!0))});function g(e){let r=Math.min(n(),Math.max(t(),e)),a=i();return a!=null&&(r=Math.round(r*10**a)/10**a),r}function _(e){let t=e.replace(o(),``).replace(s(),``).replace(/[,\s]/g,``).trim();if(t===``||t===`-`)return null;let n=Number(t);return isNaN(n)?null:n}function v(){let t=_(H(d)),n=t==null?null:g(t);p=n==null?`null`:String(n),e.onChange?.(n),L(d,h(n),!0)}function y(t){if(!H(u))return;let n=g((_(H(d))??0)+t*r());p=String(n),e.onChange?.(n),L(d,H(f)?String(n):h(n),!0)}let b=()=>y(1),x=()=>y(-1);function S(){L(f,!0);let t=e.value();L(d,t==null?``:String(t),!0)}function C(){L(f,!1),v()}function w(e){L(d,e.currentTarget.value,!0)}function T(e){e.key===`ArrowUp`?(e.preventDefault(),y(1)):e.key===`ArrowDown`?(e.preventDefault(),y(-1)):e.key===`Enter`&&v()}let E=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get text(){return H(d)},get focused(){return H(f)},get isInteractive(){return H(u)},commit:v,bump:y,increment:b,decrement:x,inputProps:()=>({id:e.id?.(),value:H(d),type:`text`,inputmode:`decimal`,role:`spinbutton`,placeholder:e.placeholder?.(),disabled:c(),readonly:l(),"aria-valuenow":e.value()??void 0,"aria-valuemin":t()===-1/0?void 0:t(),"aria-valuemax":n()===1/0?void 0:n(),...es(E()),oninput:w,onfocus:S,onblur:C,onkeydown:T}),incrementProps:()=>({type:`button`,"aria-label":`Increment`,disabled:!H(u),tabindex:-1,onclick:b}),decrementProps:()=>({type:`button`,"aria-label":`Decrement`,disabled:!H(u),tabindex:-1,onclick:x})}}var Nm=e=>e>=`0`&&e<=`9`,Pm=e=>/[a-zA-Z]/.test(e);function Fm(e,t){return e===`#`?Nm(t):e===`A`?Pm(t):e===`*`?Nm(t)||Pm(t):!1}var Im=e=>e===`#`||e===`A`||e===`*`;function Lm(e,t){let n=``,r=0,i=0;for(let a=0;a<t.length;a++){let o=t[a];if(!Im(o)){n+=o,e[r]===o&&r++;continue}for(;r<e.length&&!Fm(o,e[r]);)r++;if(r>=e.length)break;n+=e[r],r++,i++}return{formatted:Rm(n),filled:i}}function Rm(e){let t=-1;for(let n=0;n<e.length;n++){let r=e[n];(Nm(r)||Pm(r))&&(t=n)}return t<0?``:e.slice(0,t+1)}function zm(e,t){let n=``,r=0;for(let i=0;i<t.length&&r<e.length;i++){let a=t[i];if(!Im(a)){e[r]===a&&r++;continue}for(;r<e.length&&!Fm(a,e[r]);)r++;r<e.length&&(n+=e[r],r++)}return n}function Bm(e,t){let n=[...t].filter(Im).length;return zm(e,t).length>=n}function Vm(e){let t=()=>e.mask?.()??``,n=()=>e.disabled?.()??!1,r=()=>e.readonly?.()??!1,i=I(``),a=``;Ln(()=>{let n=t(),r=n?zm(e.value(),n):e.value();r!==a&&(a=r,L(i,n?Lm(r,n).formatted:e.value(),!0))});function o(n){let r=n.currentTarget,o=t(),s=o?zm(r.value,o):r.value,c=o?Lm(s,o).formatted:r.value;a=s,L(i,c,!0),r.value=c,e.onChange?.(c,s,o?Bm(c,o):!0)}let s=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get masked(){return H(i)},get raw(){return t()?zm(H(i),t()):H(i)},get complete(){return t()?Bm(H(i),t()):!0},inputProps:()=>({id:e.id?.(),value:H(i),type:`text`,placeholder:e.placeholder?.()??t(),disabled:n(),readonly:r(),...es(s()),oninput:o})}}function Hm(e){return[...Dm].sort((e,t)=>t.dial.length-e.dial.length).find(t=>e.startsWith(t.dial))}function Um(e){let t=()=>e.disabled?.()??!1,n=()=>e.readonly?.()??!1,r=I(`US`),i=I(``),a=!1,o=``,s=F(()=>Am.get(H(r))?.dial===`+1`?`(###) ###-####`:``),c=F(()=>Am.get(H(r))?.dial??`+1`),l=F(()=>H(s)?Lm(H(i),H(s)).formatted:H(i));Ln(()=>{let t=e.value();if(!a){a=!0,L(r,e.country?.()??`US`,!0);let n=Hm(t);n?(L(r,n.code,!0),L(i,t.slice(n.dial.length),!0)):t&&L(i,t.replace(/^\+/,``),!0),o=t;return}if(t!==o){o=t;let e=Hm(t);e&&(L(r,e.code,!0),L(i,t.slice(e.dial.length),!0))}});let u=F(()=>H(i).length>0&&km(H(r),H(i))),d=F(()=>H(i).length===0||km(H(r),H(i)));function f(){e.onChange?.(`${H(c)}${H(i)}`,{country:H(r),dial:H(c),national:H(i),valid:H(d),complete:H(u)})}function p(e){let t=e.currentTarget.value.replace(/\D/g,``);L(i,t,!0),o=`${H(c)}${t}`,f()}function m(e){L(r,e.currentTarget.value,!0),o=`${H(c)}${H(i)}`,f()}let h=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get iso(){return H(r)},get dial(){return H(c)},get flag(){return Em(H(r))},get displayNational(){return H(l)},get value(){return`${H(c)}${H(i)}`},get valid(){return H(d)},get complete(){return H(u)},selectProps:()=>({value:H(r),disabled:t(),"aria-label":e.countryLabel?.()??`Country`,onchange:m}),inputProps:()=>({id:e.id?.(),value:H(l),type:`tel`,inputmode:`tel`,placeholder:e.placeholder?.()??`Phone number`,disabled:t(),readonly:n(),...es(h()),"aria-label":e.ariaLabel?.()??`Phone number`,oninput:p})}}var Wm=[`#ef4444`,`#f97316`,`#f59e0b`,`#eab308`,`#84cc16`,`#22c55e`,`#10b981`,`#14b8a6`,`#06b6d4`,`#0ea5e9`,`#3b82f6`,`#6366f1`,`#8b5cf6`,`#a855f7`,`#d946ef`,`#ec4899`,`#f43f5e`,`#64748b`,`#0f172a`,`#ffffff`];function Gm(e){let t=e.trim();return t.startsWith(`#`)||(t=`#`+t),/^#[0-9a-fA-F]{3}$/.test(t)&&(t=`#`+t.slice(1).split(``).map(e=>e+e).join(``)),/^#[0-9a-fA-F]{6}$/.test(t)?t.toLowerCase():null}function Km(e){let t=()=>e.disabled?.()??!1,n=()=>e.readonly?.()??!1,r=F(()=>!t()&&!n()),i=I(!1),a=I(``),o=F(()=>Gm(e.value())??`#000000`);function s(){!H(r)||H(i)||(L(a,H(o),!0),L(i,!0))}function c(){L(i,!1)}function l(){H(i)?L(i,!1):s()}function u(t){let n=Gm(t);n&&e.onChange?.(n)}function d(){let t=Gm(H(a));t?e.onChange?.(t):L(a,H(o),!0)}let f=e=>Gm(e)===H(o),p=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get normalized(){return H(o)},get palette(){return e.palette?.()??Wm},get hexDraft(){return H(a)},set hexDraft(e){L(a,e,!0)},get isInteractive(){return H(r)},popover:{get open(){return H(i)},show:s,close:c,toggle:l},pick:u,commitHex:d,isActive:f,swatchProps:()=>({id:e.id?.(),type:`button`,"aria-haspopup":`dialog`,"aria-expanded":H(i),...es(p()),"aria-label":e.ariaLabel?.()??`Color ${H(o)}`,disabled:!H(r),onclick:l}),chipProps:e=>({type:`button`,"aria-label":e,onclick:()=>{u(e),L(i,!1)}})}}var qm=[``,`Weak`,`Fair`,`Good`,`Strong`];function Jm(e){if(!e)return 0;let t=0;return e.length>=8&&t++,/[a-z]/.test(e)&&/[A-Z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^a-zA-Z0-9]/.test(e)&&t++,t}function Ym(e){let t=()=>e.disabled?.()??!1,n=()=>e.readonly?.()??!1,r=I(!1),i=F(()=>Jm(e.value()));function a(t){e.onChange?.(t.currentTarget.value)}let o=()=>L(r,!H(r)),s=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get revealed(){return H(r)},get strength(){return H(i)},get strengthLabel(){return(e.strengthLabels?.()??qm)[H(i)]},toggle:o,inputProps:()=>({id:e.id?.(),value:e.value(),type:H(r)?`text`:`password`,placeholder:e.placeholder?.(),disabled:t(),readonly:n(),autocomplete:e.autocomplete?.()??`current-password`,...es(s()),oninput:a}),toggleProps:()=>({type:`button`,"aria-label":H(r)?e.hideLabel?.()??`Hide password`:e.showLabel?.()??`Show password`,"aria-pressed":H(r),disabled:t(),tabindex:-1,onclick:o})}}function Xm(e){let t=()=>e.checked(),n=()=>e.disabled?.()??!1;function r(){n()||e.onChange?.(!t())}function i(i){n()||(i.key===` `||i.key===`Enter`?(i.preventDefault(),r()):i.key===`ArrowRight`?t()||e.onChange?.(!0):i.key===`ArrowLeft`&&t()&&e.onChange?.(!1))}let a=()=>({id:e.id?.(),invalid:e.invalid?.(),required:e.required?.(),error:e.error?.(),hint:e.hint?.(),ariaLabel:e.ariaLabel?.()});return{get checked(){return t()},get disabled(){return n()},toggle:r,onKeydown:i,switchProps:()=>({type:`button`,role:`switch`,id:e.id?.(),"aria-checked":t(),disabled:n(),"data-checked":t()?``:void 0,...es(a()),onclick:r,onkeydown:i})}}var Zm=0;function Qm(e){let t=`sv-tabs-${Zm++}`,n=()=>e.tabs(),r=()=>e.orientation?.()??`horizontal`,i=()=>e.activation?.()??`automatic`,a=F(()=>n().filter(e=>!e.disabled)),o=F(()=>e.value()??n().find(e=>!e.disabled)?.id??n()[0]?.id??``),s=I(``),c=I(0),l=e=>{L(s,e,!0),sn(c)},u=e=>`${t}-tab-${e}`,d=e=>`${t}-panel-${e}`;function f(t){let r=n().find(e=>e.id===t);!r||r.disabled||e.onChange?.(t)}function p(t){n().find(e=>e.id===t)?.closable&&e.onClose?.(t)}function m(t){let n=H(a);if(!n.length)return;let s=n.findIndex(e=>e.id===H(o)),c=r()===`horizontal`,u=c&&e.dir?.()===`rtl`,d=c?u?`ArrowLeft`:`ArrowRight`:`ArrowDown`,m=c?u?`ArrowRight`:`ArrowLeft`:`ArrowUp`,h=null;if(t.key===d)h=n[(s+1)%n.length]?.id??null;else if(t.key===m)h=n[(s-1+n.length)%n.length]?.id??null;else if(t.key===`Home`)h=n[0]?.id??null;else if(t.key===`End`)h=n.at(-1)?.id??null;else if((t.key===`Enter`||t.key===` `)&&i()===`manual`){t.preventDefault(),f(H(o));return}else if(t.key===`Delete`){t.preventDefault(),p(H(o));return}else return;h&&(t.preventDefault(),l(h),i()===`automatic`&&f(h))}return{get activeId(){return H(o)},get focusId(){return H(s)},get focusTick(){return H(c)},isActive:e=>e===H(o),select:f,close:p,onKeydown:m,tablistProps:()=>({role:`tablist`,"aria-orientation":r(),"aria-label":e.ariaLabel?.()}),tabProps:e=>{let t=n().find(t=>t.id===e),r=e===H(o);return{role:`tab`,id:u(e),"data-tab":e,"aria-selected":r,"aria-controls":d(e),tabindex:r?0:-1,disabled:t?.disabled,onclick:()=>f(e),onkeydown:m}},panelProps:e=>({role:`tabpanel`,id:d(e),"aria-labelledby":u(e),tabindex:0})}}function $m(e){let t=[],n=e=>{for(let r of e.children??[])t.push(r.id),n(r)};return n(e),t}function eh(e,t){if(!e.children?.length)return t.has(e.id)?`checked`:`unchecked`;let n=$m(e),r=n.filter(e=>t.has(e)).length;return r===0&&!t.has(e.id)?`unchecked`:r===n.length?`checked`:`indeterminate`}function th(e,t){for(let n of e){if(n.id===t)return n;if(n.children){let e=th(n.children,t);if(e)return e}}return null}function nh(e,t){return[...e].sort(t).map(e=>e.children?{...e,children:nh(e.children,t)}:e)}function rh(e){let t=()=>e.nodes(),n=()=>e.checkable?.()??!1,r=()=>e.selected?.()??null,i=I(un(new Set)),a=!1;Ln(()=>{if(!a){a=!0;let t=e.expandedIds?.();t&&L(i,new Set(t),!0)}});let o=F(()=>{let n=e.filter?.()?.trim().toLowerCase();if(!n)return null;let r=new Set,i=new Set,a=e=>{let t=!1;for(let n of e.children??[])t=a(n)||t;let o=e.label.toLowerCase().includes(n);return(o||t)&&(r.add(e.id),t&&i.add(e.id)),o||t};for(let e of t())a(e);return{visible:r,forceOpen:i}}),s=F(()=>{let e=[],n=H(o),r=(t,a,o)=>{for(let s of t){if(n&&!n.visible.has(s.id))continue;let t=!!s.children?.length||!!s.lazy,c=n&&n.forceOpen.has(s.id)||H(i).has(s.id);e.push({node:s,depth:a,hasChildren:t,open:c,parentId:o,index:e.length}),c&&s.children?.length&&r(s.children,a+1,s.id)}};return r(t(),0,null),e}),c=I(0);Ln(()=>{H(c)>=H(s).length&&L(c,Math.max(0,H(s).length-1),!0)});let l=F(()=>new Set(e.checked?.()??[])),u=I(0);function d(e,t=!1){L(c,e,!0),t&&sn(u)}let f=e=>eh(e,H(l)),p=e=>H(i).has(e),m=e=>e===r();function h(t){if(!t.children?.length&&!t.lazy)return;let n=new Set(H(i)),r=!n.has(t.id);r?n.add(t.id):n.delete(t.id),L(i,n,!0),e.onToggle?.(t.id,r)}let g=e=>{let n=th(t(),e);n&&h(n)};function _(t){t.disabled||e.onSelect?.(t.id)}let v=e=>{let n=th(t(),e);n&&_(n)};function y(t){if(t.disabled)return;let n=new Set(H(l)),r=[t.id,...$m(t)],i=f(t)===`checked`;for(let e of r)i?n.delete(e):n.add(e);e.onCheck?.([...n])}function b(t){let r=H(s)[H(c)];if(!r)return;let i=()=>{r.hasChildren&&!r.open?h(r.node):r.hasChildren&&r.open&&d(Math.min(H(c)+1,H(s).length-1),!0)},a=()=>{if(r.hasChildren&&r.open)h(r.node);else if(r.parentId){let e=H(s).findIndex(e=>e.node.id===r.parentId);e>=0&&d(e,!0)}},o=e.dir?.()===`rtl`;switch(t.key){case`ArrowDown`:t.preventDefault(),d(Math.min(H(c)+1,H(s).length-1),!0);break;case`ArrowUp`:t.preventDefault(),d(Math.max(H(c)-1,0),!0);break;case`ArrowRight`:t.preventDefault(),(o?a:i)();break;case`ArrowLeft`:t.preventDefault(),(o?i:a)();break;case`Enter`:t.preventDefault(),_(r.node);break;case` `:t.preventDefault(),n()?y(r.node):_(r.node);break;case`Home`:t.preventDefault(),d(0,!0);break;case`End`:t.preventDefault(),d(H(s).length-1,!0);break}}return{get expanded(){return H(i)},get selected(){return r()},get rows(){return H(s)},get activeIndex(){return H(c)},get focusTick(){return H(u)},isExpanded:p,isSelected:m,checkStateOf:f,toggle:g,toggleExpand:h,select:v,toggleCheck:y,setActive:d,onKeydown:b,treeProps:()=>({role:`tree`,"aria-label":e.ariaLabel?.(),"aria-multiselectable":n()}),itemProps:e=>{let t=n()?f(e.node):`unchecked`,i=n()?t===`checked`?`true`:t===`indeterminate`?`mixed`:`false`:void 0;return{role:`treeitem`,"aria-level":e.depth+1,"aria-selected":e.node.id===r(),"aria-expanded":e.hasChildren?e.open:void 0,"aria-checked":i,"data-row":e.index,tabindex:e.index===H(c)?0:-1,onclick:()=>{d(e.index),_(e.node)},onkeydown:b}}}}function ih(e){let t=()=>e.min?.()??0,n=()=>e.max?.()??100,r=()=>e.step?.()??1,i=()=>e.range?.()??!1,a=()=>(e.orientation?.()??`horizontal`)===`vertical`,o=()=>e.disabled?.()??!1,s=()=>e.rtl?.()??!1,c=F(()=>i()?e.value()[0]:t()),l=F(()=>i()?e.value()[1]:e.value());function u(e){let i=Math.round((e-t())/r())*r()+t();return Math.min(n(),Math.max(t(),Number(i.toFixed(10))))}let d=e=>(e-t())/(n()-t())*100,f=I(null);function p(e,r){let i=(e.x-r.left)/r.width,o=a()?1-(e.y-r.top)/r.height:s()?1-i:i;return u(t()+Math.min(1,Math.max(0,o))*(n()-t()))}let m=t=>e.onChange?.(t),h=(t,n)=>e.onChange?.([Math.min(t,n),Math.max(t,n)]);function g(e,t){e===`single`?m(t):e===`lo`?h(t,H(l)):h(H(c),t)}function _(e,t){if(o())return;let n=p(e,t);if(i()){let e=Math.abs(n-H(c))<=Math.abs(n-H(l))?`lo`:`hi`;L(f,e,!0),e===`lo`?h(n,H(l)):h(H(c),n)}else L(f,`single`),m(n)}function v(e,t){H(f)&&g(H(f),p(e,t))}function y(){L(f,null)}function b(e,t){o()||g(e,u(H(e===`lo`?c:l)+t*r()))}function x(e,i){if(o())return;let d=H(i===`lo`?c:l),f=s()&&!a(),p=u(d+r()),m=u(d-r()),h=d;if(e.key===`ArrowUp`)h=p;else if(e.key===`ArrowDown`)h=m;else if(e.key===`ArrowRight`)h=f?m:p;else if(e.key===`ArrowLeft`)h=f?p:m;else if(e.key===`Home`)h=t();else if(e.key===`End`)h=n();else if(e.key===`PageUp`)h=u(d+r()*10);else if(e.key===`PageDown`)h=u(d-r()*10);else return;e.preventDefault(),g(i,h)}let S=e=>i()?e===0?`lo`:`hi`:`single`;return{get value(){return e.value()},get lo(){return H(c)},get hi(){return H(l)},get dragging(){return H(f)},percentOf:d,clampStep:u,valueFromPointer:p,pointerDown:_,setFromPointer:v,endDrag:y,step:b,trackProps:()=>({"data-orientation":a()?`vertical`:`horizontal`}),thumbProps:r=>{let i=S(r),s=H(i===`lo`?c:l),u=i===`hi`?H(c):t(),d=i===`lo`?H(l):n(),f=i===`lo`?`Minimum`:i===`hi`?`Maximum`:e.ariaLabel?.()??`Value`;return{role:`slider`,tabindex:o()?-1:0,"aria-valuemin":u,"aria-valuemax":d,"aria-valuenow":s,"aria-label":f,"aria-orientation":a()?`vertical`:`horizontal`,"aria-disabled":o()||void 0,onkeydown:e=>x(e,i)}}}}function ah(e){let t=()=>e.min?.()??0,n=()=>e.max?.()??100,r=()=>e.sweep?.()??270,i=()=>e.size?.()??180,a=()=>e.thickness?.()??14,o=F(()=>Math.min(n(),Math.max(t(),e.value()))),s=F(()=>90+(360-r())/2),c=F(()=>i()/2),l=F(()=>i()/2),u=F(()=>i()/2-a()/2-2),d=e=>(e-t())/(n()-t()),f=e=>H(s)+d(e)*r();function p(e,t){let n=e*Math.PI/180;return{x:H(c)+t*Math.cos(n),y:H(l)+t*Math.sin(n)}}function m(e,t,n){let r=f(e),i=f(t),a=p(r,n),o=p(i,n),s=+(i-r>180);return`M ${a.x} ${a.y} A ${n} ${n} 0 ${s} 1 ${o.x} ${o.y}`}let h=F(()=>p(f(H(o)),H(u)-a()/2));return{get clamped(){return H(o)},get startAngle(){return H(s)},get cx(){return H(c)},get cy(){return H(l)},get r(){return H(u)},get needleEnd(){return H(h)},frac:d,angleOf:f,polar:p,arcPath:m,rootProps:()=>({role:`meter`,"aria-valuenow":H(o),"aria-valuemin":t(),"aria-valuemax":n(),"aria-label":e.ariaLabel?.()??`Gauge`})}}var oh=W(`<button type="button"><!></button>`);function sh(e,t){Ze(t,!0);let n=$(t,`delay`,3,300),r=$(t,`interval`,3,60),i=$(t,`disabled`,3,!1),a=$(t,`size`,3,`md`),o=$(t,`variant`,3,`secondary`),s=null,c=null;function l(){s&&=(clearTimeout(s),null),c&&=(clearInterval(c),null)}function u(e){i()||e.button!==0||(t.onclick?.(),s=setTimeout(()=>{c=setInterval(()=>t.onclick?.(),Math.max(16,r()))},Math.max(0,n())))}function d(e){i()||(e.key===`Enter`||e.key===` `)&&!e.repeat&&(e.preventDefault(),t.onclick?.())}var f=oh();Jr(`pointerup`,pn,l),Jr(`pointercancel`,pn,l);var p=R(f),m=e=>{var n=ii();bi(z(n),()=>t.children),K(e,n)};J(p,e=>{t.children&&e(m)}),N(f),V(()=>{X(f,1,`sv-btn sv-btn--${o()??``} sv-btn--${a()??``} sv-repeat`,`svelte-ortca4`),f.disabled=i(),Q(f,`aria-label`,t.ariaLabel)}),U(`pointerdown`,f,u),Jr(`pointerleave`,f,l),U(`keydown`,f,d),K(e,f),Qe()}Yr([`pointerdown`,`keydown`]);var ch=W(`<span class="sv-switch__txt sv-switch__txt--on svelte-ueizab"> </span> <span class="sv-switch__txt sv-switch__txt--off svelte-ueizab"> </span>`,1),lh=W(`<input type="hidden"/>`),uh=W(`<button><span class="sv-switch__track svelte-ueizab"><!> <span class="sv-switch__thumb svelte-ueizab"></span></span> <!></button>`);function dh(e,t){Ze(t,!0);let n=$(t,`checked`,3,!1),r=$(t,`disabled`,3,!1),i=$(t,`size`,3,`md`),a=$(t,`invalid`,3,!1),o=$(t,`required`,3,!1),s=$o(`sv-switch`),c=F(()=>t.id??s),l=Xm({checked:()=>n(),onChange:e=>t.onChange?.(e),disabled:()=>r(),ariaLabel:()=>t.ariaLabel,id:()=>H(c),invalid:()=>a(),required:()=>o(),error:()=>t.error,hint:()=>t.hint});Tc(e,{get id(){return H(c)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return o()},get dir(){return t.dir},children:(e,r)=>{var a=uh();ca(a,e=>({class:`sv-switch sv-switch--${i()??``}`,...e,[Ji]:{"is-on":n()}}),[()=>l.switchProps()],void 0,void 0,`svelte-ueizab`);var o=R(a),s=R(o),c=e=>{var n=ch(),r=z(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a,!0);N(a),V(()=>{q(i,t.onLabel??``),q(o,t.offLabel??``)}),K(e,n)};J(s,e=>{(t.onLabel||t.offLabel)&&e(c)}),P(2),N(o);var u=B(o,2),d=e=>{var r=lh();Z(r),V(()=>{Q(r,`name`,t.name),ra(r,n()?`true`:`false`)}),K(e,r)};J(u,e=>{t.name&&e(d)}),N(a),K(e,a)},$$slots:{default:!0}}),Qe()}Yr([`click`]);var fh=W(`<button type="button" class="sv-num__clear svelte-nl0nle" aria-label="Clear" tabindex="-1"><svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M6 6l12 12M18 6L6 18"></path></svg></button>`),ph=G(`<svg viewBox="0 0 24 24" width="11" height="11" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M6 15l6-6 6 6"></path></svg>`),mh=G(`<svg viewBox="0 0 24 24" width="11" height="11" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"></path></svg>`),hh=W(`<div class="sv-num__spin svelte-nl0nle"><!> <!></div>`),gh=W(`<input type="hidden"/>`),_h=W(`<div><input/> <!> <!> <!></div>`);function vh(e,t){Ze(t,!0);let n=$(t,`value`,3,null),r=$(t,`min`,19,()=>-1/0),i=$(t,`max`,3,1/0),a=$(t,`step`,3,1),o=$(t,`grouping`,3,!1),s=$(t,`prefix`,3,``),c=$(t,`suffix`,3,``),l=$(t,`disabled`,3,!1),u=$(t,`readonly`,3,!1),d=$(t,`spinButtons`,3,!0),f=$(t,`clearable`,3,!1),p=$(t,`size`,3,`md`),m=$(t,`invalid`,3,!1),h=$(t,`required`,3,!1),g=$o(`sv-num`),_=F(()=>t.id??g),v=Mm({value:()=>n(),onChange:e=>t.onChange?.(e),min:()=>r(),max:()=>i(),step:()=>a(),precision:()=>t.precision,grouping:()=>o(),prefix:()=>s(),suffix:()=>c(),placeholder:()=>t.placeholder,disabled:()=>l(),readonly:()=>u(),id:()=>H(_),invalid:()=>m(),required:()=>h(),error:()=>t.error,hint:()=>t.hint,ariaLabel:()=>t.ariaLabel});Tc(e,{get id(){return H(_)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return h()},get dir(){return t.dir},children:(e,r)=>{var i=_h();let a;var o=R(i);ca(o,e=>({class:`sv-num__input`,...e}),[()=>v.inputProps()],void 0,void 0,`svelte-nl0nle`,!0);var s=B(o,2),c=e=>{var n=fh();U(`click`,n,()=>t.onChange?.(null)),K(e,n)};J(s,e=>{f()&&n()!=null&&!l()&&!u()&&e(c)});var h=B(s,2),g=e=>{var t=hh(),n=R(t);sh(n,{size:`sm`,variant:`ghost`,ariaLabel:`Increment`,get onclick(){return v.increment},children:(e,t)=>{K(e,ph())},$$slots:{default:!0}}),sh(B(n,2),{size:`sm`,variant:`ghost`,ariaLabel:`Decrement`,get onclick(){return v.decrement},children:(e,t)=>{K(e,mh())},$$slots:{default:!0}}),N(t),K(e,t)};J(h,e=>{d()&&e(g)});var _=B(h,2),y=e=>{var r=gh();Z(r),V(()=>{Q(r,`name`,t.name),ra(r,n()??``)}),K(e,r)};J(_,e=>{t.name&&e(y)}),N(i),V(()=>a=X(i,1,`sv-num sv-num--${p()??``}`,`svelte-nl0nle`,a,{"is-disabled":l(),"is-invalid":m()})),K(e,i)},$$slots:{default:!0}}),Qe()}Yr([`click`]);var yh=G(`<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><path d="M1 1l22 22"></path></svg>`),bh=G(`<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),xh=W(`<button><!></button>`),Sh=W(`<span></span>`),Ch=W(`<div class="sv-pw__meter svelte-1ho7op6" aria-hidden="true"></div> <span> </span>`,1),wh=W(`<input type="hidden"/>`),Th=W(`<div><div><input/> <!></div> <!> <!></div>`);function Eh(e,t){Ze(t,!0);let n={show:`Show password`,hide:`Hide password`,weak:`Weak`,fair:`Fair`,good:`Good`,strong:`Strong`},r=$(t,`value`,3,``),i=$(t,`disabled`,3,!1),a=$(t,`readonly`,3,!1),o=$(t,`revealable`,3,!0),s=$(t,`showStrength`,3,!1),c=$(t,`size`,3,`md`),l=$(t,`invalid`,3,!1),u=$(t,`required`,3,!1),d=$(t,`autocomplete`,3,`current-password`),f=$o(`sv-pass`),p=F(()=>t.id??f),m=F(()=>ts(n,t.messages)),h=Ym({value:()=>r(),onChange:e=>t.onChange?.(e),placeholder:()=>t.placeholder,disabled:()=>i(),readonly:()=>a(),ariaLabel:()=>t.ariaLabel,autocomplete:()=>d(),showLabel:()=>H(m).show,hideLabel:()=>H(m).hide,strengthLabels:()=>[``,H(m).weak,H(m).fair,H(m).good,H(m).strong],id:()=>H(p),invalid:()=>l(),required:()=>u(),error:()=>t.error,hint:()=>t.hint});Tc(e,{get id(){return H(p)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return u()},get dir(){return t.dir},children:(e,n)=>{var a=Th();let u;var d=R(a);let f;var p=R(d);ca(p,e=>({class:`sv-pw__input`,...e}),[()=>h.inputProps()],void 0,void 0,`svelte-1ho7op6`,!0);var m=B(p,2),g=e=>{var t=xh();ca(t,e=>({class:`sv-pw__eye`,...e}),[()=>h.toggleProps()],void 0,void 0,`svelte-1ho7op6`);var n=R(t),r=e=>{K(e,yh())},i=e=>{K(e,bh())};J(n,e=>{h.revealed?e(r):e(i,-1)}),N(t),K(e,t)};J(m,e=>{o()&&e(g)}),N(d);var _=B(d,2),v=e=>{var t=Ch(),n=z(t);Y(n,20,()=>[,,,,],di,(e,t,n)=>{var r=Sh();let i;V(()=>i=X(r,1,`sv-pw__bar is-lvl${h.strength??``}`,`svelte-1ho7op6`,i,{on:n<h.strength})),K(e,r)}),N(n);var r=B(n,2),i=R(r,!0);N(r),V(()=>{X(r,1,`sv-pw__strength is-lvl${h.strength??``}`,`svelte-1ho7op6`),q(i,h.strengthLabel)}),K(e,t)};J(_,e=>{s()&&e(v)});var y=B(_,2),b=e=>{var n=wh();Z(n),V(()=>{Q(n,`name`,t.name),ra(n,r())}),K(e,n)};J(y,e=>{t.name&&e(b)}),N(a),V(()=>{u=X(a,1,`sv-pw sv-pw--${c()??``}`,`svelte-1ho7op6`,u,{"is-disabled":i()}),f=X(d,1,`sv-pw__field svelte-1ho7op6`,null,f,{"is-invalid":l()})}),K(e,a)},$$slots:{default:!0}}),Qe()}var Dh=W(`<span class="sv-masked__adorn svelte-gi8hpa"><!></span>`),Oh=W(`<button type="button" class="sv-masked__clear svelte-gi8hpa" aria-label="Clear" tabindex="-1"><svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M6 6l12 12M18 6L6 18"></path></svg></button>`),kh=W(`<span class="sv-masked__adorn svelte-gi8hpa"><!></span>`),Ah=W(`<input type="hidden"/>`),jh=W(`<div><!> <input/> <!> <!> <!></div>`);function Mh(e,t){Ze(t,!0);let n=$(t,`value`,3,``),r=$(t,`mask`,3,``),i=$(t,`disabled`,3,!1),a=$(t,`readonly`,3,!1),o=$(t,`size`,3,`md`),s=$(t,`invalid`,3,!1),c=$(t,`required`,3,!1),l=$(t,`clearable`,3,!1),u=$o(`sv-mask`),d=F(()=>t.id??u),f=Vm({value:()=>n(),onChange:(e,n,r)=>t.onChange?.(e,n,r),mask:()=>r(),placeholder:()=>t.placeholder,disabled:()=>i(),readonly:()=>a(),id:()=>H(d),invalid:()=>s(),required:()=>c(),error:()=>t.error,hint:()=>t.hint,ariaLabel:()=>t.ariaLabel});Tc(e,{get id(){return H(d)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return c()},get dir(){return t.dir},children:(e,n)=>{var c=jh();let u;var d=R(c),p=e=>{var n=Dh();bi(R(n),()=>t.prefixIcon),N(n),K(e,n)};J(d,e=>{t.prefixIcon&&e(p)});var m=B(d,2);ca(m,e=>({class:`sv-masked__input`,...e}),[()=>f.inputProps()],void 0,void 0,`svelte-gi8hpa`,!0);var h=B(m,2),g=e=>{var n=Oh();U(`click`,n,()=>t.onChange?.(``,``,!1)),K(e,n)};J(h,e=>{l()&&f.masked&&!i()&&!a()&&e(g)});var _=B(h,2),v=e=>{var n=kh();bi(R(n),()=>t.suffixIcon),N(n),K(e,n)};J(_,e=>{t.suffixIcon&&e(v)});var y=B(_,2),b=e=>{var n=Ah();Z(n),V(e=>{Q(n,`name`,t.name),ra(n,e)},[()=>r()?zm(f.masked,r()):f.masked]),K(e,n)};J(y,e=>{t.name&&e(b)}),N(c),V(()=>u=X(c,1,`sv-masked sv-masked--${o()??``}`,`svelte-gi8hpa`,u,{"is-invalid":s(),"is-disabled":i()})),K(e,c)},$$slots:{default:!0}}),Qe()}Yr([`click`]);var Nh=W(`<option class="svelte-14cioav"> </option>`),Ph=W(`<input type="hidden"/>`),Fh=W(`<div><div class="sv-phone__country svelte-14cioav"><span class="sv-phone__flag svelte-14cioav" aria-hidden="true"> </span> <span class="sv-phone__dial svelte-14cioav"> </span> <select></select> <svg class="sv-phone__chev svelte-14cioav" viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></div> <input/> <!></div>`);function Ih(e,t){Ze(t,!0);let n={country:`Country`},r=$(t,`value`,3,``),i=$(t,`country`,3,`US`),a=$(t,`disabled`,3,!1),o=$(t,`readonly`,3,!1),s=$(t,`placeholder`,3,`Phone number`),c=$(t,`size`,3,`md`),l=$(t,`invalid`,3,!1),u=$(t,`required`,3,!1),d=$o(`sv-phone`),f=F(()=>t.id??d),p=F(()=>ts(n,t.messages)),m=Um({value:()=>r(),onChange:(e,n)=>t.onChange?.(e,n),country:()=>i(),disabled:()=>a(),readonly:()=>o(),placeholder:()=>s(),countryLabel:()=>H(p).country,id:()=>H(f),invalid:()=>l(),required:()=>u(),error:()=>t.error,hint:()=>t.hint,ariaLabel:()=>t.ariaLabel});Tc(e,{get id(){return H(f)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return u()},get dir(){return t.dir},children:(e,n)=>{var r=Fh();let i;var o=R(r),s=R(o),u=R(s,!0);N(s);var d=B(s,2),f=R(d,!0);N(d);var p=B(d,2);ca(p,e=>({class:`sv-phone__select`,...e}),[()=>m.selectProps()],void 0,void 0,`svelte-14cioav`),Y(p,21,()=>Dm,e=>e.code,(e,t)=>{var n=Nh(),r=R(n);N(n);var i={};V(e=>{q(r,`${e??``} ${H(t).name??``} (${H(t).dial??``})`),i!==(i=H(t).code)&&(n.value=(n.__value=H(t).code)??``)},[()=>Em(H(t).code)]),K(e,n)}),N(p),P(2),N(o);var h=B(o,2);ca(h,e=>({class:`sv-phone__number`,...e}),[()=>m.inputProps()],void 0,void 0,`svelte-14cioav`,!0);var g=B(h,2),_=e=>{var n=Ph();Z(n),V(()=>{Q(n,`name`,t.name),ra(n,m.value)}),K(e,n)};J(g,e=>{t.name&&e(_)}),N(r),V(()=>{i=X(r,1,`sv-phone sv-phone--${c()??``}`,`svelte-14cioav`,i,{"is-disabled":a(),"is-invalid":l()}),q(u,m.flag),q(f,m.dial)}),K(e,r)},$$slots:{default:!0}}),Qe()}var Lh=W(`<button><span class="sv-color__swatch svelte-w292uu"></span> <span class="sv-color__hex svelte-w292uu"> </span></button>`),Rh=W(`<button></button>`),zh=W(`<div class="sv-color__panel" role="dialog"><div class="sv-color__top"><input class="sv-color__native" type="color"/> <input class="sv-color__field" type="text" spellcheck="false"/></div> <div class="sv-color__palette"></div></div>`),Bh=W(`<input type="hidden"/>`),Vh=W(`<!> <!> <!>`,1);function Hh(e,t){Ze(t,!0);let n={dialog:`Choose color`,picker:`Color picker`,hex:`Hex value`},r=$(t,`value`,3,`#3b82f6`),i=$(t,`disabled`,3,!1),a=$(t,`readonly`,3,!1),o=$(t,`size`,3,`md`),s=$(t,`invalid`,3,!1),c=$(t,`required`,3,!1),l=$(t,`autoOpen`,3,!1),u=$o(`sv-color`),d=F(()=>t.id??u),f=F(()=>ts(n,t.messages)),p=Km({value:()=>r(),onChange:e=>t.onChange?.(e),disabled:()=>i(),readonly:()=>a(),palette:()=>t.palette,id:()=>H(d),invalid:()=>s(),required:()=>c(),error:()=>t.error,hint:()=>t.hint,ariaLabel:()=>t.ariaLabel}),m=I(null),h=I(null),g=I(un({top:0,left:0,width:0,openUpward:!1}));function _(){H(m)&&L(g,Fo(H(m).getBoundingClientRect(),{estimatedHeight:210,minWidth:200}),!0)}Ln(()=>{if(!p.popover.open)return;_();let e=()=>_();window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e);let t=e=>{let t=e.target;t&&(H(m)?.contains(t)||H(h)?.contains(t))||p.popover.close()};return document.addEventListener(`pointerdown`,t,!0),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e),document.removeEventListener(`pointerdown`,t,!0)}});function v(e){l()&&(e.focus(),p.popover.show())}var y=Vh(),b=z(y);Tc(b,{get id(){return H(d)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return c()},get dir(){return t.dir},children:(e,t)=>{var n=Lh();ca(n,e=>({class:`sv-color sv-color--${o()??``}`,...e,[Ji]:{"is-disabled":i(),"is-invalid":s()}}),[()=>p.swatchProps()],void 0,void 0,`svelte-w292uu`);var r=R(n);let a;var c=B(r,2),l=R(c,!0);N(c),N(n),ya(n,e=>L(m,e),()=>H(m)),Mi(n,e=>v?.(e)),V(()=>{a=Ui(r,``,a,{background:p.normalized}),q(l,p.normalized)}),K(e,n)},$$slots:{default:!0}});var x=B(b,2),S=e=>{var t=zh();let n;var r=R(t),i=R(r);Z(i);var a=B(i,2);Z(a),N(r);var o=B(r,2);Y(o,20,()=>p.palette,e=>e,(e,t)=>{var n=Rh();ca(n,(e,n)=>({class:`sv-color__chip`,...e,[Ji]:n,[Yi]:{background:t}}),[()=>p.chipProps(t),()=>({"is-active":p.isActive(t)})],void 0,void 0,`svelte-w292uu`),K(e,n)}),N(o),N(t),ya(t,e=>L(h,e),()=>H(h)),Mi(t,e=>No?.(e)),Mi(t,(e,t)=>Po?.(e,t),()=>({up:H(g).openUpward})),V(()=>{Q(t,`aria-label`,H(f).dialog),n=Ui(t,``,n,{position:`fixed`,top:`${H(g).top}px`,left:`${H(g).left}px`}),ra(i,p.normalized),Q(i,`aria-label`,H(f).picker),Q(a,`aria-label`,H(f).hex)}),U(`input`,i,e=>p.pick(e.currentTarget.value)),Jr(`blur`,a,function(...e){p.commitHex?.apply(this,e)}),U(`keydown`,a,e=>{e.key===`Enter`&&p.commitHex()}),fa(a,()=>p.hexDraft,e=>p.hexDraft=e),K(e,t)};J(x,e=>{p.popover.open&&e(S)});var C=B(x,2),w=e=>{var n=Bh();Z(n),V(()=>{Q(n,`name`,t.name),ra(n,p.normalized)}),K(e,n)};J(C,e=>{t.name&&e(w)}),K(e,y),Qe()}Yr([`input`,`keydown`]);function Uh(e){let{scrollTop:t,viewportHeight:n,rowHeight:r,count:i}=e,a=e.overscan??6,o=Math.max(0,i)*Math.max(0,r);if(r<=0||i<=0)return{start:0,end:Math.max(0,i),padTop:0,padBottom:0,totalHeight:o};let s=Math.floor(Math.max(0,t)/r),c=Math.max(0,s-a),l=Math.max(1,Math.ceil(Math.max(0,n)/r)),u=Math.min(i,s+l+a);return{start:c,end:u,padTop:c*r,padBottom:Math.max(0,(i-u)*r),totalHeight:o}}function Wh(e,t,n,r){let i=e*r,a=i+r;return i<t?i:a>t+n?a-n:t}var Gh=W(`<button>×</button>`),Kh=W(`<span><span class="sv-tags__label"> </span> <!></span>`),qh=W(`<input type="hidden"/>`),Jh=W(`<div><!> <input/> <!></div>`);function Yh(e,t){Ze(t,!0);let n={add:`Add tag`,remove:`Remove`},r=$(t,`value`,19,()=>[]),i=$(t,`placeholder`,3,`Add tag…`),a=$(t,`disabled`,3,!1),o=$(t,`unique`,3,!0),s=$(t,`max`,3,1/0),c=$(t,`invalid`,3,!1),l=$(t,`required`,3,!1),u=$o(`sv-tags`),d=F(()=>t.id??u),f=F(()=>ts(n,t.messages)),p=Tm({value:()=>r(),onChange:e=>t.onChange?.(e),disabled:()=>a(),unique:()=>o(),max:()=>s(),ariaLabel:()=>t.ariaLabel,addLabel:()=>H(f).add,removeLabel:()=>H(f).remove,id:()=>H(d),invalid:()=>c(),required:()=>l(),error:()=>t.error,hint:()=>t.hint});Tc(e,{get id(){return H(d)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return l()},get dir(){return t.dir},children:(e,n)=>{var o=Jh();ca(o,e=>({class:`sv-tags`,...e,[Ji]:{"is-disabled":a(),"is-invalid":c()}}),[()=>p.rootProps()],void 0,void 0,`svelte-1f7q0ty`);var s=R(o);Y(s,19,r,(e,t)=>e+t,(e,t,n)=>{var r=Kh();ca(r,e=>({class:`sv-tags__chip`,...e}),[()=>p.tagProps(H(n))],void 0,void 0,`svelte-1f7q0ty`);var i=R(r),o=R(i,!0);N(i);var s=B(i,2),c=e=>{var t=Gh();ca(t,e=>({class:`sv-tags__x`,...e}),[()=>p.removeProps(H(n))],void 0,void 0,`svelte-1f7q0ty`),K(e,t)};J(s,e=>{a()||e(c)}),N(r),V(()=>q(o,H(t))),K(e,r)});var l=B(s,2);ca(l,e=>({class:`sv-tags__input`,placeholder:r().length?``:i(),...e}),[()=>p.inputProps()],void 0,void 0,`svelte-1f7q0ty`,!0);var u=B(l,2),d=e=>{var n=qh();Z(n),V(e=>{Q(n,`name`,t.name),ra(n,e)},[()=>r().join(`,`)]),K(e,n)};J(u,e=>{t.name&&e(d)}),N(o),K(e,o)},$$slots:{default:!0}}),Qe()}Yr([`click`,`keydown`,`input`]),Yr([`keydown`]),Yr([`keydown`,`input`]);var Xh=W(`<span class="sv-country__dial svelte-4hyx4d"> </span>`),Zh=W(`<span class="sv-country__flag svelte-4hyx4d" aria-hidden="true"> </span> <span class="sv-country__name svelte-4hyx4d"> </span> <!>`,1),Qh=W(`<span class="sv-country__ph svelte-4hyx4d"> </span>`),$h=W(`<button><!> <svg class="sv-country__chev svelte-4hyx4d" viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button>`),eg=W(`<div><span class="sv-country__flag svelte-4hyx4d" aria-hidden="true"> </span> <span class="sv-country__name svelte-4hyx4d"> </span> <span class="sv-country__dial svelte-4hyx4d"> </span></div>`),tg=W(`<div class="sv-ddl__empty"> </div>`),ng=W(`<div class="sv-country__panel" role="dialog"><input/> <div></div></div>`),rg=W(`<input type="hidden"/>`),ig=W(`<!> <!> <!>`,1);function ag(e,t){Ze(t,!0);let n={search:`Search countries`,noResults:`No matches`},r=$(t,`value`,3,null),i=$(t,`showDial`,3,!1),a=$(t,`placeholder`,3,`Select country…`),o=$(t,`disabled`,3,!1),s=$(t,`size`,3,`md`),c=$(t,`invalid`,3,!1),l=$(t,`required`,3,!1),u=$o(`sv-country`),d=F(()=>t.id??u),f=F(()=>ts(n,t.messages)),p=I(null),m=I(null),h=I(null),g=I(un({top:0,left:0,width:0,openUpward:!1})),_=jm({value:()=>r(),onChange:e=>t.onChange?.(e),disabled:()=>o(),ariaLabel:()=>t.ariaLabel,searchLabel:()=>H(f).search,focusTrigger:()=>H(p)?.focus(),id:()=>H(d),invalid:()=>c(),required:()=>l(),error:()=>t.error,hint:()=>t.hint}),v=F(()=>_.selected);function y(){H(p)&&L(g,Fo(H(p).getBoundingClientRect(),{estimatedHeight:320,minWidth:240}),!0)}Ln(()=>{if(!_.open)return;y(),queueMicrotask(()=>H(m)?.focus());let e=()=>y();window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e);let t=e=>{let t=e.target;t&&(H(p)?.contains(t)||H(h)?.contains(t))||_.close()};return document.addEventListener(`pointerdown`,t,!0),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e),document.removeEventListener(`pointerdown`,t,!0)}}),Ln(()=>{if(!_.open)return;let e=_.activeIndex;queueMicrotask(()=>H(h)?.querySelector(`[data-idx="${e}"]`)?.scrollIntoView({block:`nearest`}))});var b=ig(),x=z(b);Tc(x,{get id(){return H(d)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return l()},get dir(){return t.dir},children:(e,t)=>{var n=$h();ca(n,e=>({class:`sv-country sv-country--${s()??``}`,...e,[Ji]:{"is-open":_.open,"is-disabled":o(),"is-invalid":c()}}),[()=>_.triggerProps()],void 0,void 0,`svelte-4hyx4d`);var r=R(n),l=e=>{var t=Zh(),n=z(t),r=R(n,!0);N(n);var a=B(n,2),o=R(a,!0);N(a);var s=B(a,2),c=e=>{var t=Xh(),n=R(t,!0);N(t),V(()=>q(n,H(v).dial)),K(e,t)};J(s,e=>{i()&&e(c)}),V(e=>{q(r,e),q(o,H(v).name)},[()=>Em(H(v).code)]),K(e,t)},u=e=>{var t=Qh(),n=R(t,!0);N(t),V(()=>q(n,a())),K(e,t)};J(r,e=>{H(v)?e(l):e(u,-1)}),P(2),N(n),ya(n,e=>L(p,e),()=>H(p)),K(e,n)},$$slots:{default:!0}});var S=B(x,2),C=e=>{var t=ng();let n;var r=R(t);ca(r,e=>({class:`sv-country__search`,placeholder:`${H(f).search}…`,...e}),[()=>_.searchProps()],void 0,void 0,`svelte-4hyx4d`,!0),ya(r,e=>L(m,e),()=>H(m));var i=B(r,2);ca(i,e=>({class:`sv-country__list`,...e}),[()=>_.listboxProps()],void 0,void 0,`svelte-4hyx4d`),Y(i,23,()=>_.filtered,e=>e.code,(e,t,n)=>{var r=eg();ca(r,(e,t)=>({class:`sv-country__opt`,...e,[Ji]:t}),[()=>_.optionProps(H(n)),()=>({"is-active":_.isActive(H(n)),"is-selected":_.isSelected(H(t).code)})],void 0,void 0,`svelte-4hyx4d`);var i=R(r),a=R(i,!0);N(i);var o=B(i,2),s=R(o,!0);N(o);var c=B(o,2),l=R(c,!0);N(c),N(r),V(e=>{q(a,e),q(s,H(t).name),q(l,H(t).dial)},[()=>Em(H(t).code)]),K(e,r)},e=>{var t=tg(),n=R(t,!0);N(t),V(()=>q(n,H(f).noResults)),K(e,t)}),N(i),N(t),ya(t,e=>L(h,e),()=>H(h)),Mi(t,e=>No?.(e)),Mi(t,(e,t)=>Po?.(e,t),()=>({up:H(g).openUpward})),V(()=>n=Ui(t,``,n,{position:`fixed`,top:`${H(g).top}px`,left:`${H(g).left}px`,"min-width":`${H(g).width}px`})),K(e,t)};J(S,e=>{_.open&&e(C)});var w=B(S,2),T=e=>{var n=rg();Z(n),V(()=>{Q(n,`name`,t.name),ra(n,r()??``)}),K(e,n)};J(w,e=>{t.name&&e(T)}),K(e,b),Qe()}var og=W(`<span class="sv-slider__tick svelte-ct86s2"></span>`),sg=W(`<span class="sv-slider__bubble svelte-ct86s2"> </span>`),cg=W(`<span class="sv-slider__bubble svelte-ct86s2"> </span>`),lg=W(`<div><!></div> <div><!></div>`,1),ug=W(`<span class="sv-slider__bubble svelte-ct86s2"> </span>`),dg=W(`<div><!></div>`),fg=W(`<div class="sv-slider__scale sv-slider__scale--ends svelte-ct86s2" aria-hidden="true"><span> </span><span> </span></div>`),pg=W(`<span class="sv-slider__scale-lbl svelte-ct86s2"> </span>`),mg=W(`<div class="sv-slider__scale svelte-ct86s2" aria-hidden="true"></div>`),hg=W(`<input type="hidden"/>`),gg=W(`<div><div><div class="sv-slider__fill svelte-ct86s2"></div> <!> <!></div> <!> <!></div>`);function _g(e,t){Ze(t,!0);let n=$(t,`value`,3,0),r=$(t,`min`,3,0),i=$(t,`max`,3,100),a=$(t,`step`,3,1),o=$(t,`range`,3,!1),s=$(t,`labels`,3,`none`),c=$(t,`showValue`,3,!1),l=$(t,`disabled`,3,!1),u=$(t,`orientation`,3,`horizontal`);$(t,`invalid`,3,!1);let d=$(t,`required`,3,!1),f=$o(`sv-slider`),p=F(()=>t.id??f),m=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),h=ih({value:()=>n(),onChange:e=>t.onChange?.(e),min:()=>r(),max:()=>i(),step:()=>a(),range:()=>o(),orientation:()=>u(),disabled:()=>l(),ariaLabel:()=>t.ariaLabel??t.label,rtl:()=>H(m)===`rtl`}),g=F(()=>h.lo),_=F(()=>h.hi),v=e=>h.percentOf(e),y=F(()=>t.ticks?Array.isArray(t.ticks)?t.ticks:Array.from({length:t.ticks},(e,n)=>r()+(i()-r())/(t.ticks-1)*n):[]),b=F(()=>s()===`all`?H(y).length?H(y):[r(),i()]:[]),x=null;function S(e){l()||(h.pointerDown({x:e.clientX,y:e.clientY},x.getBoundingClientRect()),x?.setPointerCapture(e.pointerId))}function C(e){h.dragging&&h.setFromPointer({x:e.clientX,y:e.clientY},x.getBoundingClientRect())}function w(e){h.dragging&&(h.endDrag(),x?.releasePointerCapture(e.pointerId))}let T=e=>t.formatValue?t.formatValue(e):String(e);Tc(e,{get id(){return H(p)},get label(){return t.label},get hint(){return t.hint},get error(){return t.error},get required(){return d()},get dir(){return t.dir},children:(e,n)=>{var a=gg();let d;var f=R(a);ca(f,e=>({class:`sv-slider__track`,...e,onpointerdown:S,onpointermove:C,onpointerup:w,onpointercancel:w}),[()=>h.trackProps()],void 0,void 0,`svelte-ct86s2`);var p=R(f);let E;var D=B(p,2);Y(D,16,()=>H(y),e=>e,(e,t)=>{var n=og();let r;V(e=>r=Ui(n,``,r,e),[()=>({"--p":`${v(t)}%`})]),K(e,n)});var O=B(D,2),ee=e=>{var t=lg(),n=z(t);ca(n,(e,t)=>({class:`sv-slider__thumb`,...e,[Yi]:t}),[()=>h.thumbProps(0),()=>({"--p":`${v(H(g))}%`})],void 0,void 0,`svelte-ct86s2`);var r=R(n),i=e=>{var t=sg(),n=R(t,!0);N(t),V(e=>q(n,e),[()=>T(H(g))]),K(e,t)};J(r,e=>{c()&&e(i)}),N(n);var a=B(n,2);ca(a,(e,t)=>({class:`sv-slider__thumb`,...e,[Yi]:t}),[()=>h.thumbProps(1),()=>({"--p":`${v(H(_))}%`})],void 0,void 0,`svelte-ct86s2`);var o=R(a),s=e=>{var t=cg(),n=R(t,!0);N(t),V(e=>q(n,e),[()=>T(H(_))]),K(e,t)};J(o,e=>{c()&&e(s)}),N(a),K(e,t)},te=e=>{var t=dg();ca(t,(e,t)=>({class:`sv-slider__thumb`,...e,[Yi]:t}),[()=>h.thumbProps(0),()=>({"--p":`${v(H(_))}%`})],void 0,void 0,`svelte-ct86s2`);var n=R(t),r=e=>{var t=ug(),n=R(t,!0);N(t),V(e=>q(n,e),[()=>T(H(_))]),K(e,t)};J(n,e=>{c()&&e(r)}),N(t),K(e,t)};J(O,e=>{o()?e(ee):e(te,-1)}),N(f),ya(f,e=>x=e,()=>x);var ne=B(f,2),re=e=>{var t=ii(),n=z(t),a=e=>{var t=fg(),n=R(t),a=R(n,!0);N(n);var o=B(n),s=R(o,!0);N(o),N(t),V((e,t)=>{q(a,e),q(s,t)},[()=>T(r()),()=>T(i())]),K(e,t)},o=e=>{var t=mg();Y(t,20,()=>H(b),e=>e,(e,t)=>{var n=pg();let r;var i=R(n,!0);N(n),V((e,t)=>{r=Ui(n,``,r,e),q(i,t)},[()=>({"--p":`${v(t)}%`}),()=>T(t)]),K(e,n)}),N(t),K(e,t)};J(n,e=>{s()===`endpoints`?e(a):e(o,-1)}),K(e,t)};J(ne,e=>{s()!==`none`&&u()===`horizontal`&&e(re)});var ie=B(ne,2),ae=e=>{var n=hg();Z(n),V(()=>{Q(n,`name`,t.name),ra(n,o()?`${H(g)},${H(_)}`:H(_))}),K(e,n)};J(ie,e=>{t.name&&e(ae)}),N(a),V(e=>{d=X(a,1,`sv-slider sv-slider--${u()??``}`,`svelte-ct86s2`,d,{"is-disabled":l()}),Q(a,`dir`,H(m)),E=Ui(p,``,E,e),a.dir=a.dir},[()=>({"--a":`${o()?v(H(g)):0}%`,"--b":`${o(),v(H(_))}%`})]),K(e,a)},$$slots:{default:!0}}),Qe()}var vg=G(`<path fill="none" stroke-linecap="round"></path>`),yg=G(`<path class="sv-gauge__value svelte-8p5qgu" fill="none" stroke-linecap="round"></path>`),bg=G(`<line class="sv-gauge__needle svelte-8p5qgu" stroke-linecap="round"></line><circle r="5" class="sv-gauge__hub svelte-8p5qgu"></circle>`,1),xg=W(`<div><svg class="sv-gauge__svg svelte-8p5qgu"><path class="sv-gauge__track svelte-8p5qgu" fill="none" stroke-linecap="round"></path><!><!></svg> <div class="sv-gauge__label svelte-8p5qgu"> </div></div>`);function Sg(e,t){Ze(t,!0);let n=$(t,`value`,3,0),r=$(t,`min`,3,0),i=$(t,`max`,3,100),a=$(t,`sweep`,3,270),o=$(t,`bands`,19,()=>[]),s=$(t,`needle`,3,!0),c=$(t,`unit`,3,``),l=$(t,`size`,3,180),u=$(t,`thickness`,3,14),d=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),f=ah({value:()=>n(),min:()=>r(),max:()=>i(),sweep:()=>a(),size:()=>l(),thickness:()=>u(),ariaLabel:()=>t.ariaLabel}),p=F(()=>f.clamped),m=F(()=>f.cx),h=F(()=>f.cy),g=F(()=>f.r),_=(e,t,n)=>f.arcPath(e,t,n),v=F(()=>f.needleEnd),y=F(()=>t.label??`${t.formatValue?t.formatValue(H(p)):Math.round(H(p))}${c()}`);var b=xg();ca(b,e=>({class:`sv-gauge`,dir:H(d),...e}),[()=>f.rootProps()],void 0,void 0,`svelte-8p5qgu`);var x=R(b),S=R(x),C=B(S),w=e=>{var t=ii();Y(z(t),17,o,e=>e.from+`-`+e.to,(e,t)=>{var n=vg();V(e=>{Q(n,`d`,e),Q(n,`stroke`,H(t).color),Q(n,`stroke-width`,u())},[()=>_(H(t).from,H(t).to,H(g))]),K(e,n)}),K(e,t)},T=e=>{var t=yg();V(e=>{Q(t,`d`,e),Q(t,`stroke-width`,u())},[()=>_(r(),H(p),H(g))]),K(e,t)};J(C,e=>{o().length?e(w):e(T,-1)});var E=B(C),D=e=>{var t=bg(),n=z(t),r=B(n);V(()=>{Q(n,`x1`,H(m)),Q(n,`y1`,H(h)),Q(n,`x2`,H(v).x),Q(n,`y2`,H(v).y),Q(r,`cx`,H(m)),Q(r,`cy`,H(h))}),K(e,t)};J(E,e=>{s()&&e(D)}),N(x);var O=B(x,2),ee=R(O,!0);N(O),N(b),V(e=>{Q(x,`viewBox`,`0 0 ${l()} ${l()}`),Q(x,`width`,l()),Q(x,`height`,l()),Q(S,`d`,e),Q(S,`stroke-width`,u()),q(ee,H(y)),b.dir=b.dir},[()=>_(r(),i(),H(g))]),K(e,b),Qe()}var Cg=W(`<button type="button" class="sv-tabs__scroll svelte-9wyacv" tabindex="-1" aria-hidden="true"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button>`),wg=W(`<button type="button" class="sv-tabs__close svelte-9wyacv" tabindex="-1"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M6 6l12 12M18 6L6 18"></path></svg></button>`),Tg=W(`<span role="presentation"><button> </button> <!></span>`),Eg=W(`<button type="button" class="sv-tabs__scroll svelte-9wyacv" tabindex="-1" aria-hidden="true"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"></path></svg></button>`),Dg=W(`<div><!></div>`),Og=W(`<div><div class="sv-tabs__strip svelte-9wyacv"><!> <div></div> <!></div> <!></div>`);function kg(e,t){Ze(t,!0);let n=$(t,`value`,15),r=$(t,`variant`,3,`line`),i=$(t,`activation`,3,`automatic`),a=$(t,`reorderable`,3,!1),o=F(()=>t.tabPosition??(t.orientation===`vertical`?`left`:`top`)),s=F(()=>H(o)===`left`||H(o)===`right`?`vertical`:`horizontal`),c=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),l=I(0),u=I(0),d=I(0),f=F(()=>H(s)===`horizontal`&&H(d)>H(u)+1),p=F(()=>H(l)<=1),m=F(()=>H(l)+H(u)>=H(d)-1);function h(){S&&(L(u,S.clientWidth,!0),L(d,S.scrollWidth,!0),L(l,S.scrollLeft,!0))}Ln(()=>{t.tabs.length,queueMicrotask(h)}),Ln(()=>{let e=()=>h();return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)});function g(e){S?.scrollBy({left:e*Math.max(120,H(u)*.7),behavior:`smooth`})}let _=I(null),v=I(null);function y(e,n){if(e===n)return;let r=t.tabs.map(e=>e.id),i=r.indexOf(e),a=r.indexOf(n);i<0||a<0||(r.splice(a,0,r.splice(i,1)[0]),t.onReorder?.(r))}let b=Qm({tabs:()=>t.tabs,value:()=>n(),onChange:e=>{n(e),t.onChange?.(e)},onClose:e=>t.onClose?.(e),orientation:()=>H(s),activation:()=>i(),dir:()=>t.dir,ariaLabel:()=>t.ariaLabel}),x=F(()=>b.activeId),S=null,C=0;Ln(()=>{if(b.focusTick!==C){C=b.focusTick;let e=b.focusId;queueMicrotask(()=>S?.querySelector(`[data-tab="${e}"]`)?.focus())}});var w=Og(),T=R(w),E=R(T),D=e=>{var t=Cg();V(()=>t.disabled=H(p)),U(`click`,t,()=>g(-1)),K(e,t)};J(E,e=>{H(f)&&e(D)});var O=B(E,2),ee=e=>L(l,e.currentTarget.scrollLeft,!0);ca(O,e=>({class:`sv-tabs__list`,onscroll:ee,...e}),[()=>b.tablistProps()],void 0,void 0,`svelte-9wyacv`),Y(O,21,()=>t.tabs,e=>e.id,(e,t)=>{var n=Tg();let r;var i=R(n);ca(i,e=>({type:`button`,class:`sv-tabs__tab`,...e,[Ji]:{"is-active":H(t).id===H(x)}}),[()=>b.tabProps(H(t).id)],void 0,void 0,`svelte-9wyacv`);var o=R(i,!0);N(i);var s=B(i,2),c=e=>{var n=wg();V(()=>Q(n,`aria-label`,`Close ${H(t).label}`)),U(`click`,n,e=>{e.stopPropagation(),b.close(H(t).id)}),K(e,n)};J(s,e=>{H(t).closable&&e(c)}),N(n),V(()=>{r=X(n,1,`sv-tabs__tabwrap svelte-9wyacv`,null,r,{"is-active":H(t).id===H(x),"is-closable":H(t).closable,"is-drag":H(_)===H(t).id,"is-over":H(v)===H(t).id}),Q(n,`draggable`,a()&&!H(t).disabled),q(o,H(t).label)}),Jr(`dragstart`,n,function(...e){(a()?e=>{L(_,H(t).id,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}:void 0)?.apply(this,e)}),Jr(`dragover`,n,function(...e){(a()?e=>{e.preventDefault(),L(v,H(t).id,!0)}:void 0)?.apply(this,e)}),Jr(`dragleave`,n,function(...e){(a()?()=>{H(v)===H(t).id&&L(v,null)}:void 0)?.apply(this,e)}),Jr(`drop`,n,function(...e){(a()?e=>{e.preventDefault(),H(_)&&y(H(_),H(t).id),L(_,null),L(v,null)}:void 0)?.apply(this,e)}),Jr(`dragend`,n,function(...e){(a()?()=>{L(_,null),L(v,null)}:void 0)?.apply(this,e)}),K(e,n)}),N(O),ya(O,e=>S=e,()=>S);var te=B(O,2),ne=e=>{var t=Eg();V(()=>t.disabled=H(m)),U(`click`,t,()=>g(1)),K(e,t)};J(te,e=>{H(f)&&e(ne)}),N(T);var re=B(T,2),ie=e=>{var n=Dg();ca(n,e=>({class:`sv-tabs__panel`,...e}),[()=>b.panelProps(H(x))],void 0,void 0,`svelte-9wyacv`),bi(R(n),()=>t.panel,()=>H(x)),N(n),K(e,n)};J(re,e=>{t.panel&&e(ie)}),N(w),V(()=>{X(w,1,`sv-tabs sv-tabs--${H(o)??``} sv-tabs--${H(s)??``} sv-tabs--${r()??``}`,`svelte-9wyacv`),Q(w,`dir`,H(c)),w.dir=w.dir}),_a(O,`clientWidth`,e=>L(u,e)),K(e,w),Qe()}Yr([`click`]);var Ag=G(`<svg class="sv-tree__spin svelte-szf0nj" viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M21 12a9 9 0 1 1-6.2-8.6"></path></svg>`),jg=G(`<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-szf0nj"><path d="m9 18 6-6-6-6"></path></svg>`),Mg=G(`<svg viewBox="0 0 16 16" class="svelte-szf0nj"><path d="M3.5 8.5l3 3 6-6.5" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),Ng=G(`<svg viewBox="0 0 16 16" class="svelte-szf0nj"><path d="M4 8h8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"></path></svg>`),Pg=W(`<button type="button" tabindex="-1" aria-hidden="true"><!></button>`),Fg=W(`<input class="sv-tree__edit svelte-szf0nj"/>`),Ig=W(`<span class="sv-tree__label svelte-szf0nj"> </span>`),Lg=W(`<div><button type="button" tabindex="-1"><!></button> <!> <!></div>`),Rg=W(`<button type="button" class="sv-tree__search-clear svelte-szf0nj" aria-label="Clear search">×</button>`),zg=W(`<div class="sv-tree__search svelte-szf0nj"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m21 21-4.3-4.3"></path></svg> <input class="sv-tree__search-input svelte-szf0nj" type="text"/> <!></div>`),Bg=W(`<div class="sv-tree__sizer svelte-szf0nj" aria-hidden="true"></div>`),Vg=W(`<div><!> <div><!> <!></div></div>`);function Hg(e,t){Ze(t,!0);let n=(e,t=S)=>{let n=F(()=>i()?se.checkStateOf(t().node):`unchecked`),a=F(()=>H(_).has(t().node.id));var c=Lg();ca(c,e=>({class:`sv-tree__row`,draggable:d()&&H(b)!==t().node.id&&!t().node.disabled,ondragstart:d()?e=>te(e,t().node):void 0,ondragover:d()?e=>ne(e,t().node):void 0,ondragleave:d()?()=>{H(D)===t().node.id&&(L(D,null),L(O,null))}:void 0,ondrop:d()?e=>re(e,t().node):void 0,ondragend:d()?ie:void 0,ondblclick:u()?()=>C(t().node):void 0,onkeydown:u()?e=>{e.key===`F2`&&(e.preventDefault(),C(t().node))}:void 0,...e,[Ji]:{"is-selected":t().node.id===r(),"is-disabled":t().node.disabled,"is-dragging":H(E)===t().node.id,"drop-before":H(D)===t().node.id&&H(O)===`before`,"drop-after":H(D)===t().node.id&&H(O)===`after`,"drop-inside":H(D)===t().node.id&&H(O)===`inside`},[Yi]:{height:`${s()}px`,"padding-inline-start":`${t().depth*18+6}px`,transform:o()?`translateY(${t().index*s()}px)`:void 0}}),[()=>se.itemProps(t())],void 0,void 0,`svelte-szf0nj`);var l=R(c);let f;var p=R(l),m=e=>{K(e,Ag())},h=e=>{K(e,jg())};J(p,e=>{H(a)?e(m):t().hasChildren&&e(h,1)}),N(l);var g=B(l,2),v=e=>{var r=Pg(),i=R(r),a=e=>{K(e,Mg())},o=e=>{K(e,Ng())};J(i,e=>{H(n)===`checked`?e(a):H(n)===`indeterminate`&&e(o,1)}),N(r),V(()=>X(r,1,`sv-tree__check is-${H(n)??``}`,`svelte-szf0nj`)),U(`click`,r,e=>{e.stopPropagation(),se.toggleCheck(t().node)}),K(e,r)};J(g,e=>{i()&&e(v)});var y=B(g,2),ee=e=>{var t=Fg();Z(t),U(`click`,t,e=>e.stopPropagation()),U(`keydown`,t,e=>{e.key===`Enter`?(e.preventDefault(),w()):e.key===`Escape`&&(e.preventDefault(),T())}),Jr(`blur`,t,w),fa(t,()=>H(x),e=>L(x,e)),K(e,t)},ae=e=>{var n=Ig(),r=R(n,!0);N(n),V(()=>q(r,t().node.label)),K(e,n)};J(y,e=>{H(b)===t().node.id?e(ee):e(ae,-1)}),N(c),V(()=>{f=X(l,1,`sv-tree__twist svelte-szf0nj`,null,f,{"is-open":t().open,"is-leaf":!t().hasChildren,"is-loading":H(a)}),Q(l,`aria-hidden`,!t().hasChildren)}),U(`click`,l,e=>{e.stopPropagation(),se.toggleExpand(t().node)}),K(e,c)},r=$(t,`selected`,3,null),i=$(t,`checkable`,3,!1),a=$(t,`checked`,19,()=>[]),o=$(t,`virtual`,3,!1),s=$(t,`rowHeight`,3,30),c=$(t,`searchable`,3,!1),l=$(t,`searchPlaceholder`,3,`Search...`),u=$(t,`editable`,3,!1),d=$(t,`reorderable`,3,!1),f=F(()=>t.dir===`ltr`||t.dir===`rtl`?t.dir:void 0),p=I(``),m=F(()=>t.filter??(c()?H(p):void 0)),h=F(()=>{if(!t.sort)return t.nodes;let e=typeof t.sort==`function`?t.sort:(e,n)=>(t.sort===`asc`?1:-1)*e.label.localeCompare(n.label);return nh(t.nodes,e)}),g=I(un(new Map)),_=I(un(new Set));function v(e){return e.map(e=>e.lazy&&H(g).has(e.id)?{...e,children:v(H(g).get(e.id)),lazy:!1}:e.children?.length?{...e,children:v(e.children)}:e)}let y=F(()=>v(H(h))),b=I(null),x=I(``);function C(e){!u()||e.disabled||(L(b,e.id,!0),L(x,e.label,!0),Ar().then(()=>H(le)?.querySelector(`.sv-tree__edit`)?.select()))}function w(){if(H(b)==null)return;let e=H(b),n=H(x).trim();L(b,null),n&&t.onRename?.(e,n)}function T(){L(b,null)}let E=I(null),D=I(null),O=I(null);function ee(e,t){let n=e.currentTarget.getBoundingClientRect(),r=(e.clientY-n.top)/n.height,i=!!t.children?.length||!!t.lazy;return r<.3?`before`:r>.7||!i?r>.5?`after`:i?`inside`:`after`:`inside`}function te(e,t){L(E,t.id,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}function ne(e,t){!H(E)||H(E)===t.id||(e.preventDefault(),L(D,t.id,!0),L(O,ee(e,t),!0))}function re(e,n){e.preventDefault(),H(E)&&H(E)!==n.id&&H(O)&&t.onMove?.(H(E),n.id,H(O)),L(E,L(D,L(O,null),!0),!0)}function ie(){L(E,L(D,L(O,null),!0),!0)}function ae(e,t){for(let n of e){if(n.id===t)return n;if(n.children){let e=ae(n.children,t);if(e)return e}}return null}async function oe(e,n){if(t.onToggle?.(e,n),!n||!t.loadChildren)return;let r=ae(H(y),e);if(!(!r?.lazy||H(g).has(e)||H(_).has(e))){L(_,new Set(H(_)).add(e),!0),L(g,new Map(H(g)).set(e,[{id:`${e}__loading`,label:`Loading...`,disabled:!0}]),!0);try{let n=await t.loadChildren(r);L(g,new Map(H(g)).set(e,n),!0)}catch{L(g,new Map(H(g)).set(e,[]),!0)}finally{let t=new Set(H(_));t.delete(e),L(_,t,!0)}}}let se=rh({nodes:()=>H(y),selected:()=>r(),onSelect:e=>t.onSelect?.(e),expandedIds:()=>t.expandedIds,onToggle:oe,checkable:()=>i(),checked:()=>a(),onCheck:e=>t.onCheck?.(e),ariaLabel:()=>t.ariaLabel,dir:()=>t.dir,filter:()=>H(m)}),ce=F(()=>o()||t.height!=null),le=I(null),ue=I(0),k=I(0),A=F(()=>Uh({scrollTop:H(ue),viewportHeight:H(k),rowHeight:s(),count:se.rows.length,overscan:10})),j=F(()=>o()?se.rows.slice(H(A).start,H(A).end):se.rows),de=0;Ln(()=>{if(se.focusTick===de)return;de=se.focusTick;let e=se.activeIndex;if(o()&&H(le)){let t=Wh(e,H(ue),H(le).clientHeight,s());t!==H(ue)&&(H(le).scrollTop=t,L(ue,t,!0))}Ar().then(()=>H(le)?.querySelector(`[data-row="${e}"]`)?.focus())});var M=Vg();let fe;var pe=R(M),me=e=>{var t=zg(),n=B(R(t),2);Z(n);var r=B(n,2),i=e=>{var t=Rg();U(`click`,t,()=>L(p,``)),K(e,t)};J(r,e=>{H(p)&&e(i)}),N(t),V(()=>{Q(n,`placeholder`,l()),Q(n,`aria-label`,l())}),fa(n,()=>H(p),e=>L(p,e)),K(e,t)};J(pe,e=>{c()&&e(me)});var he=B(pe,2);ca(he,e=>({class:`sv-tree`,dir:H(f),onscroll:H(ce)?e=>{L(ue,e.currentTarget.scrollTop,!0),o()&&Dt()}:void 0,...e,[Ji]:{"sv-tree--scroll":H(ce),"is-virtual":o()},[Yi]:{height:t.height==null?void 0:`${t.height}px`}}),[()=>se.treeProps()],void 0,void 0,`svelte-szf0nj`);var ge=R(he),_e=e=>{var t=Bg();let n;V(()=>n=Ui(t,``,n,{height:`${H(A).totalHeight}px`})),K(e,t)};J(ge,e=>{o()&&e(_e)}),Y(B(ge,2),17,()=>H(j),e=>e.node.id,(e,t)=>{n(e,()=>H(t))}),N(he),ya(he,e=>L(le,e),()=>H(le)),N(M),V(()=>{fe=X(M,1,`sv-tree-host svelte-szf0nj`,null,fe,{"has-search":c()}),Q(M,`dir`,H(f)),he.dir=he.dir,M.dir=M.dir}),_a(he,`clientHeight`,e=>L(k,e)),K(e,M),Qe()}Yr([`click`,`keydown`]),Yr([`click`]),Yr([`focusin`,`focusout`]),Yr([`pointerdown`,`pointermove`,`pointerup`,`click`]),Yr([`pointerdown`,`pointermove`,`pointerup`,`click`]);function Ug(){let e=un([]),t=new Map,n=new Map,r=0;function i(e,r){n.set(e,{remaining:r,startedAt:Date.now()}),t.set(e,setTimeout(()=>s(e),r))}function a(e){let r=t.get(e),i=n.get(e);!r||!i||(clearTimeout(r),t.delete(e),i.remaining=Math.max(0,i.remaining-(Date.now()-i.startedAt)))}function o(e){let r=n.get(e);!r||t.has(e)||r.remaining<=0||(r.startedAt=Date.now(),t.set(e,setTimeout(()=>s(e),r.remaining)))}function s(r){let i=e.findIndex(e=>e.id===r);i>=0&&e.splice(i,1);let a=t.get(r);a&&(clearTimeout(a),t.delete(r)),n.delete(r)}function c(){for(let e of t.values())clearTimeout(e);t.clear(),n.clear(),e.splice(0,e.length)}function l(t,n={}){let a=++r,o=n.variant??`info`,s=n.duration??4e3,c={id:a,message:t,variant:o,duration:s,dismissible:n.dismissible??!0,title:n.title};return e.push(c),wm(c.title?`${c.title}: ${t}`:t,{assertive:o===`error`||o===`warning`}),s>0&&i(a,s),a}let u=l;return u.info=(e,t={})=>l(e,{...t,variant:`info`}),u.success=(e,t={})=>l(e,{...t,variant:`success`}),u.warning=(e,t={})=>l(e,{...t,variant:`warning`}),u.error=(e,t={})=>l(e,{...t,variant:`error`}),{get toasts(){return e},toast:u,dismiss:s,clear:c,pause:a,resume:o}}Ug().toast,Yr([`focusin`,`focusout`,`pointerdown`,`pointermove`,`pointerup`,`click`]),Yr([`click`]),Yr([`click`]),Yr([`keydown`,`input`,`pointermove`,`click`]),Yr([`mousedown`,`click`,`input`,`keyup`,`mouseup`]),Yr([`focusin`,`focusout`,`pointerdown`,`pointermove`,`pointerup`,`click`]),Yr([`click`]),Yr([`click`]),Yr([`click`]),Yr([`click`]),Yr([`keydown`,`click`]),Yr([`contextmenu`]),Yr([`click`]),Yr([`keydown`,`click`,`pointerdown`,`pointermove`,`pointerup`]),Yr([`input`]);var Wg=[`#2563eb`,`#16a34a`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#0ea5e9`,`#ec4899`,`#14b8a6`];function Gg(e){return Math.round(e*100)/100}function Kg(e,t){if(e<=0)return 1;let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}var qg=[`#eff6ff`,`#bfdbfe`,`#60a5fa`,`#2563eb`,`#1e3a8a`],Jg=[`#b91c1c`,`#fca5a5`,`#f1f5f9`,`#93c5fd`,`#1d4ed8`],Yg=[`#1c2c4d`,`#1d4ed8`,`#3b82f6`,`#60a5fa`,`#bae6fd`],Xg=[`#f87171`,`#b91c1c`,`#222b3d`,`#1d4ed8`,`#60a5fa`];function Zg(e,t,n,r=`light`){if(Array.isArray(e)&&e.length>=2)return e;let i=r===`dark`;return e===`diverging`||e==null&&t<0&&n>0?i?Xg:Jg:i?Yg:qg}function Qg(e,t){if(!e.length)return`#888`;let n=Math.max(0,Math.min(1,t));if(e.length===1)return e[0];let r=n*(e.length-1),i=Math.floor(r),a=r-i,o=$g(e[i]),s=$g(e[Math.min(e.length-1,i+1)]);if(!o||!s)return e[i]??`#888`;let c=(e,t)=>Math.round(e+(t-e)*a),l=e=>e.toString(16).padStart(2,`0`);return`#`+l(c(o.r,s.r))+l(c(o.g,s.g))+l(c(o.b,s.b))}function $g(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function e_(e){let t=$g(e);if(!t)return`#0f172a`;let n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*n(t.r)+.7152*n(t.g)+.0722*n(t.b)>.5?`#0f172a`:`#ffffff`}function t_(e,t){(!Number.isFinite(e)||e<=0)&&(e=1),(!Number.isFinite(t)||t<=e)&&(t=e*10);let n=Math.floor(Math.log10(e)),r=Math.ceil(Math.log10(t)),i=[];for(let e=n;e<=r;e+=1)i.push(10**e);return{min:10**n,max:10**r,step:10,ticks:i}}function n_(e,t,n,r){return Number.isFinite(e)?r?e<=0||t<=0?null:(Math.log10(e)-Math.log10(t))/(Math.log10(n)-Math.log10(t)):(e-t)/(n-t):null}function r_(e,t){if(!t){let t=``,n=!1;for(let r of e){if(!r.defined){n=!1;continue}t+=`${n?`L`:`M`}${r.x},${r.y} `,n=!0}return t.trim()}let n=[],r=[];for(let t of e)t.defined?r.push({x:t.x,y:t.y}):r.length&&(n.push(r),r=[]);return r.length&&n.push(r),n.map(i_).filter(Boolean).join(` `)}function i_(e){let t=e.length;if(t===0)return``;if(t===1)return`M${e[0].x},${e[0].y}`;if(t===2)return`M${e[0].x},${e[0].y} L${e[1].x},${e[1].y}`;let n=Array(t-1),r=Array(t-1);for(let i=0;i<t-1;i+=1){let t=e[i+1].x-e[i].x;n[i]=t,r[i]=t===0?0:(e[i+1].y-e[i].y)/t}let i=Array(t);i[0]=r[0],i[t-1]=r[t-2];for(let e=1;e<t-1;e+=1)r[e-1]*r[e]<=0?i[e]=0:i[e]=(r[e-1]+r[e])/2;for(let e=0;e<t-1;e+=1){if(r[e]===0){i[e]=0,i[e+1]=0;continue}let t=i[e]/r[e],n=i[e+1]/r[e],a=Math.hypot(t,n);a>3&&(i[e]=3/a*t*r[e],i[e+1]=3/a*n*r[e])}let a=`M${e[0].x},${e[0].y}`;for(let r=0;r<t-1;r+=1){let t=n[r],o=e[r].x+t/3,s=e[r].y+i[r]*t/3,c=e[r+1].x-t/3,l=e[r+1].y-i[r+1]*t/3;a+=` C${o},${s} ${c},${l} ${e[r+1].x},${e[r+1].y}`}return a}function a_(e){let t=0,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o+=1){let s=e[o];Number.isFinite(s)&&(t+=1,n+=o,r+=s,i+=o*o,a+=o*s)}if(t<2)return e.map(()=>NaN);let o=t*i-n*n;if(o===0)return e.map(()=>r/t);let s=(t*a-n*r)/o,c=(r-s*n)/t;return e.map((e,t)=>s*t+c)}function o_(e,t){if(t<1)return e.slice();let n=Array(e.length).fill(NaN),r=0,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];if(Number.isFinite(o)&&(r+=o,i+=1),a>=t){let n=e[a-t];Number.isFinite(n)&&(r-=n,--i)}a>=t-1&&i>0&&(n[a]=r/i)}return n}function s_(e,t){let n=2/(Math.max(1,t)+1),r=Array(e.length).fill(NaN),i=null;for(let t=0;t<e.length;t+=1){let a=e[t];if(!Number.isFinite(a)){r[t]=i??NaN;continue}i=i==null?a:n*a+(1-n)*i,r[t]=i}return r}function c_(e,t){if(t===`linear`)return a_(e);let n=/^(sma|ema):(\d+)$/.exec(t);if(!n)return e.map(()=>NaN);let r=Number(n[2]);return n[1]===`ema`?s_(e,r):o_(e,r)}function l_(e,t,n=4){(!Number.isFinite(e)||!Number.isFinite(t))&&(e=0,t=1),e===t&&(e===0?t=1:(e=Math.min(0,e),t=Math.max(0,t)),e===t&&(t=e+1));let r=Kg(Kg(t-e,!1)/Math.max(1,n),!0),i=Math.floor(e/r)*r,a=Math.ceil(t/r)*r,o=[];for(let e=i;e<=a+r*.5;e+=r)o.push(Gg(e));return{min:i,max:a,step:r,ticks:o}}function u_(e){let t=Math.abs(e);return t>=1e6?`${(e/1e6).toFixed(t%1e6?1:0)}M`:t>=1e3?`${(e/1e3).toFixed(t%1e3?1:0)}k`:String(Math.round(e*100)/100)}var d_=864e5;function f_(e,t){let n=t-e,r=n<=7*d_?d_:n<=70*d_?7*d_:n<=800*d_?30*d_:365*d_,i=[];for(let n=Math.ceil(e/r)*r;n<=t+1;n+=r)i.push(n);return i.length||i.push(e,t),i}function p_(e,t){let n=new Date(e);return t<=70*d_?n.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):t<=800*d_?n.toLocaleDateString(void 0,{month:`short`,year:`2-digit`}):String(n.getFullYear())}function m_(e,t,n,r=[],i=!1){let a=1/0,o=-1/0,s=e=>{Number.isFinite(e)&&(i&&e<=0||(e<a&&(a=e),e>o&&(o=e)))};for(let e of r)s(e);let c=e.filter(e=>e.kind===`bar`||e.kind===`area`),l=e.filter(e=>e.kind===`line`);if(n&&c.length)for(let e=0;e<t.length;e+=1){let t=0,n=0;for(let r of c){let i=r.values[e]??0;i>=0?t+=i:n+=i}s(t),s(n)}else for(let e of c)for(let t of e.values)s(t);for(let e of l)for(let t of e.values)s(t);return a===1/0&&(a=+!!i,o=i?10:1),c.length&&!i&&(a=Math.min(a,0),o=Math.max(o,0)),i?t_(a,o):l_(a,o)}function h_(e,t=`light`){let n=e.width??520,r=e.height??300,i=e.palette??Wg,a=!!(e.stacked||e.stacked100),o=e.series.map((t,n)=>({...t,color:t.color??i[n%i.length],kind:t.type??(e.type===`pie`||e.type===`scatter`?`bar`:e.type),axis:t.axis??`left`})),s=o.map(e=>({label:e.label,color:e.color})),c={type:e.type,width:n,height:r,plot:{x:0,y:0,w:n,h:r},bars:[],lines:[],slices:[],yTicks:[],y2Ticks:[],hasRightAxis:!1,xTicks:[],xLabelRotated:!1,legend:s,donut:null,referenceLines:[],scatterPoints:[],orientation:`vertical`,valueTicks:[],catTicks:[],referenceLinesV:[],overlays:[],annotations:[],heatmapCells:[],heatmapRowTicks:[],heatmapColTicks:[],heatmapLegend:[],funnelSegments:[],radarRings:[],radarAxes:[],radarSeries:[],radarCenter:null,treemapCells:[],calendarCells:[],calendarMonthTicks:[],calendarLegend:[],gauge:null,sankeyNodes:[],sankeyLinks:[]};if(e.type===`waterfall`){let t=o[0];if(!t)return{...c};let i=e.waterfallColors??{},a=i.positive??`#16a34a`,s=i.negative??`#ef4444`,l=i.total??`#475569`,u=e.categories.reduce((e,t)=>Math.max(e,t.length),0),d=e.categories.length>8||u>9,f=48+(e.yAxisTitle?16:0),p=(d?54:28)+(e.xAxisTitle?16:0),m=Math.max(1,n-f-12),h=Math.max(1,r-10-p),g={x:f,y:10,w:m,h},_=e.waterfallTotals??[],v=[],y=0;e.categories.forEach((e,n)=>{let r=t.values[n]??0;_[n]?v.push({from:0,to:y,value:y,isTotal:!0}):(v.push({from:y,to:y+r,value:r,isTotal:!1}),y+=r)});let b=0,x=0;for(let e of v)e.from<b&&(b=e.from),e.to<b&&(b=e.to),e.from>x&&(x=e.from),e.to>x&&(x=e.to);let S=l_(b,x),C=e=>Gg(10+h-(e-S.min)/(S.max-S.min||1)*h),w=m/Math.max(1,e.categories.length),T=w*.2,E=Math.max(1,w-T),D=v.map((n,r)=>{let i=C(Math.max(n.from,n.to)),o=C(Math.min(n.from,n.to)),c=f+w*r+T/2,u=n.isTotal?l:n.value>=0?a:s;return{x:Gg(c),y:i,w:Gg(E),h:Math.max(1,o-i),color:u,label:e.categories[r]??String(r),series:t.label,value:n.value}}),O=[{path:v.map((e,t)=>{let n=f+w*t+T/2+E,r=C(e.to),i=f+w*(t+1)+T/2;return t<v.length-1?`M${n},${r} L${i},${r}`:``}).filter(Boolean).join(` `),areaPath:``,color:`var(--sg-muted, #94a3b8)`,label:``,points:[]}],ee=e.categories.map((e,t)=>({label:e,x:Gg(f+w*t+w/2)})),te=S.ticks.map(e=>({value:e,y:C(e),label:u_(e)}));return{...c,plot:g,bars:D,lines:O,yTicks:te,xTicks:ee,xLabelRotated:d}}if(e.type===`funnel`){let t=o[0];if(!t||!t.values.length)return{...c};let i=Math.max(1,n-20-20),a=Math.max(1,r-16-16),s={x:20,y:16,w:i,h:a},l=a/t.values.length,u=Math.max(...t.values.map(e=>Number.isFinite(e)?e:0)),d=t.values[0]??0,f=e=>u>0?e/u*i:0,p=20+i/2,m=e.palette??Wg,h=t.values.map((n,r)=>{let i=t.values[r+1]??n*.8,a=f(n),o=f(i),s=16+l*r,c=s+l,u=`M${p-a/2},${s} L${p+a/2},${s} L${p+o/2},${c} L${p-o/2},${c} Z`,h=t.color??m[r%m.length];return{path:u,color:h,label:e.categories[r]??t.label,value:n,conversion:d>0?n/d:0,dropoff:r===0?0:(t.values[r-1]??n)>0?1-n/(t.values[r-1]??n):0,cx:p,cy:(s+c)/2,textColor:e_(h)}});return{...c,plot:s,funnelSegments:h}}if(e.type===`radar`){if(!o.length||!e.categories.length)return{...c};let t=Math.max(1,n-30-30),i=Math.max(1,r-24-24),a={x:30,y:24,w:t,h:i},s=30+t/2,l=24+i/2,u=Math.max(20,Math.min(t,i)/2-20),d=e.categories,f=d.length,p=0;for(let e of o)for(let t of e.values)Number.isFinite(t)&&t>p&&(p=t);p===0&&(p=1);let m=Array.from({length:5},(e,t)=>(t+1)/5*p),h=e=>-Math.PI/2+e/f*Math.PI*2,g=(e,t)=>{let n=t/p,r=h(e);return{x:Gg(s+u*n*Math.cos(r)),y:Gg(l+u*n*Math.sin(r))}},_=d.map((e,t)=>{let n=g(t,p);return{label:e,x:n.x,y:n.y}}),v=o.map((t,n)=>{let r=t.values.map((e,t)=>{let n=g(t,Number.isFinite(e)?e:0);return{x:n.x,y:n.y,value:e,axis:d[t]??``}}),i=r.length?r.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)+` Z`:``,a=e.palette??Wg;return{label:t.label,color:t.color??a[n%a.length],path:i,points:r}});return{...c,plot:a,radarRings:m,radarAxes:_,radarSeries:v,radarCenter:{cx:s,cy:l,r:u}}}if(e.type===`calendar`){let i=e.calendarValues??[];if(!i.length&&!e.calendarStart)return{...c};let a=new Map,o=1/0,s=-1/0;for(let e of i)a.set(e.date,e.value),Number.isFinite(e.value)&&(e.value<o&&(o=e.value),e.value>s&&(s=e.value));o===1/0&&(o=0,s=1),o===s&&(s=o+1);let l=Zg(e.colorScale,o,s,t),u=e=>Qg(l,(e-o)/(s-o)),d=i.map(e=>e.date).sort(),f=e.calendarStart??d[0]??`2026-01-01`,p=e.calendarEnd??d[d.length-1]??f,m=new Date(f+`T00:00:00Z`),h=new Date(p+`T00:00:00Z`);m.setUTCDate(m.getUTCDate()-m.getUTCDay()),h.setUTCDate(h.getUTCDate()+(6-h.getUTCDay()));let g=Math.round((h.getTime()-m.getTime())/864e5)+1,_=Math.ceil(g/7),v=Math.max(1,n-36-80),y=Math.max(1,r-26-16),b=Math.floor(v/_),x=Math.floor(y/7),S=Math.max(6,Math.min(b,x)),C={x:36,y:26,w:S*_,h:S*7},w=[],T=-1,E=[];for(let e=0;e<g;e+=1){let t=new Date(m.getTime()+e*864e5),n=Math.floor(e/7),r=e%7,i=t.toISOString().slice(0,10),o=a.has(i),s=a.get(i)??0;w.push({x:36+n*S,y:26+r*S,size:S,date:i,value:s,defined:o,color:o?u(s):`transparent`}),t.getUTCDate()===1&&t.getUTCMonth()!==T&&(T=t.getUTCMonth(),E.push({label:t.toLocaleDateString(void 0,{month:`short`}),x:36+n*S}))}let D=Array.from({length:5},(e,t)=>{let n=t/4,r=o+(s-o)*n;return{value:r,color:u(r),label:u_(r)}});return{...c,plot:C,calendarCells:w,calendarMonthTicks:E,calendarLegend:D}}if(e.type===`gauge`){let t=e.gaugeMin??0,i=e.gaugeMax??100,a=Math.max(t,Math.min(i,e.gaugeValue??0)),o=e.gaugeTarget,s=n/2,l=r*.78,u=Math.min(n*.42,r*.65),d=Math.PI,f=2*Math.PI,p=e=>d+(e-t)/(i-t||1)*(f-d),m=(e,t,n)=>{let r=s+n*Math.cos(e),i=l+n*Math.sin(e),a=s+n*Math.cos(t),o=l+n*Math.sin(t);return`M${r},${i} A${n},${n} 0 ${+(t-e>Math.PI)} 1 ${a},${o}`},h=m(d,f,u),g=m(d,p(a),u),_=(e.gaugeRanges??[]).map(e=>({path:m(p(e.from),p(e.to),u-9),color:e.color,from:e.from,to:e.to})),v=null;if(o!=null&&Number.isFinite(o)){let e=p(Math.max(t,Math.min(i,o))),n=u-12,r=u+4;v={x1:s+n*Math.cos(e),y1:l+n*Math.sin(e),x2:s+r*Math.cos(e),y2:l+r*Math.sin(e)}}let y=[];for(let e=0;e<=20;e++){let t=d+e/20*(f-d),n=e%5==0,r=u+9,i=u+(n?17:13);y.push({x1:s+r*Math.cos(t),y1:l+r*Math.sin(t),x2:s+i*Math.cos(t),y2:l+i*Math.sin(t),major:n})}let b=p(a),x=u-16,S=b+Math.PI/2,C=(e,t)=>`${Gg(s+e*Math.cos(t))},${Gg(l+e*Math.sin(t))}`,w=`M${C(6,S)} L${C(x,b)} L${C(6,S+Math.PI)} L${C(18,b+Math.PI)} Z`,T=null;for(let t of e.gaugeRanges??[])a>=t.from&&a<=t.to&&(T=t.color);return{...c,plot:{x:0,y:0,w:n,h:r},gauge:{cx:s,cy:l,r:u,trackPath:h,valuePath:g,rangePaths:_,target:v,ticks:y,needle:{path:w,hubR:7},valueColor:T,minLabel:{x:s-u,y:l+20},maxLabel:{x:s+u,y:l+20},value:a,min:t,max:i,unit:e.gaugeUnit??``}}}if(e.type===`treemap`){let t=e.treemap;if(!t)return{...c};let i=Math.max(1,n-4-4),a=Math.max(1,r-4-4),o={x:4,y:4,w:i,h:a},s=e.palette??Wg,l=[];function u(e){return e.children?.length?e.children.reduce((e,t)=>e+u(t),0):Math.max(0,e.value??0)}function d(e,t,n,r,i,a){if(!e.length||r<=0||i<=0)return;let o=e.map(u),c=o.reduce((e,t)=>e+t,0);if(c<=0)return;let f=e.map((e,t)=>({node:e,value:o[t]})).sort((e,t)=>t.value-e.value),p=t,m=n,h=r,g=i,_=c,v=[],y=(e,t,n,r)=>{if(n<=0)return 1/0;let i=n*r/t,a=0;for(let n of e){let e=n*r/i,o=Math.max(t/e,e/t);o>a&&(a=o)}return a};function b(){if(!v.length)return;let e=v.reduce((e,t)=>e+t.value,0),t=h*g/_,n=h>=g,r=n?g:h,i=e*t/r,o=0;for(let e of v){let r=e.value*t/i,c=n?p:p+o,u=n?m+o:m,f=n?i:r,h=n?r:i,g=e.node.color??s[(a+l.length)%s.length];if(e.node.children?.length){l.push({x:Gg(c),y:Gg(u),w:Gg(f),h:Gg(h),color:g,textColor:e_(g),name:e.node.name,value:e.value,depth:a});let t=Math.min(18,h*.25);d(e.node.children,c+1,u+t,f-2,h-t-1,a+1)}else l.push({x:Gg(c),y:Gg(u),w:Gg(f),h:Gg(h),color:g,textColor:e_(g),name:e.node.name,value:e.value,depth:a});o+=r}n?(p+=i,h-=i):(m+=i,g-=i),_-=e,v=[]}for(let e of f){let t=h*g/_,n=Math.min(h,g),r=v.reduce((e,t)=>e+t.value,0),i=y(v.map(e=>e.value),n,r,t),a=y([...v.map(e=>e.value),e.value],n,r+e.value,t);v.length&&a>i&&b(),v.push(e)}b()}return d(t.children??[t],4,4,i,a,0),{...c,plot:o,treemapCells:l}}if(e.type===`sankey`){let t=e.sankeyNodes??[],i=e.sankeyLinks??[];if(!t.length||!i.length)return{...c};let a=Math.max(1,n-10-10),o=Math.max(1,r-14-14),s={x:10,y:14,w:a,h:o},l=e.palette??Wg,u=new Map(t.map(e=>[e.id,e])),d=new Set(i.map(e=>e.target)),f=t.filter(e=>!d.has(e.id)),p=new Map;function m(e,t,n){if(!n.has(e)){n.add(e),(t>(p.get(e)??0)||!p.has(e))&&p.set(e,t);for(let r of i)r.source===e&&m(r.target,t+1,n);n.delete(e)}}for(let e of f)m(e.id,0,new Set);for(let e of t)p.has(e.id)||p.set(e.id,0);let h=Math.max(...p.values())+1,g=h>1?(a-14*h)/(h-1):0,_=new Map,v=new Map;for(let e of i)_.set(e.target,(_.get(e.target)??0)+e.value),v.set(e.source,(v.get(e.source)??0)+e.value);let y=new Map;for(let e of t){let t=p.get(e.id)??0,n=y.get(t)??[];n.push(e.id),y.set(t,n)}let b=0;for(let e of y.values()){let t=e.reduce((e,t)=>e+Math.max(_.get(t)??0,v.get(t)??0),0);t>b&&(b=t)}if(b===0)return{...c,plot:s};let x=(o-64)/b,S=[];for(let[e,t]of y){let n=t.map(e=>Math.max(8,Math.max(_.get(e)??0,v.get(e)??0)*x)),r=14+(o-(n.reduce((e,t)=>e+t,0)+8*(t.length-1)))/2,i=10+e*(14+g);t.forEach((t,a)=>{let o=u.get(t),s=n[a];S.push({id:t,label:o.label??t,color:o.color??l[S.length%l.length],x:i,y:r,w:14,h:s,column:e,totalIn:_.get(t)??0,totalOut:v.get(t)??0}),r+=s+8})}let C=new Map(S.map(e=>[e.id,e])),w=new Map,T=new Map,E=[],D=i.slice().sort((e,t)=>t.value-e.value);for(let e of D){let t=C.get(e.source),n=C.get(e.target);if(!t||!n)continue;let r=Math.max(1,e.value*x),i=t.y+(T.get(t.id)??0)+r/2,a=n.y+(w.get(n.id)??0)+r/2;T.set(t.id,(T.get(t.id)??0)+r),w.set(n.id,(w.get(n.id)??0)+r);let o=t.x+t.w,s=n.x,c=(o+s)/2,l=`M${o},${i} C${c},${i} ${c},${a} ${s},${a}`;E.push({path:l,color:e.color??t.color,width:r,source:e.source,target:e.target,value:e.value})}return{...c,plot:s,sankeyNodes:S,sankeyLinks:E}}if(e.type===`heatmap`){if(!o.length||!e.categories.length)return{...c,plot:{x:0,y:0,w:n,h:r}};let i=o.reduce((e,t)=>Math.max(e,t.label.length),0),a=12+Math.min(180,Math.max(60,i*7)),s=Math.max(1,n-a-64),l=Math.max(1,r-12-32),u={x:a,y:12,w:s,h:l},d=s/e.categories.length,f=l/o.length,p=1/0,m=-1/0;for(let e of o)for(let t of e.values)Number.isFinite(t)&&(t<p&&(p=t),t>m&&(m=t));p===1/0&&(p=0,m=1),p===m&&(m=p+1);let h=Zg(e.colorScale,p,m,t),g=e=>Qg(h,(e-p)/(m-p)),_=[];o.forEach((t,n)=>{t.values.forEach((r,i)=>{if(!Number.isFinite(r))return;let o=g(r);_.push({x:Gg(a+d*i),y:Gg(12+f*n),w:Gg(d),h:Gg(f),color:o,textColor:e_(o),value:r,rowLabel:t.label,colLabel:e.categories[i]??``})})});let v=o.map((e,t)=>({value:t,y:Gg(12+f*t+f/2),label:e.label})),y=e.categories.map((e,t)=>({label:e,x:Gg(a+d*t+d/2)})),b=Array.from({length:5},(e,t)=>{let n=t/4,r=p+(m-p)*n;return{value:r,color:g(r),label:u_(r)}});return{...c,plot:u,heatmapCells:_,heatmapRowTicks:v,heatmapColTicks:y,heatmapLegend:b}}if(e.type===`pie`){let t=o[0];if(!t)return c;let a=t.values.reduce((e,t)=>e+Math.max(0,t),0)||1,s=n/2,l=r/2,u=Math.min(n,r)/2-10,d=u*Math.min(.9,Math.max(0,e.innerRadius??0)),f=-Math.PI/2,p=t.values.map((t,n)=>{let r=Math.max(0,t)/a,o=f,c=f+r*Math.PI*2;f=c;let p=+(c-o>Math.PI),m=(o+c)/2,h=(u+d)/2||u*.6,g=s+u*Math.cos(o),_=l+u*Math.sin(o),v=s+u*Math.cos(c),y=l+u*Math.sin(c),b;if(r>=.999)b=d?`M${Gg(s-u)},${Gg(l)} A${u},${u} 0 1 1 ${Gg(s+u)},${Gg(l)} A${u},${u} 0 1 1 ${Gg(s-u)},${Gg(l)} ZM${Gg(s-d)},${Gg(l)} A${d},${d} 0 1 0 ${Gg(s+d)},${Gg(l)} A${d},${d} 0 1 0 ${Gg(s-d)},${Gg(l)} Z`:`M${Gg(s-u)},${Gg(l)} A${u},${u} 0 1 1 ${Gg(s+u)},${Gg(l)} A${u},${u} 0 1 1 ${Gg(s-u)},${Gg(l)} Z`;else if(d>0){let e=s+d*Math.cos(o),t=l+d*Math.sin(o),n=s+d*Math.cos(c),r=l+d*Math.sin(c);b=`M${Gg(g)},${Gg(_)} A${u},${u} 0 ${p} 1 ${Gg(v)},${Gg(y)} L${Gg(n)},${Gg(r)} A${d},${d} 0 ${p} 0 ${Gg(e)},${Gg(t)} Z`}else b=`M${Gg(s)},${Gg(l)} L${Gg(g)},${Gg(_)} A${u},${u} 0 ${p} 1 ${Gg(v)},${Gg(y)} Z`;return{path:b,color:i[n%i.length],label:e.categories[n]??String(n),value:t,percent:r*100,cx:Gg(s+h*Math.cos(m)),cy:Gg(l+h*Math.sin(m))}});return{...c,slices:p,legend:e.categories.map((e,t)=>({label:e,color:i[t%i.length]})),donut:d>0?{cx:Gg(s),cy:Gg(l),r:Gg(d),total:t.values.reduce((e,t)=>e+Math.max(0,t),0)}:null}}if(e.type===`scatter`){let t=48+(e.yAxisTitle?16:0),i=28+(e.xAxisTitle?16:0),a=Math.max(1,n-t-12),s=Math.max(1,r-10-i),l={x:t,y:10,w:a,h:s},u=1/0,d=-1/0,f=1/0,p=-1/0,m=1/0,h=-1/0;for(let e of o)for(let t of e.points??[])Number.isFinite(t.x)&&(u=Math.min(u,t.x),d=Math.max(d,t.x)),Number.isFinite(t.y)&&(f=Math.min(f,t.y),p=Math.max(p,t.y)),t.r!=null&&Number.isFinite(t.r)&&(m=Math.min(m,t.r),h=Math.max(h,t.r));if(u===1/0)return{...c,plot:l};let g=l_(u,d),_=l_(f,p),v=h>m,y=e=>Gg(t+(e-g.min)/(g.max-g.min||1)*a),b=e=>Gg(10+s-(e-_.min)/(_.max-_.min||1)*s),x=e=>v&&e!=null&&Number.isFinite(e)?Gg(4+(e-m)/(h-m||1)*14):5,S=[];for(let e of o)for(let t of e.points??[])!Number.isFinite(t.x)||!Number.isFinite(t.y)||S.push({cx:y(t.x),cy:b(t.y),r:x(t.r),color:e.color,label:t.label??``,series:e.label,x:t.x,y:t.y});let C=(e.referenceLines??[]).map(e=>({y:b(e.value),label:e.label??u_(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1}));return{...c,plot:l,scatterPoints:S,referenceLines:C,yTicks:_.ticks.map(e=>({value:e,y:b(e),label:u_(e)})),xTicks:g.ticks.map(e=>({label:u_(e),x:y(e)}))}}if(e.orientation===`horizontal`&&o.length>0&&o.every(e=>e.kind===`bar`)){let t=e.categories.reduce((e,t)=>Math.max(e,t.length),0),i=Math.min(150,18+t*6.4)+(e.yAxisTitle?16:0),s=26+(e.xAxisTitle?16:0),l=Math.max(1,n-i-16),u=Math.max(1,r-8-s),d={x:i,y:8,w:l,h:u},f=(e.referenceLines??[]).map(e=>e.value),p=e.stacked100?l_(0,100):m_(o,e.categories,a,f),m=e=>Gg(i+(e-p.min)/(p.max-p.min||1)*l),h=e.categories.length,g=u/Math.max(1,h),_=g*.2,v=g-_,y=e=>8+g*e+_/2,b=m(Math.min(Math.max(0,p.min),p.max)),x=[];if(a){let t=e.stacked100?e.categories.map((e,t)=>o.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,n=Array(h).fill(0),r=Array(h).fill(0);for(let i of o)i.values.forEach((a,o)=>{if(!Number.isFinite(a))return;let s=t?a/t[o]*100:a,c,l;s>=0?(c=m(n[o]),l=m(n[o]+s),n[o]+=s):(c=m(r[o]+s),l=m(r[o]),r[o]+=s),x.push({x:Math.min(c,l),y:Gg(y(o)),w:Gg(Math.abs(l-c)),h:Gg(Math.max(1,v)),color:i.color,label:e.categories[o]??String(o),series:i.label,value:a})})}else{let t=v/o.length;o.forEach((n,r)=>{n.values.forEach((i,a)=>{if(!Number.isFinite(i))return;let o=m(i);x.push({x:Math.min(o,b),y:Gg(y(a)+t*r),w:Gg(Math.max(1,Math.abs(o-b))),h:Gg(Math.max(1,t-1)),color:n.color,label:e.categories[a]??String(a),series:n.label,value:i})})})}let S=p.ticks.map(t=>({label:e.stacked100?`${u_(t)}%`:u_(t),x:m(t)})),C=e.categories.map((e,t)=>({value:t,y:Gg(y(t)+v/2),label:e})),w=(e.referenceLines??[]).map(e=>({x:m(e.value),label:e.label??u_(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1}));return{...c,plot:d,bars:x,orientation:`horizontal`,valueTicks:S,catTicks:C,referenceLinesV:w,xLabelRotated:!1}}let l=o.filter(e=>e.axis===`left`),u=o.filter(e=>e.axis===`right`),d=u.length>0,f=e.categories.reduce((e,t)=>Math.max(e,t.length),0),p=e.categories.length>8||f>9,m=48+(e.yAxisTitle?16:0),h=(d?48:12)+(e.y2AxisTitle?16:0),g=(p?54:28)+(e.xAxisTitle?16:0),_=Math.max(1,n-m-h),v=Math.max(1,r-10-g),y={x:m,y:10,w:_,h:v},b=(e.referenceLines??[]).filter(e=>e.axis!==`right`).map(e=>e.value),x=(e.referenceLines??[]).filter(e=>e.axis===`right`).map(e=>e.value),S=e.yScale===`log`,C=e.y2Scale===`log`,w=e.stacked100?l_(0,100):m_(l,e.categories,a,b,S),T=d?e.stacked100?l_(0,100):m_(u,e.categories,a,x,C):null,E=(e,t,n=!1)=>{let r=n_(t,e.min,e.max,n);return r===null?NaN:Gg(10+v-r*v)},D=e=>E(w,e,S),O=e=>E(T??w,e,C),ee=e=>e.axis===`right`?T??w:w,te=e=>e.axis===`right`?C:S,ne=e.categories.length,re=_/Math.max(1,ne),ie=e.xType===`time`?e.categories.map(e=>Date.parse(e)):null,ae=!!ie&&ie.some(e=>Number.isFinite(e)),oe=ae?Math.min(...ie.filter(Number.isFinite)):0,se=ae&&Math.max(...ie.filter(Number.isFinite))-oe||1,ce=e=>ae&&Number.isFinite(ie[e])?Gg(m+(ie[e]-oe)/se*_):Gg(m+re*e+re/2),le=ae?f_(oe,oe+se).map(e=>({label:p_(e,se),x:Gg(m+(e-oe)/se*_)})):e.categories.map((e,t)=>({label:e,x:ce(t)})),ue=o.filter(e=>e.kind===`bar`),k=[];if(ue.length){let t=re*.2;if(a){let n=re-t,r=e=>m+re*e+t/2;for(let t of[`left`,`right`]){let i=ue.filter(e=>e.axis===t);if(!i.length)continue;let a=t===`right`?O:D,o=e.stacked100?e.categories.map((e,t)=>i.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,s=Array(ne).fill(0),c=Array(ne).fill(0);for(let t of i)t.values.forEach((i,l)=>{if(!Number.isFinite(i))return;let u=o?i/o[l]*100:i,d,f;u>=0?(d=a(s[l]+u),f=a(s[l]),s[l]+=u):(d=a(c[l]),f=a(c[l]+u),c[l]+=u),k.push({x:Gg(r(l)),y:Math.min(d,f),w:Gg(Math.max(1,n)),h:Gg(Math.abs(f-d)),color:t.color,label:e.categories[l]??String(l),series:t.label,value:i})})}}else{let n=(re-t)/ue.length;ue.forEach((r,i)=>{let a=ee(r),o=te(r),s=o?E(a,a.min,o):E(a,Math.min(Math.max(0,a.min),a.max),o);r.values.forEach((c,l)=>{if(!Number.isFinite(c)||o&&c<=0)return;let u=m+re*l+t/2+n*i,d=E(a,c,o);k.push({x:Gg(u),y:Math.min(d,s),w:Gg(Math.max(1,n-1)),h:Gg(Math.max(1,Math.abs(d-s))),color:r.color,label:e.categories[l]??String(l),series:r.label,value:c})})})}}let A=[],j={left:Array(ne).fill(0),right:Array(ne).fill(0)},de={left:null,right:null};if(e.stacked100)for(let t of[`left`,`right`]){let n=o.filter(e=>e.kind===`area`&&e.axis===t);n.length&&(de[t]=e.categories.map((e,t)=>n.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1))}for(let t of o){if(t.kind===`bar`)continue;let n=ee(t),r=te(t),i=e=>E(n,e,r),o=a&&t.kind===`area`,s=e=>ce(e),c,l=null;if(o){let n=j[t.axis],r=n.slice(),a=de[t.axis];c=t.values.map((t,r)=>{let o=Number.isFinite(t)?t:0,c=a?o/a[r]*100:o,l=(n[r]??0)+c;return n[r]=l,{x:s(r),y:i(l),label:e.categories[r]??String(r),value:t,defined:Number.isFinite(t)}}),l=r.map((e,t)=>({x:s(t),y:i(e)}))}else c=t.values.map((t,n)=>{let r=Number.isFinite(t);return{x:s(n),y:r?i(t):NaN,label:e.categories[n]??String(n),value:t,defined:r}});let u=!!t.smooth,d=r_(c,u),f=``;if(t.kind===`area`&&c.length)if(l)f=`${u?i_(c.map(e=>({x:e.x,y:e.y}))):c.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)} ${u?`L${l[l.length-1].x},${l[l.length-1].y} `+i_(l.slice().reverse()).replace(/^M[^ ]+ /,``):l.slice().reverse().map(e=>`L${e.x},${e.y}`).join(` `)} Z`;else{let e=Gg(i(Math.min(Math.max(0,n.min),n.max))),t=[],r=[];for(let e of c)e.defined?r.push(e):r.length&&(t.push(r),r=[]);r.length&&t.push(r),f=t.map(t=>`${u?i_(t.map(e=>({x:e.x,y:e.y}))):t.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)} L${t[t.length-1].x},${e} L${t[0].x},${e} Z`).join(` `)}let p=``;if(t.upperValues?.length===t.values.length&&t.lowerValues?.length===t.values.length){let e=[],n=[];for(let a=0;a<t.values.length;a+=1){let o=t.upperValues[a],c=t.lowerValues[a];!Number.isFinite(o)||!Number.isFinite(c)||r&&(o<=0||c<=0)||(e.push({x:s(a),y:i(o)}),n.push({x:s(a),y:i(c)}))}e.length>=2&&(p=`${u?i_(e):e.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)} ${u?`L${n[n.length-1].x},${n[n.length-1].y} `+i_(n.slice().reverse()).replace(/^M[^ ]+ /,``):n.slice().reverse().map(e=>`L${e.x},${e.y}`).join(` `)} Z`)}A.push({path:d,areaPath:f,color:t.color,label:t.label,points:c,bandPath:p})}let M=(e,t)=>e.ticks.map(n=>({value:n,y:E(e,n,t),label:u_(n)})),fe=(e.referenceLines??[]).map(e=>{let t=e.axis===`right`,n=t?T??w:w,r=t?C:S;return{y:E(n,e.value,r),label:e.label??u_(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1}}),pe=[];for(let t of o){if(!t.overlay)continue;let n=ee(t),r=te(t),i=c_(t.values,t.overlay),a=t.overlayColor??t.color,o=i.map((t,i)=>{let a=Number.isFinite(t)&&(!r||t>0);return{x:ce(i),y:a?E(n,t,r):NaN,label:e.categories[i]??String(i),value:t,defined:a}}),s=r_(o,!!t.smooth);pe.push({path:s,areaPath:``,color:a,label:`${t.label} (${t.overlay})`,points:o})}let me=[];for(let t of e.annotations??[]){let n=null,r=null;if(`category`in t.at){let i=e.categories.indexOf(t.at.category);if(i<0)continue;n=ce(i);let a=t.at.series,s=a?o.find(e=>e.label===a):o[0];if(s){let e=s.values[i];Number.isFinite(e)&&(r=E(ee(s),e,te(s)))}r??=10+v/2}else n=m+_/2,r=Number.isFinite(t.at.y)?E(w,t.at.y,S):10+v/2;n!=null&&r!=null&&Number.isFinite(r)&&me.push({x:n,y:r,label:t.label,color:t.color??`#0f172a`,placement:t.placement??`top`})}return{...c,plot:y,bars:k,lines:A,yTicks:M(w,S),y2Ticks:T?M(T,C):[],hasRightAxis:d,xTicks:le,xLabelRotated:ae?!1:p,referenceLines:fe,overlays:pe,annotations:me}}var g_=W(`<button type="button" class="sv-grid-chart-tool svelte-ivx5nn" title="Reset zoom (or double-click the plot)"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7v6h6"></path><path d="M21 17a9 9 0 0 0-15-6.7L3 13"></path></svg> Reset zoom</button>`),__=W(`<div class="sv-grid-chart-toolbar svelte-ivx5nn"><!> <button type="button" class="sv-grid-chart-tool svelte-ivx5nn" title="Download PNG">PNG</button> <button type="button" class="sv-grid-chart-tool svelte-ivx5nn" title="Download SVG">SVG</button> <button type="button" class="sv-grid-chart-tool svelte-ivx5nn" title="Copy chart as image"> </button></div>`),v_=G(`<pattern width="6" height="6" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><rect width="6" height="6"></rect><rect width="3" height="6" fill="rgba(255,255,255,0.35)"></rect></pattern>`),y_=G(`<pattern width="6" height="6" patternUnits="userSpaceOnUse"><rect width="6" height="6"></rect><path d="M0 0L6 6 M6 0L0 6" stroke="rgba(255,255,255,0.45)" stroke-width="1"></path></pattern>`),b_=G(`<pattern width="6" height="6" patternUnits="userSpaceOnUse"><rect width="6" height="6"></rect><circle cx="3" cy="3" r="1.2" fill="rgba(255,255,255,0.55)"></circle></pattern>`),x_=G(`<pattern width="8" height="8" patternUnits="userSpaceOnUse" patternTransform="rotate(-45)"><rect width="8" height="8"></rect><line x1="0" y1="0" x2="0" y2="8" stroke="rgba(0,0,0,0.18)" stroke-width="2"></line></pattern>`),S_=G(`<defs></defs>`),C_=G(`<line class="sv-grid-chart-gridline svelte-ivx5nn"></line><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="middle"> </text>`,1),w_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="end"> </text>`),T_=G(`<text class="sv-grid-chart-axis-title svelte-ivx5nn" text-anchor="middle"> </text>`),E_=G(`<text class="sv-grid-chart-axis-title svelte-ivx5nn" text-anchor="middle"> </text>`),D_=G(`<!><!><!><!>`,1),O_=G(`<line></line><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="end"> </text>`,1),k_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start"> </text>`),A_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="end"> </text>`),j_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="middle"> </text>`),M_=G(`<text class="sv-grid-chart-axis-title svelte-ivx5nn" text-anchor="middle"> </text>`),N_=G(`<text class="sv-grid-chart-axis-title svelte-ivx5nn" text-anchor="middle"> </text>`),P_=G(`<text class="sv-grid-chart-axis-title svelte-ivx5nn" text-anchor="middle"> </text>`),F_=G(`<!><!><!><!><!><!>`,1),I_=G(`<path class="sv-grid-chart-band" fill-opacity="0.12" stroke="none"></path>`),L_=G(`<path class="sv-grid-chart-area" fill-opacity="0.15" stroke="none"></path>`),R_=G(`<text class="sv-grid-chart-datalabel svelte-ivx5nn" text-anchor="middle"> </text>`),z_=G(`<circle></circle><!>`,1),B_=G(`<g><!><!><path class="sv-grid-chart-linepath" fill="none" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"></path><!></g>`),V_=G(`<text> </text>`),H_=G(`<text text-anchor="middle"> </text>`),U_=G(`<rect class="sv-grid-chart-bar svelte-ivx5nn" rx="1"></rect><!>`,1),W_=G(`<circle class="sv-grid-chart-scatter svelte-ivx5nn" fill-opacity="0.7"></circle>`),G_=G(`<line class="sv-grid-chart-refline svelte-ivx5nn"></line><text class="sv-grid-chart-reflabel svelte-ivx5nn" text-anchor="end"> </text>`,1),K_=G(`<line class="sv-grid-chart-refline svelte-ivx5nn"></line><text class="sv-grid-chart-reflabel svelte-ivx5nn" text-anchor="start"> </text>`,1),q_=G(`<path class="sv-grid-chart-overlay svelte-ivx5nn" fill="none" stroke-width="2" stroke-dasharray="6 4" stroke-linejoin="round" stroke-linecap="round"></path>`),J_=G(`<circle class="sv-grid-chart-annotation-marker svelte-ivx5nn" r="4" stroke="var(--sg-bg, #fff)" stroke-width="1.5"></circle><text class="sv-grid-chart-annotation-label svelte-ivx5nn"> </text>`,1),Y_=G(`<line class="sv-grid-chart-crosshair svelte-ivx5nn"></line>`),X_=G(`<line class="sv-grid-chart-crosshair svelte-ivx5nn"></line>`),Z_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="end"> </text>`),Q_=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="middle"> </text>`),$_=G(`<text class="sv-grid-chart-heatlabel svelte-ivx5nn" text-anchor="middle"> </text>`),ev=G(`<rect class="sv-grid-chart-heatcell svelte-ivx5nn"></rect><!>`,1),tv=G(`<stop></stop>`),nv=G(`<defs><linearGradient x1="0" y1="1" x2="0" y2="0"></linearGradient></defs><rect class="sv-grid-chart-heatlegend svelte-ivx5nn" width="10"></rect><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start"> </text><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start"> </text>`,1),rv=G(`<!><!><!><!>`,1),iv=G(`<path class="sv-grid-chart-funnel-seg svelte-ivx5nn"></path><text class="sv-grid-chart-funnel-label svelte-ivx5nn" text-anchor="middle"> </text><text class="sv-grid-chart-funnel-value svelte-ivx5nn" text-anchor="middle"> </text>`,1),av=G(`<circle class="sv-grid-chart-radar-ring svelte-ivx5nn"></circle>`),ov=G(`<line class="sv-grid-chart-radar-spoke svelte-ivx5nn"></line><text class="sv-grid-chart-axis svelte-ivx5nn"> </text>`,1),sv=G(`<circle class="sv-grid-chart-radar-dot svelte-ivx5nn" r="3"></circle>`),cv=G(`<path class="sv-grid-chart-radar-poly svelte-ivx5nn" fill-opacity="0.18" stroke-width="2"></path><!>`,1),lv=G(`<!><!><!>`,1),uv=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start"> </text>`),dv=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="end"> </text>`),fv=G(`<rect rx="2"></rect>`),pv=G(`<rect class="sv-grid-chart-calendar-legend svelte-ivx5nn" width="10" height="10" rx="2"></rect><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start"> </text>`,1),mv=G(`<text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start">Less</text><!><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="start">More</text>`,1),hv=G(`<!><!><!><!>`,1),gv=G(`<line></line>`),_v=G(`<path fill="none" stroke-width="6" stroke-linecap="round" opacity="0.85"></path>`),vv=G(`<line stroke="var(--sg-fg, #0f172a)" stroke-width="2.5" stroke-linecap="round"></line>`),yv=G(`<!><path fill="none" stroke="var(--sg-border, #e2e8f0)" stroke-width="16" stroke-linecap="round"></path><!><path fill="none" stroke-width="16" stroke-linecap="round"></path><!><path class="sv-grid-chart-gauge-needle svelte-ivx5nn"></path><circle class="sv-grid-chart-gauge-hub svelte-ivx5nn"></circle><circle class="sv-grid-chart-gauge-hub-dot svelte-ivx5nn" r="2.5"></circle><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="middle"> </text><text class="sv-grid-chart-axis svelte-ivx5nn" text-anchor="middle"> </text><text class="sv-grid-chart-gauge-value svelte-ivx5nn" text-anchor="middle"> </text>`,1),bv=G(`<text class="sv-grid-chart-treemap-label svelte-ivx5nn"> </text>`),xv=G(`<text class="sv-grid-chart-treemap-value svelte-ivx5nn" opacity="0.85"> </text>`),Sv=G(`<rect class="sv-grid-chart-treemap-cell svelte-ivx5nn"></rect><!><!>`,1),Cv=G(`<path class="sv-grid-chart-sankey-link svelte-ivx5nn" fill="none" stroke-opacity="0.35"></path>`),wv=G(`<rect class="sv-grid-chart-sankey-node svelte-ivx5nn"></rect><text class="sv-grid-chart-sankey-label svelte-ivx5nn"> </text>`,1),Tv=G(`<!><!>`,1),Ev=G(`<text class="sv-grid-chart-datalabel on-bar svelte-ivx5nn" text-anchor="middle" dominant-baseline="middle"> </text>`),Dv=G(`<path class="sv-grid-chart-slice svelte-ivx5nn" stroke="var(--sg-bg, #fff)" stroke-width="1"></path><!>`,1),Ov=G(`<text class="sv-grid-chart-donut-total svelte-ivx5nn" text-anchor="middle"> </text><text class="sv-grid-chart-donut-label svelte-ivx5nn" text-anchor="middle">Total</text>`,1),kv=G(`<rect class="sv-grid-chart-cat-hit svelte-ivx5nn"></rect>`),Av=G(`<rect class="sv-grid-chart-zoom-rect svelte-ivx5nn"></rect>`),jv=G(`<path fill-opacity="0.10" stroke="none"></path>`),Mv=G(`<!><path fill="none" stroke-width="1.2" opacity="0.75"></path>`,1),Nv=G(`<rect opacity="0.55"></rect>`),Pv=G(`<svg class="sv-grid-chart-brush svelte-ivx5nn" width="100%" role="img" aria-label="Range brush"><!><!><rect class="sv-grid-chart-brush-mask svelte-ivx5nn"></rect><rect class="sv-grid-chart-brush-mask svelte-ivx5nn"></rect><rect class="sv-grid-chart-brush-window svelte-ivx5nn"></rect><rect class="sv-grid-chart-brush-handle svelte-ivx5nn" width="8"></rect><rect class="sv-grid-chart-brush-handle svelte-ivx5nn" width="8"></rect></svg>`),Fv=W(`<div class="sv-grid-chart-empty svelte-ivx5nn">No data</div>`),Iv=W(`<span class="sv-grid-chart-tooltip-dot svelte-ivx5nn"></span>`),Lv=W(`<span class="sv-grid-chart-tooltip-row-label svelte-ivx5nn"> </span>`),Rv=W(`<span class="sv-grid-chart-tooltip-row svelte-ivx5nn"><!> <!> <span class="sv-grid-chart-tooltip-row-value svelte-ivx5nn"> </span></span>`),zv=W(`<div><span class="sv-grid-chart-tooltip-title svelte-ivx5nn"> </span> <!></div>`),Bv=W(`<button type="button"><span class="sv-grid-chart-swatch svelte-ivx5nn"></span> </button>`),Vv=W(`<button type="button" class="sv-grid-chart-legend-more svelte-ivx5nn"> </button>`),Hv=W(`<div class="sv-grid-chart-legend svelte-ivx5nn"><!> <!></div>`),Uv=W(`<th> </th>`),Wv=W(`<td> </td>`),Gv=W(`<tr></tr>`),Kv=W(`<div class="sv-grid-chart svelte-ivx5nn"><!> <svg width="100%" role="img"><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!><!></svg> <!> <!> <!> <!> <table class="sv-grid-chart-sr-only svelte-ivx5nn"><caption> </caption><thead><tr></tr></thead><tbody></tbody></table></div>`);function qv(e,t){Ze(t,!0);let n=$(t,`legend`,3,!0),r=$(t,`interactive`,3,!0),i=$(t,`dataLabels`,3,!1),a=$(t,`zoomable`,3,!1),o=$(t,`brush`,3,!1),s=$(t,`brushHeight`,3,88),c=F(()=>t.toolbar??(a()||!!t.onDrill)),l=e=>t.formatValue?t.formatValue(e):Number.isFinite(e)?e.toLocaleString(void 0,{maximumFractionDigits:2}):String(e),u=I(un(new Set)),d=I(null),f=I(null),p=F(()=>t.spec.palette??Wg),m=`svgc-${Math.random().toString(36).slice(2,8)}`,h=F(()=>t.spec.series.map((e,t)=>({...e,color:e.color??H(p)[t%H(p).length]}))),g=F(()=>t.spec.series.map((e,n)=>e.pattern?e.pattern:t.spec.patternFallback?[`stripe`,`crosshatch`,`dots`,`diagonal`][n%4]:`solid`)),_=F(()=>{let e={};return H(h).forEach((t,n)=>{let r=H(g)[n];e[t.label]=r===`solid`||!r?t.color:`url(#${m}-pat-${n})`}),e}),v=F(()=>H(h).map((e,t)=>({id:`${m}-pat-${t}`,color:e.color,kind:H(g)[t]??`solid`})).filter(e=>e.kind!==`solid`)),y=F(()=>{if(H(d)==null)return H(u);let e=t.spec.type===`pie`?t.spec.categories:t.spec.series.map(e=>e.label);return new Set(e.filter(e=>e!==H(d)))}),b=I(null),x=F(()=>H(b)!==null);function S(){L(b,null)}let C=I(null),w=I(null),T=I(null),E=F(()=>{if(!H(w)||!H(T))return null;let e=Math.min(H(w).x,H(T).x),t=Math.min(H(w).y,H(T).y),n=Math.abs(H(T).x-H(w).x),r=Math.abs(H(T).y-H(w).y);return n>4&&r>4?{x:e,y:t,w:n,h:r}:null});function D(e){if(!H(C))return null;let t=H(C).getBoundingClientRect();return{x:(e.clientX-t.left)/t.width*H(M).width,y:(e.clientY-t.top)/t.height*H(M).height}}function O(e){let t=H(xe)?e.y-H(M).plot.y:e.x-H(M).plot.x,n=Math.floor(t/H(Se));return Math.max(0,Math.min(H(j).categories.length-1,n))}function ee(e){if(!a()||!H(fe))return;let t=D(e);t&&(t.x<H(M).plot.x||t.x>H(M).plot.x+H(M).plot.w||t.y<H(M).plot.y||t.y>H(M).plot.y+H(M).plot.h||(L(w,t,!0),L(T,t,!0),e.target.setPointerCapture?.(e.pointerId)))}function te(e){H(w)&&L(T,D(e),!0)}function ne(){if(!H(w)||!H(T)){L(w,null),L(T,null);return}let e=H(E);if(e){let t=O({x:e.x,y:e.y}),n=O({x:e.x+e.w,y:e.y+e.h}),r=H(b)?H(b).i0:0,i=r+Math.min(t,n),a=r+Math.max(t,n);a>i&&L(b,{i0:i,i1:a},!0)}L(w,null),L(T,null)}function re(){a()&&H(x)&&S()}let ie=F(()=>o()&&t.spec.type!==`pie`&&t.spec.type!==`heatmap`),ae=F(()=>({...t.spec,height:s(),yAxisTitle:void 0,y2AxisTitle:void 0,xAxisTitle:void 0,referenceLines:void 0,annotations:void 0,series:H(h).filter(e=>!H(y).has(e.label))})),oe=F(()=>H(ie)?h_(H(ae)):null),se=F(()=>{let e=t.spec.categories.length;return!H(b)||e===0?{t0:0,t1:1}:{t0:H(b).i0/e,t1:(H(b).i1+1)/e}}),ce=I(null);function le(e,t){let n=t.getBoundingClientRect();return H(oe)?(e.clientX-n.left)/n.width*H(oe).width:0}function ue(e,t){if(!H(oe))return;let n=e.currentTarget;L(ce,{mode:t,startX:le(e,n.ownerSVGElement??n),startT0:H(se).t0,startT1:H(se).t1},!0),e.currentTarget.setPointerCapture?.(e.pointerId),e.stopPropagation()}function k(e){if(!H(ce)||!H(oe))return;let n=(le(e,e.currentTarget.ownerSVGElement??e.currentTarget)-H(ce).startX)/H(oe).plot.w,r=t.spec.categories.length;if(r===0)return;let i=H(ce).startT0,a=H(ce).startT1;if(H(ce).mode===`move`){let e=a-i;i=Math.max(0,Math.min(1-e,i+n)),a=i+e}else H(ce).mode===`left`?i=Math.max(0,Math.min(a-1/r,i+n)):a=Math.min(1,Math.max(i+1/r,a+n));let o=Math.max(0,Math.floor(i*r)),s=Math.min(r-1,Math.ceil(a*r)-1);o===0&&s===r-1?L(b,null):L(b,{i0:o,i1:Math.max(o,s)},!0)}function A(e){L(ce,null),e.currentTarget.releasePointerCapture?.(e.pointerId)}let j=F(()=>{if(t.spec.type===`pie`){let e=H(h)[0];if(!e)return t.spec;let n=e.values.map((e,n)=>H(y).has(t.spec.categories[n]??String(n))?0:e);return{...t.spec,series:[{...e,values:n}]}}let e=H(h).filter(e=>!H(y).has(e.label));if(!H(b))return{...t.spec,series:e};let n=Math.max(0,H(b).i0),r=Math.min(t.spec.categories.length-1,H(b).i1),i=e=>e.slice(n,r+1);return{...t.spec,categories:i(t.spec.categories),series:e.map(e=>({...e,values:i(e.values),rowIds:e.rowIds?i(e.rowIds):void 0}))}}),de=I(!1),M=F(()=>h_(H(j),H(de)?`dark`:`light`)),fe=F(()=>t.spec.type!==`pie`&&t.spec.type!==`heatmap`&&t.spec.type!==`funnel`&&t.spec.type!==`radar`&&t.spec.type!==`calendar`&&t.spec.type!==`gauge`&&t.spec.type!==`treemap`&&t.spec.type!==`sankey`),pe=F(()=>t.spec.type===`scatter`),me=F(()=>t.spec.type===`heatmap`),he=F(()=>t.spec.type===`funnel`),ge=F(()=>t.spec.type===`radar`),_e=F(()=>t.spec.type===`calendar`),ve=F(()=>t.spec.type===`gauge`),ye=F(()=>t.spec.type===`treemap`),be=F(()=>t.spec.type===`sankey`),xe=F(()=>H(M).orientation===`horizontal`),Se=F(()=>(H(xe)?H(M).plot.h:H(M).plot.w)/Math.max(1,H(j).categories.length)),Ce=e=>H(f)&&H(f)!==e?.18:1,we=F(()=>t.spec.type===`pie`?t.spec.categories.map((e,t)=>({label:e,color:H(p)[t%H(p).length],off:H(u).has(e)})):H(h).map(e=>({label:e.label,color:e.color,off:H(u).has(e.label)}))),Te=I(!1),Ee=F(()=>H(we).length>10),De=F(()=>H(Ee)&&!H(Te)?H(we).slice(0,10):H(we)),Oe=F(()=>t.spec.type===`pie`?H(M).slices.every(e=>e.value<=0):t.spec.type===`scatter`?H(M).scatterPoints.length===0:t.spec.type===`heatmap`?H(M).heatmapCells.length===0:t.spec.type===`funnel`?H(M).funnelSegments.length===0:t.spec.type===`radar`?H(M).radarSeries.length===0:t.spec.type===`calendar`?H(M).calendarCells.length===0:t.spec.type===`gauge`?!H(M).gauge:t.spec.type===`treemap`?H(M).treemapCells.length===0:t.spec.type===`sankey`?H(M).sankeyNodes.length===0:H(M).bars.length===0&&H(M).lines.every(e=>e.points.every(e=>!e.defined)));function ke(e){if(!r())return;if(H(d)!=null){L(d,null);return}let t=new Set(H(u));t.has(e)?t.delete(e):t.add(e),L(u,t,!0)}function Ae(e){r()&&L(d,H(d)===e?null:e,!0)}let je=F(()=>{if(t.spec.type===`pie`){let e=H(h)[0];return{cols:[`Category`,`Value`],rows:t.spec.categories.map((t,n)=>[t,l(e?.values[n]??0)])}}if(H(pe)){let e=[];for(let t of H(h))for(let n of t.points??[])e.push([t.label,l(n.x),l(n.y),n.r==null?``:l(n.r)]);return{cols:[`Series`,`X`,`Y`,`Size`],rows:e}}return{cols:[`Category`,...H(h).map(e=>e.label)],rows:t.spec.categories.map((e,t)=>[e,...H(h).map(e=>l(e.values[t]??0))])}});function Me(e,t=12){return e.length>t?e.slice(0,t-1)+`…`:e}let Ne=(e,n)=>t.formatValue?t.formatValue(e):n,Pe=I(null);function Fe(e){if(!e)return!1;let t=0,n=0,r=0,i=e.trim().startsWith(`#`)?e.trim().slice(1):``;if(i.length===6)t=parseInt(i.slice(0,2),16),n=parseInt(i.slice(2,4),16),r=parseInt(i.slice(4,6),16);else{let i=/rgba?\(([^)]+)\)/.exec(e);if(!i)return!1;let a=i[1].split(`,`).map(e=>parseFloat(e));t=a[0]??0,n=a[1]??0,r=a[2]??0}return .299*t+.587*n+.114*r<128}Ln(()=>{if(!H(Pe)||typeof window>`u`)return;let e=H(Pe),t=()=>{L(de,Fe(getComputedStyle(e).getPropertyValue(`--sg-bg`)),!0)};t();let n=new MutationObserver(t);return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`class`,`style`]}),()=>n.disconnect()});let Ie=I(null),Le=I(null);function Re(e,t,n,i){if(!r()||!H(Pe)||i.length===0)return;let a=H(Pe).getBoundingClientRect(),o=Math.max(70,Math.min(a.width-70,e-a.left)),s=t-a.top;L(Ie,{left:o,top:s,below:s<44,title:n,rows:i},!0)}function ze(e){return H(j).series.map(t=>({label:t.label,color:t.color,value:t.values[e]})).filter(e=>Number.isFinite(e.value)).map(e=>({label:e.label,color:e.color,value:l(e.value)}))}function Be(e,t,n){L(Le,n,!0),Re(e,t,H(j).categories[n]??``,ze(n))}function Ve(e,t){let n=e.getBoundingClientRect();Be(n.left+n.width/2,n.top+12,t)}function He(){L(Le,null),L(Ie,null)}function Ue(e,t,n,r,i){Re(e,t,n,[{value:`${l(r)} · ${i.toFixed(1)}%`}])}function We(e,t,n){let r=[{label:`x`,value:l(n.x)},{label:`y`,value:l(n.y)}];Re(e,t,n.label||n.series,r)}function Ge(e,t,n){Re(e,t,`${n.rowLabel} · ${n.colLabel}`,[{color:n.color,value:l(n.value)}])}function Ke(e,t,n){let r=[{value:l(n.value)},{label:`conversion`,value:`${(n.conversion*100).toFixed(1)}%`}];n.dropoff>0&&r.push({label:`drop-off`,value:`${(n.dropoff*100).toFixed(1)}%`}),Re(e,t,n.label,r)}function qe(e,t,n,r,i,a){Re(e,t,`${n} · ${r}`,[{color:a,value:l(i)}])}function Je(e,n,r,i){let a;if(i!==void 0){let e=[];for(let t of H(j).series){if(!t.rowIds||n&&t.label!==n)continue;let r=t.rowIds[i];r?.length&&e.push(r)}e.length&&(a=e.flat())}let o={category:e,series:n,value:r,rowIds:a};t.onSelect?.(o),a&&a.length&&t.onDrill?.(o)}function Ye(e,t){let n=e.ownerSVGElement??e.closest(`svg`);if(!n)return;let r=n.querySelector(`[data-cat-index="${t}"]`);r&&(r.focus?.(),Ve(r,t))}function Xe(e,n){let r=H(j).categories.length-1,i=e.currentTarget;switch(e.key){case`ArrowRight`:case`ArrowDown`:e.preventDefault(),Ye(i,Math.min(r,n+1));return;case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),Ye(i,Math.max(0,n-1));return;case`Home`:e.preventDefault(),Ye(i,0);return;case`End`:e.preventDefault(),Ye(i,r);return;case`PageDown`:e.preventDefault(),Ye(i,Math.min(r,n+Math.max(1,Math.floor(r/10))));return;case`PageUp`:e.preventDefault(),Ye(i,Math.max(0,n-Math.max(1,Math.floor(r/10))));return;case`Enter`:case` `:if(!t.onSelect)return;e.preventDefault(),Je(H(j).categories[n]??``,``,0,n);return}}function $e(e,n,r){t.onSelect&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),Je(n,n,r))}let et=I(`idle`);function tt(){if(!H(C))return null;let e=H(C).cloneNode(!0);e.setAttribute(`xmlns`,`http://www.w3.org/2000/svg`),e.removeAttribute(`class`);let t=H(C).getBoundingClientRect();t.width&&e.setAttribute(`width`,String(Math.round(t.width))),t.height&&e.setAttribute(`height`,String(Math.round(t.height)));let n=document.createElement(`style`),r=Array.from(document.styleSheets),i=[];for(let e of r)try{for(let t of Array.from(e.cssRules??[])){let e=t.cssText;e.includes(`.sv-grid-chart`)&&i.push(e)}}catch{}return n.textContent=i.join(`
|
|
126
|
-
`),e.insertBefore(n,e.firstChild),new XMLSerializer().serializeToString(e)}function nt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}async function rt(e){return new Promise(t=>{let n=H(C)?.getBoundingClientRect(),r=Math.max(1,Math.round(n?.width??H(M).width)),i=Math.max(1,Math.round(n?.height??H(M).height)),a=window.devicePixelRatio||1,o=document.createElement(`canvas`);o.width=r*a,o.height=i*a;let s=o.getContext(`2d`);if(!s){t(null);return}let c=new Image;c.onload=()=>{s.scale(a,a),s.drawImage(c,0,0,r,i),o.toBlob(e=>t(e),`image/png`)},c.onerror=()=>t(null),c.src=`data:image/svg+xml;charset=utf-8,`+encodeURIComponent(e)})}async function it(e){let t=tt();if(!t)return;let n=new Date().toISOString().slice(0,10);if(e===`svg`){nt(new Blob([t],{type:`image/svg+xml`}),`chart-${n}.svg`);return}let r=await rt(t);r&&nt(r,`chart-${n}.png`)}async function at(){let e=tt();if(!e){L(et,`err`);return}try{let t=await rt(e);if(!t)throw Error(`rasterize failed`);let n=window.ClipboardItem;n&&navigator.clipboard?.write?await navigator.clipboard.write([new n({"image/png":t})]):await navigator.clipboard.writeText(e),L(et,`ok`)}catch{L(et,`err`)}setTimeout(()=>L(et,`idle`),1500)}var ot=Kv(),st=R(ot),ct=e=>{var t=__(),n=R(t),r=e=>{var t=g_();U(`click`,t,S),K(e,t)};J(n,e=>{a()&&H(x)&&e(r)});var i=B(n,2),o=B(i,2),s=B(o,2),c=R(s,!0);N(s),N(t),V(()=>q(c,H(et)===`ok`?`✓ Copied`:`Copy`)),U(`click`,i,()=>it(`png`)),U(`click`,o,()=>it(`svg`)),U(`click`,s,at),K(e,t)};J(st,e=>{H(c)&&e(ct)});var lt=B(st,2);let ut;var dt=R(lt),ft=e=>{var t=S_();Y(t,21,()=>H(v),e=>e.id,(e,t)=>{var n=ii(),r=z(n),i=e=>{var n=v_(),r=R(n);P(),N(n),V(()=>{Q(n,`id`,H(t).id),Q(r,`fill`,H(t).color)}),K(e,n)},a=e=>{var n=y_(),r=R(n);P(),N(n),V(()=>{Q(n,`id`,H(t).id),Q(r,`fill`,H(t).color)}),K(e,n)},o=e=>{var n=b_(),r=R(n);P(),N(n),V(()=>{Q(n,`id`,H(t).id),Q(r,`fill`,H(t).color)}),K(e,n)},s=e=>{var n=x_(),r=R(n);P(),N(n),V(()=>{Q(n,`id`,H(t).id),Q(r,`fill`,H(t).color)}),K(e,n)};J(r,e=>{H(t).kind===`stripe`?e(i):H(t).kind===`crosshatch`?e(a,1):H(t).kind===`dots`?e(o,2):H(t).kind===`diagonal`&&e(s,3)}),K(e,n)}),N(t),K(e,t)};J(dt,e=>{H(v).length&&e(ft)});var pt=B(dt),mt=e=>{var n=D_(),r=z(n);Y(r,17,()=>H(M).valueTicks,e=>e.label+e.x,(e,t)=>{var n=C_(),r=z(n),i=B(r),a=R(i,!0);N(i),V(()=>{Q(r,`x1`,H(t).x),Q(r,`y1`,H(M).plot.y),Q(r,`x2`,H(t).x),Q(r,`y2`,H(M).plot.y+H(M).plot.h),Q(i,`x`,H(t).x),Q(i,`y`,H(M).plot.y+H(M).plot.h+14),q(a,H(t).label)}),K(e,n)});var i=B(r);Y(i,17,()=>H(M).catTicks,e=>e.value,(e,t)=>{var n=w_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(M).plot.x-6),Q(n,`y`,H(t).y+3),q(r,e)},[()=>Me(H(t).label,18)]),K(e,n)});var a=B(i),o=e=>{var n=T_();Q(n,`x`,13);var r=R(n,!0);N(n),V(()=>{Q(n,`y`,H(M).plot.y+H(M).plot.h/2),Q(n,`transform`,`rotate(-90 13 ${H(M).plot.y+H(M).plot.h/2})`),q(r,t.spec.yAxisTitle)}),K(e,n)};J(a,e=>{t.spec.yAxisTitle&&e(o)});var s=B(a),c=e=>{var n=E_(),r=R(n,!0);N(n),V(()=>{Q(n,`x`,H(M).plot.x+H(M).plot.w/2),Q(n,`y`,H(M).height-3),q(r,t.spec.xAxisTitle)}),K(e,n)};J(s,e=>{t.spec.xAxisTitle&&e(c)}),K(e,n)},ht=e=>{var n=F_(),r=z(n);Y(r,17,()=>H(M).yTicks,e=>e.value,(e,t)=>{var n=O_(),r=z(n);let i;var a=B(r),o=R(a,!0);N(a),V(e=>{i=X(r,0,`sv-grid-chart-gridline svelte-ivx5nn`,null,i,{"is-zero":H(t).value===0}),Q(r,`x1`,H(M).plot.x),Q(r,`y1`,H(t).y),Q(r,`x2`,H(M).plot.x+H(M).plot.w),Q(r,`y2`,H(t).y),Q(a,`x`,H(M).plot.x-6),Q(a,`y`,H(t).y+3),q(o,e)},[()=>Ne(H(t).value,H(t).label)]),K(e,n)});var i=B(r),a=e=>{var t=ii();Y(z(t),17,()=>H(M).y2Ticks,e=>e.value,(e,t)=>{var n=k_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(M).plot.x+H(M).plot.w+6),Q(n,`y`,H(t).y+3),q(r,e)},[()=>Ne(H(t).value,H(t).label)]),K(e,n)}),K(e,t)};J(i,e=>{H(M).hasRightAxis&&e(a)});var o=B(i);Y(o,17,()=>H(M).xTicks,e=>e.label+e.x,(e,t)=>{var n=ii(),r=z(n),i=e=>{var n=A_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(t).x),Q(n,`y`,H(M).plot.y+H(M).plot.h+12),Q(n,`transform`,`rotate(-40 ${H(t).x} ${H(M).plot.y+H(M).plot.h+12})`),q(r,e)},[()=>Me(H(t).label)]),K(e,n)},a=e=>{var n=j_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(t).x),Q(n,`y`,H(M).plot.y+H(M).plot.h+16),q(r,e)},[()=>Me(H(t).label,16)]),K(e,n)};J(r,e=>{H(M).xLabelRotated?e(i):e(a,-1)}),K(e,n)});var s=B(o),c=e=>{var n=M_();Q(n,`x`,13);var r=R(n,!0);N(n),V(()=>{Q(n,`y`,H(M).plot.y+H(M).plot.h/2),Q(n,`transform`,`rotate(-90 13 ${H(M).plot.y+H(M).plot.h/2})`),q(r,t.spec.yAxisTitle)}),K(e,n)};J(s,e=>{t.spec.yAxisTitle&&e(c)});var l=B(s),u=e=>{var n=N_(),r=R(n,!0);N(n),V(()=>{Q(n,`x`,H(M).width-5),Q(n,`y`,H(M).plot.y+H(M).plot.h/2),Q(n,`transform`,`rotate(90 ${H(M).width-5} ${H(M).plot.y+H(M).plot.h/2})`),q(r,t.spec.y2AxisTitle)}),K(e,n)};J(l,e=>{t.spec.y2AxisTitle&&e(u)});var d=B(l),f=e=>{var n=P_(),r=R(n,!0);N(n),V(()=>{Q(n,`x`,H(M).plot.x+H(M).plot.w/2),Q(n,`y`,H(M).height-3),q(r,t.spec.xAxisTitle)}),K(e,n)};J(d,e=>{t.spec.xAxisTitle&&e(f)}),K(e,n)};J(pt,e=>{H(xe)?e(mt):H(fe)&&e(ht,1)});var gt=B(pt);Y(gt,19,()=>H(M).lines,(e,t)=>e.label+t,(e,t)=>{var n=B_(),r=R(n),a=e=>{var n=I_();V(()=>{Q(n,`d`,H(t).bandPath),Q(n,`fill`,H(t).color)}),K(e,n)};J(r,e=>{H(t).bandPath&&e(a)});var o=B(r),s=e=>{var n=L_();V(()=>{Q(n,`d`,H(t).areaPath),Q(n,`fill`,H(_)[H(t).label]??H(t).color)}),K(e,n)};J(o,e=>{H(t).areaPath&&e(s)});var c=B(o);Y(B(c),17,()=>H(t).points,di,(e,n,r)=>{var a=ii(),o=z(a),s=e=>{var a=z_(),o=z(a);let s;var c=B(o),u=e=>{var t=R_(),r=R(t,!0);N(t),V(e=>{Q(t,`x`,H(n).x),Q(t,`y`,H(n).y-7),q(r,e)},[()=>l(H(n).value)]),K(e,t)};J(c,e=>{i()&&e(u)}),V(()=>{s=X(o,0,`sv-grid-chart-dot svelte-ivx5nn`,null,s,{"is-active":H(Le)===r}),Q(o,`cx`,H(n).x),Q(o,`cy`,H(n).y),Q(o,`r`,H(Le)===r?4:3),Q(o,`fill`,H(t).color)}),K(e,a)};J(o,e=>{H(n).defined&&e(s)}),K(e,a)}),N(n),V(e=>{Ui(n,e),Q(c,`d`,H(t).path),Q(c,`stroke`,H(t).color)},[()=>`opacity:${Ce(H(t).label)}`]),K(e,n)});var _t=B(gt);Y(_t,17,()=>H(M).bars,di,(e,n)=>{var r=U_(),a=z(r),o=B(a),s=e=>{var r=V_();let i;var a=R(r,!0);N(r),V(e=>{i=X(r,0,`sv-grid-chart-datalabel svelte-ivx5nn`,null,i,{"on-bar":t.spec.stacked||t.spec.stacked100}),Q(r,`x`,t.spec.stacked||t.spec.stacked100?H(n).x+H(n).w/2:H(n).value>=0?H(n).x+H(n).w+3:H(n).x-3),Q(r,`y`,H(n).y+H(n).h/2+3),Q(r,`text-anchor`,t.spec.stacked||t.spec.stacked100?`middle`:H(n).value>=0?`start`:`end`),q(a,e)},[()=>l(H(n).value)]),K(e,r)},c=e=>{var r=H_();let i;var a=R(r,!0);N(r),V(e=>{i=X(r,0,`sv-grid-chart-datalabel svelte-ivx5nn`,null,i,{"on-bar":t.spec.stacked||t.spec.stacked100}),Q(r,`x`,H(n).x+H(n).w/2),Q(r,`y`,t.spec.stacked||t.spec.stacked100?H(n).y+H(n).h/2+3:H(n).value>=0?H(n).y-3:H(n).y+H(n).h+11),q(a,e)},[()=>l(H(n).value)]),K(e,r)};J(o,e=>{i()&&H(xe)&&H(n).w>18?e(s):i()&&!H(xe)&&H(n).h>13&&e(c,1)}),V(e=>{Q(a,`x`,H(n).x),Q(a,`y`,H(n).y),Q(a,`width`,H(n).w),Q(a,`height`,H(n).h),Q(a,`fill`,H(_)[H(n).series]??H(n).color),Ui(a,e)},[()=>`opacity:${Ce(H(n).series)}`]),K(e,r)});var vt=B(_t);Y(vt,17,()=>H(M).scatterPoints,di,(e,t)=>{var n=W_();V(e=>{Q(n,`cx`,H(t).cx),Q(n,`cy`,H(t).cy),Q(n,`r`,H(t).r),Q(n,`fill`,H(t).color),Q(n,`stroke`,H(t).color),Ui(n,e)},[()=>`opacity:${Ce(H(t).series)}`]),U(`mousemove`,n,e=>We(e.clientX,e.clientY,H(t))),Jr(`mouseleave`,n,He),K(e,n)});var yt=B(vt);Y(yt,17,()=>H(M).referenceLines,di,(e,t)=>{var n=G_(),r=z(n),i=B(r),a=R(i,!0);N(i),V(()=>{Q(r,`x1`,H(M).plot.x),Q(r,`y1`,H(t).y),Q(r,`x2`,H(M).plot.x+H(M).plot.w),Q(r,`y2`,H(t).y),Q(r,`stroke`,H(t).color),Q(r,`stroke-dasharray`,H(t).dashed?`5 4`:void 0),Q(i,`x`,H(M).plot.x+H(M).plot.w-3),Q(i,`y`,H(t).y-3),Q(i,`fill`,H(t).color),q(a,H(t).label)}),K(e,n)});var bt=B(yt);Y(bt,17,()=>H(M).referenceLinesV,di,(e,t)=>{var n=K_(),r=z(n),i=B(r),a=R(i,!0);N(i),V(()=>{Q(r,`x1`,H(t).x),Q(r,`y1`,H(M).plot.y),Q(r,`x2`,H(t).x),Q(r,`y2`,H(M).plot.y+H(M).plot.h),Q(r,`stroke`,H(t).color),Q(r,`stroke-dasharray`,H(t).dashed?`5 4`:void 0),Q(i,`x`,H(t).x+3),Q(i,`y`,H(M).plot.y+9),Q(i,`fill`,H(t).color),q(a,H(t).label)}),K(e,n)});var xt=B(bt);Y(xt,19,()=>H(M).overlays,(e,t)=>e.label+t,(e,t)=>{var n=q_();V(()=>{Q(n,`d`,H(t).path),Q(n,`stroke`,H(t).color)}),K(e,n)});var St=B(xt);Y(St,19,()=>H(M).annotations,(e,t)=>e.label+t,(e,t)=>{let n=F(()=>H(t).placement===`left`?-8:H(t).placement===`right`?8:0),r=F(()=>H(t).placement===`bottom`?14:H(t).placement===`top`?-8:0),i=F(()=>H(t).placement===`left`?`end`:H(t).placement===`right`?`start`:`middle`);var a=J_(),o=z(a),s=B(o),c=R(s,!0);N(s),V(()=>{Q(o,`cx`,H(t).x),Q(o,`cy`,H(t).y),Q(o,`fill`,H(t).color),Q(s,`x`,H(t).x+H(n)),Q(s,`y`,H(t).y+H(r)),Q(s,`text-anchor`,H(i)),Q(s,`fill`,H(t).color),q(c,H(t).label)}),K(e,a)});var Ct=B(St),wt=e=>{var t=ii(),n=z(t),r=e=>{let t=F(()=>H(M).plot.y+H(Se)*H(Le)+H(Se)/2);var n=Y_();V(()=>{Q(n,`x1`,H(M).plot.x),Q(n,`y1`,H(t)),Q(n,`x2`,H(M).plot.x+H(M).plot.w),Q(n,`y2`,H(t))}),K(e,n)},i=e=>{let t=F(()=>H(M).lines[0]?.points[H(Le)]),n=F(()=>H(t)&&Number.isFinite(H(t).x)?H(t).x:H(M).plot.x+H(Se)*H(Le)+H(Se)/2);var r=X_();V(()=>{Q(r,`x1`,H(n)),Q(r,`y1`,H(M).plot.y),Q(r,`x2`,H(n)),Q(r,`y2`,H(M).plot.y+H(M).plot.h)}),K(e,r)};J(n,e=>{H(xe)?e(r):e(i,-1)}),K(e,t)};J(Ct,e=>{H(fe)&&H(Le)!==null&&e(wt)});var Tt=B(Ct),Et=e=>{var n=rv(),r=z(n);Y(r,17,()=>H(M).heatmapRowTicks,e=>e.value,(e,t)=>{var n=Z_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(M).plot.x-8),Q(n,`y`,H(t).y+3),q(r,e)},[()=>Me(H(t).label,22)]),K(e,n)});var a=B(r);Y(a,19,()=>H(M).heatmapColTicks,(e,t)=>e.label+t,(e,t)=>{var n=Q_(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(t).x),Q(n,`y`,H(M).plot.y+H(M).plot.h+14),q(r,e)},[()=>Me(H(t).label,14)]),K(e,n)});var o=B(a);Y(o,17,()=>H(M).heatmapCells,di,(e,n)=>{var r=ev(),a=z(r),o=B(a),s=e=>{var t=$_(),r=R(t,!0);N(t),V(e=>{Q(t,`x`,H(n).x+H(n).w/2),Q(t,`y`,H(n).y+H(n).h/2+3),Q(t,`fill`,H(n).textColor),q(r,e)},[()=>l(H(n).value)]),K(e,t)};J(o,e=>{i()&&H(n).w>22&&H(n).h>14&&e(s)}),V(e=>{Q(a,`x`,H(n).x),Q(a,`y`,H(n).y),Q(a,`width`,H(n).w),Q(a,`height`,H(n).h),Q(a,`fill`,H(n).color),Q(a,`role`,t.onSelect?`button`:`presentation`),Q(a,`tabindex`,t.onSelect?0:void 0),Q(a,`aria-label`,e)},[()=>`${H(n).rowLabel} ${H(n).colLabel}: ${l(H(n).value)}`]),U(`mousemove`,a,e=>Ge(e.clientX,e.clientY,H(n))),Jr(`mouseleave`,a,He),U(`click`,a,()=>Je(H(n).colLabel,H(n).rowLabel,H(n).value)),K(e,r)});var s=B(o),c=e=>{let t=F(()=>H(M).plot.x+H(M).plot.w+14),n=F(()=>H(M).plot.h-20),r=F(()=>H(M).heatmapLegend);var i=nv(),a=z(i),o=R(a);Y(o,21,()=>H(r),di,(e,t,n)=>{var i=tv();V(()=>{Q(i,`offset`,`${n/(H(r).length-1)*100}%`),Q(i,`stop-color`,H(t).color)}),K(e,i)}),N(o),N(a);var s=B(a),c=B(s),l=R(c,!0);N(c);var u=B(c),d=R(u,!0);N(u),V(()=>{Q(o,`id`,`${m}-heatscale`),Q(s,`x`,H(t)),Q(s,`y`,H(M).plot.y+10),Q(s,`height`,H(n)),Q(s,`fill`,`url(#${m}-heatscale)`),Q(c,`x`,H(t)+14),Q(c,`y`,H(M).plot.y+14),q(l,H(r)[H(r).length-1].label),Q(u,`x`,H(t)+14),Q(u,`y`,H(M).plot.y+10+H(n)),q(d,H(r)[0].label)}),K(e,i)};J(s,e=>{H(M).heatmapLegend.length&&e(c)}),K(e,n)};J(Tt,e=>{H(me)&&e(Et)});var Dt=B(Tt),Ot=e=>{var n=ii();Y(z(n),17,()=>H(M).funnelSegments,di,(e,n,r)=>{var i=iv(),a=z(i),o=B(a),s=R(o,!0);N(o);var c=B(o),u=R(c);N(c),V((e,r,i,l)=>{Q(a,`d`,H(n).path),Q(a,`fill`,H(n).color),Q(a,`role`,t.onSelect?`button`:`presentation`),Q(a,`tabindex`,t.onSelect?0:void 0),Q(a,`aria-label`,e),Q(o,`x`,H(n).cx),Q(o,`y`,H(n).cy-3),Q(o,`fill`,H(n).textColor),q(s,r),Q(c,`x`,H(n).cx),Q(c,`y`,H(n).cy+11),Q(c,`fill`,H(n).textColor),q(u,`${i??``} · ${l??``}%`)},[()=>`${H(n).label}: ${l(H(n).value)}`,()=>Me(H(n).label,24),()=>l(H(n).value),()=>(H(n).conversion*100).toFixed(0)]),U(`mousemove`,a,e=>Ke(e.clientX,e.clientY,H(n))),Jr(`mouseleave`,a,He),U(`click`,a,()=>Je(H(n).label,H(n).label,H(n).value,r)),K(e,i)}),K(e,n)};J(Dt,e=>{H(he)&&e(Ot)});var kt=B(Dt),At=e=>{let t=F(()=>H(M).radarCenter);var n=lv(),r=z(n);Y(r,17,()=>H(M).radarRings,di,(e,n,r)=>{let i=F(()=>H(t).r*((r+1)/H(M).radarRings.length));var a=av();V(()=>{Q(a,`cx`,H(t).cx),Q(a,`cy`,H(t).cy),Q(a,`r`,H(i))}),K(e,a)});var i=B(r);Y(i,17,()=>H(M).radarAxes,di,(e,n)=>{let r=F(()=>H(n).x-H(t).cx),i=F(()=>H(n).y-H(t).cy),a=F(()=>H(t).cx+H(r)*1.08),o=F(()=>H(t).cy+H(i)*1.08);var s=ov(),c=z(s),l=B(c),u=R(l,!0);N(l),V(e=>{Q(c,`x1`,H(t).cx),Q(c,`y1`,H(t).cy),Q(c,`x2`,H(n).x),Q(c,`y2`,H(n).y),Q(l,`x`,H(a)),Q(l,`y`,H(o)+3),Q(l,`text-anchor`,e),q(u,H(n).label)},[()=>Math.abs(H(r))<1?`middle`:H(r)>0?`start`:`end`]),K(e,s)}),Y(B(i),17,()=>H(M).radarSeries,di,(e,t)=>{var n=cv(),r=z(n);Y(B(r),17,()=>H(t).points,di,(e,n)=>{var r=sv();V(()=>{Q(r,`cx`,H(n).x),Q(r,`cy`,H(n).y),Q(r,`fill`,H(t).color)}),U(`mousemove`,r,e=>qe(e.clientX,e.clientY,H(t).label,H(n).axis,H(n).value,H(t).color)),Jr(`mouseleave`,r,He),K(e,r)}),V(e=>{Q(r,`d`,H(t).path),Q(r,`fill`,H(t).color),Q(r,`stroke`,H(t).color),Ui(r,e)},[()=>`opacity:${Ce(H(t).label)}`]),K(e,n)}),K(e,n)};J(kt,e=>{H(ge)&&H(M).radarCenter&&e(At)});var jt=B(kt),Mt=e=>{var t=hv(),n=z(t);Y(n,17,()=>H(M).calendarMonthTicks,di,(e,t)=>{var n=uv(),r=R(n,!0);N(n),V(()=>{Q(n,`x`,H(t).x),Q(n,`y`,H(M).plot.y-8),q(r,H(t).label)}),K(e,n)});var r=B(n);Y(r,16,()=>[`Mon`,`Wed`,`Fri`],di,(e,t,n)=>{let r=F(()=>[1,3,5][n]),i=F(()=>H(M).calendarCells[H(r)]);var a=ii(),o=z(a),s=e=>{var n=dv(),r=R(n,!0);N(n),V(()=>{Q(n,`x`,H(M).plot.x-6),Q(n,`y`,H(i).y+H(i).size/2+3),q(r,t)}),K(e,n)};J(o,e=>{H(i)&&e(s)}),K(e,a)});var i=B(r);Y(i,17,()=>H(M).calendarCells,di,(e,t)=>{var n=fv();let r;V(e=>{r=X(n,0,`sv-grid-chart-calendar-cell svelte-ivx5nn`,null,r,{"is-blank":!H(t).defined}),Q(n,`x`,H(t).x+1),Q(n,`y`,H(t).y+1),Q(n,`width`,H(t).size-2),Q(n,`height`,H(t).size-2),Q(n,`fill`,H(t).defined?H(t).color:`transparent`),Q(n,`aria-label`,e)},[()=>`${H(t).date}: ${H(t).defined?l(H(t).value):`no data`}`]),U(`mousemove`,n,e=>H(t).defined&&Re(e.clientX,e.clientY,H(t).date,[{color:H(t).color,value:l(H(t).value)}])),Jr(`mouseleave`,n,He),K(e,n)});var a=B(i),o=e=>{let t=F(()=>H(M).plot.x+H(M).plot.w+12),n=F(()=>H(M).plot.y+4);var r=mv(),i=z(r),a=B(i);Y(a,17,()=>H(M).calendarLegend,di,(e,r,i)=>{var a=pv(),o=z(a),s=B(o),c=R(s,!0);N(s),V(()=>{Q(o,`x`,H(t)),Q(o,`y`,H(n)+6+i*13),Q(o,`fill`,H(r).color),Q(s,`x`,H(t)+14),Q(s,`y`,H(n)+14+i*13),q(c,H(r).label)}),K(e,a)});var o=B(a);V(()=>{Q(i,`x`,H(t)),Q(i,`y`,H(n)),Q(o,`x`,H(t)),Q(o,`y`,H(n)+12+H(M).calendarLegend.length*13)}),K(e,r)};J(a,e=>{H(M).calendarLegend.length&&e(o)}),K(e,t)};J(jt,e=>{H(_e)&&e(Mt)});var Nt=B(jt),Pt=e=>{let t=F(()=>H(M).gauge);var n=yv(),r=z(n);Y(r,17,()=>H(t).ticks,di,(e,t)=>{var n=gv();let r;V(()=>{r=X(n,0,`sv-grid-chart-gauge-tick svelte-ivx5nn`,null,r,{"is-major":H(t).major}),Q(n,`x1`,H(t).x1),Q(n,`y1`,H(t).y1),Q(n,`x2`,H(t).x2),Q(n,`y2`,H(t).y2)}),K(e,n)});var i=B(r),a=B(i);Y(a,17,()=>H(t).rangePaths,di,(e,t)=>{var n=_v();V(()=>{Q(n,`d`,H(t).path),Q(n,`stroke`,H(t).color)}),K(e,n)});var o=B(a),s=B(o),c=e=>{var n=vv();V(()=>{Q(n,`x1`,H(t).target.x1),Q(n,`y1`,H(t).target.y1),Q(n,`x2`,H(t).target.x2),Q(n,`y2`,H(t).target.y2)}),K(e,n)};J(s,e=>{H(t).target&&e(c)});var u=B(s),d=B(u),f=B(d),p=B(f),m=R(p,!0);N(p);var h=B(p),g=R(h,!0);N(h);var _=B(h),v=R(_);N(_),V((e,n,r)=>{Q(i,`d`,H(t).trackPath),Q(o,`d`,H(t).valuePath),Q(o,`stroke`,H(t).valueColor??`var(--sg-accent, #2563eb)`),Q(u,`d`,H(t).needle.path),Q(u,`fill`,H(t).valueColor??`var(--sg-accent, #2563eb)`),Q(d,`cx`,H(t).cx),Q(d,`cy`,H(t).cy),Q(d,`r`,H(t).needle.hubR),Q(f,`cx`,H(t).cx),Q(f,`cy`,H(t).cy),Q(p,`x`,H(t).minLabel.x),Q(p,`y`,H(t).minLabel.y),q(m,e),Q(h,`x`,H(t).maxLabel.x),Q(h,`y`,H(t).maxLabel.y),q(g,n),Q(_,`x`,H(t).cx),Q(_,`y`,H(t).cy+38),q(v,`${r??``}${H(t).unit?` ${H(t).unit}`:``}`)},[()=>l(H(t).min),()=>l(H(t).max),()=>l(H(t).value)]),K(e,n)};J(Nt,e=>{H(ve)&&H(M).gauge&&e(Pt)});var Ft=B(Nt),It=e=>{var t=ii();Y(z(t),17,()=>H(M).treemapCells,di,(e,t)=>{var n=Sv(),r=z(n),i=B(r),a=e=>{var n=bv(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(t).x+4),Q(n,`y`,H(t).y+12),Q(n,`fill`,H(t).textColor),q(r,e)},[()=>Me(H(t).name,Math.max(3,Math.floor(H(t).w/7)))]),K(e,n)};J(i,e=>{H(t).w>36&&H(t).h>18&&e(a)});var o=B(i),s=e=>{var n=xv(),r=R(n,!0);N(n),V(e=>{Q(n,`x`,H(t).x+4),Q(n,`y`,H(t).y+24),Q(n,`fill`,H(t).textColor),q(r,e)},[()=>l(H(t).value)]),K(e,n)};J(o,e=>{H(t).w>60&&H(t).h>30&&e(s)}),V(e=>{Q(r,`x`,H(t).x),Q(r,`y`,H(t).y),Q(r,`width`,H(t).w),Q(r,`height`,H(t).h),Q(r,`fill`,H(t).color),Q(r,`aria-label`,e)},[()=>`${H(t).name}: ${l(H(t).value)}`]),U(`mousemove`,r,e=>Re(e.clientX,e.clientY,H(t).name,[{color:H(t).color,value:l(H(t).value)}])),Jr(`mouseleave`,r,He),U(`click`,r,()=>Je(H(t).name,``,H(t).value)),K(e,n)}),K(e,t)};J(Ft,e=>{H(ye)&&e(It)});var Lt=B(Ft),Rt=e=>{var t=Tv(),n=z(t);Y(n,17,()=>H(M).sankeyLinks,di,(e,t)=>{var n=Cv();V(e=>{Q(n,`d`,H(t).path),Q(n,`stroke`,H(t).color),Q(n,`stroke-width`,H(t).width),Q(n,`aria-label`,e)},[()=>`${H(t).source} -> ${H(t).target}: ${l(H(t).value)}`]),U(`mousemove`,n,e=>Re(e.clientX,e.clientY,`${H(t).source} -> ${H(t).target}`,[{color:H(t).color,value:l(H(t).value)}])),Jr(`mouseleave`,n,He),K(e,n)}),Y(B(n),17,()=>H(M).sankeyNodes,di,(e,t)=>{var n=wv(),r=z(n),i=B(r),a=R(i,!0);N(i),V(e=>{Q(r,`x`,H(t).x),Q(r,`y`,H(t).y),Q(r,`width`,H(t).w),Q(r,`height`,H(t).h),Q(r,`fill`,H(t).color),Q(r,`aria-label`,e),Q(i,`x`,H(t).column===0?H(t).x+H(t).w+4:H(t).x-4),Q(i,`y`,H(t).y+H(t).h/2+3),Q(i,`text-anchor`,H(t).column===0?`start`:`end`),q(a,H(t).label)},[()=>`${H(t).label}: in ${l(H(t).totalIn)}, out ${l(H(t).totalOut)}`]),U(`mousemove`,r,e=>Re(e.clientX,e.clientY,H(t).label,[{label:`in`,value:l(H(t).totalIn)},{label:`out`,value:l(H(t).totalOut)}])),Jr(`mouseleave`,r,He),K(e,n)}),K(e,t)};J(Lt,e=>{H(be)&&e(Rt)});var zt=B(Lt);Y(zt,17,()=>H(M).slices,di,(e,n,r)=>{var a=Dv(),o=z(a),s=B(o),c=e=>{var t=Ev(),r=R(t);N(t),V(e=>{Q(t,`x`,H(n).cx),Q(t,`y`,H(n).cy),q(r,`${e??``}%`)},[()=>H(n).percent.toFixed(0)]),K(e,t)};J(s,e=>{i()&&H(n).percent>=6&&e(c)}),V(e=>{Q(o,`d`,H(n).path),Q(o,`fill`,H(n).color),Q(o,`role`,t.onSelect?`button`:`presentation`),Q(o,`tabindex`,t.onSelect?0:void 0),Q(o,`aria-label`,e)},[()=>`${H(n).label}: ${l(H(n).value)}, ${H(n).percent.toFixed(1)}%`]),U(`mousemove`,o,e=>Ue(e.clientX,e.clientY,H(n).label,H(n).value,H(n).percent)),Jr(`mouseleave`,o,He),Jr(`focus`,o,e=>{let t=e.currentTarget.getBoundingClientRect();Ue(t.left+t.width/2,t.top,H(n).label,H(n).value,H(n).percent)}),Jr(`blur`,o,He),U(`click`,o,()=>Je(H(n).label,H(n).label,H(n).value,r)),U(`keydown`,o,e=>$e(e,H(n).label,H(n).value)),K(e,a)});var Bt=B(zt),Vt=e=>{var t=Ov(),n=z(t),r=R(n,!0);N(n);var i=B(n);V(e=>{Q(n,`x`,H(M).donut.cx),Q(n,`y`,H(M).donut.cy-4),q(r,e),Q(i,`x`,H(M).donut.cx),Q(i,`y`,H(M).donut.cy+11)},[()=>l(H(M).donut.total)]),K(e,t)};J(Bt,e=>{H(M).donut&&e(Vt)});var Ht=B(Bt),Ut=e=>{var n=ii();Y(z(n),19,()=>H(j).categories,(e,t)=>e+t,(e,n,i)=>{let a=F(()=>H(M).lines[0]?.points),o=F(()=>H(a)?.[H(i)]?.x),s=F(()=>!H(xe)&&H(a)&&H(a).length===H(j).categories.length&&Number.isFinite(H(o))),c=F(()=>H(s)&&H(i)>0?H(a)[H(i)-1].x:null),l=F(()=>H(s)&&H(i)<H(a).length-1?H(a)[H(i)+1].x:null),u=F(()=>H(s)?H(c)==null?H(M).plot.x:(H(c)+H(o))/2:H(M).plot.x+H(Se)*H(i)),d=F(()=>H(s)?H(l)==null?H(M).plot.x+H(M).plot.w:(H(o)+H(l))/2:H(M).plot.x+H(Se)*(H(i)+1));var f=kv();V((e,n)=>{Q(f,`x`,H(xe)?H(M).plot.x:H(u)),Q(f,`y`,H(xe)?H(M).plot.y+H(Se)*H(i):H(M).plot.y),Q(f,`width`,e),Q(f,`height`,H(xe)?H(Se):H(M).plot.h),Q(f,`role`,t.onSelect?`button`:`img`),Q(f,`tabindex`,r()?H(i)===0?0:-1:void 0),Q(f,`data-cat-index`,H(i)),Q(f,`aria-label`,n)},[()=>H(xe)?H(M).plot.w:Math.max(0,H(d)-H(u)),()=>`${H(n)}: ${ze(H(i)).map(e=>`${e.label} ${e.value}`).join(`, `)}`]),U(`mousemove`,f,e=>Be(e.clientX,e.clientY,H(i))),Jr(`mouseleave`,f,He),Jr(`focus`,f,e=>Ve(e.currentTarget,H(i))),Jr(`blur`,f,He),U(`click`,f,()=>Je(H(n),``,0,H(i))),U(`keydown`,f,e=>Xe(e,H(i))),K(e,f)}),K(e,n)};J(Ht,e=>{H(fe)&&!H(pe)&&e(Ut)});var Wt=B(Ht),Gt=e=>{var t=Av();V(()=>{Q(t,`x`,H(E).x),Q(t,`y`,H(E).y),Q(t,`width`,H(E).w),Q(t,`height`,H(E).h)}),K(e,t)};J(Wt,e=>{H(E)&&e(Gt)}),N(lt),ya(lt,e=>L(C,e),()=>H(C));var Kt=B(lt,2),qt=e=>{let t=F(()=>H(oe).plot.x+H(se).t0*H(oe).plot.w),n=F(()=>(H(se).t1-H(se).t0)*H(oe).plot.w);var r=Pv(),i=R(r);Y(i,17,()=>H(oe).lines,di,(e,t)=>{var n=Mv(),r=z(n),i=e=>{var n=jv();V(()=>{Q(n,`d`,H(t).areaPath),Q(n,`fill`,H(t).color)}),K(e,n)};J(r,e=>{H(t).areaPath&&e(i)});var a=B(r);V(()=>{Q(a,`d`,H(t).path),Q(a,`stroke`,H(t).color)}),K(e,n)});var a=B(i);Y(a,17,()=>H(oe).bars,di,(e,t)=>{var n=Nv();V(()=>{Q(n,`x`,H(t).x),Q(n,`y`,H(t).y),Q(n,`width`,H(t).w),Q(n,`height`,H(t).h),Q(n,`fill`,H(t).color)}),K(e,n)});var o=B(a),s=B(o),c=B(s),l=B(c),u=B(l);N(r),V(()=>{Q(r,`viewBox`,`0 0 ${H(oe).width} ${H(oe).height}`),Q(o,`x`,H(oe).plot.x),Q(o,`y`,H(oe).plot.y),Q(o,`width`,H(t)-H(oe).plot.x),Q(o,`height`,H(oe).plot.h),Q(s,`x`,H(t)+H(n)),Q(s,`y`,H(oe).plot.y),Q(s,`width`,H(oe).plot.x+H(oe).plot.w-(H(t)+H(n))),Q(s,`height`,H(oe).plot.h),Q(c,`x`,H(t)),Q(c,`y`,H(oe).plot.y),Q(c,`width`,H(n)),Q(c,`height`,H(oe).plot.h),Q(l,`x`,H(t)-4),Q(l,`y`,H(oe).plot.y),Q(l,`height`,H(oe).plot.h),Q(u,`x`,H(t)+H(n)-4),Q(u,`y`,H(oe).plot.y),Q(u,`height`,H(oe).plot.h)}),U(`pointermove`,r,k),U(`pointerdown`,c,e=>ue(e,`move`)),U(`pointerup`,c,A),Jr(`pointercancel`,c,A),U(`pointerdown`,l,e=>ue(e,`left`)),U(`pointerup`,l,A),Jr(`pointercancel`,l,A),U(`pointerdown`,u,e=>ue(e,`right`)),U(`pointerup`,u,A),Jr(`pointercancel`,u,A),K(e,r)};J(Kt,e=>{H(ie)&&H(oe)&&e(qt)});var Jt=B(Kt,2),Yt=e=>{K(e,Fv())};J(Jt,e=>{H(Oe)&&e(Yt)});var Xt=B(Jt,2),Zt=e=>{var t=zv();let n;var r=R(t),i=R(r,!0);N(r),Y(B(r,2),17,()=>H(Ie).rows,di,(e,t)=>{var n=Rv(),r=R(n),i=e=>{var n=Iv();V(()=>Ui(n,`background:${H(t).color}`)),K(e,n)};J(r,e=>{H(t).color&&e(i)});var a=B(r,2),o=e=>{var n=Lv(),r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)};J(a,e=>{H(t).label&&e(o)});var s=B(a,2),c=R(s,!0);N(s),N(n),V(()=>q(c,H(t).value)),K(e,n)}),N(t),V(()=>{n=X(t,1,`sv-grid-chart-tooltip svelte-ivx5nn`,null,n,{"is-below":H(Ie).below}),Ui(t,`left:${H(Ie).left}px; top:${H(Ie).top}px;`),q(i,H(Ie).title)}),K(e,t)};J(Xt,e=>{H(Ie)&&e(Zt)});var Qt=B(Xt,2),$t=e=>{var t=Hv(),n=R(t);Y(n,17,()=>H(De),e=>e.label,(e,t)=>{var n=Bv();let i;var a=R(n),o=B(a);N(n),V(()=>{i=X(n,1,`sv-grid-chart-legend-item svelte-ivx5nn`,null,i,{"is-off":H(t).off,"is-isolated":H(d)===H(t).label}),n.disabled=!r(),Q(n,`aria-pressed`,!H(t).off),Q(n,`title`,r()?`${H(t).off?`Show`:`Hide`} ${H(t).label} · double-click to isolate`:H(t).label),Ui(a,`background:${H(t).off?`transparent`:H(t).color}; border-color:${H(t).color}`),q(o,` ${H(t).label??``}`)}),U(`click`,n,()=>ke(H(t).label)),U(`dblclick`,n,()=>Ae(H(t).label)),Jr(`pointerenter`,n,()=>r()&&L(f,H(t).label,!0)),Jr(`pointerleave`,n,()=>L(f,null)),K(e,n)});var i=B(n,2),a=e=>{var t=Vv(),n=R(t,!0);N(t),V(()=>q(n,H(Te)?`Show less`:`+${H(we).length-10} more`)),U(`click`,t,()=>L(Te,!H(Te))),K(e,t)};J(i,e=>{H(Ee)&&e(a)}),N(t),K(e,t)};J(Qt,e=>{n()&&H(we).length&&e($t)});var en=B(Qt,2),tn=R(en),nn=R(tn);N(tn);var rn=B(tn),an=R(rn);Y(an,20,()=>H(je).cols,e=>e,(e,t)=>{var n=Uv(),r=R(n,!0);N(n),V(()=>q(r,t)),K(e,n)}),N(an),N(rn);var on=B(rn);Y(on,21,()=>H(je).rows,di,(e,t)=>{var n=Gv();Y(n,21,()=>H(t),di,(e,t)=>{var n=Wv(),r=R(n,!0);N(n),V(()=>q(r,H(t))),K(e,n)}),N(n),K(e,n)}),N(on),N(en),N(ot),ya(ot,e=>L(Pe,e),()=>H(Pe)),V(()=>{ut=X(lt,0,`sv-grid-chart-svg svelte-ivx5nn`,null,ut,{"is-interactive":r(),"is-clickable":!!t.onSelect||!!t.onDrill,"is-zoomable":a()&&H(fe),"is-dragging":!!H(w)}),Q(lt,`viewBox`,`0 0 ${H(M).width} ${H(M).height}`),Q(lt,`aria-label`,`${t.spec.type} chart`),Q(lt,`aria-describedby`,`${m}-table`),Q(en,`id`,`${m}-table`),q(nn,`${t.spec.type??``} chart data`)}),U(`pointerdown`,lt,ee),U(`pointermove`,lt,te),U(`pointerup`,lt,ne),Jr(`pointercancel`,lt,ne),U(`dblclick`,lt,re),K(e,ot),Qe()}Yr([`click`,`pointerdown`,`pointermove`,`pointerup`,`dblclick`,`mousemove`,`keydown`]);function Jv(e,t,n){return Math.min(Math.max(e,t),n)}function Yv(e,t){return e.count===t.count&&e.estimateSize===t.estimateSize&&(e.overscan??6)===(t.overscan??6)&&e.viewportHeight===t.viewportHeight&&(e.scrollOffset??0)===(t.scrollOffset??0)}function Xv(e,t){if(e.totalSize!==t.totalSize||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex||e.viewportHeight!==t.viewportHeight||e.items.length!==t.items.length)return!1;for(let n=0;n<e.items.length;n+=1){let r=e.items[n],i=t.items[n];if(r.index!==i.index||r.start!==i.start||r.size!==i.size)return!1}return!0}function Zv(e,t,n){let r=[];for(let i=e;i<=t;i+=1){let t=i*n;r.push({index:i,start:t,size:n,end:t+n,key:`virtual_slot_${i-e}`})}return r}function Qv(e,t,n){let r=[];for(let i=e;i<=t;i+=1){let t=n[i]??0,a=n[i+1]??t;r.push({index:i,start:t,size:a-t,end:a,key:`virtual_slot_${i-e}`})}return r}function $v(e,t){let n=Math.max(e.count,0),r=Math.max(e.overscan??6,0),i=Math.max(e.viewportHeight,0);if(typeof e.estimateSize==`function`&&t){let a=t[n]??0,o=Math.max(a-i,0),s=Jv(e.scrollOffset??0,0,o),c=0,l=n;for(;c<l;){let e=c+l>>>1;(t[e+1]??0)<=s?c=e+1:l=e}let u=c,d=s+i;for(c=u,l=n;c<l;){let e=c+l>>>1;(t[e]??0)<d?c=e+1:l=e}let f=Math.max(c-1,u),p=n===0?0:Jv(u-r,0,n-1),m=n===0?-1:Jv(f+r,0,n-1);return{items:m>=p?Qv(p,m,t):[],totalSize:a,startIndex:p,endIndex:m,scrollOffset:s,viewportHeight:i}}let a=Math.max(typeof e.estimateSize==`number`?e.estimateSize:1,1),o=n*a,s=Math.max(o-i,0),c=Jv(e.scrollOffset??0,0,s),l=Math.floor(c/a),u=Math.ceil(i/a),d=Math.min(l+u,Math.max(n-1,0)),f=n===0?0:Jv(l-r,0,n-1),p=n===0?-1:Jv(d+r,0,n-1);return{items:p>=f?Zv(f,p,a):[],totalSize:o,startIndex:f,endIndex:p,scrollOffset:c,viewportHeight:i}}function ey(e){let t=e,n=null;function r(){if(typeof t.estimateSize!=`function`)return null;let e=Math.max(t.count,0);if(n&&n.fn===t.estimateSize&&n.count===e)return n.offsets;let r=t.estimateSize,i=Array(e+1);i[0]=0;for(let t=0;t<e;t+=1)i[t+1]=i[t]+Math.max(r(t),1);return n={fn:r,count:e,offsets:i},i}let i=$v(t,r()),a=new Set;function o(){a.forEach(e=>e())}function s(){let e=$v(t,r());Xv(i,e)||(i=e,o())}return{setOptions(e){let n={...t,...e};Yv(t,n)||(t=n,s())},setScrollOffset(e){(t.scrollOffset??0)!==e&&(t={...t,scrollOffset:e},s())},setViewportHeight(e){t.viewportHeight!==e&&(t={...t,viewportHeight:e},s())},scrollToIndex(e){let n=Jv(e,0,Math.max(t.count-1,0)),a=i.totalSize,o;if(typeof t.estimateSize==`function`){let e=r();if(e)o=e[n]??0;else{let e=0,r=t.estimateSize;for(let t=0;t<n;t+=1)e+=Math.max(r(t),1);o=e}}else o=n*Math.max(t.estimateSize,1);let c=Math.max(a-t.viewportHeight,0),l=Jv(o,0,c);(t.scrollOffset??0)!==l&&(t={...t,scrollOffset:l},s())},getVirtualItems(){return i.items},getTotalSize(){return i.totalSize},getOffsetForIndex(e){if(e<=0)return 0;let n=Math.max(t.count,0),i=Math.min(e,n);if(typeof t.estimateSize==`function`){let e=r();if(e)return e[i]??0;let n=0,a=t.estimateSize;for(let e=0;e<i;e+=1)n+=Math.max(a(e),1);return n}return i*Math.max(t.estimateSize,1)},getSizeForIndex(e){return e<0||e>=t.count?0:typeof t.estimateSize==`function`?Math.max(t.estimateSize(e),1):Math.max(t.estimateSize,1)},getState(){return i},subscribe(e){return a.add(e),()=>a.delete(e)}}}function ty(e){let t=ey(e),n=I(0);return t.subscribe(()=>{L(n,H(n)+1)}),{get version(){return H(n)},setOptions:t.setOptions,setScrollOffset:t.setScrollOffset,setViewportHeight:t.setViewportHeight,scrollToIndex:t.scrollToIndex,getVirtualItems:t.getVirtualItems,getTotalSize:t.getTotalSize,getOffsetForIndex:t.getOffsetForIndex,getSizeForIndex:t.getSizeForIndex,getState:t.getState}}function ny(e){let t=ey({count:e.count,estimateSize:e.estimateSize??140,viewportHeight:e.viewportWidth,scrollOffset:e.scrollOffset??0,overscan:e.overscan??4});return{...t,setViewportWidth(e){t.setViewportHeight(e)},setHorizontalOffset(e){t.setScrollOffset(e)}}}function ry(e){return!e||typeof e==`function`?[]:e.map(e=>typeof e==`string`||typeof e==`number`?{value:e,label:String(e)}:{value:e.value,label:e.label??String(e.value),color:e.color})}function iy(e,t,n){let r=e.replace(/-native$/,``);if(r===`number`){let e=Number(t);return Number.isFinite(e)?e:null}if(r===`rating`){let e=Number(t);return Number.isFinite(e)?Math.max(0,Math.min(5,Math.round(e))):0}if(r===`color`)return String(t??``).trim()||`#000000`;if(r===`date`){let e=new Date(String(t));return Number.isNaN(e.getTime())?null:e.toISOString()}if(r===`datetime`){let e=new Date(String(t));return Number.isNaN(e.getTime())?null:e.toISOString()}if(r===`time`){let e=String(t??``).trim();if(!e)return null;let n=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!n)return null;let r=Math.max(0,Math.min(23,parseInt(n[1],10))),i=Math.max(0,Math.min(59,parseInt(n[2],10))),a=n[3]?Math.max(0,Math.min(59,parseInt(n[3],10))):null,o=String(r).padStart(2,`0`),s=String(i).padStart(2,`0`);return a===null?`${o}:${s}`:`${o}:${s}:${String(a).padStart(2,`0`)}`}return r===`password`?String(t??``):r===`checkbox`?typeof t==`boolean`?t:String(t).toLowerCase()===`true`:r===`select`||r===`rich-select`?Array.isArray(t)?t[0]??null:t??null:r===`textarea`?String(t??``):Zc(r)?t:r===`list`||r===`chips`?n?.multiple?Array.isArray(t)?t.slice():t==null||t===``?[]:[t]:Array.isArray(t)?t[0]??null:t??null:String(t??``)}var ay=/[̀-ͯ]/g;function oy(e,t){if(!e)return``;let n=e.normalize(`NFD`).replace(ay,``);return t?n.toLocaleLowerCase(t):n.toLowerCase()}function sy(e,t,n){let r=String(e??``),i=oy(r,n?.locale),a=oy(String(t.value??``),n?.locale);switch(t.operator){case`contains`:return i.includes(a);case`equals`:return i===a;case`startsWith`:return i.startsWith(a);case`greaterThan`:{let n=Number(e),r=Number(t.value);return Number.isFinite(n)&&Number.isFinite(r)?n>r:String(e??``)>String(t.value??``)}case`lessThan`:{let n=Number(e),r=Number(t.value);return Number.isFinite(n)&&Number.isFinite(r)?n<r:String(e??``)<String(t.value??``)}case`between`:{let n=t.value==null?0:Number(t.value),r=t.valueTo==null?0:Number(t.valueTo),i=Number(e??0);if(Number.isFinite(i)&&Number.isFinite(n)&&Number.isFinite(r))return i>=n&&i<=r;let a=String(e??``),o=String(t.value??``),s=String(t.valueTo??``);return a>=o&&a<=s}case`isBlank`:return r.trim().length===0}}function cy(e={}){return{role:`grid`,tabindex:0,...e.activeDescendantId?{"aria-activedescendant":e.activeDescendantId}:{},...e.rowCount===void 0?{}:{"aria-rowcount":e.rowCount},...e.colCount===void 0?{}:{"aria-colcount":e.colCount}}}function ly(e={}){let{sortable:t=!1,sortDirection:n=`none`}=e;return{role:`columnheader`,...t?{"aria-sort":n}:{}}}function uy(e){return{role:`row`,...e===void 0?{}:{"aria-rowindex":e}}}function dy(e={}){let{colIndex:t,rowIndex:n,selected:r=!1,id:i}=e;return{role:`gridcell`,...i?{id:i}:{},...t===void 0?{}:{"aria-colindex":t},...n===void 0?{}:{"aria-rowindex":n},"aria-selected":r}}function fy(e,t,n){return`${e}_cell_${t}_${n}`}var py=new Set([]);function my(e){return e==null||e===``?{status:`unset`,valid:!1}:e.startsWith(`SVENTERPRISE-`)?py.has(e)?{status:`revoked`,valid:!1}:e.startsWith(`SVENTERPRISE-DEV`)?{status:`dev`,valid:!0}:e.startsWith(`SVENTERPRISE-EVAL`)?{status:`eval`,valid:!0}:{status:`licensed`,valid:!0}:{status:`invalid`,valid:!1}}var hy=`data-svgrid-enterprise-watermark`,gy=`data-svgrid-enterprise-nudged`,_y=`https://www.svgrid.com`,vy=`www.svgrid.com`,yy=5e3,by=700,xy=!1,Sy=null;function Cy(){wy(),!(typeof document>`u`||typeof window>`u`)&&(queueMicrotask(()=>Ty()),Sy||(Sy=new MutationObserver(()=>Ty()),Sy.observe(document.body,{childList:!0,subtree:!0})))}function wy(){xy||(xy=!0,!(typeof console>`u`)&&console.log(`%c @svgrid/enterprise %c User is using a Commercial version which requires a license.
|
|
127
|
-
Contact sales@jqwidgets.com for details or visit the license page: https://www.svgrid.com/pricing`,`background:#4f46e5;color:#fff;padding:2px 6px;border-radius:3px;font-weight:600`,`color:inherit`))}function Ty(){if(typeof document>`u`)return;let e=document.querySelectorAll(`.sv-grid-root, [role="grid"]`);if(e.length===0){Dy();return}document.querySelectorAll(`[${hy}="fixed"]`).forEach(e=>e.remove()),e.forEach(Ey)}function Ey(e){if(e.hasAttribute(gy))return;e.setAttribute(gy,`1`),getComputedStyle(e).position===`static`&&(e.style.position=`relative`);let t=Oy(`grid`);Ay(t,!1),e.appendChild(t),ky(t)}function Dy(){if(typeof document>`u`||document.querySelector(`[${hy}="fixed"]`))return;let e=Oy(`fixed`);Ay(e,!0),document.body.appendChild(e),ky(e)}function Oy(e){let t=document.createElement(`a`);return t.setAttribute(hy,e),t.href=_y,t.target=`_blank`,t.rel=`noopener noreferrer`,t.textContent=vy,t.title=`Unlicensed @svgrid/enterprise. Contact sales@jqwidgets.com or visit www.svgrid.com.`,t}function ky(e){if(typeof window>`u`){e.remove();return}window.setTimeout(()=>{e.style.opacity=`0`,window.setTimeout(()=>e.remove(),by)},yy)}function Ay(e,t){Object.assign(e.style,{position:t?`fixed`:`absolute`,bottom:t?`12px`:`6px`,right:t?`12px`:`8px`,zIndex:`2147483647`,background:`rgba(15,23,42,0.85)`,color:`#fff`,padding:t?`6px 10px`:`4px 8px`,borderRadius:t?`4px`:`3px`,fontFamily:`-apple-system, "Segoe UI", Roboto, sans-serif`,fontSize:t?`11px`:`10px`,lineHeight:`1.2`,textDecoration:`none`,boxShadow:t?`0 2px 12px rgba(0,0,0,0.35)`:`0 1px 4px rgba(0,0,0,0.3)`,border:`1px solid rgba(255,255,255,0.18)`,pointerEvents:`auto`,letterSpacing:`0.02em`,opacity:`1`,transition:`opacity ${by}ms ease`})}var jy=`data-svgrid-enterprise-upgrade`,My=`https://www.svgrid.com/pricing`,Ny=`https://www.svgrid.com/pricing?ref=in-app&utm_source=svgrid-enterprise&utm_medium=upgrade-prompt`,Py=!1;function Fy(e){if(Py||typeof document>`u`||typeof window>`u`||document.querySelector(`[${jy}]`))return;Py=!0;let t=Ly(e);document.body.appendChild(t),requestAnimationFrame(()=>{t.style.opacity=`1`,t.style.transform=`translateY(0)`})}function Iy(e){e.style.opacity=`0`,e.style.transform=`translateY(8px)`,window.setTimeout(()=>e.remove(),220)}function Ly(e){let t=document.createElement(`div`);return t.setAttribute(jy,`1`),t.setAttribute(`role`,`dialog`),t.setAttribute(`aria-label`,`Unlock SvGrid Pro`),Object.assign(t.style,{position:`fixed`,bottom:`16px`,right:`16px`,zIndex:`2147483646`,width:`320px`,maxWidth:`calc(100vw - 32px)`,boxSizing:`border-box`,padding:`16px 16px 14px`,background:`#0f172a`,color:`#e2e8f0`,borderRadius:`12px`,border:`1px solid rgba(99,102,241,0.4)`,boxShadow:`0 12px 40px rgba(0,0,0,0.45)`,fontFamily:`-apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,fontSize:`13px`,lineHeight:`1.45`,opacity:`0`,transform:`translateY(8px)`,transition:`opacity 220ms ease, transform 220ms ease`}),t.innerHTML=`
|
|
128
|
-
<button type="button" data-act="x" aria-label="Dismiss"
|
|
129
|
-
style="position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;
|
|
130
|
-
align-items:center;justify-content:center;background:transparent;border:0;
|
|
131
|
-
color:#94a3b8;font-size:18px;line-height:1;cursor:pointer;border-radius:6px;">×</button>
|
|
132
|
-
<div style="display:flex;align-items:center;gap:8px;margin-bottom:8px;">
|
|
133
|
-
<span style="display:inline-block;background:#4f46e5;color:#fff;font-size:10px;
|
|
134
|
-
font-weight:700;letter-spacing:0.06em;padding:2px 7px;border-radius:999px;">PRO</span>
|
|
135
|
-
<span style="font-weight:700;color:#fff;">Unlock SvGrid Pro</span>
|
|
136
|
-
</div>
|
|
137
|
-
<p style="margin:0 0 12px;color:#cbd5e1;">
|
|
138
|
-
${e?`<strong style="color:#fff">${Ry(e?String(e):`This`)}</strong> is a Pro feature.`:`You just used a <strong style="color:#fff">Pro</strong> feature.`} It runs in evaluation with a watermark - start a free trial
|
|
139
|
-
to remove it and ship to production.
|
|
140
|
-
</p>
|
|
141
|
-
<div style="display:flex;gap:8px;align-items:center;">
|
|
142
|
-
<a data-act="trial" href="${Ny}" target="_blank" rel="noopener noreferrer"
|
|
143
|
-
style="flex:1;text-align:center;background:#6366f1;color:#fff;font-weight:600;
|
|
144
|
-
text-decoration:none;padding:8px 12px;border-radius:8px;">Start free trial</a>
|
|
145
|
-
<a data-act="pricing" href="${My}" target="_blank" rel="noopener noreferrer"
|
|
146
|
-
style="color:#a5b4fc;text-decoration:none;padding:8px 6px;font-weight:600;">Pricing</a>
|
|
147
|
-
</div>
|
|
148
|
-
<p style="margin:10px 0 0;font-size:11px;color:#64748b;">
|
|
149
|
-
Already licensed? Call <code style="color:#94a3b8;">setLicenseKey()</code> at startup to hide this.
|
|
150
|
-
</p>
|
|
151
|
-
`,t.querySelector(`[data-act="x"]`)?.addEventListener(`click`,()=>Iy(t)),t.querySelector(`[data-act="trial"]`)?.addEventListener(`click`,()=>Iy(t)),t.querySelector(`[data-act="pricing"]`)?.addEventListener(`click`,()=>Iy(t)),t}function Ry(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}var zy=null;function By(e){my(zy).valid||(Cy(),Fy(e))}var Vy=`modulepreload`,Hy=function(e,t){return new URL(e,t).href},Uy={},Wy=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),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}))))}r=o(t.map(t=>{if(t=Hy(t,n),t in Uy)return;Uy[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Vy,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}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)})};Yr([`click`,`keydown`,`change`]),Yr([`click`,`keydown`,`change`]);var Gy=e=>e.map(e=>typeof e==`number`?e:Number(e)).filter(e=>!Number.isNaN(e)),Ky={sum:e=>Gy(e).reduce((e,t)=>e+t,0),avg:e=>{let t=Gy(e);return t.length===0?null:t.reduce((e,t)=>e+t,0)/t.length},min:e=>Gy(e).length===0?null:Math.min(...Gy(e)),max:e=>Gy(e).length===0?null:Math.max(...Gy(e)),count:e=>e.length,countDistinct:e=>new Set(e).size,first:e=>e[0]??null,last:e=>e[e.length-1]??null};function qy(e){if(typeof e==`function`)return e;let t=Ky[e];if(!t)throw Error(`pivot: unknown aggregator '${String(e)}'`);return t}function Jy(e,t){return e===t?0:e==null?-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:String(e).localeCompare(String(t),void 0,{numeric:!0})}function Yy(e,t,n){let r={level:0,value:null,path:[],pathKey:`__root`,children:new Map,rows:e};for(let n of e){let e=r;for(let r=0;r<t.length;r+=1){let i=n[t[r]],a=`${r}:${i===null?`__null`:String(i)}`,o=e.children.get(a);o||(o={level:r+1,value:i,path:[...e.path,i],pathKey:e.pathKey===`__root`?a:`${e.pathKey}|${a}`,children:new Map,rows:[]},e.children.set(a,o)),o.rows.push(n),e=o}}return Xy(r,n),r}function Xy(e,t){let n=Array.from(e.children.entries());n.sort(([,e],[,n])=>(t??Jy)(e.value,n.value,e.level-1)),e.children=new Map(n);for(let n of e.children.values())Xy(n,t)}function Zy(e,t){return`pv__${e.length===0?`all`:e.map(e=>Qy(e)).join(`__`)}__m${t}`}function Qy(e){return e==null?`null`:String(e).replace(/[^a-zA-Z0-9_-]/g,`_`)}function $y(e,t,n,r){let i={id:`__pivotRowHeader`,header:r,fieldFn:e=>e.__pivotLabel,width:240};function a(e){return e.children.size===0?t.map((t,n)=>{let r=Zy(e.path,n);return{id:r,header:t.label??`${t.field} (${typeof t.agg==`function`?`custom`:t.agg})`,fieldFn:e=>e[r],format:t.format,width:130}}):Array.from(e.children.values()).map(e=>({id:`pv_group_${e.pathKey}`,header:String(e.value??`(blank)`),columns:a(e)}))}let o=(e.children.size,a(e));if(n.grandTotalCol===!1)return[i,...o];let s={id:`pv_group__grand_total`,header:`Total`,columns:t.map((e,t)=>{let n=Zy([`__total`],t);return{id:n,header:e.label??`${e.field} (${typeof e.agg==`function`?`custom`:e.agg})`,fieldFn:e=>e[n],format:e.format,width:140}})};return[i,...o,s]}function eb(e,t){if(e.children.size===0){t.push(e.path);return}for(let n of e.children.values())eb(n,t)}function tb(e,t,n,r,i){let a={};for(let i of t){let t=i.length===0?e:e.filter(e=>i.every((t,r)=>e[n[r]]===t));for(let e=0;e<r.length;e+=1){let n=r[e],o=qy(n.agg),s=Zy(i,e);a[s]=o(t.map(e=>e[n.field]))}}if(i)for(let t=0;t<r.length;t+=1){let n=r[t],i=qy(n.agg),o=Zy([`__total`],t);a[o]=i(e.map(e=>e[n.field]))}return a}function nb(e,t,n){let r={};for(let n of e)for(let e=0;e<t.length;e+=1)r[Zy(n,e)]=null;if(n)for(let e=0;e<t.length;e+=1)r[Zy([`__total`],e)]=null;return r}function rb(e,t,n,r,i,a,o,s){let c=a.grandTotalCol!==!1,l=a.rowSubtotals!==!1;if(e.children.size===0){t.push({__pivotId:`row__${e.pathKey}`,__pivotKind:`leaf`,__pivotDepth:e.level,__pivotLabel:e.value===null?`(All)`:String(e.value),__pivotParentId:s,__pivotExpandable:!1,...tb(e.rows,n,r,i,c)});return}let u=e.level>0&&e.level<o.length,d=s;if(u){let a=`group__${e.pathKey}`;t.push({__pivotId:a,__pivotKind:`group`,__pivotDepth:e.level,__pivotLabel:String(e.value??`(All)`),__pivotParentId:s,__pivotExpandable:!0,...l?tb(e.rows,n,r,i,c):nb(n,i,c)}),d=a}for(let s of e.children.values())rb(s,t,n,r,i,a,o,d)}function ib(e,t){if(t.values.length===0)throw Error(`pivot: at least one value config is required`);let n=t.rows,r=t.cols,i=t.values,a=Yy(e,n,t.rowSort),o=Yy(e,r,t.colSort),s=[];eb(o,s);let c=[];return n.length===0?c.push({__pivotId:`row__all`,__pivotKind:`leaf`,__pivotDepth:0,__pivotLabel:`(All)`,__pivotParentId:null,__pivotExpandable:!1,...tb(e,s,r,i,t.grandTotalCol!==!1)}):rb(a,c,s,r,i,t,n,null),t.grandTotalRow!==!1&&c.push({__pivotId:`row__grand_total`,__pivotKind:`grandTotal`,__pivotDepth:0,__pivotLabel:`Grand total`,__pivotParentId:null,__pivotExpandable:!1,...tb(e,s,r,i,t.grandTotalCol!==!1)}),{rows:c,columns:$y(o,i,t,n.length>0?n.join(` / `):``)}}({...Ky});function ab(e,t){if(t===!0)return e.slice();let n=t instanceof Set?t:new Set(t),r=new Map;for(let t of e)r.set(t.__pivotId,t.__pivotParentId);let i=[];for(let t of e){if(t.__pivotParentId===null){i.push(t);continue}let e=t.__pivotParentId,a=!0;for(;e!==null;){if(!n.has(e)){a=!1;break}e=r.get(e)??null}a&&i.push(t)}return i}function ob(e){return e.replace(/[_-]+/g,` `).replace(/([a-z\d])([A-Z])/g,`$1 $2`).replace(/\s+/g,` `).trim().replace(/\b\w/g,e=>e.toUpperCase())}function sb(e){if(e.idField)return e.idField;let t=e.fields.filter(e=>e.primaryKey);if(t.length===1)return t[0].field;if(t.length>1)throw Error(`EntitySchema "${e.name}": multiple fields set primaryKey (${t.map(e=>e.field).join(`, `)}). Set exactly one, or use idField for a composite key.`);let n=e.fields.find(e=>e.field===`id`);if(n)return n.field;throw Error(`EntitySchema "${e.name}": no primary key. Set idField, flag a field primaryKey, or name a field "id".`)}function cb(e){if(e)return e===`slider`?`number`:e===`phone`||e===`country`||e===`mask`?`text`:e}function lb(e){switch(e){case`number`:return{cellDataType:`number`,editorType:`number`};case`boolean`:return{cellDataType:`boolean`,editorType:`checkbox`};case`date`:return{cellDataType:`date`,editorType:`date`};case`dateString`:return{cellDataType:`dateString`,editorType:`date`};case`datetime`:return{editorType:`datetime`};case`enum`:return{editorType:`select`};case`relation`:return{editorType:`select`};case`json`:return{editorType:`textarea`};default:return{cellDataType:`text`,editorType:`text`}}}function ub(e,t){return e.hidden===!0?!0:e.hidden&&typeof e.hidden==`object`?e.hidden[t]===!0:!1}function db(e){return e.fields.filter(e=>!ub(e,`grid`)).map(e=>{let{cellDataType:t,editorType:n}=lb(e.type),r=e.type===`number`&&/\$/.test(e.label??``);return{field:e.field,header:e.label??ob(e.field),editable:!e.readonly&&!e.computed,...t?{cellDataType:t}:{},...cb(e.input?.editorType)??n?{editorType:cb(e.input?.editorType)??n}:{},...e.options?{editorOptions:e.options}:{},...r?{format:{type:`currency`,currency:`USD`,options:{maximumFractionDigits:0}}}:{},...e.computed?{fieldFn:e.computed}:{},...e.column??{}}})}function fb(e){let t=sb(e);return e.fields.filter(e=>!ub(e,`form`)).map(e=>{let{editorType:n}=lb(e.type),r=e.field===t;return{field:e.field,label:e.label??ob(e.field),editorType:e.input?.editorType??n,type:e.type,required:!!e.required&&!r,readonly:!!e.readonly||r||!!e.computed,mask:e.input?.mask,step:e.input?.step,precision:e.input?.precision,prefix:e.input?.prefix,suffix:e.input?.suffix,min:e.min,max:e.max,minLength:e.minLength,maxLength:e.maxLength,pattern:e.pattern,format:e.format,options:e.options,relation:e.relation,upload:e.upload,validate:e.validate,defaultValue:e.defaultValue,placeholder:e.input?.placeholder,help:e.input?.help,span:e.input?.span??(e.type===`json`?2:1),computed:e.computed}})}async function pb(e,t){if(!e.validate)return null;let n=await e.validate[`~standard`].validate(t),r=`issues`in n?n.issues?.[0]:void 0;return r?r.message:null}async function mb(e,t){return e.hooks?.validate?await e.hooks.validate(t)??{}:{}}function hb(e){let t=e.fields.find(e=>/^(name|title|label)$/i.test(e.field));if(t)return t.field;let n=e.idField??e.fields.find(e=>e.primaryKey)?.field;return e.fields.find(e=>e.type===`text`&&e.field!==n)?.field??n??e.fields[0].field}function gb(e){let t=new Map(e.map(e=>[e.name,e]));return e.map(e=>({...e,fields:e.fields.map(e=>{if(e.type!==`relation`||!e.relation)return e;let n=t.get(e.relation.entity);return n?{...e,relation:{...e.relation,labelField:hb(n)}}:e})}))}var _b=e=>{let t=Number(e);return Number.isFinite(t)?t:0};function vb(e,t){let{dimension:n,measure:r,reduce:i}=t,a=new Map,o=new Map,s=new Map;for(let t of e){let e=n?String(t[n]??``):``;if(o.set(e,(o.get(e)??0)+1),i!==`count`){let n=_b(r?t[r]:0);a.set(e,(a.get(e)??0)+n),i===`min`&&s.set(e,Math.min(s.get(e)??1/0,n)),i===`max`&&s.set(e,Math.max(s.get(e)??-1/0,n))}}return[...o.keys()].map(e=>{let t=o.get(e),n;return n=i===`count`?t:i===`avg`?t?(a.get(e)??0)/t:0:i===`min`||i===`max`?s.get(e)??0:a.get(e)??0,{category:e,value:n}}).sort((e,t)=>t.value-e.value)}function yb(e){let t=e.fields.filter(e=>!e.primaryKey),n=t.filter(e=>e.type===`enum`||e.type===`boolean`||e.type===`text`).map(e=>e.field),r=t.filter(e=>e.type===`number`).map(e=>e.field);return{dimensions:n,measures:r,defaultDimension:t.find(e=>e.type===`enum`)?.field??t.find(e=>e.type===`boolean`)?.field??n[0]??null,defaultMeasure:r[0]??null}}function bb(e){return e==null?`create`:`edit`}function xb(e){switch(e.editorType){case`checkbox`:return`checkbox`;case`number`:return`number`;case`date`:return`date`;case`datetime`:return`datetime`;case`time`:return`time`;case`textarea`:return`textarea`;case`select`:case`rich-select`:case`list`:case`chips`:return`select`;default:return`text`}}function Sb(e){return e.type===`boolean`?!1:``}var Cb=e=>String(e).padStart(2,`0`);function wb(e){return e?`${e.getFullYear()}-${Cb(e.getMonth()+1)}-${Cb(e.getDate())}`:``}function Tb(e){return e?`${wb(e)}T${Cb(e.getHours())}:${Cb(e.getMinutes())}`:``}function Eb(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Db(e){return e??``}function Ob(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}function kb(e){return Array.isArray(e)?e.map(e=>String(e)):e==null||e===``?[]:String(e).split(`,`).map(e=>e.trim()).filter(Boolean)}function Ab(e){return e==null||e===``}var jb=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Mb=/^https?:\/\/.+/;function Nb(e,t){if(Ab(t))return null;if(e.type===`number`){let n=Number(t);return Number.isFinite(n)?e.min!=null&&n<e.min?`${e.label} must be at least ${e.min}`:e.max!=null&&n>e.max?`${e.label} must be at most ${e.max}`:null:`${e.label} must be a number`}let n=String(t);return e.minLength!=null&&n.length<e.minLength?`${e.label} must be at least ${e.minLength} characters`:e.maxLength!=null&&n.length>e.maxLength?`${e.label} must be at most ${e.maxLength} characters`:e.format===`email`&&!jb.test(n)?`${e.label} must be a valid email`:e.format===`url`&&!Mb.test(n)?`${e.label} must be a valid URL`:e.pattern&&!new RegExp(e.pattern).test(n)?`${e.label} is not in the right format`:null}function Pb(e,t){let n={},r=t??null;for(let t of fb(e))r&&t.field in r?n[t.field]=r[t.field]:t.defaultValue===void 0?n[t.field]=Sb(t):n[t.field]=t.defaultValue;return n}async function Fb(e,t){let n={};for(let r of fb(e)){if(r.readonly)continue;let e=t[r.field];if(r.required&&r.type!==`boolean`&&Ab(e)){n[r.field]=`${r.label} is required`;continue}let i=Nb(r,e);if(i){n[r.field]=i;continue}if(!Ab(e)){let t=await pb(r,e);t&&(n[r.field]=t)}}let r=await mb(e,t);for(let[e,t]of Object.entries(r))n[e]||(n[e]=t);return n}function Ib(e,t){if(e.type===`number`){if(Ab(t))return null;let e=Number(t);return Number.isFinite(e)?e:null}return e.type===`boolean`?t===!0||t===`true`:t}function Lb(e,t){let n={};for(let r of fb(e))r.readonly||(n[r.field]=Ib(r,t[r.field]));return n}function Rb(e,t){let n=sb(e);return String(t[n])}function zb(e){let t=[];for(let[n,r]of Object.entries(e?.columns??{})){if(r.selectedValues?.length){t.push({column:n,op:`in`,values:r.selectedValues});continue}let e=(r.value??``).trim();switch(r.operator){case`isBlank`:t.push({column:n,op:`isNull`});break;case`between`:{let i=(r.valueTo??``).trim();(e||i)&&t.push({column:n,op:`between`,value:e,valueTo:i||e});break}case`startsWith`:e&&t.push({column:n,op:`startsWith`,value:e});break;case`equals`:e&&t.push({column:n,op:`eq`,value:e});break;case`greaterThan`:e&&t.push({column:n,op:`gt`,value:e});break;case`lessThan`:e&&t.push({column:n,op:`lt`,value:e});break;default:e&&t.push({column:n,op:`contains`,value:e});break}}return{predicates:t,search:e?.global?.trim()||void 0}}var Bb=[[/(^|_)ssn$|social.?security/,`###-##-####`],[/(^|_)vin$/,`*****************`],[/plate|registration/,`AAA-####`],[/isbn/,`###-#-#####-###-#`],[/zip|postal/,`#####`],[/(^|_)ein$|tax.?id|vat/,`##-#######`]];function Vb(e){if(e.primaryKey||e.readonly||e.type===`relation`||e.options?.length||e.input?.editorType)return e;let t=String(e.field).toLowerCase(),n=(t,n={})=>({...e,input:{...e.input??{},editorType:t,...n}});if(e.type===`text`){if(e.format==null){if(/e-?mail/.test(t))return{...e,format:`email`};if(/url|website|link|homepage|domain/.test(t))return{...e,format:`url`}}if(/phone|mobile|(^|_)fax$|(^|_)tel(ephone)?$/.test(t))return n(`phone`);if(/(^|_)country$|nationality/.test(t))return n(`country`);if(/password|passwd|(^|_)pwd$/.test(t))return{...n(`password`),hidden:{grid:!0}};if(/colou?r$/.test(t))return n(`color`);for(let[e,r]of Bb)if(e.test(t))return n(`mask`,{mask:r})}if(e.type===`number`){if(/(^|_)(rating|score|stars|satisfaction|csat)$/.test(t))return n(`rating`);if(/percent|progress|probability|completion|utili[sz]ation|occupancy|fuel.?level/.test(t))return n(`slider`)}return e}function Hb(e){return{...e,fields:e.fields.map(Vb)}}function Ub(e,t){if(!t.length)throw Error(`buildEntitySchema: "${e}" has no columns`);let n=t.find(e=>e.primaryKey)?.name??t.find(e=>/^id$/i.test(e.name))?.name??t[0].name;return{name:e,label:e,idField:n,fields:t.map(e=>{let t=e.name===n;if(e.references&&!t){let t={field:e.name,type:`relation`};return t.relation={entity:e.references.table,foreignKey:e.name,labelField:e.references.labelField??`name`},e.dbColumn&&(t.dbColumn=e.dbColumn),e.required&&(t.required=!0),t}let r=e.enumValues?.length?`enum`:e.type??`text`,i={field:e.name,type:r};return e.dbColumn&&(i.dbColumn=e.dbColumn),t?(i.primaryKey=!0,i.readonly=!0):e.required&&(i.required=!0),r===`enum`&&e.enumValues?.length&&(i.options=e.enumValues.map(e=>({value:e,label:e}))),Vb(i)})}}var Wb=e=>e.op===`in`?`in:${e.values.join(`,`)}`:e.op===`isNull`?`isNull`:e.op===`between`?`between:${e.value},${e.valueTo}`:`${e.op}:${e.value}`;function Gb(e){let t={offset:String(e.startRow),limit:String(e.endRow-e.startRow)};e.sortModel.length&&(t.sort=e.sortModel.map(e=>(e.desc?`-`:``)+e.id).join(`,`));let{predicates:n,search:r}=zb(e.filterModel);r&&(t.search=r);for(let e of n)t[e.column]=Wb(e);return t}function Kb(e,t){if(Array.isArray(e)){let n=t.headers.get(`content-range`),r=n&&/\/(\d+)\s*$/.exec(n);return{rows:e,rowCount:r?Number(r[1]):e.length}}let n=e??{},r=n.rows??n.data??n.items??[];return{rows:r,rowCount:Number(n.rowCount??n.total??n.count??r.length)}}function qb(e){By(`Studio`);let t=e.fetch??globalThis.fetch,n=e.idField??(e.schema?sb(e.schema):`id`),r=e.url.replace(/\/+$/,``),i=e.buildQuery??Gb,a=e.parse??Kb,o=t=>({...typeof e.headers==`function`?e.headers():e.headers??{},...t}),s=async(e,n)=>{let r=await t(e,n);if(!r.ok)throw Error(`REST ${n?.method??`GET`} ${e} -> ${r.status} ${r.statusText}`);return{body:r.status===204?void 0:await r.json().catch(()=>void 0),res:r}};return{async getRows(t){let n=new URLSearchParams({...e.query,...i(t)}).toString(),{body:c,res:l}=await s(n?`${r}?${n}`:r,{headers:o()});return a(c,l)},async createRow(e){let{body:t}=await s(r,{method:`POST`,headers:o({"content-type":`application/json`}),body:JSON.stringify(e)});return t??e},async updateRow(e,t){let{body:i}=await s(`${r}/${encodeURIComponent(e)}`,{method:`PATCH`,headers:o({"content-type":`application/json`}),body:JSON.stringify(t)});return i??{...t,[n]:e}},async deleteRow(e){await s(`${r}/${encodeURIComponent(e)}`,{method:`DELETE`,headers:o()})}}}var Jb=e=>{let t=Number(e);return Number.isFinite(t)?t:0};function Yb(e,t){let{measure:n,reduce:r}=t;if(r===`count`||!n)return e.length;if(e.length===0)return 0;let i=e.map(e=>Jb(e[n]));return r===`sum`?i.reduce((e,t)=>e+t,0):r===`avg`?i.reduce((e,t)=>e+t,0)/i.length:r===`min`?Math.min(...i):Math.max(...i)}function Xb(e,t){let n=new Map;for(let r of e){let e=String(r[t.trendField]??``);e!==``&&(n.get(e)??n.set(e,[]).get(e)).push(r)}return[...n.keys()].sort().map(e=>Yb(n.get(e),{measure:t.measure,reduce:t.reduce}))}function Zb(e,t=120,n=30,r=2){if(e.length===0)return``;let i=Math.min(...e),a=Math.max(...e)-i||1,o=e.length>1?(t-r*2)/(e.length-1):0;return e.map((e,t)=>`${(r+t*o).toFixed(1)},${(r+(n-r*2)*(1-(e-i)/a)).toFixed(1)}`).join(` `)}function Qb(e){if(e.length<2)return null;let t=e.find(e=>e!==0),n=e[e.length-1];return t==null||t===0?null:(n-t)/Math.abs(t)*100}function $b(e,t){return t===`currency`?`$`+e.toLocaleString(void 0,{maximumFractionDigits:0}):t===`percent`?e.toLocaleString(void 0,{maximumFractionDigits:1})+`%`:t===`compact`?new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}).format(e):e.toLocaleString(void 0,{maximumFractionDigits:1})}function ex(e){let{defaultDimension:t,defaultMeasure:n}=yb(e),r=[{kind:`kpi`,label:`Total ${e.label??e.name}`,reduce:`count`}];return n&&(r.push({kind:`kpi`,label:`Total ${n}`,measure:n,reduce:`sum`}),r.push({kind:`kpi`,label:`Avg ${n}`,measure:n,reduce:`avg`})),t&&r.push({kind:`chart`,label:n?`${n} by ${t}`:`Count by ${t}`,dimension:t,measure:n??void 0,reduce:n?`sum`:`count`,type:`bar`,span:2}),{widgets:r}}var tx=e=>e;function nx(e){let t=e-1;return t*t*t+1}function rx(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function ix(e,{delay:t=0,duration:n=400,easing:r=tx}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function ax(e,{delay:t=0,duration:n=400,easing:r=nx,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=rx(i),[p,m]=rx(a);return{delay:t,duration:n,easing:r,css:(e,t)=>`
|
|
152
|
-
transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m});
|
|
153
|
-
opacity: ${c-u*t}`}}function ox(e){let t=e-1;return t*t*t+1}var sx=W(`<img class="sv-file__preview svelte-dmv01k" alt="preview"/>`),cx=W(`<span class="sv-file__name svelte-dmv01k"> </span>`),lx=W(`<button type="button" class="sv-file__clear svelte-dmv01k" aria-label="Remove" title="Remove">×</button>`),ux=W(`<p class="sv-file__err svelte-dmv01k"> </p>`),dx=W(`<div class="sv-file svelte-dmv01k"><!> <div class="sv-file__row svelte-dmv01k"><button type="button" class="sv-file__btn svelte-dmv01k"> </button> <!> <!> <input class="sv-file__input svelte-dmv01k" type="file"/></div> <!></div>`);function fx(e,t){Ze(t,!0);let n=$(t,`image`,3,!1),r=$(t,`disabled`,3,!1),i=I(!1),a=I(null),o=I(``),s=I(void 0),c=F(()=>typeof t.value==`string`?t.value:``);function l(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(Error(`Could not read the file`)),r.readAsDataURL(e)})}async function u(e){let n=e.currentTarget.files?.[0];if(n){L(o,n.name,!0),L(a,null),L(i,!0);try{t.onChange(t.upload?await t.upload(n):await l(n))}catch(e){L(a,e instanceof Error?e.message:`Upload failed`,!0)}finally{L(i,!1)}}}function d(){t.onChange(``),L(o,``),H(s)&&(H(s).value=``)}var f=dx(),p=R(f),m=e=>{var t=sx();V(()=>Q(t,`src`,H(c))),K(e,t)};J(p,e=>{n()&&H(c)&&e(m)});var h=B(p,2),g=R(h),_=R(g,!0);N(g);var v=B(g,2),y=e=>{var t=cx(),n=R(t,!0);N(t),V(()=>{Q(t,`title`,H(o)||H(c)),q(n,H(o)||`Uploaded file`)}),K(e,t)};J(v,e=>{H(c)&&!n()&&e(y)});var b=B(v,2),x=e=>{var t=lx();U(`click`,t,d),K(e,t)};J(b,e=>{H(c)&&!r()&&e(x)});var S=B(b,2);ya(S,e=>L(s,e),()=>H(s)),N(h);var C=B(h,2),w=e=>{var t=ux(),n=R(t,!0);N(t),V(()=>q(n,H(a))),K(e,t)};J(C,e=>{H(a)&&e(w)}),N(f),V(()=>{g.disabled=r(),q(_,H(i)?`Uploading…`:H(c)?`Replace`:`Choose file`),Q(S,`id`,t.id),Q(S,`accept`,t.accept),S.disabled=r()}),U(`click`,g,()=>H(s)?.click()),U(`change`,S,u),K(e,f),Qe()}Yr([`click`,`change`]);var px=0,mx=W(`<button type="button" class="sv-lookup__clear svelte-14bljj4" title="Clear" aria-label="Clear">×</button>`),hx=W(`<li class="sv-lookup__msg svelte-14bljj4">Searching…</li>`),gx=W(`<li class="sv-lookup__msg svelte-14bljj4">No matches</li>`),_x=W(`<li><button type="button" role="option"> </button></li>`),vx=W(`<div class="sv-lookup svelte-14bljj4"><div class="sv-lookup__control svelte-14bljj4"><input class="sv-lookup__input svelte-14bljj4" type="text" role="combobox" aria-autocomplete="list" autocomplete="off"/> <!></div> <ul class="sv-lookup__menu svelte-14bljj4" role="listbox"><!></ul></div>`);function yx(e,t){Ze(t,!0);let n=$(t,`placeholder`,3,`Search…`),r=$(t,`disabled`,3,!1),i=$(t,`required`,3,!1),a=$(t,`debounceMs`,3,200),o=`sv-lookup-list-${++px}`,s=I(!1),c=I(``),l=I(un([])),u=I(!1),d=I(-1),f=I(``),p=I(void 0),m,h=0,g=0;Ln(()=>{let e=t.value;if(e==null||e===``){L(f,``);return}let n=++h;t.lookup.labelFor(e).then(t=>{n===h&&L(f,t??String(e),!0)})});async function _(e){let n=++g;L(u,!0);try{let r=await t.lookup.search(e);n===g&&(L(l,r,!0),L(d,r.length?0:-1,!0))}finally{n===g&&L(u,!1)}}function v(){r()||(L(s,!0),L(c,``),_(``))}function y(){L(s,!1),L(c,``),m&&clearTimeout(m)}function b(e){L(c,e.currentTarget.value,!0),L(s,!0),m&&clearTimeout(m),m=setTimeout(()=>_(H(c)),a())}function x(e){L(f,e.label,!0),t.onSelect(e.value),y()}function S(){t.onSelect(``),L(f,``),y()}function C(e){if(!H(s)&&(e.key===`ArrowDown`||e.key===`Enter`)){v();return}e.key===`ArrowDown`?(e.preventDefault(),L(d,Math.min(H(d)+1,H(l).length-1),!0)):e.key===`ArrowUp`?(e.preventDefault(),L(d,Math.max(H(d)-1,0),!0)):e.key===`Enter`?H(s)&&H(l)[H(d)]&&(e.preventDefault(),x(H(l)[H(d)])):e.key===`Escape`&&H(s)&&(e.preventDefault(),y())}function w(e){H(s)&&H(p)&&!H(p).contains(e.target)&&y()}var T=vx();Jr(`click`,mn,w);var E=R(T),D=R(E);Z(D);var O=B(D,2),ee=e=>{var t=mx();U(`click`,t,S),K(e,t)};J(O,e=>{t.value!=null&&t.value!==``&&!i()&&!r()&&e(ee)}),N(E);var te=B(E,2),ne=R(te),re=e=>{K(e,hx())},ie=e=>{K(e,gx())},ae=e=>{var t=ii();Y(z(t),19,()=>H(l),e=>e.value,(e,t,n)=>{var r=_x(),i=R(r);let a;var o=R(i,!0);N(i),N(r),V(()=>{Q(i,`aria-selected`,H(n)===H(d)),a=X(i,1,`sv-lookup__opt svelte-14bljj4`,null,a,{"is-active":H(n)===H(d)}),q(o,H(t).label)}),Jr(`mouseenter`,i,()=>L(d,H(n),!0)),U(`click`,i,()=>x(H(t))),K(e,r)}),K(e,t)};J(ne,e=>{H(u)?e(re):H(l).length===0?e(ie,1):e(ae,-1)}),N(te),N(T),ya(T,e=>L(p,e),()=>H(p)),V(()=>{Q(D,`id`,t.id),Q(D,`aria-expanded`,H(s)),Q(D,`aria-controls`,o),Q(D,`placeholder`,n()),D.disabled=r(),D.required=i(),ra(D,H(s)?H(c):H(f)),Q(te,`id`,o),Q(te,`hidden`,!H(s))}),Jr(`focus`,D,v),U(`input`,D,b),U(`keydown`,D,C),K(e,T),Qe()}Yr([`input`,`keydown`,`click`]);var bx=(e,t=S)=>{var n=Ex(),r=B(R(n)),i=e=>{K(e,Sx())};J(r,e=>{t()===`left`&&e(i)});var a=B(r),o=e=>{K(e,Cx())};J(a,e=>{t()===`right`&&e(o)});var s=B(a),c=e=>{K(e,wx())};J(s,e=>{t()===`top`&&e(c)});var l=B(s),u=e=>{K(e,Tx())};J(l,e=>{t()===`bottom`&&e(u)}),N(n),K(e,n)},xx=(e,t=S)=>{var n=kx(),r=R(n),i=e=>{var t=Dx();P(),K(e,t)},a=e=>{K(e,Ox())};J(r,e=>{t()?e(i):e(a,-1)}),N(n),K(e,n)},Sx=G(`<rect x="1.5" y="1.5" width="4" height="11" fill="currentColor"></rect>`),Cx=G(`<rect x="8.5" y="1.5" width="4" height="11" fill="currentColor"></rect>`),wx=G(`<rect x="1.5" y="1.5" width="11" height="4" fill="currentColor"></rect>`),Tx=G(`<rect x="1.5" y="8.5" width="11" height="4" fill="currentColor"></rect>`),Ex=G(`<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true"><rect x="1.5" y="1.5" width="11" height="11" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.2"></rect><!><!><!><!></svg>`),Dx=G(`<rect x="4" y="1.5" width="8.5" height="8.5" rx="1.3"></rect><rect x="1.5" y="4" width="8.5" height="8.5" rx="1.3" fill="var(--ep-bg)"></rect>`,1),Ox=G(`<rect x="1.5" y="1.5" width="11" height="11" rx="1.5"></rect>`),kx=G(`<svg width="14" height="14" viewBox="0 0 14 14" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3"><!></svg>`),Ax=W(`<button type="button"><!></button>`),jx=W(`<!> <button type="button"><!></button>`,1),Mx=W(`<button type="button" class="sv-ep__close svelte-gh61ko" aria-label="Close">×</button>`),Nx=W(`<span class="sv-ep-field__req svelte-gh61ko" aria-hidden="true">*</span>`),Px=W(`<div class="sv-ep-field__dropdown svelte-gh61ko"><!></div>`),Fx=W(`<input type="text" disabled="" class="svelte-gh61ko"/>`),Ix=W(`<div class="sv-ep-field__dropdown svelte-gh61ko"><!></div>`),Lx=W(`<textarea class="svelte-gh61ko"></textarea>`),Rx=W(`<input type="number" class="svelte-gh61ko"/>`),zx=W(`<input type="date" class="svelte-gh61ko"/>`),Bx=W(`<input type="datetime-local" class="svelte-gh61ko"/>`),Vx=W(`<input type="time" class="svelte-gh61ko"/>`),Hx=W(`<input type="text" class="svelte-gh61ko"/>`),Ux=W(`<p class="sv-ep-field__help svelte-gh61ko"> </p>`),Wx=W(`<p class="sv-ep-field__err svelte-gh61ko"> </p>`),Gx=W(`<div><label class="svelte-gh61ko"> <!></label> <!> <!> <!></div>`),Kx=W(`<p class="sv-ep__submit-err svelte-gh61ko" role="alert"> </p>`),qx=W(`<button type="button" class="sv-ep__btn svelte-gh61ko">Cancel</button>`),Jx=W(`<form class="sv-ep__form svelte-gh61ko"><header><h2 class="svelte-gh61ko"> </h2> <div class="sv-ep__tools svelte-gh61ko"><!> <!></div></header> <div class="sv-ep__body svelte-gh61ko"></div> <!> <footer class="sv-ep__footer svelte-gh61ko"><!> <button type="submit" class="sv-ep__btn sv-ep__btn--primary svelte-gh61ko"> </button></footer></form>`),Yx=W(`<div class="sv-ep sv-ep--drawer svelte-gh61ko" role="dialog" aria-modal="true" tabindex="-1"><!></div>`),Xx=W(`<div class="sv-ep__rz sv-ep__rz--e svelte-gh61ko"></div> <div class="sv-ep__rz sv-ep__rz--s svelte-gh61ko"></div> <div class="sv-ep__rz sv-ep__rz--se svelte-gh61ko"></div>`,1),Zx=W(`<div class="sv-ep__rz sv-ep__rz--e svelte-gh61ko"></div>`),Qx=W(`<div class="sv-ep__rz sv-ep__rz--w svelte-gh61ko"></div>`),$x=W(`<div class="sv-ep__rz sv-ep__rz--s svelte-gh61ko"></div>`),eS=W(`<div class="sv-ep__rz sv-ep__rz--n svelte-gh61ko"></div>`),tS=W(`<div role="dialog" aria-modal="true" tabindex="-1"><!> <!></div>`),nS=W(`<div role="presentation"><!></div>`),rS=W(`<div class="sv-ep sv-ep--inline svelte-gh61ko" role="dialog"><!></div>`);function iS(e,t){Ze(t,!0);let n=e=>{var n=Jx(),r=R(n);let i;var a=R(r),u=R(a,!0);N(a);var _=B(a,2),v=R(_),y=e=>{var t=jx(),n=z(t);Y(n,16,()=>[`left`,`top`,`bottom`,`right`],e=>e,(e,t)=>{var n=Ax();let r;bx(R(n),()=>t),N(n),V(()=>{r=X(n,1,`sv-ep__pin svelte-gh61ko`,null,r,{"is-active":H(x)===t}),Q(n,`title`,H(x)===t?`Unpin`:`Pin ${t}`),Q(n,`aria-label`,H(x)===t?`Unpin`:`Pin ${t}`)}),U(`click`,n,()=>ee(t)),K(e,n)});var r=B(n,2);let i;xx(R(r),()=>H(w)),N(r),V(()=>{i=X(r,1,`sv-ep__pin svelte-gh61ko`,null,i,{"is-active":H(w)}),Q(r,`title`,H(w)?`Restore`:`Maximize`),Q(r,`aria-label`,H(w)?`Restore`:`Maximize`)}),U(`click`,r,te),K(e,t)};J(v,e=>{H(b)&&e(y)});var S=B(v,2),C=e=>{var t=Mx();U(`click`,t,g),K(e,t)};J(S,e=>{t.onCancel&&e(C)}),N(_),N(r);var T=B(r,2);Y(T,21,()=>H(o),e=>e.field,(e,n)=>{let r=F(()=>xb(H(n))),i=F(()=>H(n).relation?t.lookups?.[H(n).field]:void 0),a=F(()=>t.dependentOptions?.[H(n).field]);var o=Gx();let c;var l=R(o),u=R(l,!0),p=B(u),m=e=>{K(e,Nx())};J(p,e=>{H(n).required&&!H(n).readonly&&e(m)}),N(l);var h=B(l,2),g=e=>{{let r=F(()=>`sv-ef-${H(n).field}`),i=F(()=>t.uploads?.[H(n).field]);fx(e,{get id(){return H(r)},get value(){return H(d)[H(n).field]},get accept(){return H(n).upload.accept},get image(){return H(n).upload.image},get disabled(){return H(n).readonly},get upload(){return H(i)},onChange:e=>H(d)[H(n).field]=e})}},_=e=>{var t=Px(),r=R(t);{let e=F(()=>H(a)(H(d))),t=F(()=>H(n).required?`Select…`:`—`);Yo(r,{get options(){return H(e)},get value(){return H(d)[H(n).field]},autoOpen:!1,get placeholder(){return H(t)},onChange:e=>H(d)[H(n).field]=e})}N(t),K(e,t)},v=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(n).placeholder??`Search…`);yx(e,{get id(){return H(t)},get value(){return H(d)[H(n).field]},get lookup(){return H(i)},onSelect:e=>H(d)[H(n).field]=e,get required(){return H(n).required},get disabled(){return H(n).readonly},get placeholder(){return H(r)}})}},y=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>!!H(d)[H(n).field]);dh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get checked(){return H(r)},get disabled(){return H(n).readonly},onChange:e=>H(d)[H(n).field]=e})}},b=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>Eb(H(d)[H(n).field])),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).required&&!H(n).readonly);vh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get min(){return H(n).min},get max(){return H(n).max},get step(){return H(n).step},get precision(){return H(n).precision},get prefix(){return H(n).prefix},get suffix(){return H(n).suffix},get disabled(){return H(n).readonly},get invalid(){return H(i)},get required(){return H(a)},get placeholder(){return H(n).placeholder},onChange:e=>H(d)[H(n).field]=Db(e)})}},x=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]||`#3b82f6`),i=F(()=>!!H(f)[H(n).field]);Hh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get disabled(){return H(n).readonly},get invalid(){return H(i)},onChange:e=>H(d)[H(n).field]=e})}},S=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??``),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).required&&!H(n).readonly);Eh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get disabled(){return H(n).readonly},get invalid(){return H(i)},get required(){return H(a)},get placeholder(){return H(n).placeholder},onChange:e=>H(d)[H(n).field]=e})}},C=e=>{let t=F(()=>H(n).min??0),r=F(()=>H(n).max??(H(n).editorType===`rating`?5:100));{let i=F(()=>`sv-ef-${H(n).field}`),a=F(()=>Ob(H(d)[H(n).field],H(t))),o=F(()=>H(n).editorType===`rating`?H(r)-H(t)+1:void 0);_g(e,{get id(){return H(i)},get ariaLabel(){return H(n).label},get value(){return H(a)},get min(){return H(t)},get max(){return H(r)},step:1,get ticks(){return H(o)},get disabled(){return H(n).readonly},onChange:e=>H(d)[H(n).field]=e})}},w=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??``),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).required&&!H(n).readonly);Ih(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get disabled(){return H(n).readonly},get invalid(){return H(i)},get required(){return H(a)},get placeholder(){return H(n).placeholder},onChange:e=>H(d)[H(n).field]=e})}},T=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??null),i=F(()=>!!H(f)[H(n).field]);ag(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get disabled(){return H(n).readonly},get invalid(){return H(i)},get placeholder(){return H(n).placeholder},onChange:e=>H(d)[H(n).field]=e})}},E=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??``),i=F(()=>H(n).mask??``),a=F(()=>!!H(f)[H(n).field]),o=F(()=>H(n).required&&!H(n).readonly);Mh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get mask(){return H(i)},get disabled(){return H(n).readonly},get invalid(){return H(a)},get required(){return H(o)},get placeholder(){return H(n).placeholder},onChange:e=>H(d)[H(n).field]=e})}},D=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??null),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).required&&!H(n).readonly),o=F(()=>H(n).placeholder??`yyyy-mm-dd`);Jc(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},dropDownDisplayMode:`calendar`,formatString:`yyyy-MM-dd`,nullable:!0,get disabled(){return H(n).readonly},get invalid(){return H(i)},get required(){return H(a)},get placeholder(){return H(o)},onChange:e=>H(d)[H(n).field]=wb(e)})}},O=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>H(d)[H(n).field]??null),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).required&&!H(n).readonly),o=F(()=>H(n).placeholder??`yyyy-mm-dd hh:mm`);Jc(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},formatString:`yyyy-MM-dd HH:mm`,nullable:!0,get disabled(){return H(n).readonly},get invalid(){return H(i)},get required(){return H(a)},get placeholder(){return H(o)},onChange:e=>H(d)[H(n).field]=Tb(e)})}},ee=e=>{{let t=F(()=>`sv-ef-${H(n).field}`),r=F(()=>kb(H(d)[H(n).field])),i=F(()=>!!H(f)[H(n).field]),a=F(()=>H(n).placeholder??`Add…`);Yh(e,{get id(){return H(t)},get ariaLabel(){return H(n).label},get value(){return H(r)},get disabled(){return H(n).readonly},get invalid(){return H(i)},get placeholder(){return H(a)},onChange:e=>H(d)[H(n).field]=e})}},te=e=>{var t=ii(),r=z(t),i=e=>{var t=Fx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),ra(t,H(d)[H(n).field]??``)}),K(e,t)},a=e=>{var t=Ix(),r=R(t);{let e=F(()=>s(H(n))),t=F(()=>H(n).required?`Select…`:`—`);Yo(r,{get options(){return H(e)},get value(){return H(d)[H(n).field]},autoOpen:!1,get placeholder(){return H(t)},onChange:e=>H(d)[H(n).field]=e})}N(t),K(e,t)};J(r,e=>{H(n).readonly?e(i):e(a,-1)}),K(e,t)},ne=e=>{var t=Lx();Dn(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly,Q(t,`placeholder`,H(n).placeholder)}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)},re=e=>{var t=Rx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly,Q(t,`placeholder`,H(n).placeholder)}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)},ie=e=>{var t=zx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)},ae=e=>{var t=Bx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)},oe=e=>{var t=Vx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)},se=e=>{var t=Hx();Z(t),V(()=>{Q(t,`id`,`sv-ef-${H(n).field}`),t.disabled=H(n).readonly,Q(t,`placeholder`,H(n).placeholder)}),fa(t,()=>H(d)[H(n).field],e=>H(d)[H(n).field]=e),K(e,t)};J(h,e=>{H(n).upload?e(g):H(a)?e(_,1):H(i)?e(v,2):H(n).editorType===`checkbox`?e(y,3):H(n).editorType===`number`?e(b,4):H(n).editorType===`color`?e(x,5):H(n).editorType===`password`?e(S,6):H(n).editorType===`rating`||H(n).editorType===`slider`?e(C,7):H(n).editorType===`phone`?e(w,8):H(n).editorType===`country`?e(T,9):H(n).editorType===`mask`?e(E,10):H(n).editorType===`date`?e(D,11):H(n).editorType===`datetime`?e(O,12):H(n).editorType===`chips`?e(ee,13):H(r)===`select`?e(te,14):H(r)===`textarea`?e(ne,15):H(r)===`number`?e(re,16):H(r)===`date`?e(ie,17):H(r)===`datetime`?e(ae,18):H(r)===`time`?e(oe,19):e(se,-1)});var ce=B(h,2),le=e=>{var t=Ux(),r=R(t,!0);N(t),V(()=>q(r,H(n).help)),K(e,t)};J(ce,e=>{H(n).help&&!H(f)[H(n).field]&&e(le)});var ue=B(ce,2),k=e=>{var t=Wx(),r=R(t,!0);N(t),V(()=>q(r,H(f)[H(n).field])),K(e,t)};J(ue,e=>{H(f)[H(n).field]&&e(k)}),N(o),V(()=>{c=X(o,1,`sv-ep-field svelte-gh61ko`,null,c,{"sv-ep-field--wide":H(n).span===2,"sv-ep-field--error":!!H(f)[H(n).field]}),Q(l,`for`,`sv-ef-${H(n).field}`),q(u,H(n).label)}),K(e,o)}),N(T);var E=B(T,2),D=e=>{var t=Kx(),n=R(t,!0);N(t),V(()=>q(n,H(m))),K(e,t)};J(E,e=>{H(m)&&e(D)});var O=B(E,2),re=R(O),ie=e=>{var t=qx();V(()=>t.disabled=H(p)),U(`click`,t,g),K(e,t)};J(re,e=>{t.onCancel&&e(ie)});var ae=B(re,2),oe=R(ae,!0);N(ae),N(O),N(n),V(()=>{i=X(r,1,`sv-ep__header svelte-gh61ko`,null,i,{"sv-ep__header--drag":H(b)&&H(x)===`none`&&!H(w)}),q(u,H(l)),ae.disabled=H(p),q(oe,H(p)?`Saving…`:t.submitLabel??(H(c)===`create`?`Create`:`Save`))}),Jr(`submit`,n,h),U(`pointerdown`,r,function(...e){(H(b)?ne:void 0)?.apply(this,e)}),K(e,n)},r=$(t,`row`,3,null),i=$(t,`open`,3,!0),a=$(t,`presentation`,3,`drawer`),o=F(()=>fb(t.schema)),s=e=>e.required?e.options??[]:[{value:``,label:`—`},...e.options??[]],c=F(()=>bb(r())),l=F(()=>t.title??`${H(c)===`create`?`New`:`Edit`} ${t.schema.label??t.schema.name}`),u=F(()=>a()!==`inline`),d=I(un({})),f=I(un({})),p=I(!1),m=I(null);Ln(()=>{L(d,Pb(t.schema,r()),!0),L(f,{},!0),L(m,null)}),Ln(()=>{if(t.dependentOptions)for(let[e,n]of Object.entries(t.dependentOptions)){let t=H(d)[e];t==null||t===``||n(H(d)).some(e=>String(e.value)===String(t))||(H(d)[e]=``)}}),Ln(()=>{for(let e of H(o)){if(!e.computed)continue;let t=e.computed(H(d));H(d)[e.field]!==t&&(H(d)[e.field]=t)}});async function h(e){e.preventDefault(),L(m,null);let n=await Fb(t.schema,H(d));if(L(f,n,!0),!(Object.keys(n).length>0)){L(p,!0);try{await t.onSubmit({mode:H(c),id:H(c)===`edit`&&r()?Rb(t.schema,r()):null,values:Lb(t.schema,H(d))})}catch(e){L(m,e instanceof Error?e.message:String(e),!0)}finally{L(p,!1)}}}function g(){t.onCancel?.()}function _(e){e.key===`Escape`&&t.onCancel&&g()}function v(e){e.stopPropagation()}function y(e,{duration:t=240}={}){return{duration:t,easing:ox,css:e=>`opacity:${e};transform:translateY(${(1-e)*14}px) scale(${.97+.03*e})`}}let b=F(()=>a()===`modal`),x=I(`none`),S=I(null),C=I(null),w=I(!1),T=I(void 0),E=(e,t,n)=>Math.max(t,Math.min(n,e)),D=()=>t.persistKey?`svgrid.editpanel.${t.persistKey}`:null;{let e=D();if(e&&typeof localStorage<`u`)try{let t=JSON.parse(localStorage.getItem(e)??`null`);t&&(L(x,t.pin??`none`,!0),L(C,t.size??null,!0),L(w,!!t.maximized))}catch{}}Ln(()=>{let e=D();if(!e||typeof localStorage>`u`)return;let t={pin:H(x),size:H(C),maximized:H(w)};try{localStorage.setItem(e,JSON.stringify(t))}catch{}});let O=F(()=>{if(!H(b))return``;if(H(w))return`position:fixed;inset:0;width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0;`;let e=H(C)?.w,t=H(C)?.h,n=`position:fixed;max-width:none;max-height:none;border-radius:0;`;return H(x)===`left`?`${n}left:0;top:0;height:100vh;width:${e??440}px;`:H(x)===`right`?`${n}right:0;top:0;height:100vh;width:${e??440}px;`:H(x)===`top`?`${n}top:0;left:0;width:100vw;height:${t??380}px;`:H(x)===`bottom`?`${n}bottom:0;left:0;width:100vw;height:${t??380}px;`:H(S)?`position:fixed;left:${H(S).x}px;top:${H(S).y}px;width:${e??460}px;${t?`height:${t}px;`:``}max-height:none;`:`${e?`width:${e}px;`:``}${t?`height:${t}px;max-height:none;`:``}`});function ee(e){L(w,!1),L(x,H(x)===e?`none`:e,!0),H(x)!==`none`&&L(S,null)}function te(){L(w,!H(w))}function ne(e){if(!H(b)||H(x)!==`none`||H(w)||e.target.closest(`button, input, select, textarea`))return;let t=H(T)?.getBoundingClientRect();if(!t)return;H(C)||L(C,{w:t.width,h:t.height},!0),L(S,{x:t.left,y:t.top},!0);let n=t.left,r=t.top,i=e.clientX,a=e.clientY,o=t.width,s=e=>{L(S,{x:E(n+e.clientX-i,0,Math.max(0,window.innerWidth-o)),y:E(r+e.clientY-a,0,Math.max(0,window.innerHeight-40))},!0)},c=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),e.preventDefault()}function re(e,t){let n=H(T)?.getBoundingClientRect();if(!n)return;H(x)===`none`&&!H(S)&&L(S,{x:n.left,y:n.top},!0);let r=e.clientX,i=e.clientY,a=n.width,o=n.height,s=e=>{let n=a,s=o,c=e.clientX-r,l=e.clientY-i;t.includes(`e`)&&(n=Math.max(300,a+c)),t.includes(`w`)&&(n=Math.max(300,a-c)),t.includes(`s`)&&(s=Math.max(220,o+l)),t.includes(`n`)&&(s=Math.max(220,o-l)),L(C,{w:n,h:s},!0)},c=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c)};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),e.preventDefault(),e.stopPropagation()}var ie=ii();Jr(`keydown`,pn,_);var ae=z(ie),oe=e=>{var t=ii(),r=z(t),i=e=>{var t=nS(),r=R(t),i=e=>{var t=Yx();n(R(t)),N(t),V(()=>Q(t,`aria-label`,H(l))),U(`click`,t,v),Ai(3,t,()=>ax,()=>({x:460,duration:300,easing:ox})),K(e,t)},o=e=>{var t=tS();let r;var i=R(t);n(i);var a=B(i,2),o=e=>{var t=ii(),n=z(t),r=e=>{var t=Xx(),n=z(t),r=B(n,2),i=B(r,2);U(`pointerdown`,n,e=>re(e,`e`)),U(`pointerdown`,r,e=>re(e,`s`)),U(`pointerdown`,i,e=>re(e,`se`)),K(e,t)},i=e=>{var t=Zx();U(`pointerdown`,t,e=>re(e,`e`)),K(e,t)},a=e=>{var t=Qx();U(`pointerdown`,t,e=>re(e,`w`)),K(e,t)},o=e=>{var t=$x();U(`pointerdown`,t,e=>re(e,`s`)),K(e,t)},s=e=>{var t=eS();U(`pointerdown`,t,e=>re(e,`n`)),K(e,t)};J(n,e=>{H(x)===`none`?e(r):H(x)===`left`?e(i,1):H(x)===`right`?e(a,2):H(x)===`top`?e(o,3):H(x)===`bottom`&&e(s,4)}),K(e,t)};J(a,e=>{H(b)&&!H(w)&&e(o)}),N(t),ya(t,e=>L(T,e),()=>H(T)),V(()=>{r=X(t,1,`sv-ep sv-ep--modal svelte-gh61ko`,null,r,{"sv-ep--floating":H(b)}),Q(t,`data-pin`,H(x)),Ui(t,H(O)),Q(t,`aria-label`,H(l))}),U(`click`,t,v),Ai(3,t,()=>y),K(e,t)};J(r,e=>{a()===`drawer`?e(i):e(o,-1)}),N(t),V(()=>X(t,1,`sv-ep-wrap sv-ep-wrap--${a()??``}`,`svelte-gh61ko`)),U(`click`,t,g),Ai(3,t,()=>ix,()=>({duration:160})),K(e,t)},o=e=>{var t=rS();n(R(t)),N(t),V(()=>Q(t,`aria-label`,H(l))),K(e,t)};J(r,e=>{H(u)?e(i):e(o,-1)}),K(e,t)};J(ae,e=>{i()&&e(oe)}),K(e,ie),Qe()}Yr([`pointerdown`,`click`]),Yr([`click`]);var aS=W(`<div class="sv-chart__ctrl svelte-189vuul"><span>of</span> <div class="sv-chart__dd svelte-189vuul"><!></div></div>`),oS=W(`<div class="sv-chart__controls svelte-189vuul"><div class="sv-chart__ctrl svelte-189vuul"><span>Group by</span> <div class="sv-chart__dd svelte-189vuul"><!></div></div> <div class="sv-chart__ctrl svelte-189vuul"><span>Measure</span> <div class="sv-chart__dd svelte-189vuul"><!></div></div> <!> <div class="sv-chart__ctrl svelte-189vuul"><span>Type</span> <div class="sv-chart__dd svelte-189vuul"><!></div></div></div>`),sS=W(`<div class="sv-chart__plot svelte-189vuul"><!></div>`),cS=W(`<p class="sv-chart__empty svelte-189vuul">No chart-able fields in this schema.</p>`),lS=W(`<div class="sv-chart svelte-189vuul"><!> <!></div>`);function uS(e,t){Ze(t,!0);let n=$(t,`controls`,3,!0),r=$(t,`height`,3,300),i=$(t,`width`,3,460),a=$(t,`dataLabels`,3,!0),o=F(()=>yb(t.schema)),s=I(0),c=I(void 0);Ln(()=>{let e=H(c);if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e=>{let t=Math.round(e[0]?.contentRect.width??0);t>0&&t!==H(s)&&L(s,t,!0)});return t.observe(e),()=>t.disconnect()});let l=I(``),u=I(``),d=I(`sum`),f=I(`bar`),p=!1;Ln(()=>{p||(p=!0,t.dimension&&L(l,t.dimension,!0),t.measure&&L(u,t.measure,!0),t.reduce&&L(d,t.reduce,!0),t.type&&L(f,t.type,!0)),(!H(l)||!H(o).dimensions.includes(H(l)))&&L(l,H(o).defaultDimension??H(o).dimensions[0]??``,!0),(!H(u)||!H(o).measures.includes(H(u)))&&H(o).measures.length&&L(u,H(o).defaultMeasure??H(o).measures[0]??``,!0)});let m=e=>t.schema.fields.find(t=>t.field===e)?.label??ob(e),h=F(()=>H(d)===`count`?`Count`:`${H(d)[0].toUpperCase()+H(d).slice(1)} ${m(H(u))}`),g=I(un([])),_=0;Ln(()=>{if(!t.getAggregate||!H(l))return;t.refreshKey;let e={dimension:H(l),measure:H(u)||void 0,reduce:H(d),filterModel:t.filterModel},n=++_;t.getAggregate(e).then(e=>{n===_&&L(g,e,!0)})});let v=F(()=>t.getAggregate?H(g):H(l)?vb(t.rows??[],{dimension:H(l),measure:H(u)||void 0,reduce:H(d)}):[]),y=F(()=>H(o).dimensions.map(e=>({value:e,label:m(e)}))),b=F(()=>H(o).measures.map(e=>({value:e,label:m(e)}))),x=[{value:`count`,label:`Count`},{value:`sum`,label:`Sum`},{value:`avg`,label:`Average`},{value:`min`,label:`Min`},{value:`max`,label:`Max`}],S=[{value:`bar`,label:`Bar`},{value:`pie`,label:`Pie`},{value:`line`,label:`Line`},{value:`area`,label:`Area`},{value:`radar`,label:`Radar`},{value:`funnel`,label:`Funnel`},{value:`waterfall`,label:`Waterfall`},{value:`treemap`,label:`Treemap`}],C=new Set([`bar`,`line`,`area`,`waterfall`]),w=F(()=>{let e=t.schema.fields.find(e=>e.field===H(l))?.options;if(e?.length)return H(v).map(n=>e.find(e=>String(e.value)===String(n.category))?.color||t.accent||`#6366f1`)}),T=F(()=>{let e={type:H(f),categories:H(v).map(e=>e.category),series:[{label:H(h),values:H(v).map(e=>e.value),...t.accent?{color:t.accent}:{}}],width:H(s)||i(),height:r(),...H(w)?{palette:H(w)}:{}};return H(f)===`pie`&&(e.innerRadius=.6),H(f)===`treemap`&&(e.treemap={name:H(h),children:H(v).map(e=>({name:e.category,value:e.value}))}),C.has(H(f))&&(e.xAxisTitle=m(H(l)),e.yAxisTitle=H(h)),e});function E(e){t.onDrill?.(String(e.category),H(l))}var D=lS(),O=R(D),ee=e=>{var t=oS(),n=R(t),r=B(R(n),2);Yo(R(r),{get options(){return H(y)},get value(){return H(l)},autoOpen:!1,onChange:e=>L(l,String(e),!0)}),N(r),N(n);var i=B(n,2),a=B(R(i),2);Yo(R(a),{get options(){return x},get value(){return H(d)},autoOpen:!1,onChange:e=>L(d,e,!0)}),N(a),N(i);var s=B(i,2),c=e=>{var t=aS(),n=B(R(t),2);Yo(R(n),{get options(){return H(b)},get value(){return H(u)},autoOpen:!1,onChange:e=>L(u,String(e),!0)}),N(n),N(t),K(e,t)};J(s,e=>{H(d)!==`count`&&H(o).measures.length&&e(c)});var p=B(s,2),m=B(R(p),2);Yo(R(m),{get options(){return S},get value(){return H(f)},autoOpen:!1,onChange:e=>L(f,e,!0)}),N(m),N(p),N(t),K(e,t)};J(O,e=>{n()&&e(ee)});var te=B(O,2),ne=e=>{var n=sS();qv(R(n),{get spec(){return H(T)},get dataLabels(){return a()},get formatValue(){return t.formatValue},onSelect:E}),N(n),ya(n,e=>L(c,e),()=>H(c)),K(e,n)},re=e=>{K(e,cS())};J(te,e=>{H(l)?e(ne):e(re,-1)}),N(D),K(e,D),Qe()}var dS=W(`<h3 class="dash__title svelte-u451zt"> </h3>`),fS=W(`<div class="dash__kpi svelte-u451zt"><span class="dash__kpi-label svelte-u451zt"> </span> <span class="dash__kpi-value svelte-u451zt"> </span></div>`),pS=W(`<span class="dash__chart-label svelte-u451zt"> </span>`),mS=W(`<div class="dash__chart svelte-u451zt"><!> <!></div>`),hS=W(`<section class="dash svelte-u451zt"><!> <div class="dash__grid svelte-u451zt"></div></section>`);function gS(e,t){Ze(t,!0);let n=F(()=>(t.spec??ex(t.schema)).widgets),r=F(()=>t.rows??[]),i=new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}),a=(e,t)=>t?t(e):i.format(e),o=I(un([])),s=0;Ln(()=>{if(!t.getAggregate)return;t.refreshKey;let e=H(n).map(e=>e.kind===`kpi`?t.getAggregate({measure:e.measure,reduce:e.reduce,filterModel:t.filterModel}):null),r=++s;Promise.all(e.map(e=>e?e.then(e=>e[0]?.value??0):Promise.resolve(0))).then(e=>{r===s&&L(o,e,!0)})});let c=(e,n)=>t.getAggregate?H(o)[n]??0:Yb(H(r),{measure:e.measure,reduce:e.reduce});var l=hS(),u=R(l),d=e=>{var n=dS(),r=R(n,!0);N(n),V(()=>q(r,t.title)),K(e,n)};J(u,e=>{t.title&&e(d)});var f=B(u,2);Y(f,21,()=>H(n),di,(e,n,i)=>{var o=ii(),s=z(o),l=e=>{var t=fS(),r=R(t),o=R(r,!0);N(r);var s=B(r,2),l=R(s,!0);N(s),N(t),V(e=>{q(o,H(n).label),q(l,e)},[()=>a(c(H(n),i),H(n).format)]),K(e,t)},u=e=>{var i=mS(),a=R(i),o=e=>{var t=pS(),r=R(t,!0);N(t),V(()=>q(r,H(n).label)),K(e,t)};J(a,e=>{H(n).label&&e(o)});var s=B(a,2);{let e=F(()=>t.getAggregate?void 0:H(r));uS(s,{get schema(){return t.schema},get rows(){return H(e)},get getAggregate(){return t.getAggregate},get filterModel(){return t.filterModel},get dimension(){return H(n).dimension},get measure(){return H(n).measure},get reduce(){return H(n).reduce},get type(){return H(n).type},controls:!1,height:230,width:420,get refreshKey(){return t.refreshKey},onDrill:(e,n)=>t.onDrill?.(e,n)})}N(i),V(e=>Ui(i,`grid-column: span ${e??``}`),[()=>Math.min(H(n).span??2,3)]),K(e,i)};J(s,e=>{H(n).kind===`kpi`?e(l):e(u,-1)}),K(e,o)}),N(f),N(l),K(e,l),Qe()}var _S=W(`<div class="sv-board__card sv-board__sk sv-board__sk--card svelte-8xmvj6"></div>`),vS=W(`<section class="sv-board__col sv-board__col--skeleton svelte-8xmvj6"><header class="sv-board__colhead svelte-8xmvj6"><span class="sv-board__sk sv-board__sk--head svelte-8xmvj6"></span></header> <div class="sv-board__cards svelte-8xmvj6"></div></section>`),yS=W(`<div class="sv-board__blank svelte-8xmvj6"><div class="sv-board__blank-mark svelte-8xmvj6" aria-hidden="true"></div> <p class="svelte-8xmvj6">No records yet. New items will appear as cards here.</p></div>`),bS=W(`<div class="sv-board__card-sub svelte-8xmvj6"> </div>`),xS=W(`<span class="sv-board__badge svelte-8xmvj6"> </span>`),SS=W(`<article draggable="true"><div class="sv-board__card-title svelte-8xmvj6"> </div> <!> <!></article>`),CS=W(`<div class="sv-board__empty svelte-8xmvj6">Drop here</div>`),wS=W(`<section><header class="sv-board__colhead svelte-8xmvj6"><span class="sv-board__dot svelte-8xmvj6"></span> <span class="sv-board__coltitle svelte-8xmvj6"> </span> <span class="sv-board__count svelte-8xmvj6"> </span></header> <div class="sv-board__cards svelte-8xmvj6"><!> <!></div></section>`),TS=W(`<p class="sv-board__hint svelte-8xmvj6">Set <code class="svelte-8xmvj6">groupBy</code> to an enum field to build the board columns.</p>`),ES=W(`<!> <!>`,1),DS=W(`<div class="sv-board svelte-8xmvj6"><!></div>`);function OS(e,t){Ze(t,!0);let n=$(t,`rows`,19,()=>[]),r=$(t,`loading`,3,!1),i=F(()=>t.schema.idField??t.schema.fields.find(e=>e.primaryKey)?.field??`id`),a=e=>e?t.schema.fields.find(t=>t.field===e):void 0,o=F(()=>a(t.groupBy)),s=F(()=>/\$/.test(a(t.badgeField)?.label??``)),c=F(()=>(H(o)?.options??[]).map(e=>({value:String(e.value),label:e.label??String(e.value),color:e.color??`var(--sg-accent, #6366f1)`}))),l=e=>n().filter(n=>String(n[t.groupBy]??``)===e);function u(e){if(!t.badgeField)return``;let n=e[t.badgeField];return n==null||n===``?``:typeof n==`number`?H(s)?`$`+n.toLocaleString(void 0,{maximumFractionDigits:0}):n.toLocaleString():String(n)}let d=I(null),f=I(null);function p(e,t){L(d,t,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t))}function m(e){if(H(d)!=null){let r=n().find(e=>String(e[H(i)])===H(d));r&&String(r[t.groupBy]??``)!==e&&t.onMove?.(H(d),e)}L(d,null),L(f,null)}var h=DS();let g;var _=R(h),v=e=>{var t=ii();Y(z(t),16,()=>[0,1,2],e=>e,(e,t)=>{var n=vS(),r=B(R(n),2);Y(r,20,()=>[0,1],e=>e,(e,t)=>{K(e,_S())}),N(r),N(n),K(e,n)}),K(e,t)},y=e=>{K(e,yS())},b=e=>{var n=ES(),r=z(n);Y(r,17,()=>H(c),e=>e.value,(e,n)=>{let r=F(()=>l(H(n).value));var a=wS();let o;var s=R(a);let c;var h=B(R(s),2),g=R(h,!0);N(h);var _=B(h,2),v=R(_,!0);N(_),N(s);var y=B(s,2),b=R(y);Y(b,17,()=>H(r),e=>String(e[H(i)]),(e,r)=>{var a=SS();let o,s;var c=R(a),l=R(c,!0);N(c);var m=B(c,2),h=e=>{var n=bS(),i=R(n,!0);N(n),V(e=>q(i,e),[()=>String(H(r)[t.subtitleField])]),K(e,n)};J(m,e=>{t.subtitleField&&H(r)[t.subtitleField]!=null&&H(r)[t.subtitleField]!==``&&e(h)});var g=B(m,2),_=e=>{var t=xS(),n=R(t,!0);N(t),V(e=>q(n,e),[()=>u(H(r))]),K(e,t)},v=F(()=>u(H(r)));J(g,e=>{H(v)&&e(_)}),N(a),V((e,r)=>{o=X(a,1,`sv-board__card svelte-8xmvj6`,null,o,e),Q(a,`role`,t.onOpen?`button`:void 0),Q(a,`tabindex`,t.onOpen?0:void 0),s=Ui(a,``,s,{"--col":H(n).color}),q(l,r)},[()=>({"is-dragging":H(d)===String(H(r)[H(i)]),"is-clickable":!!t.onOpen}),()=>String(H(r)[t.titleField]??`(untitled)`)]),Jr(`dragstart`,a,e=>p(e,String(H(r)[H(i)]))),Jr(`dragend`,a,()=>{L(d,null),L(f,null)}),U(`click`,a,function(...e){(t.onOpen?()=>t.onOpen(String(H(r)[H(i)])):void 0)?.apply(this,e)}),U(`keydown`,a,function(...e){(t.onOpen?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.onOpen(String(H(r)[H(i)])))}:void 0)?.apply(this,e)}),K(e,a)});var x=B(b,2),S=e=>{K(e,CS())};J(x,e=>{H(r).length===0&&e(S)}),N(y),N(a),V(()=>{o=X(a,1,`sv-board__col svelte-8xmvj6`,null,o,{"is-over":H(f)===H(n).value}),c=Ui(s,``,c,{"--col":H(n).color}),q(g,H(n).label),q(v,H(r).length)}),Jr(`dragover`,a,e=>{e.preventDefault(),L(f,H(n).value,!0)}),Jr(`dragleave`,a,()=>{H(f)===H(n).value&&L(f,null)}),Jr(`drop`,a,e=>{e.preventDefault(),m(H(n).value)}),K(e,a)});var a=B(r,2),o=e=>{K(e,TS())};J(a,e=>{H(c).length===0&&e(o)}),K(e,n)};J(_,e=>{r()?e(v):H(c).length>0&&n().length===0?e(y,1):e(b,-1)}),N(h),V(()=>g=Ui(h,``,g,{height:t.height==null?void 0:`${t.height}px`})),K(e,h),Qe()}Yr([`click`,`keydown`]);var kS=W(`<span class="sv-sched__wd svelte-1ljc3sn"> </span>`),AS=W(`<button type="button" class="sv-sched__ev sv-sched__ev--btn svelte-1ljc3sn"><span class="sv-sched__ev-dot svelte-1ljc3sn"></span> </button>`),jS=W(`<span class="sv-sched__ev svelte-1ljc3sn"><span class="sv-sched__ev-dot svelte-1ljc3sn"></span> </span>`),MS=W(`<span class="sv-sched__more svelte-1ljc3sn"> </span>`),NS=W(`<div><span class="sv-sched__daynum svelte-1ljc3sn"> </span> <div class="sv-sched__evs svelte-1ljc3sn"><!> <!></div></div>`),PS=W(`<div class="sv-sched__overlay svelte-1ljc3sn"><span class="sv-sched__spinner svelte-1ljc3sn" aria-hidden="true"></span>Loading…</div>`),FS=W(`<div class="sv-sched__overlay svelte-1ljc3sn">No events scheduled yet.</div>`),IS=W(`<div class="sv-sched svelte-1ljc3sn"><header class="sv-sched__bar svelte-1ljc3sn"><strong class="sv-sched__month svelte-1ljc3sn"> </strong> <div class="sv-sched__nav svelte-1ljc3sn"><button type="button" class="sv-sched__btn svelte-1ljc3sn" aria-label="Previous month">‹</button> <button type="button" class="sv-sched__btn sv-sched__today svelte-1ljc3sn">Today</button> <button type="button" class="sv-sched__btn svelte-1ljc3sn" aria-label="Next month">›</button></div></header> <div class="sv-sched__weekdays svelte-1ljc3sn"></div> <div class="sv-sched__grid svelte-1ljc3sn"></div> <!></div>`);function LS(e,t){Ze(t,!0);let n=$(t,`rows`,19,()=>[]),r=$(t,`loading`,3,!1),i=F(()=>t.schema.idField??t.schema.fields.find(e=>e.primaryKey)?.field??`id`),a=F(()=>{let e=new Map;return t.schema.fields.find(e=>e.field===t.colorField)?.options?.forEach(t=>{t.color&&e.set(String(t.value),t.color)}),e}),o=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],s=e=>new Date(e.getFullYear(),e.getMonth(),1),c=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),l=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate();function u(e){if(e==null||e===``)return null;let t=new Date(String(e));return Number.isNaN(t.getTime())?null:t}let d=F(()=>n().map(e=>({r:e,d:u(e[t.dateField])})).filter(e=>e.d!=null)),f=F(()=>{if(H(d).length===0)return s(new Date);let e=new Map;for(let t of H(d)){let n=`${t.d.getFullYear()}-${t.d.getMonth()}`,r=e.get(n);r?r.n+=1:e.set(n,{start:s(t.d),n:1})}return[...e.values()].sort((e,t)=>t.n-e.n||e.start.getTime()-t.start.getTime())[0].start}),p=I(0),m=F(()=>c(H(f),H(p))),h=F(()=>H(m).toLocaleString(void 0,{month:`long`,year:`numeric`})),g=F(()=>{let e=H(m),t=new Date(e);return t.setDate(1-e.getDay()),Array.from({length:42},(e,n)=>{let r=new Date(t);return r.setDate(t.getDate()+n),r})}),_=e=>H(d).filter(t=>l(t.d,e)),v=new Date;var y=IS();let b;var x=R(y),S=R(x),C=R(S,!0);N(S);var w=B(S,2),T=R(w),E=B(T,2),D=B(E,2);N(w),N(x);var O=B(x,2);Y(O,20,()=>o,e=>e,(e,t)=>{var n=kS(),r=R(n,!0);N(n),V(()=>q(r,t)),K(e,n)}),N(O);var ee=B(O,2);Y(ee,21,()=>H(g),e=>e.getTime(),(e,n)=>{let r=F(()=>_(H(n))),o=F(()=>H(n).getMonth()!==H(m).getMonth());var s=NS();let c;var u=R(s),d=R(u,!0);N(u);var f=B(u,2),p=R(f);Y(p,17,()=>H(r).slice(0,3),e=>String(e.r[H(i)]),(e,n)=>{let r=F(()=>H(a).get(String(H(n).r[t.colorField??``]))??`var(--sg-accent, #6366f1)`);var o=ii(),s=z(o),c=e=>{var a=AS();let o;var s=B(R(a),1,!0);N(a),V((e,t)=>{Q(a,`title`,e),o=Ui(a,``,o,{"--c":H(r)}),q(s,t)},[()=>String(H(n).r[t.titleField]??``),()=>String(H(n).r[t.titleField]??`(untitled)`)]),U(`click`,a,()=>t.onSelect(String(H(n).r[H(i)]))),K(e,a)},l=e=>{var i=jS();let a;var o=B(R(i),1,!0);N(i),V((e,t)=>{Q(i,`title`,e),a=Ui(i,``,a,{"--c":H(r)}),q(o,t)},[()=>String(H(n).r[t.titleField]??``),()=>String(H(n).r[t.titleField]??`(untitled)`)]),K(e,i)};J(s,e=>{t.onSelect?e(c):e(l,-1)}),K(e,o)});var h=B(p,2),g=e=>{var t=MS(),n=R(t);N(t),V(()=>q(n,`+${H(r).length-3} more`)),K(e,t)};J(h,e=>{H(r).length>3&&e(g)}),N(f),N(s),V((e,t)=>{c=X(s,1,`sv-sched__cell svelte-1ljc3sn`,null,c,e),q(d,t)},[()=>({"is-outside":H(o),"is-today":l(H(n),v)}),()=>H(n).getDate()]),K(e,s)}),N(ee);var te=B(ee,2),ne=e=>{K(e,PS())},re=e=>{K(e,FS())};J(te,e=>{r()?e(ne):n().length===0&&e(re,1)}),N(y),V(()=>{b=Ui(y,``,b,{height:t.height==null?void 0:`${t.height}px`}),q(C,H(h))}),U(`click`,T,()=>L(p,H(p)-1)),U(`click`,E,()=>L(p,0)),U(`click`,D,()=>L(p,H(p)+1)),K(e,y),Qe()}Yr([`click`]);var RS=W(`<div class="sv-detail__metric sv-detail__sk sv-detail__sk--metric svelte-gx5pvu"></div>`),zS=W(`<div class="sv-detail__sk sv-detail__sk--title svelte-gx5pvu"></div> <div class="sv-detail__sk sv-detail__sk--sub svelte-gx5pvu"></div> <div class="sv-detail__metrics svelte-gx5pvu"></div> <div class="sv-detail__sk sv-detail__sk--row svelte-gx5pvu"></div> <div class="sv-detail__sk sv-detail__sk--row svelte-gx5pvu"></div>`,1),BS=W(`<p class="sv-detail__hint svelte-gx5pvu">No record to show.</p>`),VS=W(`<span class="sv-detail__status svelte-gx5pvu"> </span>`),HS=W(`<div class="sv-detail__subtitle svelte-gx5pvu"> </div>`),US=W(`<option class="svelte-gx5pvu"> </option>`),WS=W(`<label class="sv-detail__switch svelte-gx5pvu"><span class="svelte-gx5pvu">Record</span> <select class="svelte-gx5pvu"></select></label>`),GS=W(`<div class="sv-detail__metric svelte-gx5pvu"><span class="sv-detail__metric-label svelte-gx5pvu"> </span> <span class="sv-detail__metric-value svelte-gx5pvu"> </span></div>`),KS=W(`<div class="sv-detail__metrics svelte-gx5pvu"></div>`),qS=W(`<button role="tab"> </button>`),JS=W(`<div class="sv-detail__tabs svelte-gx5pvu" role="tablist"></div>`),YS=W(`<h3 class="sv-detail__section-head svelte-gx5pvu"> </h3>`),XS=W(`<div class="sv-detail__field svelte-gx5pvu"><dt class="svelte-gx5pvu"> </dt> <dd class="svelte-gx5pvu"> </dd></div>`),ZS=W(`<section class="sv-detail__section svelte-gx5pvu"><!> <dl class="sv-detail__fields svelte-gx5pvu"></dl></section>`),QS=W(`<p class="sv-detail__hint svelte-gx5pvu">No fields to show.</p>`),$S=W(`<!> <!>`,1),eC=W(`<p class="sv-detail__hint svelte-gx5pvu"> </p>`),tC=W(`<div class="sv-detail__event-sub svelte-gx5pvu"> </div>`),nC=W(`<span class="sv-detail__event-status svelte-gx5pvu"> </span>`),rC=W(`<time class="sv-detail__event-date svelte-gx5pvu"> </time>`),iC=W(`<li class="sv-detail__event svelte-gx5pvu"><span class="sv-detail__event-dot svelte-gx5pvu"></span> <div class="sv-detail__event-main svelte-gx5pvu"><div class="sv-detail__event-title svelte-gx5pvu"> </div> <!></div> <!> <!></li>`),aC=W(`<ul class="sv-detail__timeline svelte-gx5pvu"></ul>`),oC=W(`<header class="sv-detail__head svelte-gx5pvu"><div class="sv-detail__head-main svelte-gx5pvu"><div class="sv-detail__titlerow svelte-gx5pvu"><h2 class="sv-detail__title svelte-gx5pvu"> </h2> <!></div> <!></div> <!></header> <!> <!> <div class="sv-detail__body svelte-gx5pvu"><!></div>`,1),sC=W(`<div class="sv-detail svelte-gx5pvu"><!></div>`);function cC(e,t){Ze(t,!0);let n=$(t,`rows`,19,()=>[]),r=$(t,`metricFields`,19,()=>[]),i=$(t,`sections`,19,()=>[]),a=$(t,`related`,19,()=>[]),o=$(t,`loading`,3,!1),s=F(()=>t.schema.idField??t.schema.fields.find(e=>e.primaryKey)?.field??`id`),c=e=>e?t.schema.fields.find(t=>t.field===e):void 0,l=e=>e.replace(/([A-Z])/g,` $1`).replace(/[_-]+/g,` `).replace(/^\w/,e=>e.toUpperCase()).replace(/\bId\b/,``).trim(),u=e=>c(e)?.label??l(e),d=e=>/\$|price|amount|total|cost|value|revenue|fee|salary|balance|subtotal|budget/i.test(e);function f(e,t){if(t==null||t===``)return`-`;if(e?.options?.length){let n=e.options.find(e=>String(e.value)===String(t));if(n)return n.label??String(t)}return typeof t==`number`?d(e?.label??e?.field??``)?`$`+t.toLocaleString(void 0,{maximumFractionDigits:0}):t.toLocaleString():typeof t==`boolean`?t?`Yes`:`No`:Array.isArray(t)?t.join(`, `):String(t)}let p=I(null);Ln(()=>{L(p,t.selectedId??null,!0)});let m=F(()=>{if(t.row)return t.row;if(H(p)!=null){let e=n().find(e=>String(e[H(s)])===H(p));if(e)return e}return n()[0]}),h=F(()=>H(m)?String(H(m)[H(s)]):``),g=(e,t)=>f(c(e),t?.[e]),_=(e,t)=>t?e.schema.fields.find(e=>e.field===t):void 0,v=(e,t,n)=>f(_(e,t),n[t]);function y(e,t){if(!e||!t)return;let n=String(t[e]??``);if(!n)return;let r=c(e)?.options?.find(e=>String(e.value)===n);return{label:r?.label??n,color:r?.color??`var(--sg-muted, #64748b)`}}let b=F(()=>y(t.statusField,H(m))),x=F(()=>new Set([t.titleField,t.subtitleField,t.statusField,...r()].filter(Boolean))),S=F(()=>{if(i().length)return i();let e=H(s),n=t.schema.fields.filter(t=>t.field!==e&&!H(x).has(t.field)&&!(typeof t.hidden==`object`&&t.hidden.form)&&t.hidden!==!0).map(e=>e.field);return n.length?[{label:`Details`,fields:n}]:[]}),C=F(()=>[`Overview`,...a().map(e=>e.label)]),w=I(0);Ln(()=>{H(w)>=H(C).length&&L(w,0)});function T(e){let t=String(H(m)?.[e.parentField??H(s)]??``),n=(e.rows??[]).filter(n=>String(n[e.foreignKey]??``)===t);return e.dateField&&n.sort((t,n)=>String(n[e.dateField]??``).localeCompare(String(t[e.dateField]??``))),n}function E(e,t){if(!e.statusField)return;let n=String(t[e.statusField]??``),r=e.schema.fields.find(t=>t.field===e.statusField)?.options?.find(e=>String(e.value)===n);return n?{label:r?.label??n,color:r?.color??`var(--sg-accent, #6366f1)`}:void 0}function D(e){if(e==null||e===``)return``;let t=String(e),n=new Date(t);return isNaN(n.getTime())?t:n.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}var O=sC();let ee;var te=R(O),ne=e=>{var t=zS(),n=B(z(t),4);Y(n,20,()=>[0,1,2],e=>e,(e,t)=>{K(e,RS())}),N(n),P(4),K(e,t)},re=e=>{K(e,BS())},ie=e=>{var i=oC(),o=z(i);let c;var l=R(o),d=R(l),f=R(d),_=R(f,!0);N(f);var y=B(f,2),x=e=>{var t=VS();let n;var r=R(t,!0);N(t),V(()=>{n=Ui(t,``,n,{"--pill":H(b).color}),q(r,H(b).label)}),K(e,t)};J(y,e=>{H(b)&&e(x)}),N(d);var O=B(d,2),ee=e=>{var n=HS(),r=R(n,!0);N(n),V(e=>q(r,e),[()=>g(t.subtitleField,H(m))]),K(e,n)};J(O,e=>{t.subtitleField&&e(ee)}),N(l);var te=B(l,2),ne=e=>{var r=WS(),i=B(R(r),2);Y(i,21,n,e=>String(e[H(s)]),(e,n)=>{var r=US(),i=R(r,!0);N(r);var a={};V((e,t)=>{q(i,e),a!==(a=t)&&(r.value=(r.__value=t)??``)},[()=>g(t.titleField,H(n)),()=>String(H(n)[H(s)])]),K(e,r)}),N(i);var a;Gi(i),N(r),V(()=>{a!==(a=H(h))&&(i.value=(i.__value=H(h))??``,Wi(i,H(h)))}),U(`change`,i,e=>L(p,e.currentTarget.value,!0)),K(e,r)};J(te,e=>{!t.row&&n().length>1&&e(ne)}),N(o);var re=B(o,2),ie=e=>{var t=KS();Y(t,20,r,e=>e,(e,t)=>{var n=GS(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a,!0);N(a),N(n),V((e,t)=>{q(i,e),q(o,t)},[()=>u(t),()=>g(t,H(m))]),K(e,n)}),N(t),K(e,t)};J(re,e=>{r().length&&e(ie)});var ae=B(re,2),oe=e=>{var t=JS();Y(t,22,()=>H(C),e=>e,(e,t,n)=>{var r=qS();let i;var a=R(r,!0);N(r),V(()=>{i=X(r,1,`sv-detail__tab svelte-gx5pvu`,null,i,{"is-active":H(w)===H(n)}),Q(r,`aria-selected`,H(w)===H(n)),q(a,t)}),U(`click`,r,()=>L(w,H(n),!0)),K(e,r)}),N(t),K(e,t)};J(ae,e=>{H(C).length>1&&e(oe)});var se=B(ae,2),ce=R(se),le=e=>{var t=$S(),n=z(t);Y(n,17,()=>H(S),e=>e.label,(e,t)=>{var n=ZS(),r=R(n),i=e=>{var n=YS(),r=R(n,!0);N(n),V(()=>q(r,H(t).label)),K(e,n)};J(r,e=>{(H(S).length>1||H(t).label!==`Details`)&&e(i)});var a=B(r,2);Y(a,20,()=>H(t).fields,e=>e,(e,t)=>{var n=XS(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a,!0);N(a),N(n),V((e,t)=>{q(i,e),q(o,t)},[()=>u(t),()=>g(t,H(m))]),K(e,n)}),N(a),N(n),K(e,n)});var r=B(n,2),i=e=>{K(e,QS())};J(r,e=>{H(S).length===0&&e(i)}),K(e,t)},ue=e=>{let t=F(()=>a()[H(w)-1]),n=F(()=>T(H(t)));var r=ii(),i=z(r),o=e=>{var n=eC(),r=R(n);N(n),V(e=>q(r,`No ${e??``} yet.`),[()=>H(t).label.toLowerCase()]),K(e,n)},s=e=>{var r=aC();Y(r,21,()=>H(n),e=>String(e[H(t).schema.idField??`id`]),(e,n)=>{let r=F(()=>E(H(t),H(n)));var i=iC();let a;var o=B(R(i),2),s=R(o),c=R(s,!0);N(s);var l=B(s,2),u=e=>{var r=tC(),i=R(r,!0);N(r),V(e=>q(i,e),[()=>v(H(t),H(t).subtitleField,H(n))]),K(e,r)};J(l,e=>{H(t).subtitleField&&H(n)[H(t).subtitleField]!=null&&H(n)[H(t).subtitleField]!==``&&e(u)}),N(o);var d=B(o,2),f=e=>{var t=nC();let n;var i=R(t,!0);N(t),V(()=>{n=Ui(t,``,n,{"--pill":H(r).color}),q(i,H(r).label)}),K(e,t)};J(d,e=>{H(r)&&e(f)});var p=B(d,2),m=e=>{var r=rC(),i=R(r,!0);N(r),V(e=>q(i,e),[()=>D(H(n)[H(t).dateField])]),K(e,r)};J(p,e=>{H(t).dateField&&e(m)}),N(i),V(e=>{a=Ui(i,``,a,{"--dot":H(r)?.color??`var(--sg-accent, #6366f1)`}),q(c,e)},[()=>v(H(t),H(t).titleField,H(n))||`(untitled)`]),K(e,i)}),N(r),K(e,r)};J(i,e=>{H(n).length===0?e(o):e(s,-1)}),K(e,r)};J(ce,e=>{H(w)===0?e(le):e(ue,-1)}),N(se),V(e=>{c=Ui(o,``,c,{"--accent":H(b)?.color??`var(--sg-accent, #6366f1)`}),q(_,e)},[()=>g(t.titleField,H(m))]),K(e,i)};J(te,e=>{o()&&!H(m)?e(ne):H(m)?e(ie,-1):e(re,1)}),N(O),V(()=>ee=Ui(O,``,ee,{height:t.height==null?void 0:`${t.height}px`})),K(e,O),Qe()}Yr([`change`,`click`]);var lC=[`Ada`,`Alan`,`Grace`,`Linus`,`Barbara`,`Katherine`,`Donald`,`Margaret`,`Tim`,`Radia`,`Guido`,`Anita`,`Ken`,`Dorothy`,`Vint`,`Hedy`],uC=[`Lovelace`,`Turing`,`Hopper`,`Torvalds`,`Liskov`,`Johnson`,`Knuth`,`Hamilton`,`Berners-Lee`,`Perlman`,`van Rossum`,`Borg`,`Thompson`,`Vaughan`,`Cerf`,`Lamarr`],dC=[`Acme Corp`,`Globex`,`Initech`,`Umbrella`,`Soylent`,`Hooli`,`Stark Industries`,`Wayne Enterprises`,`Cyberdyne`,`Wonka Industries`,`Aperture`,`Tyrell Corp`,`Massive Dynamic`,`Pied Piper`,`Vandelay`,`Gekko & Co`],fC=[`Aeron Chair`,`Standing Desk`,`Mechanical Keyboard`,`Noise-Cancelling Headphones`,`4K Monitor`,`Webcam Pro`,`USB-C Hub`,`Ergonomic Mouse`,`Laptop Stand`,`Desk Lamp`,`Cable Organizer`,`Wireless Charger`,`Notebook`,`Water Bottle`,`Backpack`,`Coffee Mug`],pC=[`San Francisco`,`New York`,`London`,`Berlin`,`Toronto`,`Amsterdam`,`Sydney`,`Tokyo`,`Austin`,`Paris`,`Singapore`,`Dublin`],mC=[`United States`,`United Kingdom`,`Germany`,`Canada`,`Australia`,`France`,`Japan`,`Netherlands`,`Ireland`,`Singapore`,`Spain`,`Sweden`],hC=[`Market St`,`Main St`,`Oak Ave`,`Elm St`,`Pine Rd`,`Maple Dr`,`5th Ave`,`King St`,`Queen St`,`Broadway`,`High St`,`Park Ln`],gC=[`Standard`,`Premium`,`Basic`,`Advanced`,`Starter`,`Professional`,`Enterprise`,`Custom`,`General`,`Priority`],_C=[`Follow up on the latest changes and confirm next steps.`,`Reviewed the proposal and shared feedback with the team.`,`Waiting on approval before moving to the next phase.`,`Everything looks good - ready to ship this week.`,`Blocked by a dependency; escalating to the owner.`,`Scheduled a call to walk through the requirements.`,`Updated the estimate after the scope changed.`,`Closed out the remaining items from last sprint.`],vC=[`Black`,`White`,`Silver`,`Blue`,`Red`,`Green`,`Graphite`,`Gold`],yC=[`example.com`,`acme.io`,`globex.co`,`mail.dev`,`company.org`,`work.app`],bC=[1200,340,980,4500,220,1750,60,8900,430,2600,150,3200,720,5400,90,1980],xC=[`TypeScript`,`React`,`Svelte`,`Python`,`Go`,`SQL`,`AWS`,`Figma`,`Rust`,`GraphQL`,`Docker`,`Kubernetes`,`Node.js`,`Leadership`,`Product`,`UX`],SC=[`Parking`,`Pool`,`Gym`,`Balcony`,`Garden`,`A/C`,`Heating`,`Elevator`,`Pet-friendly`,`Furnished`,`Laundry`,`Dishwasher`,`Fireplace`,`Garage`],CC=[`Vegan`,`Vegetarian`,`Gluten-free`,`Dairy-free`,`Nut-free`,`Halal`,`Kosher`,`Spicy`,`Organic`,`Keto`],wC=[`Keynote`,`Workshop`,`Networking`,`Panel`,`Q&A`,`Hands-on`,`Beginner`,`Advanced`,`Remote`,`Live`],TC=[`#6366f1`,`#10b981`,`#f59e0b`,`#ef4444`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#14b8a6`];function EC(e){return e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim()}function DC(e){let t=0;for(let n=0;n<e.length;n++)t=(t+e.charCodeAt(n)*(n+1))%997;return t}var OC=(e,t)=>e[t%e.length],kC=e=>OC(lC,e),AC=e=>OC(uC,e),jC=e=>`${kC(e)} ${AC(e+3)}`,MC=e=>e.toLowerCase().replace(/[^a-z]+/g,``),NC=2026;function PC(e,t,n){let r=/skill|tech|stack|expert/.test(e)?xC:/amenit|feature|facilit/.test(e)?SC:/diet|cuisine|allerg|food/.test(e)?CC:/topic|track|tag|interest|categor|label/.test(e)?wC:gC,i=2+(n+t)%3,a=new Set;for(let e=0;e<i;e++)a.add(OC(r,n+t*3+e));return[...a]}function FC(e,t){let n=(e,t)=>String(t%10**e).padStart(e,`0`);return/vin/.test(e)?`1HGCM${n(6,t*7)}${String.fromCharCode(65+t%26)}`:/plate|registration/.test(e)?`${String.fromCharCode(65+t%26)}${String.fromCharCode(65+(t+3)%26)}${String.fromCharCode(65+(t+7)%26)}-${n(4,t*13+1e3)}`:/isbn/.test(e)?`978-0-${n(5,t*271+1e4)}-${n(3,t*7+100)}-${t%10}`:/ssn/.test(e)?`${n(3,t+100)}-${n(2,t+10)}-${n(4,t*3+1e3)}`:/ein|tax/.test(e)?`${n(2,t+10)}-${n(7,t*137+1e6)}`:/zip|postal/.test(e)?n(5,t*37+1e4):n(4,t+1e3)}function IC(e,t){let n=194+e,r=Math.max(0,Math.min(11,Math.floor((n%360+360)%360/30))),i=Math.max(1,Math.min(28,(n%30+30)%30+1)),a=String(r+1).padStart(2,`0`),o=String(i).padStart(2,`0`);return t?`${NC}-${a}-${o}T09:${String(10+e%40).padStart(2,`0`)}:00Z`:`${NC}-${a}-${o}`}function LC(e,t){let n=String(e.field).toLowerCase(),r=DC(n),i=t+r;if(e.options&&e.options.length)return e.options[t%e.options.length].value;switch(e.input?.editorType){case`chips`:return PC(n,t,r);case`mask`:return FC(n,i);case`rating`:return 1+i%5;case`slider`:{let t=e.min??0,n=e.max??100;return t+i*7%Math.max(1,n-t+1)}case`color`:return OC(TC,i);case`country`:return OC(mC,i);case`phone`:return`+1 (${200+i%700}) ${String(100+i%900).padStart(3,`0`)}-${String(1e3+i%9e3).padStart(4,`0`)}`}switch(e.type){case`relation`:return`${e.relation?.entity??`ref`}-${t+1}`;case`boolean`:return/inactive|archived|deleted|disabled/.test(n)?t%3==0:t%3!=0;case`json`:return{};case`date`:case`dateString`:case`datetime`:{let r=e.type===`datetime`;return IC((/due|expire|deadline|end|renew/.test(n)?1:/created|joined|start|signed|opened|order/.test(n)?-1:t%2?1:-1)*(5+i*7%90),r)}case`number`:return/price|amount|total|cost|salary|mrr|arr|revenue|balance|fee|value|budget|spent|paid|subtotal|tax/.test(n)?OC(bC,i):/qty|quantity|stock|count|units|seats|items|inventory/.test(n)?1+i%50:/age/.test(n)?22+i%44:/percent|discount|progress|score|rate|completion/.test(n)?i*7%100:/year/.test(n)?2020+i%7:/rating|stars/.test(n)?1+i%5:(t+1)*25;default:return/e-?mail/.test(n)?`${MC(kC(t))}.${MC(AC(t+3))}@${OC(yC,i)}`:/first.?name|given/.test(n)?kC(t):/last.?name|surname|family/.test(n)?AC(t):/full.?name|^name$|contact|customer|author|owner|assignee|manager|agent|member|person|lead|rep|user/.test(n)?jC(t):/compan|organi|vendor|supplier|account|client|business|employer/.test(n)?OC(dC,i):/product|item|^sku$|part/.test(n)?OC(fC,i):/city|town/.test(n)?OC(pC,i):/country|nation/.test(n)?OC(mC,i):/state|province|region/.test(n)?OC(pC,i+2):/address|street/.test(n)?`${100+i*13%900} ${OC(hC,i)}`:/phone|mobile|tel|fax/.test(n)?`+1 (${200+i%700}) ${String(100+i%900).padStart(3,`0`)}-${String(1e3+i%9e3).padStart(4,`0`)}`:/url|website|link|site|domain/.test(n)?`https://${MC(OC(dC,i))}.com`:/description|notes?|summary|comment|message|body|detail|remark/.test(n)?OC(_C,i):/subject|title|headline|task|name/.test(n)?`${OC(gC,i)} ${OC(fC,i+1)}`:/status|stage|priority|category|tier|plan|role|department|type|kind|level|group/.test(n)?OC(gC,i):/color|colour/.test(n)?OC(vC,i):/code|ref|reference|invoice|^no$|number|order|ticket|^id$/.test(n)?`${(n.match(/[a-z]{2,4}/)?.[0]??`ref`).toUpperCase().slice(0,3)}-${1e3+t*7+r%90}`:`${e.label??EC(e.field)} ${t+1}`}}function RC(e,t=6){return Array.from({length:t},(t,n)=>{let r={};for(let t of e)r[String(t.field)]=LC(t,n);return r})}var zC=[`text`,`number`,`boolean`,`date`,`dateString`,`datetime`,`enum`,`relation`,`json`];function BC(e){let t=new Set(e.fields.map(e=>e.field)),n=e.fields.length+1,r=`field${n}`;for(;t.has(r);)r=`field${++n}`;return{field:r,type:`text`}}function VC(e,t){return{...e,fields:[...e.fields,t??BC(e)]}}function HC(e,t){let n=e.fields.filter(e=>e.field!==t),r=e.idField===t?void 0:e.idField;return{...e,fields:n,idField:r}}function UC(e,t,n){let r=n.primaryKey===!0,i=e.fields.map(e=>{if(e.field!==t)return r&&e.primaryKey?{...e,primaryKey:!1}:e;let i={...e,...n};return n.type&&n.type!==e.type&&(n.type!==`enum`&&delete i.options,n.type!==`relation`&&delete i.relation),i});return{...e,fields:i}}function WC(e,t=3){return RC(e.fields,t)}var GC={serial:`number`,bigserial:`number`,smallserial:`number`,integer:`number`,int:`number`,tinyint:`number`,smallint:`number`,bigint:`number`,numeric:`number`,decimal:`number`,real:`number`,double:`number`,doublePrecision:`number`,float:`number`,boolean:`boolean`,text:`text`,varchar:`text`,char:`text`,uuid:`text`,timestamp:`datetime`,datetime:`datetime`,date:`dateString`,time:`text`,json:`json`,jsonb:`json`};function KC(e){let t=[],n=/['"]([^'"]+)['"]/g,r;for(;(r=n.exec(e))!==null;)t.push(r[1]);return t}function qC(e,t){let n=e.indexOf(`{`,t);if(n===-1)return{body:``,end:t};let r=0;for(let t=n;t<e.length;t++){let i=e[t];if(i===`{`)r++;else if(i===`}`&&--r===0)return{body:e.slice(n+1,t),end:t}}return{body:``,end:e.length}}function JC(e){let t=[],n=0,r=0,i=null;for(let a=0;a<e.length;a++){let o=e[a];if(i){o===i&&e[a-1]!==`\\`&&(i=null);continue}o===`'`||o===`"`||o==="`"?i=o:o===`(`||o===`[`||o===`{`?n++:o===`)`||o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(r,a)),r=a+1)}let a=e.slice(r);return a.trim()&&t.push(a),t}function YC(e){let t=[],n=/const\s+(\w+)\s*=\s*(\w*[Tt]able)\(\s*['"]([^'"]+)['"]\s*,/g,r;for(;(r=n.exec(e))!==null;){let{body:i,end:a}=qC(e,r.index+r[0].length);if(i){let o=1,s=null,c=a+1;for(;c<e.length;c++){let t=e[c];if(s){t===s&&e[c-1]!==`\\`&&(s=null);continue}if(t===`'`||t===`"`||t==="`")s=t;else if(t===`(`)o++;else if(t===`)`&&--o===0)break}t.push({varName:r[1],name:r[3],body:i,extras:e.slice(a+1,c)}),n.lastIndex=c}}return t}function XC(e){let t=e.match(/primaryKey\(([\s\S]*?)\)/);return t?[...t[1].matchAll(/\.(\w+)/g)].map(e=>e[1]):[]}function ZC(e,t){let n=new Map(t.map(e=>[e.varName,e.name])),r=new Map,i=/const\s+(\w+)\s*=\s*(?:pg|mysql|singlestore)Enum\(\s*['"][^'"]+['"]\s*,\s*\[([^\]]*)\]/g,a;for(;(a=i.exec(e))!==null;)r.set(a[1],KC(a[2]));return{varToTable:n,enums:r}}function QC(e,t){let n=e.match(/^\s*["']?(\w+)["']?\s*:\s*(\w+)\s*\(/);if(!n)return null;let r=n[1],i=n[2],a=n.index+n[0].length-1,o=0,s=a;for(let t=a;t<e.length;t++){let n=e[t];if(n===`(`)o++;else if(n===`)`&&--o===0){s=t;break}}let c=e.slice(a+1,s),l=e.slice(s+1),u={name:r},d=KC(c)[0];d&&d!==r&&(u.dbColumn=d);let f=c.match(/enum\s*:\s*\[([^\]]*)\]/);if(t.enums.has(i))u.enumValues=t.enums.get(i);else if(f)u.enumValues=KC(f[1]);else if(/enum$/i.test(i)){let e=c.match(/\[([^\]]*)\]/);e&&(u.enumValues=KC(e[1]))}u.enumValues||(u.type=GC[i]??`text`),/\.primaryKey\s*\(/.test(l)&&(u.primaryKey=!0),/\.notNull\s*\(/.test(l)&&(u.required=!0);let p=l.match(/\.references\(\s*\(\)\s*=>\s*(\w+)\.(\w+)/);return p&&(u.references={table:t.varToTable.get(p[1])??p[1],column:p[2]}),u}function $C(e,t){let n=JC(e.body).map(e=>QC(e,t)).filter(e=>e!==null),r=XC(e.extras);if(r.length&&!n.some(e=>e.primaryKey))for(let e of n)r.includes(e.name)&&(e.primaryKey=!0);return n}function ew(e){let t=YC(e);if(t.length===0)throw Error('introspectDrizzle: no `xxxTable("name", { ... })` definition found in source');let n=ZC(e,t);return gb(t.map(e=>({t:e,columns:$C(e,n)})).filter(({columns:e})=>e.length>0).map(({t:e,columns:t})=>Ub(e.name,t)))}function tw(e){let t=e.charCodeAt(0)===65279?e.slice(1):e,n=t.slice(0,(t.indexOf(`
|
|
154
|
-
`)+1||t.length+1)-1),r=[`,`,`;`,` `,`|`],i=`,`,a=-1;for(let e of r){let t=0,r=!1;for(let i of n)i===`"`?r=!r:i===e&&!r&&t++;t>a&&(a=t,i=e)}return i}function nw(e,t){let n=t??tw(e),r=[],i=[],a=``,o=!1,s=e.charCodeAt(0)===65279?e.slice(1):e;for(let e=0;e<s.length;e++){let t=s[e];o?t===`"`?s[e+1]===`"`?(a+=`"`,e++):o=!1:a+=t:t===`"`?o=!0:t===n?(i.push(a),a=``):t===`
|
|
155
|
-
`?(i.push(a),a=``,r.push(i),i=[]):t===`\r`||(a+=t)}return(a!==``||i.length>0)&&(i.push(a),r.push(i)),r.filter(e=>!(e.length===1&&e[0]===``))}var rw=new Set([`true`,`yes`,`y`,`1`]),iw=new Set([`false`,`no`,`n`,`0`]),aw=/^\d{4}-\d{2}-\d{2}$/,ow=/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}/,sw=/^-?(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?$/;function cw(e,t){let n=e.trim();if(n===``)return null;switch(t){case`number`:return Number(n.replace(/,/g,``));case`boolean`:return rw.has(n.toLowerCase());default:return n}}function lw(e){let t=e.map(e=>e.trim()).filter(e=>e!==``);if(t.length===0)return`text`;let n=e=>t.every(e);return n(e=>sw.test(e))?`number`:n(e=>rw.has(e.toLowerCase())||iw.has(e.toLowerCase()))?`boolean`:n(e=>ow.test(e))?`datetime`:n(e=>aw.test(e))?`dateString`:`text`}function uw(e,t,n){let r=e.trim().replace(/[^\w]+/g,`_`).replace(/^_+|_+$/g,``).toLowerCase();/^\d/.test(r)&&(r=`col_`+r),r||=`col_${t+1}`;let i=r,a=2;for(;n.has(i);)i=`${r}_${a++}`;return n.add(i),i}function dw(e,t){let n=nw(t);if(n.length===0)return{schema:{name:e,fields:[]},rows:[],renamed:[]};let r=n[0],i=n.slice(1),a=new Set,o=[],s=r.map((e,t)=>{let n=uw(e,t,a),r=lw(i.map(e=>e[t]??``));return n!==e.trim()&&o.push({header:e.trim()||`Column ${t+1}`,field:n}),{field:n,type:r,index:t}}),c=i.map(e=>{let t={};for(let n of s)t[n.field]=cw(e[n.index]??``,n.type);return t}),l=s.find(e=>e.field===`id`)??s.find(e=>/(^|_)id$/.test(e.field));return l||(c.forEach((e,t)=>{e.id=String(t+1)}),s.unshift({field:`id`,type:`text`,index:-1})),{schema:Hb({name:e,fields:s.map(e=>{let t={field:e.field,type:e.type};return(l?e.field===l.field:e.field===`id`)&&(t.primaryKey=!0,t.readonly=!0),t})}),rows:c,renamed:o}}var fw={Int:`number`,BigInt:`number`,Float:`number`,Decimal:`number`,String:`text`,Boolean:`boolean`,DateTime:`datetime`,Json:`json`,Bytes:`text`};function pw(e,t){let n=[],r=RegExp(`${t}\\s+(\\w+)\\s*\\{`,`g`),i;for(;(i=r.exec(e))!==null;){let t=i.index+i[0].length-1,a=0;for(let o=t;o<e.length;o++){let s=e[o];if(s===`{`)a++;else if(s===`}`&&--a===0){n.push({name:i[1],body:e.slice(t+1,o)}),r.lastIndex=o;break}}}return n}function mw(e){return e.split(`
|
|
156
|
-
`).map(e=>e.replace(/\/\/.*$/,``).trim()).filter(Boolean)}function hw(e){return mw(e).map(e=>e.match(/^(\w+)/)?.[1]).filter(e=>!!e)}function gw(e){let t=new Map;for(let n of e){let e=n.match(/@relation\([^)]*fields:\s*\[(\w+)\][^)]*references:\s*\[(\w+)\]/);if(!e)continue;let r=n.match(/^\w+\s+(\w+)/)?.[1];r&&t.set(e[1],{table:r,column:e[2]})}return t}function _w(e){for(let t of e){let e=t.match(/^@@id\(\s*\[([^\]]*)\]/);if(e)return e[1].split(`,`).map(e=>e.trim()).filter(Boolean)}return[]}function vw(e,t,n){let r=mw(e.body),i=gw(r),a=[];for(let e of r){if(e.startsWith(`@@`))continue;let r=e.match(/^(\w+)\s+(\w+)(\[\])?(\?)?(.*)$/);if(!r)continue;let[,o,s,c,l,u=``]=r;if(t.has(s))continue;let d={name:o};n.has(s)?d.enumValues=n.get(s):d.type=fw[s]??`text`,/@id\b/.test(u)&&(d.primaryKey=!0),!l&&!c&&(d.required=!0);let f=i.get(o);f&&(d.references={table:f.table,column:f.column}),a.push(d)}let o=_w(r);if(o.length&&!a.some(e=>e.primaryKey))for(let e of a)o.includes(e.name)&&(e.primaryKey=!0);return a}function yw(e){let t=pw(e,`model`),n=new Map(pw(e,`enum`).map(e=>[e.name,hw(e.body)]));return{models:t,modelNames:new Set(t.map(e=>e.name)),enums:n}}function bw(e){let{models:t,modelNames:n,enums:r}=yw(e);if(t.length===0)throw Error("introspectPrisma: no `model X { ... }` definition found in source");return gb(t.map(e=>({m:e,columns:vw(e,n,r)})).filter(({columns:e})=>e.length>0).map(({m:e,columns:t})=>Ub(e.name,t)))}var xw={postgres:5432,supabase:5432,mysql:3306,mssql:1433,sqlite:null};function Sw(e){return e===`sqlite`}function Cw(e){return e===`mysql`?`mysql`:e===`mssql`?`mssql`:`postgresql`}function ww(e,t){return t?e===`mysql`?`?ssl=%7B%22rejectUnauthorized%22%3Atrue%7D`:e===`mssql`?`?encrypt=true&trustServerCertificate=true`:`?sslmode=require`:``}function Tw(e,t){if(Sw(e)){let e=(t.file??t.database??``).trim();if(!e)throw Error(`buildConnectionString: SQLite needs a database file path`);return e}let n=(t.host??``).trim()||`localhost`,r=t.port!=null&&`${t.port}`.trim()!==``?Number(t.port):xw[e],i=Number.isFinite(r)?r:null,a=(t.database??``).trim(),o=(t.user??``).trim(),s=t.password??``,c=o?`${encodeURIComponent(o)}${s?`:${encodeURIComponent(s)}`:``}@`:``,l=i?`${n}:${i}`:n,u=a?`/${encodeURIComponent(a)}`:``;return`${Cw(e)}://${c}${l}${u}${ww(e,t.ssl)}`}var Ew=e=>ob(e).replace(/\s+/g,``),Dw=e=>{let t=Ew(e);return t.charAt(0).toLowerCase()+t.slice(1)};function Ow(e){return e===`number`?`number`:e===`boolean`?`boolean`:e===`json`?`unknown`:`string`}var kw=6;function Aw(e){return{type:Ew(e.name),schemaVar:`${Dw(e.name)}Schema`,sourceVar:`${Dw(e.name)}Source`,label:e.label??ob(e.name),route:e.name,idPrefix:e.name.charAt(0).toLowerCase()||`r`}}var jw=(e,t)=>`${Dw(e.name)}${Ew(t)}Lookup`;function Mw(e,t){let n=e.fields.map(e=>` ${e.field}${t.has(e.field)?`?`:``}: ${Ow(e.type)}`);return`export type ${Ew(e.name)} = {\n${n.join(`
|
|
157
|
-
`)}\n}`}var Nw=e=>`${Dw(e.name)}Store`;function Pw(e,t){let n=new Set(e.fields.map(e=>e.field)),r=new Map;for(let i of e.fields){if(i.type!==`relation`||!i.relation||!t(i.relation.entity))continue;let e=/(_id|Id)$/.test(i.field)?i.field.replace(/(_id|Id)$/,``):`${i.field}Label`;for((!e||n.has(e))&&(e=`${i.field}Label`);n.has(e);)e+=`_`;n.add(e),r.set(i.field,e)}return r}function Fw(e,t){let n=Pw(e,e=>t.get(e)),r=[];for(let i of e.fields){if(i.type!==`relation`||!i.relation)continue;let e=t.get(i.relation.entity);e&&r.push({fkField:i.field,displayField:n.get(i.field),related:e})}return r}function Iw(e,t){let n=sb(e),r=new Set(t.map(e=>e.fkField)),i=e.fields.map(e=>{let t=e;if(e.field===n&&e.type!==`text`&&(t={...t,type:`text`}),r.has(e.field)){let e=typeof t.hidden==`object`?t.hidden:{};t={...t,hidden:{...e,grid:!0}}}return t});for(let e of t)i.push({field:e.displayField,type:`text`,label:ob(e.displayField),readonly:!0,hidden:{form:!0}});return{...e,fields:i}}function Lw(e){let t=new Map;for(let{schema:n,infos:r}of e){let e=sb(n),i=Aw(n).idPrefix,a=new Map(r.map(e=>[e.fkField,Aw(e.related).idPrefix])),o=new Set(r.map(e=>e.displayField)),s=[];for(let t=0;t<kw;t++){let r={};for(let s of n.fields)if(!o.has(s.field))if(s.field===e)r[s.field]=`${i}${t+1}`;else if(s.type===`relation`){let e=a.get(s.field);r[s.field]=e?`${e}${t%kw+1}`:``}else r[s.field]=LC(s,t);s.push(r)}t.set(n.name,s)}return t}function Rw(e,t){let n=[...t].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`));return n.length?e.replace(RegExp(`\\b(`+n.join(`|`)+`)\\b`,`g`),`$.$1`):e}function zw(e){let t=`$[${JSON.stringify(e.field)}]`,n=t=>e.compareTo?`Number($[${JSON.stringify(e.compareTo)}])`:Number(t),r=t=>e.compareTo?`String($[${JSON.stringify(e.compareTo)}])`:JSON.stringify(String(t??``));switch(e.op){case`eq`:return`String(${t}) === ${r(e.value)}`;case`ne`:return`String(${t}) !== ${r(e.value)}`;case`lt`:return`Number(${t}) < ${n(e.value)}`;case`lte`:return`Number(${t}) <= ${n(e.value)}`;case`gt`:return`Number(${t}) > ${n(e.value)}`;case`gte`:return`Number(${t}) >= ${n(e.value)}`;case`required`:return`${t} != null && ${t} !== ''`;case`maxLen`:return`String(${t} ?? '').length <= ${Number(e.value)}`;case`minLen`:return`String(${t} ?? '').length >= ${Number(e.value)}`;default:return`true`}}function Bw(e){return{path:`src/lib/schemas.ts`,description:`One EntitySchema per entity, generated from your schema. Add computed fields, hooks, or validators here.`,contents:`/**
|
|
158
|
-
* Generated from your schema by \`npm create @svgrid/studio --from\`. Each
|
|
159
|
-
* EntitySchema drives the grid columns, the edit form, and validation. Add a
|
|
160
|
-
* field here (and to its type) and it shows up in the grid and the form.
|
|
161
|
-
*/
|
|
162
|
-
import type { EntitySchema } from '@svgrid/enterprise'
|
|
163
|
-
|
|
164
|
-
${e.map(({schema:e,infos:t})=>{let n=Aw(e),r=new Set(t.map(e=>e.displayField)),i=e.fields.map(e=>e.field),a={...e,fields:e.fields.map(e=>{let{formula:t,...n}=e;return n})};delete a.validations;let o=`${Mw(e,r)}\n\nexport const ${n.schemaVar}: EntitySchema<${n.type}> = ${JSON.stringify(a,null,2)}`,s=[];for(let t of e.fields)!t.formula||t.computed||s.push(`;(${n.schemaVar}.fields.find((f) => f.field === ${JSON.stringify(t.field)})!).computed = (row) => { const $ = row as Record<string, any>; return (${Rw(t.formula,i)}) }`);if(e.validations?.length){let t=e.validations.map(e=>` if (!(${zw(e)})) errors[${JSON.stringify(e.field)}] = ${JSON.stringify(e.message)}`).join(`
|
|
165
|
-
`);s.push(`${n.schemaVar}.hooks = {\n ...${n.schemaVar}.hooks,\n validate: (values) => {\n const $ = values as Record<string, any>\n const errors: Record<string, string> = {}\n${t}\n return Object.keys(errors).length ? errors : null\n },\n}`)}return s.length&&(o+=`
|
|
166
|
-
|
|
167
|
-
`+s.join(`
|
|
168
|
-
`)),o}).join(`
|
|
169
|
-
|
|
170
|
-
`)}
|
|
171
|
-
`}}var Vw="`";function Hw(e,t){let n=(e??``).replace(/\/+$/,``),r=(t??``).replace(/^\/+/,``);return n?r?`${n}/${r}`:n:r}function Uw(e,t){return t.split(`.`).filter(Boolean).reduce((e,t)=>`${e}?.${t}`,e)}function Ww(e){let t=e.path;for(let n of e.params)n.location===`path`&&n.value&&(t=t.split(`{${n.name}}`).join(n.value));return Hw(e.baseUrl,t)}function Gw(e){switch(e){case`postgres`:case`supabase`:return`{ placeholders: '$', ilike: true }`;case`mysql`:return`{ quote: '${Vw}', placeholders: '?' }`;case`mssql`:return`{ placeholders: '@' }`;case`turso`:return`{ placeholders: '?' }`;default:return null}}var Kw=e=>`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}'`;function qw(e,t,n,r){let i=[`url: ${Kw(Ww(e))}`,`schema: ${r}`];e.idField&&i.push(`idField: ${Kw(e.idField)}`);let a=e.params.filter(e=>e.location===`header`&&e.value!==void 0&&e.value!==``);a.length&&i.push(`headers: { ${a.map(e=>`${Kw(e.name)}: ${Kw(e.value??``)}`).join(`, `)} }`);let o=e.params.filter(e=>e.location===`query`&&e.value!==void 0&&e.value!==``);if(o.length&&i.push(`query: { ${o.map(e=>`${Kw(e.name)}: ${Kw(e.value??``)}`).join(`, `)} }`),e.rowsPath||e.totalPath){let t=e.rowsPath?Uw(`body`,e.rowsPath):`body`,n=e.totalPath?Uw(`body`,e.totalPath):`(${t})?.length`;i.push(`parse: (body: any) => ({ rows: ${t} ?? [], rowCount: Number(${n} ?? 0) })`)}return`const ${t} = createRestDataSource<${n}>({ ${i.join(`, `)} })`}var Jw={postgres:{dep:`pg`,imports:`import pg from 'pg'`,setup:`const pool = new pg.Pool({ connectionString: env.DATABASE_URL })`,exec:`const result = await pool.query(text, params)
|
|
172
|
-
return result.rows`},mysql:{dep:`mysql2`,imports:`import mysql from 'mysql2/promise'`,setup:`const pool = mysql.createPool(env.DATABASE_URL ?? '')`,exec:`const [rows] = await pool.query(text, params)
|
|
173
|
-
return rows as Record<string, unknown>[]`},mssql:{dep:`mssql`,imports:`import mssql from 'mssql'`,setup:`const poolPromise = mssql.connect(env.DATABASE_URL ?? '')`,exec:`const pool = await poolPromise
|
|
174
|
-
const request = pool.request()
|
|
175
|
-
params.forEach((p, i) => request.input('p' + (i + 1), p))
|
|
176
|
-
const result = await request.query(text)
|
|
177
|
-
return result.recordset as Record<string, unknown>[]`},sqlite:{dep:`better-sqlite3`,imports:`import Database from 'better-sqlite3'`,setup:`const db = new Database(env.DATABASE_URL ?? 'data.db')`,exec:`return db.prepare(text).all(...params) as Record<string, unknown>[]`},turso:{dep:`@libsql/client`,imports:`import { createClient } from '@libsql/client'`,setup:`const client = createClient({ url: env.DATABASE_URL ?? '', authToken: env.DATABASE_AUTH_TOKEN })`,exec:`const rs = await client.execute({ sql: text, args: params })
|
|
178
|
-
return rs.rows as unknown as Record<string, unknown>[]`}};function Yw(e,t,n,r={}){let i=Aw(e),a=Jw[n===`supabase`?`postgres`:n??`postgres`],o=Gw(n),s=r.access?`
|
|
179
|
-
import { authorizeAction, getServerRole } from '$lib/access'`:``,c=r.audit?`
|
|
180
|
-
import { recordAudit } from '$lib/audit'`:``,l=[`schema: ${i.schemaVar}`,`source`,`validate: true`];r.access&&l.push(`// Server-enforced RBAC: the caller's role comes from the session (event.locals).
|
|
181
|
-
authorize: ({ action, event }) => authorizeAction(getServerRole(event), action)`),r.audit&&l.push(`// Record every successful write to the audit trail.\n audit: (e) => recordAudit({ entity: ${JSON.stringify(e.name)}, action: e.action, recordId: e.id, values: e.values as Record<string, unknown> | undefined, actor: String(e.event.locals?.role ?? e.event.locals?.user ?? 'system') })`);let u=`export const { POST } = createKitHandlers({\n ${l.join(`,
|
|
182
|
-
`)},\n})`;return{path:`src/routes/api/${i.route}/+server.ts`,description:`Connected API route for ${i.label} (SQL via DATABASE_URL). Runs server-side.`,contents:`${a.imports}
|
|
183
|
-
import { env } from '$env/dynamic/private'
|
|
184
|
-
import { createKitHandlers, createSqlDataSource } from '@svgrid/enterprise'
|
|
185
|
-
import { ${i.schemaVar}, type ${i.type} } from '$lib/schemas'${s}${c}
|
|
186
|
-
|
|
187
|
-
${a.setup}
|
|
188
|
-
|
|
189
|
-
const source = createSqlDataSource<${i.type}>({
|
|
190
|
-
schema: ${i.schemaVar},
|
|
191
|
-
table: ${JSON.stringify(t)},${o?`\n dialect: ${o},`:``}
|
|
192
|
-
execute: async (text, params) => {
|
|
193
|
-
${a.exec}
|
|
194
|
-
},
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
${u}
|
|
198
|
-
`}}var Xw={number:`double precision`,boolean:`boolean`,date:`date`,datetime:`timestamptz`,json:`jsonb`};function Zw(e,t){let n=[],r=[];for(let{schema:i,table:a,seed:o}of e){let e=i.idField??i.fields.find(e=>e.primaryKey)?.field??`id`,s=i.fields.map(t=>`"${t.field}" ${Xw[t.type]??`text`}${t.primaryKey||t.field===e?` primary key`:``}`).join(`, `);n.push(`CREATE TABLE IF NOT EXISTS "${a}" (${s});`);for(let t of i.fields)t.primaryKey||t.field===e||n.push(`ALTER TABLE "${a}" ADD COLUMN IF NOT EXISTS "${t.field}" ${Xw[t.type]??`text`};`);let c=o??t.get(i.name)??[];r.push(` await _pgSeed(${JSON.stringify(a)}, ${JSON.stringify(c)}, ${JSON.stringify(i.fields.map(e=>e.field))})`)}return`// Embedded Postgres (PGlite), persisted in the browser (IndexedDB) - a real,
|
|
199
|
-
// persistent database with ZERO backend setup. To go to production, bind these
|
|
200
|
-
// entities to a hosted SQL source (same schema) instead.
|
|
201
|
-
const pg = new PGlite('idb://svgrid-studio')
|
|
202
|
-
const pgReady = (async () => {
|
|
203
|
-
await pg.exec(\`
|
|
204
|
-
${n.join(`
|
|
205
|
-
`)}
|
|
206
|
-
\`)
|
|
207
|
-
${r.join(`
|
|
208
|
-
`)}
|
|
209
|
-
})()
|
|
210
|
-
async function _pgSeed(table: string, rows: Record<string, unknown>[], cols: string[]): Promise<void> {
|
|
211
|
-
if (!rows.length) return
|
|
212
|
-
const existing = await pg.query(\`select count(*)::int as n from "\${table}"\`)
|
|
213
|
-
if (((existing.rows[0] as { n?: number } | undefined)?.n ?? 0) > 0) return // already seeded
|
|
214
|
-
for (const row of rows) {
|
|
215
|
-
await pg.query(
|
|
216
|
-
\`insert into "\${table}" (\${cols.map((c) => '"' + c + '"').join(', ')}) values (\${cols.map((_, i) => '$' + (i + 1)).join(', ')})\`,
|
|
217
|
-
cols.map((c) => { const v = row[c]; return v != null && typeof v === 'object' ? JSON.stringify(v) : (v ?? null) }),
|
|
218
|
-
)
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
`}function Qw(e,t,n){let r=e.map(e=>e.schema),i=r.map(e=>`type ${Ew(e.name)}`).join(`, `),a=r.map(e=>Aw(e).schemaVar).join(`, `),o=e.some(e=>e.infos.length>0),s=new Set,c={supabase:!1,sqlRoutes:[]},l=e.map(e=>{let r=Ew(e.schema.name),i=Aw(e.schema).schemaVar,a=Nw(e.schema),o=n?.[e.schema.name]??{kind:`memory`};switch(o.kind){case`rest`:return s.add(`createRestDataSource`),qw(o,a,r,i);case`sql`:return s.add(`createKitDataSource`),c.sqlRoutes.push({schema:e.schema,table:o.table,dialect:o.dialect}),`const ${a} = createKitDataSource<${r}>({ endpoint: '/api/${Aw(e.schema).route}' })`;case`supabase`:return s.add(`createSupabaseDataSource`),c.supabase=!0,o.url&&o.key&&!c.supabaseUrl&&(c.supabaseUrl=o.url,c.supabaseKey=o.key),`const ${a} = createSupabaseDataSource<${r}>({ client: supabaseClient, table: ${Kw(o.table)}, schema: ${i} })`;case`pglite`:return s.add(`createSqlDataSource`),c.pglite=!0,c.pgliteTables??=[],c.pgliteTables.push({schema:e.schema,table:o.table,seed:o.seed}),`const ${a} = createSqlDataSource<${r}>({ schema: ${i}, table: ${Kw(o.table)}, dialect: { placeholders: '$', ilike: true }, execute: async (text, params) => { await pgReady; return (await pg.query(text, params)).rows as Record<string, unknown>[] } })`;default:{s.add(`createInMemoryDataSource`);let n=o.kind===`memory`?o.seed:void 0;return`const ${a} = createInMemoryDataSource<${r}>(${JSON.stringify(n??t.get(e.schema.name)??[])}, ${i})`}}}).join(`
|
|
222
|
-
`),u=[];for(let{schema:t,infos:n}of e)for(let e of n){let n=Aw(e.related);u.push(`export const ${jw(t,e.fkField)} = createRelationLookup<${n.type}>({ source: ${Nw(e.related)}, schema: ${n.schemaVar}, labelField: '${t.fields.find(t=>t.field===e.fkField)?.relation?.labelField??`name`}' })`)}o&&(s.add(`createRelationLookup`),s.add(`withRelationLabels`));let d=e.map(({schema:e,infos:t})=>{let n=Aw(e);if(t.length===0)return`export const ${n.sourceVar} = ${Nw(e)}`;let r=t.map(t=>`{ fk: '${t.fkField}', lookup: ${jw(e,t.fkField)}, as: '${t.displayField}' }`).join(`, `);return`export const ${n.sourceVar} = withRelationLabels(${Nw(e)}, [${r}])`}).join(`
|
|
223
|
-
`),f=c.supabase?`
|
|
224
|
-
import { supabaseClient } from './connections'`:``,p=c.pglite?`
|
|
225
|
-
import { PGlite } from '@electric-sql/pglite'`:``,m=c.pglite?Zw(c.pgliteTables,t)+`
|
|
226
|
-
`:``;return{file:{path:`src/lib/data.ts`,description:`Data sources per entity (in-memory / REST / SQL / Supabase / PGlite) + a searchable lookup per relation.`,contents:`/**
|
|
227
|
-
* Data sources. Each entity binds to its own backend - in-memory (seeded), a
|
|
228
|
-
* REST endpoint, a SQL table, Supabase, or embedded Postgres (PGlite). In-memory
|
|
229
|
-
* + PGlite run with no setup; SQL / Supabase read their connection from \`./connections\`.
|
|
230
|
-
*/
|
|
231
|
-
import { ${[...s].join(`, `)} } from '@svgrid/enterprise'
|
|
232
|
-
import { ${a}, ${i} } from './schemas'${f}${p}
|
|
233
|
-
|
|
234
|
-
${m}${l}
|
|
235
|
-
${u.length?`\n// Searchable pickers for relation (foreign-key) fields.\n${u.join(`
|
|
236
|
-
`)}\n`:``}
|
|
237
|
-
// Grids show the related label (not the raw id) via withRelationLabels.
|
|
238
|
-
${d}
|
|
239
|
-
|
|
240
|
-
// New-row ids continue after the seeded rows.
|
|
241
|
-
let seq = ${kw}
|
|
242
|
-
export const nextId = (prefix: string) => \`\${prefix}\${++seq}\`
|
|
243
|
-
`},needs:c}}function $w(e){let t=!!(e.supabaseUrl&&e.supabaseKey);return{path:`src/lib/connections.ts`,description:`Supabase client for Supabase-bound entities.`,contents:`${t?`import { createClient } from '@supabase/supabase-js'
|
|
244
|
-
`:``}import type { SupabaseClientLike } from '@svgrid/enterprise'\n\n${t?`/**
|
|
245
|
-
* Supabase client. The anon key is public (browser-safe) - access is protected
|
|
246
|
-
* by your Row Level Security policies. Requires \`@supabase/supabase-js\`
|
|
247
|
-
* (\`npm i @supabase/supabase-js\`).
|
|
248
|
-
*/
|
|
249
|
-
export const supabaseClient = createClient(${Kw(e.supabaseUrl)}, ${Kw(e.supabaseKey)}) as unknown as SupabaseClientLike`:`/**
|
|
250
|
-
* TODO: connect Supabase. Add your project URL + anon key in the Studio designer,
|
|
251
|
-
* or replace this null stub with a real client:
|
|
252
|
-
* \`import { createClient } from '@supabase/supabase-js'; export const supabaseClient = createClient(url, anonKey)\`.
|
|
253
|
-
*/
|
|
254
|
-
export const supabaseClient = null as unknown as SupabaseClientLike`}\n`}}function eT(e,t={}){let n=[{href:`/`,label:`Home`},...e],r=t.shell??{},i=r.style??`sidebar`,a=(r.brand??``).trim()||t.title||`My Studio App`,o=r.footer===void 0?`Built with SvGrid Studio`:r.footer,s=i===`sidebar`&&r.navPosition===`right`,c={...t.themeVars??{}};t.accent&&(c[`--sg-accent`]=t.accent);let l=[Object.entries(c).map(([e,t])=>`${e}: ${t};`).join(` `),t.dark?`color-scheme: dark;`:``].filter(Boolean).join(` `),u=l?`\n<svelte:head><style>:root { ${l} }</style></svelte:head>\n`:``,d=`<a class="sv-app__link" class:is-active={$page.url.pathname === item.href} href={item.href}>${t.i18n?`{item.id ? $t('nav.' + item.id, item.label) : item.label}`:`{item.label}`}</a>`,f=`<nav class="sv-app__links" onclick={() => (navOpen = false)}>
|
|
255
|
-
{#each nav as item (item.href)}
|
|
256
|
-
${t.access?`{#if !item.id || canScreen($currentRole, item.id)}${d}{/if}`:d}
|
|
257
|
-
{/each}
|
|
258
|
-
</nav>${t.i18n?`
|
|
259
|
-
<select class="sv-app__locale" aria-label="Language" onchange={(e) => currentLocale.set(e.currentTarget.value as typeof $currentLocale)}>
|
|
260
|
-
{#each locales as loc (loc)}<option value={loc} selected={loc === $currentLocale}>{loc}</option>{/each}
|
|
261
|
-
</select>`:``}`,p=o?`
|
|
262
|
-
<span class="sv-app__foot">{footer}</span>`:``,m=o?`\n const footer = ${JSON.stringify(o)}`:``,h=i===`top-nav`?``:`
|
|
263
|
-
let collapsed = $state(false)
|
|
264
|
-
let narrow = $state(false)
|
|
265
|
-
const drawer = $derived(collapsed || narrow)
|
|
266
|
-
function toggleNav() { collapsed = !collapsed; try { localStorage.setItem('svapp:nav', collapsed ? 'c' : 'e') } catch (_) { /* storage blocked */ } }
|
|
267
|
-
$effect(() => {
|
|
268
|
-
// Tablet / phone (<= 1024px) collapse to a drawer by default.
|
|
269
|
-
const mq = window.matchMedia('(max-width: 1024px)')
|
|
270
|
-
const sync = () => (narrow = mq.matches)
|
|
271
|
-
sync()
|
|
272
|
-
try { const s = localStorage.getItem('svapp:nav'); if (s) collapsed = s === 'c' } catch (_) { /* storage blocked */ }
|
|
273
|
-
mq.addEventListener('change', sync)
|
|
274
|
-
return () => mq.removeEventListener('change', sync)
|
|
275
|
-
})`,g=r.logo?`\n const logo = ${JSON.stringify(r.logo)}`:``,_=`<a class="sv-app__brand" href="/">${r.logo?`<img class="sv-app__logo" src={logo} alt={brand} />`:`<span class="sv-app__brandtext">{brand}</span>`}</a>`,v=`<header class="sv-app__mobilebar">
|
|
276
|
-
<button type="button" class="sv-app__burger" aria-label="Toggle navigation" aria-expanded={navOpen} onclick={() => (navOpen = !navOpen)}>
|
|
277
|
-
<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M3 6h18M3 12h18M3 18h18"/></svg>
|
|
278
|
-
</button>
|
|
279
|
-
${_}
|
|
280
|
-
{#if !narrow}<button type="button" class="sv-app__dock" aria-label="Dock sidebar" title="Dock sidebar" onclick={toggleNav}>
|
|
281
|
-
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l6 6-6 6"/></svg>
|
|
282
|
-
</button>{/if}
|
|
283
|
-
</header>
|
|
284
|
-
{#if navOpen}<button type="button" class="sv-app__backdrop" aria-label="Close navigation" onclick={() => (navOpen = false)}></button>{/if}`,y=r.toolbar!==!1&&e.length>0,b=((a.match(/\b[A-Za-z0-9]/g)??[]).slice(0,2).join(``)||`A`).toUpperCase(),x=a.toLowerCase().replace(/[^a-z0-9]+/g,``)||`app`,S=t.i18n?`{r.id ? $t('nav.' + r.id, r.label) : r.label}`:`{r.label}`,C=`<main class="sv-app__main">
|
|
285
|
-
${y?`<div class="sv-app__toolbar">
|
|
286
|
-
<div class="sv-app__search">
|
|
287
|
-
<svg class="sv-app__search-ic" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.35-4.35"/></svg>
|
|
288
|
-
<input class="sv-app__search-in" type="search" placeholder="Search {brand}…" bind:value={q} bind:this={searchEl} aria-label="Search screens" />
|
|
289
|
-
<kbd class="sv-app__kbd" aria-hidden="true">⌘K</kbd>
|
|
290
|
-
{#if results.length}
|
|
291
|
-
<div class="sv-app__results">
|
|
292
|
-
{#each results as r (r.href)}
|
|
293
|
-
<a class="sv-app__result" href={r.href} onclick={() => (q = '')}>${S}</a>
|
|
294
|
-
{/each}
|
|
295
|
-
</div>
|
|
296
|
-
{/if}
|
|
297
|
-
</div>
|
|
298
|
-
<div class="sv-app__tools">
|
|
299
|
-
<div class="sv-app__pop">
|
|
300
|
-
<button type="button" class="sv-app__tool" aria-label="Notifications" aria-expanded={bellOpen} onclick={() => { bellOpen = !bellOpen; menuOpen = false }}>
|
|
301
|
-
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></svg>
|
|
302
|
-
<span class="sv-app__dot"></span>
|
|
303
|
-
</button>
|
|
304
|
-
{#if bellOpen}
|
|
305
|
-
<div class="sv-app__menu sv-app__menu--notif" role="menu">
|
|
306
|
-
<div class="sv-app__menu-head">Notifications</div>
|
|
307
|
-
{#each notifications as n (n.title)}
|
|
308
|
-
<div class="sv-app__notif" role="menuitem"><span class="sv-app__notif-dot" style:background={n.color}></span><div class="sv-app__notif-body"><strong>{n.title}</strong><span>{n.time}</span></div></div>
|
|
309
|
-
{/each}
|
|
310
|
-
<button type="button" class="sv-app__menu-foot" onclick={() => (bellOpen = false)}>Mark all as read</button>
|
|
311
|
-
</div>
|
|
312
|
-
{/if}
|
|
313
|
-
</div>
|
|
314
|
-
<div class="sv-app__pop">
|
|
315
|
-
<button type="button" class="sv-app__avatar" title={brand} aria-label="Account" aria-expanded={menuOpen} onclick={() => { menuOpen = !menuOpen; bellOpen = false }}>{initials}</button>
|
|
316
|
-
{#if menuOpen}
|
|
317
|
-
<div class="sv-app__menu sv-app__menu--acct" role="menu">
|
|
318
|
-
<div class="sv-app__acct-head"><span class="sv-app__avatar sv-app__avatar--lg" aria-hidden="true">{initials}</span><div class="sv-app__acct-id"><strong>{brand}</strong><span>{acctEmail}</span></div></div>
|
|
319
|
-
<a class="sv-app__menu-item" href="/" role="menuitem" onclick={() => (menuOpen = false)}>Dashboard</a>
|
|
320
|
-
<button type="button" class="sv-app__menu-item" role="menuitem" onclick={() => (menuOpen = false)}>Profile</button>
|
|
321
|
-
<button type="button" class="sv-app__menu-item" role="menuitem" onclick={() => (menuOpen = false)}>Settings</button>
|
|
322
|
-
<button type="button" class="sv-app__menu-item sv-app__menu-item--danger" role="menuitem" onclick={() => (menuOpen = false)}>Sign out</button>
|
|
323
|
-
</div>
|
|
324
|
-
{/if}
|
|
325
|
-
</div>
|
|
326
|
-
</div>
|
|
327
|
-
{#if bellOpen || menuOpen}<button type="button" class="sv-app__scrim" tabindex="-1" aria-label="Close menus" onclick={() => { bellOpen = false; menuOpen = false }}></button>{/if}
|
|
328
|
-
</div>\n `:``}<div class="sv-app__content">
|
|
329
|
-
{@render children()}
|
|
330
|
-
</div>
|
|
331
|
-
</main>`,w=i===`top-nav`?`<div class="sv-app sv-app--top">
|
|
332
|
-
<header class="sv-app__bar">
|
|
333
|
-
${_}
|
|
334
|
-
${f}
|
|
335
|
-
</header>
|
|
336
|
-
${C}${o?`
|
|
337
|
-
<footer class="sv-app__footbar">{footer}</footer>`:``}
|
|
338
|
-
</div>`:`<div class="sv-app sv-app--side${s?` sv-app--right`:``}" class:is-drawer={drawer} class:is-navopen={navOpen}>
|
|
339
|
-
${v}
|
|
340
|
-
<aside class="sv-app__side">
|
|
341
|
-
<div class="sv-app__sidehead">
|
|
342
|
-
${_}
|
|
343
|
-
<button type="button" class="sv-app__collapse" aria-label="Collapse sidebar" title="Collapse sidebar" onclick={toggleNav}>
|
|
344
|
-
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 6l-6 6 6 6"/></svg>
|
|
345
|
-
</button>
|
|
346
|
-
</div>
|
|
347
|
-
${f}${p}
|
|
348
|
-
</aside>
|
|
349
|
-
${C}
|
|
350
|
-
</div>`,T=i===`top-nav`?` .sv-app--top { display: flex; flex-direction: column; min-height: 100vh; }
|
|
351
|
-
.sv-app__bar { display: flex; align-items: center; gap: 20px; padding: 12px 22px; border-bottom: 1px solid color-mix(in srgb, var(--sg-fg, #0f172a) 16%, var(--sg-border, #e6e8ec)); background: var(--sg-header-bg, #f8fafc); }
|
|
352
|
-
.sv-app__links { display: flex; flex-direction: row; gap: 4px; flex-wrap: wrap; }
|
|
353
|
-
.sv-app__footbar { padding: 12px 22px; border-top: 1px solid var(--sg-border, #e6e8ec); color: var(--sg-muted, #94a3b8); font-size: 13px; }
|
|
354
|
-
/* Mobile: the bar stacks and its links scroll horizontally. */
|
|
355
|
-
@media (max-width: 640px) {
|
|
356
|
-
.sv-app__bar { flex-direction: column; align-items: stretch; gap: 10px; padding: 10px 14px; }
|
|
357
|
-
.sv-app__links { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
|
|
358
|
-
.sv-app__link { white-space: nowrap; }
|
|
359
|
-
}`:` .sv-app--side { display: grid; grid-template-columns: 240px minmax(0, 1fr); min-height: 100vh; }
|
|
360
|
-
.sv-app--side.sv-app--right { grid-template-columns: minmax(0, 1fr) 240px; }
|
|
361
|
-
.sv-app--right .sv-app__side { order: 2; border-right: 0; border-left: 1px solid color-mix(in srgb, var(--sg-fg, #0f172a) 16%, var(--sg-border, #e6e8ec)); }
|
|
362
|
-
.sv-app__side { display: flex; flex-direction: column; gap: 4px; padding: 20px 14px; border-right: 1px solid color-mix(in srgb, var(--sg-fg, #0f172a) 16%, var(--sg-border, #e6e8ec)); background: var(--sg-header-bg, #f8fafc); }
|
|
363
|
-
.sv-app__sidehead { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
|
|
364
|
-
.sv-app__collapse, .sv-app__dock { display: inline-flex; padding: 5px; border: 0; border-radius: 8px; background: transparent; color: var(--sg-muted, #64748b); cursor: pointer; }
|
|
365
|
-
.sv-app__collapse:hover, .sv-app__dock:hover { background: color-mix(in srgb, var(--sg-fg, #0f172a) 8%, transparent); color: var(--sg-fg, #0f172a); }
|
|
366
|
-
.sv-app__mobilebar { display: none; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid color-mix(in srgb, var(--sg-fg, #0f172a) 16%, var(--sg-border, #e6e8ec)); background: var(--sg-header-bg, #f8fafc); }
|
|
367
|
-
.sv-app__mobilebar .sv-app__dock { margin-left: auto; }
|
|
368
|
-
.sv-app__burger { display: inline-flex; padding: 6px; border: 0; border-radius: 8px; background: transparent; color: var(--sg-fg, #0f172a); cursor: pointer; }
|
|
369
|
-
.sv-app__backdrop { position: fixed; inset: 0; z-index: 55; border: 0; background: rgba(15, 23, 42, 0.4); cursor: pointer; }
|
|
370
|
-
.sv-app__links { display: flex; flex-direction: column; gap: 2px; }
|
|
371
|
-
.sv-app__foot { margin-top: auto; padding-top: 14px; color: var(--sg-muted, #94a3b8); font-size: 12px; }
|
|
372
|
-
/* Drawer mode: tablet / phone (<= 1024px) or a user-collapsed desktop sidebar.
|
|
373
|
-
Driven by the .is-drawer class (JS matchMedia + the collapse toggle), so the
|
|
374
|
-
sidebar docks on wide screens and slides in as an off-canvas drawer otherwise. */
|
|
375
|
-
.sv-app--side.is-drawer, .sv-app--side.is-drawer.sv-app--right { display: block; }
|
|
376
|
-
.sv-app--side.is-drawer .sv-app__mobilebar { display: flex; }
|
|
377
|
-
.sv-app--side.is-drawer .sv-app__side {
|
|
378
|
-
position: fixed; top: 0; bottom: 0; left: 0; z-index: 60; width: 264px; max-width: 82vw;
|
|
379
|
-
transform: translateX(-100%); transition: transform 0.24s ease; box-shadow: 0 0 40px rgba(15, 23, 42, 0.28);
|
|
380
|
-
}
|
|
381
|
-
.sv-app--side.is-drawer.sv-app--right .sv-app__side { left: auto; right: 0; transform: translateX(100%); border-left: 0; }
|
|
382
|
-
.sv-app--side.is-drawer.is-navopen .sv-app__side { transform: translateX(0); }
|
|
383
|
-
.sv-app--side.is-drawer .sv-app__sidehead .sv-app__brand { display: none; } /* brand already in the top bar */
|
|
384
|
-
.sv-app--side.is-drawer .sv-app__collapse { display: none; } /* dock lives in the top bar when drawered */`;return{path:`src/routes/+layout.svelte`,description:`App shell (${i}): nav linking every screen.`,contents:`<script lang="ts">
|
|
385
|
-
import '../app.css'
|
|
386
|
-
import { page } from '$app/stores'${t.access?`
|
|
387
|
-
import { currentRole, canScreen } from '$lib/access'`:``}${t.i18n?`
|
|
388
|
-
import { t, currentLocale, locales } from '$lib/i18n'`:``}
|
|
389
|
-
|
|
390
|
-
let { children } = $props()
|
|
391
|
-
const nav = ${JSON.stringify(n)}
|
|
392
|
-
const brand = ${JSON.stringify(a)}${m}${g}
|
|
393
|
-
let navOpen = $state(false)
|
|
394
|
-
// Close the mobile drawer whenever the route changes.
|
|
395
|
-
$effect(() => { void $page.url.pathname; navOpen = false })${h}${y?`
|
|
396
|
-
// App-chrome quick-search: filter the screens by label as you type.
|
|
397
|
-
const initials = ${JSON.stringify(b)}
|
|
398
|
-
const acctEmail = ${JSON.stringify(`admin@${x}.com`)}
|
|
399
|
-
let q = $state('')
|
|
400
|
-
const results = $derived(q.trim() ? nav.filter((n) => n.label.toLowerCase().includes(q.trim().toLowerCase())).slice(0, 6) : [])
|
|
401
|
-
let bellOpen = $state(false)
|
|
402
|
-
let menuOpen = $state(false)
|
|
403
|
-
let searchEl: HTMLInputElement | null = $state(null)
|
|
404
|
-
const notifications = [
|
|
405
|
-
{ title: 'Welcome to ' + brand, time: 'just now', color: 'var(--sg-accent, #6366f1)' },
|
|
406
|
-
{ title: 'Your workspace is ready', time: '2m ago', color: '#10b981' },
|
|
407
|
-
{ title: 'Sample data loaded', time: '5m ago', color: '#f59e0b' },
|
|
408
|
-
]
|
|
409
|
-
// Cmd/Ctrl+K focuses search; Escape closes the menus.
|
|
410
|
-
$effect(() => {
|
|
411
|
-
function onKey(e: KeyboardEvent) {
|
|
412
|
-
if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') { e.preventDefault(); searchEl?.focus() }
|
|
413
|
-
else if (e.key === 'Escape') { bellOpen = false; menuOpen = false }
|
|
414
|
-
}
|
|
415
|
-
window.addEventListener('keydown', onKey)
|
|
416
|
-
return () => window.removeEventListener('keydown', onKey)
|
|
417
|
-
})
|
|
418
|
-
// Close both menus on route change.
|
|
419
|
-
$effect(() => { void $page.url.pathname; bellOpen = false; menuOpen = false })`:``}
|
|
420
|
-
<\/script>
|
|
421
|
-
${u}
|
|
422
|
-
|
|
423
|
-
${w}
|
|
424
|
-
|
|
425
|
-
<style>
|
|
426
|
-
${T}
|
|
427
|
-
.sv-app__brand { display: inline-flex; align-items: center; font-weight: 700; font-size: 15px; color: var(--sg-fg, #0f172a); text-decoration: none; padding: 4px 8px; }
|
|
428
|
-
.sv-app__logo { max-height: 34px; max-width: 160px; width: auto; object-fit: contain; display: block; }
|
|
429
|
-
.sv-app__link { padding: 7px 10px; border-radius: 8px; color: var(--sg-fg, #334155); text-decoration: none; font-size: 14px; }
|
|
430
|
-
.sv-app__link:hover { background: color-mix(in srgb, var(--sg-fg, #0f172a) 6%, transparent); }
|
|
431
|
-
.sv-app__link.is-active { background: color-mix(in srgb, var(--sg-accent, #4f46e5) 14%, transparent); color: var(--sg-accent, #4f46e5); font-weight: 600; }
|
|
432
|
-
.sv-app__main { display: flex; flex-direction: column; min-width: 0; }
|
|
433
|
-
.sv-app__content { padding: 24px 28px; min-width: 0; }
|
|
434
|
-
/* App-chrome toolbar: a sticky product header with quick-search + account cluster. */
|
|
435
|
-
.sv-app__toolbar { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 16px; padding: 10px 28px; background: color-mix(in srgb, var(--sg-header-bg, #f8fafc) 86%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid color-mix(in srgb, var(--sg-fg, #0f172a) 10%, var(--sg-border, #e6e8ec)); }
|
|
436
|
-
.sv-app__search { position: relative; flex: 1; max-width: 440px; display: flex; align-items: center; }
|
|
437
|
-
.sv-app__search-ic { position: absolute; left: 11px; color: var(--sg-muted, #94a3b8); pointer-events: none; }
|
|
438
|
-
.sv-app__search-in { width: 100%; font: inherit; font-size: 13.5px; padding: 7px 46px 7px 34px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 9px; background: var(--sg-bg, #fff); color: var(--sg-fg, #0f172a); }
|
|
439
|
-
.sv-app__search-in::-webkit-search-cancel-button { -webkit-appearance: none; }
|
|
440
|
-
.sv-app__search-in:focus { outline: none; border-color: var(--sg-accent, #6366f1); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sg-accent, #6366f1) 18%, transparent); }
|
|
441
|
-
.sv-app__results { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20; display: flex; flex-direction: column; padding: 5px; background: var(--sg-bg, #fff); border: 1px solid var(--sg-border, #e6e8ec); border-radius: 10px; box-shadow: 0 12px 32px -8px rgba(15, 23, 42, 0.25); }
|
|
442
|
-
.sv-app__result { padding: 7px 10px; border-radius: 7px; font-size: 13.5px; color: var(--sg-fg, #334155); text-decoration: none; }
|
|
443
|
-
.sv-app__result:hover { background: color-mix(in srgb, var(--sg-accent, #6366f1) 12%, transparent); color: var(--sg-accent, #6366f1); }
|
|
444
|
-
.sv-app__tools { margin-left: auto; display: flex; align-items: center; gap: 10px; }
|
|
445
|
-
.sv-app__tool { position: relative; display: inline-flex; padding: 7px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 9px; background: var(--sg-bg, #fff); color: var(--sg-muted, #64748b); cursor: pointer; }
|
|
446
|
-
.sv-app__tool:hover { color: var(--sg-fg, #0f172a); border-color: color-mix(in srgb, var(--sg-fg, #0f172a) 20%, var(--sg-border, #e6e8ec)); }
|
|
447
|
-
.sv-app__dot { position: absolute; top: 5px; right: 5px; width: 6px; height: 6px; border-radius: 50%; background: var(--sg-accent, #6366f1); box-shadow: 0 0 0 2px var(--sg-bg, #fff); }
|
|
448
|
-
.sv-app__avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: none; border-radius: 50%; font: inherit; font-size: 12px; font-weight: 700; color: #fff; background: var(--sg-accent, #6366f1); letter-spacing: 0.02em; cursor: pointer; }
|
|
449
|
-
.sv-app__kbd { position: absolute; right: 8px; font-size: 10.5px; font-weight: 600; color: var(--sg-muted, #94a3b8); background: color-mix(in srgb, var(--sg-fg, #0f172a) 6%, transparent); border: 1px solid var(--sg-border, #e6e8ec); border-radius: 5px; padding: 1px 5px; pointer-events: none; }
|
|
450
|
-
.sv-app__pop { position: relative; }
|
|
451
|
-
.sv-app__scrim { position: fixed; inset: 0; z-index: 44; border: 0; padding: 0; background: transparent; cursor: default; }
|
|
452
|
-
.sv-app__menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 46; min-width: 232px; padding: 6px; background: var(--sg-bg, #fff); border: 1px solid var(--sg-border, #e6e8ec); border-radius: 11px; box-shadow: 0 16px 40px -10px rgba(15, 23, 42, 0.3); }
|
|
453
|
-
.sv-app__menu-head { padding: 6px 10px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--sg-muted, #94a3b8); }
|
|
454
|
-
.sv-app__notif { display: flex; gap: 9px; padding: 8px 10px; border-radius: 8px; }
|
|
455
|
-
.sv-app__notif:hover { background: color-mix(in srgb, var(--sg-fg, #0f172a) 5%, transparent); }
|
|
456
|
-
.sv-app__notif-dot { flex: none; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; }
|
|
457
|
-
.sv-app__notif-body { display: flex; flex-direction: column; min-width: 0; }
|
|
458
|
-
.sv-app__notif-body strong { font-size: 13px; font-weight: 600; color: var(--sg-fg, #0f172a); }
|
|
459
|
-
.sv-app__notif-body span { font-size: 11.5px; color: var(--sg-muted, #94a3b8); }
|
|
460
|
-
.sv-app__menu-foot { width: 100%; margin-top: 4px; padding: 8px; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--sg-accent, #6366f1); background: none; border: none; border-top: 1px solid var(--sg-border, #eef0f3); cursor: pointer; }
|
|
461
|
-
.sv-app__acct-head { display: flex; align-items: center; gap: 10px; padding: 8px 10px 10px; border-bottom: 1px solid var(--sg-border, #eef0f3); margin-bottom: 4px; }
|
|
462
|
-
.sv-app__avatar--lg { width: 38px; height: 38px; font-size: 14px; }
|
|
463
|
-
.sv-app__acct-id { display: flex; flex-direction: column; min-width: 0; }
|
|
464
|
-
.sv-app__acct-id strong { font-size: 13.5px; color: var(--sg-fg, #0f172a); }
|
|
465
|
-
.sv-app__acct-id span { font-size: 12px; color: var(--sg-muted, #94a3b8); overflow: hidden; text-overflow: ellipsis; }
|
|
466
|
-
.sv-app__menu-item { display: block; width: 100%; text-align: left; padding: 8px 10px; font: inherit; font-size: 13px; color: var(--sg-fg, #334155); background: none; border: none; border-radius: 8px; text-decoration: none; cursor: pointer; }
|
|
467
|
-
.sv-app__menu-item:hover { background: color-mix(in srgb, var(--sg-accent, #6366f1) 10%, transparent); color: var(--sg-accent, #6366f1); }
|
|
468
|
-
.sv-app__menu-item--danger:hover { background: color-mix(in srgb, #ef4444 12%, transparent); color: #ef4444; }
|
|
469
|
-
.sv-app__locale { margin-top: 10px; padding: 5px 8px; font: inherit; font-size: 12.5px; color: var(--sg-fg, #0f172a); background: var(--sg-bg, #fff); border: 1px solid var(--sg-border, #e6e8ec); border-radius: 8px; }
|
|
470
|
-
/* Mobile bar + drawer chrome (hidden on desktop; media queries above switch it on) */
|
|
471
|
-
.sv-app__mobilebar { display: none; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--sg-border, #e6e8ec); background: var(--sg-header-bg, #f8fafc); position: sticky; top: 0; z-index: 50; }
|
|
472
|
-
.sv-app__burger { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 9px; background: var(--sg-bg, #fff); color: var(--sg-fg, #0f172a); cursor: pointer; }
|
|
473
|
-
.sv-app__backdrop { position: fixed; inset: 0; z-index: 55; border: 0; padding: 0; background: rgba(15, 23, 42, 0.42); cursor: pointer; }
|
|
474
|
-
@media (max-width: 860px) { .sv-app__content { padding: 18px 16px; } .sv-app__toolbar { padding: 9px 16px; } }
|
|
475
|
-
@media (max-width: 640px) { .sv-app__content { padding: 14px 12px; } .sv-app__toolbar { padding: 8px 12px; gap: 10px; } .sv-app__tool { display: none; } }
|
|
476
|
-
</style>
|
|
477
|
-
`}}function tT(e){let t=e[0]?.href??`/`;return e.length===0?{path:`src/routes/+page.svelte`,description:`Home page.`,contents:`<h1 class="st__title">Your data app</h1>
|
|
478
|
-
<p class="st__sub">Add a screen to get started.</p>
|
|
479
|
-
`}:{path:`src/routes/+page.svelte`,description:`Home: redirects to the primary dashboard.`,contents:`<script lang="ts">
|
|
480
|
-
import { onMount } from 'svelte'
|
|
481
|
-
import { goto } from '$app/navigation'
|
|
482
|
-
const home = ${JSON.stringify(t)}
|
|
483
|
-
onMount(() => { goto(home, { replaceState: true }) })
|
|
484
|
-
<\/script>
|
|
485
|
-
|
|
486
|
-
<div class="st-home">
|
|
487
|
-
<div class="st-home__spinner" aria-hidden="true"></div>
|
|
488
|
-
<p>Opening your workspace… <a href={home}>Continue</a></p>
|
|
489
|
-
</div>
|
|
490
|
-
|
|
491
|
-
<style>
|
|
492
|
-
.st-home { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 52vh; color: var(--sg-muted, #64748b); font-size: 14px; }
|
|
493
|
-
.st-home__spinner { width: 26px; height: 26px; border-radius: 50%; border: 3px solid var(--sg-border, #e6e8ec); border-top-color: var(--sg-accent, #6366f1); animation: st-home-spin 0.7s linear infinite; }
|
|
494
|
-
.st-home a { color: var(--sg-accent, #6366f1); font-weight: 600; }
|
|
495
|
-
@keyframes st-home-spin { to { transform: rotate(360deg); } }
|
|
496
|
-
</style>
|
|
497
|
-
`}}function nT(e){for(let t of e)sb(t);let t=new Map(e.map(e=>[e.name,e])),n=e.map(e=>{let n=Fw(e,t);return{schema:Iw(e,n),infos:n}});return{entries:n,seed:Lw(n)}}function rT(e,t={}){let{entries:n,seed:r}=nT(e),{file:i,needs:a}=Qw(n,r,t.sources),o=[Bw(n),i];a.supabase&&o.push($w(a));for(let e of a.sqlRoutes)o.push(Yw(e.schema,e.table,e.dialect,{access:t.accessEnabled,audit:t.auditEnabled}));return{files:o,prepared:n.map(e=>e.schema)}}var iT=[`chart`,`kpi`,`gauge`,`dashboard`,`pivot`,`tree`];function aT(e){let t=[];for(let n of e)if(t.push(n),n.config.kind===`tabs`)for(let e of n.config.tabs)t.push(...aT(e.blocks));return t}var oT=e=>Math.max(1,Math.min(12,Math.round(e.colSpan??e.span*4))),sT=[`create`,`update`,`delete`],cT=[{kind:`grid`,label:`Grid`},{kind:`chart`,label:`Chart`,needs:`measure`},{kind:`pivot`,label:`Pivot`,needs:`measure`},{kind:`dashboard`,label:`Dashboard`},{kind:`kpi`,label:`KPI tile`,needs:`measure`},{kind:`gauge`,label:`Gauge`,needs:`measure`},{kind:`tree`,label:`Tree`},{kind:`tabs`,label:`Tabs`},{kind:`master-detail`,label:`Master / detail`,needs:`child`},{kind:`board`,label:`Board`},{kind:`calendar`,label:`Calendar`},{kind:`detail`,label:`Detail page`},{kind:`filter`,label:`Filter panel`},{kind:`record`,label:`Record panel`},{kind:`lookup`,label:`Lookup`}];function lT(e,t){let n=1;for(;t.has(`${e}${n}`);)n++;return`${e}${n}`}function uT(e,t){return e.entities.find(e=>e.name===t)}var dT=e=>e.hidden===!0||typeof e.hidden==`object`&&e.hidden.grid===!0;function fT(e){let t=e.fields.filter(e=>!e.primaryKey);return t.find(e=>e.type===`enum`)?.field??t.find(e=>e.type===`boolean`)?.field??t.find(e=>e.type===`text`)?.field??t[0]?.field??e.fields[0]?.field??``}function pT(e){return e.fields.find(e=>e.type===`number`&&!e.primaryKey)?.field}function mT(e){let t=e.idField??e.fields.find(e=>e.primaryKey)?.field;return e.fields.filter(e=>!dT(e)).map(e=>({field:e.field,show:e.field!==t,header:e.label}))}function hT(e,t){switch(e){case`grid`:return{kind:e,columns:mT(t),pageSize:10,selectable:!0,sortable:!0,filterable:!1,editing:`form`,formPresentation:`modal`,density:`normal`,striped:!1,cellSelection:!1,rowSummaries:!1,paginated:!0,paginationPosition:`bottom`,pageSizeOptions:[10,25,50,100]};case`form`:return{kind:e,presentation:`modal`};case`chart`:{let n=pT(t);return{kind:e,dimension:fT(t),measure:n,reduce:n?`sum`:`count`,type:`bar`}}case`kpi`:{let n=pT(t);return{kind:e,label:n?`Total ${n}`:`Total ${t.label??t.name}`,measure:n,reduce:n?`sum`:`count`}}case`gauge`:{let n=pT(t);return{kind:e,label:n?`Avg ${n}`:`${t.label??t.name} count`,measure:n,reduce:n?`avg`:`count`,min:0,max:100}}case`tree`:return{kind:e,labelField:t.fields.find(e=>!e.primaryKey&&e.type===`text`)?.field??t.fields.find(e=>!e.primaryKey)?.field??t.fields[0]?.field??``,parentField:t.fields.find(e=>e.type===`relation`&&e.relation?.entity===t.name)?.field??t.fields.find(e=>/parent/i.test(e.field))?.field??``};case`tabs`:return{kind:e,tabs:[{label:`Overview`,blocks:[]},{label:`Details`,blocks:[]}]};case`dashboard`:return{kind:e};case`master-detail`:return{kind:e,childEntity:``,foreignKey:``};case`lookup`:return{kind:e,field:t.fields.find(e=>e.type===`relation`)?.field??t.fields[0]?.field??``};case`pivot`:{let n=pT(t),r=fT(t);return{kind:e,rows:r?[r]:[],cols:[],measure:n,aggregate:n?`sum`:`count`}}case`filter`:return{kind:e,fields:gT(t)};case`record`:return{kind:e,editable:!1};case`board`:{let n=t.fields.find(e=>e.type===`enum`&&!e.primaryKey)?.field??``,r=t.fields.find(e=>e.type===`text`&&!e.primaryKey)?.field??t.fields.find(e=>!e.primaryKey)?.field??``,i=pT(t);return{kind:e,groupBy:n,titleField:r,...i?{badgeField:i}:{}}}case`calendar`:{let n=t.fields.find(e=>(e.type===`datetime`||e.type===`date`||e.type===`dateString`)&&!e.primaryKey)?.field??``,r=t.fields.find(e=>e.type===`text`&&!e.primaryKey)?.field??t.fields.find(e=>!e.primaryKey)?.field??``,i=t.fields.find(e=>e.type===`enum`&&!e.primaryKey)?.field;return{kind:e,dateField:n,titleField:r,...i?{colorField:i}:{}}}case`detail`:{let n=t.fields.filter(e=>!e.primaryKey),r=n.find(e=>e.type===`text`)?.field??n[0]?.field??t.fields[0]?.field??``,i=n.find(e=>e.type===`enum`)?.field,a=n.find(e=>(e.type===`text`||e.type===`relation`)&&e.field!==r)?.field,o=n.filter(e=>e.type===`number`).slice(0,3).map(e=>e.field);return{kind:e,titleField:r,...a?{subtitleField:a}:{},...i?{statusField:i}:{},...o.length?{metricFields:o}:{}}}}}function gT(e){return e.fields.filter(e=>!e.primaryKey&&(e.type===`enum`||e.type===`boolean`||e.type===`text`)).sort((e,t)=>_T(e.type)-_T(t.type)).slice(0,4).map(e=>e.field)}var _T=e=>e===`enum`?0:e===`boolean`?1:2,vT={grid:3,form:1,chart:2,dashboard:3,kpi:1,gauge:1,tree:2,tabs:3,"master-detail":3,lookup:1,pivot:3,filter:1,record:1,board:3,calendar:3,detail:3};function yT(e,t,n){return{id:lT(`${e}-`,n),span:vT[e],config:hT(e,t)}}function bT(e,t){return{...e,tabs:[...e.tabs,{label:t??`Tab ${e.tabs.length+1}`,blocks:[]}]}}function xT(e,t){return e.tabs.length<=1?e:{...e,tabs:e.tabs.filter((e,n)=>n!==t)}}function ST(e,t,n){return{...e,tabs:e.tabs.map((e,r)=>r===t?{...e,label:n}:e)}}function CT(e,t,n,r){if(!iT.includes(n))return e;let i=new Set;e.tabs.forEach(e=>aT(e.blocks).forEach(e=>i.add(e.id)));let a={id:lT(`${n}-`,i),span:vT[n],config:hT(n,r)};return{...e,tabs:e.tabs.map((e,n)=>n===t?{...e,blocks:[...e.blocks,a]}:e)}}function wT(e,t,n){return{...e,tabs:e.tabs.map((e,r)=>r===t?{...e,blocks:e.blocks.filter(e=>e.id!==n)}:e)}}function TT(e){let t=yT(`grid`,e,new Set);return{id:e.name,entity:e.name,title:e.label??e.name,route:e.name,blocks:[t]}}function ET(e,t,n){return{...e,screens:e.screens.map(e=>e.id===t?n(e):e)}}function DT(e,t,n){return ET(e,t,t=>{let r=uT(e,t.entity);if(!r)return t;let i=new Set(t.blocks.map(e=>e.id));return{...t,blocks:[...t.blocks,yT(n,r,i)]}})}function OT(e,t,n,r){return ET(e,t,t=>{let i=uT(e,t.entity);if(!i)return t;let a=yT(n,i,new Set(t.blocks.map(e=>e.id))),o=[...t.blocks];return o.splice(Math.max(0,Math.min(r,o.length)),0,a),{...t,blocks:o}})}function kT(e,t,n){return e.map(e=>e.id===t?n(e):e.config.kind===`tabs`?{...e,config:{...e.config,tabs:e.config.tabs.map(e=>({...e,blocks:kT(e.blocks,t,n)}))}}:e)}function AT(e,t){return e.filter(e=>e.id!==t).map(e=>e.config.kind===`tabs`?{...e,config:{...e.config,tabs:e.config.tabs.map(e=>({...e,blocks:AT(e.blocks,t)}))}}:e)}function jT(e,t,n){return ET(e,t,e=>({...e,blocks:AT(e.blocks,n)}))}function MT(e,t,n){return ET(e,t,e=>{let t=e.blocks.findIndex(e=>e.id===n);if(t<0)return e;let r=e.blocks[t],i={...r,id:lT(`${r.config.kind}-`,new Set(e.blocks.map(e=>e.id))),config:JSON.parse(JSON.stringify(r.config))};return{...e,blocks:[...e.blocks.slice(0,t+1),i,...e.blocks.slice(t+1)]}})}function NT(e,t,n,r){return ET(e,t,e=>{let t=e.blocks.findIndex(e=>e.id===n);if(t<0)return e;let i=[...e.blocks],[a]=i.splice(t,1);return i.splice(Math.max(0,Math.min(r,i.length)),0,a),{...e,blocks:i}})}function PT(e,t,n,r){return ET(e,t,e=>({...e,blocks:kT(e.blocks,n,e=>({...e,span:r.span??e.span,colSpan:r.colSpan??e.colSpan,height:r.height??e.height,config:r.config?{...e.config,...r.config}:e.config}))}))}function FT(e,t,n){let r=e.entities.map(e=>e.name===t?n:e);if(t===n.name)return{...e,entities:r};let i=e.screens.map(e=>{let r=e.blocks.map(e=>e.config.kind===`master-detail`&&e.config.childEntity===t?{...e,config:{...e.config,childEntity:n.name}}:e);return{...e,entity:e.entity===t?n.name:e.entity,blocks:r}});return{...e,entities:r,screens:i}}function IT(e,t){return uT(e,t.name)?e:{...e,entities:[...e.entities,t],screens:[...e.screens,TT(t)]}}function LT(e,t,n){let r=new Set(e.screens.map(e=>e.id)),i=new Set(e.screens.map(e=>e.route)),a=r.has(t.id)?lT(`${n}-`,r):t.id,o=i.has(t.route)?lT(`${t.route}-`,i):t.route;return{...e,screens:[...e.screens,{...t,id:a,route:o}]}}function RT(e,t){return{...e,screens:e.screens.filter(e=>e.id!==t)}}function zT(e,t,n){return ET(e,t,e=>({...e,...n}))}function BT(e,t){return e.map(e=>{let n=JSON.parse(JSON.stringify(e.config)),r=lT(`${n.kind}-`,t);return t.add(r),n.kind===`tabs`&&(n.tabs=n.tabs.map(e=>({...e,blocks:BT(e.blocks,t)}))),{...e,id:r,config:n}})}function VT(e,t,n,r){return ET(e,t,e=>{let t=new Set(aT(e.blocks).map(e=>e.id)),[i]=BT([n],t),a=[...e.blocks];return a.splice(r??a.length,0,i),{...e,blocks:a}})}function HT(e,t){let n=e.screens.findIndex(e=>e.id===t);if(n<0)return e;let r=e.screens[n],i=new Set(e.screens.map(e=>e.id)),a=new Set(e.screens.map(e=>e.route)),o=lT(`${r.entity}-`,i),s=lT(`${r.route}-`,a),c={...r,id:o,route:s,title:`${r.title} copy`,blocks:BT(r.blocks,new Set(aT(r.blocks).map(e=>e.id)))},l=[...e.screens];return l.splice(n+1,0,c),{...e,screens:l}}function UT(e,t,n){let r=e.screens.findIndex(e=>e.id===t);if(r<0)return e;let i=[...e.screens],[a]=i.splice(r,1);return i.splice(Math.max(0,Math.min(n,i.length)),0,a),{...e,screens:i}}function WT(e,t){return{...e,dataSource:t}}function GT(e,t){if(t===`auto`){let{deploy:t,...n}=e;return n}return{...e,deploy:t}}function KT(e,t){switch(e){case`rest`:return{kind:`rest`,baseUrl:``,path:t,method:`GET`,params:[]};case`sql`:return{kind:`sql`,table:t};case`supabase`:return{kind:`supabase`,table:t};case`pglite`:return{kind:`pglite`,table:t};default:return{kind:`memory`}}}function qT(e,t,n){return{...e,dataSources:{...e.dataSources,[t]:n}}}function JT(e,t){return e.dataSources?.[t]??{kind:`memory`}}function YT(e,t){return{...e,theme:{...e.theme,...t}}}function XT(e,t,n){let r={...e.theme,preset:t};return n?r.accent=n:delete r.accent,{...e,theme:r}}function ZT(e,t){return{...e,theme:{...e.theme,shell:{...e.theme?.shell,...t}}}}function QT(e,t,n={}){let r=new Set,i=(t,n,i)=>{let a=yT(t,e,r);return r.add(a.id),n&&(a.span=n),i&&(a.config=i),a},a=pT(e),o=e.label??e.name,s;if(t===`empty`)s=[];else if(t===`dashboard`){let e=[i(`kpi`,1,{kind:`kpi`,label:`Total ${o}`,reduce:`count`})];a&&e.push(i(`kpi`,1,{kind:`kpi`,label:`Total ${a}`,measure:a,reduce:`sum`})),s=[...e,i(`chart`,2),i(`grid`,3)]}else if(t===`master-detail`){let t=i(`master-detail`,3,{kind:`master-detail`,childEntity:n.child?.name??``,foreignKey:n.foreignKey??n.child?.fields.find(t=>t.type===`relation`&&t.relation?.entity===e.name)?.field??``});s=[i(`grid`,3),t]}else s=[i(`grid`,3)];return{id:e.name,entity:e.name,title:o,route:e.name,blocks:s}}function $T(e,t,n,r={}){let i=uT(e,t);return i?LT(e,QT(i,n,{child:r.child?uT(e,r.child):void 0,foreignKey:r.foreignKey}),t):e}function eE(e,t){if(!t.has(e))return t.add(e),e;let n=2;for(;t.has(`${e}_${n}`);)n++;let r=`${e}_${n}`;return t.add(r),r}function tE(e){let t=new Set,n=[];for(let r of e.entities){if(t.has(r.name))continue;t.add(r.name);let e=new Set;n.push({...r,fields:r.fields.map(t=>({...t,field:eE(t.field,e)}))})}let r=new Set,i=new Set,a=e.screens.map(e=>{let t=new Set;return{...e,id:eE(e.id,r),route:eE(e.route,i),blocks:e.blocks.map(e=>({...e,id:eE(e.id,t)}))}}),o={...e,entities:n,screens:a};if(e.dataSources){let n=Object.fromEntries(Object.entries(e.dataSources).filter(([e])=>t.has(e)));Object.keys(n).length?o.dataSources=n:delete o.dataSources}return o}function nE(e){return JSON.stringify(e,null,2)}function rE(e){let t;try{t=JSON.parse(e)}catch{throw Error(`parseProject: not valid JSON`)}if(!t||typeof t!=`object`)throw Error(`parseProject: expected a project object`);let n=t;if(!Array.isArray(n.entities))throw Error(`parseProject: missing "entities"`);if(!Array.isArray(n.screens))throw Error(`parseProject: missing "screens"`);return tE({title:typeof n.title==`string`?n.title:`My Studio App`,entities:n.entities,screens:n.screens,dataSource:n.dataSource??`memory`,...n.dataSources&&typeof n.dataSources==`object`?{dataSources:n.dataSources}:{},...n.theme&&typeof n.theme==`object`?{theme:n.theme}:{},...n.access&&typeof n.access==`object`?{access:n.access}:{},...typeof n.audit==`boolean`?{audit:n.audit}:{},...n.i18n&&typeof n.i18n==`object`?{i18n:n.i18n}:{},...typeof n.deploy==`string`&&n.deploy!==`auto`?{deploy:n.deploy}:{}})}function iE(e){let t=[];e.entities.length===0&&t.push({level:`error`,message:`Add at least one entity.`}),e.screens.length===0&&t.push({level:`warning`,message:`No screens yet.`});let n=new Set;for(let r of e.screens){uT(e,r.entity)||t.push({level:`error`,message:`Screen "${r.title}" points at a missing entity "${r.entity}".`,screen:r.id}),n.has(r.route)&&t.push({level:`error`,message:`Duplicate route "/${r.route}".`,screen:r.id}),n.add(r.route),r.blocks.length===0&&t.push({level:`warning`,message:`Screen "${r.title}" has no blocks.`,screen:r.id});for(let n of aT(r.blocks)){let i=(e,t=`warning`)=>({level:t,message:e,screen:r.id,block:n.id}),a=n.config;a.kind===`master-detail`?!a.childEntity||!a.foreignKey?t.push(i(`Master/detail needs a child entity + foreign key.`)):uT(e,a.childEntity)||t.push(i(`Master/detail points at a missing child entity "${a.childEntity}".`)):a.kind===`tree`?(!a.labelField||!a.parentField)&&t.push(i(`Tree needs a label field and a self-referential parent field.`)):a.kind===`lookup`?a.field||t.push(i(`Lookup needs a relation field.`)):a.kind===`filter`?a.fields.length||t.push(i(`Filter panel has no facets - pick fields to filter on.`)):a.kind===`chart`?a.dimension||t.push(i(`Chart has no group-by dimension.`)):a.kind===`pivot`?!a.rows.length&&!a.cols.length&&t.push(i(`Pivot has no row or column dimensions.`)):a.kind===`tabs`&&a.tabs.every(e=>e.blocks.length===0)&&t.push(i(`Tabs container has no blocks in any tab.`))}}return t}function aE(e){return!iE(e).some(e=>e.level===`error`)}var oE=[{id:`shadcn`,name:`shadcn/ui`,radius:6,font:`ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`,light:{bg:`#ffffff`,fg:`#09090b`,muted:`#71717a`,border:`#e4e4e7`,headerBg:`#fafafa`,headerFg:`#71717a`,accent:`#18181b`,rowAlt:`#ffffff`,rowHover:`#f4f4f5`,selectionBg:`#f4f4f5`},dark:{bg:`#0a0a0a`,fg:`#fafafa`,muted:`#a1a1aa`,border:`#27272a`,headerBg:`#18181b`,headerFg:`#a1a1aa`,accent:`#fafafa`,rowAlt:`#0a0a0a`,rowHover:`#18181b`,selectionBg:`#27272a`}},{id:`tailwind`,name:`Tailwind`,radius:6,font:`Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif`,light:{bg:`#ffffff`,fg:`#0f172a`,muted:`#64748b`,border:`#e2e8f0`,headerBg:`#f8fafc`,headerFg:`#0f172a`,accent:`#4f46e5`,rowAlt:`#ffffff`,rowHover:`#f1f5f9`,selectionBg:`#e0e7ff`},dark:{bg:`#0f172a`,fg:`#f8fafc`,muted:`#94a3b8`,border:`#334155`,headerBg:`#1e293b`,headerFg:`#f8fafc`,accent:`#818cf8`,rowAlt:`#0f172a`,rowHover:`#1e293b`,selectionBg:`#312e81`}},{id:`material`,name:`Material 3`,radius:8,font:`"Roboto Flex", Roboto, "Segoe UI", system-ui, sans-serif`,light:{bg:`#fef7ff`,fg:`#1d1b20`,muted:`#49454f`,border:`#cac4d0`,headerBg:`#f3edf7`,headerFg:`#1d1b20`,accent:`#6750a4`,rowAlt:`#fffbfe`,rowHover:`#ece6f0`,selectionBg:`#e8def8`},dark:{bg:`#141218`,fg:`#e6e0e9`,muted:`#cac4d0`,border:`#49454f`,headerBg:`#211f26`,headerFg:`#e6e0e9`,accent:`#d0bcff`,rowAlt:`#141218`,rowHover:`#2b2930`,selectionBg:`#4a4458`}},{id:`excel`,name:`Excel`,radius:0,font:`"Aptos", "Segoe UI", Calibri, Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#323130`,muted:`#605e5c`,border:`#d2d0ce`,headerBg:`#f3f2f1`,headerFg:`#444444`,accent:`#107c41`,rowAlt:`#ffffff`,rowHover:`#edebe9`,selectionBg:`rgba(16, 124, 65, 0.10)`},dark:{bg:`#1b1a19`,fg:`#f3f2f1`,muted:`#c8c6c4`,border:`#3b3a39`,headerBg:`#252423`,headerFg:`#c8c6c4`,accent:`#58c188`,rowAlt:`#1b1a19`,rowHover:`#323130`,selectionBg:`rgba(88, 193, 136, 0.16)`}},{id:`fluent`,name:`Fluent 2`,radius:4,font:`"Segoe UI Variable", "Segoe UI", system-ui, sans-serif`,light:{bg:`#ffffff`,fg:`#242424`,muted:`#616161`,border:`#e0e0e0`,headerBg:`#f5f5f5`,headerFg:`#242424`,accent:`#0f6cbd`,rowAlt:`#fafafa`,rowHover:`#f0f0f0`,selectionBg:`#ebebeb`},dark:{bg:`#1f1f1f`,fg:`#ffffff`,muted:`#d6d6d6`,border:`#666666`,headerBg:`#141414`,headerFg:`#ffffff`,accent:`#479ef5`,rowAlt:`#1a1a1a`,rowHover:`#3d3d3d`,selectionBg:`#383838`}},{id:`carbon`,name:`Carbon`,radius:0,font:`"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#161616`,muted:`#525252`,border:`#e0e0e0`,headerBg:`#e0e0e0`,headerFg:`#161616`,accent:`#0f62fe`,rowAlt:`#f4f4f4`,rowHover:`#e8e8e8`,selectionBg:`#d0e2ff`},dark:{bg:`#161616`,fg:`#f4f4f4`,muted:`#c6c6c6`,border:`#393939`,headerBg:`#393939`,headerFg:`#f4f4f4`,accent:`#78a9ff`,rowAlt:`#262626`,rowHover:`#333333`,selectionBg:`#393939`}},{id:`sap`,name:`SAP Fiori`,radius:6,font:`"72", "72full", "Arial", sans-serif`,light:{bg:`#f5f6f7`,fg:`#131e29`,muted:`#556b82`,border:`#e5e5e5`,headerBg:`#ffffff`,headerFg:`#131e29`,accent:`#0070f2`,rowAlt:`#f5f6f7`,rowHover:`#eaecee`,selectionBg:`#ebf8ff`},dark:{bg:`#12171c`,fg:`#f5f6f7`,muted:`#8396a8`,border:`#2e3742`,headerBg:`#1d232a`,headerFg:`#f5f6f7`,accent:`#4db1ff`,rowAlt:`#12171c`,rowHover:`#222b35`,selectionBg:`#1d2d3e`}},{id:`salesforce`,name:`Salesforce`,radius:4,font:`"Salesforce Sans", "SF Pro", Helvetica, Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#181818`,muted:`#757575`,border:`#c9c9c9`,headerBg:`#f3f3f3`,headerFg:`#181818`,accent:`#0176d3`,rowAlt:`#ffffff`,rowHover:`#f3f3f3`,selectionBg:`#ecebea`},dark:{bg:`#181818`,fg:`#ffffff`,muted:`#c9c9c9`,border:`#3e3e3c`,headerBg:`#2e2e2e`,headerFg:`#ffffff`,accent:`#1b96ff`,rowAlt:`#181818`,rowHover:`#2e2e2e`,selectionBg:`#1e4d8e`}},{id:`atlassian`,name:`Atlassian`,radius:3,font:`"Charlie Display", "Atlassian Sans", -apple-system, "Segoe UI", sans-serif`,light:{bg:`#ffffff`,fg:`#172b4d`,muted:`#44546f`,border:`#dcdfe4`,headerBg:`#fafbfc`,headerFg:`#44546f`,accent:`#0c66e4`,rowAlt:`#ffffff`,rowHover:`#f1f2f4`,selectionBg:`#e9f2ff`},dark:{bg:`#1d2125`,fg:`#b6c2cf`,muted:`#8590a2`,border:`#38414a`,headerBg:`#22272b`,headerFg:`#8590a2`,accent:`#579dff`,rowAlt:`#1d2125`,rowHover:`#2c333a`,selectionBg:`#09326c`}},{id:`github`,name:`GitHub`,radius:6,font:`-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#1f2328`,muted:`#59636e`,border:`#d1d9e0`,headerBg:`#f6f8fa`,headerFg:`#59636e`,accent:`#0969da`,rowAlt:`#ffffff`,rowHover:`#f6f8fa`,selectionBg:`#ddf4ff`},dark:{bg:`#0d1117`,fg:`#f0f6fc`,muted:`#9198a1`,border:`#3d444d`,headerBg:`#151b23`,headerFg:`#9198a1`,accent:`#4493f8`,rowAlt:`#0d1117`,rowHover:`#151b23`,selectionBg:`rgba(56, 139, 253, 0.10)`}},{id:`antd`,name:`Ant Design`,radius:6,font:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif`,light:{bg:`#ffffff`,fg:`rgba(0, 0, 0, 0.88)`,muted:`rgba(0, 0, 0, 0.65)`,border:`#d9d9d9`,headerBg:`#fafafa`,headerFg:`rgba(0, 0, 0, 0.88)`,accent:`#1677ff`,rowAlt:`#ffffff`,rowHover:`#f5f5f5`,selectionBg:`#e6f4ff`},dark:{bg:`#141414`,fg:`rgba(255, 255, 255, 0.85)`,muted:`rgba(255, 255, 255, 0.65)`,border:`#424242`,headerBg:`#1f1f1f`,headerFg:`rgba(255, 255, 255, 0.85)`,accent:`#177ddc`,rowAlt:`#141414`,rowHover:`#262626`,selectionBg:`#111a2c`}},{id:`ag-alpine`,name:`Alpine`,radius:3,font:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,light:{bg:`#ffffff`,fg:`#181d1f`,muted:`rgba(24, 29, 31, 0.5)`,border:`#babfc7`,headerBg:`#f8f8f8`,headerFg:`#181d1f`,accent:`#2196f3`,rowAlt:`#fcfcfc`,rowHover:`rgba(33, 150, 243, 0.1)`,selectionBg:`rgba(33, 150, 243, 0.3)`},dark:{bg:`#181d1f`,fg:`#ffffff`,muted:`rgba(255, 255, 255, 0.5)`,border:`#68686e`,headerBg:`#222628`,headerFg:`#ffffff`,accent:`#2196f3`,rowAlt:`#222628`,rowHover:`rgba(33, 150, 243, 0.1)`,selectionBg:`rgba(33, 150, 243, 0.3)`}},{id:`bootstrap`,name:`Bootstrap 5`,radius:6,font:`system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#212529`,muted:`#6c757d`,border:`#dee2e6`,headerBg:`#f8f9fa`,headerFg:`#212529`,accent:`#0d6efd`,rowAlt:`#fcfcfd`,rowHover:`#f2f2f2`,selectionBg:`#cfe2ff`},dark:{bg:`#212529`,fg:`#dee2e6`,muted:`#adb5bd`,border:`#495057`,headerBg:`#2b3035`,headerFg:`#dee2e6`,accent:`#0d6efd`,rowAlt:`#25292e`,rowHover:`#2c3034`,selectionBg:`#031633`}},{id:`vercel`,name:`Vercel`,radius:6,font:`"Geist", "Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,light:{bg:`#ffffff`,fg:`#000000`,muted:`#666666`,border:`#eaeaea`,headerBg:`#fafafa`,headerFg:`#666666`,accent:`#0070f3`,rowAlt:`#fafafa`,rowHover:`#f5f5f5`,selectionBg:`#e8f0fe`},dark:{bg:`#000000`,fg:`#ffffff`,muted:`#888888`,border:`#333333`,headerBg:`#111111`,headerFg:`#888888`,accent:`#3291ff`,rowAlt:`#0a0a0a`,rowHover:`#1a1a1a`,selectionBg:`#0d2847`}},{id:`linear`,name:`Linear`,radius:6,font:`"Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,light:{bg:`#ffffff`,fg:`#282a30`,muted:`#6b6f76`,border:`#e9e9eb`,headerBg:`#f7f8f8`,headerFg:`#6b6f76`,accent:`#5e6ad2`,rowAlt:`#fbfbfc`,rowHover:`#f4f4f5`,selectionBg:`#e8eafd`},dark:{bg:`#08090a`,fg:`#f7f8f8`,muted:`#8a8f98`,border:`#23252a`,headerBg:`#0f1011`,headerFg:`#8a8f98`,accent:`#5e6ad2`,rowAlt:`#0f1011`,rowHover:`#1a1b1e`,selectionBg:`#2a2d4a`}},{id:`notion`,name:`Notion`,radius:4,font:`ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif`,light:{bg:`#ffffff`,fg:`#37352f`,muted:`#787774`,border:`#e9e9e7`,headerBg:`#f7f6f3`,headerFg:`#787774`,accent:`#2383e2`,rowAlt:`#fbfbfa`,rowHover:`#f1f1ef`,selectionBg:`#d9eaf7`},dark:{bg:`#191919`,fg:`#d4d4d4`,muted:`#9b9b9b`,border:`#2f2f2f`,headerBg:`#202020`,headerFg:`#9b9b9b`,accent:`#529cca`,rowAlt:`#1c1c1c`,rowHover:`#252525`,selectionBg:`#20415c`}},{id:`nord`,name:`Nord`,radius:4,font:`"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,light:{bg:`#eceff4`,fg:`#2e3440`,muted:`#4c566a`,border:`#d8dee9`,headerBg:`#e5e9f0`,headerFg:`#2e3440`,accent:`#5e81ac`,rowAlt:`#e5e9f0`,rowHover:`#dde3ec`,selectionBg:`#d8dee9`},dark:{bg:`#2e3440`,fg:`#d8dee9`,muted:`#4c566a`,border:`#434c5e`,headerBg:`#3b4252`,headerFg:`#e5e9f0`,accent:`#88c0d0`,rowAlt:`#333b48`,rowHover:`#3b4252`,selectionBg:`#434c5e`}},{id:`dracula`,name:`Dracula`,radius:6,font:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,light:{bg:`#fffbeb`,fg:`#1f1f1f`,muted:`#6c664b`,border:`#dedccf`,headerBg:`#ece9df`,headerFg:`#1f1f1f`,accent:`#644ac9`,rowAlt:`#fffdf5`,rowHover:`#f2efe3`,selectionBg:`#cfcfde`},dark:{bg:`#282a36`,fg:`#f8f8f2`,muted:`#6272a4`,border:`#44475a`,headerBg:`#21222c`,headerFg:`#f8f8f2`,accent:`#bd93f9`,rowAlt:`#2d2f3b`,rowHover:`#343746`,selectionBg:`#44475a`}},{id:`catppuccin`,name:`Catppuccin`,radius:8,font:`"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,light:{bg:`#eff1f5`,fg:`#4c4f69`,muted:`#6c6f85`,border:`#ccd0da`,headerBg:`#e6e9ef`,headerFg:`#4c4f69`,accent:`#8839ef`,rowAlt:`#e6e9ef`,rowHover:`#dce0e8`,selectionBg:`#dce0e8`},dark:{bg:`#1e1e2e`,fg:`#cdd6f4`,muted:`#a6adc8`,border:`#313244`,headerBg:`#181825`,headerFg:`#cdd6f4`,accent:`#cba6f7`,rowAlt:`#1a1a28`,rowHover:`#313244`,selectionBg:`#45475a`}}],sE=oE.find(e=>e.id===`tailwind`)??oE[0],cE=e=>e?oE.find(t=>t.id===e):void 0;function lE(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return`#ffffff`;let n=parseInt(t[1],16),r=n>>16&255,i=n>>8&255,a=n&255;return(.299*r+.587*i+.114*a)/255>.6?`#18181b`:`#ffffff`}function uE(e){let t=cE(e?.preset)??sE,n=t[e?.mode===`dark`?`dark`:`light`],r=e?.accent||n.accent;return{"--sg-bg":n.bg,"--sg-fg":n.fg,"--sg-muted":n.muted,"--sg-border":n.border,"--sg-header-bg":n.headerBg,"--sg-header-fg":n.headerFg,"--sg-bg-subtle":n.headerBg,"--sg-row-alt-bg":n.rowAlt,"--sg-row-hover-bg":n.rowHover,"--sg-selection-bg":n.selectionBg,"--sg-input-bg":n.bg,"--sg-input-border":n.border,"--sg-accent":r,"--sg-on-accent":lE(r),"--sg-radius":`${t.radius}px`,"--sg-font":t.font,"--sg-scrollbar-bg":n.headerBg,"--sg-scrollbar-border":n.border,"--sg-scrollbar-thumb":n.muted,"--sg-scrollbar-thumb-hover":n.fg,"--sg-scrollbar-thumb-active":n.fg,"--sg-scrollbar-arrow":n.muted,"--sg-scrollbar-arrow-hover":n.fg,"--sg-scrollbar-arrow-hover-bg":n.rowHover,"--sg-scrollbar-arrow-active":n.fg,"--sg-scrollbar-arrow-active-bg":n.selectionBg,"--sg-scrollbar-arrow-disabled":n.border}}var dE=e=>e?.mode===`dark`;function fE(e){let t=uE(e);return`${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`; `)}; color-scheme: ${dE(e)?`dark`:`light`}; font-family: ${t[`--sg-font`]}`}var pE=(e,t)=>e.some(e=>e.config.kind===t),mE=e=>`activeTab_${e.replace(/[^a-zA-Z0-9_$]/g,`_`)}`,hE=(e,t)=>`${e}-${t}`,gE=e=>`md_${e.replace(/[^a-zA-Z0-9]/g,`_`)}_rows`;function _E(e,t){if(t.config.kind!==`grid`)return`schemaToColumns(${e})`;let n=t.config,r=n.columns.filter(e=>e.show),i=n.editing===`inline`?``:`, editable: false`;if(r.length===0)return i?`schemaToColumns(${e}).map((c) => ({ ...c${i} }))`:`schemaToColumns(${e})`;let a=r.map(e=>`'${e.field}'`),o=r.map(e=>{let t=[];return e.header&&t.push(`header: ${JSON.stringify(e.header)}`),e.width!=null&&t.push(`width: ${e.width}`),e.align&&t.push(`align: '${e.align}'`),t.length?`'${e.field}': { ${t.join(`, `)} }`:null}).filter(e=>!!e),s=o.length?` const ov: Record<string, Partial<(typeof all)[number]>> = { ${o.join(`, `)} };`:``,c=o.length?`, ...(ov[String(c.field)] ?? {})`:``,l=`[${a.join(`, `)}].map((f) => all.find((c) => c.field === f)).filter((c): c is (typeof all)[number] => !!c)`;return`(() => { const all = schemaToColumns(${e});${s} return ${i||c?`${l}.map((c) => ({ ...c${i}${c} }))`:l} })()`}function vE(e,t,n,r,i,a={hasRecord:!1}){let o=(e,t)=>a.i18n?`{$t('block.${t}', ${JSON.stringify(e)})}`:e,s=`style="grid-column: span ${oT(r)}; min-width: 0"`,c=r.config;switch(c.kind){case`grid`:{let t=`columns_${r.id.replace(/-/g,`_`)}`,i=`No ${(e.label??e.name).toLowerCase()} yet.`,o=[`data={view.rows}`,`columns={${t}}`,`loading={view.loading}`,`loadingOverlay`,`emptyMessage=${JSON.stringify(i)}`,`fitColumns`];o.push(`enableRowSummaries={${c.rowSummaries?`true`:`false`}}`),c.striped&&o.push(`zebraRows`),c.cellSelection&&o.push(`enableCellSelection`),c.density!==`normal`&&o.push(`rowHeight={${c.density===`compact`?28:46}}`);let l=c.columns.filter(e=>e.show&&e.pin===`left`).map(e=>`'${e.field}'`),u=c.columns.filter(e=>e.show&&e.pin===`right`).map(e=>`'${e.field}'`);if(l.length||u.length){let e=[l.length?`left: [${l.join(`, `)}]`:``,u.length?`right: [${u.join(`, `)}]`:``].filter(Boolean).join(`, `);o.push(`initialColumnPinning={{ ${e} }}`,`columnVirtualization={false}`)}c.selectable&&o.push(`showRowSelection`),c.sortable&&o.push(`sortable`,`externalSort`,`onSortingChange={(s) => controller.setSort(s)}`),c.filterable&&o.push(`filterable`,`showGlobalFilter`,`externalFilter`,`onFiltersChange={(f) => controller.setFilter({ global: f.global || undefined, columns: Object.fromEntries(f.columns.map((c) => [c.id, { operator: c.operator, value: c.value, valueTo: c.valueTo, selectedValues: c.selectedValues }])) })}`);let d=a.accessEnabled?`can($currentRole, 'update')`:`true`;c.editing===`form`&&o.push(a.accessEnabled?`onRowDoubleClick={(e) => { if (${d}) editing = e.row }}`:`onRowDoubleClick={(e) => (editing = e.row)}`),c.editing===`inline`&&o.push(`onCellValueChange={(e) => { ${a.accessEnabled?`if (!${d}) return; `:``}const row = view.rows[e.rowIndex]; if (row) controller.updateRow(String((row as Record<string, unknown>)[idField]), { [e.columnId]: e.newValue } as Partial<${n}>) }}`);let f=c.rowLink&&a.routeById?.get(c.rowLink.screen);if(c.rowLink&&f){let t=c.rowLink.sourceField??e.idField??e.fields.find(e=>e.primaryKey)?.field??`id`;o.push(`onRowClick={(e) => goto('/${f}?${c.rowLink.targetField}=' + encodeURIComponent(String((e.row as Record<string, unknown>)[${yE(t)}] ?? '')))}`)}else a.hasRecord&&o.push(`onRowClick={(e) => (selectedRecord = e.row)}`);if(c.paginated!==!1){o.push(`showPagination`,`externalPagination`,`rowCount={view.total}`,`pageIndex={view.pageIndex}`,`pageSize={view.pageSize}`,`onPaginationChange={({ pageIndex, pageSize }) => (pageSize !== view.pageSize ? controller.setPageSize(pageSize) : controller.setPage(pageIndex))}`),c.paginationPosition&&c.paginationPosition!==`bottom`&&o.push(`paginationPosition="${c.paginationPosition}"`);let e=c.pageSizeOptions;e&&e.length&&(e.length!==4||e.join(`,`)!==`10,25,50,100`)&&o.push(`pageSizeOptions={[${e.join(`, `)}]}`)}let p=xE(c);return p&&o.push(`conditionalFormats={${p}}`),o.push(`containerHeight={${r.height??360}}`),` <div ${s}>
|
|
498
|
-
<SvGrid
|
|
499
|
-
${o.join(`
|
|
500
|
-
`)}
|
|
501
|
-
/>
|
|
502
|
-
</div>`}case`chart`:{let e=c.drillScreen&&a.routeById?.get(c.drillScreen),n=e?` onDrill={(cat) => goto('/${e}?${c.dimension}=' + encodeURIComponent(String(cat)))}`:``;return` <div ${s}>
|
|
503
|
-
<SvSchemaChart schema={${t}} rows={allRows} dimension="${c.dimension}"${c.measure?` measure="${c.measure}"`:``} reduce="${c.reduce}" type="${c.type}"${r.height?` height={${r.height}}`:``} controls={false} accent="var(--sg-accent)"${n} />
|
|
504
|
-
</div>`}case`dashboard`:return` <div ${s}>
|
|
505
|
-
<SvSchemaDashboard schema={${t}} rows={allRows} />
|
|
506
|
-
</div>`;case`kpi`:{let t=c.measure?`measure: '${c.measure}', `:``,n=`reduceValue(allRows, { ${t}reduce: '${c.reduce}' })`,i=c.measure?/\$/.test(e.fields.find(e=>e.field===c.measure)?.label??``):!1,a=c.format??`auto`,l=a===`auto`?`${i?`'$' + `:``}(${n}).toLocaleString(undefined, { maximumFractionDigits: 1 })`:`formatKpiValue(${n}, '${a}')`,u=[` <div class="kpi__head"><span class="kpi__label">${o(c.label,r.id)}</span></div>`,` <strong class="kpi__value">{${l}}</strong>`];if(c.target!=null&&c.target!==0&&u.push(` <span class="kpi__delta" class:is-up={${n} >= ${c.target}}>{Math.round(${n} / ${c.target} * 100)}% of target</span>`),c.trendField){let e=c.trendReduce??c.reduce,n=`kpiSeries(allRows, { trendField: '${c.trendField}', ${t}reduce: '${e}' })`;u.push(` {#if ${n}.length > 1}
|
|
507
|
-
{@const _s = ${n}}
|
|
508
|
-
{@const _d = seriesDelta(_s)}
|
|
509
|
-
{#if _d != null && ${c.target==null}}<span class="kpi__delta" class:is-up={_d >= 0} class:is-down={_d < 0}>{_d >= 0 ? '▲' : '▼'} {Math.abs(_d).toFixed(0)}%</span>{/if}
|
|
510
|
-
<svg class="kpi__spark" viewBox="0 0 120 30" preserveAspectRatio="none" aria-hidden="true"><polyline points={sparklinePoints(_s)} fill="none" stroke="currentColor" stroke-width="1.5" vector-effect="non-scaling-stroke" /></svg>
|
|
511
|
-
{/if}`)}return` <div ${s} class="kpi">\n${u.join(`
|
|
512
|
-
`)}\n </div>`}case`gauge`:{let e=`reduceValue(allRows, { ${c.measure?`measure: '${c.measure}', `:``}reduce: '${c.reduce}' })`,t=c.unit?` unit=${JSON.stringify(c.unit)}`:``;return` <div ${s} class="gaugecard">
|
|
513
|
-
<span class="kpi__label">${o(c.label,r.id)}</span>
|
|
514
|
-
<SvGauge value={${e}} min={${c.min}} max={${c.max}}${t} size={172} />
|
|
515
|
-
</div>`}case`tree`:return!c.labelField||!c.parentField?` <div ${s}><!-- tree: set a label field + a self-referential parent field in the inspector --></div>`:` <div ${s} class="treecard">
|
|
516
|
-
<SvTree nodes={toTreeNodes(allRows as Record<string, unknown>[], ${`${t}.idField ?? 'id'`}, ${JSON.stringify(c.labelField)}, ${JSON.stringify(c.parentField)})} />
|
|
517
|
-
</div>`;case`tabs`:{let o=mE(r.id);return` <div ${s}>
|
|
518
|
-
<SvTabs tabs={${a.i18n?`[${c.tabs.map((e,t)=>`{ id: ${JSON.stringify(hE(r.id,t))}, label: $t('tab.${hE(r.id,t)}', ${JSON.stringify(e.label)}) }`).join(`, `)}]`:JSON.stringify(c.tabs.map((e,t)=>({id:hE(r.id,t),label:e.label})))}} value={${o}} onChange={(id) => (${o} = id)}>
|
|
519
|
-
{#snippet panel(id)}
|
|
520
|
-
${c.tabs.map((o,s)=>{let c=o.blocks.map(r=>vE(e,t,n,r,i,a)).filter(Boolean).join(`
|
|
521
|
-
`);return` {#if id === '${hE(r.id,s)}'}
|
|
522
|
-
<div class="st-screen">
|
|
523
|
-
${c||` <p style="color: var(--sg-muted, #94a3b8); font-size: 13px; padding: 10px;">This tab is empty.</p>`}
|
|
524
|
-
</div>
|
|
525
|
-
{/if}`}).join(`
|
|
526
|
-
`)}
|
|
527
|
-
{/snippet}
|
|
528
|
-
</SvTabs>
|
|
529
|
-
</div>`}case`master-detail`:{let e=c.childEntity?i(c.childEntity):void 0;if(!e||!c.foreignKey)return` <div ${s}><!-- master-detail: set a child entity + foreign key in the inspector --></div>`;let n=Aw(e),o=gE(e.name),l=c.linkScreen?a.routeById?.get(c.linkScreen):void 0,u=l?` onParentClick={(id) => goto('/${l}?id=' + encodeURIComponent(id))}`:``;return` <div ${s}>
|
|
530
|
-
<SvGridMasterDetail schema={${t}} data={allRows} detailSchema={${n.schemaVar}} getChildren={(p) => ${o}.filter((c) => String((c as Record<string, unknown>)['${c.foreignKey}']) === String((p as Record<string, unknown>)[${t}.idField ?? 'id']))}${u}${r.height?` containerHeight={${r.height}}`:``} />
|
|
531
|
-
</div>`}case`pivot`:{let t=r.height??460;return` <div style="grid-column: span ${oT(r)}; min-width: 0; height: ${t}px">
|
|
532
|
-
<SvPivotDesigner data={allRows} fields={${EE(e)}} layout={${DE(c)}} />
|
|
533
|
-
</div>`}case`filter`:return kE(e,r,c);case`record`:return jE(e,t,r,c);case`board`:{let n=r.height??480,o=Pw(a.rawEntity??e,i),s=e=>o.get(e)??e,l=c.badgeField?` badgeField=${JSON.stringify(c.badgeField)}`:``,u=c.subtitleField?` subtitleField=${JSON.stringify(s(c.subtitleField))}`:``,d=c.openScreen?a.routeById?.get(c.openScreen):void 0,f=d?` onOpen={(id) => goto('/${d}?id=' + encodeURIComponent(id))}`:``;return` <div style="grid-column: span ${oT(r)}; min-width: 0">
|
|
534
|
-
<SvBoard schema={${t}} rows={allRows} loading={!allRowsReady} groupBy=${JSON.stringify(c.groupBy)} titleField=${JSON.stringify(s(c.titleField))}${l}${u}${f} height={${n}} onMove={(id, value) => { allRows = allRows.map((r) => String((r as Record<string, unknown>)[idField]) === String(id) ? ({ ...r, ['${c.groupBy}']: value }) : r) }} />
|
|
535
|
-
</div>`}case`calendar`:{let n=r.height??560,o=Pw(a.rawEntity??e,i),s=e=>o.get(e)??e,l=c.colorField?` colorField=${JSON.stringify(c.colorField)}`:``,u=c.openScreen?a.routeById?.get(c.openScreen):void 0,d=u?` onSelect={(id) => goto('/${u}?id=' + encodeURIComponent(id))}`:``;return` <div style="grid-column: span ${oT(r)}; min-width: 0">
|
|
536
|
-
<SvSchedule schema={${t}} rows={allRows} loading={!allRowsReady} dateField=${JSON.stringify(c.dateField)} titleField=${JSON.stringify(s(c.titleField))}${l}${d} height={${n}} />
|
|
537
|
-
</div>`}case`detail`:{let n=r.height,o=Pw(a.rawEntity??e,i),s=e=>o.get(e)??e,l=[`schema={${t}}`,`rows={allRows}`,`loading={!allRowsReady}`,`titleField=${JSON.stringify(s(c.titleField))}`];if(c.subtitleField&&l.push(`subtitleField=${JSON.stringify(s(c.subtitleField))}`),c.statusField&&l.push(`statusField=${JSON.stringify(c.statusField)}`),c.metricFields?.length&&l.push(`metricFields={${JSON.stringify(c.metricFields)}}`),c.sections?.length){let e=c.sections.map(e=>`{ label: ${JSON.stringify(e.label)}, fields: ${JSON.stringify(e.fields.map(s))} }`).join(`, `);l.push(`sections={[${e}]}`)}let u=(c.related??[]).map(e=>{let t=e.entity?i(e.entity):void 0;if(!t||!e.foreignKey)return null;let n=Aw(t),r=Pw(a.rawResolve?.(e.entity)??t,i),o=e=>r.get(e)??e,s=e.label??t.label??t.name,c=o(e.titleField??t.fields.find(e=>e.type===`text`&&!e.primaryKey)?.field??t.fields[0]?.field??`id`),l=[`label: ${JSON.stringify(s)}`,`schema: ${n.schemaVar}`,`rows: ${gE(t.name)}`,`foreignKey: ${JSON.stringify(e.foreignKey)}`,`titleField: ${JSON.stringify(c)}`];return e.parentField&&l.push(`parentField: ${JSON.stringify(e.parentField)}`),e.subtitleField&&l.push(`subtitleField: ${JSON.stringify(o(e.subtitleField))}`),e.dateField&&l.push(`dateField: ${JSON.stringify(e.dateField)}`),e.statusField&&l.push(`statusField: ${JSON.stringify(e.statusField)}`),`{ ${l.join(`, `)} }`}).filter(Boolean);return u.length&&l.push(`related={[${u.join(`, `)}]}`),l.push(`selectedId={$page.url.searchParams.get('id') ?? undefined}`),n&&l.push(`height={${n}}`),` <div style="grid-column: span ${oT(r)}; min-width: 0">
|
|
538
|
-
<SvRecordDetail ${l.join(` `)} />
|
|
539
|
-
</div>`}case`lookup`:return` <div ${s}><!-- lookup (${c.field}): shown in the edit form --></div>`;default:return``}}var yE=e=>`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}'`;function bE(e,t){let n=Number(t);switch(e){case`eq`:return`String(value) === ${JSON.stringify(String(t??``))}`;case`ne`:return`String(value) !== ${JSON.stringify(String(t??``))}`;case`lt`:return`Number(value) < ${n}`;case`lte`:return`Number(value) <= ${n}`;case`gt`:return`Number(value) > ${n}`;case`gte`:return`Number(value) >= ${n}`;case`contains`:return`String(value).toLowerCase().includes(${JSON.stringify(String(t??``).toLowerCase())})`;case`empty`:return`value == null || value === ''`;case`notEmpty`:return`value != null && value !== ''`;default:return null}}function xE(e){let t=[];for(let n of e.formatRules??[]){if((n.op===`lt`||n.op===`lte`||n.op===`gt`||n.op===`gte`)&&!Number.isFinite(Number(n.value)))continue;let e=bE(n.op,n.value);if(!e)continue;let r=[n.background?`background: ${yE(n.background)}`:``,n.color?`color: ${yE(n.color)}`:``,n.bold?`fontWeight: 700`:``].filter(Boolean);r.length&&t.push(`{ type: 'rule' as const, columns: [${yE(n.field)}], when: ({ value }: { value: unknown }) => ${e}, ${r.join(`, `)} }`)}return t.length?`[${t.join(`, `)}]`:null}var SE=e=>e.label??e.field,CE=e=>{let t=e.id.replace(/-/g,`_`);return{state:`facet_${t}`,apply:`applyFacet_${t}`}},wE=(e,t)=>t.fields.map(t=>e.fields.find(e=>e.field===t)).filter(e=>!!e);function TE(e){return(e.options??[]).map(e=>e&&typeof e==`object`?{value:String(e.value),label:String(e.label??e.value)}:{value:String(e),label:String(e)})}function EE(e){let t=e.idField??e.fields.find(e=>e.primaryKey)?.field;return`[${e.fields.filter(e=>e.field!==t&&e.type!==`json`&&e.type!==`relation`).map(e=>{let t=e.type===`number`?`measure`:`dimension`,n=e.type===`number`?`, defaultAgg: 'sum'`:``;return`{ field: ${yE(e.field)}, label: ${yE(SE(e))}, kind: '${t}'${n} }`}).join(`, `)}]`}function DE(e){return`{ rows: [${e.rows.map(yE).join(`, `)}], cols: [${e.cols.map(yE).join(`, `)}], values: ${e.measure?`[{ field: ${yE(e.measure)}, agg: '${e.aggregate}' }]`:`[]`}, filters: [] }`}function OE(e,t,n){let{state:r,apply:i}=CE(t);return`let ${r} = $state<Record<string, string>>({})
|
|
540
|
-
function ${i}() {
|
|
541
|
-
const v = ${r}
|
|
542
|
-
const c: Record<string, { operator: 'equals' | 'contains'; value: unknown }> = {}
|
|
543
|
-
${wE(e,n).map(e=>{let t=yE(e.field);return e.type===`boolean`?` if (v[${t}] === 'true' || v[${t}] === 'false') c[${t}] = { operator: 'equals', value: v[${t}] === 'true' }`:e.type===`enum`?` if (v[${t}]) c[${t}] = { operator: 'equals', value: v[${t}] }`:` if (v[${t}]) c[${t}] = { operator: 'contains', value: v[${t}] }`}).join(`
|
|
544
|
-
`)}
|
|
545
|
-
controller.setFilter({ columns: c })
|
|
546
|
-
}`}function kE(e,t,n){let{state:r,apply:i}=CE(t),a=wE(e,n).map(e=>{let t=`${r}[${yE(e.field)}] = e.currentTarget.value; ${i}()`;if(e.type===`enum`){let n=TE(e).map(e=>`<option value="${e.value}">${e.label}</option>`).join(``);return` <label class="st-filter__row"><span>${SE(e)}</span>
|
|
547
|
-
<select onchange={(e) => { ${t} }}><option value="">Any</option>${n}</select>
|
|
548
|
-
</label>`}return e.type===`boolean`?` <label class="st-filter__row"><span>${SE(e)}</span>
|
|
549
|
-
<select onchange={(e) => { ${t} }}><option value="">Any</option><option value="true">Yes</option><option value="false">No</option></select>
|
|
550
|
-
</label>`:` <label class="st-filter__row"><span>${SE(e)}</span>
|
|
551
|
-
<input type="search" placeholder="Search…" oninput={(e) => { ${t} }} />
|
|
552
|
-
</label>`}).join(`
|
|
553
|
-
`);return` <aside style="grid-column: span ${oT(t)}; min-width: 0" class="st-filter">
|
|
554
|
-
<div class="st-filter__title">${n.title??`Filters`}</div>
|
|
555
|
-
${a}
|
|
556
|
-
</aside>`}function AE(e,t,n,r,i,a){let o=n.idField??n.fields.find(e=>e.primaryKey)?.field??`id`,s=`String((row as Record<string, unknown>)[${yE(o)}] ?? '')`;return`{#snippet rowActions_${e}({ row }: { row: ${t} })}
|
|
557
|
-
<div class="st-rowactions">
|
|
558
|
-
${r.map(e=>{if(e.kind===`edit`){let t=`<button type="button" class="st-rowaction" onclick={(e) => { e.stopPropagation(); editing = row }}>${e.label??`Edit`}</button>`;return a?`{#if can($currentRole, 'update')}${t}{/if}`:t}if(e.kind===`delete`){let t=`<button type="button" class="st-rowaction st-rowaction--danger" onclick={(e) => { e.stopPropagation(); controller.deleteRow(${s}) }}>${e.label??`Delete`}</button>`;return a?`{#if can($currentRole, 'delete')}${t}{/if}`:t}let t=e.screen&&i.get(e.screen);if(!t)return``;let n=e.sourceField??o;return`<button type="button" class="st-rowaction" onclick={(e) => { e.stopPropagation(); goto('/${t}?${e.targetField??o}=' + encodeURIComponent(String((row as Record<string, unknown>)[${yE(n)}] ?? ''))) }}>${e.label??`Open`}</button>`}).filter(Boolean).join(`
|
|
559
|
-
`)}
|
|
560
|
-
</div>
|
|
561
|
-
{/snippet}`}function jE(e,t,n,r){let i=`style="grid-column: span ${oT(n)}; min-width: 0"`,a;if(r.editable){let e=r.presentation??`inline`;a=e===`inline`?` {#if selectedRecord}
|
|
562
|
-
<SvGridEditPanel schema={${t}} row={selectedRecord} presentation="inline" onSubmit={saveRecord} onCancel={() => (selectedRecord = null)} />
|
|
563
|
-
{:else}
|
|
564
|
-
<p class="st-hint">Select a row to see its details.</p>
|
|
565
|
-
{/if}`:` <p class="st-hint">Select a row to open its ${e===`drawer`?`editor drawer`:`edit dialog`}.</p>
|
|
566
|
-
{#if selectedRecord}
|
|
567
|
-
<SvGridEditPanel schema={${t}} row={selectedRecord} presentation="${e}" onSubmit={saveRecord} onCancel={() => (selectedRecord = null)} />
|
|
568
|
-
{/if}`}else{let t=e.idField??e.fields.find(e=>e.primaryKey)?.field;a=` {#if selectedRecord}
|
|
569
|
-
<dl class="st-record">
|
|
570
|
-
${(r.fields&&r.fields.length?e.fields.filter(e=>r.fields.includes(e.field)):e.fields.filter(e=>e.field!==t)).map(e=>` <div class="st-record__row"><dt>${SE(e)}</dt><dd>{String((selectedRecord as Record<string, unknown>)[${yE(e.field)}] ?? '')}</dd></div>`).join(`
|
|
571
|
-
`)}
|
|
572
|
-
</dl>
|
|
573
|
-
{:else}
|
|
574
|
-
<p class="st-hint">Select a row to see its details.</p>
|
|
575
|
-
{/if}`}return` <div ${i} class="st-record-card">
|
|
576
|
-
${a}
|
|
577
|
-
</div>`}function ME(e,t,n,r,i,a=!1,o=!1,s=new Map,c=!1){let l=Aw(e),u=e.label??l.label,d=n.blocks,f=aT(d),p=pE(d,`grid`),m=pE(d,`form`),h=d.map(e=>e.config).filter(e=>e.kind===`grid`),g=h.find(e=>e.editing===`form`),_=h.some(e=>e.rowActions?.some(e=>e.kind===`edit`)),v=h.some(e=>(e.rowActions?.length??0)>0),y=!!g||m||_,b=h[0]?h[0].paginated===!1?1e3:h[0].pageSize:10,x=g?.formPresentation??`modal`,S=pE(f,`pivot`),C=pE(d,`filter`),w=pE(d,`record`),T=d.some(e=>e.config.kind===`record`&&e.config.editable),E=p||y||C||w,D=pE(f,`chart`)||pE(f,`dashboard`)||pE(f,`kpi`)||pE(f,`gauge`)||pE(f,`tree`),O=e.fields.filter(e=>e.type===`relation`&&e.relation),ee=new Map;for(let e of d){if(e.config.kind===`master-detail`&&e.config.childEntity&&e.config.foreignKey){let t=r(e.config.childEntity);t&&ee.set(t.name,t)}if(e.config.kind===`detail`)for(let t of e.config.related??[]){if(!t.entity||!t.foreignKey)continue;let e=r(t.entity);e&&ee.set(e.name,e)}}let te=[...ee.values()],ne=te.length>0,re=D||ne||S||pE(f,`board`)||pE(f,`calendar`)||pE(f,`detail`),ie=[];E&&ie.push(`SvGrid`,`createServerDataSource`,...v?[`renderSnippet`]:[],`type ServerState`),pE(f,`gauge`)&&ie.push(`SvGauge`),pE(f,`tree`)&&ie.push(`SvTree`),pE(d,`tabs`)&&ie.push(`SvTabs`);let ae=ie.length?`import { ${ie.join(`, `)} } from '@svgrid/grid'\n `:``,oe=[];p&&oe.push(`schemaToColumns`),(y||w&&T)&&oe.push(`SvGridEditPanel`),pE(f,`chart`)&&oe.push(`SvSchemaChart`),pE(f,`dashboard`)&&oe.push(`SvSchemaDashboard`),pE(f,`board`)&&oe.push(`SvBoard`),pE(f,`calendar`)&&oe.push(`SvSchedule`),pE(f,`detail`)&&oe.push(`SvRecordDetail`),(pE(f,`kpi`)||pE(f,`gauge`))&&oe.push(`reduceValue`);let se=f.filter(e=>e.config.kind===`kpi`).map(e=>e.config);se.some(e=>e.format&&e.format!==`auto`)&&oe.push(`formatKpiValue`),se.some(e=>e.trendField)&&oe.push(`kpiSeries`,`sparklinePoints`,`seriesDelta`),ne&&oe.push(`SvGridMasterDetail`),S&&oe.push(`SvPivotDesigner`);let ce=oe.length?`import { ${[...new Set(oe)].join(`, `)} } from '@svgrid/enterprise'\n `:``,le=O.map(t=>jw(e,t.field)),ue=te.map(e=>Aw(e).schemaVar),k=te.map(e=>Aw(e).type),A=te.map(e=>Aw(e).sourceVar),j=[...new Set([l.schemaVar,...ue])],de=[...new Set([l.type,...k])],M=[...new Set([l.sourceVar,...A,...y?[...le,`nextId`]:[]])].filter(Boolean),fe=d.some(e=>e.config.kind===`grid`&&e.config.rowLink&&s.has(e.config.rowLink.screen)||e.config.kind===`grid`&&e.config.rowActions?.some(e=>e.kind===`navigate`&&e.screen&&s.has(e.screen))||e.config.kind===`chart`&&e.config.drillScreen&&s.has(e.config.drillScreen)||(e.config.kind===`board`||e.config.kind===`calendar`)&&e.config.openScreen!=null&&s.has(e.config.openScreen)||e.config.kind===`master-detail`&&e.config.linkScreen!=null&&s.has(e.config.linkScreen)),pe=c&&E,me=e.fields.filter(e=>!e.primaryKey).map(e=>e.field),he=a&&(y||h.some(e=>e.editing===`inline`)||v),ge=[];if(E){let e=pe?`\n const sp = $page.url.searchParams
|
|
578
|
-
const _cols: Record<string, { operator: 'equals'; value: string }> = {}
|
|
579
|
-
for (const _f of [${me.map(yE).join(`, `)}]) { const _v = sp.get(_f); if (_v != null) _cols[_f] = { operator: 'equals', value: _v } }
|
|
580
|
-
if (Object.keys(_cols).length) controller.setFilter({ columns: _cols })`:``;ge.push(`const idField = ${l.schemaVar}.idField ?? 'id'
|
|
581
|
-
let view = $state<ServerState<${l.type}>>({ rows: [], total: 0, loading: false, saving: false, error: null, pageIndex: 0, pageSize: ${b}, pageCount: 1, sortModel: [], filterModel: {} })
|
|
582
|
-
const controller = createServerDataSource<${l.type}>(${l.sourceVar}, { pageSize: ${b}, optimistic: true, getRowId: (r) => String((r as Record<string, unknown>)[idField]), onChange: (s) => (view = s) })
|
|
583
|
-
$effect(() => {${e}
|
|
584
|
-
controller.refresh(); return () => controller.dispose() })`)}let _e=[];for(let t of d)if(t.config.kind===`grid`){let n=t.id.replace(/-/g,`_`),r=_E(l.schemaVar,t),i=o?`localizeCols(${r}, ${JSON.stringify(e.name)}, $t)`:r,a=(t.config.rowActions??[]).filter(e=>e.kind!==`edit`||y);a.length&&(i=`[...(${i}), { id: '__actions', header: 'Actions', sortable: false, cell: (ctx) => renderSnippet(rowActions_${n}, { row: ctx.row.original }) }]`,_e.push(AE(n,l.type,e,a,s,he)));let c=o||a.length>0;ge.push(`const columns_${n} = ${c?`$derived(${i})`:i}`)}re&&ge.push(`let allRows = $state<${l.type}[]>([])
|
|
585
|
-
let allRowsReady = $state(false)
|
|
586
|
-
async function loadAll() { allRows = [...(await ${l.sourceVar}.getRows({ startRow: 0, endRow: 1000, pageIndex: 0, pageSize: 1000, sortModel: [], filterModel: {} })).rows]; allRowsReady = true }
|
|
587
|
-
loadAll()`);for(let e of te){let t=Aw(e),n=gE(e.name);ge.push(`let ${n} = $state<${t.type}[]>([])
|
|
588
|
-
async function load_${n}() { ${n} = [...(await ${t.sourceVar}.getRows({ startRow: 0, endRow: 1000, pageIndex: 0, pageSize: 1000, sortModel: [], filterModel: {} })).rows] }
|
|
589
|
-
load_${n}()`)}if(y){let e=O.length?`\n const lookups = { ${O.map((e,t)=>`${e.field}: ${le[t]}`).join(`, `)} }`:``;ge.push(`let editing = $state<${l.type} | null | undefined>(undefined)${e}
|
|
590
|
-
async function save({ mode, id, values }: { mode: 'create' | 'edit'; id: string | null; values: Partial<${l.type}> }) {
|
|
591
|
-
if (mode === 'create') { await controller.createRow({ [idField]: nextId('${l.idPrefix}'), ...values } as Partial<${l.type}>); controller.setPage(view.pageCount - 1) }
|
|
592
|
-
else if (id) { await controller.updateRow(id, values) }
|
|
593
|
-
editing = undefined${re?`
|
|
594
|
-
await loadAll()`:``}
|
|
595
|
-
}`)}w&&ge.push(`let selectedRecord = $state<${l.type} | null>(null)${T?`
|
|
596
|
-
async function saveRecord({ id, values }: { mode: 'create' | 'edit'; id: string | null; values: Partial<${l.type}> }) {
|
|
597
|
-
if (id) { await controller.updateRow(id, values) }
|
|
598
|
-
selectedRecord = null${re?`
|
|
599
|
-
await loadAll()`:``}
|
|
600
|
-
}`:``}`);for(let t of d)t.config.kind===`filter`&&ge.push(OE(e,t,t.config));for(let e of d)e.config.kind===`tabs`&&ge.push(`let ${mE(e.id)} = $state('${hE(e.id,0)}')`);pE(f,`tree`)&&ge.push(`type TreeNode = { id: string; label: string; children: TreeNode[] }
|
|
601
|
-
function toTreeNodes(rows: Record<string, unknown>[], idField: string, labelField: string, parentField: string): TreeNode[] {
|
|
602
|
-
const byId = new Map<string, TreeNode>(rows.map((r) => [String(r[idField]), { id: String(r[idField]), label: String(r[labelField] ?? r[idField]), children: [] }]))
|
|
603
|
-
const roots: TreeNode[] = []
|
|
604
|
-
for (const r of rows) {
|
|
605
|
-
const node = byId.get(String(r[idField]))!
|
|
606
|
-
const pid = r[parentField] != null && r[parentField] !== '' ? String(r[parentField]) : null
|
|
607
|
-
if (pid && pid !== node.id && byId.has(pid)) byId.get(pid)!.children.push(node)
|
|
608
|
-
else roots.push(node)
|
|
609
|
-
}
|
|
610
|
-
return roots
|
|
611
|
-
}`);let ve=`<button class="st-btn st-btn--primary" onclick={() => (editing = null)}>${o?`{$t('new.${e.name}', ${JSON.stringify(`+ New `+u)})}`:`+ New ${u}`}</button>`,ye=y?`<div class="st__toolbar">\n ${he?`{#if can($currentRole, 'create')}${ve}{/if}`:ve}\n</div>\n\n`:``,be=d.map(n=>vE(e,l.schemaVar,l.type,n,r,{hasRecord:w,accessEnabled:he,routeById:s,i18n:o,rawEntity:t,rawResolve:i})).filter(Boolean).join(`
|
|
612
|
-
`),xe=y?`\n\n{#if editing !== undefined}\n <SvGridEditPanel schema={${l.schemaVar}} row={editing}${O.length?` {lookups}`:``} presentation="${x}" persistKey="${n.route}" onSubmit={save} onCancel={() => (editing = undefined)} />\n{/if}`:``,Se=he?`import { currentRole, can } from '$lib/access'
|
|
613
|
-
`:``,Ce=o?`import { t, localizeCols } from '$lib/i18n'
|
|
614
|
-
`:``,we=fe?`import { goto } from '$app/navigation'
|
|
615
|
-
`:``,Te=pe||pE(f,`detail`)?`import { page } from '$app/stores'
|
|
616
|
-
`:``,Ee=o?`{$t('screen.${n.id}', ${JSON.stringify(n.title)})}`:n.title,De=E?`
|
|
617
|
-
{#if view.error}
|
|
618
|
-
<div class="st-error" role="alert">
|
|
619
|
-
<span>Couldn't load data. {view.error instanceof Error ? view.error.message : String(view.error)}</span>
|
|
620
|
-
<button type="button" class="st-btn" onclick={() => controller.refresh()}>Retry</button>
|
|
621
|
-
</div>
|
|
622
|
-
{/if}
|
|
623
|
-
`:``;return{path:`src/routes/${n.route}/+page.svelte`,description:`${n.title} screen (${d.map(e=>e.config.kind).join(`, `)||`empty`}).`,contents:`<script lang="ts">
|
|
624
|
-
${ae}${ce}${Se}${Ce}${we}${Te}import { ${j.join(`, `)}, ${de.map(e=>`type ${e}`).join(`, `)} } from '$lib/schemas'
|
|
625
|
-
import { ${M.join(`, `)} } from '$lib/data'
|
|
626
|
-
|
|
627
|
-
${ge.join(`
|
|
628
|
-
|
|
629
|
-
`)}
|
|
630
|
-
<\/script>
|
|
631
|
-
|
|
632
|
-
<h1 class="st__title">${Ee}</h1>
|
|
633
|
-
${De}
|
|
634
|
-
${ye}<div class="st-screen">
|
|
635
|
-
${be}
|
|
636
|
-
</div>${xe}${_e.length?`
|
|
637
|
-
|
|
638
|
-
`+_e.join(`
|
|
639
|
-
|
|
640
|
-
`):``}
|
|
641
|
-
${pE(d,`kpi`)||pE(d,`gauge`)||pE(d,`tree`)?`
|
|
642
|
-
<style>
|
|
643
|
-
.kpi { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: var(--sg-bg, #fff); border: 1px solid var(--sg-border, #e6e8ec); border-radius: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); overflow: hidden; }
|
|
644
|
-
.kpi__head { display: flex; align-items: center; justify-content: space-between; }
|
|
645
|
-
.kpi__label { font-size: 12.5px; font-weight: 600; color: var(--sg-muted, #64748b); text-transform: uppercase; letter-spacing: 0.03em; }
|
|
646
|
-
.kpi__value { font-size: 28px; font-weight: 750; line-height: 1.1; color: var(--sg-fg, #0f172a); }
|
|
647
|
-
.kpi__delta { align-self: flex-start; display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: color-mix(in srgb, var(--sg-muted, #64748b) 14%, transparent); color: var(--sg-muted, #64748b); }
|
|
648
|
-
.kpi__delta.is-up { background: color-mix(in srgb, #16a34a 15%, transparent); color: #16a34a; }
|
|
649
|
-
.kpi__delta.is-down { background: color-mix(in srgb, #dc2626 15%, transparent); color: #dc2626; }
|
|
650
|
-
.kpi__spark { width: 100%; height: 30px; margin-top: 2px; color: var(--sg-accent, #4f46e5); opacity: 0.85; }
|
|
651
|
-
.gaugecard { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 12px; }
|
|
652
|
-
.gaugecard .kpi__label { align-self: flex-start; }
|
|
653
|
-
.treecard { padding: 12px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 12px; }
|
|
654
|
-
</style>
|
|
655
|
-
`:``}`}}function NE(e){if(e.entities.length===0)throw Error(`emitStudioProject: no entities to emit`);if(e.screens.length===0)throw Error(`emitStudioProject: no screens to emit`);let t=Object.fromEntries(e.entities.map(t=>[t.name,JT(e,t.name)])),n=e.access?.enabled===!0&&(e.access?.roles.length??0)>0,r=e.audit===!0&&Object.values(t).some(e=>e.kind===`sql`),i=e.i18n?.enabled===!0&&(e.i18n?.locales.length??0)>0,{files:a,prepared:o}=rT(e.entities,{sources:t,accessEnabled:n,auditEnabled:r}),s=new Map(o.map(e=>[e.name,e])),c=new Map(e.entities.map(e=>[e.name,e])),l=e=>s.get(e),u=new Map(e.screens.map(e=>[e.id,e.route])),d=e.screens.some(e=>e.blocks.some(e=>e.config.kind===`grid`&&!!e.config.rowLink||e.config.kind===`chart`&&!!e.config.drillScreen)),f=[],p=new Set;for(let t of e.screens){let e=s.get(t.entity);if(!e)throw Error(`emitStudioProject: screen "${t.title}" references missing entity "${t.entity}"`);if(p.has(t.route))throw Error(`emitStudioProject: duplicate route "/${t.route}"`);p.add(t.route),f.push(ME(e,c.get(t.entity)??e,t,l,e=>c.get(e),n,i,u,d))}let m=[...e.screens].filter(e=>e.nav?.show!==!1).sort((e,t)=>(e.nav?.order??0)-(t.nav?.order??0)).map(e=>({href:`/${e.route}`,label:e.nav?.label??e.title,id:e.id})),h=n?[zE(e)]:[],g=r?[IE(),LE(),RE()]:[],_=r?[...m,{href:`/audit`,label:`Audit log`,id:`__audit__`}]:m,v=i?[FE(e)]:[];return[...a,...h,...g,...v,...f,eT(_,{accent:e.theme?.accent,shell:e.theme?.shell,title:e.title,themeVars:uE(e.theme),dark:dE(e.theme),access:n,i18n:i}),tT(_)]}function PE(e){let t={};for(let n of e.screens)t[`screen.${n.id}`]=n.title,n.nav?.show!==!1&&(t[`nav.${n.id}`]=n.nav?.label??n.title);for(let n of e.entities){t[`new.${n.name}`]=`+ New ${n.label??n.name}`;for(let e of n.fields)t[`col.${n.name}.${e.field}`]=e.label??e.field}return e.audit===!0&&(t[`nav.__audit__`]=`Audit log`),t}function FE(e){let t=e.i18n,n=t.locales,r=t.defaultLocale&&n.includes(t.defaultLocale)?t.defaultLocale:n[0],i=PE(e),a=n.map(e=>JSON.stringify(e)).join(` | `),o=JSON.stringify(i,null,2).replace(/\n/g,`
|
|
656
|
-
`),s=n.map(e=>` ${JSON.stringify(e)}: ${e===r?o:`{}`},`).join(`
|
|
657
|
-
`);return{path:`src/lib/i18n.ts`,description:`Localization: locales, the current-locale store, the message catalog, and t() / localizeCols helpers.`,contents:`import { writable, derived } from 'svelte/store'
|
|
658
|
-
|
|
659
|
-
export type Locale = ${a}
|
|
660
|
-
export const locales: Locale[] = ${JSON.stringify(n)} as Locale[]
|
|
661
|
-
export const currentLocale = writable<Locale>(${JSON.stringify(r)})
|
|
662
|
-
|
|
663
|
-
// The default locale is seeded from your schema + screen labels. Fill the other
|
|
664
|
-
// locales in with the same keys; missing keys fall back to the default.
|
|
665
|
-
const messages: Record<Locale, Record<string, string>> = {
|
|
666
|
-
${s}
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
/** Reactive translator: \`$t('key', 'fallback')\`. Falls back to the default locale, then the fallback, then the key. */
|
|
670
|
-
export const t = derived(currentLocale, ($l) => (key: string, fallback?: string): string =>
|
|
671
|
-
messages[$l]?.[key] ?? messages[${JSON.stringify(r)}]?.[key] ?? fallback ?? key)
|
|
672
|
-
|
|
673
|
-
/** Localize a column list's headers via \`col.<entity>.<field>\` keys. */
|
|
674
|
-
export function localizeCols<T extends { field?: string | number; header?: string }>(
|
|
675
|
-
cols: T[], entity: string, translate: (k: string, fb?: string) => string,
|
|
676
|
-
): T[] {
|
|
677
|
-
return cols.map((c) => ({ ...c, header: translate('col.' + entity + '.' + String(c.field), c.header ?? String(c.field ?? '')) }))
|
|
678
|
-
}
|
|
679
|
-
`}}function IE(){return{path:`src/lib/audit.ts`,description:`Audit trail store: the AuditEntry schema, an in-memory source, and recordAudit(). Swap the source for a DB table to persist it.`,contents:`import { createInMemoryDataSource } from '@svgrid/enterprise'
|
|
680
|
-
import type { EntitySchema } from '@svgrid/enterprise'
|
|
681
|
-
|
|
682
|
-
export type AuditEntry = {
|
|
683
|
-
id: string
|
|
684
|
-
at: string
|
|
685
|
-
actor: string
|
|
686
|
-
entity: string
|
|
687
|
-
action: 'create' | 'update' | 'delete'
|
|
688
|
-
recordId: string
|
|
689
|
-
summary: string
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
export const auditSchema: EntitySchema<AuditEntry> = {
|
|
693
|
-
name: 'audit',
|
|
694
|
-
idField: 'id',
|
|
695
|
-
fields: [
|
|
696
|
-
{ field: 'id', type: 'text', primaryKey: true, readonly: true },
|
|
697
|
-
{ field: 'at', type: 'datetime', label: 'When' },
|
|
698
|
-
{ field: 'actor', type: 'text', label: 'Actor' },
|
|
699
|
-
{ field: 'entity', type: 'text', label: 'Entity' },
|
|
700
|
-
{ field: 'action', type: 'enum', label: 'Action', options: [{ value: 'create', label: 'Create' }, { value: 'update', label: 'Update' }, { value: 'delete', label: 'Delete' }] },
|
|
701
|
-
{ field: 'recordId', type: 'text', label: 'Record' },
|
|
702
|
-
{ field: 'summary', type: 'text', label: 'Summary' },
|
|
703
|
-
],
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
// In-memory, server-side singleton. Replace with a SQL / Supabase source to
|
|
707
|
-
// persist the trail across restarts (recordAudit + the /audit viewer keep working).
|
|
708
|
-
export const auditSource = createInMemoryDataSource<AuditEntry>([], auditSchema)
|
|
709
|
-
let seq = 0
|
|
710
|
-
|
|
711
|
-
/** Append one change record. Called by the API routes' \`audit\` hook. */
|
|
712
|
-
export async function recordAudit(input: {
|
|
713
|
-
entity: string
|
|
714
|
-
action: 'create' | 'update' | 'delete'
|
|
715
|
-
recordId: string | null
|
|
716
|
-
values?: Record<string, unknown>
|
|
717
|
-
actor?: string
|
|
718
|
-
}): Promise<void> {
|
|
719
|
-
const summary =
|
|
720
|
-
input.action === 'delete'
|
|
721
|
-
? \`Deleted \${input.entity} \${input.recordId ?? ''}\`.trim()
|
|
722
|
-
: \`\${input.action === 'create' ? 'Created' : 'Updated'} \${input.entity}\${input.values ? ' (' + Object.keys(input.values).join(', ') + ')' : ''}\`
|
|
723
|
-
await auditSource.createRow?.({
|
|
724
|
-
id: String(++seq),
|
|
725
|
-
at: new Date().toISOString(),
|
|
726
|
-
actor: input.actor ?? 'system',
|
|
727
|
-
entity: input.entity,
|
|
728
|
-
action: input.action,
|
|
729
|
-
recordId: input.recordId ?? '',
|
|
730
|
-
summary,
|
|
731
|
-
})
|
|
732
|
-
}
|
|
733
|
-
`}}function LE(){return{path:`src/routes/api/audit/+server.ts`,description:`API route for the audit trail (read-only viewer feed).`,contents:`import { createKitHandlers } from '@svgrid/enterprise'
|
|
734
|
-
import { auditSchema, auditSource } from '$lib/audit'
|
|
735
|
-
|
|
736
|
-
export const { POST } = createKitHandlers({ schema: auditSchema, source: auditSource })
|
|
737
|
-
`}}function RE(){return{path:`src/routes/audit/+page.svelte`,description:`Audit log viewer (read-only grid of change records).`,contents:`<script lang="ts">
|
|
738
|
-
import { SvGrid, createServerDataSource, type ServerState } from '@svgrid/grid'
|
|
739
|
-
import { schemaToColumns, createKitDataSource } from '@svgrid/enterprise'
|
|
740
|
-
import { auditSchema, type AuditEntry } from '$lib/audit'
|
|
741
|
-
|
|
742
|
-
const source = createKitDataSource<AuditEntry>({ endpoint: '/api/audit' })
|
|
743
|
-
let view = $state<ServerState<AuditEntry>>({ rows: [], total: 0, loading: false, saving: false, error: null, pageIndex: 0, pageSize: 25, pageCount: 1, sortModel: [], filterModel: {} })
|
|
744
|
-
const controller = createServerDataSource<AuditEntry>(source, { pageSize: 25, onChange: (s) => (view = s) })
|
|
745
|
-
$effect(() => { controller.refresh(); return () => controller.dispose() })
|
|
746
|
-
const columns = schemaToColumns(auditSchema)
|
|
747
|
-
<\/script>
|
|
748
|
-
|
|
749
|
-
<h1 class="st__title">Audit log</h1>
|
|
750
|
-
<p class="st__sub">Every create, update, and delete recorded server-side.</p>
|
|
751
|
-
|
|
752
|
-
<div class="screen" style="margin-top: 16px">
|
|
753
|
-
<SvGrid
|
|
754
|
-
data={view.rows}
|
|
755
|
-
columns={columns}
|
|
756
|
-
loading={view.loading}
|
|
757
|
-
loadingOverlay
|
|
758
|
-
fitColumns
|
|
759
|
-
sortable
|
|
760
|
-
externalSort
|
|
761
|
-
onSortingChange={(s) => controller.setSort(s)}
|
|
762
|
-
showPagination
|
|
763
|
-
externalPagination
|
|
764
|
-
rowCount={view.total}
|
|
765
|
-
pageIndex={view.pageIndex}
|
|
766
|
-
pageSize={view.pageSize}
|
|
767
|
-
onPaginationChange={({ pageIndex, pageSize }) => (pageSize !== view.pageSize ? controller.setPageSize(pageSize) : controller.setPage(pageIndex))}
|
|
768
|
-
containerHeight={520}
|
|
769
|
-
/>
|
|
770
|
-
</div>
|
|
771
|
-
`}}function zE(e){let t=e.access,n=t.roles.map(e=>e.role),r=t.defaultRole&&n.includes(t.defaultRole)?t.defaultRole:n[0]??`viewer`,i=n.length?n.map(e=>JSON.stringify(e)).join(` | `):`'viewer'`,a=t.roles.map(e=>` ${JSON.stringify(e.role)}: ${e.screens===`*`?`'*'`:JSON.stringify(e.screens)},`).join(`
|
|
772
|
-
`),o=t.roles.map(e=>` ${JSON.stringify(e.role)}: ${e.actions===`*`?`'*'`:JSON.stringify(e.actions)},`).join(`
|
|
773
|
-
`);return{path:`src/lib/access.ts`,description:`RBAC policy: roles, screen + action permissions, the current-role store, and server helpers. Shared by the UI and the API routes.`,contents:`import { writable } from 'svelte/store'
|
|
774
|
-
|
|
775
|
-
export type AppRole = ${i}
|
|
776
|
-
export type WriteAction = 'create' | 'update' | 'delete'
|
|
777
|
-
export const ROLES: AppRole[] = ${JSON.stringify(n)} as AppRole[]
|
|
778
|
-
|
|
779
|
-
const SCREENS: Record<AppRole, '*' | string[]> = {
|
|
780
|
-
${a}
|
|
781
|
-
}
|
|
782
|
-
const ACTIONS: Record<AppRole, '*' | WriteAction[]> = {
|
|
783
|
-
${o}
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
/** The signed-in user's role. Set it after login (e.g. from the session);
|
|
787
|
-
* defaults to the project's default role. Read it in components as \`$currentRole\`. */
|
|
788
|
-
export const currentRole = writable<AppRole>(${JSON.stringify(r)})
|
|
789
|
-
|
|
790
|
-
/** May this role open the given screen id? */
|
|
791
|
-
export function canScreen(role: AppRole, screenId: string): boolean {
|
|
792
|
-
const s = SCREENS[role]
|
|
793
|
-
return s === '*' || (Array.isArray(s) && s.includes(screenId))
|
|
794
|
-
}
|
|
795
|
-
/** May this role perform a write action? (Reads are implied by screen access.) */
|
|
796
|
-
export function can(role: AppRole, action: WriteAction): boolean {
|
|
797
|
-
const a = ACTIONS[role]
|
|
798
|
-
return a === '*' || (Array.isArray(a) && a.includes(action))
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
// ---- server side ----------------------------------------------------------
|
|
802
|
-
/** Resolve the caller's role on the server. Wire this to YOUR auth: by default it
|
|
803
|
-
* reads \`event.locals.role\` - set it in \`hooks.server.ts\` from the session. */
|
|
804
|
-
export function getServerRole(event: { locals?: Record<string, unknown> }): AppRole {
|
|
805
|
-
const r = event?.locals?.role
|
|
806
|
-
return (typeof r === 'string' && (ROLES as string[]).includes(r) ? r : ${JSON.stringify(r)}) as AppRole
|
|
807
|
-
}
|
|
808
|
-
/** Authorize a CRUD action for a role - used by the API routes' \`authorize\` hook. */
|
|
809
|
-
export function authorizeAction(role: AppRole, action: 'read' | WriteAction): boolean {
|
|
810
|
-
return action === 'read' ? true : can(role, action)
|
|
811
|
-
}
|
|
812
|
-
`}}var BE=e=>(e||`studio-app`).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`studio-app`,VE=[{path:`vite.config.ts`,description:`Vite config.`,contents:`import { sveltekit } from '@sveltejs/vite-plugin-svelte'
|
|
813
|
-
import { defineConfig } from 'vite'
|
|
814
|
-
|
|
815
|
-
export default defineConfig({ plugins: [sveltekit()] })
|
|
816
|
-
`},{path:`tsconfig.json`,description:`TypeScript config.`,contents:`{
|
|
817
|
-
"extends": "./.svelte-kit/tsconfig.json",
|
|
818
|
-
"compilerOptions": {
|
|
819
|
-
"allowJs": true,
|
|
820
|
-
"checkJs": true,
|
|
821
|
-
"esModuleInterop": true,
|
|
822
|
-
"forceConsistentCasingInFileNames": true,
|
|
823
|
-
"resolveJsonModule": true,
|
|
824
|
-
"skipLibCheck": true,
|
|
825
|
-
"sourceMap": true,
|
|
826
|
-
"strict": true,
|
|
827
|
-
"moduleResolution": "bundler"
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
`},{path:`src/app.html`,description:`HTML shell.`,contents:`<!doctype html>
|
|
831
|
-
<html lang="en">
|
|
832
|
-
<head>
|
|
833
|
-
<meta charset="utf-8" />
|
|
834
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
835
|
-
%sveltekit.head%
|
|
836
|
-
</head>
|
|
837
|
-
<body data-sveltekit-preload-data="hover">
|
|
838
|
-
<div style="display: contents">%sveltekit.body%</div>
|
|
839
|
-
</body>
|
|
840
|
-
</html>
|
|
841
|
-
`},{path:`src/app.d.ts`,description:`SvelteKit app types.`,contents:`declare global {
|
|
842
|
-
namespace App {}
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
export {}
|
|
846
|
-
`},{path:`src/routes/+layout.ts`,description:`Client SPA (in-memory sources persist across navigation).`,contents:`// In-memory sources are module singletons, so render as a client SPA. Move an
|
|
847
|
-
// entity to SQL / Supabase and its /api route still runs server-side.
|
|
848
|
-
export const ssr = false
|
|
849
|
-
export const prerender = false
|
|
850
|
-
`},{path:`.npmrc`,description:`npm config.`,contents:`engine-strict=true
|
|
851
|
-
`},{path:`.gitignore`,description:`git ignore.`,contents:`node_modules
|
|
852
|
-
.svelte-kit
|
|
853
|
-
/build
|
|
854
|
-
.env
|
|
855
|
-
.env.*
|
|
856
|
-
!.env.example
|
|
857
|
-
.DS_Store
|
|
858
|
-
`}],HE=`:root { --sg-accent: #4f46e5; color-scheme: light dark; }
|
|
859
|
-
* { box-sizing: border-box; }
|
|
860
|
-
html, body { margin: 0; height: 100%; }
|
|
861
|
-
body { font-family: var(--sg-font, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif); color: var(--sg-fg, #0f172a); background: var(--sg-bg, #fff); }
|
|
862
|
-
.st__title { margin: 0; font-size: 22px; font-weight: 720; letter-spacing: -0.015em; }
|
|
863
|
-
.st__sub { margin: 0; font-size: 14px; line-height: 1.6; color: var(--sg-muted, #64748b); max-width: 74ch; }
|
|
864
|
-
.st__sub code { background: var(--sg-header-bg, #f1f5f9); padding: 1px 6px; border-radius: 5px; font-size: 0.9em; }
|
|
865
|
-
.st__toolbar { display: flex; align-items: center; gap: 10px; }
|
|
866
|
-
.st-hint { font-size: 12.5px; color: var(--sg-muted, #94a3b8); }
|
|
867
|
-
.st-error { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; padding: 11px 14px; border: 1px solid color-mix(in srgb, var(--sg-danger, #dc2626) 40%, var(--sg-border, #e6e8ec)); border-radius: 10px; background: color-mix(in srgb, var(--sg-danger, #dc2626) 8%, var(--sg-bg, #fff)); color: var(--sg-danger, #b3261e); font-size: 13.5px; }
|
|
868
|
-
.st-btn { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; font: inherit; font-size: 13.5px; font-weight: 560; line-height: 1; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 10px; background: var(--sg-bg, #fff); color: var(--sg-fg, inherit); cursor: pointer; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05); }
|
|
869
|
-
.st-btn:hover { background: color-mix(in srgb, var(--sg-fg, #0f172a) 5%, var(--sg-bg, #fff)); }
|
|
870
|
-
.st-btn:disabled { opacity: 0.5; cursor: default; box-shadow: none; }
|
|
871
|
-
.st-btn--primary { border-color: transparent; color: #fff; background: linear-gradient(180deg, color-mix(in srgb, var(--sg-accent) 88%, #fff), var(--sg-accent)); box-shadow: 0 1px 2px rgba(15, 23, 42, 0.14), 0 8px 18px -9px color-mix(in srgb, var(--sg-accent) 65%, transparent); }
|
|
872
|
-
.st-btn--primary:hover { filter: brightness(1.06); }
|
|
873
|
-
.home { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-top: 6px; }
|
|
874
|
-
.home__card { display: flex; flex-direction: column; gap: 6px; padding: 18px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 14px; text-decoration: none; color: inherit; background: var(--sg-bg, #fff); box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05); }
|
|
875
|
-
.home__card:hover { border-color: color-mix(in srgb, var(--sg-accent) 45%, var(--sg-border, #e6e8ec)); }
|
|
876
|
-
.home__card strong { font-size: 15px; }
|
|
877
|
-
.home__card span { font-size: 13px; color: var(--sg-muted, #64748b); line-height: 1.5; }
|
|
878
|
-
.st-filter { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 12px; background: var(--sg-bg, #fff); align-self: start; }
|
|
879
|
-
.st-filter__title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--sg-muted, #64748b); }
|
|
880
|
-
.st-filter__row { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--sg-muted, #64748b); }
|
|
881
|
-
.st-filter__row select, .st-filter__row input { padding: 7px 9px; font: inherit; font-size: 13px; font-weight: 400; color: var(--sg-fg, inherit); background: var(--sg-input-bg, var(--sg-bg, #fff)); border: 1px solid var(--sg-input-border, var(--sg-border, #e6e8ec)); border-radius: 8px; }
|
|
882
|
-
.st-record-card { border: 1px solid var(--sg-border, #e6e8ec); border-radius: 12px; background: var(--sg-bg, #fff); padding: 14px; align-self: start; }
|
|
883
|
-
.st-record { margin: 0; display: flex; flex-direction: column; gap: 8px; }
|
|
884
|
-
.st-record__row { display: grid; grid-template-columns: 40% 1fr; gap: 10px; align-items: baseline; border-bottom: 1px solid var(--sg-border, #f1f5f9); padding-bottom: 6px; }
|
|
885
|
-
.st-record__row dt { margin: 0; font-size: 12px; font-weight: 600; color: var(--sg-muted, #64748b); }
|
|
886
|
-
.st-record__row dd { margin: 0; font-size: 13.5px; color: var(--sg-fg, inherit); overflow-wrap: anywhere; }
|
|
887
|
-
.st-screen { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; align-items: start; }
|
|
888
|
-
/* Mobile: blocks stack full-width (a span-N block clamps to the single column). */
|
|
889
|
-
@media (max-width: 720px) { .st-screen { grid-template-columns: 1fr; gap: 12px; } }
|
|
890
|
-
@media (max-width: 640px) { .st__title { font-size: 19px; } }
|
|
891
|
-
.st-rowactions { display: inline-flex; gap: 6px; }
|
|
892
|
-
.st-rowaction { padding: 3px 9px; font: inherit; font-size: 12px; font-weight: 550; line-height: 1.4; border: 1px solid var(--sg-border, #e6e8ec); border-radius: 7px; background: var(--sg-bg, #fff); color: var(--sg-fg, inherit); cursor: pointer; }
|
|
893
|
-
.st-rowaction:hover { background: color-mix(in srgb, var(--sg-fg, #0f172a) 5%, var(--sg-bg, #fff)); }
|
|
894
|
-
.st-rowaction--danger { color: #dc2626; border-color: color-mix(in srgb, #dc2626 40%, var(--sg-border, #e6e8ec)); }
|
|
895
|
-
.st-rowaction--danger:hover { background: color-mix(in srgb, #dc2626 8%, var(--sg-bg, #fff)); }
|
|
896
|
-
`;function UE(e){let t=BE(e.title);switch(e.deploy??`auto`){case`vercel`:return{adapterModule:`@sveltejs/adapter-vercel`,adapterDep:[`@sveltejs/adapter-vercel`,`^5.5.0`],files:[],cli:`npx vercel --prod`,dashboard:`https://vercel.com/new`,label:`Vercel`};case`netlify`:return{adapterModule:`@sveltejs/adapter-netlify`,adapterDep:[`@sveltejs/adapter-netlify`,`^5.0.0`],files:[{path:`netlify.toml`,description:`Netlify build config.`,contents:`[build]
|
|
897
|
-
command = "npm run build"
|
|
898
|
-
`}],cli:`npx netlify deploy --build --prod`,dashboard:`https://app.netlify.com/start`,label:`Netlify`};case`cloudflare`:return{adapterModule:`@sveltejs/adapter-cloudflare`,adapterDep:[`@sveltejs/adapter-cloudflare`,`^7.0.0`],files:[{path:`wrangler.toml`,description:`Cloudflare Pages config.`,contents:`name = "${t}"\npages_build_output_dir = ".svelte-kit/cloudflare"\ncompatibility_date = "2024-11-01"\n`}],cli:`npm run build && npx wrangler pages deploy .svelte-kit/cloudflare`,dashboard:`https://dash.cloudflare.com/?to=/:account/pages/new`,label:`Cloudflare Pages`};case`node`:return{adapterModule:`@sveltejs/adapter-node`,adapterDep:[`@sveltejs/adapter-node`,`^5.2.0`],files:[],cli:`npm run build && node build`,label:`Node server`};default:return{adapterModule:`@sveltejs/adapter-auto`,adapterDep:[`@sveltejs/adapter-auto`,`^6.0.0`],files:[],cli:`npx vercel --prod`,dashboard:`https://vercel.com/new`,label:`Auto (Vercel / Netlify / Cloudflare)`}}}function WE(e){let t=UE(e);return{label:t.label,cli:t.cli,dashboard:t.dashboard,adapter:t.adapterModule}}function GE(e){let t=[];return e.includes(`env.DATABASE_URL`)&&(t.push(`# Your database connection string (Neon / Supabase / Postgres / MySQL / SQLite path).`),t.push(`DATABASE_URL=`)),e.includes(`env.DATABASE_AUTH_TOKEN`)&&(t.push(`# Turso / libSQL database auth token.`),t.push(`DATABASE_AUTH_TOKEN=`)),t.length===0?null:(t.push(``),t.push(`# Optional: your SvGrid license key removes the unlicensed watermark.`),t.push(`# VITE_SVPRO_KEY=`),t.join(`
|
|
899
|
-
`)+`
|
|
900
|
-
`)}function KE(e){return`import adapter from '${e.adapterModule}'\nimport { vitePreprocess } from '@sveltejs/vite-plugin-svelte'\n\n/** @type {import('@sveltejs/kit').Config} */\nconst config = {\n preprocess: vitePreprocess(),\n kit: { adapter: adapter() },\n}\n\nexport default config\n`}function qE(e,t){let n={"@svgrid/grid":`latest`,"@svgrid/enterprise":`latest`};t.includes(`from '@supabase/supabase-js'`)&&(n[`@supabase/supabase-js`]=`^2.45.0`),t.includes(`import pg from 'pg'`)&&(n.pg=`^8.11.0`),t.includes(`from 'mysql2/promise'`)&&(n.mysql2=`^3.9.0`),t.includes(`import mssql from 'mssql'`)&&(n.mssql=`^10.0.0`),t.includes(`import Database from 'better-sqlite3'`)&&(n[`better-sqlite3`]=`^11.0.0`),t.includes(`from '@libsql/client'`)&&(n[`@libsql/client`]=`^0.14.0`),t.includes(`from '@electric-sql/pglite'`)&&(n[`@electric-sql/pglite`]=`^0.5.0`);let r={name:BE(e.title),version:`0.0.1`,private:!0,type:`module`,scripts:{dev:`vite dev`,build:`vite build`,preview:`vite preview`,check:`svelte-kit sync && svelte-check --tsconfig ./tsconfig.json`,test:`vitest run`},dependencies:n,devDependencies:{[UE(e).adapterDep[0]]:UE(e).adapterDep[1],"@sveltejs/kit":`^2.15.0`,"@sveltejs/vite-plugin-svelte":`^7.0.0`,svelte:`^5.55.5`,"svelte-check":`^4.4.6`,typescript:`^5.7.0`,vite:`^8.0.10`,vitest:`^4.1.5`}};return JSON.stringify(r,null,2)+`
|
|
901
|
-
`}function JE(e){let t=e.entities.map(e=>{let t=Aw(e);return`${t.schemaVar}, type ${t.type}`}),n=e.entities.map(e=>{let t=Aw(e);return`describe(${JSON.stringify(t.label)}, () => {
|
|
902
|
-
it('exposes grid columns and form fields', () => {
|
|
903
|
-
expect(schemaToColumns(${t.schemaVar}).length).toBeGreaterThan(0)
|
|
904
|
-
expect(schemaToFormFields(${t.schemaVar}).length).toBeGreaterThan(0)
|
|
905
|
-
})
|
|
906
|
-
|
|
907
|
-
it('round-trips create -> read -> delete through an in-memory source', async () => {
|
|
908
|
-
const idField = ${t.schemaVar}.idField ?? ${t.schemaVar}.fields.find((f) => f.primaryKey)?.field ?? 'id'
|
|
909
|
-
const source = createInMemoryDataSource<${t.type}>([], ${t.schemaVar})
|
|
910
|
-
await source.createRow({ [idField]: 'smoke-1' } as unknown as Partial<${t.type}>)
|
|
911
|
-
expect((await source.getRows({ startRow: 0, endRow: 100, pageIndex: 0, pageSize: 100, sortModel: [], filterModel: {} })).rowCount).toBe(1)
|
|
912
|
-
await source.deleteRow('smoke-1')
|
|
913
|
-
expect((await source.getRows({ startRow: 0, endRow: 100, pageIndex: 0, pageSize: 100, sortModel: [], filterModel: {} })).rowCount).toBe(0)
|
|
914
|
-
})
|
|
915
|
-
})`});return`// Smoke tests generated by SvGrid Studio. Run with \`npm test\`.
|
|
916
|
-
// They prove every entity's schema still renders (grid columns + form fields)
|
|
917
|
-
// and round-trips through the data-source layer, so a schema edit that would
|
|
918
|
-
// break a screen fails here first. Regenerating the app refreshes this file.
|
|
919
|
-
import { describe, it, expect } from 'vitest'
|
|
920
|
-
import { schemaToColumns, schemaToFormFields, createInMemoryDataSource } from '@svgrid/enterprise'
|
|
921
|
-
import { ${t.join(`, `)} } from './schemas'
|
|
922
|
-
|
|
923
|
-
${n.join(`
|
|
924
|
-
|
|
925
|
-
`)}
|
|
926
|
-
`}var YE=`import { defineConfig } from 'vitest/config'
|
|
927
|
-
|
|
928
|
-
// Node-only test runner for the generated smoke tests (no Svelte/DOM needed).
|
|
929
|
-
// Kept separate from vite.config so the SvelteKit plugin doesn't load here.
|
|
930
|
-
export default defineConfig({
|
|
931
|
-
test: { environment: 'node', include: ['src/**/*.test.ts'] },
|
|
932
|
-
})
|
|
933
|
-
`;function XE(e){let t=NE(e),n=t.map(e=>e.contents).join(`
|
|
934
|
-
`),r=UE(e),i=r.dashboard?`1. Push this folder to a Git repo (GitHub / GitLab / Bitbucket).\n2. Import it at <${r.dashboard}> - build settings are detected automatically.\n\nOr deploy straight from your machine with the CLI:\n\n\`\`\`bash\n${r.cli}\n\`\`\``:`Build and run the server:\n\n\`\`\`bash\n${r.cli}\n\`\`\``,a=`# ${e.title}\n\nGenerated with SvGrid Studio.\n\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\nSQL / Supabase entities read their connection from \`.env\` (\`DATABASE_URL\`) or\n\`src/lib/connections.ts\`. Everything else runs on seeded in-memory data.\n\n## Deploy (${r.label})\n\nThis app is configured for **${r.label}** (SvelteKit \`${r.adapterModule}\`).\n\n${i}\n\nTo target a different host, pick another **Deploy target** in the designer and\nre-generate, or swap the adapter in \`svelte.config.js\`. Entities on **Local\ndatabase** (PGlite) or **In-memory** need no server env; SQL / Supabase entities\nneed their connection set in the host's environment variables.\n\n## Round-tripping back into the designer\n\nThis app ships its own design model in \`studio.config.json\`. To keep editing\nvisually, open the SvGrid Studio designer and **Load** that file - your entities,\nscreens, blocks, theme, RBAC, i18n, etc. come back exactly as generated, and you\ncan re-generate from there.\n\nThe designer regenerates the files under \`src/routes\` and \`src/lib\` from the\nmodel, so **keep your own custom code in new files/modules and import it**, rather\nthan editing the generated screens in place - that way a re-generate never\nclobbers your work. (The CLI workflow, \`npx @svgrid/studio add\`, is the\nalternative: it wraps generated code in \`svgrid:managed\` markers and preserves\nanything you write outside them.)\n`;return[{path:`package.json`,description:`Dependencies + scripts (npm install, npm run dev).`,contents:qE(e,n)},{path:`svelte.config.js`,description:`SvelteKit config (${r.adapterModule}).`,contents:KE(r)},{path:`vitest.config.ts`,description:`Test runner config for the generated smoke tests (npm test).`,contents:YE},{path:`src/lib/schemas.test.ts`,description:`Smoke tests: every entity renders + round-trips through its data source.`,contents:JE(e)},...r.files,...VE,...GE(n)?[{path:`.env.example`,description:`Environment variables the app reads (copy to .env and fill in).`,contents:GE(n)}]:[],{path:`src/app.css`,description:`App theme + page styles.`,contents:HE+(e.theme?.customCss?`\n\n/* --- Custom CSS (from the designer) --- */\n${e.theme.customCss}\n`:``)},{path:`studio.config.json`,description:`The Studio project model - Load it back into the designer to keep editing visually.`,contents:nE(e)+`
|
|
935
|
-
`},{path:`README.md`,description:`How to run the app.`,contents:a},...t]}function ZE(e,t,n,r={}){if(t.length>=n)return t;let i=e.idField??e.fields.find(e=>e.primaryKey)?.field??`id`,a=String(t[0]?.[i]??`r`).replace(/\d+$/,``)||`r`,o=e.fields.find(e=>e.type===`text`&&e.field!==i&&!/id$|ref|no$|number|code|sku/i.test(e.field))?.field,s=new Set(e.fields.filter(e=>e.type===`text`&&(/^(name|title|subject|headline|label)$/i.test(e.field)||e.field===o)).map(e=>e.field)),c=e=>t.map(t=>t[e]).filter(e=>e!=null&&e!==``),l=[...t];for(let o=t.length;o<n;o++){let n={};for(let l of e.fields){if(l.field===i){n[l.field]=`${a}${o+1}`;continue}if(!(l.computed||l.formula)){if(l.type===`relation`){let e=r[l.field]??[];n[l.field]=e.length?e[o%e.length]:t[o%t.length]?.[l.field]??``;continue}if(s.has(l.field)){let e=c(l.field);if(e.length){let t=Math.floor(o/e.length);n[l.field]=t===0?e[o]:`${e[o%e.length]} ${t+1}`;continue}}n[l.field]=LC(l,o)}}l.push(n)}return l}var QE=e=>e.map(e=>String(e.id));function $E(e,t){return{...hT(`grid`,e),...t.format?{formatRules:t.format}:{},...t.rowActions?{rowActions:t.rowActions}:{},...t.rowLink?{rowLink:t.rowLink}:{},...t.summaries?{rowSummaries:!0}:{},...t.density?{density:t.density}:{},...t.pageSize?{pageSize:t.pageSize}:{}}}function eD(e,t,n){let r=`blk-${n+1}`;if(`kpi`in t){let e={kind:`kpi`,label:t.kpi,...t.measure?{measure:t.measure}:{},reduce:t.reduce,...t.format?{format:t.format}:{},...t.trendField?{trendField:t.trendField}:{},...t.trendReduce?{trendReduce:t.trendReduce}:{},...t.target==null?{}:{target:t.target}};return{id:r,span:t.span??1,config:e}}return`chart`in t?{id:r,span:t.span??2,config:{kind:`chart`,dimension:t.chart,...t.measure?{measure:t.measure}:{},reduce:t.reduce??`sum`,type:t.type??`bar`}}:`gauge`in t?{id:r,span:t.span??1,config:{kind:`gauge`,label:t.gauge,...t.measure?{measure:t.measure}:{},reduce:t.reduce,min:t.min??0,max:t.max??100,...t.unit?{unit:t.unit}:{}}}:`pivot`in t?{id:r,span:t.span??3,config:{kind:`pivot`,rows:t.pivot.rows,cols:t.pivot.cols,...t.pivot.measure?{measure:t.pivot.measure}:{},aggregate:t.pivot.aggregate??`sum`}}:`tree`in t?{id:r,span:t.span??1,config:{kind:`tree`,labelField:t.tree.labelField,parentField:t.tree.parentField}}:`filter`in t?{id:r,span:t.span??3,config:{kind:`filter`,fields:t.filter}}:`tabs`in t?{id:r,span:t.span??3,config:{kind:`tabs`,tabs:t.tabs.map(t=>({label:t.label,blocks:t.tiles.map((t,n)=>eD(e,t,n))}))}}:{id:r,span:t.span??3,config:$E(e,t)}}function tD(e,t,n){let r=n.map((t,n)=>eD(e,t,n));return{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:r,nav:{show:!0,label:t.title,order:t.order}}}function nD(e,t){let n=e.fields.find(e=>e.field===t);return n?.options?n.options.filter(e=>e.color).map(e=>({field:t,op:`eq`,value:e.value,background:`color-mix(in srgb, ${e.color} 18%, transparent)`,color:e.color,bold:!0})):[]}function rD(e,t,n={}){let r=[];return n.filter?.length&&r.push({id:`filter-1`,span:3,config:{kind:`filter`,fields:n.filter}}),r.push({id:`grid-1`,span:3,config:$E(e,n.grid??{})}),{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:r,nav:{show:!0,label:t.title,order:t.order}}}function iD(e,t,n,r,i){let a=[];return i?.length&&a.push({id:`filter-1`,span:3,config:{kind:`filter`,fields:i}}),a.push({id:`grid-1`,span:3,config:$E(e,r??{})}),a.push({id:`record-1`,span:3,config:{kind:`record`,editable:!0,...n?{fields:n}:{}}}),{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:a,nav:{show:!0,label:t.title,order:t.order}}}function aD(e,t,n){let r=[];return n.filter?.length&&r.push({id:`filter-1`,span:3,config:{kind:`filter`,fields:n.filter}}),r.push({id:`board-1`,span:3,config:{kind:`board`,groupBy:n.groupBy,titleField:n.titleField,...n.badgeField?{badgeField:n.badgeField}:{},...n.subtitleField?{subtitleField:n.subtitleField}:{},...n.openScreen?{openScreen:n.openScreen}:{}}}),{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:r,nav:{show:!0,label:t.title,order:t.order}}}function oD(e,t,n){let r=[];return n.filter?.length&&r.push({id:`filter-1`,span:3,config:{kind:`filter`,fields:n.filter}}),r.push({id:`calendar-1`,span:3,config:{kind:`calendar`,dateField:n.dateField,titleField:n.titleField,...n.colorField?{colorField:n.colorField}:{},...n.openScreen?{openScreen:n.openScreen}:{}}}),{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:r,nav:{show:!0,label:t.title,order:t.order}}}function sD(e,t,n){let r=[{id:`detail-1`,span:3,config:{kind:`detail`,titleField:n.titleField,...n.subtitleField?{subtitleField:n.subtitleField}:{},...n.statusField?{statusField:n.statusField}:{},...n.metricFields?.length?{metricFields:n.metricFields}:{},...n.sections?.length?{sections:n.sections}:{},...n.related?.length?{related:n.related}:{}}}];return{id:t.id,entity:e.name,title:t.title,route:t.id,blocks:r,nav:{show:!0,label:t.title,order:t.order}}}function cD(e,t,n){let r=QT(e,t,{child:n.child,foreignKey:n.foreignKey}),i=n.linkScreen?r.blocks.map(e=>e.config.kind===`master-detail`?{...e,config:{...e.config,linkScreen:n.linkScreen}}:e):r.blocks;return{...r,blocks:i,id:n.id,title:n.title,route:n.route??n.id,nav:{show:!0,label:n.title,order:n.order}}}function lD(e){let t={};for(let n of e.entities)t[n.name]={kind:`memory`,seed:e.seed[n.name]??[]};return tE({title:e.title,entities:e.entities,screens:e.screens,dataSource:`memory`,dataSources:t,theme:{accent:e.accent,...e.preset?{preset:e.preset}:{},...e.mode?{mode:e.mode}:{},shell:{style:e.navStyle??`sidebar`,brand:e.brand,footer:e.footer??``,navPosition:e.navPosition??`left`}}})}var uD=[{value:`Sam Rivera`,label:`Sam Rivera`,color:`#6366f1`},{value:`Jamie Chen`,label:`Jamie Chen`,color:`#10b981`},{value:`Priya Patel`,label:`Priya Patel`,color:`#f59e0b`},{value:`Dana Lee`,label:`Dana Lee`,color:`#ec4899`}],dD={name:`companies`,label:`Company`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`industry`,type:`enum`,required:!0,options:[{value:`saas`,label:`SaaS`,color:`#6366f1`},{value:`fintech`,label:`Fintech`,color:`#10b981`},{value:`retail`,label:`Retail`,color:`#f59e0b`},{value:`health`,label:`Health`,color:`#ef4444`}]},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Headquarters country`}},{field:`website`,type:`text`,format:`url`,input:{placeholder:`https://…`}},{field:`employees`,type:`number`,label:`Employees`,min:0},{field:`health`,type:`number`,label:`Account health`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 relationship score`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},fD={name:`contacts`,label:`Contact`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`title`,type:`text`,label:`Job title`},{field:`companyId`,type:`relation`,label:`Company`,relation:{entity:`companies`,foreignKey:`companyId`,labelField:`name`}},{field:`tags`,type:`text`,label:`Segments`,input:{editorType:`chips`,help:`Interests / segments`}},{field:`active`,type:`boolean`,defaultValue:!0}]},pD={name:`deals`,label:`Deal`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,required:!0,minLength:2},{field:`companyId`,type:`relation`,label:`Company`,relation:{entity:`companies`,foreignKey:`companyId`,labelField:`name`}},{field:`stage`,type:`enum`,required:!0,options:[{value:`lead`,label:`Lead`,color:`#94a3b8`},{value:`qualified`,label:`Qualified`,color:`#6366f1`},{value:`proposal`,label:`Proposal`,color:`#f59e0b`},{value:`won`,label:`Won`,color:`#10b981`},{value:`lost`,label:`Lost`,color:`#ef4444`}]},{field:`value`,type:`number`,label:`Value ($)`,min:0},{field:`probability`,type:`number`,label:`Probability (%)`,min:0,max:100,defaultValue:50,input:{editorType:`slider`,help:`Win likelihood`}},{field:`weighted`,type:`number`,label:`Weighted ($)`,readonly:!0,formula:`value * probability / 100`},{field:`owner`,type:`enum`,label:`Owner`,options:uD},{field:`closeDate`,type:`date`,label:`Close date`}]},mD={name:`activities`,label:`Activity`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`subject`,type:`text`,required:!0,minLength:3},{field:`type`,type:`enum`,required:!0,options:[{value:`call`,label:`Call`,color:`#6366f1`},{value:`email`,label:`Email`,color:`#10b981`},{value:`meeting`,label:`Meeting`,color:`#f59e0b`},{value:`task`,label:`Task`,color:`#8b5cf6`}]},{field:`dealId`,type:`relation`,label:`Deal`,relation:{entity:`deals`,foreignKey:`dealId`,labelField:`title`}},{field:`owner`,type:`enum`,label:`Owner`,options:uD},{field:`priority`,type:`enum`,defaultValue:`medium`,options:[{value:`low`,label:`Low`,color:`#94a3b8`},{value:`medium`,label:`Medium`,color:`#6366f1`},{value:`high`,label:`High`,color:`#ef4444`}]},{field:`dueDate`,type:`date`,label:`Due date`},{field:`durationMins`,type:`number`,label:`Duration (min)`,min:0},{field:`completed`,type:`boolean`,label:`Done`,defaultValue:!1},{field:`notes`,type:`text`,label:`Notes`}]},hD=[...nD(pD,`stage`),...nD(pD,`owner`),{field:`probability`,op:`lt`,value:30,color:`#dc2626`},{field:`probability`,op:`gte`,value:70,color:`#16a34a`,bold:!0},{field:`value`,op:`gte`,value:1e5,bold:!0}],gD={companies:[{id:`co1`,name:`Globex`,industry:`saas`,country:`United States`,website:`https://globex.com`,employees:320,health:4,active:!0},{id:`co2`,name:`Initech`,industry:`fintech`,country:`United Kingdom`,website:`https://initech.co`,employees:140,health:3,active:!0},{id:`co3`,name:`Umbrella`,industry:`health`,country:`Germany`,website:`https://umbrella.de`,employees:900,health:5,active:!0},{id:`co4`,name:`Hooli`,industry:`saas`,country:`United States`,website:`https://hooli.com`,employees:2100,health:2,active:!1},{id:`co5`,name:`Soylent`,industry:`retail`,country:`Canada`,website:`https://soylent.ca`,employees:75,health:3,active:!0},{id:`co6`,name:`Stark Industries`,industry:`fintech`,country:`United States`,website:`https://stark.com`,employees:5400,health:5,active:!0}],contacts:[{id:`ct1`,name:`Ada Lovelace`,email:`ada@globex.com`,phone:`+1 (415) 555-0101`,title:`CTO`,companyId:`co1`,tags:[`Champion`,`Technical`],active:!0},{id:`ct2`,name:`Alan Turing`,email:`alan@initech.co`,phone:`+44 20 7946 0102`,title:`Head of Data`,companyId:`co2`,tags:[`Economic buyer`],active:!0},{id:`ct3`,name:`Grace Hopper`,email:`grace@umbrella.de`,phone:`+49 30 5550103`,title:`VP Engineering`,companyId:`co3`,tags:[`Champion`],active:!0},{id:`ct4`,name:`Linus Torvalds`,email:`linus@hooli.com`,phone:`+1 (650) 555-0104`,title:`Architect`,companyId:`co4`,tags:[`Technical`,`Blocker`],active:!1},{id:`ct5`,name:`Barbara Liskov`,email:`barbara@soylent.ca`,phone:`+1 (416) 555-0105`,title:`Founder`,companyId:`co5`,tags:[`Decision maker`],active:!0},{id:`ct6`,name:`Katherine Johnson`,email:`kj@stark.com`,phone:`+1 (212) 555-0106`,title:`Analyst`,companyId:`co6`,tags:[`Influencer`],active:!0},{id:`ct7`,name:`Donald Knuth`,email:`don@globex.com`,phone:`+1 (415) 555-0107`,title:`Advisor`,companyId:`co1`,tags:[`Influencer`,`Technical`],active:!0},{id:`ct8`,name:`Margaret Hamilton`,email:`mh@stark.com`,phone:`+1 (212) 555-0108`,title:`Director`,companyId:`co6`,tags:[`Decision maker`],active:!0}],deals:[{id:`dl1`,title:`Globex platform rollout`,companyId:`co1`,stage:`proposal`,value:48e3,probability:60,owner:`Sam Rivera`,closeDate:`2026-08-15`},{id:`dl2`,title:`Initech data pipeline`,companyId:`co2`,stage:`won`,value:26e3,probability:100,owner:`Jamie Chen`,closeDate:`2026-06-30`},{id:`dl3`,title:`Umbrella compliance suite`,companyId:`co3`,stage:`qualified`,value:91e3,probability:40,owner:`Sam Rivera`,closeDate:`2026-09-20`},{id:`dl4`,title:`Hooli migration`,companyId:`co4`,stage:`lost`,value:15e3,probability:0,owner:`Priya Patel`,closeDate:`2026-05-10`},{id:`dl5`,title:`Soylent storefront`,companyId:`co5`,stage:`lead`,value:8e3,probability:20,owner:`Jamie Chen`,closeDate:`2026-10-01`},{id:`dl6`,title:`Stark analytics`,companyId:`co6`,stage:`proposal`,value:132e3,probability:65,owner:`Priya Patel`,closeDate:`2026-08-28`},{id:`dl7`,title:`Globex add-on seats`,companyId:`co1`,stage:`won`,value:12e3,probability:100,owner:`Sam Rivera`,closeDate:`2026-07-05`},{id:`dl8`,title:`Stark expansion`,companyId:`co6`,stage:`qualified`,value:54e3,probability:45,owner:`Jamie Chen`,closeDate:`2026-09-12`}],activities:[{id:`ac1`,subject:`Discovery call with Ada`,type:`call`,dealId:`dl1`,owner:`Sam Rivera`,priority:`high`,dueDate:`2026-07-16`,durationMins:30,completed:!0,notes:`Mapped the rollout scope.`},{id:`ac2`,subject:`Send pricing proposal`,type:`email`,dealId:`dl1`,owner:`Sam Rivera`,priority:`high`,dueDate:`2026-07-18`,durationMins:15,completed:!1,notes:`Awaiting legal sign-off.`},{id:`ac3`,subject:`Data pipeline demo`,type:`meeting`,dealId:`dl2`,owner:`Jamie Chen`,priority:`medium`,dueDate:`2026-07-12`,durationMins:45,completed:!0,notes:`Great fit, moving to close.`},{id:`ac4`,subject:`Compliance review follow-up`,type:`task`,dealId:`dl3`,owner:`Sam Rivera`,priority:`medium`,dueDate:`2026-07-20`,durationMins:20,completed:!1,notes:`Collect SOC2 docs.`},{id:`ac5`,subject:`Re-engage Hooli champion`,type:`call`,dealId:`dl4`,owner:`Priya Patel`,priority:`low`,dueDate:`2026-07-22`,durationMins:25,completed:!1,notes:`Deal went cold - revisit Q4.`},{id:`ac6`,subject:`Storefront scoping`,type:`meeting`,dealId:`dl5`,owner:`Jamie Chen`,priority:`medium`,dueDate:`2026-07-19`,durationMins:60,completed:!1,notes:`Needs design mockups.`},{id:`ac7`,subject:`Analytics exec briefing`,type:`meeting`,dealId:`dl6`,owner:`Priya Patel`,priority:`high`,dueDate:`2026-07-24`,durationMins:40,completed:!1,notes:`CFO joining the call.`},{id:`ac8`,subject:`Renewal paperwork`,type:`task`,dealId:`dl7`,owner:`Sam Rivera`,priority:`low`,dueDate:`2026-07-14`,durationMins:10,completed:!0,notes:`Signed and filed.`},{id:`ac9`,subject:`Expansion seats quote`,type:`email`,dealId:`dl8`,owner:`Jamie Chen`,priority:`medium`,dueDate:`2026-07-21`,durationMins:15,completed:!1,notes:`Quote 40 extra seats.`},{id:`ac10`,subject:`Quarterly business review`,type:`meeting`,dealId:`dl6`,owner:`Priya Patel`,priority:`high`,dueDate:`2026-07-28`,durationMins:90,completed:!1,notes:`Prep the QBR deck.`}]},_D={id:`crm`,name:`CRM`,description:`Companies, contacts, deals and activities - sales + forecast + activity dashboards (KPI sparklines, target gauge, value-over-time trend, pivot, tabs), filtered status-pill grids with drill-through and row actions, master/detail, and rich edit forms.`,emoji:`🤝`,accent:`#6366f1`,build:()=>{let e=ZE(dD,gD.companies,12),t=QE(e),n=ZE(fD,gD.contacts,22,{companyId:t}),r=ZE(pD,gD.deals,30,{companyId:t}),i=QE(r),a=ZE(mD,gD.activities,24,{dealId:i});return lD({title:`Acme CRM`,brand:`Acme CRM`,accent:`#6366f1`,preset:`salesforce`,footer:`© Acme Inc.`,entities:[dD,fD,pD,mD],seed:{companies:e,contacts:n,deals:r,activities:a},screens:[tD(pD,{id:`overview`,title:`Overview`,order:0},[{kpi:`Pipeline value`,measure:`value`,reduce:`sum`,format:`currency`,trendField:`closeDate`,trendReduce:`sum`,target:4e5,span:1},{kpi:`Open deals`,reduce:`count`,span:1},{kpi:`Avg deal size`,measure:`value`,reduce:`avg`,format:`currency`,span:1},{gauge:`Pipeline vs $500k target`,measure:`value`,reduce:`sum`,min:0,max:5e5,unit:`$`,span:1},{chart:`stage`,measure:`value`,reduce:`sum`,type:`bar`,span:2},{chart:`stage`,reduce:`count`,type:`pie`,span:1},{chart:`owner`,measure:`value`,reduce:`sum`,type:`bar`,span:2},{tabs:[{label:`Value by stage`,tiles:[{chart:`stage`,measure:`value`,reduce:`sum`,type:`bar`}]},{label:`Deals by owner`,tiles:[{chart:`owner`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:hD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(pD,{id:`pipeline`,title:`Pipeline`,order:1},{groupBy:`stage`,titleField:`title`,badgeField:`value`,subtitleField:`owner`,filter:[`owner`,`companyId`],openScreen:`deal-360`}),sD(pD,{id:`deal-360`,title:`Deal 360`,order:2},{titleField:`title`,subtitleField:`companyId`,statusField:`stage`,metricFields:[`value`,`probability`],sections:[{label:`Deal`,fields:[`owner`,`closeDate`]},{label:`Account`,fields:[`companyId`]}],related:[{entity:`activities`,foreignKey:`dealId`,label:`Activities`,titleField:`subject`,subtitleField:`owner`,dateField:`dueDate`,statusField:`priority`}]}),tD(pD,{id:`forecast`,title:`Forecast`,order:3},[{kpi:`Pipeline value`,measure:`value`,reduce:`sum`,format:`currency`,span:1},{kpi:`Avg deal size`,measure:`value`,reduce:`avg`,format:`currency`,span:1},{kpi:`Largest deal`,measure:`value`,reduce:`max`,format:`currency`,span:1},{chart:`closeDate`,measure:`value`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`owner`],cols:[`stage`],measure:`value`,aggregate:`sum`},span:3}]),tD(dD,{id:`accounts`,title:`Accounts`,order:4},[{kpi:`Companies`,reduce:`count`,span:1},{kpi:`Total headcount`,measure:`employees`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg headcount`,measure:`employees`,reduce:`avg`,span:1},{gauge:`Avg account health`,measure:`health`,reduce:`avg`,min:0,max:5,span:1},{chart:`industry`,measure:`employees`,reduce:`sum`,type:`bar`,span:2},{chart:`industry`,reduce:`count`,type:`pie`,span:1},{filter:[`industry`,`country`,`active`],span:3},{grid:!0,format:nD(dD,`industry`),summaries:!0,rowLink:{screen:`deals`,sourceField:`id`,targetField:`companyId`},span:3}]),tD(mD,{id:`activities`,title:`Activities`,order:5},[{kpi:`Activities`,reduce:`count`,span:1},{kpi:`Logged minutes`,measure:`durationMins`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg duration`,measure:`durationMins`,reduce:`avg`,span:1},{gauge:`Avg duration (min)`,measure:`durationMins`,reduce:`avg`,min:0,max:120,unit:`m`,span:1},{chart:`type`,reduce:`count`,type:`pie`,span:1},{chart:`owner`,reduce:`count`,type:`bar`,span:2},{filter:[`type`,`priority`,`owner`,`completed`],span:3},{grid:!0,format:[...nD(mD,`type`),...nD(mD,`priority`),...nD(mD,`owner`)],summaries:!0,rowActions:[{kind:`edit`}],span:3}]),cD(dD,`master-detail`,{id:`companies`,title:`Companies`,order:6,child:fD,foreignKey:`companyId`}),iD(fD,{id:`contacts`,title:`Contacts`,order:7},void 0,{},[`companyId`,`tags`,`active`]),iD(pD,{id:`deals`,title:`Deals`,order:8},void 0,{format:hD,summaries:!0,rowActions:[{kind:`edit`}],rowLink:{screen:`deal-360`,sourceField:`id`,targetField:`id`}},[`stage`,`owner`,`companyId`])]})}},vD={name:`products`,label:`Product`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`sku`,type:`text`,label:`SKU`,input:{editorType:`mask`,mask:`AAA-#####`,help:`Warehouse stock code`}},{field:`category`,type:`enum`,required:!0,options:[{value:`electronics`,label:`Electronics`,color:`#6366f1`},{value:`home`,label:`Home`,color:`#10b981`},{value:`apparel`,label:`Apparel`,color:`#f59e0b`},{value:`office`,label:`Office`,color:`#0ea5e9`}]},{field:`price`,type:`number`,label:`Price ($)`,required:!0,min:0,defaultValue:0,input:{prefix:`$`,help:`Retail price`}},{field:`stock`,type:`number`,label:`In stock`,min:0,defaultValue:0},{field:`stockValue`,type:`number`,label:`Stock value ($)`,readonly:!0,formula:`price * stock`},{field:`rating`,type:`number`,label:`Rating`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 customer rating`}},{field:`tags`,type:`text`,label:`Tags`,input:{editorType:`chips`,help:`Merchandising tags`}},{field:`color`,type:`text`,label:`Swatch`,input:{editorType:`color`,help:`Primary colorway`}},{field:`imageUrl`,type:`text`,label:`Image`,format:`url`,input:{placeholder:`https://…`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},yD={name:`customers`,label:`Customer`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Primary contact number`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Billing country`}},{field:`tier`,type:`enum`,required:!0,options:[{value:`free`,label:`Free`,color:`#94a3b8`},{value:`plus`,label:`Plus`,color:`#6366f1`},{value:`vip`,label:`VIP`,color:`#f59e0b`}]},{field:`joinedAt`,type:`datetime`,label:`Joined`,input:{help:`Signup date and time`}},{field:`active`,type:`boolean`,defaultValue:!0}]},bD={name:`orders`,label:`Order`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`ref`,type:`text`,label:`Reference`},{field:`customerId`,type:`relation`,label:`Customer`,relation:{entity:`customers`,foreignKey:`customerId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,options:[{value:`pending`,label:`Pending`,color:`#f59e0b`},{value:`paid`,label:`Paid`,color:`#6366f1`},{value:`shipped`,label:`Shipped`,color:`#10b981`},{value:`refunded`,label:`Refunded`,color:`#ef4444`}]},{field:`total`,type:`number`,label:`Total ($)`,required:!0,min:0,input:{prefix:`$`}},{field:`discount`,type:`number`,label:`Discount (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Order-level discount`}},{field:`net`,type:`number`,label:`Net ($)`,readonly:!0,formula:`total - total * discount / 100`},{field:`placedAt`,type:`datetime`,label:`Placed`}]},xD=[...nD(bD,`status`),{field:`total`,op:`gte`,value:500,color:`#16a34a`,bold:!0},{field:`total`,op:`lt`,value:100,color:`#94a3b8`},{field:`discount`,op:`gte`,value:20,color:`#dc2626`,bold:!0}],SD=[...nD(vD,`category`),{field:`stock`,op:`lt`,value:10,color:`#dc2626`,bold:!0},{field:`stock`,op:`gte`,value:200,color:`#16a34a`},{field:`price`,op:`gte`,value:300,bold:!0}],CD={products:[{id:`p1`,name:`Mechanical Keyboard`,sku:`ELE-01001`,category:`electronics`,price:120,stock:42,rating:5,tags:[`Bestseller`,`New`],color:`#111827`,imageUrl:`https://cdn.shopadmin.io/p/keyboard.png`,active:!0},{id:`p2`,name:`Standing Desk`,sku:`HOM-02002`,category:`home`,price:480,stock:12,rating:4,tags:[`Ergonomic`],color:`#a16207`,imageUrl:`https://cdn.shopadmin.io/p/desk.png`,active:!0},{id:`p3`,name:`Noise-Cancelling Headphones`,sku:`ELE-01003`,category:`electronics`,price:260,stock:0,rating:4,tags:[`Premium`,`Audio`],color:`#1e3a8a`,imageUrl:`https://cdn.shopadmin.io/p/headphones.png`,active:!1},{id:`p4`,name:`Ergonomic Mouse`,sku:`ELE-01004`,category:`electronics`,price:60,stock:130,rating:5,tags:[`Ergonomic`,`Wireless`],color:`#374151`,imageUrl:`https://cdn.shopadmin.io/p/mouse.png`,active:!0},{id:`p5`,name:`Desk Lamp`,sku:`HOM-02005`,category:`home`,price:45,stock:88,rating:3,tags:[`Home`],color:`#f59e0b`,imageUrl:`https://cdn.shopadmin.io/p/lamp.png`,active:!0},{id:`p6`,name:`Cotton Hoodie`,sku:`APP-03006`,category:`apparel`,price:55,stock:210,rating:4,tags:[`Cotton`,`Casual`],color:`#6366f1`,imageUrl:`https://cdn.shopadmin.io/p/hoodie.png`,active:!0},{id:`p7`,name:`Notebook Pack`,sku:`OFF-04007`,category:`office`,price:18,stock:500,rating:5,tags:[`Bulk`],color:`#10b981`,imageUrl:`https://cdn.shopadmin.io/p/notebook.png`,active:!0}],customers:[{id:`c1`,name:`Ada Lovelace`,email:`ada@analytic.io`,phone:`+1 (415) 555-0110`,country:`United States`,tier:`vip`,joinedAt:`2025-01-15T09:20:00Z`,active:!0},{id:`c2`,name:`Alan Turing`,email:`alan@bletchley.uk`,phone:`+44 20 7946 0111`,country:`United Kingdom`,tier:`plus`,joinedAt:`2025-03-02T14:05:00Z`,active:!0},{id:`c3`,name:`Grace Hopper`,email:`grace@navy.mil`,phone:`+1 (202) 555-0112`,country:`United States`,tier:`vip`,joinedAt:`2024-11-08T11:45:00Z`,active:!0},{id:`c4`,name:`Linus Torvalds`,email:`linus@kernel.org`,phone:`+358 9 5550113`,country:`Finland`,tier:`plus`,joinedAt:`2025-05-21T08:30:00Z`,active:!0},{id:`c5`,name:`Barbara Liskov`,email:`barbara@sub.dev`,phone:`+1 (650) 555-0114`,country:`United States`,tier:`free`,joinedAt:`2025-02-17T16:10:00Z`,active:!1},{id:`c6`,name:`Guido van Rossum`,email:`guido@py.org`,phone:`+31 20 5550115`,country:`Netherlands`,tier:`plus`,joinedAt:`2025-04-09T10:00:00Z`,active:!0}],orders:[{id:`o1`,ref:`ORD-1001`,customerId:`c1`,status:`shipped`,total:640,discount:10,placedAt:`2026-06-12T14:30:00Z`},{id:`o2`,ref:`ORD-1002`,customerId:`c2`,status:`paid`,total:120,discount:0,placedAt:`2026-06-18T09:15:00Z`},{id:`o3`,ref:`ORD-1003`,customerId:`c3`,status:`pending`,total:305,discount:15,placedAt:`2026-07-01T18:40:00Z`},{id:`o4`,ref:`ORD-1004`,customerId:`c1`,status:`refunded`,total:260,discount:0,placedAt:`2026-05-22T12:05:00Z`},{id:`o5`,ref:`ORD-1005`,customerId:`c4`,status:`shipped`,total:78,discount:5,placedAt:`2026-07-03T07:50:00Z`},{id:`o6`,ref:`ORD-1006`,customerId:`c6`,status:`paid`,total:540,discount:20,placedAt:`2026-07-08T20:25:00Z`},{id:`o7`,ref:`ORD-1007`,customerId:`c3`,status:`pending`,total:45,discount:0,placedAt:`2026-07-10T13:00:00Z`},{id:`o8`,ref:`ORD-1008`,customerId:`c2`,status:`shipped`,total:198,discount:25,placedAt:`2026-06-28T15:35:00Z`}]},wD={id:`ecommerce`,name:`E-commerce admin`,description:`Products, customers and orders - enterprise revenue + catalog dashboards (KPI revenue sparkline + target, gauges, area sales trend, category x stock pivot, tabbed breakdowns), filtered status-pill grids with low-stock red formatting and row actions, per-customer order-history master/detail, and rich edit forms (SKU mask, star rating, tags, color swatch, phone, country, discount slider).`,emoji:`🛒`,accent:`#10b981`,build:()=>{let e=ZE(vD,CD.products,18),t=ZE(yD,CD.customers,16),n=ZE(bD,CD.orders,34,{customerId:QE(t)});return lD({title:`Shop Admin`,brand:`Shop Admin`,accent:`#10b981`,preset:`vercel`,navStyle:`top-nav`,footer:`© Shop Inc.`,entities:[vD,yD,bD],seed:{products:e,customers:t,orders:n},screens:[tD(bD,{id:`overview`,title:`Overview`,order:0},[{kpi:`Revenue`,measure:`total`,reduce:`sum`,format:`currency`,trendField:`placedAt`,trendReduce:`sum`,target:12e3,span:1},{kpi:`Orders`,reduce:`count`,span:1},{kpi:`Avg order`,measure:`total`,reduce:`avg`,format:`currency`,span:1},{gauge:`Revenue vs $15k target`,measure:`total`,reduce:`sum`,min:0,max:15e3,unit:`$`,span:1},{chart:`status`,measure:`total`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`placedAt`,measure:`total`,reduce:`sum`,type:`area`,span:3},{tabs:[{label:`Revenue by status`,tiles:[{chart:`status`,measure:`total`,reduce:`sum`,type:`bar`}]},{label:`Orders by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:xD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(bD,{id:`board`,title:`Fulfillment`,order:1},{groupBy:`status`,titleField:`ref`,badgeField:`total`,filter:[`status`,`customerId`]}),sD(yD,{id:`customer-360`,title:`Customer 360`,order:2},{titleField:`name`,subtitleField:`country`,statusField:`tier`,related:[{entity:`orders`,foreignKey:`customerId`,label:`Orders`,titleField:`ref`,subtitleField:`total`,dateField:`placedAt`,statusField:`status`}]}),tD(vD,{id:`catalog`,title:`Catalog`,order:3},[{kpi:`Products`,reduce:`count`,span:1},{kpi:`Units in stock`,measure:`stock`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`category`,measure:`stock`,reduce:`sum`,type:`bar`,span:2},{chart:`category`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`category`],cols:[`active`],measure:`stock`,aggregate:`sum`},span:3},{filter:[`category`,`active`],span:3},{grid:!0,format:SD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),cD(yD,`master-detail`,{id:`customers`,title:`Customers`,order:4,child:bD,foreignKey:`customerId`,linkScreen:`customer-360`}),iD(vD,{id:`products`,title:`Products`,order:5},void 0,{format:SD,summaries:!0,rowActions:[{kind:`edit`}]},[`category`,`tags`,`active`]),iD(bD,{id:`orders`,title:`Orders`,order:6},void 0,{format:xD,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`customerId`])]})}},TD={name:`projects`,label:`Project`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`status`,type:`enum`,required:!0,defaultValue:`planning`,options:[{value:`planning`,label:`Planning`,color:`#94a3b8`},{value:`active`,label:`Active`,color:`#6366f1`},{value:`on_hold`,label:`On hold`,color:`#f59e0b`},{value:`done`,label:`Done`,color:`#10b981`}]},{field:`owner`,type:`text`,label:`Owner`},{field:`budget`,type:`number`,label:`Budget ($)`,min:0,input:{prefix:`$`,help:`Approved budget`}},{field:`progress`,type:`number`,label:`Progress (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Overall completion`}},{field:`color`,type:`text`,label:`Label color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Board / calendar color`}},{field:`tags`,type:`text`,label:`Tags`,input:{editorType:`chips`,help:`Themes / labels`}},{field:`dueDate`,type:`date`,label:`Due date`,required:!0}]},ED={name:`members`,label:`Member`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,label:`Phone`,input:{editorType:`phone`,help:`Direct line`}},{field:`role`,type:`enum`,required:!0,defaultValue:`dev`,options:[{value:`dev`,label:`Engineer`,color:`#6366f1`},{value:`design`,label:`Designer`,color:`#ec4899`},{value:`pm`,label:`PM`,color:`#f59e0b`},{value:`qa`,label:`QA`,color:`#10b981`}]},{field:`skills`,type:`text`,label:`Skills`,input:{editorType:`chips`,help:`Tech / expertise`}},{field:`rating`,type:`number`,label:`Performance`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 review score`}}]},DD={name:`tasks`,label:`Task`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,required:!0,minLength:2},{field:`projectId`,type:`relation`,label:`Project`,relation:{entity:`projects`,foreignKey:`projectId`,labelField:`name`}},{field:`assigneeId`,type:`relation`,label:`Assignee`,relation:{entity:`members`,foreignKey:`assigneeId`,labelField:`name`}},{field:`priority`,type:`enum`,required:!0,defaultValue:`medium`,options:[{value:`low`,label:`Low`,color:`#94a3b8`},{value:`medium`,label:`Medium`,color:`#6366f1`},{value:`high`,label:`High`,color:`#f59e0b`},{value:`urgent`,label:`Urgent`,color:`#ef4444`}]},{field:`status`,type:`enum`,required:!0,defaultValue:`todo`,options:[{value:`todo`,label:`To do`,color:`#94a3b8`},{value:`doing`,label:`In progress`,color:`#6366f1`},{value:`review`,label:`In review`,color:`#f59e0b`},{value:`done`,label:`Done`,color:`#10b981`}]},{field:`estimate`,type:`number`,label:`Estimate (h)`,min:0,defaultValue:0,input:{suffix:`h`,help:`Estimated hours`}},{field:`spent`,type:`number`,label:`Spent (h)`,min:0,defaultValue:0,input:{suffix:`h`,help:`Hours logged so far`}},{field:`remaining`,type:`number`,label:`Remaining (h)`,readonly:!0,formula:`estimate - spent`},{field:`progress`,type:`number`,label:`Progress (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Task completion`}},{field:`startedAt`,type:`datetime`,label:`Started`,input:{editorType:`datetime`,help:`When work began`}},{field:`dueDate`,type:`date`,label:`Due`}]},OD=[...nD(DD,`status`),...nD(DD,`priority`),{field:`spent`,op:`gt`,value:16,color:`#dc2626`,bold:!0},{field:`progress`,op:`gte`,value:80,color:`#16a34a`,bold:!0},{field:`progress`,op:`lt`,value:25,color:`#dc2626`}],kD={projects:[{id:`pr1`,name:`Website redesign`,status:`active`,owner:`Sam Rivera`,budget:48e3,progress:65,color:`#6366f1`,tags:[`Marketing`,`Design`],dueDate:`2026-09-01`},{id:`pr2`,name:`Mobile app v2`,status:`planning`,owner:`Jamie Chen`,budget:12e4,progress:15,color:`#10b981`,tags:[`Mobile`,`Growth`],dueDate:`2026-11-15`},{id:`pr3`,name:`Billing migration`,status:`on_hold`,owner:`Priya Patel`,budget:32e3,progress:40,color:`#f59e0b`,tags:[`Infra`,`Finance`],dueDate:`2026-08-20`},{id:`pr4`,name:`Onboarding revamp`,status:`done`,owner:`Sam Rivera`,budget:18e3,progress:100,color:`#ef4444`,tags:[`Product`],dueDate:`2026-06-10`}],members:[{id:`m1`,name:`Ada Lovelace`,email:`ada@team.dev`,phone:`+1 (415) 555-0101`,role:`dev`,skills:[`TypeScript`,`Svelte`],rating:5},{id:`m2`,name:`Grace Hopper`,email:`grace@team.dev`,phone:`+1 (415) 555-0102`,role:`dev`,skills:[`Go`,`SQL`,`Docker`],rating:4},{id:`m3`,name:`Margaret Hamilton`,email:`mh@team.dev`,phone:`+1 (415) 555-0103`,role:`pm`,skills:[`Product`,`Leadership`],rating:5},{id:`m4`,name:`Radia Perlman`,email:`radia@team.dev`,phone:`+1 (415) 555-0104`,role:`design`,skills:[`Figma`,`UX`],rating:4},{id:`m5`,name:`Katherine Johnson`,email:`kj@team.dev`,phone:`+1 (415) 555-0105`,role:`qa`,skills:[`Python`,`GraphQL`],rating:3}],tasks:[{id:`t1`,title:`Design new homepage`,projectId:`pr1`,assigneeId:`m4`,priority:`high`,status:`doing`,estimate:16,spent:6,progress:40,startedAt:`2026-07-02T09:15:00Z`,dueDate:`2026-07-20`},{id:`t2`,title:`Set up CI pipeline`,projectId:`pr1`,assigneeId:`m1`,priority:`medium`,status:`done`,estimate:8,spent:8,progress:100,startedAt:`2026-06-24T10:00:00Z`,dueDate:`2026-07-05`},{id:`t3`,title:`API rate limiting`,projectId:`pr2`,assigneeId:`m2`,priority:`urgent`,status:`todo`,estimate:12,spent:0,progress:0,startedAt:`2026-07-18T08:30:00Z`,dueDate:`2026-07-25`},{id:`t4`,title:`Migrate invoices`,projectId:`pr3`,assigneeId:`m1`,priority:`high`,status:`review`,estimate:24,spent:18,progress:80,startedAt:`2026-07-06T13:45:00Z`,dueDate:`2026-08-01`},{id:`t5`,title:`QA onboarding flow`,projectId:`pr4`,assigneeId:`m5`,priority:`medium`,status:`done`,estimate:6,spent:6,progress:100,startedAt:`2026-06-02T11:20:00Z`,dueDate:`2026-06-08`},{id:`t6`,title:`Push notifications`,projectId:`pr2`,assigneeId:`m2`,priority:`low`,status:`todo`,estimate:10,spent:0,progress:0,startedAt:`2026-07-15T09:00:00Z`,dueDate:`2026-08-15`},{id:`t7`,title:`Accessibility audit`,projectId:`pr1`,assigneeId:`m5`,priority:`high`,status:`doing`,estimate:14,spent:5,progress:35,startedAt:`2026-07-10T14:00:00Z`,dueDate:`2026-07-30`},{id:`t8`,title:`Pricing page copy`,projectId:`pr1`,assigneeId:`m3`,priority:`low`,status:`review`,estimate:4,spent:3,progress:75,startedAt:`2026-07-11T15:30:00Z`,dueDate:`2026-07-18`}]},AD={id:`projects`,name:`Project tracker`,description:`Projects, tasks and a team roster - portfolio + task-board dashboards (budget KPI sparkline + target, progress gauge, status/priority breakdowns with pie + area trend, status x priority pivot, tabbed views), filtered status-pill grids with row actions, master/detail, and rich edit forms (progress slider, color labels, tag chips, phone, rating, datetime).`,emoji:`📋`,accent:`#8b5cf6`,build:()=>{let e=ZE(TD,kD.projects,10),t=QE(e),n=ZE(ED,kD.members,12),r=QE(n),i=ZE(DD,kD.tasks,60,{projectId:t,assigneeId:r});return lD({title:`Project Tracker`,brand:`Tracker`,accent:`#8b5cf6`,preset:`linear`,footer:``,entities:[TD,ED,DD],seed:{projects:e,members:n,tasks:i},screens:[tD(TD,{id:`portfolio`,title:`Portfolio`,order:0},[{kpi:`Total budget`,measure:`budget`,reduce:`sum`,format:`currency`,trendField:`dueDate`,trendReduce:`sum`,target:4e5,span:1},{kpi:`Projects`,reduce:`count`,span:1},{kpi:`Largest budget`,measure:`budget`,reduce:`max`,format:`currency`,span:1},{gauge:`Avg progress`,measure:`progress`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`status`,measure:`budget`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`owner`],cols:[`status`],measure:`budget`,aggregate:`sum`},span:3},{tabs:[{label:`Budget by status`,tiles:[{chart:`status`,measure:`budget`,reduce:`sum`,type:`bar`}]},{label:`Projects by status`,tiles:[{chart:`status`,reduce:`count`,type:`pie`}]}],span:3},{grid:!0,format:[...nD(TD,`status`),{field:`progress`,op:`gte`,value:100,color:`#16a34a`,bold:!0}],summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(DD,{id:`board`,title:`Kanban`,order:1},{groupBy:`status`,titleField:`title`,badgeField:`estimate`,subtitleField:`priority`,filter:[`priority`,`assigneeId`]}),sD(TD,{id:`project-detail`,title:`Project detail`,order:2},{titleField:`name`,subtitleField:`owner`,statusField:`status`,metricFields:[`budget`,`progress`],related:[{entity:`tasks`,foreignKey:`projectId`,label:`Tasks`,titleField:`title`,subtitleField:`priority`,dateField:`dueDate`,statusField:`status`}]}),tD(DD,{id:`tasks-board`,title:`Task board`,order:3},[{kpi:`Tasks`,reduce:`count`,span:1},{kpi:`Logged hours`,measure:`spent`,reduce:`sum`,format:`compact`,span:1},{kpi:`Estimated hours`,measure:`estimate`,reduce:`sum`,format:`compact`,trendField:`dueDate`,trendReduce:`sum`,span:1},{gauge:`Avg completion`,measure:`progress`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`status`,reduce:`count`,type:`bar`,span:2},{chart:`priority`,reduce:`count`,type:`pie`,span:1},{chart:`dueDate`,measure:`spent`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`status`],cols:[`priority`],measure:`estimate`,aggregate:`sum`},span:3},{tabs:[{label:`Hours by status`,tiles:[{chart:`status`,measure:`spent`,reduce:`sum`,type:`bar`}]},{label:`Tasks by priority`,tiles:[{chart:`priority`,reduce:`count`,type:`bar`}]}],span:3},{filter:[`status`,`priority`,`assigneeId`],span:3},{grid:!0,format:OD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),cD(TD,`master-detail`,{id:`projects`,title:`Projects`,order:4,child:DD,foreignKey:`projectId`,linkScreen:`project-detail`}),iD(DD,{id:`tasks`,title:`Tasks`,order:5},void 0,{format:OD,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`priority`,`assigneeId`]),iD(ED,{id:`members`,title:`Members`,order:6},void 0,{format:nD(ED,`role`),summaries:!0},[`role`])]})}},jD={name:`customers`,label:`Customer`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Primary contact address`}},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Support callback number`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Billing country`}},{field:`accountNo`,type:`text`,label:`Account #`,input:{editorType:`mask`,mask:`####-####`,help:`Internal billing account number`}},{field:`plan`,type:`enum`,required:!0,defaultValue:`free`,options:[{value:`free`,label:`Free`,color:`#94a3b8`},{value:`pro`,label:`Pro`,color:`#6366f1`},{value:`business`,label:`Business`,color:`#f59e0b`}]},{field:`signupAt`,type:`datetime`,label:`Signed up`,input:{editorType:`datetime`,help:`When the account was created`}},{field:`health`,type:`number`,label:`Account health`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 relationship score`}},{field:`active`,type:`boolean`,defaultValue:!0}]},MD={name:`agents`,label:`Agent`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Work address`}},{field:`team`,type:`enum`,required:!0,defaultValue:`technical`,options:[{value:`billing`,label:`Billing`,color:`#10b981`},{value:`technical`,label:`Technical`,color:`#6366f1`},{value:`onboarding`,label:`Onboarding`,color:`#f59e0b`}]},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Desk extension`}},{field:`skills`,type:`text`,label:`Skills`,input:{editorType:`chips`,help:`Tools and specialities`}},{field:`capacity`,type:`number`,label:`Capacity (%)`,min:0,max:100,defaultValue:80,input:{editorType:`slider`,help:`Share of a full ticket load`}},{field:`csat`,type:`number`,label:`CSAT`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`Rolling satisfaction score`}},{field:`calendarColor`,type:`text`,label:`Calendar color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Shown on the shift calendar`}},{field:`active`,type:`boolean`,defaultValue:!0}]},ND={name:`tickets`,label:`Ticket`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`subject`,type:`text`,required:!0,minLength:3},{field:`customerId`,type:`relation`,label:`Customer`,relation:{entity:`customers`,foreignKey:`customerId`,labelField:`name`}},{field:`agentId`,type:`relation`,label:`Agent`,relation:{entity:`agents`,foreignKey:`agentId`,labelField:`name`}},{field:`priority`,type:`enum`,required:!0,defaultValue:`normal`,options:[{value:`low`,label:`Low`,color:`#94a3b8`},{value:`normal`,label:`Normal`,color:`#6366f1`},{value:`high`,label:`High`,color:`#f59e0b`},{value:`urgent`,label:`Urgent`,color:`#ef4444`}]},{field:`status`,type:`enum`,required:!0,defaultValue:`open`,options:[{value:`open`,label:`Open`,color:`#6366f1`},{value:`pending`,label:`Pending`,color:`#f59e0b`},{value:`resolved`,label:`Resolved`,color:`#10b981`},{value:`closed`,label:`Closed`,color:`#94a3b8`}]},{field:`channel`,type:`enum`,options:[{value:`email`,label:`Email`,color:`#6366f1`},{value:`chat`,label:`Chat`,color:`#10b981`},{value:`phone`,label:`Phone`,color:`#f59e0b`}]},{field:`tags`,type:`text`,label:`Tags`,input:{editorType:`chips`,help:`Topic labels for routing`}},{field:`createdAt`,type:`datetime`,label:`Created`,input:{editorType:`datetime`,help:`When the ticket was opened`}},{field:`firstResponseMins`,type:`number`,label:`First response (min)`,min:0,input:{help:`Time to the first agent reply`}},{field:`satisfaction`,type:`number`,label:`CSAT`,min:1,max:5,input:{editorType:`rating`,help:`Customer rating on close`}},{field:`estimateHrs`,type:`number`,label:`Estimate (hrs)`,min:0,defaultValue:1,input:{help:`Estimated effort to resolve`}},{field:`hourlyRate`,type:`number`,label:`Rate ($/hr)`,min:0,defaultValue:90,input:{help:`Billed support rate`}},{field:`cost`,type:`number`,label:`Cost ($)`,readonly:!0,formula:`estimateHrs * hourlyRate`}]},PD={customers:[{id:`c1`,name:`Ada Lovelace`,email:`ada@analytic.io`,phone:`+1 (415) 555-0101`,country:`United States`,accountNo:`4021-7788`,plan:`business`,signupAt:`2025-09-12T09:15:00Z`,health:5,active:!0},{id:`c2`,name:`Alan Turing`,email:`alan@bletchley.uk`,phone:`+44 20 7946 0102`,country:`United Kingdom`,accountNo:`5590-2143`,plan:`pro`,signupAt:`2025-11-03T14:20:00Z`,health:4,active:!0},{id:`c3`,name:`Grace Hopper`,email:`grace@navy.mil`,phone:`+1 (202) 555-0103`,country:`United States`,accountNo:`7781-6620`,plan:`business`,signupAt:`2026-01-21T10:05:00Z`,health:5,active:!0},{id:`c4`,name:`Linus Torvalds`,email:`linus@kernel.org`,phone:`+1 (503) 555-0104`,country:`United States`,accountNo:`3312-9087`,plan:`pro`,signupAt:`2026-03-08T08:45:00Z`,health:3,active:!0},{id:`c5`,name:`Barbara Liskov`,email:`barbara@sub.dev`,phone:`+1 (617) 555-0105`,country:`United States`,accountNo:`9001-4455`,plan:`free`,signupAt:`2026-05-30T16:30:00Z`,health:2,active:!1}],agents:[{id:`a1`,name:`Sam Rivera`,email:`sam@support.io`,team:`technical`,phone:`+1 (415) 555-0201`,skills:[`TypeScript`,`AWS`,`GraphQL`],capacity:85,csat:5,calendarColor:`#6366f1`,active:!0},{id:`a2`,name:`Jamie Chen`,email:`jamie@support.io`,team:`billing`,phone:`+1 (312) 555-0202`,skills:[`SQL`,`Leadership`],capacity:70,csat:4,calendarColor:`#10b981`,active:!0},{id:`a3`,name:`Priya Patel`,email:`priya@support.io`,team:`onboarding`,phone:`+1 (206) 555-0203`,skills:[`Product`,`UX`,`Figma`],capacity:60,csat:4,calendarColor:`#f59e0b`,active:!0}],tickets:[{id:`tk1`,subject:`Cannot reset password`,customerId:`c1`,agentId:`a1`,priority:`high`,status:`open`,channel:`email`,tags:[`auth`,`login`],createdAt:`2026-07-10T08:30:00Z`,firstResponseMins:12,satisfaction:4,estimateHrs:2,hourlyRate:90},{id:`tk2`,subject:`Invoice discrepancy`,customerId:`c2`,agentId:`a2`,priority:`normal`,status:`pending`,channel:`email`,tags:[`billing`],createdAt:`2026-07-08T11:05:00Z`,firstResponseMins:45,satisfaction:3,estimateHrs:1,hourlyRate:75},{id:`tk3`,subject:`API returns 500`,customerId:`c3`,agentId:`a1`,priority:`urgent`,status:`open`,channel:`chat`,tags:[`api`,`outage`],createdAt:`2026-07-12T15:40:00Z`,firstResponseMins:4,satisfaction:5,estimateHrs:4,hourlyRate:120},{id:`tk4`,subject:`How do I export data?`,customerId:`c4`,agentId:`a3`,priority:`low`,status:`resolved`,channel:`chat`,tags:[`export`],createdAt:`2026-07-02T09:20:00Z`,firstResponseMins:20,satisfaction:5,estimateHrs:1,hourlyRate:60},{id:`tk5`,subject:`Upgrade to Business`,customerId:`c5`,agentId:`a3`,priority:`normal`,status:`closed`,channel:`phone`,tags:[`upgrade`,`billing`],createdAt:`2026-06-28T13:10:00Z`,firstResponseMins:8,satisfaction:4,estimateHrs:1,hourlyRate:75},{id:`tk6`,subject:`SSO configuration`,customerId:`c1`,agentId:`a1`,priority:`high`,status:`pending`,channel:`email`,tags:[`sso`,`security`],createdAt:`2026-07-11T10:00:00Z`,firstResponseMins:60,satisfaction:2,estimateHrs:3,hourlyRate:120},{id:`tk7`,subject:`Double charge refund`,customerId:`c2`,agentId:`a2`,priority:`urgent`,status:`resolved`,channel:`phone`,tags:[`refund`,`billing`],createdAt:`2026-07-05T16:25:00Z`,firstResponseMins:15,satisfaction:4,estimateHrs:2,hourlyRate:90},{id:`tk8`,subject:`Feature request: dark mode`,customerId:`c3`,agentId:`a3`,priority:`low`,status:`open`,channel:`chat`,tags:[`feature`],createdAt:`2026-07-13T12:50:00Z`,firstResponseMins:90,satisfaction:3,estimateHrs:5,hourlyRate:100}]},FD={id:`support`,name:`Support desk`,description:`Tickets, customers and agents - triage + SLA dashboards (CSAT sparkline + gauge, pivot, tabbed breakdown), a team-capacity dashboard, status-pill grids, master/detail, and rich edit forms.`,emoji:`🎯`,accent:`#0ea5e9`,build:()=>{let e=ZE(jD,PD.customers,16),t=ZE(MD,PD.agents,6),n=ZE(ND,PD.tickets,36,{customerId:QE(e),agentId:QE(t)});return lD({title:`Support Desk`,brand:`Support Desk`,accent:`#0ea5e9`,preset:`atlassian`,footer:``,entities:[jD,MD,ND],seed:{customers:e,agents:t,tickets:n},screens:[tD(ND,{id:`overview`,title:`Overview`,order:0},[{kpi:`Open tickets`,reduce:`count`,span:1},{kpi:`Avg first response`,measure:`firstResponseMins`,reduce:`avg`,span:1},{kpi:`Avg CSAT`,measure:`satisfaction`,reduce:`avg`,trendField:`createdAt`,trendReduce:`avg`,span:1},{gauge:`Avg CSAT`,measure:`satisfaction`,reduce:`avg`,min:0,max:5,span:1},{chart:`status`,reduce:`count`,type:`bar`,span:2},{chart:`priority`,reduce:`count`,type:`pie`,span:1},{chart:`channel`,reduce:`count`,type:`bar`,span:2},{tabs:[{label:`By status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]},{label:`By priority`,tiles:[{chart:`priority`,reduce:`count`,type:`bar`}]},{label:`By channel`,tiles:[{chart:`channel`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:[...nD(ND,`status`),...nD(ND,`priority`)],summaries:!0,span:3}]),aD(ND,{id:`board`,title:`Board`,order:1},{groupBy:`status`,titleField:`subject`,subtitleField:`priority`,filter:[`priority`,`channel`,`agentId`]}),sD(jD,{id:`customer-360`,title:`Customer 360`,order:2},{titleField:`name`,subtitleField:`email`,statusField:`plan`,metricFields:[`health`],related:[{entity:`tickets`,foreignKey:`customerId`,label:`Tickets`,titleField:`subject`,subtitleField:`priority`,dateField:`createdAt`,statusField:`status`}]}),tD(ND,{id:`performance`,title:`Performance`,order:3},[{kpi:`Avg first response`,measure:`firstResponseMins`,reduce:`avg`,span:1},{kpi:`Avg CSAT`,measure:`satisfaction`,reduce:`avg`,span:1},{kpi:`Est. hours`,measure:`estimateHrs`,reduce:`sum`,format:`number`,span:1},{gauge:`Avg CSAT`,measure:`satisfaction`,reduce:`avg`,min:0,max:5,span:1},{chart:`channel`,measure:`firstResponseMins`,reduce:`avg`,type:`bar`,span:2},{chart:`priority`,measure:`satisfaction`,reduce:`avg`,type:`bar`,span:1},{pivot:{rows:[`priority`],cols:[`status`],measure:`satisfaction`,aggregate:`avg`},span:3}]),tD(MD,{id:`team`,title:`Team`,order:4},[{kpi:`Agents`,reduce:`count`,span:1},{kpi:`Avg capacity`,measure:`capacity`,reduce:`avg`,format:`percent`,span:1},{kpi:`Avg CSAT`,measure:`csat`,reduce:`avg`,span:1},{gauge:`Avg team capacity`,measure:`capacity`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`name`,measure:`capacity`,reduce:`avg`,type:`bar`,span:2},{chart:`team`,reduce:`count`,type:`pie`,span:1},{grid:!0,format:nD(MD,`team`),summaries:!0,span:3}]),iD(ND,{id:`tickets`,title:`Tickets`,order:5},void 0,{format:[...nD(ND,`status`),...nD(ND,`priority`)],summaries:!0}),cD(jD,`master-detail`,{id:`customers`,title:`Customers`,order:6,child:ND,foreignKey:`customerId`,linkScreen:`customer-360`}),iD(MD,{id:`agents`,title:`Agents`,order:7})]})}},ID={name:`plans`,label:`Plan`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2,input:{help:`Public plan name shown at checkout`}},{field:`price`,type:`number`,label:`Price ($)`,required:!0,min:0,defaultValue:0,input:{prefix:`$`,help:`Recurring charge per interval`}},{field:`interval`,type:`enum`,required:!0,defaultValue:`monthly`,options:[{value:`monthly`,label:`Monthly`,color:`#6366f1`},{value:`yearly`,label:`Yearly`,color:`#10b981`}]},{field:`seats`,type:`number`,label:`Included seats`,min:1,defaultValue:1,input:{help:`Users allowed on this plan`}},{field:`features`,type:`text`,label:`Included features`,input:{editorType:`chips`,help:`What this plan unlocks`}},{field:`color`,type:`text`,label:`Badge color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Plan badge in the UI`}},{field:`popular`,type:`boolean`,label:`Featured`,defaultValue:!1}]},LD={name:`customers`,label:`Customer`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2,input:{help:`Billing account name`}},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Where invoices are sent`}},{field:`phone`,type:`text`,label:`Phone`,input:{editorType:`phone`,help:`Billing contact number`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Billing country`}},{field:`taxId`,type:`text`,label:`Tax ID`,input:{editorType:`mask`,mask:`##-#######`,help:`VAT / tax registration number`}},{field:`satisfaction`,type:`number`,label:`Satisfaction`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 account health score`}},{field:`since`,type:`date`,label:`Customer since`},{field:`active`,type:`boolean`,defaultValue:!0}]},RD={name:`subscriptions`,label:`Subscription`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`customerId`,type:`relation`,label:`Customer`,relation:{entity:`customers`,foreignKey:`customerId`,labelField:`name`}},{field:`planId`,type:`relation`,label:`Plan`,relation:{entity:`plans`,foreignKey:`planId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,defaultValue:`trialing`,options:[{value:`trialing`,label:`Trialing`,color:`#0ea5e9`},{value:`active`,label:`Active`,color:`#10b981`},{value:`past_due`,label:`Past due`,color:`#f59e0b`},{value:`canceled`,label:`Canceled`,color:`#ef4444`}]},{field:`mrr`,type:`number`,label:`MRR ($)`,required:!0,min:0,defaultValue:0,input:{prefix:`$`,help:`Monthly recurring revenue`}},{field:`seats`,type:`number`,label:`Seats`,min:1,defaultValue:1,input:{help:`Provisioned seats`}},{field:`usage`,type:`number`,label:`Usage (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Share of plan limits consumed`}},{field:`startedAt`,type:`date`,label:`Started at`},{field:`renewsAt`,type:`datetime`,label:`Renews at`,input:{editorType:`datetime`,help:`Next billing timestamp`}},{field:`annual`,type:`number`,label:`Annual ($)`,readonly:!0,formula:`mrr * 12`},{field:`perSeat`,type:`number`,label:`MRR / seat ($)`,readonly:!0,formula:`mrr / seats`},{field:`autoRenew`,type:`boolean`,label:`Auto-renew`,defaultValue:!0}]},zD=[...nD(RD,`status`),{field:`mrr`,op:`gte`,value:200,color:`#16a34a`,bold:!0},{field:`mrr`,op:`eq`,value:0,color:`#dc2626`},{field:`usage`,op:`gte`,value:80,color:`#dc2626`,bold:!0},{field:`usage`,op:`lt`,value:20,color:`#94a3b8`}],BD={plans:[{id:`pl1`,name:`Starter`,price:29,interval:`monthly`,seats:3,features:[`Email support`,`Basic analytics`],color:`#6366f1`,popular:!1},{id:`pl2`,name:`Growth`,price:99,interval:`monthly`,seats:10,features:[`Priority support`,`Advanced analytics`,`Integrations`],color:`#10b981`,popular:!0},{id:`pl3`,name:`Scale`,price:299,interval:`monthly`,seats:25,features:[`SSO`,`Audit logs`,`Dedicated CSM`,`API access`],color:`#8b5cf6`,popular:!1},{id:`pl4`,name:`Starter Annual`,price:290,interval:`yearly`,seats:3,features:[`Email support`,`Basic analytics`],color:`#6366f1`,popular:!1},{id:`pl5`,name:`Growth Annual`,price:990,interval:`yearly`,seats:10,features:[`Priority support`,`Advanced analytics`,`Integrations`],color:`#10b981`,popular:!0},{id:`pl6`,name:`Enterprise`,price:2400,interval:`yearly`,seats:100,features:[`SSO`,`Custom contracts`,`24/7 support`,`SLA`],color:`#f59e0b`,popular:!1}],customers:[{id:`cu1`,name:`Northwind Traders`,email:`billing@northwind.com`,phone:`+1 (415) 555-0101`,country:`United States`,taxId:`12-3456789`,satisfaction:4,since:`2025-03-12`,active:!0},{id:`cu2`,name:`Fabrikam`,email:`accounts@fabrikam.co`,phone:`+44 20 7946 0102`,country:`United Kingdom`,taxId:`44-2233445`,satisfaction:3,since:`2025-06-01`,active:!0},{id:`cu3`,name:`Contoso`,email:`finance@contoso.de`,phone:`+49 30 5550103`,country:`Germany`,taxId:`49-8877665`,satisfaction:5,since:`2024-11-20`,active:!0},{id:`cu4`,name:`Adventure Works`,email:`ap@adventure-works.ca`,phone:`+1 (416) 555-0104`,country:`Canada`,taxId:`11-9988776`,satisfaction:2,since:`2025-01-08`,active:!0},{id:`cu5`,name:`Tailspin Toys`,email:`billing@tailspin.com`,phone:`+61 2 5550 0105`,country:`Australia`,taxId:`61-4455667`,satisfaction:3,since:`2025-09-05`,active:!1},{id:`cu6`,name:`Wingtip`,email:`accounts@wingtip.io`,phone:`+1 (212) 555-0106`,country:`United States`,taxId:`13-2211009`,satisfaction:4,since:`2026-02-18`,active:!0}],subscriptions:[{id:`sb1`,customerId:`cu1`,planId:`pl2`,status:`active`,mrr:99,seats:10,usage:72,startedAt:`2026-01-15`,renewsAt:`2026-08-15T09:00:00Z`,autoRenew:!0},{id:`sb2`,customerId:`cu2`,planId:`pl1`,status:`trialing`,mrr:29,seats:3,usage:20,startedAt:`2026-07-01`,renewsAt:`2026-07-15T09:00:00Z`,autoRenew:!0},{id:`sb3`,customerId:`cu3`,planId:`pl3`,status:`active`,mrr:299,seats:25,usage:88,startedAt:`2025-11-20`,renewsAt:`2026-08-20T10:00:00Z`,autoRenew:!0},{id:`sb4`,customerId:`cu4`,planId:`pl6`,status:`past_due`,mrr:200,seats:100,usage:55,startedAt:`2025-09-10`,renewsAt:`2026-09-10T09:00:00Z`,autoRenew:!1},{id:`sb5`,customerId:`cu5`,planId:`pl2`,status:`canceled`,mrr:0,seats:10,usage:5,startedAt:`2026-03-05`,renewsAt:`2026-09-05T09:00:00Z`,autoRenew:!1},{id:`sb6`,customerId:`cu6`,planId:`pl5`,status:`active`,mrr:82,seats:10,usage:64,startedAt:`2026-02-28`,renewsAt:`2027-02-28T09:00:00Z`,autoRenew:!0},{id:`sb7`,customerId:`cu1`,planId:`pl1`,status:`active`,mrr:29,seats:3,usage:41,startedAt:`2026-05-18`,renewsAt:`2026-08-18T09:00:00Z`,autoRenew:!0}]},VD={id:`subscriptions`,name:`Subscriptions`,description:`Customers, plans and subscriptions - revenue + growth + plan dashboards (MRR sparkline over start dates, a $30k target, a usage gauge, status/interval charts, a status x auto-renew pivot, tabs), filtered status-pill grids with row actions, master/detail, and rich edit forms (phone, country, tax-id mask, satisfaction rating, usage slider, feature chips, plan color, renewal datetime).`,emoji:`🔄`,accent:`#14b8a6`,build:()=>{let e=ZE(ID,BD.plans,8),t=ZE(LD,BD.customers,18),n=ZE(RD,BD.subscriptions,32,{customerId:QE(t),planId:QE(e)});return lD({title:`SubHub`,brand:`SubHub`,accent:`#14b8a6`,preset:`notion`,footer:``,entities:[ID,LD,RD],seed:{plans:e,customers:t,subscriptions:n},screens:[tD(RD,{id:`overview`,title:`Revenue`,order:0},[{kpi:`Total MRR`,measure:`mrr`,reduce:`sum`,format:`currency`,trendField:`startedAt`,trendReduce:`sum`,target:3e4,span:1},{kpi:`Subscriptions`,reduce:`count`,span:1},{kpi:`Avg MRR`,measure:`mrr`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg usage`,measure:`usage`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`status`,measure:`mrr`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{tabs:[{label:`MRR by status`,tiles:[{chart:`status`,measure:`mrr`,reduce:`sum`,type:`bar`}]},{label:`Subscriptions by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:zD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(RD,{id:`growth`,title:`Growth`,order:1},[{kpi:`Total MRR`,measure:`mrr`,reduce:`sum`,format:`currency`,span:1},{kpi:`Avg usage`,measure:`usage`,reduce:`avg`,format:`percent`,span:1},{kpi:`Largest MRR`,measure:`mrr`,reduce:`max`,format:`currency`,span:1},{chart:`startedAt`,measure:`mrr`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`status`],cols:[`autoRenew`],measure:`mrr`,aggregate:`sum`},span:3}]),tD(ID,{id:`plans-overview`,title:`Plans`,order:2},[{kpi:`Plans`,reduce:`count`,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{kpi:`Top price`,measure:`price`,reduce:`max`,format:`currency`,span:1},{gauge:`Avg seats`,measure:`seats`,reduce:`avg`,min:0,max:100,span:1},{chart:`interval`,measure:`price`,reduce:`sum`,type:`bar`,span:2},{chart:`interval`,reduce:`count`,type:`pie`,span:1},{filter:[`interval`,`popular`],span:3},{grid:!0,format:nD(ID,`interval`),summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(LD,{id:`customer-360`,title:`Customer 360`,order:3},{titleField:`name`,subtitleField:`email`,metricFields:[`satisfaction`],related:[{entity:`subscriptions`,foreignKey:`customerId`,label:`Subscriptions`,titleField:`planId`,subtitleField:`mrr`,dateField:`startedAt`,statusField:`status`}]}),cD(LD,`master-detail`,{id:`customers`,title:`Customers`,order:4,child:RD,foreignKey:`customerId`,linkScreen:`customer-360`}),iD(RD,{id:`subscriptions`,title:`Subscriptions`,order:5},void 0,{format:zD,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`planId`,`customerId`]),iD(ID,{id:`plans-form`,title:`Manage plans`,order:6},void 0,{format:nD(ID,`interval`),summaries:!0,rowActions:[{kind:`edit`}]},[`interval`,`popular`])]})}},HD={name:`clients`,label:`Client`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Billing contact email`}},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Primary contact number`}},{field:`company`,type:`text`,label:`Company`},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Billing country`}},{field:`website`,type:`text`,format:`url`,input:{placeholder:`https://…`}},{field:`taxId`,type:`text`,label:`Tax ID`,input:{editorType:`mask`,mask:`##-#######`,help:`EIN / VAT number`}},{field:`satisfaction`,type:`number`,label:`Satisfaction`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 relationship score`}},{field:`segments`,type:`text`,label:`Segments`,input:{editorType:`chips`,help:`Account tags / segments`}},{field:`onboardedAt`,type:`datetime`,label:`Onboarded`,input:{editorType:`datetime`,help:`When the client signed on`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},UD={name:`invoices`,label:`Invoice`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`number`,type:`text`,label:`Number`,required:!0,input:{editorType:`mask`,mask:`INV-####-###`,help:`Invoice reference`}},{field:`clientId`,type:`relation`,label:`Client`,relation:{entity:`clients`,foreignKey:`clientId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,options:[{value:`draft`,label:`Draft`,color:`#94a3b8`},{value:`sent`,label:`Sent`,color:`#0ea5e9`},{value:`paid`,label:`Paid`,color:`#10b981`},{value:`overdue`,label:`Overdue`,color:`#ef4444`}]},{field:`subtotal`,type:`number`,label:`Subtotal ($)`,required:!0,min:0,input:{help:`Amount before tax`}},{field:`taxRate`,type:`number`,label:`Tax rate (%)`,min:0,max:30,defaultValue:10,input:{editorType:`slider`,help:`Applied sales tax`}},{field:`total`,type:`number`,label:`Total ($)`,readonly:!0,formula:`subtotal + subtotal * taxRate / 100`},{field:`color`,type:`text`,label:`Label color`,input:{editorType:`color`,help:`Swatch used in reports`}},{field:`issueDate`,type:`date`,label:`Issue date`},{field:`dueDate`,type:`date`,label:`Due date`},{field:`notes`,type:`text`,label:`Notes`,input:{span:2,help:`Internal remarks`}}]},WD=[...nD(UD,`status`),{field:`subtotal`,op:`gte`,value:1e4,color:`#16a34a`,bold:!0},{field:`subtotal`,op:`lt`,value:1e3,color:`#dc2626`}],GD=[{field:`satisfaction`,op:`lte`,value:2,color:`#dc2626`,bold:!0},{field:`satisfaction`,op:`gte`,value:5,color:`#16a34a`,bold:!0}],KD={clients:[{id:`cl1`,name:`Ada Lovelace`,email:`ada@globex.com`,phone:`+1 (415) 555-0101`,company:`Globex`,country:`United States`,website:`https://globex.com`,taxId:`12-3456789`,satisfaction:5,segments:[`Enterprise`,`Retainer`],onboardedAt:`2025-09-12T09:30:00.000Z`,active:!0},{id:`cl2`,name:`Alan Turing`,email:`alan@initech.co`,phone:`+44 20 7946 0102`,company:`Initech`,country:`United Kingdom`,website:`https://initech.co`,taxId:`98-7654321`,satisfaction:4,segments:[`SMB`],onboardedAt:`2025-11-03T14:15:00.000Z`,active:!0},{id:`cl3`,name:`Grace Hopper`,email:`grace@umbrella.de`,phone:`+49 30 5550103`,company:`Umbrella`,country:`Germany`,website:`https://umbrella.de`,taxId:`44-2019876`,satisfaction:5,segments:[`Enterprise`,`Priority`],onboardedAt:`2025-06-21T08:00:00.000Z`,active:!0},{id:`cl4`,name:`Linus Torvalds`,email:`linus@hooli.com`,phone:`+1 (650) 555-0104`,company:`Hooli`,country:`United States`,website:`https://hooli.com`,taxId:`31-5558822`,satisfaction:2,segments:[`At risk`],onboardedAt:`2025-03-17T16:45:00.000Z`,active:!1},{id:`cl5`,name:`Barbara Liskov`,email:`barbara@soylent.ca`,phone:`+1 (416) 555-0105`,company:`Soylent`,country:`Canada`,website:`https://soylent.ca`,taxId:`77-1002003`,satisfaction:3,segments:[`SMB`,`Trial`],onboardedAt:`2026-01-08T11:20:00.000Z`,active:!0},{id:`cl6`,name:`Katherine Johnson`,email:`kj@stark.com`,phone:`+1 (212) 555-0106`,company:`Stark Industries`,country:`United States`,website:`https://stark.com`,taxId:`20-4455667`,satisfaction:5,segments:[`Enterprise`],onboardedAt:`2025-08-29T13:10:00.000Z`,active:!0}],invoices:[{id:`in1`,number:`INV-2026-001`,clientId:`cl1`,status:`paid`,subtotal:4800,taxRate:8,color:`#10b981`,issueDate:`2026-01-12`,dueDate:`2026-02-11`,notes:`Q1 platform license`},{id:`in2`,number:`INV-2026-002`,clientId:`cl2`,status:`sent`,subtotal:2600,taxRate:20,color:`#0ea5e9`,issueDate:`2026-02-03`,dueDate:`2026-03-05`,notes:`Data pipeline setup`},{id:`in3`,number:`INV-2026-003`,clientId:`cl3`,status:`overdue`,subtotal:9100,taxRate:19,color:`#ef4444`,issueDate:`2026-01-20`,dueDate:`2026-02-19`,notes:`Compliance suite - reminder sent`},{id:`in4`,number:`INV-2026-004`,clientId:`cl4`,status:`draft`,subtotal:1500,taxRate:0,color:`#94a3b8`,issueDate:`2026-03-01`,dueDate:`2026-03-31`,notes:`Pending scope sign-off`},{id:`in5`,number:`INV-2026-005`,clientId:`cl5`,status:`paid`,subtotal:800,taxRate:13,color:`#10b981`,issueDate:`2026-02-14`,dueDate:`2026-03-16`,notes:`Onboarding fee`},{id:`in6`,number:`INV-2026-006`,clientId:`cl6`,status:`sent`,subtotal:13200,taxRate:8,color:`#0ea5e9`,issueDate:`2026-03-08`,dueDate:`2026-04-07`,notes:`Annual analytics contract`},{id:`in7`,number:`INV-2026-007`,clientId:`cl1`,status:`overdue`,subtotal:3400,taxRate:8,color:`#ef4444`,issueDate:`2026-01-05`,dueDate:`2026-02-04`,notes:`Add-on seats - past due`}]},qD={id:`invoicing`,name:`Invoicing`,description:`Clients and invoices - billing + collections + client dashboards (revenue KPI sparkline over issue dates + a target, a revenue gauge, area trend, status pivot, tabbed breakdown), status-pill invoice grids with overdue / big-ticket conditional formatting, drill-through, row actions, master/detail, and rich edit forms.`,emoji:`🧾`,accent:`#0ea5e9`,build:()=>{let e=ZE(HD,KD.clients,12),t=QE(e),n=ZE(UD,KD.invoices,30,{clientId:t});return lD({title:`Acme Invoicing`,brand:`Acme Invoicing`,accent:`#0ea5e9`,preset:`antd`,footer:`© Acme`,entities:[HD,UD],seed:{clients:e,invoices:n},screens:[tD(UD,{id:`overview`,title:`Billing`,order:0},[{kpi:`Billed revenue`,measure:`subtotal`,reduce:`sum`,format:`currency`,trendField:`issueDate`,trendReduce:`sum`,target:6e4,span:1},{kpi:`Invoices`,reduce:`count`,span:1},{kpi:`Avg invoice`,measure:`subtotal`,reduce:`avg`,format:`currency`,span:1},{gauge:`Revenue vs $80k target`,measure:`subtotal`,reduce:`sum`,min:0,max:8e4,unit:`$`,span:1},{chart:`status`,measure:`subtotal`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`issueDate`,measure:`subtotal`,reduce:`sum`,type:`area`,span:3},{tabs:[{label:`Revenue by status`,tiles:[{chart:`status`,measure:`subtotal`,reduce:`sum`,type:`bar`}]},{label:`Invoices by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:WD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(UD,{id:`board`,title:`Board`,order:1},{groupBy:`status`,titleField:`number`,badgeField:`subtotal`,filter:[`status`,`clientId`]}),sD(HD,{id:`client-360`,title:`Client 360`,order:2},{titleField:`name`,subtitleField:`company`,metricFields:[`satisfaction`],related:[{entity:`invoices`,foreignKey:`clientId`,label:`Invoices`,titleField:`number`,subtitleField:`subtotal`,dateField:`issueDate`,statusField:`status`}]}),tD(UD,{id:`collections`,title:`Collections`,order:3},[{kpi:`Outstanding`,measure:`subtotal`,reduce:`sum`,format:`currency`,span:1},{kpi:`Largest invoice`,measure:`subtotal`,reduce:`max`,format:`currency`,span:1},{kpi:`Avg tax rate`,measure:`taxRate`,reduce:`avg`,format:`percent`,span:1},{gauge:`Avg tax rate`,measure:`taxRate`,reduce:`avg`,min:0,max:30,unit:`%`,span:1},{chart:`issueDate`,measure:`subtotal`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`status`],cols:[`clientId`],measure:`subtotal`,aggregate:`sum`},span:3},{grid:!0,format:nD(UD,`status`),summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(HD,{id:`clientsDash`,title:`Clients`,order:4},[{kpi:`Clients`,reduce:`count`,span:1},{kpi:`Avg satisfaction`,measure:`satisfaction`,reduce:`avg`,span:1},{kpi:`Top satisfaction`,measure:`satisfaction`,reduce:`max`,span:1},{gauge:`Avg satisfaction`,measure:`satisfaction`,reduce:`avg`,min:0,max:5,span:1},{chart:`country`,measure:`satisfaction`,reduce:`avg`,type:`bar`,span:2},{chart:`active`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`country`],cols:[`active`],measure:`satisfaction`,aggregate:`avg`},span:3},{filter:[`country`,`company`,`active`],span:3},{grid:!0,format:GD,summaries:!0,rowLink:{screen:`invoices`,sourceField:`id`,targetField:`clientId`},span:3}]),cD(HD,`master-detail`,{id:`clients`,title:`Clients book`,order:5,child:UD,foreignKey:`clientId`,linkScreen:`client-360`}),iD(UD,{id:`invoices`,title:`Invoices`,order:6},void 0,{format:WD,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`clientId`,`issueDate`]),iD(HD,{id:`clientsForm`,title:`Client details`,order:7},void 0,{format:GD},[`country`,`segments`,`active`])]})}},JD={name:`suppliers`,label:`Supplier`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Country of dispatch`}},{field:`email`,type:`text`,format:`email`,required:!0,input:{placeholder:`orders@supplier.com`}},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`rating`,type:`number`,label:`Rating`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 quality score`}},{field:`leadDays`,type:`number`,label:`Lead time (days)`,min:0,defaultValue:14,input:{help:`Typical days from order to delivery`}},{field:`color`,type:`text`,label:`Accent`,defaultValue:`#f59e0b`,input:{editorType:`color`,help:`Chart accent color`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},YD={name:`products`,label:`Product`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`sku`,type:`text`,label:`SKU`,required:!0,input:{editorType:`mask`,mask:`AAA-####`,help:`Stock keeping unit`}},{field:`category`,type:`enum`,required:!0,options:[{value:`electronics`,label:`Electronics`,color:`#6366f1`},{value:`office`,label:`Office`,color:`#0ea5e9`},{value:`home`,label:`Home`,color:`#10b981`},{value:`tools`,label:`Tools`,color:`#f59e0b`}]},{field:`tags`,type:`text`,label:`Tags`,input:{editorType:`chips`,help:`Search and filter keywords`}},{field:`price`,type:`number`,label:`Price ($)`,min:0,required:!0},{field:`discount`,type:`number`,label:`Discount (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Current promotional discount`}},{field:`stock`,type:`number`,label:`In stock`,min:0,defaultValue:0},{field:`reorderLevel`,type:`number`,label:`Reorder level`,min:0,defaultValue:20,input:{help:`Restock when stock drops below this`}},{field:`stockValue`,type:`number`,label:`Stock value ($)`,readonly:!0,formula:`price * stock`},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},XD={name:`purchaseOrders`,label:`Purchase order`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`ref`,type:`text`,label:`Ref`,required:!0,minLength:2},{field:`supplierId`,type:`relation`,label:`Supplier`,relation:{entity:`suppliers`,foreignKey:`supplierId`,labelField:`name`}},{field:`productId`,type:`relation`,label:`Product`,relation:{entity:`products`,foreignKey:`productId`,labelField:`name`}},{field:`status`,type:`enum`,defaultValue:`draft`,options:[{value:`draft`,label:`Draft`,color:`#94a3b8`},{value:`ordered`,label:`Ordered`,color:`#0ea5e9`},{value:`received`,label:`Received`,color:`#10b981`},{value:`cancelled`,label:`Cancelled`,color:`#ef4444`}]},{field:`qty`,type:`number`,label:`Quantity`,min:1,defaultValue:1,required:!0},{field:`unitCost`,type:`number`,label:`Unit cost ($)`,min:0,defaultValue:0},{field:`total`,type:`number`,label:`Total ($)`,readonly:!0,formula:`qty * unitCost`},{field:`orderedAt`,type:`date`,label:`Ordered at`,input:{editorType:`datetime`,help:`When the order was placed`}}]},ZD={suppliers:[{id:`sp1`,name:`Shenzhen Components`,country:`China`,email:`sales@shenzhencomp.com`,phone:`+86 755 5550 101`,rating:5,leadDays:21,color:`#6366f1`,active:!0},{id:`sp2`,name:`Nordic Office Supply`,country:`Sweden`,email:`orders@nordicoffice.se`,phone:`+46 8 5550 102`,rating:4,leadDays:10,color:`#10b981`,active:!0},{id:`sp3`,name:`Bavaria Tools`,country:`Germany`,email:`info@bavariatools.de`,phone:`+49 89 5550103`,rating:5,leadDays:14,color:`#f59e0b`,active:!0},{id:`sp4`,name:`Pacific Home Goods`,country:`United States`,email:`hello@pacifichome.com`,phone:`+1 (415) 555-0104`,rating:4,leadDays:7,color:`#0ea5e9`,active:!0},{id:`sp5`,name:`Kyoto Electronics`,country:`Japan`,email:`sales@kyotoelec.jp`,phone:`+81 75 5550 105`,rating:5,leadDays:18,color:`#8b5cf6`,active:!0},{id:`sp6`,name:`Toronto Distributors`,country:`Canada`,email:`orders@torontodist.ca`,phone:`+1 (416) 555-0106`,rating:4,leadDays:12,color:`#ef4444`,active:!1}],products:[{id:`pr1`,name:`USB-C Hub`,sku:`ELE-0001`,category:`electronics`,tags:[`usb-c`,`hub`,`charging`],price:39,discount:10,stock:420,reorderLevel:100,active:!0},{id:`pr2`,name:`Standing Desk`,sku:`OFF-0101`,category:`office`,tags:[`adjustable`,`ergonomic`],price:480,discount:5,stock:35,reorderLevel:20,active:!0},{id:`pr3`,name:`Ceramic Mug Set`,sku:`HOM-0210`,category:`home`,tags:[`kitchen`,`ceramic`],price:24,discount:0,stock:610,reorderLevel:150,active:!0},{id:`pr4`,name:`Cordless Drill`,sku:`TOO-0305`,category:`tools`,tags:[`power`,`cordless`,`18v`],price:129,discount:15,stock:88,reorderLevel:40,active:!0},{id:`pr5`,name:`Mechanical Keyboard`,sku:`ELE-0002`,category:`electronics`,tags:[`mechanical`,`rgb`,`usb`],price:95,discount:8,stock:240,reorderLevel:80,active:!0},{id:`pr6`,name:`Ergonomic Chair`,sku:`OFF-0102`,category:`office`,tags:[`ergonomic`,`mesh`],price:320,discount:12,stock:52,reorderLevel:25,active:!0},{id:`pr7`,name:`LED Desk Lamp`,sku:`HOM-0211`,category:`home`,tags:[`lighting`,`led`,`dimmable`],price:45,discount:0,stock:175,reorderLevel:60,active:!0}],purchaseOrders:[{id:`po1`,ref:`PO-4001`,supplierId:`sp1`,productId:`pr1`,status:`received`,qty:200,unitCost:28,orderedAt:`2026-01-10T09:30:00.000Z`},{id:`po2`,ref:`PO-4002`,supplierId:`sp2`,productId:`pr2`,status:`ordered`,qty:30,unitCost:360,orderedAt:`2026-02-04T14:15:00.000Z`},{id:`po3`,ref:`PO-4003`,supplierId:`sp3`,productId:`pr4`,status:`draft`,qty:25,unitCost:92,orderedAt:`2026-02-18T11:00:00.000Z`},{id:`po4`,ref:`PO-4004`,supplierId:`sp4`,productId:`pr3`,status:`cancelled`,qty:100,unitCost:15,orderedAt:`2026-01-22T16:45:00.000Z`},{id:`po5`,ref:`PO-4005`,supplierId:`sp5`,productId:`pr5`,status:`received`,qty:150,unitCost:68,orderedAt:`2026-03-01T08:20:00.000Z`},{id:`po6`,ref:`PO-4006`,supplierId:`sp6`,productId:`pr7`,status:`ordered`,qty:120,unitCost:30,orderedAt:`2026-03-12T13:10:00.000Z`}]},QD=[...nD(YD,`category`),{field:`stock`,op:`lt`,value:10,color:`#dc2626`,bold:!0},{field:`discount`,op:`gte`,value:15,color:`#16a34a`,bold:!0}],$D={id:`inventory`,name:`Inventory`,description:`Products, suppliers and purchase orders - stock and purchasing dashboards (target KPIs, an order-trend sparkline, a reorder gauge, a category pie, a supplier x status pivot, tabbed breakdowns), a low-stock red grid plus a status-pill order grid with row actions, suppliers master/detail, and rich edit forms (country, phone, supplier rating, SKU mask, tag chips, discount slider, order datetime).`,emoji:`📦`,accent:`#f59e0b`,build:()=>{let e=ZE(JD,ZD.suppliers,24),t=ZE(YD,ZD.products,60),n=ZE(XD,ZD.purchaseOrders,90,{supplierId:QE(e),productId:QE(t)});return lD({title:`Warehouse`,brand:`Warehouse`,accent:`#f59e0b`,preset:`excel`,footer:``,entities:[JD,YD,XD],seed:{suppliers:e,products:t,purchaseOrders:n},screens:[tD(YD,{id:`overview`,title:`Stock`,order:0},[{kpi:`Products`,reduce:`count`,span:1},{kpi:`Units in stock`,measure:`stock`,reduce:`sum`,target:5e3,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg stock on hand`,measure:`stock`,reduce:`avg`,min:0,max:500,span:1},{chart:`category`,measure:`stock`,reduce:`sum`,type:`bar`,span:2},{chart:`category`,reduce:`count`,type:`pie`,span:1},{tabs:[{label:`Stock by category`,tiles:[{chart:`category`,measure:`stock`,reduce:`sum`,type:`bar`}]},{label:`Avg price by category`,tiles:[{chart:`category`,measure:`price`,reduce:`avg`,type:`bar`}]}],span:3},{grid:!0,format:QD,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(XD,{id:`purchasing`,title:`Purchasing`,order:1},[{kpi:`Purchase orders`,reduce:`count`,span:1},{kpi:`Units ordered`,measure:`qty`,reduce:`sum`,trendField:`orderedAt`,trendReduce:`sum`,span:1},{kpi:`Avg unit cost`,measure:`unitCost`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg unit cost`,measure:`unitCost`,reduce:`avg`,min:0,max:400,unit:`$`,span:1},{chart:`status`,measure:`qty`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`orderedAt`,measure:`qty`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`supplierId`],cols:[`status`],measure:`qty`,aggregate:`sum`},span:3},{tabs:[{label:`Qty by status`,tiles:[{chart:`status`,measure:`qty`,reduce:`sum`,type:`bar`}]},{label:`Orders by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:nD(XD,`status`),summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(YD,{id:`product-detail`,title:`Product detail`,order:2},{titleField:`name`,subtitleField:`sku`,statusField:`category`,metricFields:[`stock`,`price`],sections:[{label:`Pricing`,fields:[`discount`,`tags`]},{label:`Stock`,fields:[`reorderLevel`,`active`]}],related:[{entity:`purchaseOrders`,foreignKey:`productId`,label:`Purchase orders`,titleField:`ref`,subtitleField:`qty`,dateField:`orderedAt`,statusField:`status`}]}),cD(JD,`master-detail`,{id:`suppliers`,title:`Suppliers`,order:3,child:XD,foreignKey:`supplierId`}),iD(YD,{id:`products`,title:`Products`,order:4},void 0,{format:QD,summaries:!0,rowActions:[{kind:`edit`}],rowLink:{screen:`product-detail`,sourceField:`id`,targetField:`id`}},[`category`,`active`]),iD(XD,{id:`purchaseOrders`,title:`Purchase orders`,order:5},void 0,{format:nD(XD,`status`),summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`supplierId`])]})}},eO={name:`jobs`,label:`Job`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,required:!0,minLength:3},{field:`department`,type:`enum`,required:!0,options:[{value:`engineering`,label:`Engineering`,color:`#6366f1`},{value:`design`,label:`Design`,color:`#ec4899`},{value:`sales`,label:`Sales`,color:`#f59e0b`},{value:`ops`,label:`Ops`,color:`#0ea5e9`}]},{field:`location`,type:`text`,label:`Location`,input:{editorType:`country`,help:`Where the role is based`}},{field:`status`,type:`enum`,required:!0,defaultValue:`open`,options:[{value:`open`,label:`Open`,color:`#10b981`},{value:`on_hold`,label:`On hold`,color:`#f59e0b`},{value:`closed`,label:`Closed`,color:`#94a3b8`}]},{field:`openings`,type:`number`,label:`Openings`,min:0,max:25,defaultValue:1,input:{help:`Headcount to fill`}},{field:`salaryMin`,type:`number`,label:`Salary min ($)`,min:0},{field:`salaryMax`,type:`number`,label:`Salary max ($)`,min:0},{field:`salaryMid`,type:`number`,label:`Salary mid ($)`,readonly:!0,formula:`(salaryMin + salaryMax) / 2`},{field:`hiringManager`,type:`text`,label:`Hiring manager`},{field:`postedDate`,type:`date`,label:`Posted date`}]},tO={name:`candidates`,label:`Candidate`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`}},{field:`source`,type:`enum`,options:[{value:`referral`,label:`Referral`,color:`#10b981`},{value:`linkedin`,label:`LinkedIn`,color:`#0ea5e9`},{value:`website`,label:`Website`,color:`#6366f1`},{value:`agency`,label:`Agency`,color:`#f59e0b`}]},{field:`skills`,type:`text`,label:`Skills`,input:{editorType:`chips`,help:`Key skills / stack`}},{field:`rating`,type:`number`,label:`Rating`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 recruiter score`}},{field:`linkedin`,type:`text`,label:`LinkedIn`,format:`url`,input:{placeholder:`https://linkedin.com/in/…`}},{field:`portfolio`,type:`text`,label:`Portfolio`,format:`url`,input:{placeholder:`https://…`}}]},nO={name:`applications`,label:`Application`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`candidateId`,type:`relation`,label:`Candidate`,relation:{entity:`candidates`,foreignKey:`candidateId`,labelField:`name`}},{field:`jobId`,type:`relation`,label:`Job`,relation:{entity:`jobs`,foreignKey:`jobId`,labelField:`title`}},{field:`stage`,type:`enum`,required:!0,options:[{value:`applied`,label:`Applied`,color:`#94a3b8`},{value:`screen`,label:`Screen`,color:`#0ea5e9`},{value:`interview`,label:`Interview`,color:`#6366f1`},{value:`offer`,label:`Offer`,color:`#f59e0b`},{value:`hired`,label:`Hired`,color:`#10b981`},{value:`rejected`,label:`Rejected`,color:`#ef4444`}]},{field:`score`,type:`number`,label:`Score`,min:0,max:100,defaultValue:50,input:{editorType:`slider`,help:`Overall fit 0-100`}},{field:`fit`,type:`number`,label:`Culture fit`,min:1,max:5,input:{editorType:`rating`}},{field:`appliedDate`,type:`date`,label:`Applied date`},{field:`interviewAt`,type:`datetime`,label:`Interview at`,input:{editorType:`datetime`,help:`Scheduled interview slot`}}]},rO=[...nD(nO,`stage`),{field:`score`,op:`gte`,value:80,color:`#16a34a`,bold:!0},{field:`score`,op:`lt`,value:50,color:`#dc2626`}],iO=[...nD(eO,`status`),...nD(eO,`department`),{field:`openings`,op:`gte`,value:3,bold:!0}],aO=[...nD(tO,`source`),{field:`rating`,op:`gte`,value:4,color:`#16a34a`,bold:!0},{field:`rating`,op:`lte`,value:2,color:`#dc2626`}],oO={jobs:[{id:`jb1`,title:`Senior Frontend Engineer`,department:`engineering`,location:`United States`,status:`open`,openings:2,salaryMin:14e4,salaryMax:18e4,hiringManager:`Sam Rivera`,postedDate:`2026-06-02`},{id:`jb2`,title:`Product Designer`,department:`design`,location:`United Kingdom`,status:`open`,openings:1,salaryMin:9e4,salaryMax:12e4,hiringManager:`Jamie Chen`,postedDate:`2026-06-10`},{id:`jb3`,title:`Account Executive`,department:`sales`,location:`Germany`,status:`on_hold`,openings:3,salaryMin:8e4,salaryMax:11e4,hiringManager:`Priya Patel`,postedDate:`2026-05-18`},{id:`jb4`,title:`DevOps Engineer`,department:`engineering`,location:`Canada`,status:`open`,openings:1,salaryMin:13e4,salaryMax:165e3,hiringManager:`Sam Rivera`,postedDate:`2026-06-21`},{id:`jb5`,title:`Operations Manager`,department:`ops`,location:`Netherlands`,status:`closed`,openings:1,salaryMin:85e3,salaryMax:115e3,hiringManager:`Jamie Chen`,postedDate:`2026-04-30`},{id:`jb6`,title:`UX Researcher`,department:`design`,location:`Australia`,status:`open`,openings:1,salaryMin:95e3,salaryMax:125e3,hiringManager:`Priya Patel`,postedDate:`2026-06-27`}],candidates:[{id:`cd1`,name:`Maya Fernandez`,email:`maya.fernandez@example.com`,phone:`+1 (415) 555-0110`,country:`United States`,source:`referral`,skills:[`React`,`TypeScript`,`GraphQL`],rating:4,linkedin:`https://linkedin.com/in/mayafernandez`,portfolio:`https://mayafernandez.dev`},{id:`cd2`,name:`Liam Chen`,email:`liam.chen@example.com`,phone:`+44 20 7946 0111`,country:`United Kingdom`,source:`linkedin`,skills:[`Svelte`,`Node.js`],rating:5,linkedin:`https://linkedin.com/in/liamchen`,portfolio:`https://liamchen.io`},{id:`cd3`,name:`Priya Nair`,email:`priya.nair@example.com`,phone:`+91 22 5550 0112`,country:`India`,source:`website`,skills:[`Figma`,`UX`,`Product`],rating:4,linkedin:`https://linkedin.com/in/priyanair`,portfolio:`https://priyanair.design`},{id:`cd4`,name:`Noah Williams`,email:`noah.williams@example.com`,phone:`+1 (312) 555-0113`,country:`United States`,source:`agency`,skills:[`Go`,`Docker`,`Kubernetes`],rating:3,linkedin:`https://linkedin.com/in/noahwilliams`,portfolio:`https://noahwilliams.dev`},{id:`cd5`,name:`Sofia Rossi`,email:`sofia.rossi@example.com`,phone:`+39 06 5550 0114`,country:`Italy`,source:`linkedin`,skills:[`Python`,`SQL`,`AWS`],rating:5,linkedin:`https://linkedin.com/in/sofiarossi`,portfolio:`https://sofiarossi.tech`},{id:`cd6`,name:`Ethan Brooks`,email:`ethan.brooks@example.com`,phone:`+1 (206) 555-0115`,country:`Canada`,source:`referral`,skills:[`Leadership`,`Product`],rating:3,linkedin:`https://linkedin.com/in/ethanbrooks`,portfolio:`https://ethanbrooks.co`},{id:`cd7`,name:`Amara Okafor`,email:`amara.okafor@example.com`,phone:`+234 1 555 0116`,country:`Nigeria`,source:`website`,skills:[`Rust`,`Go`,`AWS`],rating:4,linkedin:`https://linkedin.com/in/amaraokafor`,portfolio:`https://amaraokafor.dev`}],applications:[{id:`ap1`,candidateId:`cd1`,jobId:`jb1`,stage:`interview`,score:82,fit:4,appliedDate:`2026-06-05`,interviewAt:`2026-07-08T09:30:00Z`},{id:`ap2`,candidateId:`cd2`,jobId:`jb1`,stage:`offer`,score:91,fit:5,appliedDate:`2026-06-12`,interviewAt:`2026-07-02T14:00:00Z`},{id:`ap3`,candidateId:`cd3`,jobId:`jb2`,stage:`screen`,score:74,fit:4,appliedDate:`2026-06-15`,interviewAt:`2026-07-11T10:00:00Z`},{id:`ap4`,candidateId:`cd4`,jobId:`jb3`,stage:`applied`,score:60,fit:3,appliedDate:`2026-06-20`,interviewAt:`2026-07-15T15:30:00Z`},{id:`ap5`,candidateId:`cd5`,jobId:`jb4`,stage:`hired`,score:95,fit:5,appliedDate:`2026-05-28`,interviewAt:`2026-06-18T11:00:00Z`},{id:`ap6`,candidateId:`cd6`,jobId:`jb1`,stage:`rejected`,score:48,fit:2,appliedDate:`2026-06-08`,interviewAt:`2026-06-25T13:00:00Z`},{id:`ap7`,candidateId:`cd7`,jobId:`jb6`,stage:`interview`,score:79,fit:4,appliedDate:`2026-06-22`,interviewAt:`2026-07-14T09:00:00Z`},{id:`ap8`,candidateId:`cd3`,jobId:`jb4`,stage:`screen`,score:68,fit:3,appliedDate:`2026-06-25`,interviewAt:`2026-07-16T16:00:00Z`}]},sO={id:`ats`,name:`Recruiting`,description:`Jobs, candidates and an application pipeline - hiring + openings + candidate dashboards (score KPI sparkline + gauge, applications-over-time trend, department x status pivot, tabbed breakdown), status-pill grids with score/rating conditional formatting, filters, row actions, master/detail, and rich edit forms.`,emoji:`📝`,accent:`#7c3aed`,build:()=>{let e=ZE(eO,oO.jobs,12),t=ZE(tO,oO.candidates,20),n=QE(e),r=QE(t),i=ZE(nO,oO.applications,30,{jobId:n,candidateId:r});return lD({title:`HireDesk`,brand:`HireDesk`,accent:`#7c3aed`,preset:`ag-alpine`,footer:``,entities:[eO,tO,nO],seed:{jobs:e,candidates:t,applications:i},screens:[tD(nO,{id:`overview`,title:`Pipeline`,order:0},[{kpi:`Applications`,reduce:`count`,span:1},{kpi:`Avg score`,measure:`score`,reduce:`avg`,trendField:`appliedDate`,trendReduce:`avg`,span:1},{kpi:`Top score`,measure:`score`,reduce:`max`,span:1},{gauge:`Avg fit score`,measure:`score`,reduce:`avg`,min:0,max:100,span:1},{chart:`stage`,reduce:`count`,type:`bar`,span:2},{chart:`stage`,reduce:`count`,type:`pie`,span:1},{chart:`appliedDate`,reduce:`count`,type:`area`,span:3},{tabs:[{label:`By stage`,tiles:[{chart:`stage`,reduce:`count`,type:`bar`}]},{label:`Score by stage`,tiles:[{chart:`stage`,measure:`score`,reduce:`avg`,type:`bar`}]}],span:3},{filter:[`stage`],span:3},{grid:!0,format:rO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(nO,{id:`pipeline-board`,title:`Board`,order:1},{groupBy:`stage`,titleField:`candidateId`,subtitleField:`jobId`,badgeField:`score`,filter:[`stage`,`jobId`]}),tD(eO,{id:`openings`,title:`Openings`,order:2},[{kpi:`Open roles`,reduce:`count`,span:1},{kpi:`Total openings`,measure:`openings`,reduce:`sum`,span:1},{kpi:`Avg salary`,measure:`salaryMax`,reduce:`avg`,format:`compact`,span:1},{gauge:`Total openings`,measure:`openings`,reduce:`sum`,min:0,max:30,span:1},{chart:`department`,measure:`openings`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`department`],cols:[`status`],measure:`openings`,aggregate:`sum`},span:3},{tabs:[{label:`Openings by dept`,tiles:[{chart:`department`,measure:`openings`,reduce:`sum`,type:`bar`}]},{label:`Roles by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:iO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(eO,{id:`job-detail`,title:`Job detail`,order:3},{titleField:`title`,subtitleField:`department`,statusField:`status`,metricFields:[`openings`,`salaryMax`],related:[{entity:`applications`,foreignKey:`jobId`,label:`Applications`,titleField:`candidateId`,subtitleField:`stage`,dateField:`appliedDate`,statusField:`stage`}]}),cD(eO,`master-detail`,{id:`jobs`,title:`Jobs`,order:4,child:nO,foreignKey:`jobId`,linkScreen:`job-detail`}),iD(nO,{id:`applications`,title:`Applications`,order:5},void 0,{format:rO,summaries:!0,rowActions:[{kind:`edit`}]},[`stage`]),iD(tO,{id:`candidates`,title:`Candidates`,order:6},void 0,{format:aO,summaries:!0,rowActions:[{kind:`edit`}]},[`source`])]})}},cO={name:`departments`,label:`Department`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`parentId`,type:`relation`,label:`Parent dept`,relation:{entity:`departments`,foreignKey:`parentId`,labelField:`name`}},{field:`location`,type:`text`,label:`Location`,input:{editorType:`country`,help:`Primary office country`}},{field:`budget`,type:`number`,label:`Budget ($)`,min:0},{field:`headcount`,type:`number`,label:`Headcount`,min:0},{field:`color`,type:`text`,label:`Accent`,defaultValue:`#8b5cf6`,input:{editorType:`color`,help:`Chart accent color`}}]},lO={name:`employees`,label:`Employee`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`ssn`,type:`text`,label:`SSN`,input:{editorType:`mask`,mask:`###-##-####`,help:`US tax identifier`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`}},{field:`deptId`,type:`relation`,label:`Department`,relation:{entity:`departments`,foreignKey:`deptId`,labelField:`name`}},{field:`level`,type:`enum`,options:[{value:`junior`,label:`Junior`,color:`#94a3b8`},{value:`mid`,label:`Mid`,color:`#0ea5e9`},{value:`senior`,label:`Senior`,color:`#6366f1`},{value:`lead`,label:`Lead`,color:`#10b981`}]},{field:`skills`,type:`text`,label:`Skills`,input:{editorType:`chips`,help:`Key skills and specialties`}},{field:`performance`,type:`number`,label:`Performance`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 review score`}},{field:`status`,type:`enum`,defaultValue:`active`,options:[{value:`active`,label:`Active`,color:`#10b981`},{value:`on_leave`,label:`On leave`,color:`#f59e0b`},{value:`terminated`,label:`Terminated`,color:`#ef4444`}]},{field:`salary`,type:`number`,label:`Salary ($)`,min:0},{field:`annualCost`,type:`number`,label:`Annual cost ($)`,readonly:!0,formula:`salary * 1.3`},{field:`hireDate`,type:`date`,label:`Hire date`},{field:`portalPassword`,type:`text`,label:`Portal password`,minLength:8,hidden:{grid:!0},input:{editorType:`password`,help:`Employee self-service login`}}]},uO={name:`timeOff`,label:`Time off`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`employeeId`,type:`relation`,label:`Employee`,relation:{entity:`employees`,foreignKey:`employeeId`,labelField:`name`}},{field:`type`,type:`enum`,required:!0,options:[{value:`vacation`,label:`Vacation`,color:`#0ea5e9`},{value:`sick`,label:`Sick`,color:`#ef4444`},{value:`personal`,label:`Personal`,color:`#f59e0b`}]},{field:`startDate`,type:`date`,label:`Start date`,required:!0},{field:`endDate`,type:`date`,label:`End date`},{field:`days`,type:`number`,label:`Days`,min:0},{field:`status`,type:`enum`,defaultValue:`requested`,options:[{value:`requested`,label:`Requested`,color:`#94a3b8`},{value:`approved`,label:`Approved`,color:`#10b981`},{value:`rejected`,label:`Rejected`,color:`#ef4444`}]}]},dO={departments:[{id:`dp0`,name:`Executive`,parentId:``,location:`United States`,budget:4e5,headcount:4,color:`#334155`},{id:`dp1`,name:`Engineering`,parentId:`dp0`,location:`United States`,budget:18e5,headcount:42,color:`#6366f1`},{id:`dp2`,name:`Sales`,parentId:`dp0`,location:`United Kingdom`,budget:95e4,headcount:28,color:`#10b981`},{id:`dp3`,name:`Marketing`,parentId:`dp2`,location:`Germany`,budget:62e4,headcount:16,color:`#f59e0b`},{id:`dp4`,name:`Finance`,parentId:`dp0`,location:`United States`,budget:54e4,headcount:12,color:`#0ea5e9`},{id:`dp5`,name:`People Ops`,parentId:`dp0`,location:`Canada`,budget:38e4,headcount:9,color:`#8b5cf6`}],employees:[{id:`em1`,name:`Ada Lovelace`,email:`ada@company.com`,phone:`+1 (415) 555-0101`,ssn:`123-45-6789`,country:`United States`,deptId:`dp1`,level:`lead`,skills:[`Architecture`,`Leadership`,`Rust`],performance:5,status:`active`,salary:165e3,hireDate:`2026-01-06`,portalPassword:`lovelace-01`},{id:`em2`,name:`Alan Turing`,email:`alan@company.com`,phone:`+44 20 7946 0102`,ssn:`234-56-7890`,country:`United Kingdom`,deptId:`dp1`,level:`senior`,skills:[`Cryptography`,`Python`],performance:5,status:`active`,salary:142e3,hireDate:`2026-01-20`,portalPassword:`turing-4102`},{id:`em3`,name:`Grace Hopper`,email:`grace@company.com`,phone:`+1 (312) 555-0103`,ssn:`345-67-8901`,country:`United States`,deptId:`dp2`,level:`mid`,skills:[`Compilers`,`Mentoring`],performance:4,status:`on_leave`,salary:98e3,hireDate:`2026-02-03`,portalPassword:`hopper-cobol`},{id:`em4`,name:`Linus Torvalds`,email:`linus@company.com`,phone:`+1 (650) 555-0104`,ssn:`456-78-9012`,country:`Finland`,deptId:`dp1`,level:`senior`,skills:[`Kernel`,`Git`,`C`],performance:4,status:`active`,salary:138e3,hireDate:`2026-02-17`,portalPassword:`torvalds-git`},{id:`em5`,name:`Barbara Liskov`,email:`barbara@company.com`,phone:`+1 (617) 555-0105`,ssn:`567-89-0123`,country:`United States`,deptId:`dp3`,level:`junior`,skills:[`Research`,`Writing`],performance:3,status:`active`,salary:72e3,hireDate:`2026-03-02`,portalPassword:`liskov-2026`},{id:`em6`,name:`Katherine Johnson`,email:`kj@company.com`,phone:`+1 (757) 555-0106`,ssn:`678-90-1234`,country:`United States`,deptId:`dp4`,level:`mid`,skills:[`Analytics`,`Forecasting`],performance:2,status:`terminated`,salary:89e3,hireDate:`2026-03-16`,portalPassword:`johnson-nasa`},{id:`em7`,name:`Margaret Hamilton`,email:`mh@company.com`,phone:`+1 (212) 555-0107`,ssn:`789-01-2345`,country:`United States`,deptId:`dp5`,level:`lead`,skills:[`Systems`,`Reliability`,`Leadership`],performance:5,status:`active`,salary:151e3,hireDate:`2026-04-01`,portalPassword:`hamilton-apollo`}],timeOff:[{id:`to1`,employeeId:`em1`,type:`vacation`,startDate:`2026-07-06`,endDate:`2026-07-10`,days:5,status:`approved`},{id:`to2`,employeeId:`em3`,type:`sick`,startDate:`2026-06-15`,endDate:`2026-06-17`,days:3,status:`approved`},{id:`to3`,employeeId:`em2`,type:`personal`,startDate:`2026-07-21`,endDate:`2026-07-21`,days:1,status:`requested`},{id:`to4`,employeeId:`em5`,type:`vacation`,startDate:`2026-08-03`,endDate:`2026-08-12`,days:8,status:`rejected`},{id:`to5`,employeeId:`em4`,type:`sick`,startDate:`2026-06-22`,endDate:`2026-06-23`,days:2,status:`approved`},{id:`to6`,employeeId:`em7`,type:`vacation`,startDate:`2026-09-07`,endDate:`2026-09-10`,days:4,status:`requested`}]},fO=[...nD(lO,`level`),...nD(lO,`status`),{field:`performance`,op:`lt`,value:3,color:`#dc2626`},{field:`performance`,op:`gte`,value:5,color:`#16a34a`,bold:!0},{field:`salary`,op:`gte`,value:15e4,bold:!0}],pO=[...nD(uO,`type`),...nD(uO,`status`)],mO={id:`hr`,name:`HR`,description:`Employees, departments and time off - headcount and time-off dashboards (payroll KPI sparkline + target, performance gauge, level/status breakdowns, a level x status pivot, tabs, a time-off area trend), filtered status-pill grids with row actions, master/detail, and rich edit forms (phone, SSN mask, country, skills chips, performance rating, password).`,emoji:`👥`,accent:`#8b5cf6`,build:()=>{let e=ZE(cO,dO.departments,10),t=QE(e),n=ZE(lO,dO.employees,32,{deptId:t}),r=QE(n),i=ZE(uO,dO.timeOff,28,{employeeId:r});return lD({title:`People Ops`,brand:`People Ops`,accent:`#8b5cf6`,preset:`fluent`,footer:``,entities:[cO,lO,uO],seed:{departments:e,employees:n,timeOff:i},screens:[tD(lO,{id:`headcount`,title:`Headcount`,order:0},[{kpi:`Headcount`,reduce:`count`,span:1},{kpi:`Total payroll`,measure:`salary`,reduce:`sum`,format:`compact`,trendField:`hireDate`,trendReduce:`sum`,target:15e5,span:1},{kpi:`Avg salary`,measure:`salary`,reduce:`avg`,format:`compact`,span:1},{gauge:`Avg performance`,measure:`performance`,reduce:`avg`,min:0,max:5,span:1},{chart:`level`,measure:`salary`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`level`,reduce:`count`,type:`bar`,span:2},{tabs:[{label:`Payroll by level`,tiles:[{chart:`level`,measure:`salary`,reduce:`sum`,type:`bar`}]},{label:`Headcount by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:1},{pivot:{rows:[`level`],cols:[`status`],measure:`salary`,aggregate:`sum`},span:3},{grid:!0,format:fO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(uO,{id:`timeoff`,title:`Time off`,order:1},[{kpi:`Requests`,reduce:`count`,span:1},{kpi:`Days booked`,measure:`days`,reduce:`sum`,span:1},{kpi:`Avg days`,measure:`days`,reduce:`avg`,span:1},{gauge:`Avg days per request`,measure:`days`,reduce:`avg`,min:0,max:20,unit:`d`,span:1},{chart:`startDate`,measure:`days`,reduce:`sum`,type:`area`,span:3},{chart:`type`,reduce:`count`,type:`pie`,span:1},{chart:`status`,reduce:`count`,type:`bar`,span:2},{filter:[`type`,`status`],span:3},{grid:!0,format:pO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(lO,{id:`employee-360`,title:`Employee 360`,order:2},{titleField:`name`,subtitleField:`deptId`,statusField:`status`,metricFields:[`salary`,`performance`],related:[{entity:`timeOff`,foreignKey:`employeeId`,label:`Time off`,titleField:`type`,dateField:`startDate`,statusField:`status`}]}),cD(cO,`master-detail`,{id:`departments`,title:`Departments`,order:3,child:lO,foreignKey:`deptId`}),iD(lO,{id:`employees`,title:`Employees`,order:4},void 0,{format:fO,summaries:!0,rowActions:[{kind:`edit`}],rowLink:{screen:`employee-360`,sourceField:`id`,targetField:`id`}},[`deptId`,`level`,`status`]),iD(uO,{id:`requests`,title:`Requests`,order:5},void 0,{format:pO,summaries:!0},[`employeeId`,`type`,`status`]),tD(cO,{id:`org`,title:`Org chart`,order:6},[{tree:{labelField:`name`,parentField:`parentId`},span:3},{grid:!0,summaries:!0,span:3}])]})}},hO={name:`doctors`,label:`Doctor`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`specialty`,type:`enum`,label:`Specialty`,required:!0,options:[{value:`gp`,label:`General Practice`,color:`#6366f1`},{value:`cardiology`,label:`Cardiology`,color:`#ef4444`},{value:`dermatology`,label:`Dermatology`,color:`#f59e0b`},{value:`pediatrics`,label:`Pediatrics`,color:`#10b981`}]},{field:`rating`,type:`number`,label:`Patient rating`,min:1,max:5,defaultValue:4,input:{editorType:`rating`,help:`1-5 average patient rating`}},{field:`calendarColor`,type:`text`,label:`Calendar color`,input:{editorType:`color`,help:`Color used on the schedule`}}]},gO={name:`patients`,label:`Patient`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`dob`,type:`date`,label:`Date of birth`,required:!0},{field:`bloodType`,type:`enum`,label:`Blood type`,options:[{value:`O+`,label:`O+`,color:`#ef4444`},{value:`O-`,label:`O-`,color:`#f97316`},{value:`A+`,label:`A+`,color:`#6366f1`},{value:`A-`,label:`A-`,color:`#8b5cf6`},{value:`B+`,label:`B+`,color:`#10b981`},{value:`B-`,label:`B-`,color:`#14b8a6`},{value:`AB+`,label:`AB+`,color:`#f59e0b`},{value:`AB-`,label:`AB-`,color:`#eab308`}]},{field:`insuranceNumber`,type:`text`,label:`Insurance #`,input:{editorType:`mask`,mask:`AAA-######`,placeholder:`AAA-000000`}},{field:`allergies`,type:`text`,label:`Allergies`,input:{editorType:`chips`,help:`Known allergies`}}]},_O={name:`appointments`,label:`Appointment`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`patientId`,type:`relation`,label:`Patient`,required:!0,relation:{entity:`patients`,foreignKey:`patientId`,labelField:`name`}},{field:`doctorId`,type:`relation`,label:`Doctor`,required:!0,relation:{entity:`doctors`,foreignKey:`doctorId`,labelField:`name`}},{field:`status`,type:`enum`,label:`Status`,defaultValue:`scheduled`,options:[{value:`scheduled`,label:`Scheduled`,color:`#6366f1`},{value:`completed`,label:`Completed`,color:`#10b981`},{value:`cancelled`,label:`Cancelled`,color:`#ef4444`},{value:`no_show`,label:`No show`,color:`#94a3b8`}]},{field:`scheduledAt`,type:`datetime`,label:`Scheduled at`,required:!0},{field:`durationMins`,type:`number`,label:`Duration (min)`,min:15,max:120,defaultValue:30,input:{editorType:`slider`,step:15,help:`Visit length in minutes`}},{field:`fee`,type:`number`,label:`Fee ($)`,min:0},{field:`total`,type:`number`,label:`Total w/ tax ($)`,readonly:!0,formula:`fee * 1.08`},{field:`satisfaction`,type:`number`,label:`Satisfaction`,min:1,max:5,input:{editorType:`rating`,help:`1-5 visit rating`}}]},vO=[...nD(_O,`status`),{field:`satisfaction`,op:`lt`,value:3,color:`#dc2626`},{field:`satisfaction`,op:`gte`,value:5,color:`#16a34a`,bold:!0},{field:`fee`,op:`gte`,value:250,bold:!0}],yO={doctors:[{id:`dr1`,name:`Dr. Sarah Mendes`,email:`sarah.mendes@healthclinic.com`,phone:`+1 (415) 555-0301`,specialty:`gp`,rating:5,calendarColor:`#6366f1`},{id:`dr2`,name:`Dr. James Whitfield`,email:`james.whitfield@healthclinic.com`,phone:`+1 (415) 555-0302`,specialty:`cardiology`,rating:4,calendarColor:`#ef4444`},{id:`dr3`,name:`Dr. Aisha Rahman`,email:`aisha.rahman@healthclinic.com`,phone:`+1 (650) 555-0303`,specialty:`dermatology`,rating:5,calendarColor:`#f59e0b`},{id:`dr4`,name:`Dr. Marcus Liang`,email:`marcus.liang@healthclinic.com`,phone:`+1 (212) 555-0304`,specialty:`pediatrics`,rating:4,calendarColor:`#10b981`},{id:`dr5`,name:`Dr. Elena Popova`,email:`elena.popova@healthclinic.com`,phone:`+1 (312) 555-0305`,specialty:`gp`,rating:3,calendarColor:`#3b82f6`},{id:`dr6`,name:`Dr. Thomas Becker`,email:`thomas.becker@healthclinic.com`,phone:`+1 (206) 555-0306`,specialty:`cardiology`,rating:4,calendarColor:`#8b5cf6`}],patients:[{id:`pt1`,name:`Oliver Grant`,email:`oliver.grant@example.com`,phone:`+1 (415) 555-0201`,dob:`1984-03-12`,bloodType:`O+`,insuranceNumber:`AET-100482`,allergies:[`Penicillin`]},{id:`pt2`,name:`Maya Fernandez`,email:`maya.fernandez@example.com`,phone:`+1 (415) 555-0202`,dob:`1991-11-04`,bloodType:`A-`,insuranceNumber:`BCX-204817`,allergies:[`Peanuts`,`Latex`]},{id:`pt3`,name:`Noah Kim`,email:`noah.kim@example.com`,phone:`+1 (650) 555-0203`,dob:`2015-06-22`,bloodType:`B+`,insuranceNumber:`CDN-330298`,allergies:[]},{id:`pt4`,name:`Sophia Rossi`,email:`sophia.rossi@example.com`,phone:`+1 (212) 555-0204`,dob:`1978-09-30`,bloodType:`AB+`,insuranceNumber:`DEF-419926`,allergies:[`Aspirin`]},{id:`pt5`,name:`Ethan Walsh`,email:`ethan.walsh@example.com`,phone:`+1 (312) 555-0205`,dob:`2001-01-18`,bloodType:`O-`,insuranceNumber:`EGH-528140`,allergies:[`Pollen`,`Dust`]},{id:`pt6`,name:`Amara Okafor`,email:`amara.okafor@example.com`,phone:`+1 (206) 555-0206`,dob:`1996-07-08`,bloodType:`A+`,insuranceNumber:`FIJ-610355`,allergies:[`Shellfish`]}],appointments:[{id:`ap1`,patientId:`pt1`,doctorId:`dr1`,status:`completed`,scheduledAt:`2026-06-02T09:30:00Z`,durationMins:30,fee:120,satisfaction:5},{id:`ap2`,patientId:`pt2`,doctorId:`dr2`,status:`scheduled`,scheduledAt:`2026-07-18T14:00:00Z`,durationMins:45,fee:260,satisfaction:4},{id:`ap3`,patientId:`pt3`,doctorId:`dr4`,status:`completed`,scheduledAt:`2026-06-14T10:15:00Z`,durationMins:20,fee:90,satisfaction:5},{id:`ap4`,patientId:`pt4`,doctorId:`dr3`,status:`cancelled`,scheduledAt:`2026-05-27T11:00:00Z`,durationMins:30,fee:150,satisfaction:3},{id:`ap5`,patientId:`pt5`,doctorId:`dr1`,status:`no_show`,scheduledAt:`2026-06-09T15:30:00Z`,durationMins:30,fee:120,satisfaction:2},{id:`ap6`,patientId:`pt6`,doctorId:`dr6`,status:`scheduled`,scheduledAt:`2026-07-21T08:45:00Z`,durationMins:60,fee:280,satisfaction:4},{id:`ap7`,patientId:`pt1`,doctorId:`dr5`,status:`completed`,scheduledAt:`2026-06-30T13:00:00Z`,durationMins:25,fee:110,satisfaction:5},{id:`ap8`,patientId:`pt4`,doctorId:`dr2`,status:`completed`,scheduledAt:`2026-07-03T16:20:00Z`,durationMins:45,fee:260,satisfaction:4}]},bO={id:`clinic`,name:`Clinic`,description:`Patients, doctors and appointments - visits, revenue and satisfaction dashboards (KPI sparkline + target, satisfaction gauge, status/specialty charts, a scheduled-at revenue trend, a pivot, and a tabbed breakdown), filtered status-pill grids with row actions, patient master/detail, and rich edit forms (phone, blood-type, insurance mask, allergy chips, duration slider, ratings).`,emoji:`🩺`,accent:`#ef4444`,build:()=>{let e=ZE(hO,yO.doctors,18),t=ZE(gO,yO.patients,60),n=ZE(_O,yO.appointments,90,{patientId:QE(t),doctorId:QE(e)});return lD({title:`HealthClinic`,brand:`HealthClinic`,accent:`#ef4444`,preset:`material`,footer:``,entities:[hO,gO,_O],seed:{doctors:e,patients:t,appointments:n},screens:[tD(_O,{id:`overview`,title:`Overview`,order:0},[{kpi:`Appointments`,reduce:`count`,span:1},{kpi:`Total revenue`,measure:`fee`,reduce:`sum`,format:`currency`,trendField:`scheduledAt`,trendReduce:`sum`,target:2e3,span:1},{kpi:`Avg fee`,measure:`fee`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg satisfaction`,measure:`satisfaction`,reduce:`avg`,min:0,max:5,span:1},{chart:`status`,measure:`fee`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`scheduledAt`,measure:`fee`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`status`],cols:[],measure:`fee`,aggregate:`sum`},span:3},{tabs:[{label:`Revenue by status`,tiles:[{chart:`status`,measure:`fee`,reduce:`sum`,type:`bar`}]},{label:`Visits by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{filter:[`status`],span:3},{grid:!0,format:nD(_O,`status`),summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(hO,{id:`specialties`,title:`Specialties`,order:1},[{kpi:`Doctors`,reduce:`count`,span:1},{kpi:`Avg rating`,measure:`rating`,reduce:`avg`,span:1},{kpi:`Top rating`,measure:`rating`,reduce:`max`,span:1},{gauge:`Avg patient rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`specialty`,reduce:`count`,type:`pie`,span:1},{chart:`specialty`,measure:`rating`,reduce:`avg`,type:`bar`,span:2},{filter:[`specialty`],span:3},{grid:!0,format:nD(hO,`specialty`),summaries:!0,span:3}]),oD(_O,{id:`schedule`,title:`Schedule`,order:2},{dateField:`scheduledAt`,titleField:`patientId`,colorField:`status`,filter:[`status`,`doctorId`]}),sD(gO,{id:`patient-360`,title:`Patient 360`,order:3},{titleField:`name`,subtitleField:`email`,statusField:`bloodType`,related:[{entity:`appointments`,foreignKey:`patientId`,label:`Visits`,titleField:`doctorId`,subtitleField:`fee`,dateField:`scheduledAt`,statusField:`status`}]}),cD(gO,`master-detail`,{id:`patients`,title:`Patients`,order:4,child:_O,foreignKey:`patientId`,linkScreen:`patient-360`}),iD(_O,{id:`appointments`,title:`Appointments`,order:5},void 0,{format:vO,summaries:!0,rowActions:[{kind:`edit`}]},[`status`]),iD(hO,{id:`doctors`,title:`Doctors`,order:6},void 0,{},[`specialty`])]})}},xO={name:`courses`,label:`Course`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`department`,type:`enum`,label:`Department`,required:!0,options:[{value:`cs`,label:`Computer Science`,color:`#6366f1`},{value:`math`,label:`Mathematics`,color:`#0ea5e9`},{value:`biology`,label:`Biology`,color:`#10b981`},{value:`arts`,label:`Arts`,color:`#ec4899`}]},{field:`credits`,type:`number`,label:`Credits`,required:!0,min:0,max:6,defaultValue:3,input:{help:`Credit hours awarded on completion`}},{field:`capacity`,type:`number`,label:`Capacity`,required:!0,min:1,input:{help:`Maximum seats per term`}},{field:`fee`,type:`number`,label:`Fee ($)`,min:0,defaultValue:0,input:{prefix:`$`,help:`Tuition charged per seat`}},{field:`topics`,type:`text`,label:`Topics`,input:{editorType:`chips`,help:`Syllabus themes, e.g. Workshop / Hands-on`}},{field:`rating`,type:`number`,label:`Rating`,min:0,max:5,defaultValue:0,input:{editorType:`rating`,help:`Average student rating`}},{field:`color`,type:`text`,label:`Catalog color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Swatch shown in the course catalog`}},{field:`revenue`,type:`number`,label:`Revenue ($)`,readonly:!0,formula:`fee * capacity`},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},SO={name:`students`,label:`Student`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,label:`Phone`,input:{editorType:`phone`,help:`Primary contact number`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Country of residence`}},{field:`sisId`,type:`text`,label:`SIS number`,input:{editorType:`mask`,mask:`SIS-######`,help:`Student information system id`}},{field:`gpa`,type:`number`,label:`GPA`,min:0,max:4,defaultValue:0,input:{step:.1,precision:2,help:`Grade point average, 0 to 4`}},{field:`year`,type:`enum`,label:`Year`,required:!0,options:[{value:`freshman`,label:`Freshman`,color:`#0ea5e9`},{value:`sophomore`,label:`Sophomore`,color:`#6366f1`},{value:`junior`,label:`Junior`,color:`#f59e0b`},{value:`senior`,label:`Senior`,color:`#10b981`}]},{field:`enrolledAt`,type:`datetime`,label:`Enrolled at`,input:{help:`First matriculation date`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},CO={name:`enrollments`,label:`Enrollment`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`studentId`,type:`relation`,label:`Student`,relation:{entity:`students`,foreignKey:`studentId`,labelField:`name`}},{field:`courseId`,type:`relation`,label:`Course`,relation:{entity:`courses`,foreignKey:`courseId`,labelField:`name`}},{field:`term`,type:`enum`,label:`Term`,required:!0,options:[{value:`fall2025`,label:`Fall 2025`,color:`#6366f1`},{value:`spring2026`,label:`Spring 2026`,color:`#10b981`},{value:`summer2026`,label:`Summer 2026`,color:`#f59e0b`}]},{field:`status`,type:`enum`,label:`Status`,required:!0,options:[{value:`enrolled`,label:`Enrolled`,color:`#6366f1`},{value:`completed`,label:`Completed`,color:`#10b981`},{value:`dropped`,label:`Dropped`,color:`#ef4444`}]},{field:`grade`,type:`number`,label:`Grade`,min:0,max:100,defaultValue:0,input:{help:`Final score, 0 to 100`}},{field:`attendance`,type:`number`,label:`Attendance (%)`,min:0,max:100,defaultValue:100,input:{editorType:`slider`,suffix:`%`,help:`Share of sessions attended`}},{field:`finalScore`,type:`number`,label:`Final score`,readonly:!0,formula:`grade * attendance / 100`},{field:`enrolledOn`,type:`date`,label:`Enrolled on`}]},wO=[...nD(CO,`status`),...nD(CO,`term`),{field:`attendance`,op:`lt`,value:50,color:`#dc2626`},{field:`attendance`,op:`gte`,value:90,color:`#16a34a`,bold:!0},{field:`grade`,op:`gte`,value:90,bold:!0}],TO=[...nD(xO,`department`),{field:`rating`,op:`gte`,value:5,color:`#16a34a`,bold:!0},{field:`capacity`,op:`lt`,value:40,color:`#dc2626`}],EO={courses:[{id:`cr1`,name:`Intro to Algorithms`,department:`cs`,credits:4,capacity:120,fee:1200,topics:[`Beginner`,`Hands-on`],rating:5,color:`#6366f1`,active:!0},{id:`cr2`,name:`Linear Algebra`,department:`math`,credits:3,capacity:90,fee:950,topics:[`Advanced`],rating:4,color:`#0ea5e9`,active:!0},{id:`cr3`,name:`Molecular Biology`,department:`biology`,credits:4,capacity:60,fee:1400,topics:[`Workshop`,`Live`],rating:4,color:`#10b981`,active:!0},{id:`cr4`,name:`Renaissance Painting`,department:`arts`,credits:2,capacity:40,fee:700,topics:[`Beginner`],rating:3,color:`#ec4899`,active:!0},{id:`cr5`,name:`Data Structures`,department:`cs`,credits:4,capacity:110,fee:1250,topics:[`Advanced`,`Hands-on`],rating:5,color:`#6366f1`,active:!0},{id:`cr6`,name:`Calculus III`,department:`math`,credits:3,capacity:85,fee:980,topics:[`Advanced`],rating:4,color:`#0ea5e9`,active:!0},{id:`cr7`,name:`Genetics`,department:`biology`,credits:3,capacity:70,fee:1100,topics:[`Workshop`],rating:4,color:`#10b981`,active:!0},{id:`cr8`,name:`Sculpture Studio`,department:`arts`,credits:2,capacity:30,fee:650,topics:[`Hands-on`,`Beginner`],rating:3,color:`#ec4899`,active:!1}],students:[{id:`st1`,name:`Liam Carter`,email:`liam.carter@campus.edu`,phone:`+1 (415) 555-0101`,country:`United States`,sisId:`SIS-100234`,gpa:3.6,year:`freshman`,enrolledAt:`2025-09-01T09:00:00Z`,active:!0},{id:`st2`,name:`Emma Nguyen`,email:`emma.nguyen@campus.edu`,phone:`+1 (416) 555-0102`,country:`Canada`,sisId:`SIS-100235`,gpa:3.9,year:`sophomore`,enrolledAt:`2024-09-02T09:00:00Z`,active:!0},{id:`st3`,name:`Noah Silva`,email:`noah.silva@campus.edu`,phone:`+44 20 7946 0103`,country:`United Kingdom`,sisId:`SIS-100236`,gpa:3.4,year:`junior`,enrolledAt:`2023-09-01T09:00:00Z`,active:!0},{id:`st4`,name:`Ava Johansson`,email:`ava.johansson@campus.edu`,phone:`+46 8 555 0104`,country:`Sweden`,sisId:`SIS-100237`,gpa:3.8,year:`senior`,enrolledAt:`2022-09-05T09:00:00Z`,active:!0},{id:`st5`,name:`Mateo Rossi`,email:`mateo.rossi@campus.edu`,phone:`+39 06 5550105`,country:`Italy`,sisId:`SIS-100238`,gpa:3.1,year:`sophomore`,enrolledAt:`2024-09-03T09:00:00Z`,active:!0},{id:`st6`,name:`Isla Murphy`,email:`isla.murphy@campus.edu`,phone:`+353 1 555 0106`,country:`Ireland`,sisId:`SIS-100239`,gpa:3.7,year:`freshman`,enrolledAt:`2025-09-02T09:00:00Z`,active:!0},{id:`st7`,name:`Kenji Watanabe`,email:`kenji.watanabe@campus.edu`,phone:`+81 3 5550107`,country:`Japan`,sisId:`SIS-100240`,gpa:3.5,year:`junior`,enrolledAt:`2023-09-04T09:00:00Z`,active:!0},{id:`st8`,name:`Sofia Garcia`,email:`sofia.garcia@campus.edu`,phone:`+34 91 555 0108`,country:`Spain`,sisId:`SIS-100241`,gpa:2.9,year:`senior`,enrolledAt:`2022-09-06T09:00:00Z`,active:!1}],enrollments:[{id:`en1`,studentId:`st1`,courseId:`cr1`,term:`fall2025`,status:`enrolled`,grade:0,attendance:92,enrolledOn:`2025-09-01`},{id:`en2`,studentId:`st2`,courseId:`cr2`,term:`spring2026`,status:`completed`,grade:88,attendance:96,enrolledOn:`2026-01-15`},{id:`en3`,studentId:`st3`,courseId:`cr3`,term:`fall2025`,status:`completed`,grade:92,attendance:90,enrolledOn:`2025-09-03`},{id:`en4`,studentId:`st4`,courseId:`cr4`,term:`fall2025`,status:`dropped`,grade:0,attendance:40,enrolledOn:`2025-09-04`},{id:`en5`,studentId:`st5`,courseId:`cr1`,term:`spring2026`,status:`enrolled`,grade:0,attendance:85,enrolledOn:`2026-01-16`},{id:`en6`,studentId:`st6`,courseId:`cr5`,term:`fall2025`,status:`completed`,grade:79,attendance:88,enrolledOn:`2025-09-02`},{id:`en7`,studentId:`st3`,courseId:`cr6`,term:`spring2026`,status:`completed`,grade:84,attendance:91,enrolledOn:`2026-01-14`},{id:`en8`,studentId:`st2`,courseId:`cr5`,term:`summer2026`,status:`enrolled`,grade:0,attendance:78,enrolledOn:`2026-05-20`},{id:`en9`,studentId:`st7`,courseId:`cr7`,term:`fall2025`,status:`completed`,grade:81,attendance:87,enrolledOn:`2025-09-05`},{id:`en10`,studentId:`st8`,courseId:`cr8`,term:`spring2026`,status:`dropped`,grade:0,attendance:35,enrolledOn:`2026-01-18`}]},DO={id:`school`,name:`School`,description:`Students, courses and enrollments - enrollment + catalog dashboards (attendance sparkline + gauge, term/status breakdowns, a term x status pivot, tabbed views, faceted filters), status-pill enrollment grids with attendance/grade thresholds and row actions, courses master/detail, and rich edit forms (topic chips, course rating, catalog color, phone, country, SIS mask, GPA, enrollment datetime, attendance slider).`,emoji:`🎓`,accent:`#6366f1`,build:()=>{let e=ZE(xO,EO.courses,12),t=ZE(SO,EO.students,22),n=ZE(CO,EO.enrollments,34,{studentId:QE(t),courseId:QE(e)});return lD({title:`Campus`,brand:`Campus`,accent:`#6366f1`,preset:`github`,navStyle:`top-nav`,footer:``,entities:[xO,SO,CO],seed:{courses:e,students:t,enrollments:n},screens:[tD(CO,{id:`enrollment`,title:`Enrollment`,order:0},[{kpi:`Enrollments`,reduce:`count`,span:1},{kpi:`Avg grade`,measure:`grade`,reduce:`avg`,span:1},{kpi:`Avg attendance`,measure:`attendance`,reduce:`avg`,format:`percent`,trendField:`enrolledOn`,trendReduce:`avg`,span:1},{gauge:`Avg attendance`,measure:`attendance`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`term`,reduce:`count`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`enrolledOn`,measure:`grade`,reduce:`avg`,type:`area`,span:3},{tabs:[{label:`By term`,tiles:[{chart:`term`,reduce:`count`,type:`bar`}]},{label:`By status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{pivot:{rows:[`term`],cols:[`status`],measure:`grade`,aggregate:`avg`},span:3},{filter:[`term`,`status`],span:3},{grid:!0,format:wO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(xO,{id:`catalog`,title:`Catalog`,order:1},[{kpi:`Courses`,reduce:`count`,span:1},{kpi:`Total capacity`,measure:`capacity`,reduce:`sum`,target:1e3,span:1},{kpi:`Avg credits`,measure:`credits`,reduce:`avg`,span:1},{gauge:`Avg rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`department`,measure:`capacity`,reduce:`sum`,type:`bar`,span:2},{chart:`department`,reduce:`count`,type:`pie`,span:1},{chart:`department`,measure:`fee`,reduce:`avg`,type:`bar`,span:2},{filter:[`department`,`active`],span:1},{grid:!0,format:TO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(SO,{id:`student-360`,title:`Student 360`,order:2},{titleField:`name`,subtitleField:`email`,statusField:`year`,metricFields:[`gpa`],related:[{entity:`enrollments`,foreignKey:`studentId`,label:`Enrollments`,titleField:`courseId`,subtitleField:`grade`,dateField:`enrolledOn`,statusField:`status`}]}),cD(xO,`master-detail`,{id:`courses`,title:`Courses`,order:3,child:CO,foreignKey:`courseId`}),iD(SO,{id:`students`,title:`Students`,order:4},void 0,{rowLink:{screen:`student-360`,sourceField:`id`,targetField:`id`}},[`year`,`country`,`active`]),iD(CO,{id:`enrollments`,title:`Enrollments`,order:5},void 0,{format:wO,summaries:!0,rowActions:[{kind:`edit`}]},[`term`,`status`,`studentId`,`courseId`])]})}},OO={name:`events`,label:`Event`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:3,input:{help:`Public event title`}},{field:`category`,type:`enum`,label:`Category`,required:!0,defaultValue:`conference`,options:[{value:`conference`,label:`Conference`,color:`#6366f1`},{value:`workshop`,label:`Workshop`,color:`#10b981`},{value:`webinar`,label:`Webinar`,color:`#0ea5e9`},{value:`meetup`,label:`Meetup`,color:`#f59e0b`}]},{field:`status`,type:`enum`,label:`Status`,required:!0,defaultValue:`draft`,options:[{value:`draft`,label:`Draft`,color:`#94a3b8`},{value:`published`,label:`Published`,color:`#6366f1`},{value:`sold_out`,label:`Sold out`,color:`#ef4444`},{value:`done`,label:`Done`,color:`#10b981`}]},{field:`capacity`,type:`number`,label:`Capacity`,required:!0,min:1,max:5e3,defaultValue:100,input:{help:`Maximum seats available`}},{field:`price`,type:`number`,label:`Ticket price ($)`,min:0,defaultValue:0,input:{prefix:`$`,help:`Standard ticket price`}},{field:`revenue`,type:`number`,label:`Max revenue ($)`,readonly:!0,formula:`price * capacity`},{field:`startAt`,type:`datetime`,label:`Starts at`,required:!0,input:{editorType:`datetime`,help:`Local start date and time`}},{field:`topics`,type:`text`,label:`Topics`,input:{editorType:`chips`,help:`Session themes / tracks`}},{field:`color`,type:`text`,label:`Brand color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Accent used on the event page`}},{field:`website`,type:`text`,label:`Website`,format:`url`,input:{placeholder:`https://…`,help:`Landing page URL`}}]},kO={name:`attendees`,label:`Attendee`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Used for the confirmation email`}},{field:`phone`,type:`text`,label:`Phone`,input:{editorType:`phone`,help:`Mobile for event reminders`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Billing country`}},{field:`company`,type:`text`,label:`Company`},{field:`interests`,type:`text`,label:`Interests`,input:{editorType:`chips`,help:`Topics this attendee follows`}},{field:`vip`,type:`boolean`,label:`VIP`,defaultValue:!1}]},AO={name:`registrations`,label:`Registration`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`eventId`,type:`relation`,label:`Event`,relation:{entity:`events`,foreignKey:`eventId`,labelField:`name`}},{field:`attendeeId`,type:`relation`,label:`Attendee`,relation:{entity:`attendees`,foreignKey:`attendeeId`,labelField:`name`}},{field:`ticket`,type:`enum`,label:`Ticket`,required:!0,defaultValue:`standard`,options:[{value:`standard`,label:`Standard`,color:`#6366f1`},{value:`vip`,label:`VIP`,color:`#f59e0b`},{value:`student`,label:`Student`,color:`#10b981`}]},{field:`amount`,type:`number`,label:`Amount ($)`,min:0,defaultValue:0,input:{prefix:`$`,help:`Charged after any discount`}},{field:`discount`,type:`number`,label:`Discount (%)`,min:0,max:100,defaultValue:0,input:{editorType:`slider`,help:`Promo discount applied`}},{field:`status`,type:`enum`,label:`Status`,required:!0,defaultValue:`confirmed`,options:[{value:`confirmed`,label:`Confirmed`,color:`#10b981`},{value:`cancelled`,label:`Cancelled`,color:`#ef4444`},{value:`waitlist`,label:`Waitlist`,color:`#94a3b8`}]},{field:`registeredAt`,type:`datetime`,label:`Registered at`,input:{editorType:`datetime`,help:`When the ticket was booked`}},{field:`rating`,type:`number`,label:`Feedback`,min:1,max:5,input:{editorType:`rating`,help:`Post-event satisfaction (1-5)`}}]},jO=[...nD(AO,`status`),...nD(AO,`ticket`),{field:`amount`,op:`gte`,value:300,bold:!0},{field:`rating`,op:`lte`,value:2,color:`#dc2626`},{field:`rating`,op:`gte`,value:5,color:`#16a34a`,bold:!0}],MO=[...nD(OO,`status`),...nD(OO,`category`),{field:`capacity`,op:`gte`,value:500,bold:!0},{field:`price`,op:`eq`,value:0,color:`#94a3b8`},{field:`price`,op:`gte`,value:400,color:`#16a34a`,bold:!0}],NO={events:[{id:`ev1`,name:`Svelte Summit 2026`,category:`conference`,status:`published`,capacity:800,price:490,startAt:`2026-09-12T09:00:00.000Z`,topics:[`Svelte`,`Frontend`,`Performance`],color:`#6366f1`,website:`https://sveltesummit.com`},{id:`ev2`,name:`Grid Performance Workshop`,category:`workshop`,status:`sold_out`,capacity:50,price:150,startAt:`2026-07-28T13:30:00.000Z`,topics:[`Grids`,`Virtualization`],color:`#10b981`,website:`https://svgrid.com/workshop`},{id:`ev3`,name:`Data Apps Webinar`,category:`webinar`,status:`done`,capacity:500,price:0,startAt:`2026-05-19T16:00:00.000Z`,topics:[`Studio`,`No-code`],color:`#0ea5e9`,website:`https://svgrid.com/webinar`},{id:`ev4`,name:`Frontend Meetup Berlin`,category:`meetup`,status:`published`,capacity:120,price:25,startAt:`2026-08-06T18:00:00.000Z`,topics:[`Community`,`Svelte`],color:`#f59e0b`,website:`https://frontend.berlin`},{id:`ev5`,name:`AI in Tooling Conference`,category:`conference`,status:`draft`,capacity:600,price:420,startAt:`2026-11-03T09:30:00.000Z`,topics:[`AI`,`DevTools`,`MCP`],color:`#8b5cf6`,website:`https://aitooling.dev`},{id:`ev6`,name:`TypeScript Deep Dive`,category:`workshop`,status:`published`,capacity:60,price:320,startAt:`2026-10-15T10:00:00.000Z`,topics:[`TypeScript`,`Types`],color:`#3b82f6`,website:`https://tsdeepdive.io`}],attendees:[{id:`at1`,name:`Clara Voss`,email:`clara.voss@nimbus.io`,phone:`+1 (415) 555-0110`,country:`United States`,company:`Nimbus`,interests:[`Svelte`,`Performance`],vip:!0},{id:`at2`,name:`Diego Martins`,email:`diego.martins@lumen.dev`,phone:`+55 11 95555-0111`,country:`Brazil`,company:`Lumen`,interests:[`Frontend`],vip:!1},{id:`at3`,name:`Priya Anand`,email:`priya.anand@quanta.co`,phone:`+91 80 5550 0112`,country:`India`,company:`Quanta`,interests:[`AI`,`DevTools`],vip:!1},{id:`at4`,name:`Felix Braun`,email:`felix.braun@orbit.tech`,phone:`+49 30 5550113`,country:`Germany`,company:`Orbit`,interests:[`TypeScript`,`Grids`],vip:!0},{id:`at5`,name:`Hana Sato`,email:`hana.sato@meridian.jp`,phone:`+81 3 5550 0114`,country:`Japan`,company:`Meridian`,interests:[`Community`],vip:!1},{id:`at6`,name:`Lucas Moreau`,email:`lucas.moreau@volta.fr`,phone:`+33 1 55 55 0115`,country:`France`,company:`Volta`,interests:[`Studio`,`No-code`],vip:!1}],registrations:[{id:`rg1`,eventId:`ev1`,attendeeId:`at1`,ticket:`vip`,amount:490,discount:0,status:`confirmed`,registeredAt:`2026-06-01T10:15:00.000Z`,rating:5},{id:`rg2`,eventId:`ev1`,attendeeId:`at2`,ticket:`standard`,amount:190,discount:0,status:`confirmed`,registeredAt:`2026-06-02T14:40:00.000Z`,rating:4},{id:`rg3`,eventId:`ev2`,attendeeId:`at3`,ticket:`standard`,amount:150,discount:0,status:`waitlist`,registeredAt:`2026-06-10T09:05:00.000Z`,rating:3},{id:`rg4`,eventId:`ev3`,attendeeId:`at4`,ticket:`student`,amount:0,discount:100,status:`confirmed`,registeredAt:`2026-04-28T11:20:00.000Z`,rating:5},{id:`rg5`,eventId:`ev4`,attendeeId:`at5`,ticket:`standard`,amount:25,discount:0,status:`cancelled`,registeredAt:`2026-07-01T17:30:00.000Z`,rating:2},{id:`rg6`,eventId:`ev6`,attendeeId:`at6`,ticket:`vip`,amount:320,discount:0,status:`confirmed`,registeredAt:`2026-07-03T08:45:00.000Z`,rating:4},{id:`rg7`,eventId:`ev1`,attendeeId:`at5`,ticket:`student`,amount:90,discount:50,status:`confirmed`,registeredAt:`2026-06-05T20:10:00.000Z`,rating:5},{id:`rg8`,eventId:`ev4`,attendeeId:`at2`,ticket:`standard`,amount:25,discount:0,status:`confirmed`,registeredAt:`2026-07-08T12:00:00.000Z`,rating:4}]},PO={id:`events`,name:`Events`,description:`Events, attendees and registrations - sales + events dashboards (KPI sparklines, revenue target, feedback + capacity gauges, amount-over-time area trend, category x status pivot, tabs), filtered status-pill grids with row actions, master/detail, and rich edit forms (datetime, topic chips, brand color, phone, country, feedback rating, discount slider) with a computed max-revenue field.`,emoji:`🎟️`,accent:`#ec4899`,build:()=>{let e=ZE(OO,NO.events,24),t=ZE(kO,NO.attendees,70),n=ZE(AO,NO.registrations,90,{eventId:QE(e),attendeeId:QE(t)});return lD({title:`Evently`,brand:`Evently`,accent:`#ec4899`,preset:`catppuccin`,mode:`dark`,navStyle:`top-nav`,footer:``,entities:[OO,kO,AO],seed:{events:e,attendees:t,registrations:n},screens:[tD(AO,{id:`overview`,title:`Overview`,order:0},[{kpi:`Ticket revenue`,measure:`amount`,reduce:`sum`,format:`currency`,trendField:`registeredAt`,trendReduce:`sum`,target:5e4,span:1},{kpi:`Registrations`,reduce:`count`,span:1},{kpi:`Avg ticket`,measure:`amount`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg feedback`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`ticket`,measure:`amount`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`registeredAt`,measure:`amount`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`ticket`],cols:[`status`],measure:`amount`,aggregate:`sum`},span:3},{tabs:[{label:`Revenue by ticket`,tiles:[{chart:`ticket`,measure:`amount`,reduce:`sum`,type:`bar`}]},{label:`Registrations by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:jO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(OO,{id:`catalog`,title:`Catalog`,order:1},[{kpi:`Events`,reduce:`count`,span:1},{kpi:`Total capacity`,measure:`capacity`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,trendField:`startAt`,trendReduce:`avg`,span:1},{gauge:`Avg capacity`,measure:`capacity`,reduce:`avg`,min:0,max:1e3,span:1},{chart:`category`,measure:`capacity`,reduce:`sum`,type:`bar`,span:2},{chart:`category`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`category`],cols:[`status`],measure:`price`,aggregate:`avg`},span:3},{tabs:[{label:`Capacity by category`,tiles:[{chart:`category`,measure:`capacity`,reduce:`sum`,type:`bar`}]},{label:`Price by category`,tiles:[{chart:`category`,measure:`price`,reduce:`avg`,type:`bar`}]}],span:3},{filter:[`category`,`status`],span:3},{grid:!0,format:MO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),oD(OO,{id:`schedule`,title:`Schedule`,order:2},{dateField:`startAt`,titleField:`name`,colorField:`category`,filter:[`category`,`status`]}),sD(OO,{id:`event-detail`,title:`Event detail`,order:3},{titleField:`name`,statusField:`status`,metricFields:[`capacity`,`price`],related:[{entity:`registrations`,foreignKey:`eventId`,label:`Registrations`,titleField:`attendeeId`,subtitleField:`amount`,dateField:`registeredAt`,statusField:`status`}]}),cD(OO,`master-detail`,{id:`events`,title:`Events`,order:4,child:AO,foreignKey:`eventId`,linkScreen:`event-detail`}),iD(AO,{id:`registrations`,title:`Registrations`,order:5},void 0,{format:jO,summaries:!0,rowActions:[{kind:`edit`}]},[`ticket`,`status`]),iD(kO,{id:`attendees`,title:`Attendees`,order:6},void 0,{},[`country`,`company`,`vip`])]})}},FO={name:`menuItems`,label:`Menu item`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`category`,type:`enum`,required:!0,options:[{value:`starter`,label:`Starter`,color:`#6366f1`},{value:`main`,label:`Main`,color:`#10b981`},{value:`dessert`,label:`Dessert`,color:`#ec4899`},{value:`drink`,label:`Drink`,color:`#0ea5e9`}]},{field:`price`,type:`number`,label:`Price ($)`,required:!0,min:0,input:{prefix:`$`}},{field:`dietaryTags`,type:`text`,label:`Dietary tags`,input:{editorType:`chips`,help:`Dietary labels, e.g. Vegan / Gluten-free`}},{field:`spiceLevel`,type:`number`,label:`Spice level`,min:0,max:5,defaultValue:0,input:{editorType:`slider`,help:`0 mild to 5 fiery`}},{field:`prepMinutes`,type:`number`,label:`Prep (min)`,min:0},{field:`rating`,type:`number`,label:`Rating`,min:0,max:5,input:{editorType:`rating`}},{field:`available`,type:`boolean`,label:`Available`,defaultValue:!0}]},IO={name:`tables`,label:`Table`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`seats`,type:`number`,label:`Seats`,required:!0,min:1,max:20},{field:`section`,type:`enum`,required:!0,options:[{value:`indoor`,label:`Indoor`,color:`#6366f1`},{value:`patio`,label:`Patio`,color:`#10b981`},{value:`bar`,label:`Bar`,color:`#f59e0b`},{value:`private`,label:`Private`,color:`#a855f7`}]},{field:`color`,type:`text`,label:`Map color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Swatch used on the floor plan`}}]},LO={name:`orders`,label:`Order`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`tableId`,type:`relation`,label:`Table`,relation:{entity:`tables`,foreignKey:`tableId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,options:[{value:`open`,label:`Open`,color:`#0ea5e9`},{value:`served`,label:`Served`,color:`#f59e0b`},{value:`paid`,label:`Paid`,color:`#10b981`},{value:`void`,label:`Void`,color:`#ef4444`}]},{field:`total`,type:`number`,label:`Total ($)`,required:!0,min:0,input:{prefix:`$`}},{field:`partySize`,type:`number`,label:`Party size`,min:1,max:20},{field:`tipPercent`,type:`number`,label:`Tip (%)`,min:0,max:30,defaultValue:15,input:{editorType:`slider`,help:`Gratuity applied to the total`}},{field:`grandTotal`,type:`number`,label:`Grand total ($)`,readonly:!0,formula:`total + total * tipPercent / 100`},{field:`customerPhone`,type:`text`,label:`Customer phone`,input:{editorType:`phone`}},{field:`reservationTime`,type:`datetime`,label:`Reservation`},{field:`placedAt`,type:`date`,label:`Placed at`}]},RO={menuItems:[{id:`mi1`,name:`Bruschetta`,category:`starter`,price:9,dietaryTags:[`Vegetarian`],spiceLevel:0,prepMinutes:8,rating:4,available:!0},{id:`mi2`,name:`Caesar Salad`,category:`starter`,price:11,dietaryTags:[`Vegetarian`,`Gluten-free`],spiceLevel:0,prepMinutes:6,rating:4,available:!0},{id:`mi3`,name:`Margherita Pizza`,category:`main`,price:16,dietaryTags:[`Vegetarian`],spiceLevel:1,prepMinutes:14,rating:5,available:!0},{id:`mi4`,name:`Ribeye Steak`,category:`main`,price:32,dietaryTags:[`Gluten-free`,`High-protein`],spiceLevel:2,prepMinutes:22,rating:5,available:!0},{id:`mi5`,name:`Spicy Arrabbiata`,category:`main`,price:18,dietaryTags:[`Vegan`,`Spicy`],spiceLevel:4,prepMinutes:16,rating:4,available:!0},{id:`mi6`,name:`Tiramisu`,category:`dessert`,price:8,dietaryTags:[`Vegetarian`],spiceLevel:0,prepMinutes:5,rating:5,available:!0},{id:`mi7`,name:`Espresso`,category:`drink`,price:4,dietaryTags:[`Vegan`],spiceLevel:0,prepMinutes:3,rating:4,available:!0},{id:`mi8`,name:`House Red`,category:`drink`,price:12,dietaryTags:[`Vegan`],spiceLevel:0,prepMinutes:2,rating:3,available:!1}],tables:[{id:`tb1`,name:`Table 1`,seats:2,section:`indoor`,color:`#6366f1`},{id:`tb2`,name:`Table 2`,seats:4,section:`indoor`,color:`#6366f1`},{id:`tb3`,name:`Table 5`,seats:6,section:`patio`,color:`#10b981`},{id:`tb4`,name:`Table 8`,seats:4,section:`patio`,color:`#10b981`},{id:`tb5`,name:`Bar 1`,seats:1,section:`bar`,color:`#f59e0b`},{id:`tb6`,name:`Bar 2`,seats:1,section:`bar`,color:`#f59e0b`},{id:`tb7`,name:`Salon`,seats:10,section:`private`,color:`#a855f7`}],orders:[{id:`or1`,tableId:`tb1`,status:`paid`,total:54,partySize:2,tipPercent:18,customerPhone:`+1 (415) 555-0142`,reservationTime:`2026-07-10T19:30:00`,placedAt:`2026-07-10`},{id:`or2`,tableId:`tb2`,status:`served`,total:88,partySize:4,tipPercent:15,customerPhone:`+1 (415) 555-0187`,reservationTime:`2026-07-11T20:00:00`,placedAt:`2026-07-11`},{id:`or3`,tableId:`tb3`,status:`open`,total:132,partySize:6,tipPercent:20,customerPhone:`+1 (628) 555-0110`,reservationTime:`2026-07-12T18:45:00`,placedAt:`2026-07-12`},{id:`or4`,tableId:`tb4`,status:`paid`,total:76,partySize:4,tipPercent:15,customerPhone:`+1 (415) 555-0163`,reservationTime:`2026-07-12T21:15:00`,placedAt:`2026-07-12`},{id:`or5`,tableId:`tb5`,status:`void`,total:18,partySize:1,tipPercent:0,customerPhone:`+1 (510) 555-0199`,reservationTime:`2026-07-13T17:30:00`,placedAt:`2026-07-13`},{id:`or6`,tableId:`tb1`,status:`open`,total:42,partySize:2,tipPercent:18,customerPhone:`+1 (415) 555-0125`,reservationTime:`2026-07-14T19:00:00`,placedAt:`2026-07-14`},{id:`or7`,tableId:`tb7`,status:`served`,total:265,partySize:10,tipPercent:22,customerPhone:`+1 (628) 555-0148`,reservationTime:`2026-07-14T20:30:00`,placedAt:`2026-07-14`}]},zO=[...nD(LO,`status`),{field:`total`,op:`gte`,value:150,bold:!0},{field:`total`,op:`lt`,value:30,color:`#dc2626`},{field:`tipPercent`,op:`gte`,value:20,color:`#16a34a`,bold:!0}],BO=[...nD(FO,`category`),{field:`spiceLevel`,op:`gte`,value:4,color:`#dc2626`,bold:!0},{field:`rating`,op:`gte`,value:5,color:`#16a34a`,bold:!0},{field:`price`,op:`gte`,value:25,bold:!0}],VO={id:`restaurant`,name:`Restaurant`,description:`Menu, tables and orders - sales + menu dashboards (KPI sparkline + target, sales-over-time area trend, order-status pie, day x status pivot, rating gauge, tabs), filtered status-pill grids with row actions, tables/orders master-detail, and rich edit forms (chips, spice slider, rating, color swatch, phone, reservation datetime).`,emoji:`🍽`,accent:`#f97316`,build:()=>{let e=ZE(FO,RO.menuItems,40),t=ZE(IO,RO.tables,16),n=ZE(LO,RO.orders,90,{tableId:QE(t)});return lD({title:`Bistro`,brand:`Bistro`,accent:`#f97316`,preset:`bootstrap`,navStyle:`top-nav`,footer:``,entities:[FO,IO,LO],seed:{menuItems:e,tables:t,orders:n},screens:[tD(LO,{id:`overview`,title:`Overview`,order:0},[{kpi:`Total sales`,measure:`total`,reduce:`sum`,format:`currency`,trendField:`placedAt`,trendReduce:`sum`,target:2e3,span:1},{kpi:`Orders`,reduce:`count`,span:1},{kpi:`Avg ticket`,measure:`total`,reduce:`avg`,format:`currency`,span:1},{gauge:`Sales vs $3k target`,measure:`total`,reduce:`sum`,min:0,max:3e3,unit:`$`,span:1},{chart:`placedAt`,measure:`total`,reduce:`sum`,type:`area`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`status`,measure:`total`,reduce:`sum`,type:`bar`,span:3},{pivot:{rows:[`placedAt`],cols:[`status`],measure:`total`,aggregate:`sum`},span:3},{tabs:[{label:`Sales by status`,tiles:[{chart:`status`,measure:`total`,reduce:`sum`,type:`bar`}]},{label:`Orders by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:zO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(FO,{id:`menu`,title:`Menu`,order:1},[{kpi:`Menu items`,reduce:`count`,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{kpi:`Avg spice`,measure:`spiceLevel`,reduce:`avg`,span:1},{gauge:`Avg rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`category`,measure:`price`,reduce:`avg`,type:`bar`,span:2},{chart:`category`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`category`],cols:[`available`],measure:`price`,aggregate:`avg`},span:3},{tabs:[{label:`Price by category`,tiles:[{chart:`category`,measure:`price`,reduce:`avg`,type:`bar`}]},{label:`Rating by category`,tiles:[{chart:`category`,measure:`rating`,reduce:`avg`,type:`bar`}]}],span:3},{filter:[`category`,`available`],span:3},{grid:!0,format:BO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),oD(LO,{id:`reservations`,title:`Reservations`,order:2},{dateField:`reservationTime`,titleField:`tableId`,colorField:`status`,filter:[`status`,`tableId`]}),sD(IO,{id:`table-detail`,title:`Table detail`,order:3},{titleField:`name`,statusField:`section`,metricFields:[`seats`],related:[{entity:`orders`,foreignKey:`tableId`,label:`Orders`,titleField:`customerPhone`,subtitleField:`total`,dateField:`reservationTime`,statusField:`status`}]}),cD(IO,`master-detail`,{id:`tables`,title:`Tables`,order:4,child:LO,foreignKey:`tableId`,linkScreen:`table-detail`}),iD(LO,{id:`orders`,title:`Orders`,order:5},void 0,{format:zO,summaries:!0,rowActions:[{kind:`edit`}]},[`tableId`,`status`]),iD(FO,{id:`menuItems`,title:`Menu items`,order:6},void 0,{format:BO,summaries:!0,rowActions:[{kind:`edit`}]},[`category`,`dietaryTags`,`available`])]})}},HO={name:`agents`,label:`Agent`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`license`,type:`text`,label:`License #`,input:{editorType:`mask`,mask:`AA-######`,help:`State license number`}},{field:`rating`,type:`number`,label:`Rating`,min:1,max:5,defaultValue:4,input:{editorType:`rating`,help:`1-5 client satisfaction`}},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},UO={name:`properties`,label:`Property`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,required:!0,minLength:3},{field:`type`,type:`enum`,required:!0,options:[{value:`house`,label:`House`,color:`#6366f1`},{value:`condo`,label:`Condo`,color:`#0ea5e9`},{value:`land`,label:`Land`,color:`#f59e0b`},{value:`commercial`,label:`Commercial`,color:`#ec4899`}]},{field:`status`,type:`enum`,required:!0,options:[{value:`available`,label:`Available`,color:`#10b981`},{value:`pending`,label:`Pending`,color:`#f59e0b`},{value:`sold`,label:`Sold`,color:`#94a3b8`}]},{field:`price`,type:`number`,label:`Price ($)`,min:0},{field:`beds`,type:`number`,label:`Beds`,min:0},{field:`baths`,type:`number`,label:`Baths`,min:0},{field:`area`,type:`number`,label:`Area (sqft)`,min:0},{field:`pricePerSqft`,type:`number`,label:`Price / sqft ($)`,readonly:!0,formula:`price / area`},{field:`yearBuilt`,type:`number`,label:`Year built`,min:1800,max:2100},{field:`zip`,type:`text`,label:`ZIP`,input:{editorType:`mask`,mask:`#####`}},{field:`city`,type:`text`,label:`City`},{field:`amenities`,type:`text`,label:`Amenities`,input:{editorType:`chips`,help:`Pool, Garage, ...`}},{field:`listingUrl`,type:`text`,label:`Listing`,format:`url`,input:{placeholder:`https://…`}}]},WO={name:`leads`,label:`Lead`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,label:`Lead name`,required:!0,minLength:2},{field:`phone`,type:`text`,input:{editorType:`phone`}},{field:`propertyId`,type:`relation`,label:`Property`,relation:{entity:`properties`,foreignKey:`propertyId`,labelField:`title`}},{field:`agentId`,type:`relation`,label:`Agent`,relation:{entity:`agents`,foreignKey:`agentId`,labelField:`name`}},{field:`stage`,type:`enum`,required:!0,options:[{value:`new`,label:`New`,color:`#94a3b8`},{value:`touring`,label:`Touring`,color:`#0ea5e9`},{value:`offer`,label:`Offer`,color:`#f59e0b`},{value:`closed`,label:`Closed`,color:`#10b981`},{value:`lost`,label:`Lost`,color:`#ef4444`}]},{field:`budget`,type:`number`,label:`Budget ($)`,min:0},{field:`score`,type:`number`,label:`Lead score`,min:0,max:100,defaultValue:50,input:{editorType:`slider`,help:`Fit / intent score`}},{field:`interests`,type:`text`,label:`Interests`,input:{editorType:`chips`,help:`Neighborhoods / features`}}]},GO=[...nD(UO,`type`),...nD(UO,`status`),{field:`price`,op:`lt`,value:3e5,color:`#dc2626`},{field:`price`,op:`gte`,value:1e6,color:`#16a34a`,bold:!0}],KO=[...nD(WO,`stage`),{field:`score`,op:`lt`,value:40,color:`#dc2626`},{field:`score`,op:`gte`,value:80,color:`#16a34a`,bold:!0},{field:`budget`,op:`gte`,value:1e6,bold:!0}],qO={agents:[{id:`ag1`,name:`Sam Rivera`,email:`sam@realty.com`,phone:`+1 (415) 555-0201`,license:`CA-104822`,rating:5,active:!0},{id:`ag2`,name:`Jamie Chen`,email:`jamie@realty.com`,phone:`+1 (650) 555-0202`,license:`CA-118934`,rating:4,active:!0},{id:`ag3`,name:`Priya Patel`,email:`priya@realty.com`,phone:`+1 (212) 555-0203`,license:`NY-207651`,rating:4,active:!0},{id:`ag4`,name:`Diego Morales`,email:`diego@realty.com`,phone:`+1 (305) 555-0204`,license:`FL-330487`,rating:3,active:!0},{id:`ag5`,name:`Nina Kovac`,email:`nina@realty.com`,phone:`+1 (312) 555-0205`,license:`IL-415229`,rating:5,active:!0}],properties:[{id:`pt1`,title:`Sunny Hill Villa`,type:`house`,status:`available`,price:875e3,beds:4,baths:3,area:3200,yearBuilt:2015,zip:`78701`,city:`Austin`,amenities:[`Pool`,`Garage`,`Garden`],listingUrl:`https://realty.com/listings/pt1`},{id:`pt2`,title:`Downtown Loft`,type:`condo`,status:`pending`,price:42e4,beds:2,baths:2,area:1150,yearBuilt:2019,zip:`60601`,city:`Chicago`,amenities:[`Gym`,`Doorman`],listingUrl:`https://realty.com/listings/pt2`},{id:`pt3`,title:`Riverside Acreage`,type:`land`,status:`available`,price:26e4,beds:0,baths:0,area:87120,yearBuilt:2e3,zip:`83702`,city:`Boise`,amenities:[`Waterfront`],listingUrl:`https://realty.com/listings/pt3`},{id:`pt4`,title:`Market Street Office`,type:`commercial`,status:`sold`,price:195e4,beds:0,baths:4,area:12e3,yearBuilt:1998,zip:`94103`,city:`San Francisco`,amenities:[`Parking`,`Elevator`],listingUrl:`https://realty.com/listings/pt4`},{id:`pt5`,title:`Maple Court House`,type:`house`,status:`sold`,price:64e4,beds:3,baths:2,area:2100,yearBuilt:2008,zip:`80203`,city:`Denver`,amenities:[`Garage`,`Fireplace`],listingUrl:`https://realty.com/listings/pt5`},{id:`pt6`,title:`Harbor View Condo`,type:`condo`,status:`available`,price:51e4,beds:2,baths:2,area:1340,yearBuilt:2021,zip:`98101`,city:`Seattle`,amenities:[`Balcony`,`Gym`,`View`],listingUrl:`https://realty.com/listings/pt6`},{id:`pt7`,title:`Old Town Retail`,type:`commercial`,status:`pending`,price:118e4,beds:0,baths:2,area:6800,yearBuilt:1985,zip:`97205`,city:`Portland`,amenities:[`Storefront`,`Parking`],listingUrl:`https://realty.com/listings/pt7`}],leads:[{id:`ld1`,name:`Olivia Brooks`,phone:`+1 (415) 555-0301`,propertyId:`pt1`,agentId:`ag1`,stage:`touring`,budget:9e5,score:78,interests:[`Downtown`,`Pool`]},{id:`ld2`,name:`Marcus Reed`,phone:`+1 (650) 555-0302`,propertyId:`pt2`,agentId:`ag2`,stage:`offer`,budget:43e4,score:88,interests:[`Loft`,`Gym`]},{id:`ld3`,name:`Hannah Lee`,phone:`+1 (208) 555-0303`,propertyId:`pt3`,agentId:`ag3`,stage:`new`,budget:25e4,score:42,interests:[`Land`,`Waterfront`]},{id:`ld4`,name:`Trevor Nash`,phone:`+1 (415) 555-0304`,propertyId:`pt4`,agentId:`ag1`,stage:`closed`,budget:195e4,score:95,interests:[`Commercial`]},{id:`ld5`,name:`Sofia Marin`,phone:`+1 (305) 555-0305`,propertyId:`pt5`,agentId:`ag4`,stage:`lost`,budget:6e5,score:30,interests:[`Suburbs`,`Garage`]},{id:`ld6`,name:`Ethan Walsh`,phone:`+1 (206) 555-0306`,propertyId:`pt6`,agentId:`ag5`,stage:`touring`,budget:52e4,score:66,interests:[`View`,`Balcony`]},{id:`ld7`,name:`Grace Kim`,phone:`+1 (503) 555-0307`,propertyId:`pt7`,agentId:`ag2`,stage:`offer`,budget:115e4,score:81,interests:[`Retail`,`Parking`]}]},JO={id:`realestate`,name:`Real estate`,description:`Properties, agents and leads - sales + pipeline + agent dashboards (price KPI target, rating and lead-score gauges, type x status pivot, tabbed breakdown), filtered status-pill grids with row actions, master/detail, and rich edit forms (phone, license mask, rating, amenity chips, lead-score slider).`,emoji:`🏠`,accent:`#10b981`,build:()=>{let e=ZE(HO,qO.agents,10),t=QE(e),n=ZE(UO,qO.properties,18),r=QE(n),i=ZE(WO,qO.leads,60,{propertyId:r,agentId:t});return lD({title:`Realty`,brand:`Realty`,accent:`#10b981`,preset:`nord`,footer:`© Realty Group`,entities:[HO,UO,WO],seed:{agents:e,properties:n,leads:i},screens:[tD(UO,{id:`overview`,title:`Sales`,order:0},[{kpi:`Listings`,reduce:`count`,span:1},{kpi:`Total value`,measure:`price`,reduce:`sum`,format:`currency`,target:1e7,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg price vs $1M`,measure:`price`,reduce:`avg`,min:0,max:1e6,unit:`$`,span:1},{chart:`type`,measure:`price`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`type`,reduce:`count`,type:`bar`,span:2},{tabs:[{label:`Value by type`,tiles:[{chart:`type`,measure:`price`,reduce:`sum`,type:`bar`}]},{label:`Listings by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{pivot:{rows:[`type`],cols:[`status`],measure:`price`,aggregate:`sum`},span:3},{grid:!0,format:GO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),aD(UO,{id:`board`,title:`Listings`,order:1},{groupBy:`status`,titleField:`title`,badgeField:`price`,subtitleField:`city`,filter:[`type`,`status`],openScreen:`property-detail`}),tD(WO,{id:`pipeline`,title:`Pipeline`,order:2},[{kpi:`Leads`,reduce:`count`,span:1},{kpi:`Pipeline budget`,measure:`budget`,reduce:`sum`,format:`currency`,span:1},{kpi:`Avg score`,measure:`score`,reduce:`avg`,span:1},{gauge:`Avg lead score`,measure:`score`,reduce:`avg`,min:0,max:100,span:1},{chart:`stage`,reduce:`count`,type:`bar`,span:2},{chart:`stage`,measure:`budget`,reduce:`sum`,type:`pie`,span:1},{filter:[`stage`],span:3},{grid:!0,format:KO,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(HO,{id:`ratings`,title:`Agents`,order:3},[{kpi:`Agents`,reduce:`count`,span:1},{kpi:`Avg rating`,measure:`rating`,reduce:`avg`,span:1},{gauge:`Avg client rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`name`,measure:`rating`,reduce:`avg`,type:`bar`,span:3},{grid:!0,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(UO,{id:`property-detail`,title:`Property detail`,order:4},{titleField:`title`,subtitleField:`city`,statusField:`status`,metricFields:[`price`,`area`],related:[{entity:`leads`,foreignKey:`propertyId`,label:`Inquiries`,titleField:`name`,subtitleField:`budget`,statusField:`stage`}]}),cD(HO,`master-detail`,{id:`agent-book`,title:`Agent book`,order:5,child:WO,foreignKey:`agentId`}),iD(UO,{id:`properties`,title:`Properties`,order:6},void 0,{format:GO,summaries:!0,rowActions:[{kind:`edit`}],rowLink:{screen:`property-detail`,sourceField:`id`,targetField:`id`}},[`type`,`status`,`city`]),iD(WO,{id:`leads`,title:`Leads`,order:7},void 0,{format:KO,summaries:!0,rowActions:[{kind:`edit`}]},[`stage`])]})}},YO={name:`drivers`,label:`Driver`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Mobile contact number`}},{field:`email`,type:`text`,format:`email`,required:!0,input:{placeholder:`name@fleetly.com`}},{field:`license`,type:`text`,label:`License`,input:{editorType:`mask`,mask:`AA-######`,help:`State code + 6 digits`}},{field:`rating`,type:`number`,label:`Safety rating`,min:1,max:5,defaultValue:3,input:{editorType:`rating`,help:`1-5 safety score`}},{field:`hireDate`,type:`date`,label:`Hire date`}]},XO={name:`vehicles`,label:`Vehicle`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`vin`,type:`text`,label:`VIN`,input:{editorType:`mask`,mask:`*****************`,help:`17-character vehicle identification number`}},{field:`plate`,type:`text`,label:`Plate`,input:{editorType:`mask`,mask:`AAA-####`,help:`Fleet plate, e.g. FLT-1201`}},{field:`type`,type:`enum`,required:!0,defaultValue:`van`,options:[{value:`van`,label:`Van`,color:`#6366f1`},{value:`truck`,label:`Truck`,color:`#10b981`},{value:`car`,label:`Car`,color:`#f59e0b`},{value:`bike`,label:`Bike`,color:`#0ea5e9`}]},{field:`year`,type:`number`,label:`Year`,min:1990,max:2030},{field:`mileage`,type:`number`,label:`Mileage`,min:0,input:{help:`Odometer reading`}},{field:`fuelLevel`,type:`number`,label:`Fuel level (%)`,min:0,max:100,defaultValue:100,input:{editorType:`slider`,help:`Current tank level`}},{field:`status`,type:`enum`,required:!0,defaultValue:`available`,options:[{value:`available`,label:`Available`,color:`#10b981`},{value:`on_trip`,label:`On trip`,color:`#0ea5e9`},{value:`maintenance`,label:`Maintenance`,color:`#ef4444`}]},{field:`color`,type:`text`,label:`Livery color`,input:{editorType:`color`,help:`Fleet livery / map color`}}]},ZO={name:`trips`,label:`Trip`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`vehicleId`,type:`relation`,label:`Vehicle`,required:!0,relation:{entity:`vehicles`,foreignKey:`vehicleId`,labelField:`name`}},{field:`driverId`,type:`relation`,label:`Driver`,required:!0,relation:{entity:`drivers`,foreignKey:`driverId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,defaultValue:`planned`,options:[{value:`planned`,label:`Planned`,color:`#94a3b8`},{value:`ongoing`,label:`Ongoing`,color:`#0ea5e9`},{value:`done`,label:`Done`,color:`#10b981`},{value:`cancelled`,label:`Cancelled`,color:`#ef4444`}]},{field:`distanceKm`,type:`number`,label:`Distance (km)`,min:0,input:{help:`Route distance in kilometers`}},{field:`cost`,type:`number`,label:`Cost ($)`,min:0},{field:`costPerKm`,type:`number`,label:`Cost / km ($)`,readonly:!0,formula:`cost / distanceKm`},{field:`startAt`,type:`datetime`,label:`Start`,input:{editorType:`datetime`,help:`Scheduled departure time`}}]},QO={drivers:[{id:`dr1`,name:`Miguel Santos`,phone:`+1 (415) 555-0201`,email:`miguel@fleetly.com`,license:`CA-482910`,rating:5,hireDate:`2021-03-15`},{id:`dr2`,name:`Aisha Khan`,phone:`+1 (312) 555-0202`,email:`aisha@fleetly.com`,license:`IL-118273`,rating:4,hireDate:`2022-07-01`},{id:`dr3`,name:`Tom Becker`,phone:`+1 (206) 555-0203`,email:`tom@fleetly.com`,license:`WA-905641`,rating:4,hireDate:`2020-11-20`},{id:`dr4`,name:`Lena Novak`,phone:`+1 (720) 555-0204`,email:`lena@fleetly.com`,license:`CO-337882`,rating:3,hireDate:`2023-02-10`},{id:`dr5`,name:`Raj Mehta`,phone:`+1 (646) 555-0205`,email:`raj@fleetly.com`,license:`NY-556201`,rating:5,hireDate:`2019-09-05`},{id:`dr6`,name:`Sofia Rossi`,phone:`+1 (305) 555-0206`,email:`sofia@fleetly.com`,license:`FL-774519`,rating:4,hireDate:`2024-01-22`}],vehicles:[{id:`ve1`,name:`Sprinter 1`,vin:`1HGCM82633A004352`,plate:`FLT-1201`,type:`van`,year:2021,mileage:82e3,fuelLevel:80,status:`available`,color:`#0284c7`},{id:`ve2`,name:`Hauler 2`,vin:`2FMDK48C97BB12345`,plate:`FLT-1202`,type:`truck`,year:2019,mileage:154e3,fuelLevel:45,status:`on_trip`,color:`#dc2626`},{id:`ve3`,name:`Sedan 3`,vin:`3VWFE21C04M001234`,plate:`FLT-1203`,type:`car`,year:2022,mileage:41e3,fuelLevel:95,status:`available`,color:`#0f172a`},{id:`ve4`,name:`Courier 4`,vin:`5UXWX7C5XG0R12345`,plate:`FLT-1204`,type:`bike`,year:2023,mileage:12e3,fuelLevel:60,status:`maintenance`,color:`#f59e0b`},{id:`ve5`,name:`Hauler 5`,vin:`1FTFW1ET5DFA12345`,plate:`FLT-1205`,type:`truck`,year:2020,mileage:132e3,fuelLevel:30,status:`on_trip`,color:`#10b981`},{id:`ve6`,name:`Sprinter 6`,vin:`1GNEK13ZX3R123456`,plate:`FLT-1206`,type:`van`,year:2021,mileage:76e3,fuelLevel:70,status:`available`,color:`#6366f1`}],trips:[{id:`tp1`,vehicleId:`ve1`,driverId:`dr1`,status:`done`,distanceKm:120,cost:180,startAt:`2026-07-08T08:30:00`},{id:`tp2`,vehicleId:`ve2`,driverId:`dr2`,status:`ongoing`,distanceKm:340,cost:520,startAt:`2026-07-12T06:15:00`},{id:`tp3`,vehicleId:`ve3`,driverId:`dr3`,status:`planned`,distanceKm:60,cost:90,startAt:`2026-07-15T09:00:00`},{id:`tp4`,vehicleId:`ve4`,driverId:`dr4`,status:`cancelled`,distanceKm:15,cost:25,startAt:`2026-07-09T14:45:00`},{id:`tp5`,vehicleId:`ve5`,driverId:`dr5`,status:`ongoing`,distanceKm:410,cost:640,startAt:`2026-07-13T05:30:00`},{id:`tp6`,vehicleId:`ve1`,driverId:`dr6`,status:`done`,distanceKm:95,cost:140,startAt:`2026-07-11T11:20:00`},{id:`tp7`,vehicleId:`ve2`,driverId:`dr1`,status:`done`,distanceKm:275,cost:430,startAt:`2026-07-10T07:00:00`}]},$O=[...nD(XO,`status`),...nD(XO,`type`),{field:`fuelLevel`,op:`lt`,value:25,color:`#dc2626`,bold:!0},{field:`fuelLevel`,op:`gte`,value:75,color:`#16a34a`},{field:`mileage`,op:`gte`,value:15e4,bold:!0}],ek=[...nD(ZO,`status`),{field:`cost`,op:`gte`,value:500,bold:!0},{field:`distanceKm`,op:`gte`,value:300,color:`#0284c7`,bold:!0}],tk={id:`fleet`,name:`Fleet`,description:`Vehicles, drivers and trips - fleet + trips dashboards (mileage/cost KPIs with a startAt sparkline, a fuel-level gauge, a type x status pivot, a cost-over-time area trend, tabbed breakdowns), filtered status-pill grids with row actions, master/detail, and rich edit forms (phone, license/VIN/plate masks, safety rating, fuel slider, livery color, datetime).`,emoji:`🚚`,accent:`#38bdf8`,build:()=>{let e=ZE(YO,QO.drivers,12),t=ZE(XO,QO.vehicles,14),n=ZE(ZO,QO.trips,30,{vehicleId:QE(t),driverId:QE(e)});return lD({title:`Fleetly`,brand:`Fleetly`,accent:`#38bdf8`,preset:`carbon`,mode:`dark`,footer:``,entities:[YO,XO,ZO],seed:{drivers:e,vehicles:t,trips:n},screens:[tD(XO,{id:`overview`,title:`Fleet`,order:0},[{kpi:`Vehicles`,reduce:`count`,span:1},{kpi:`Total mileage`,measure:`mileage`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg mileage`,measure:`mileage`,reduce:`avg`,format:`compact`,span:1},{gauge:`Avg fuel level`,measure:`fuelLevel`,reduce:`avg`,min:0,max:100,unit:`%`,span:1},{chart:`type`,measure:`mileage`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`type`],cols:[`status`],aggregate:`count`},span:3},{tabs:[{label:`Mileage by type`,tiles:[{chart:`type`,measure:`mileage`,reduce:`sum`,type:`bar`}]},{label:`Vehicles by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:$O,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(ZO,{id:`trips-dashboard`,title:`Trips`,order:1},[{kpi:`Trips`,reduce:`count`,span:1},{kpi:`Total distance`,measure:`distanceKm`,reduce:`sum`,format:`compact`,trendField:`startAt`,trendReduce:`sum`,span:1},{kpi:`Total cost`,measure:`cost`,reduce:`sum`,format:`currency`,trendField:`startAt`,trendReduce:`sum`,span:1},{kpi:`Avg cost`,measure:`cost`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg distance (km)`,measure:`distanceKm`,reduce:`avg`,min:0,max:500,unit:`km`,span:1},{chart:`startAt`,measure:`cost`,reduce:`sum`,type:`area`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{tabs:[{label:`Cost by status`,tiles:[{chart:`status`,measure:`cost`,reduce:`sum`,type:`bar`}]},{label:`Distance by status`,tiles:[{chart:`status`,measure:`distanceKm`,reduce:`sum`,type:`bar`}]}],span:3},{filter:[`status`,`vehicleId`,`driverId`],span:3},{grid:!0,format:ek,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),oD(ZO,{id:`dispatch`,title:`Dispatch`,order:2},{dateField:`startAt`,titleField:`driverId`,colorField:`status`,filter:[`status`,`vehicleId`]}),sD(XO,{id:`vehicle-detail`,title:`Vehicle detail`,order:3},{titleField:`name`,subtitleField:`plate`,statusField:`status`,metricFields:[`mileage`,`fuelLevel`],related:[{entity:`trips`,foreignKey:`vehicleId`,label:`Trips`,titleField:`driverId`,subtitleField:`distanceKm`,dateField:`startAt`,statusField:`status`}]}),cD(XO,`master-detail`,{id:`vehicles`,title:`Vehicles`,order:4,child:ZO,foreignKey:`vehicleId`,linkScreen:`vehicle-detail`}),iD(ZO,{id:`trip-forms`,title:`Trip forms`,order:5},[`vehicleId`,`driverId`,`status`],{format:ek,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`vehicleId`,`driverId`]),iD(YO,{id:`drivers`,title:`Drivers`,order:6},[`name`,`phone`,`rating`],{summaries:!0},[`rating`])]})}},nk={name:`classes`,label:`Class`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`type`,type:`enum`,required:!0,options:[{value:`yoga`,label:`Yoga`,color:`#10b981`},{value:`spin`,label:`Spin`,color:`#0ea5e9`},{value:`hiit`,label:`HIIT`,color:`#ef4444`},{value:`strength`,label:`Strength`,color:`#6366f1`}]},{field:`capacity`,type:`number`,label:`Capacity`,required:!0,min:1,defaultValue:20,input:{help:`Maximum attendees per session`}},{field:`durationMins`,type:`number`,label:`Duration (min)`,min:15,max:120,defaultValue:60,input:{suffix:` min`}},{field:`intensity`,type:`number`,label:`Intensity`,min:0,max:5,defaultValue:3,input:{editorType:`slider`,help:`Effort level from easy (0) to brutal (5)`}},{field:`load`,type:`number`,label:`Load`,readonly:!0,formula:`intensity * durationMins`},{field:`color`,type:`text`,label:`Schedule colour`,input:{editorType:`color`,help:`Shown on the timetable`}},{field:`trainer`,type:`text`,label:`Lead trainer`}]},rk={name:`members`,label:`Member`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0},{field:`phone`,type:`text`,input:{editorType:`phone`,help:`Mobile for class reminders`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`}},{field:`plan`,type:`enum`,label:`Membership`,required:!0,options:[{value:`basic`,label:`Basic`,color:`#94a3b8`},{value:`plus`,label:`Plus`,color:`#0ea5e9`},{value:`elite`,label:`Elite`,color:`#f59e0b`}]},{field:`status`,type:`enum`,required:!0,defaultValue:`active`,options:[{value:`active`,label:`Active`,color:`#10b981`},{value:`paused`,label:`Paused`,color:`#f59e0b`},{value:`expired`,label:`Expired`,color:`#ef4444`}]},{field:`joinDate`,type:`date`,label:`Joined`},{field:`goals`,type:`text`,label:`Goals`,input:{editorType:`chips`,help:`What this member is training for`}},{field:`monthlyFee`,type:`number`,label:`Monthly fee ($)`,min:0,defaultValue:49,input:{prefix:`$`}},{field:`annualFee`,type:`number`,label:`Annual fee ($)`,readonly:!0,formula:`monthlyFee * 12`}]},ik={name:`bookings`,label:`Booking`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`memberId`,type:`relation`,label:`Member`,relation:{entity:`members`,foreignKey:`memberId`,labelField:`name`}},{field:`classId`,type:`relation`,label:`Class`,relation:{entity:`classes`,foreignKey:`classId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,defaultValue:`booked`,options:[{value:`booked`,label:`Booked`,color:`#0ea5e9`},{value:`attended`,label:`Attended`,color:`#10b981`},{value:`no_show`,label:`No show`,color:`#ef4444`}]},{field:`bookedAt`,type:`datetime`,label:`Booked at`,input:{editorType:`datetime`,help:`When the spot was reserved`}},{field:`rating`,type:`number`,label:`Feedback`,min:0,max:5,defaultValue:0,input:{editorType:`rating`,help:`Post-class member rating`}}]},ak={classes:[{id:`cl1`,name:`Sunrise Yoga`,type:`yoga`,capacity:20,durationMins:60,intensity:2,color:`#10b981`,trainer:`Maya Cohen`},{id:`cl2`,name:`Power Spin`,type:`spin`,capacity:24,durationMins:45,intensity:4,color:`#0ea5e9`,trainer:`Rob Sena`},{id:`cl3`,name:`HIIT Blast`,type:`hiit`,capacity:16,durationMins:30,intensity:5,color:`#ef4444`,trainer:`Tara Voss`},{id:`cl4`,name:`Iron Strength`,type:`strength`,capacity:12,durationMins:50,intensity:4,color:`#6366f1`,trainer:`Marcus Lee`},{id:`cl5`,name:`Flow Yoga`,type:`yoga`,capacity:18,durationMins:75,intensity:3,color:`#22c55e`,trainer:`Maya Cohen`},{id:`cl6`,name:`Endurance Spin`,type:`spin`,capacity:22,durationMins:60,intensity:3,color:`#38bdf8`,trainer:`Rob Sena`}],members:[{id:`mb1`,name:`Olivia Grant`,email:`olivia.grant@example.com`,phone:`+1 (415) 555-0111`,country:`United States`,plan:`elite`,status:`active`,joinDate:`2025-01-12`,goals:[`Weight loss`,`Flexibility`],monthlyFee:99},{id:`mb2`,name:`James Carter`,email:`james.carter@example.com`,phone:`+44 20 7946 0112`,country:`United Kingdom`,plan:`plus`,status:`active`,joinDate:`2025-03-04`,goals:[`Strength`],monthlyFee:69},{id:`mb3`,name:`Hana Kim`,email:`hana.kim@example.com`,phone:`+82 2 555 0113`,country:`South Korea`,plan:`basic`,status:`paused`,joinDate:`2025-05-20`,goals:[`Stress relief`],monthlyFee:39},{id:`mb4`,name:`Diego Morales`,email:`diego.morales@example.com`,phone:`+34 91 555 0114`,country:`Spain`,plan:`plus`,status:`active`,joinDate:`2024-11-08`,goals:[`Endurance`,`Cardio`],monthlyFee:69},{id:`mb5`,name:`Zara Ahmed`,email:`zara.ahmed@example.com`,phone:`+971 4 555 0115`,country:`United Arab Emirates`,plan:`elite`,status:`expired`,joinDate:`2024-08-15`,goals:[`Toning`],monthlyFee:99},{id:`mb6`,name:`Ben Walker`,email:`ben.walker@example.com`,phone:`+1 (650) 555-0116`,country:`United States`,plan:`basic`,status:`active`,joinDate:`2025-06-01`,goals:[`General fitness`],monthlyFee:39},{id:`mb7`,name:`Chloe Dubois`,email:`chloe.dubois@example.com`,phone:`+33 1 42 55 0117`,country:`France`,plan:`plus`,status:`active`,joinDate:`2025-02-18`,goals:[`Flexibility`,`Balance`],monthlyFee:69}],bookings:[{id:`bk1`,memberId:`mb1`,classId:`cl1`,status:`attended`,bookedAt:`2026-07-01T06:30:00.000Z`,rating:5},{id:`bk2`,memberId:`mb2`,classId:`cl2`,status:`attended`,bookedAt:`2026-07-01T18:00:00.000Z`,rating:4},{id:`bk3`,memberId:`mb3`,classId:`cl1`,status:`no_show`,bookedAt:`2026-07-02T06:30:00.000Z`,rating:0},{id:`bk4`,memberId:`mb4`,classId:`cl3`,status:`booked`,bookedAt:`2026-07-03T12:15:00.000Z`,rating:0},{id:`bk5`,memberId:`mb5`,classId:`cl4`,status:`attended`,bookedAt:`2026-07-03T19:00:00.000Z`,rating:5},{id:`bk6`,memberId:`mb6`,classId:`cl2`,status:`attended`,bookedAt:`2026-07-04T18:00:00.000Z`,rating:3},{id:`bk7`,memberId:`mb7`,classId:`cl5`,status:`booked`,bookedAt:`2026-07-05T09:00:00.000Z`,rating:0},{id:`bk8`,memberId:`mb1`,classId:`cl6`,status:`attended`,bookedAt:`2026-07-05T17:30:00.000Z`,rating:4}]},ok=[...nD(nk,`type`),{field:`capacity`,op:`lt`,value:15,color:`#dc2626`},{field:`capacity`,op:`gte`,value:24,color:`#16a34a`,bold:!0},{field:`intensity`,op:`gte`,value:4,color:`#dc2626`,bold:!0}],sk=[...nD(rk,`status`),...nD(rk,`plan`),{field:`monthlyFee`,op:`gte`,value:90,bold:!0}],ck=[...nD(ik,`status`),{field:`rating`,op:`lt`,value:3,color:`#dc2626`},{field:`rating`,op:`gte`,value:4,color:`#16a34a`,bold:!0}],lk={id:`gym`,name:`Gym`,description:`Members, classes and bookings - membership, class and attendance dashboards (KPI sparklines + a fee target, capacity and feedback gauges, a plan-by-status pivot, join-date and booking trends, tabbed breakdowns), filtered status-pill grids with row actions, master/detail, and rich edit forms.`,emoji:`🏋️`,accent:`#22c55e`,build:()=>{let e=ZE(nk,ak.classes,12),t=ZE(rk,ak.members,22),n=QE(e),r=QE(t),i=ZE(ik,ak.bookings,30,{memberId:r,classId:n});return lD({title:`FitClub`,brand:`FitClub`,accent:`#22c55e`,preset:`dracula`,mode:`dark`,footer:`© FitClub`,entities:[nk,rk,ik],seed:{classes:e,members:t,bookings:i},screens:[tD(rk,{id:`membership`,title:`Membership`,order:0},[{kpi:`Members`,reduce:`count`,span:1},{kpi:`Monthly revenue`,measure:`monthlyFee`,reduce:`sum`,format:`currency`,trendField:`joinDate`,trendReduce:`sum`,target:1500,span:1},{kpi:`Avg fee`,measure:`monthlyFee`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg monthly fee vs $150`,measure:`monthlyFee`,reduce:`avg`,min:0,max:150,unit:`$`,span:1},{chart:`plan`,measure:`monthlyFee`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`joinDate`,measure:`monthlyFee`,reduce:`sum`,type:`area`,span:3},{pivot:{rows:[`plan`],cols:[`status`],measure:`monthlyFee`,aggregate:`sum`},span:3},{tabs:[{label:`Revenue by plan`,tiles:[{chart:`plan`,measure:`monthlyFee`,reduce:`sum`,type:`bar`}]},{label:`Members by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{filter:[`plan`,`status`,`country`],span:3},{grid:!0,format:sk,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(nk,{id:`schedule`,title:`Class insights`,order:1},[{kpi:`Classes`,reduce:`count`,span:1},{kpi:`Total capacity`,measure:`capacity`,reduce:`sum`,span:1},{kpi:`Avg intensity`,measure:`intensity`,reduce:`avg`,span:1},{gauge:`Avg capacity`,measure:`capacity`,reduce:`avg`,min:0,max:30,span:1},{chart:`type`,measure:`capacity`,reduce:`sum`,type:`bar`,span:2},{chart:`type`,reduce:`count`,type:`pie`,span:1},{tabs:[{label:`Capacity by type`,tiles:[{chart:`type`,measure:`capacity`,reduce:`sum`,type:`bar`}]},{label:`Intensity by type`,tiles:[{chart:`type`,measure:`intensity`,reduce:`avg`,type:`bar`}]},{label:`Duration by type`,tiles:[{chart:`type`,measure:`durationMins`,reduce:`avg`,type:`bar`}]}],span:3},{grid:!0,format:ok,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(ik,{id:`attendance`,title:`Attendance`,order:2},[{kpi:`Bookings`,reduce:`count`,span:1},{kpi:`Avg rating`,measure:`rating`,reduce:`avg`,trendField:`bookedAt`,trendReduce:`avg`,span:1},{kpi:`Top rating`,measure:`rating`,reduce:`max`,span:1},{gauge:`Avg feedback`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`status`,reduce:`count`,type:`pie`,span:1},{chart:`bookedAt`,measure:`rating`,reduce:`avg`,type:`area`,span:2},{filter:[`status`],span:3},{grid:!0,format:ck,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),oD(ik,{id:`schedule-cal`,title:`Schedule`,order:3},{dateField:`bookedAt`,titleField:`classId`,colorField:`status`,filter:[`status`,`classId`]}),sD(rk,{id:`member-360`,title:`Member 360`,order:4},{titleField:`name`,subtitleField:`email`,statusField:`status`,metricFields:[`monthlyFee`],related:[{entity:`bookings`,foreignKey:`memberId`,label:`Bookings`,titleField:`classId`,dateField:`bookedAt`,statusField:`status`}]}),cD(nk,`master-detail`,{id:`classes`,title:`Classes`,order:5,child:ik,foreignKey:`classId`}),iD(rk,{id:`members`,title:`Members`,order:6},void 0,{format:sk,summaries:!0,rowActions:[{kind:`edit`}],rowLink:{screen:`member-360`,sourceField:`id`,targetField:`id`}},[`plan`,`status`,`country`]),iD(ik,{id:`bookings`,title:`Bookings`,order:7},void 0,{format:ck,summaries:!0},[`status`])]})}},uk={name:`books`,label:`Book`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,required:!0,minLength:2},{field:`author`,type:`text`,label:`Author`,required:!0,minLength:2},{field:`isbn`,type:`text`,label:`ISBN`,input:{editorType:`mask`,mask:`###-#-#####-###-#`,help:`ISBN-13, digits only`}},{field:`genre`,type:`enum`,required:!0,defaultValue:`fiction`,options:[{value:`fiction`,label:`Fiction`,color:`#6366f1`},{value:`science`,label:`Science`,color:`#0ea5e9`},{value:`history`,label:`History`,color:`#f59e0b`},{value:`kids`,label:`Kids`,color:`#ec4899`}]},{field:`rating`,type:`number`,label:`Rating`,min:0,max:5,defaultValue:3,input:{editorType:`rating`,help:`Reader score 0-5`}},{field:`tags`,type:`text`,label:`Tags`,input:{editorType:`chips`,help:`Themes / keywords`}},{field:`spineColor`,type:`text`,label:`Spine color`,defaultValue:`#6366f1`,input:{editorType:`color`,help:`Shelf label color`}},{field:`copies`,type:`number`,label:`Copies`,min:0,defaultValue:1,input:{help:`Total copies owned`}},{field:`year`,type:`number`,label:`Year`,min:0},{field:`coverUrl`,type:`text`,label:`Cover`,format:`url`,input:{placeholder:`https://…`}}]},dk={name:`members`,label:`Member`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0,minLength:2},{field:`email`,type:`text`,format:`email`,required:!0,input:{help:`Used for hold notices`}},{field:`phone`,type:`text`,label:`Phone`,input:{editorType:`phone`}},{field:`country`,type:`text`,label:`Country`,input:{editorType:`country`,help:`Residence country`}},{field:`tier`,type:`enum`,required:!0,defaultValue:`standard`,options:[{value:`standard`,label:`Standard`,color:`#6366f1`},{value:`student`,label:`Student`,color:`#10b981`},{value:`senior`,label:`Senior`,color:`#f59e0b`}]},{field:`pin`,type:`text`,label:`Card PIN`,minLength:4,hidden:{grid:!0},input:{editorType:`password`,help:`Self-checkout PIN`}},{field:`joinDate`,type:`date`,label:`Joined`},{field:`active`,type:`boolean`,label:`Active`,defaultValue:!0}]},fk={name:`loans`,label:`Loan`,idField:`id`,fields:[{field:`id`,type:`text`,primaryKey:!0,readonly:!0},{field:`bookId`,type:`relation`,label:`Book`,relation:{entity:`books`,foreignKey:`bookId`,labelField:`title`}},{field:`memberId`,type:`relation`,label:`Member`,relation:{entity:`members`,foreignKey:`memberId`,labelField:`name`}},{field:`status`,type:`enum`,required:!0,defaultValue:`borrowed`,options:[{value:`borrowed`,label:`Borrowed`,color:`#0ea5e9`},{value:`returned`,label:`Returned`,color:`#10b981`},{value:`overdue`,label:`Overdue`,color:`#ef4444`}]},{field:`borrowedAt`,type:`date`,label:`Borrowed`},{field:`dueDate`,type:`date`,label:`Due date`},{field:`returnedAt`,type:`text`,label:`Returned at`,input:{editorType:`datetime`,help:`Exact check-in time`}},{field:`daysOverdue`,type:`number`,label:`Days overdue`,min:0,defaultValue:0,input:{help:`Days past the due date`}},{field:`dailyRate`,type:`number`,label:`Daily rate ($)`,min:0,defaultValue:.25,input:{help:`Fine charged per overdue day`}},{field:`fineAmount`,type:`number`,label:`Fine ($)`,readonly:!0,formula:`daysOverdue * dailyRate`}]},pk={books:[{id:`bk1`,title:`The Silent Sea`,author:`Marina Cole`,isbn:`978-0-14028-329-5`,genre:`fiction`,rating:4,tags:[`Mystery`,`Ocean`],spineColor:`#6366f1`,copies:4,year:2019,coverUrl:`https://covers.example.com/silent-sea.jpg`},{id:`bk2`,title:`Quantum Frontiers`,author:`Devan Rao`,isbn:`978-1-40889-641-3`,genre:`science`,rating:5,tags:[`Physics`,`Space`],spineColor:`#0ea5e9`,copies:3,year:2021,coverUrl:`https://covers.example.com/quantum.jpg`},{id:`bk3`,title:`Empires of Old`,author:`Sofia Marek`,isbn:`978-0-33450-403-8`,genre:`history`,rating:3,tags:[`Rome`,`War`],spineColor:`#f59e0b`,copies:2,year:2015,coverUrl:`https://covers.example.com/empires.jpg`},{id:`bk4`,title:`The Curious Fox`,author:`Penny Hart`,isbn:`978-1-59327-599-0`,genre:`kids`,rating:5,tags:[`Animals`,`Adventure`],spineColor:`#ec4899`,copies:6,year:2022,coverUrl:`https://covers.example.com/fox.jpg`},{id:`bk5`,title:`Midnight Harbor`,author:`Louis Brenn`,isbn:`978-0-74322-620-9`,genre:`fiction`,rating:4,tags:[`Noir`,`Thriller`],spineColor:`#8b5cf6`,copies:5,year:2018,coverUrl:`https://covers.example.com/harbor.jpg`},{id:`bk6`,title:`Atoms and Stars`,author:`Iris Chen`,isbn:`978-0-30788-743-6`,genre:`science`,rating:4,tags:[`Astronomy`,`Chemistry`],spineColor:`#14b8a6`,copies:3,year:2020,coverUrl:`https://covers.example.com/atoms.jpg`}],members:[{id:`mb1`,name:`Eleanor Price`,email:`eleanor.price@example.com`,phone:`+1 (415) 555-0111`,country:`United States`,tier:`standard`,pin:`4821`,joinDate:`2023-02-14`,active:!0},{id:`mb2`,name:`Ravi Menon`,email:`ravi.menon@example.com`,phone:`+44 20 7946 0112`,country:`United Kingdom`,tier:`student`,pin:`9037`,joinDate:`2024-09-01`,active:!0},{id:`mb3`,name:`Greta Olsen`,email:`greta.olsen@example.com`,phone:`+49 30 5550113`,country:`Germany`,tier:`senior`,pin:`2264`,joinDate:`2021-06-30`,active:!0},{id:`mb4`,name:`Tomas Vega`,email:`tomas.vega@example.com`,phone:`+34 91 555 0114`,country:`Spain`,tier:`standard`,pin:`7715`,joinDate:`2022-11-19`,active:!0},{id:`mb5`,name:`Aisha Bello`,email:`aisha.bello@example.com`,phone:`+234 1 555 0115`,country:`Nigeria`,tier:`student`,pin:`3390`,joinDate:`2025-01-08`,active:!0},{id:`mb6`,name:`Harold Finch`,email:`harold.finch@example.com`,phone:`+1 (212) 555-0116`,country:`United States`,tier:`senior`,pin:`5582`,joinDate:`2020-03-27`,active:!1}],loans:[{id:`ln1`,bookId:`bk1`,memberId:`mb1`,status:`borrowed`,borrowedAt:`2026-07-14`,dueDate:`2026-07-28`,returnedAt:``,daysOverdue:0,dailyRate:.25},{id:`ln2`,bookId:`bk2`,memberId:`mb2`,status:`overdue`,borrowedAt:`2026-06-21`,dueDate:`2026-07-05`,returnedAt:``,daysOverdue:18,dailyRate:.25},{id:`ln3`,bookId:`bk3`,memberId:`mb3`,status:`returned`,borrowedAt:`2026-06-06`,dueDate:`2026-06-20`,returnedAt:`2026-06-19T15:42:00.000Z`,daysOverdue:0,dailyRate:.25},{id:`ln4`,bookId:`bk4`,memberId:`mb4`,status:`borrowed`,borrowedAt:`2026-07-19`,dueDate:`2026-08-02`,returnedAt:``,daysOverdue:0,dailyRate:.1},{id:`ln5`,bookId:`bk5`,memberId:`mb5`,status:`overdue`,borrowedAt:`2026-06-16`,dueDate:`2026-06-30`,returnedAt:``,daysOverdue:29,dailyRate:.25},{id:`ln6`,bookId:`bk1`,memberId:`mb6`,status:`returned`,borrowedAt:`2026-06-01`,dueDate:`2026-06-15`,returnedAt:`2026-06-18T09:05:00.000Z`,daysOverdue:3,dailyRate:.25},{id:`ln7`,bookId:`bk6`,memberId:`mb2`,status:`borrowed`,borrowedAt:`2026-07-27`,dueDate:`2026-08-10`,returnedAt:``,daysOverdue:0,dailyRate:.25},{id:`ln8`,bookId:`bk2`,memberId:`mb3`,status:`overdue`,borrowedAt:`2026-06-17`,dueDate:`2026-07-01`,returnedAt:``,daysOverdue:24,dailyRate:.5}]},mk=[...nD(fk,`status`),{field:`daysOverdue`,op:`gt`,value:0,color:`#dc2626`,bold:!0},{field:`daysOverdue`,op:`gte`,value:21,background:`color-mix(in srgb, #ef4444 18%, transparent)`}],hk=[...nD(uk,`genre`),{field:`rating`,op:`gte`,value:4,color:`#16a34a`,bold:!0},{field:`rating`,op:`lt`,value:3,color:`#dc2626`}],gk={id:`library`,name:`Library`,description:`Books, members and loans - circulation + catalog dashboards (an overdue-days KPI sparkline over borrow dates, a rating gauge, status and genre breakdowns, a status x borrow-date pivot, tabbed views), conditional-format status-pill grids with overdue-red rows and row actions, master/detail, and rich edit forms (ISBN mask, star rating, tag chips, phone, country, and a computed fine).`,emoji:`📚`,accent:`#a855f7`,build:()=>{let e=ZE(uk,pk.books,60),t=ZE(dk,pk.members,40),n=ZE(fk,pk.loans,90,{bookId:QE(e),memberId:QE(t)});return lD({title:`BookNook`,brand:`BookNook`,accent:`#a855f7`,preset:`shadcn`,footer:`© BookNook Library`,entities:[uk,dk,fk],seed:{books:e,members:t,loans:n},screens:[tD(fk,{id:`overview`,title:`Circulation`,order:0},[{kpi:`Active loans`,reduce:`count`,span:1},{kpi:`Days overdue`,measure:`daysOverdue`,reduce:`sum`,trendField:`borrowedAt`,trendReduce:`sum`,span:1},{kpi:`Avg daily rate`,measure:`dailyRate`,reduce:`avg`,format:`currency`,span:1},{gauge:`Avg days overdue`,measure:`daysOverdue`,reduce:`avg`,min:0,max:30,unit:`d`,span:1},{chart:`status`,measure:`daysOverdue`,reduce:`sum`,type:`bar`,span:2},{chart:`status`,reduce:`count`,type:`pie`,span:1},{pivot:{rows:[`status`],cols:[`borrowedAt`],measure:`daysOverdue`,aggregate:`sum`},span:3},{tabs:[{label:`Overdue by status`,tiles:[{chart:`status`,measure:`daysOverdue`,reduce:`sum`,type:`bar`}]},{label:`Loans by status`,tiles:[{chart:`status`,reduce:`count`,type:`bar`}]}],span:3},{grid:!0,format:mk,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),tD(uk,{id:`catalog`,title:`Catalog`,order:1},[{kpi:`Titles`,reduce:`count`,span:1},{kpi:`Copies on shelf`,measure:`copies`,reduce:`sum`,format:`compact`,span:1},{kpi:`Avg rating`,measure:`rating`,reduce:`avg`,target:4,span:1},{gauge:`Avg rating`,measure:`rating`,reduce:`avg`,min:0,max:5,span:1},{chart:`genre`,measure:`copies`,reduce:`sum`,type:`bar`,span:2},{chart:`genre`,reduce:`count`,type:`pie`,span:1},{chart:`year`,measure:`copies`,reduce:`sum`,type:`area`,span:3},{filter:[`genre`],span:3},{grid:!0,format:hk,summaries:!0,rowActions:[{kind:`edit`}],span:3}]),sD(dk,{id:`member-360`,title:`Member 360`,order:2},{titleField:`name`,subtitleField:`email`,statusField:`tier`,related:[{entity:`loans`,foreignKey:`memberId`,label:`Loans`,titleField:`bookId`,dateField:`borrowedAt`,statusField:`status`}]}),cD(uk,`master-detail`,{id:`books`,title:`Books`,order:3,child:fk,foreignKey:`bookId`}),iD(fk,{id:`loans`,title:`Loans`,order:4},void 0,{format:mk,summaries:!0,rowActions:[{kind:`edit`}]},[`status`,`bookId`,`memberId`]),iD(dk,{id:`members`,title:`Members`,order:5},void 0,{rowLink:{screen:`member-360`,sourceField:`id`,targetField:`id`}},[`tier`,`country`,`active`])]})}},_k={name:`products`,label:`Product`,idField:`id`,fields:[{field:`id`,type:`number`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,label:`Product`,required:!0,minLength:2},{field:`category_id`,type:`number`,label:`Category #`,min:1,max:8},{field:`unit_price`,type:`number`,label:`Unit Price ($)`,min:0},{field:`units_in_stock`,type:`number`,label:`In Stock`,min:0},{field:`discontinued`,type:`boolean`}]},vk={name:`customers`,label:`Customer`,idField:`id`,fields:[{field:`id`,type:`number`,primaryKey:!0,readonly:!0},{field:`company`,type:`text`,label:`Company`,required:!0,minLength:2},{field:`contact`,type:`text`,label:`Contact`},{field:`city`,type:`text`,label:`City`},{field:`country`,type:`text`,label:`Country`}]},yk={name:`order_lines`,label:`Order line`,idField:`id`,fields:[{field:`id`,type:`number`,primaryKey:!0,readonly:!0},{field:`order_id`,type:`number`,label:`Order #`,readonly:!0},{field:`order_date`,type:`dateString`,label:`Date`,readonly:!0},{field:`customer`,type:`text`,label:`Customer`,readonly:!0},{field:`product`,type:`text`,label:`Product`,readonly:!0},{field:`category`,type:`text`,label:`Category`,readonly:!0},{field:`quantity`,type:`number`,label:`Qty`,readonly:!0},{field:`unit_price`,type:`number`,label:`Unit Price ($)`,readonly:!0},{field:`line_total`,type:`number`,label:`Line Total ($)`,readonly:!0},{field:`ship_country`,type:`text`,label:`Ship To`,readonly:!0}]},bk=[{id:1,name:`Chai`,category_id:1,unit_price:18,units_in_stock:39,discontinued:!1},{id:2,name:`Chang`,category_id:1,unit_price:19,units_in_stock:17,discontinued:!1},{id:3,name:`Aniseed Syrup`,category_id:2,unit_price:10,units_in_stock:13,discontinued:!1},{id:4,name:`Chef Anton's Cajun Seasoning`,category_id:2,unit_price:22,units_in_stock:53,discontinued:!1},{id:5,name:`Grandma's Boysenberry Spread`,category_id:2,unit_price:25,units_in_stock:120,discontinued:!1},{id:6,name:`Uncle Bob's Organic Dried Pears`,category_id:7,unit_price:30,units_in_stock:15,discontinued:!1},{id:7,name:`Northwoods Cranberry Sauce`,category_id:2,unit_price:40,units_in_stock:6,discontinued:!1},{id:8,name:`Mishi Kobe Niku`,category_id:6,unit_price:97,units_in_stock:29,discontinued:!0},{id:9,name:`Ikura`,category_id:8,unit_price:31,units_in_stock:31,discontinued:!1},{id:10,name:`Queso Cabrales`,category_id:4,unit_price:21,units_in_stock:22,discontinued:!1},{id:11,name:`Konbu`,category_id:8,unit_price:6,units_in_stock:24,discontinued:!1},{id:12,name:`Tofu`,category_id:7,unit_price:23.25,units_in_stock:35,discontinued:!1},{id:13,name:`Genen Shouyu`,category_id:2,unit_price:15.5,units_in_stock:39,discontinued:!1},{id:14,name:`Pavlova`,category_id:3,unit_price:17.45,units_in_stock:29,discontinued:!1},{id:15,name:`Alice Mutton`,category_id:6,unit_price:39,units_in_stock:0,discontinued:!0},{id:16,name:`Carnarvon Tigers`,category_id:8,unit_price:62.5,units_in_stock:42,discontinued:!1}],xk=[{id:1,company:`Alfreds Futterkiste`,contact:`Maria Anders`,city:`Berlin`,country:`Germany`},{id:2,company:`Ana Trujillo Emparedados`,contact:`Ana Trujillo`,city:`México D.F.`,country:`Mexico`},{id:3,company:`Antonio Moreno Taquería`,contact:`Antonio Moreno`,city:`México D.F.`,country:`Mexico`},{id:4,company:`Around the Horn`,contact:`Thomas Hardy`,city:`London`,country:`UK`},{id:5,company:`Berglunds snabbköp`,contact:`Christina Berglund`,city:`Luleå`,country:`Sweden`},{id:6,company:`Blauer See Delikatessen`,contact:`Hanna Moos`,city:`Mannheim`,country:`Germany`},{id:7,company:`Bólido Comidas preparadas`,contact:`Martín Sommer`,city:`Madrid`,country:`Spain`},{id:8,company:`Bon app'`,contact:`Laurence Lebihan`,city:`Marseille`,country:`France`},{id:9,company:`Bottom-Dollar Markets`,contact:`Elizabeth Lincoln`,city:`Tsawassen`,country:`Canada`},{id:10,company:`B's Beverages`,contact:`Victoria Ashworth`,city:`London`,country:`UK`}],Sk=`https://rbnnlzgtfzsylllniozo.supabase.co`,Ck=`sb_publishable_SiT7CxGl4Z_Du1opTYbxVA_VQWumPUN`;function wk(e){return tE({title:e.title,entities:e.entities,screens:e.screens,dataSource:e.dataSource,dataSources:e.sources,theme:{accent:e.accent,...e.mode?{mode:e.mode}:{},...e.preset?{preset:e.preset}:{},shell:{style:e.navStyle??`sidebar`,brand:e.brand,footer:``,navPosition:`left`}}})}var Tk=[{id:`live-northwind-pglite`,name:`Northwind · Local Postgres`,description:`The Northwind sample on a real in-browser Postgres (PGlite). Full CRUD, no server, no keys.`,emoji:`🐘`,accent:`#2f6f4f`,build:()=>wk({title:`Northwind (Local Postgres)`,brand:`Northwind`,accent:`#2f6f4f`,preset:`material`,dataSource:`pglite`,entities:[_k,vk],screens:[tD(_k,{id:`overview`,title:`Overview`,order:0},[{kpi:`Products`,reduce:`count`,span:1},{kpi:`Avg price`,measure:`unit_price`,reduce:`avg`,format:`currency`,span:1},{kpi:`In stock`,measure:`units_in_stock`,reduce:`sum`,span:1},{kpi:`Priciest`,measure:`unit_price`,reduce:`max`,format:`currency`,span:1},{chart:`category_id`,measure:`unit_price`,reduce:`sum`,type:`bar`,span:2},{chart:`discontinued`,reduce:`count`,type:`pie`,span:1},{grid:!0,rowLink:{screen:`product-detail`,sourceField:`id`,targetField:`id`},span:3}]),sD(_k,{id:`product-detail`,title:`Product`,order:1},{titleField:`name`,metricFields:[`unit_price`,`units_in_stock`],sections:[{label:`Catalog`,fields:[`category_id`,`discontinued`]}]}),rD(vk,{id:`customers`,title:`Customers`,order:2},{grid:{rowLink:{screen:`customer-detail`,sourceField:`id`,targetField:`id`}}}),sD(vk,{id:`customer-detail`,title:`Customer`,order:3},{titleField:`company`,subtitleField:`contact`,sections:[{label:`Location`,fields:[`city`,`country`]}]})],sources:{products:{kind:`pglite`,table:`products`,seed:bk},customers:{kind:`pglite`,table:`customers`,seed:xk}}})},{id:`live-northwind-supabase`,name:`Northwind · Supabase`,description:`A hosted, read-only Northwind on Supabase. Browse the five-table order_lines join view live over PostgREST.`,emoji:`⚡`,accent:`#3ecf8e`,build:()=>wk({title:`Northwind (Supabase)`,brand:`Northwind`,accent:`#3ecf8e`,mode:`dark`,preset:`vercel`,dataSource:`supabase`,entities:[yk,_k,vk],screens:[tD(yk,{id:`sales`,title:`Sales`,order:0},[{kpi:`Line items`,reduce:`count`,span:1},{kpi:`Revenue`,measure:`line_total`,reduce:`sum`,format:`currency`,span:1},{kpi:`Avg line`,measure:`line_total`,reduce:`avg`,format:`currency`,span:1},{kpi:`Units sold`,measure:`quantity`,reduce:`sum`,span:1},{chart:`category`,measure:`line_total`,reduce:`sum`,type:`bar`,span:2},{chart:`ship_country`,measure:`line_total`,reduce:`sum`,type:`pie`,span:1},{chart:`product`,measure:`line_total`,reduce:`sum`,type:`bar`,span:3},{filter:[`category`,`ship_country`],span:3},{grid:!0,span:3}]),rD(_k,{id:`products`,title:`Products`,order:1},{grid:{rowLink:{screen:`product-360`,sourceField:`id`,targetField:`id`}}}),sD(_k,{id:`product-360`,title:`Product`,order:2},{titleField:`name`,metricFields:[`unit_price`,`units_in_stock`],sections:[{label:`Catalog`,fields:[`category_id`,`discontinued`]}],related:[{entity:`order_lines`,foreignKey:`product`,parentField:`name`,label:`Orders`,titleField:`customer`,subtitleField:`line_total`,dateField:`order_date`}]}),rD(vk,{id:`customers`,title:`Customers`,order:3},{grid:{rowLink:{screen:`customer-360`,sourceField:`id`,targetField:`id`}}}),sD(vk,{id:`customer-360`,title:`Customer`,order:4},{titleField:`company`,subtitleField:`contact`,sections:[{label:`Location`,fields:[`city`,`country`]}],related:[{entity:`order_lines`,foreignKey:`customer`,parentField:`company`,label:`Orders`,titleField:`product`,subtitleField:`line_total`,dateField:`order_date`}]})],sources:{order_lines:{kind:`supabase`,table:`order_lines`,url:Sk,key:Ck},products:{kind:`supabase`,table:`products`,url:Sk,key:Ck},customers:{kind:`supabase`,table:`customers`,url:Sk,key:Ck}}})},{id:`live-dummyjson-rest`,name:`Products · Live REST`,description:`A live product feed from the public DummyJSON API over createRestDataSource. No backend, no keys.`,emoji:`🛰️`,accent:`#6d5efc`,build:()=>{let e={name:`products`,label:`Product`,idField:`id`,fields:[{field:`id`,type:`number`,primaryKey:!0,readonly:!0},{field:`title`,type:`text`,label:`Product`},{field:`brand`,type:`text`,label:`Brand`},{field:`category`,type:`text`,label:`Category`},{field:`price`,type:`number`,label:`Price ($)`},{field:`rating`,type:`number`,label:`Rating`},{field:`stock`,type:`number`,label:`Stock`}]};return wk({title:`Live Products (REST)`,brand:`Live Feed`,accent:`#6d5efc`,preset:`shadcn`,dataSource:`rest`,entities:[e],screens:[tD(e,{id:`catalog`,title:`Catalog`,order:0},[{kpi:`Products`,reduce:`count`,span:1},{kpi:`Avg price`,measure:`price`,reduce:`avg`,format:`currency`,span:1},{kpi:`Avg rating`,measure:`rating`,reduce:`avg`,span:1},{kpi:`In stock`,measure:`stock`,reduce:`sum`,span:1},{chart:`category`,reduce:`count`,type:`bar`,span:2},{chart:`brand`,measure:`price`,reduce:`avg`,type:`bar`,span:1},{filter:[`category`,`brand`],span:3},{grid:!0,pageSize:200,rowLink:{screen:`product-detail`,sourceField:`id`,targetField:`id`},span:3}]),sD(e,{id:`product-detail`,title:`Product`,order:1},{titleField:`title`,subtitleField:`brand`,metricFields:[`price`,`rating`,`stock`],sections:[{label:`Details`,fields:[`category`,`brand`]}]})],sources:{products:{kind:`rest`,baseUrl:`https://dummyjson.com`,path:`products`,method:`GET`,params:[{name:`limit`,location:`query`,type:`number`,value:`0`}],rowsPath:`products`,totalPath:`total`}}})}}],Ek=[_D,wD,VD,qD,$D,FD,sO,mO,AD,bO,DO,PO,VO,JO,tk,lk,gk];function Dk(e){return!!e&&typeof e==`object`&&e.__svgridDetail===!0}function Ok(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function kk(e,t,n){let r=[];for(let i of e){r.push(i);let e=n(i);t.has(e)&&r.push({__svgridDetail:!0,parent:i,parentId:e})}return r}var Ak=W(`<div class="sv-md-detail svelte-5rv8d"><!></div>`);function jk(e,t){Ze(t,!0);let n=$(t,`containerHeight`,3,320),r=$(t,`detailHeight`,3,200),i=e=>String(e[sb(t.schema)]),a=F(()=>db(t.schema)),o=F(()=>db(t.detailSchema)),s=I(un(new Set)),c=F(()=>kk(t.data,H(s),i));function l(e){if(!Dk(e)){if(t.onParentClick){t.onParentClick(i(e));return}L(s,Ok(H(s),i(e)),!0)}}bm(e,{get data(){return H(c)},get columns(){return H(a)},get containerHeight(){return n()},virtualization:!1,isDetailRow:e=>Dk(e),onRowClick:e=>l(e.row),renderDetailRow:(e,n)=>{let i=()=>n?.().row,a=F(()=>i().parent);var s=Ak(),c=R(s);{let e=F(()=>t.getChildren(H(a)));bm(c,{get data(){return H(e)},get columns(){return H(o)},get containerHeight(){return r()}})}N(s),K(e,s)},$$slots:{renderDetailRow:!0}}),Qe()}var Mk=[`sum`,`avg`,`min`,`max`,`count`,`countDistinct`,`first`,`last`];function Nk(e){let t=e.find(e=>e.kind===`dimension`),n=e.find(e=>e.kind===`measure`);return{rows:t?[t.field]:[],cols:[],values:n?[{field:n.field,agg:n.defaultAgg??`sum`,label:n.label,format:n.format}]:[],filters:[]}}var Pk={sum:`Sum`,avg:`Average`,min:`Min`,max:`Max`,count:`Count`,countDistinct:`Distinct count`,first:`First`,last:`Last`},Fk=(e,t)=>{let n=()=>t?.().row,r=()=>t?.().collapsed,i=()=>t?.().onToggle;var a=Rk(),o=R(a),s=e=>{var t=Ik();let n;V(()=>{n=X(t,1,`pvd-chev`,null,n,{"is-collapsed":r()}),Q(t,`aria-label`,r()?`Expand`:`Collapse`)}),U(`click`,t,e=>{e.stopPropagation(),i()()}),K(e,t)},c=e=>{K(e,Lk())};J(o,e=>{n().__pivotExpandable?e(s):e(c,-1)});var l=B(o,2);let u;var d=R(l,!0);N(l),N(a),V(()=>{Ui(a,`padding-left:${n().__pivotDepth*14}px`),u=X(l,1,`pvd-label-text`,null,u,{"is-subtotal":n().__pivotKind===`subtotal`,"is-grand":n().__pivotKind===`grandTotal`}),q(d,n().__pivotLabel)}),K(e,a)},Ik=W(`<button type="button">▾</button>`),Lk=W(`<span class="pvd-chev pvd-chev-placeholder"></span>`),Rk=W(`<span class="pvd-label-cell"><!> <span> </span></span>`),zk=W(`<button type="button" class="pvd-popover-item svelte-jfq1o9"> </button>`),Bk=W(`<div class="pvd-popover svelte-jfq1o9"></div>`),Vk=W(`<div class="pvd-presets svelte-jfq1o9"><button type="button" class="pvd-btn svelte-jfq1o9">Presets ▾</button> <!></div>`),Hk=W(`<button type="button" class="pvd-btn pvd-btn-primary svelte-jfq1o9">Export…</button>`),Uk=W(`<header class="pvd-toolbar svelte-jfq1o9"><strong class="pvd-title svelte-jfq1o9">Pivot designer</strong> <button type="button" class="pvd-btn svelte-jfq1o9" title="Restore the default layout">↺ Reset</button> <!> <label class="pvd-toggle svelte-jfq1o9"><input type="checkbox" class="svelte-jfq1o9"/> Subtotals</label> <label class="pvd-toggle svelte-jfq1o9"><input type="checkbox" class="svelte-jfq1o9"/> Grand totals</label> <div class="pvd-spacer svelte-jfq1o9"></div> <!></header>`),Wk=W(`<div draggable="true" role="button" tabindex="0"><input type="checkbox"/> <span class="pvd-field-label svelte-jfq1o9"> </span> <span class="pvd-field-kind svelte-jfq1o9"> </span></div>`),Gk=W(`<div class="pvd-group-head svelte-jfq1o9"> </div> <!>`,1),Kk=W(`<div class="pvd-empty svelte-jfq1o9"> </div>`),qk=W(`<aside class="pvd-rail svelte-jfq1o9" aria-label="Available fields"><input type="search" class="pvd-search svelte-jfq1o9" placeholder="Search fields…"/> <div class="pvd-fieldlist svelte-jfq1o9"><!> <!></div></aside>`),Jk=W(`<label class="pvd-popover-item pvd-popover-check svelte-jfq1o9"><input type="checkbox" class="svelte-jfq1o9"/> <span> </span></label>`),Yk=W(`<div class="pvd-popover pvd-popover-filter svelte-jfq1o9"><div class="pvd-popover-head svelte-jfq1o9"><button type="button" class="pvd-popover-mini svelte-jfq1o9">All</button> <button type="button" class="pvd-popover-mini svelte-jfq1o9">None</button></div> <div class="pvd-popover-list svelte-jfq1o9"></div></div>`),Xk=W(`<div class="pvd-chip svelte-jfq1o9" draggable="true"><button type="button" class="pvd-chip-label svelte-jfq1o9"> </button> <button type="button" class="pvd-chip-x svelte-jfq1o9" aria-label="Remove">×</button> <!></div>`),Zk=W(`<span class="pvd-well-hint svelte-jfq1o9">drop fields here to filter the source rows</span>`),Qk=W(`<div><div class="pvd-well-head svelte-jfq1o9">Filters</div> <div class="pvd-well-body svelte-jfq1o9"><!> <!></div></div>`),$k=W(`<div class="pvd-chip svelte-jfq1o9" draggable="true"><span class="pvd-chip-label svelte-jfq1o9"> </span> <button type="button" class="pvd-chip-x svelte-jfq1o9" aria-label="Remove">×</button></div>`),eA=W(`<span class="pvd-well-hint svelte-jfq1o9">drop dimensions to pivot along the column axis</span>`),tA=W(`<div class="pvd-chip svelte-jfq1o9" draggable="true"><span class="pvd-chip-label svelte-jfq1o9"> </span> <button type="button" class="pvd-chip-x svelte-jfq1o9" aria-label="Remove">×</button></div>`),nA=W(`<span class="pvd-well-hint svelte-jfq1o9">drop dimensions to group rows</span>`),rA=W(`<button type="button"> </button>`),iA=W(`<div class="pvd-popover svelte-jfq1o9"></div>`),aA=W(`<div class="pvd-chip pvd-chip-value svelte-jfq1o9" draggable="true"><button type="button" class="pvd-chip-label svelte-jfq1o9"><span class="pvd-chip-agg svelte-jfq1o9"> </span> <span class="pvd-chip-sep svelte-jfq1o9">·</span> <span> </span></button> <button type="button" class="pvd-chip-x svelte-jfq1o9" aria-label="Remove">×</button> <!></div>`),oA=W(`<span class="pvd-well-hint svelte-jfq1o9">drop measures to aggregate</span>`),sA=W(`Drop at least one <strong>measure</strong> into Values to render the pivot.`,1),cA=W(`<div class="pvd-empty pvd-grid-empty svelte-jfq1o9"><!></div>`),lA=W(`<div class="pvd-grid svelte-jfq1o9"><!></div>`),uA=W(`<section class="pvd svelte-jfq1o9"><!> <div><!> <div class="pvd-main svelte-jfq1o9"><div><!> <div><div class="pvd-well-head svelte-jfq1o9">Columns</div> <div class="pvd-well-body svelte-jfq1o9"><!> <!></div></div> <div><div class="pvd-well-head svelte-jfq1o9">Rows</div> <div class="pvd-well-body svelte-jfq1o9"><!> <!></div></div> <div><div class="pvd-well-head svelte-jfq1o9">Values</div> <div class="pvd-well-body svelte-jfq1o9"><!> <!></div></div></div> <!></div></div></section>`);function dA(e,t){Ze(t,!0);let n=$(t,`layout`,31,()=>un(Nk([]))),r=$(t,`aggregators`,3,Mk),i=$(t,`showToolbar`,3,!0),a=$(t,`showFieldList`,3,!0),o=$(t,`showFiltersWell`,3,!0),s=$(t,`gridHeight`,3,`100%`),c=$(t,`embedGrid`,3,!0),l=$(t,`expandable`,3,!1);zn(()=>{(!n()||!n().rows.length&&!n().cols.length&&!n().values.length&&!n().filters.length)&&n(Nk(t.fields))});let u=oo({rowSortingFeature:ro,columnFilteringFeature:io}),d=`pvd-${Math.random().toString(36).slice(2,8)}`,f=F(()=>new Map(t.fields.map(e=>[e.field,e])));function p(e){return n().rows.includes(e)||n().cols.includes(e)||n().values.some(t=>t.field===e)||n().filters.some(t=>t.field===e)}let m=I(``),h=F(()=>t.fields.filter(e=>!H(m).trim()||e.label.toLowerCase().includes(H(m).trim().toLowerCase()))),g=F(()=>{let e=new Map;for(let t of H(h)){let n=t.group??(t.kind===`dimension`?`Dimensions`:`Measures`),r=e.get(n)??[];r.push(t),e.set(n,r)}return[...e.entries()]});function _(e){n(e),t.onLayoutChange?.(e)}function v(e){return e.kind===`measure`?`values`:`rows`}function y(e,t,r=1/0,i){let a=H(f).get(e);if(!a)return;let o={...n(),rows:n().rows.filter(t=>t!==e),cols:n().cols.filter(t=>t!==e),values:i===void 0?n().values.slice():n().values.filter((e,t)=>t!==i),filters:n().filters.filter(t=>t.field!==e)};if(t===`rows`||t===`cols`){let n=o[t];n.splice(Math.min(n.length,r),0,e)}else if(t===`values`){let t=a.defaultAgg??`sum`;if(o.values.some(n=>n.field===e&&n.agg===t)){_(o);return}let n={field:e,agg:t,label:a.label,format:a.format};o.values.splice(Math.min(o.values.length,r),0,n)}else t===`filters`&&o.filters.splice(Math.min(o.filters.length,r),0,{field:e,allowed:null});_(o)}function b(e,t,r){let i={...n()};t===`rows`?i.rows=n().rows.filter(t=>t!==e):t===`cols`?i.cols=n().cols.filter(t=>t!==e):t===`values`?i.values=r===void 0?n().values.filter(t=>t.field!==e):n().values.filter((e,t)=>t!==r):t===`filters`&&(i.filters=n().filters.filter(t=>t.field!==e)),_(i)}function x(e){let t=H(f).get(e);t&&(p(e)?_({...n(),rows:n().rows.filter(t=>t!==e),cols:n().cols.filter(t=>t!==e),values:n().values.filter(t=>t.field!==e),filters:n().filters.filter(t=>t.field!==e)}):y(e,v(t)))}function S(e,t){let r=n().values[e];if(!r)return;let i=r.field,a=n().values.some((n,r)=>r!==e&&n.field===i&&n.agg===t),o=Pk[t]+` of `+(H(f).get(i)?.label??i);_({...n(),values:a?n().values.filter((t,n)=>n!==e):n().values.map((n,r)=>r===e?{...n,agg:t,label:o}:n)})}function C(e,t){_({...n(),filters:n().filters.map(n=>n.field===e?{...n,allowed:t}:n)})}function w(){_({...n(),hideSubtotals:!n().hideSubtotals})}function E(){_({...n(),hideGrandTotals:!n().hideGrandTotals})}function D(){_(Nk(t.fields))}function O(e){_(structuredClone(e.layout))}let ee=I(null),te=I(null),ne=I(void 0),re=I(null);function ie(e,t,n,r){L(ee,t,!0),L(te,n,!0),L(ne,r,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t))}function ae(e,t){e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),L(re,t,!0)}function oe(){L(re,null)}function se(e,t){e.preventDefault(),L(re,null);let n=H(ee)||e.dataTransfer?.getData(`text/plain`)||``;n&&(y(n,t,1/0,H(te)===`values`?H(ne):void 0),L(ee,null),L(te,null),L(ne,void 0))}let ce=F(()=>n().filters.length?t.data.filter(e=>{for(let t of n().filters){if(t.allowed==null)continue;let n=e[t.field];if(!t.allowed.includes(String(n)))return!1}return!0}):t.data),le=F(()=>!n().values.length&&!n().rows.length&&!n().cols.length||!n().values.length?null:ib(H(ce),{rows:n().rows,cols:n().cols,values:n().values.map(e=>({field:e.field,agg:e.agg,label:e.label,format:e.format})),grandTotalRow:!n().hideGrandTotals,grandTotalCol:!n().hideGrandTotals,rowSubtotals:!n().hideSubtotals}));Ln(()=>{H(le)&&t.onPivot?.(H(le).rows,H(le).columns)});let ue=I(un(new Set)),k=I(``);Ln(()=>{if(!H(le))return;let e=H(le).rows.map(e=>e.__pivotId).join(`|`);if(e!==H(k)){L(k,e,!0);let t=new Set(H(le).rows.map(e=>e.__pivotId)),n=new Set;for(let e of H(ue))t.has(e)&&n.add(e);n.size!==H(ue).size&&L(ue,n,!0)}});function A(e){let t=new Set(H(ue));t.has(e)?t.delete(e):t.add(e),L(ue,t,!0)}let j=F(()=>{if(!H(le))return[];if(!l()||H(ue).size===0)return H(le).rows;let e=new Set;for(let t of H(le).rows)t.__pivotExpandable&&!H(ue).has(t.__pivotId)&&e.add(t.__pivotId);return ab(H(le).rows,e)}),de=F(()=>{if(!H(le))return[];let e=H(le).columns;if(e.length&&n().rows.length){let t=n().rows.map(e=>H(f).get(e)?.label??e).join(` / `);e=[{...e[0],header:t},...e.slice(1)]}return l()&&(e=e.map((e,t)=>t===0?{...e,cell:e=>Do(Fk,{row:e.row.original,collapsed:H(ue).has(e.row.original.__pivotId),onToggle:()=>A(e.row.original.__pivotId)})}:e)),t.decorateColumns?t.decorateColumns(e,n()):e});function M(e){let n=new Set;for(let r of t.data)n.add(String(r[e]));return[...n].sort((e,t)=>e.localeCompare(t))}let fe=I(null);function pe(e){H(fe)?.kind===`filter`&&H(fe).field===e?L(fe,null):L(fe,{kind:`filter`,field:e},!0)}function me(e){H(fe)?.kind===`agg`&&H(fe).index===e?L(fe,null):L(fe,{kind:`agg`,index:e},!0)}function he(){L(fe,null)}Ln(()=>{if(!H(fe))return;function e(e){let t=e.target;t&&t.closest(`[data-pvd-menu="${d}"]`)||L(fe,null)}return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)});let ge=I(!1);function _e(){L(ge,!H(ge))}Ln(()=>{if(!H(ge))return;function e(e){let t=e.target;t&&t.closest(`[data-pvd-presets="${d}"]`)||L(ge,!1)}return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)});var ve=uA(),ye=R(ve),be=e=>{var r=Uk(),i=B(R(r),2),a=B(i,2),o=e=>{var n=Vk(),r=R(n),i=B(r,2),a=e=>{var n=Bk();Y(n,21,()=>t.presets,e=>e.name,(e,t)=>{var n=zk(),r=R(n,!0);N(n),V(()=>q(r,H(t).name)),U(`click`,n,()=>{O(H(t)),L(ge,!1)}),K(e,n)}),N(n),K(e,n)};J(i,e=>{H(ge)&&e(a)}),N(n),V(()=>Q(n,`data-pvd-presets`,d)),U(`click`,r,_e),K(e,n)};J(a,e=>{t.presets?.length&&e(o)});var s=B(a,2),c=R(s);Z(c),P(),N(s);var l=B(s,2),u=R(l);Z(u),P(),N(l);var f=B(l,4),p=e=>{var r=Hk();U(`click`,r,()=>t.onExport(n(),H(le).rows)),K(e,r)};J(f,e=>{t.onExport&&H(le)&&e(p)}),N(r),V(()=>{ia(c,!n().hideSubtotals),ia(u,!n().hideGrandTotals)}),U(`click`,i,D),U(`change`,c,w),U(`change`,u,E),K(e,r)};J(ye,e=>{i()&&e(be)});var xe=B(ye,2);let Se;var Ce=R(xe),we=e=>{var t=qk(),n=R(t);Z(n);var r=B(n,2),i=R(r);Y(i,17,()=>H(g),([e,t])=>e,(e,t)=>{var n=F(()=>T(H(t),2));let r=()=>H(n)[0],i=()=>H(n)[1];var a=Gk(),o=z(a),s=R(o,!0);N(o),Y(B(o,2),17,i,e=>e.field,(e,t)=>{let n=F(()=>p(H(t).field));var r=Wk();let i;var a=R(r);Z(a);var o=B(a,2),s=R(o,!0);N(o);var c=B(o,2),l=R(c,!0);N(c),N(r),V(()=>{i=X(r,1,`pvd-field svelte-jfq1o9`,null,i,{"in-use":H(n)}),ia(a,H(n)),Q(a,`aria-label`,`Toggle ${H(t).label}`),q(s,H(t).label),q(l,H(t).kind===`dimension`?`D`:`Σ`)}),Jr(`dragstart`,r,e=>ie(e,H(t).field,`rail`)),U(`keydown`,r,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(H(t).field))}),U(`change`,a,()=>x(H(t).field)),K(e,r)}),V(()=>q(s,r())),K(e,a)});var a=B(i,2),o=e=>{var t=Kk(),n=R(t);N(t),V(()=>q(n,`No fields match "${H(m)??``}"`)),K(e,t)};J(a,e=>{H(h).length||e(o)}),N(r),N(t),fa(n,()=>H(m),e=>L(m,e)),K(e,t)};J(Ce,e=>{a()&&e(we)});var Te=B(Ce,2),Ee=R(Te);let De;var Oe=R(Ee),ke=e=>{var t=Qk();let r;var i=B(R(t),2),a=R(i);Y(a,17,()=>n().filters,e=>e.field,(e,t)=>{let n=F(()=>H(f).get(H(t).field));var r=Xk(),i=R(r),a=R(i);N(i);var o=B(i,2),s=B(o,2),c=e=>{let n=F(()=>M(H(t).field));var r=Yk(),i=R(r),a=R(i),o=B(a,2);N(i);var s=B(i,2);Y(s,20,()=>H(n),e=>e,(e,r)=>{let i=F(()=>H(t).allowed==null||H(t).allowed.includes(r));var a=Jk(),o=R(a);Z(o);var s=B(o,2),c=R(s,!0);N(s),N(a),V(()=>{ia(o,H(i)),q(c,r)}),U(`change`,o,()=>{let e=H(t).allowed??H(n).slice(),i=e.includes(r)?e.filter(e=>e!==r):[...e,r];C(H(t).field,i.length===H(n).length?null:i)}),K(e,a)}),N(s),N(r),V(()=>Q(r,`data-pvd-menu`,d)),U(`click`,a,()=>C(H(t).field,null)),U(`click`,o,()=>C(H(t).field,[])),K(e,r)};J(s,e=>{H(fe)?.kind===`filter`&&H(fe)?.field===H(t).field&&e(c)}),N(r),V(()=>q(a,`${H(n)?.label??H(t).field??``}${H(t).allowed?` (${H(t).allowed.length})`:``}`)),Jr(`dragstart`,r,e=>ie(e,H(t).field,`filters`)),U(`click`,i,()=>pe(H(t).field)),U(`click`,o,()=>b(H(t).field,`filters`)),K(e,r)});var o=B(a,2),s=e=>{K(e,Zk())};J(o,e=>{n().filters.length||e(s)}),N(i),N(t),V(()=>r=X(t,1,`pvd-well svelte-jfq1o9`,null,r,{"drag-over":H(re)===`filters`})),Jr(`dragover`,t,e=>ae(e,`filters`)),Jr(`dragleave`,t,oe),Jr(`drop`,t,e=>se(e,`filters`)),K(e,t)};J(Oe,e=>{o()&&e(ke)});var Ae=B(Oe,2);let je;var Me=B(R(Ae),2),Ne=R(Me);Y(Ne,16,()=>n().cols,e=>e,(e,t)=>{let n=F(()=>H(f).get(t));var r=$k(),i=R(r),a=R(i,!0);N(i);var o=B(i,2);N(r),V(()=>q(a,H(n)?.label??t)),Jr(`dragstart`,r,e=>ie(e,t,`cols`)),U(`click`,o,()=>b(t,`cols`)),K(e,r)});var Pe=B(Ne,2),Fe=e=>{K(e,eA())};J(Pe,e=>{n().cols.length||e(Fe)}),N(Me),N(Ae);var Ie=B(Ae,2);let Le;var Re=B(R(Ie),2),ze=R(Re);Y(ze,16,()=>n().rows,e=>e,(e,t)=>{let n=F(()=>H(f).get(t));var r=tA(),i=R(r),a=R(i,!0);N(i);var o=B(i,2);N(r),V(()=>q(a,H(n)?.label??t)),Jr(`dragstart`,r,e=>ie(e,t,`rows`)),U(`click`,o,()=>b(t,`rows`)),K(e,r)});var Be=B(ze,2),Ve=e=>{K(e,nA())};J(Be,e=>{n().rows.length||e(Ve)}),N(Re),N(Ie);var He=B(Ie,2);let Ue;var We=B(R(He),2),Ge=R(We);Y(Ge,19,()=>n().values,(e,t)=>e.field+`|`+e.agg+`|`+t,(e,t,n)=>{let i=F(()=>H(f).get(H(t).field));var a=aA(),o=R(a),s=R(o),c=R(s,!0);N(s);var l=B(s,4),u=R(l,!0);N(l),N(o);var p=B(o,2),m=B(p,2),h=e=>{var i=iA();Y(i,20,r,e=>e,(e,r)=>{var i=rA();let a;var o=R(i,!0);N(i),V(()=>{a=X(i,1,`pvd-popover-item svelte-jfq1o9`,null,a,{"is-active":H(t).agg===r}),q(o,Pk[r])}),U(`click`,i,()=>{S(H(n),r),he()}),K(e,i)}),N(i),V(()=>Q(i,`data-pvd-menu`,d)),K(e,i)};J(m,e=>{H(fe)?.kind===`agg`&&H(fe).index===H(n)&&e(h)}),N(a),V(()=>{q(c,Pk[H(t).agg]),q(u,H(i)?.label??H(t).field)}),Jr(`dragstart`,a,e=>ie(e,H(t).field,`values`,H(n))),U(`click`,o,()=>me(H(n))),U(`click`,p,()=>b(H(t).field,`values`,H(n))),K(e,a)});var Ke=B(Ge,2),qe=e=>{K(e,oA())};J(Ke,e=>{n().values.length||e(qe)}),N(We),N(He),N(Ee);var Je=B(Ee,2),Ye=e=>{var r=lA(),i=R(r),a=e=>{bm(e,{get data(){return H(j)},get columns(){return H(de)},get features(){return u},sortable:!0,filterable:!0,selectionMode:`none`,rowHeight:32,containerHeight:`100%`,fitColumns:!0,enableRowSummaries:!1,get onCellClick(){return t.onCellClick}})},o=e=>{var t=cA(),r=R(t),i=e=>{var t=sA();P(2),K(e,t)},a=e=>{K(e,ri(`No data.`))};J(r,e=>{n().values.length?e(a,-1):e(i)}),N(t),K(e,t)};J(i,e=>{H(le)?e(a):e(o,-1)}),N(r),V(()=>Ui(r,`height:${typeof s()==`number`?s()+`px`:s()}`)),K(e,r)};J(Je,e=>{c()&&e(Ye)}),N(Te),N(xe),N(ve),V(()=>{Q(ve,`data-uid`,d),Se=X(xe,1,`pvd-body svelte-jfq1o9`,null,Se,{"no-rail":!a()}),De=X(Ee,1,`pvd-wells svelte-jfq1o9`,null,De,{two:!o()}),je=X(Ae,1,`pvd-well svelte-jfq1o9`,null,je,{"drag-over":H(re)===`cols`}),Le=X(Ie,1,`pvd-well svelte-jfq1o9`,null,Le,{"drag-over":H(re)===`rows`}),Ue=X(He,1,`pvd-well svelte-jfq1o9`,null,Ue,{"drag-over":H(re)===`values`})}),Jr(`dragover`,Ae,e=>ae(e,`cols`)),Jr(`dragleave`,Ae,oe),Jr(`drop`,Ae,e=>se(e,`cols`)),Jr(`dragover`,Ie,e=>ae(e,`rows`)),Jr(`dragleave`,Ie,oe),Jr(`drop`,Ie,e=>se(e,`rows`)),Jr(`dragover`,He,e=>ae(e,`values`)),Jr(`dragleave`,He,oe),Jr(`drop`,He,e=>se(e,`values`)),K(e,ve),Qe()}Yr([`click`,`change`,`keydown`]);var fA=G(`<svg class="sv-ic svelte-psjrav" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path></path></svg>`),pA=W(`<div> </div>`),mA=W(`<th class="svelte-psjrav"> </th>`),hA=W(`<td class="svelte-psjrav"> </td>`),gA=W(`<tr class="svelte-psjrav"></tr>`),_A=W(`<span class="sv-studio__req-hint svelte-psjrav">None of these keys match your schema fields - <strong>Import fields</strong> to make the grid show this data.</span>`),vA=W(`<div class="sv-studio__req-resp svelte-psjrav"><div class="sv-studio__req-resp-head svelte-psjrav"><span>Response <small class="svelte-psjrav"> </small></span> <button type="button" class="sv-studio__req-import svelte-psjrav"><!> </button></div> <div class="sv-studio__req-preview svelte-psjrav"><table class="svelte-psjrav"><thead><tr></tr></thead><tbody class="svelte-psjrav"></tbody></table></div> <!></div>`),yA=W(`<!> <!>`,1),bA=W(`<span> </span>`),xA=G(`<svg class="sv-studio__kpi-spark svelte-psjrav" viewBox="0 0 120 30" preserveAspectRatio="none" aria-hidden="true"><polyline fill="none" stroke="currentColor" stroke-width="1.5" vector-effect="non-scaling-stroke"></polyline></svg>`),SA=W(`<span class="sv-studio__kpi-sub svelte-psjrav"> </span>`),CA=W(`<div class="sv-studio__kpi svelte-psjrav"><span class="sv-studio__kpi-label svelte-psjrav"> </span> <strong class="sv-studio__kpi-value svelte-psjrav"> </strong> <!> <!></div>`),wA=W(`<div class="sv-studio__gauge svelte-psjrav"><span class="sv-studio__kpi-label svelte-psjrav"> </span> <!></div>`),TA=W(`<div class="sv-studio__treewrap svelte-psjrav"><!></div>`),EA=W(`<p class="sv-studio__placeholder svelte-psjrav">Set a label field + a self-referential parent field in the inspector.</p>`),DA=W(`<div role="button" tabindex="0"><!></div>`),OA=W(`<div class="sv-studio__tabpanel svelte-psjrav"></div>`),kA=W(`<p class="sv-studio__placeholder svelte-psjrav">Empty tab - add blocks in the inspector.</p>`),AA=W(`<input type="search" placeholder="Search…" class="svelte-psjrav"/>`),jA=W(`<select class="svelte-psjrav"><option>Any</option><option>Yes</option><option>No</option></select>`),MA=W(`<option> </option>`),NA=W(`<select class="svelte-psjrav"><option>Any</option><!></select>`),PA=W(`<option> </option>`),FA=W(`<select class="svelte-psjrav"><option>Any</option><!></select>`),IA=W(`<label class="sv-studio__facet-row svelte-psjrav"><span> </span> <!></label>`),LA=W(`<span class="sv-studio__hint svelte-psjrav">Pick fields in the inspector.</span>`),RA=W(`<div class="sv-studio__facet svelte-psjrav"><div class="sv-studio__facet-title svelte-psjrav"> </div> <!> <!></div>`),zA=W(`<p class="sv-studio__record-empty svelte-psjrav"><!><span> </span></p>`),BA=W(`<span class="sv-studio__pres-badge svelte-psjrav"><!> </span>`),VA=W(`<!> <!>`,1),HA=W(`<div class="sv-studio__record-row svelte-psjrav"><dt class="svelte-psjrav"> </dt><dd class="svelte-psjrav"> </dd></div>`),UA=W(`<dl class="sv-studio__record svelte-psjrav"></dl>`),WA=W(`<div class="sv-studio__placeholder svelte-psjrav"> </div>`),GA=W(`<button type="button" title="Open inspector">Inspector</button>`),KA=W(`<div class="sv-studio__mode svelte-psjrav" role="group" aria-label="Color mode"><button type="button">Light</button> <button type="button">Dark</button></div>`),qA=W(`<button type="button" role="radio"><span class="sv-studio__theme-swatch svelte-psjrav" aria-hidden="true"><span class="sv-studio__theme-bar svelte-psjrav"></span> <span class="sv-studio__theme-dot svelte-psjrav"></span> <span class="sv-studio__theme-line svelte-psjrav"></span> <span class="sv-studio__theme-line sv-studio__theme-line--short svelte-psjrav"></span></span> <span class="sv-studio__theme-name svelte-psjrav"> </span></button>`),JA=W(`<button type="button" class="sv-studio__mini-link svelte-psjrav">Reset to theme</button>`),YA=W(`<div class="sv-studio__theme-backdrop svelte-psjrav"></div> <div class="sv-studio__theme-pop svelte-psjrav" role="dialog" aria-label="App theme"><!> <div class="sv-studio__themes svelte-psjrav" role="radiogroup" aria-label="App theme"></div> <label class="sv-studio__prop sv-studio__theme-accent svelte-psjrav">Accent <span class="sv-studio__accent-row svelte-psjrav"><input type="color" class="svelte-psjrav"/> <!></span></label> <label class="sv-studio__prop sv-studio__theme-accent svelte-psjrav">Custom CSS <textarea class="sv-studio__theme-css svelte-psjrav" rows="4"></textarea> <span class="sv-studio__hint svelte-psjrav">Appended to the generated <code>app.css</code> - override <code>--sg-*</code> tokens or any class to brand the app.</span></label></div>`,1),XA=W(`<span title="Your work autosaves to this browser"> </span>`),ZA=W(`<button type="button" title="Edit the app with AI">✨ Copilot</button>`),QA=W(`<button type="button" title="See how your entities relate"><!>Data model</button>`),$A=W(`<button type="button" class="sv-studio__menu-item svelte-psjrav" role="menuitem"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">Use my data</strong><small class="svelte-psjrav">Bind these entities to a live database</small></span></button>`),ej=W(`<button type="button" class="sv-studio__menu-item svelte-psjrav" role="menuitem"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">Connect DB</strong><small class="svelte-psjrav">Read tables from an existing database</small></span></button> <!>`,1),tj=W(`<div class="sv-studio__menu-backdrop svelte-psjrav"></div> <div class="sv-studio__menu-pop svelte-psjrav" role="menu" aria-label="Add data"><button type="button" class="sv-studio__menu-item svelte-psjrav" role="menuitem"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">New entity</strong><small class="svelte-psjrav">Start from an empty schema</small></span></button> <label class="sv-studio__menu-item svelte-psjrav" title="Import a CSV / spreadsheet as a new entity"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">Import CSV</strong><small class="svelte-psjrav">Infer a schema + rows from a file</small></span> <input type="file" accept=".csv,text/csv" style="display:none"/></label> <button type="button" class="sv-studio__menu-item svelte-psjrav" role="menuitem"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">Get a database</strong><small class="svelte-psjrav">Provision Neon / Supabase / Turso</small></span></button> <!> <button type="button" class="sv-studio__menu-item svelte-psjrav" role="menuitem"><!><span class="svelte-psjrav"><strong class="svelte-psjrav">Import schema</strong><small class="svelte-psjrav">Paste a Drizzle / Prisma schema</small></span></button></div>`,1),nj=W(`<div class="sv-studio__io sv-studio__io--restore svelte-psjrav"><span class="sv-studio__issue svelte-psjrav"><!> You have an unsaved draft from your last session.</span> <button type="button" class="sv-studio__tb-btn sv-studio__tb-btn--primary svelte-psjrav">Restore draft</button> <button type="button" class="sv-studio__tb-btn svelte-psjrav">Start fresh</button></div>`),rj=W(`<div class="sv-studio__io svelte-psjrav"><span class="sv-studio__issue sv-studio__issue--ok svelte-psjrav"> </span> <button type="button" class="sv-studio__tb-btn svelte-psjrav">Dismiss</button></div>`),ij=W(`<div class="sv-studio__io svelte-psjrav"><span class="sv-studio__issue sv-studio__issue--error svelte-psjrav"> </span> <button type="button" class="sv-studio__tb-btn svelte-psjrav">Dismiss</button></div>`),aj=W(`<p class="sv-studio__hint svelte-psjrav">Copy this <code>studio.config.json</code>. Regenerate later with <code>npm create @svgrid/studio -- --project ./studio.config.json</code>.</p> <textarea readonly="" rows="6" class="svelte-psjrav"></textarea>`,1),oj=W(`<p class="sv-studio__hint svelte-psjrav">Open a <code>studio.config.json</code> (e.g. from an exported app), or paste one below.</p> <label><!> <span><strong class="svelte-psjrav">Choose a file</strong> or drop <code>studio.config.json</code> here</span> <input type="file" accept="application/json,.json" class="svelte-psjrav"/></label> <textarea rows="5" class="svelte-psjrav"></textarea> <button type="button" class="sv-studio__tb-btn svelte-psjrav">Load pasted project</button>`,1),sj=W(`<p class="sv-studio__hint svelte-psjrav">Paste a Drizzle <code>schema.ts</code> or Prisma <code>schema.prisma</code> to add its entities.</p> <textarea rows="6" class="svelte-psjrav"></textarea> <button type="button" class="sv-studio__tb-btn svelte-psjrav">Import entities</button>`,1),cj=W(`<span class="sv-studio__issue sv-studio__issue--error svelte-psjrav"> </span>`),lj=W(`<div class="sv-studio__io svelte-psjrav"><!> <!></div>`),uj=W(`<button type="button" class="sv-studio__drawer-backdrop svelte-psjrav" aria-label="Close panel"></button>`),dj=W(`<button type="button" class="sv-studio__mini sv-studio__sec-add svelte-psjrav"><!></button>`),fj=W(`<div draggable="true" role="listitem"><button type="button" class="sv-studio__tree-btn svelte-psjrav" title="Drag to reorder"><!><span class="sv-studio__tree-label svelte-psjrav"> </span><small class="sv-studio__tree-route svelte-psjrav"> </small></button> <button type="button" class="sv-studio__tree-x svelte-psjrav" aria-label="Duplicate screen" title="Duplicate screen">⧉</button> <button type="button" class="sv-studio__tree-x svelte-psjrav" aria-label="Delete screen" title="Delete screen"><!></button></div>`),pj=W(`<span class="sv-studio__tree-empty svelte-psjrav">No screens yet.</span>`),mj=W(`<div class="sv-studio__tree-row svelte-psjrav"><span class="sv-studio__tree-btn sv-studio__tree-static svelte-psjrav"><!><span class="sv-studio__tree-label svelte-psjrav"> </span></span> <button type="button" class="sv-studio__tree-x svelte-psjrav"><!></button></div>`),hj=W(`<label class="sv-studio__prop svelte-psjrav">Nav position <select class="svelte-psjrav"><option>Left</option><option>Right</option></select></label>`),gj=W(`<img class="sv-studio__logo-preview svelte-psjrav" alt="Logo"/> <button type="button" class="sv-studio__mini svelte-psjrav">Remove</button>`,1),_j=W(`<input type="file" accept="image/png,image/svg+xml,image/jpeg,image/webp" class="svelte-psjrav"/>`),vj=W(`<button type="button"><!> </button>`),yj=W(`<img class="sv-studio__shelllogo svelte-psjrav"/>`),bj=W(`<!><span class="sv-studio__shellbrand-txt svelte-psjrav"> </span>`,1),xj=W(`<button type="button" class="sv-studio__shellnav-toggle svelte-psjrav" aria-label="Toggle sidebar"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"></path></svg></button>`),Sj=W(`<button type="button"><span class="sv-studio__shellnav-ini svelte-psjrav" aria-hidden="true"> </span><span class="sv-studio__shellnav-lbl svelte-psjrav"> </span></button>`),Cj=W(`<span class="sv-studio__block-warn svelte-psjrav" aria-label="Needs attention">⚠</span>`),wj=W(`<button type="button"> </button>`),Tj=W(`<div class="sv-studio__block-wire svelte-psjrav"><!><span> </span></div>`),Ej=W(`<div><!></div>`),Dj=W(`<span class="sv-studio__block-resize-badge svelte-psjrav"> </span>`),Oj=W(`<div role="separator" aria-orientation="horizontal" aria-label="Resize block height" title="Drag to resize height"><!></div>`),kj=W(`<span class="sv-studio__block-wresize-badge svelte-psjrav"> </span>`),Aj=W(`<section draggable="true" role="button" tabindex="0"><header class="sv-studio__block-head svelte-psjrav"><span class="sv-studio__block-kind svelte-psjrav" title="Drag to reorder"><span class="sv-studio__grip svelte-psjrav" aria-hidden="true">⠿</span><!> <!></span> <div class="sv-studio__block-tools svelte-psjrav"><span class="sv-studio__width svelte-psjrav" role="group" aria-label="Block width"></span> <button type="button" aria-label="Duplicate block" title="Duplicate" class="svelte-psjrav">⧉</button> <button type="button" aria-label="Remove block" class="svelte-psjrav">×</button></div></header> <!> <!> <div role="separator" aria-orientation="vertical" aria-label="Resize block width" title="Drag to resize width"><!></div></section>`),jj=W(`<p class="sv-studio__empty svelte-psjrav">Add a block from the palette to build this screen.</p>`),Mj=W(`<footer class="sv-studio__shellfoot svelte-psjrav"> </footer>`),Nj=W(`<div><nav class="sv-studio__shellnav svelte-psjrav" aria-label="App navigation preview"><div class="sv-studio__shellnav-head svelte-psjrav"><span class="sv-studio__shellbrand svelte-psjrav"><!></span> <!></div> <div class="sv-studio__shellnav-items svelte-psjrav"></div></nav> <div class="sv-studio__shellmain svelte-psjrav"><div class="sv-studio__canvas svelte-psjrav" role="list"><!> <!></div> <!></div></div>`),Pj=W(`<button type="button" class="sv-studio__gen-btn svelte-psjrav"><!>Connect a database</button>`),Fj=W(`<div class="sv-studio__onboard svelte-psjrav"><div class="sv-studio__onboard-card svelte-psjrav"><span class="sv-studio__onboard-mark svelte-psjrav"><!></span> <h3 class="svelte-psjrav">Start your app</h3> <p class="svelte-psjrav">Open a ready-made sample app to see a working design in seconds - then
|
|
936
|
-
tweak it or rebind it to your data. Or start from scratch, a live
|
|
937
|
-
database, or a schema.</p> <div class="sv-studio__onboard-actions svelte-psjrav"><button type="button" class="sv-studio__req-send svelte-psjrav"><!>Browse sample apps</button> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!>New entity</button> <label class="sv-studio__gen-btn svelte-psjrav" title="Import a CSV / spreadsheet"><!>Import CSV <input type="file" accept=".csv,text/csv" style="display:none"/></label> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!>Get a database</button> <!> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!>Import a schema</button></div></div></div>`),Ij=W(`<label class="sv-studio__prop svelte-psjrav">Height (px) <input type="number" step="10" class="svelte-psjrav"/></label> <span class="sv-studio__hint svelte-psjrav">Or drag the bottom edge of the block on the canvas.</span>`,1),Lj=W(`<label class="sv-studio__prop svelte-psjrav">Form style <select class="svelte-psjrav"><option>Modal dialog</option><option>Side drawer</option><option>Inline panel</option></select></label>`),Rj=W(`<option> </option>`),zj=W(`<option> </option>`),Bj=W(`<option> </option>`),Vj=W(`<label class="sv-studio__prop svelte-psjrav">Pass field <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Filter target's <select class="svelte-psjrav"></select></label>`,1),Hj=W(`<option> </option>`),Uj=W(`<option> </option>`),Wj=W(`<select><option disabled="">target screen…</option><!></select>`),Gj=W(`<div class="sv-studio__role svelte-psjrav"><div class="sv-studio__role-head svelte-psjrav"><select class="sv-studio__role-name svelte-psjrav"></select> <button type="button" class="sv-studio__role-x svelte-psjrav" aria-label="Remove action">×</button></div> <input type="text" class="sv-studio__field-name svelte-psjrav"/> <!></div>`),Kj=W(`<button type="button" class="sv-studio__mini svelte-psjrav"><!> </button>`),qj=W(`<option> </option>`),Jj=W(`<option> </option>`),Yj=W(`<input class="sv-studio__fmt-val svelte-psjrav" type="text"/>`),Xj=W(`<div class="sv-studio__role svelte-psjrav"><div class="sv-studio__fmt-row svelte-psjrav"><select class="svelte-psjrav"></select> <select class="svelte-psjrav"></select> <!> <button type="button" class="sv-studio__role-x svelte-psjrav" aria-label="Remove rule">×</button></div> <div class="sv-studio__fmt-style svelte-psjrav"><label title="Text color" class="svelte-psjrav"><input type="color" class="svelte-psjrav"/> text</label> <label title="Background" class="svelte-psjrav"><input type="color" class="svelte-psjrav"/> fill</label> <button type="button">no text</button> <button type="button">no fill</button> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> bold</label></div></div>`),Zj=W(`<label class="sv-studio__prop svelte-psjrav">Page size <input type="number" min="1" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Pager position <select class="svelte-psjrav"><option>Bottom</option><option>Top</option><option>Top & bottom</option></select></label> <label class="sv-studio__prop svelte-psjrav">Page size options <input type="text" placeholder="10, 25, 50, 100" class="svelte-psjrav"/></label>`,1),Qj=W(`<span class="sv-studio__hint svelte-psjrav">All rows load at once - no pager.</span>`),$j=W(`<span class="sv-studio__col-pin svelte-psjrav"> </span>`),eM=W(`<li><details class="sv-studio__col-det svelte-psjrav"><summary class="sv-studio__col-sum svelte-psjrav"><!> <input type="checkbox"/> <span class="sv-studio__col-name svelte-psjrav"> <!></span> <span class="sv-studio__col-move svelte-psjrav"><button type="button" aria-label="Move column up" class="svelte-psjrav">↑</button> <button type="button" aria-label="Move column down" class="svelte-psjrav">↓</button></span></summary> <div class="sv-studio__col-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Header <input type="text" class="svelte-psjrav"/></label> <div class="sv-studio__col-3 svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Width <input type="number" min="0" placeholder="auto" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Align <select class="svelte-psjrav"><option>auto</option><option>left</option><option>center</option><option>right</option></select></label> <label class="sv-studio__prop svelte-psjrav">Pin <select class="svelte-psjrav"><option>none</option><option>left</option><option>right</option></select></label></div></div></details></li>`),tM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Editing</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Mode <select class="svelte-psjrav"><option>Popup form</option><option>Inline (edit in the grid, Excel-style)</option><option>Read-only</option></select></label> <!> <span class="sv-studio__hint svelte-psjrav">The grid opens its own editor - no separate form block needed.</span></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Behavior</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Sortable columns</label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Filtering + search</label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Row selection</label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Cell range selection</label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Striped rows</label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Totals footer row</label> <label class="sv-studio__prop svelte-psjrav">Density <select class="svelte-psjrav"><option>Compact</option><option>Normal</option><option>Comfortable</option></select></label></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Navigation & actions</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><span class="sv-studio__prop-label svelte-psjrav">Row click opens</span> <select><option>(nothing)</option><!></select> <!> <span class="sv-studio__prop-label svelte-psjrav">Row action buttons</span> <!> <div class="sv-studio__role-actions svelte-psjrav"></div> <span class="sv-studio__hint svelte-psjrav">Drill-through filters the target screen by the clicked value. Delete + navigate work anywhere; Edit needs the popup form.</span></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Conditional formatting</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><!> <button type="button" class="sv-studio__mini svelte-psjrav"><!> Add rule</button> <span class="sv-studio__hint svelte-psjrav">Style a cell when its value matches - e.g. negative amounts red, "overdue" status filled. Runs on the grid's rule engine.</span></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Paging</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Paginate</label> <!></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Columns</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><ul class="sv-studio__cols svelte-psjrav"></ul></div></details>`,1),nM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Data</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Presentation <select class="svelte-psjrav"><option>Modal</option><option>Drawer</option><option>Inline</option></select></label></div></details>`),rM=W(`<option> </option>`),iM=W(`<option> </option>`),aM=W(`<option> </option>`),oM=W(`<option> </option>`),sM=W(`<option> </option>`),cM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Data</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Group by <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Measure <select class="svelte-psjrav"><option>(count)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Reduce <select class="svelte-psjrav"></select></label></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Appearance</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Type <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Drill into (on click) <select class="svelte-psjrav"><option>(nothing)</option><!></select></label></div></details>`,1),lM=W(`<option> </option>`),uM=W(`<option> </option>`),dM=W(`<option> </option>`),fM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Metric</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Label <input type="text" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Measure <select class="svelte-psjrav"><option>(count rows)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Reduce <select class="svelte-psjrav"></select></label></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Card style</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Value format <select class="svelte-psjrav"><option>Auto</option><option>Number</option><option>Currency ($)</option><option>Percent (%)</option><option>Compact (1.2k)</option></select></label> <label class="sv-studio__prop svelte-psjrav">Sparkline over <select class="svelte-psjrav"><option>(none)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Target <input type="number" placeholder="(none)" class="svelte-psjrav"/></label> <p class="sv-studio__hint svelte-psjrav">A sparkline buckets the measure by the chosen field; a target adds a "% of target" chip.</p></div></details>`,1),pM=W(`<option> </option>`),mM=W(`<option> </option>`),hM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Gauge</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Label <input type="text" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Measure <select class="svelte-psjrav"><option>(count rows)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Reduce <select class="svelte-psjrav"></select></label> <div class="sv-studio__prop-row svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Min <input type="number" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Max <input type="number" class="svelte-psjrav"/></label></div> <label class="sv-studio__prop svelte-psjrav">Unit <input type="text" placeholder="e.g. %, $, pts" class="svelte-psjrav"/></label></div></details>`),gM=W(`<option> </option>`),_M=W(`<option> </option>`),vM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Tree</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Label field <select class="svelte-psjrav"><option disabled="">label field…</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Parent field <select class="svelte-psjrav"><option disabled="">self-referential FK…</option><!></select></label> <span class="sv-studio__hint svelte-psjrav">The parent field is a row's link to its parent row (same entity). Rows with an empty parent are roots.</span></div></details>`),yM=W(`<option> </option>`),bM=W(`<option> </option>`),xM=W(`<option> </option>`),SM=W(`<option> </option>`),CM=W(`<option> </option>`),wM=W(`<label class="sv-studio__prop svelte-psjrav">Card opens <select class="svelte-psjrav"><option>(nothing)</option><!></select></label>`),TM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Board</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Columns (group by) <select class="svelte-psjrav"><option disabled="">enum field…</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Card title <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Card badge <select class="svelte-psjrav"><option>(none)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Card subtitle <select class="svelte-psjrav"><option>(none)</option><!></select></label> <!> <span class="sv-studio__hint svelte-psjrav">Columns come from an enum field's options. Drag a card between columns to change its value.</span></div></details>`),EM=W(`<option> </option>`),DM=W(`<option> </option>`),OM=W(`<option> </option>`),kM=W(`<option> </option>`),AM=W(`<label class="sv-studio__prop svelte-psjrav">Event opens <select class="svelte-psjrav"><option>(nothing)</option><!></select></label>`),jM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Calendar</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Date field <select class="svelte-psjrav"><option disabled="">date field…</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Event title <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Color by <select class="svelte-psjrav"><option>(accent)</option><!></select></label> <!> <span class="sv-studio__hint svelte-psjrav">Rows are placed on the calendar by their date field; an enum color field tints each event.</span></div></details>`),MM=W(`<option> </option>`),NM=W(`<option> </option>`),PM=W(`<option> </option>`),FM=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox" class="svelte-psjrav"/> </label>`),IM=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox" class="svelte-psjrav"/> </label>`),LM=W(`<div class="sv-studio__prop svelte-psjrav">Related tabs <div class="sv-studio__checks svelte-psjrav"></div></div>`),RM=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox" class="svelte-psjrav"/> </label>`),zM=W(`<details class="sv-studio__subsec svelte-psjrav"><summary class="svelte-psjrav"><input class="sv-studio__sec-name svelte-psjrav"/><button type="button" class="sv-studio__sec-x svelte-psjrav" aria-label="Remove section">×</button></summary> <div class="sv-studio__checks svelte-psjrav"></div></details>`),BM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Detail page</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Title <select class="svelte-psjrav"></select></label> <label class="sv-studio__prop svelte-psjrav">Subtitle <select class="svelte-psjrav"><option>(none)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Status pill <select class="svelte-psjrav"><option>(none)</option><!></select></label> <div class="sv-studio__prop svelte-psjrav">Metric tiles <div class="sv-studio__checks svelte-psjrav"></div></div> <!> <div class="sv-studio__prop svelte-psjrav">Overview sections <!> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Add section</button></div> <span class="sv-studio__hint svelte-psjrav">A full record page: header, status pill, metric tiles, an Overview (custom sections or all remaining fields), and a timeline tab per related collection.</span></div></details>`),VM=W(`<span class="sv-studio__tab-chip svelte-psjrav"><!> <button type="button" aria-label="Remove block" class="svelte-psjrav">×</button></span>`),HM=W(`<span class="sv-studio__hint svelte-psjrav">No blocks yet.</span>`),UM=W(`<option> </option>`),WM=W(`<div class="sv-studio__tab-edit svelte-psjrav"><div class="sv-studio__fmt-row svelte-psjrav"><input type="text" aria-label="Tab label"/> <button type="button" class="sv-studio__mini svelte-psjrav" title="Remove tab">×</button></div> <div class="sv-studio__tab-children svelte-psjrav"></div> <select aria-label="Add block to tab"><option>+ add block…</option><!></select></div>`),GM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Tabs</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><!> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Add tab</button> <span class="sv-studio__hint svelte-psjrav">Tabs group display blocks (charts, KPIs, gauges, pivots, trees). <strong>Click a block in the canvas</strong> to select and edit it (measure, reduce, etc.).</span></div></details>`),KM=W(`<option> </option>`),qM=W(`<option> </option>`),JM=W(`<option> </option>`),YM=W(`<label class="sv-studio__prop svelte-psjrav">Row opens <select class="svelte-psjrav"><option>(expand inline)</option><!></select></label> <span class="sv-studio__hint svelte-psjrav">"Row opens" a detail page instead of expanding the child grid inline.</span>`,1),XM=W(`<span class="sv-studio__hint svelte-psjrav"> </span>`),ZM=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Detail</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Child entity <select class="svelte-psjrav"><option disabled="">child entity…</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Foreign key <select class="svelte-psjrav"><option disabled="">field in child…</option><!></select></label> <!> <!></div></details>`),QM=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> </label>`),$M=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> </label>`),eN=W(`<option> </option>`),tN=W(`<option> </option>`),nN=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Pivot</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><span class="sv-studio__prop-label svelte-psjrav">Rows</span> <div class="sv-studio__checks svelte-psjrav"></div> <span class="sv-studio__prop-label svelte-psjrav">Columns</span> <div class="sv-studio__checks svelte-psjrav"></div> <label class="sv-studio__prop svelte-psjrav">Measure <select class="svelte-psjrav"><option>(count rows)</option><!></select></label> <label class="sv-studio__prop svelte-psjrav">Aggregate <select class="svelte-psjrav"></select></label> <span class="sv-studio__hint svelte-psjrav">Drop fields into rows / columns; end users can re-pivot live in the generated app.</span></div></details>`),rN=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> <span class="sv-studio__facet-kind svelte-psjrav"> </span></label>`),iN=W(`<span class="sv-studio__hint svelte-psjrav">No enum / boolean / text fields to filter on.</span>`),aN=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Filter panel</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Title <input type="text" placeholder="Filters" class="svelte-psjrav"/></label> <span class="sv-studio__prop-label svelte-psjrav">Facets</span> <div class="sv-studio__checks svelte-psjrav"><!> <!></div> <span class="sv-studio__hint svelte-psjrav">The panel filters the grid on this screen (enum / boolean pick a value, text searches).</span></div></details>`),oN=W(`<label class="sv-studio__prop svelte-psjrav">Show as <select class="svelte-psjrav"><option>Inline (in the page)</option><option>Modal dialog</option><option>Sidebar drawer</option></select></label> <span class="sv-studio__hint svelte-psjrav">Modal / drawer open when a row is selected in the grid; inline edits in place.</span>`,1),sN=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> </label>`),cN=W(`<span class="sv-studio__prop-label svelte-psjrav">Fields shown</span> <div class="sv-studio__checks svelte-psjrav"></div>`,1),lN=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Record panel</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Editable (edit form)</label> <!> <!> <span class="sv-studio__hint svelte-psjrav">Shows the row selected in this screen's grid. Add a Grid block too.</span></div></details>`),uN=W(`<option> </option>`),dN=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Lookup</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Field <select class="svelte-psjrav"></select></label> <span class="sv-studio__hint svelte-psjrav">A relation field renders as a searchable lookup in the edit form.</span></div></details>`),fN=W(`<h4 class="sv-studio__insp-head svelte-psjrav"><!> </h4> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Layout</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Width <span class="sv-studio__width-val svelte-psjrav"> </span> <input type="range" min="1" max="12" step="1" class="svelte-psjrav"/></label> <!></div></details> <!>`,1),pN=W(`<label class="sv-studio__prop svelte-psjrav">Nav label <input type="text" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Nav order <input type="number" class="svelte-psjrav"/></label>`,1),mN=W(`<option> </option>`),hN=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> </label>`),gN=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> </label>`),_N=W(`<div class="sv-studio__checks svelte-psjrav"></div>`),vN=W(`<div class="sv-studio__role svelte-psjrav"><div class="sv-studio__role-head svelte-psjrav"><input class="sv-studio__role-name svelte-psjrav" type="text" aria-label="Role name"/> <button type="button" class="sv-studio__role-x svelte-psjrav" aria-label="Remove role">×</button></div> <div class="sv-studio__role-actions svelte-psjrav"></div> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> All screens</label> <!></div>`),yN=W(`<label class="sv-studio__prop svelte-psjrav">Default role <select class="svelte-psjrav"></select></label> <!> <button type="button" class="sv-studio__mini svelte-psjrav"><!> Add role</button> <span class="sv-studio__hint svelte-psjrav">Reads need screen access; writes need the action. Enforced in the UI and the generated API route (wire the role in hooks.server.ts).</span>`,1),bN=W(`<option> </option>`),xN=W(`<label class="sv-studio__prop svelte-psjrav">Locales (comma-separated) <input type="text" placeholder="en, es, fr" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Default locale <select class="svelte-psjrav"></select></label> <span class="sv-studio__hint svelte-psjrav">The default locale is seeded from your labels; fill the others in <code>src/lib/i18n.ts</code>. Nav, titles, the New button, and column headers route through <code>t()</code>.</span>`,1),SN=W(`<span class="sv-studio__hint svelte-psjrav">Real, <strong>persistent</strong> Postgres (PGlite) running in the browser - zero setup, no keys. Data survives reloads. Switch to <strong>SQL</strong> to point at hosted Postgres for production (same schema).</span>`),CN=W(`<div class="sv-studio__ds-summary svelte-psjrav"><span class="sv-studio__ds-method svelte-psjrav"> </span> <span class="sv-studio__ds-url svelte-psjrav"> </span></div> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Open request builder</button> <span class="sv-studio__hint svelte-psjrav">Set the endpoint + parameters and test it live.</span>`,1),wN=W(`<div class="sv-studio__ds-summary svelte-psjrav"><span class="sv-studio__ds-method svelte-psjrav">SQL</span> <span class="sv-studio__ds-url svelte-psjrav"> </span></div> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Open SQL builder</button> <span class="sv-studio__hint svelte-psjrav">Table + dialect; Generate emits a connected <code>/api</code> route.</span>`,1),TN=W(`<div class="sv-studio__ds-summary svelte-psjrav"><span class="sv-studio__ds-method svelte-psjrav">SUPABASE</span> <span class="sv-studio__ds-url svelte-psjrav"> </span></div> <button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Open Supabase builder</button> <span class="sv-studio__hint svelte-psjrav">Connect your project + table, fetch a sample, import fields.</span>`,1),EN=W(`<span class="sv-studio__hint svelte-psjrav">Seeded in-memory data - runs with no backend.</span>`),DN=W(`<option> </option>`),ON=W(`<input class="sv-studio__field-formula svelte-psjrav" placeholder="ƒ formula, e.g. qty * price" title="Computed value from other fields (leave blank for a plain field)"/>`),kN=W(`<option> </option>`),AN=W(`<input class="sv-studio__field-formula svelte-psjrav" placeholder="mask, e.g. (999) 000-0000" title="Mask pattern: 9 = digit, a = letter, * = any"/>`),jN=W(`<div class="sv-studio__field-ctrl svelte-psjrav"><input class="sv-studio__field-num svelte-psjrav" type="number" placeholder="min" aria-label="Minimum value" title="Minimum (validates, and sets the slider / rating start)"/> <input class="sv-studio__field-num svelte-psjrav" type="number" placeholder="max" aria-label="Maximum value" title="Maximum (validates, and sets the slider / rating end)"/></div> <div class="sv-studio__field-ctrl svelte-psjrav"><input class="sv-studio__field-num svelte-psjrav" type="number" placeholder="step" aria-label="Step" title="Step increment"/> <input class="sv-studio__field-num svelte-psjrav" type="number" placeholder="dec" aria-label="Decimals" title="Decimal places"/> <input class="sv-studio__field-num svelte-psjrav" placeholder="$" aria-label="Prefix" title="Prefix, e.g. $"/> <input class="sv-studio__field-num svelte-psjrav" placeholder="%" aria-label="Suffix" title="Suffix, e.g. %"/></div>`,1),MN=W(`<div class="sv-studio__field-ctrl svelte-psjrav"><select aria-label="Form control" title="Which editor this field renders as in the form" class="svelte-psjrav"></select> <label class="sv-studio__field-wide svelte-psjrav" title="Span both form columns"><input type="checkbox"/> Wide</label></div> <!> <!>`,1),NN=W(`<option> </option>`),PN=W(`<option> </option>`),FN=W(`<div class="sv-studio__field-rel svelte-psjrav"><select aria-label="Related entity" class="svelte-psjrav"><option disabled="">related entity…</option><!></select> <select aria-label="Label field" class="svelte-psjrav"><option disabled="">label field…</option><!></select></div>`),IN=W(`<li draggable="true"><div class="sv-studio__field-row svelte-psjrav"><span class="sv-studio__grip svelte-psjrav" title="Drag to reorder">⠿</span> <input class="sv-studio__field-name svelte-psjrav" aria-label="Field name"/> <select aria-label="Field type" class="svelte-psjrav"></select> <button type="button" aria-label="Remove field" class="sv-studio__mini svelte-psjrav">×</button></div> <div class="sv-studio__field-flags svelte-psjrav"><label class="svelte-psjrav"><input type="checkbox"/> PK</label> <label class="svelte-psjrav"><input type="checkbox"/> Req</label> <label class="svelte-psjrav"><input type="checkbox"/> RO</label></div> <!> <!> <!></li>`),LN=W(`<option> </option>`),RN=W(`<option> </option>`),zN=W(`<option> </option>`),BN=W(`<select class="sv-studio__fmt-val svelte-psjrav"></select>`),VN=W(`<input class="sv-studio__fmt-val svelte-psjrav" type="text"/>`),HN=W(`<label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> compare to another field</label>`),UN=W(`<div class="sv-studio__role svelte-psjrav"><div class="sv-studio__fmt-row svelte-psjrav"><select class="svelte-psjrav"></select> <select class="svelte-psjrav"></select> <!> <button type="button" class="sv-studio__role-x svelte-psjrav" aria-label="Remove rule">×</button></div> <!> <input class="sv-studio__field-name svelte-psjrav" type="text" placeholder="Error message"/></div>`),WN=W(`<details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Data source</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav"> <select class="svelte-psjrav"><option>In-memory (demo, resets)</option><option>Local database (no setup)</option><option>REST API</option><option>SQL database</option><option>Supabase</option></select></label> <!> <!></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span> </span> <button type="button" class="sv-studio__mini sv-studio__sec-add svelte-psjrav"><!></button></summary> <div class="sv-studio__sec-body svelte-psjrav"><ul class="sv-studio__fields svelte-psjrav" role="list"></ul></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Business rules (validation)</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><!> <button type="button" class="sv-studio__mini svelte-psjrav"><!> Add rule</button> <span class="sv-studio__hint svelte-psjrav">Cross-field checks compiled into the schema's <code>hooks.validate</code> - enforced in the edit form <strong>and</strong> (with server validation) the API route.</span></div></details>`,1),GN=W(`<h4 class="sv-studio__insp-head svelte-psjrav"><!>Screen</h4> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Page</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Title <input type="text" class="svelte-psjrav"/></label> <label class="sv-studio__prop svelte-psjrav">Route <input type="text" class="svelte-psjrav"/></label> <label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Show in navigation</label> <!></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Access control (app-wide)</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Enable role-based access (RBAC)</label> <!></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Audit trail</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Record create / update / delete</label> <span class="sv-studio__hint svelte-psjrav">Adds an <strong>Audit log</strong> screen and logs every write through a connected (SQL) API route. Bind an entity to a SQL database for it to capture.</span></div></details> <details class="sv-studio__section svelte-psjrav"><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Localization (i18n)</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__check svelte-psjrav"><input type="checkbox"/> Emit a message catalog + locale switcher</label> <!></div></details> <!> <p class="sv-studio__hint svelte-psjrav">Select a block to edit it. Drag a field to reorder.</p>`,1),KN=W(`<button type="button" title="Go to this block"> <span class="sv-studio__issue-go svelte-psjrav">→</span></button>`),qN=W(`<span> </span>`),JN=W(`<li><!></li>`),YN=W(`<ul class="sv-studio__issues svelte-psjrav"></ul>`),XN=W(`<button type="button" class="sv-studio__gen-btn svelte-psjrav"><!> Generate app</button>`),ZN=W(`<span class="sv-studio__hint svelte-psjrav">Fix the errors above to generate.</span>`),QN=W(`<span class="sv-studio__status-ok svelte-psjrav"><span class="sv-studio__status-dot svelte-psjrav"></span>Ready to generate</span>`),$N=W(`<span class="sv-studio__status-err svelte-psjrav"><span class="sv-studio__status-dot svelte-psjrav"></span> </span>`),eP=W(`<span class="sv-studio__status-sel svelte-psjrav"><!> </span>`),tP=W(`<span class="sv-studio__datamode svelte-psjrav" role="group" aria-label="Data mode"><button type="button">In-memory</button> <button type="button" title="Run the whole app on a real in-browser Postgres (PGlite) - carries the seed rows, zero setup">Local Postgres</button></span>`),nP=W(`<span> </span>`),rP=W(`<button type="button" class="sv-studio__tb-btn sv-studio__tb-btn--primary svelte-psjrav"><!> </button>`),iP=W(`<button type="button"><!><span class="sv-studio__tree-path svelte-psjrav"> </span></button>`),aP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__modal svelte-psjrav" role="dialog" aria-label="Generated app" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Generated app <small class="svelte-psjrav"> </small></span> <span class="sv-studio__spacer svelte-psjrav"></span> <!> <button type="button" class="sv-studio__tb-btn svelte-psjrav"><!> </button> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__modal-body svelte-psjrav"><nav class="sv-studio__tree svelte-psjrav" aria-label="Files"></nav> <div class="sv-studio__code svelte-psjrav"><div class="sv-studio__code-head svelte-psjrav"><span class="sv-studio__code-path svelte-psjrav"> </span> <button type="button" class="sv-studio__copy svelte-psjrav"><!> </button></div> <pre class="sv-studio__code-body svelte-psjrav"><code class="svelte-psjrav"> </code></pre></div></div></div></div>`),oP=W(`<option> </option>`),sP=W(`<div class="sv-studio__deploy-step svelte-psjrav"><strong>1. Push to Git</strong> then import your repo: <a class="sv-studio__tb-btn svelte-psjrav" target="_blank" rel="noopener noreferrer"><!> </a></div> <div class="sv-studio__deploy-step svelte-psjrav"><strong>2. Or deploy from your machine:</strong></div>`,1),cP=W(`<div class="sv-studio__deploy-step svelte-psjrav"><strong>Build and run the server:</strong></div>`),lP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__deploy-modal svelte-psjrav" role="dialog" aria-label="Deploy" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Deploy <small class="svelte-psjrav"> </small></span> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__deploy-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Deploy target <select class="svelte-psjrav"></select></label> <p class="sv-studio__hint svelte-psjrav">Generate app bundles the matching SvelteKit adapter (<code> </code>) and provider config, so this app deploys with no extra setup.</p> <!> <div class="sv-studio__deploy-cli svelte-psjrav"><code class="svelte-psjrav"> </code> <button type="button" class="sv-studio__copy svelte-psjrav"><!> </button></div> <p class="sv-studio__hint svelte-psjrav">Entities on <strong>Local database</strong> (PGlite) or <strong>In-memory</strong> need no server env. SQL / Supabase entities need their connection set in the host's environment variables. Full steps are in the generated <code>README.md</code>.</p> <div class="sv-studio__deploy-actions svelte-psjrav"><button type="button" class="sv-studio__tb-btn sv-studio__tb-btn--primary svelte-psjrav"><!>Generate app</button></div></div></div></div>`),uP=W(`<span class="sv-studio__dm-key svelte-psjrav" title="Primary key">🔑</span>`),dP=W(`<button type="button" class="sv-studio__dm-rel svelte-psjrav"> </button>`),fP=W(`<span class="sv-studio__dm-ftype svelte-psjrav"> </span>`),pP=W(`<li><span class="sv-studio__dm-fname svelte-psjrav"> <!></span> <!></li>`),mP=W(`<div><header class="sv-studio__dm-card-head svelte-psjrav"><strong class="svelte-psjrav"> </strong> <span class="sv-studio__dm-src svelte-psjrav"> </span></header> <ul class="sv-studio__dm-fields svelte-psjrav"></ul></div>`),hP=W(`<p class="sv-studio__hint svelte-psjrav">No relationships yet. Add a <strong>relation</strong> field to an entity (in its field editor) to link two entities.</p>`),gP=W(`<li><button type="button" class="svelte-psjrav"> </button> <code class="svelte-psjrav"> </code> → <button type="button" class="svelte-psjrav"> </button> <small class="svelte-psjrav"> <!></small></li>`),_P=W(`<ul class="svelte-psjrav"></ul>`),vP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__modal svelte-psjrav" role="dialog" aria-label="Data model" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Data model <small class="svelte-psjrav"> </small></span> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__dm-body svelte-psjrav"><div class="sv-studio__dm-cards svelte-psjrav"></div> <aside class="sv-studio__dm-edges svelte-psjrav"><h4 class="svelte-psjrav">Relationships</h4> <!></aside></div></div></div>`),yP=W(`<div class="sv-studio__key-row svelte-psjrav"><dt class="svelte-psjrav"><kbd class="svelte-psjrav"> </kbd></dt><dd class="svelte-psjrav"> </dd></div>`),bP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__deploy-modal svelte-psjrav" role="dialog" aria-label="Keyboard shortcuts" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Keyboard shortcuts</span> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__deploy-body svelte-psjrav"><dl class="sv-studio__keys svelte-psjrav"></dl> <span class="sv-studio__hint svelte-psjrav">Blocks copy/paste across screens. Drag a screen in the rail to reorder; ⧉ duplicates it.</span></div></div></div>`),xP=W(`<button type="button" class="sv-studio__provider svelte-psjrav"><strong class="svelte-psjrav"> </strong> <span class="svelte-psjrav"> </span> <span class="sv-studio__provider-go svelte-psjrav"> </span></button>`),SP=W(`<p class="sv-studio__hint svelte-psjrav">Pick a provider. We'll open its one-click "create a free database" page and bind every entity to it - then paste the connection string into <code>.env</code>. No database to run locally? Use the zero-setup <strong>Local database</strong> instead (no account, persists in the browser).</p> <!>`,1),CP=W(`<div class="sv-studio__issue sv-studio__issue--ok svelte-psjrav"> <strong> </strong> </div> <ol class="sv-studio__provision-steps svelte-psjrav"><li>Create the database on <a target="_blank" rel="noopener noreferrer"> </a> and copy its connection string.</li> <li>Add it to <code>.env</code> (the generated <code>.env.example</code> lists these): <div class="sv-studio__deploy-cli svelte-psjrav"><code class="svelte-psjrav"> </code></div></li> <li><strong>Generate app</strong> - each entity emits a connected <code>/api</code> route that reads those vars server-side.</li></ol> <div class="sv-studio__deploy-actions svelte-psjrav"><button type="button" class="sv-studio__tb-btn svelte-psjrav">Pick another</button> <button type="button" class="sv-studio__tb-btn sv-studio__tb-btn--primary svelte-psjrav"><!>Generate app</button></div>`,1),wP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__deploy-modal svelte-psjrav" role="dialog" aria-label="Get a database" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Get a hosted database</span> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__deploy-body svelte-psjrav"><!></div></div></div>`),TP=W(`<option> </option>`),EP=W(`<div class="sv-studio__req-row2 svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Table <input type="text" aria-label="Table" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Dialect <select aria-label="Dialect" class="svelte-psjrav"></select></label></div> <div class="sv-studio__req-url svelte-psjrav"><span class="sv-studio__req-url-base svelte-psjrav">POST</span><span class="sv-studio__req-url-param svelte-psjrav"> </span></div> <div class="sv-studio__req-note svelte-psjrav"><strong>SQL runs server-side</strong> - a database driver + credentials can't live in the browser, so there's no live preview here. <strong>Generate app</strong> emits a connected <code class="svelte-psjrav"> </code> (the <code class="svelte-psjrav"> </code> driver, reading <code class="svelte-psjrav">DATABASE_URL</code>) and the grid talks to it over that route. Set <code class="svelte-psjrav">DATABASE_URL</code> in <code class="svelte-psjrav">.env</code>; the driver is added for you by <code class="svelte-psjrav">npm create @svgrid/studio</code>. To scaffold from an existing database instead: <code class="svelte-psjrav"> </code></div>`,1),DP=W(`<div class="sv-studio__req-url svelte-psjrav"><span class="sv-studio__req-url-base svelte-psjrav"> </span><span class="sv-studio__req-url-param svelte-psjrav"> </span></div>`),OP=W(`<div class="sv-studio__req-row2 svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Project URL <input type="text" placeholder="https://xxxx.supabase.co" aria-label="Project URL" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Table <input type="text" aria-label="Table" class="svelte-psjrav"/></label></div> <div class="sv-studio__req-row svelte-psjrav" style="grid-template-columns: minmax(0, 1fr) auto;"><label class="sv-studio__req-field svelte-psjrav">Anon key <small>(public - safe to ship)</small> <input type="text" placeholder="eyJhbGciOi… paste the anon public key" aria-label="Anon key" class="svelte-psjrav"/></label> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div> <!> <!> <span class="sv-studio__req-hint svelte-psjrav">Rows are read through the public anon key (protected by your RLS policies). <strong>Generate app</strong> emits a real <code class="svelte-psjrav">createClient</code> in <code class="svelte-psjrav">connections.ts</code> and adds <code class="svelte-psjrav">@supabase/supabase-js</code>.</span>`,1),kP=W(`<option> </option>`),AP=W(`<span class="sv-studio__req-url-param svelte-psjrav"> </span>`),jP=W(`<span> </span>`),MP=W(`<span class="sv-studio__param-count svelte-psjrav"> </span>`),NP=W(`<button type="button" role="tab"> <!></button>`),PP=W(`<p class="sv-studio__req-hint svelte-psjrav">The grid sends the edited row as the request body on create / update automatically - nothing to configure here.</p>`),FP=W(`<p class="sv-studio__req-empty svelte-psjrav">No path parameters yet - add <code class="svelte-psjrav">{id}</code> to the path.</p>`),IP=W(`<div class="sv-studio__req-trow svelte-psjrav"><span class="sv-studio__req-param-name svelte-psjrav"> </span> <input placeholder="value (used by Send)" aria-label="Value" class="svelte-psjrav"/> <select aria-label="Type" class="svelte-psjrav"><option>string</option><option>number</option><option>boolean</option></select> <span></span></div>`),LP=W(`<div class="sv-studio__req-table svelte-psjrav"><div class="sv-studio__req-thead svelte-psjrav"><span>Parameter</span><span>Value</span><span>Type</span><span></span></div> <!></div>`),RP=W(`<p class="sv-studio__req-hint svelte-psjrav">To add or delete a path parameter, update the <strong>path</strong> above, e.g. <code class="svelte-psjrav">path/{parameter}</code>.</p> <!>`,1),zP=W(`<div class="sv-studio__req-trow svelte-psjrav"><input placeholder="name" aria-label="Name" class="svelte-psjrav"/> <input placeholder="value" aria-label="Value" class="svelte-psjrav"/> <select aria-label="Type" class="svelte-psjrav"><option>string</option><option>number</option><option>boolean</option></select> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Remove parameter"><!></button></div>`),BP=W(`<div class="sv-studio__req-table svelte-psjrav"><div class="sv-studio__req-thead svelte-psjrav"><span>Name</span><span>Value</span><span>Type</span><span></span></div> <!> <button type="button" class="sv-studio__req-add svelte-psjrav"><!> </button></div>`),VP=W(`<div class="sv-studio__req-row svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Name <input type="text" readonly="" aria-label="Request name" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Operation <select aria-label="Operation" class="svelte-psjrav"></select></label> <label class="sv-studio__req-field svelte-psjrav">Path <input type="text" placeholder="albums/{id}/tracks" aria-label="Path" class="svelte-psjrav"/></label> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div> <label class="sv-studio__req-field svelte-psjrav">Base URL <input type="text" placeholder="https://api.example.com/v1" aria-label="Base URL" class="svelte-psjrav"/></label> <div class="sv-studio__req-url svelte-psjrav"><span class="sv-studio__req-url-base svelte-psjrav"> </span><!></div> <!> <h4 class="sv-studio__req-h svelte-psjrav">Parameters</h4> <div class="sv-studio__req-tabs svelte-psjrav" role="tablist"></div> <!> <h4 class="sv-studio__req-h svelte-psjrav">Response mapping <small class="svelte-psjrav">optional</small></h4> <div class="sv-studio__req-row2 svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Rows path <input placeholder="data.items (blank = auto-detect)" aria-label="Rows path" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Total path <input placeholder="data.total (blank = auto-detect)" aria-label="Total path" class="svelte-psjrav"/></label></div>`,1),HP=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__req-modal svelte-psjrav" role="dialog" aria-label="Data source builder" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> <small class="svelte-psjrav"> </small></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__req-body svelte-psjrav"><!></div></div></div>`),UP=W(`<button type="button"><!><span class="sv-studio__pv-devlabel svelte-psjrav"> </span></button>`),WP=W(`<img class="sv-studio__pv-logo svelte-psjrav"/>`),GP=W(`<!><span class="sv-studio__pv-brand-txt svelte-psjrav"> </span>`,1),KP=W(`<button type="button" class="sv-studio__pv-nav-toggle svelte-psjrav" aria-label="Toggle sidebar"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"></path></svg></button>`),qP=W(`<button type="button"><span class="sv-studio__pv-nav-ini svelte-psjrav" aria-hidden="true"> </span><span class="sv-studio__pv-nav-lbl svelte-psjrav"> </span></button>`),JP=W(`<section><!></section>`),YP=W(`<p class="sv-studio__empty svelte-psjrav">This screen has no blocks yet - add some in the designer.</p>`),XP=W(`<header class="sv-studio__pv-screenhead svelte-psjrav"><h2 class="svelte-psjrav"> </h2></header> <div class="sv-studio__pv-canvas svelte-psjrav"><!> <!></div>`,1),ZP=W(`<p class="sv-studio__empty svelte-psjrav">No screens to preview yet.</p>`),QP=W(`<footer class="sv-studio__pv-foot svelte-psjrav"> </footer>`),$P=W(`<div class="sv-studio__pv svelte-psjrav" role="dialog" aria-modal="true" aria-label="App preview"><div class="sv-studio__pv-bar svelte-psjrav"><span class="sv-studio__pv-tag svelte-psjrav"><!> Live preview <small class="svelte-psjrav">· this is how your app runs</small></span> <span class="sv-studio__pv-devices svelte-psjrav" role="group" aria-label="Preview device"></span> <button type="button" class="sv-studio__pv-exit svelte-psjrav"><!> Close preview <kbd class="svelte-psjrav">Esc</kbd></button></div> <div><nav class="sv-studio__pv-nav svelte-psjrav" aria-label="App navigation"><div class="sv-studio__pv-nav-head svelte-psjrav"><span class="sv-studio__pv-brand svelte-psjrav"><!></span> <!></div> <div class="sv-studio__pv-nav-items svelte-psjrav"></div></nav> <div class="sv-studio__pv-main svelte-psjrav"><!> <!></div></div></div>`),eF=W(`<button type="button" class="svelte-psjrav"> </button>`),tF=W(`<p class="sv-studio__copilot-err svelte-psjrav"> </p>`),nF=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__copilot svelte-psjrav" role="dialog" aria-label="AI copilot" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav">✨ Copilot <small class="svelte-psjrav">· describe a change in plain English</small></span> <button type="button" class="sv-studio__modal-x" aria-label="Close"><!></button></header> <div class="sv-studio__copilot-body svelte-psjrav"><textarea class="sv-studio__copilot-input svelte-psjrav" rows="3" placeholder="e.g. Add an orders screen with a chart of revenue by month"></textarea> <div class="sv-studio__copilot-examples svelte-psjrav"></div> <!> <div class="sv-studio__copilot-foot svelte-psjrav"><span class="sv-studio__hint svelte-psjrav">The change applies to your project - <kbd>Ctrl/Cmd+Z</kbd> to undo.</span> <button type="button" class="sv-studio__gen-btn svelte-psjrav"> </button></div></div></div></div>`),rF=W(`<p class="sv-studio__hint sv-studio__gallery-warn svelte-psjrav">Loading a sample replaces the current design (undo with Ctrl+Z).</p>`),iF=W(`<button type="button" class="sv-studio__sample svelte-psjrav"><span class="sv-studio__sample-emoji svelte-psjrav"> </span> <span class="sv-studio__sample-name svelte-psjrav"> </span> <span class="sv-studio__sample-desc svelte-psjrav"> </span> <span class="sv-studio__sample-open svelte-psjrav">Open <!></span></button>`),aF=W(`<button type="button" class="sv-studio__sample svelte-psjrav"><span class="sv-studio__sample-badge svelte-psjrav">Live</span> <span class="sv-studio__sample-emoji svelte-psjrav"> </span> <span class="sv-studio__sample-name svelte-psjrav"> </span> <span class="sv-studio__sample-desc svelte-psjrav"> </span> <span class="sv-studio__sample-open svelte-psjrav">Open <!></span></button>`),oF=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__gallery svelte-psjrav" role="dialog" aria-label="Sample apps" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Sample apps <small class="svelte-psjrav">· load a ready-made design</small></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__gallery-body svelte-psjrav"><!> <div class="sv-studio__gallery-grid svelte-psjrav"></div> <div class="sv-studio__gallery-section svelte-psjrav"><h4 class="sv-studio__gallery-subhead svelte-psjrav">Start from live data</h4> <p class="sv-studio__hint svelte-psjrav">Bound to a real source - embedded Postgres, a hosted Supabase project, or a public REST API. The generated app talks to the same source.</p></div> <div class="sv-studio__gallery-grid svelte-psjrav"></div></div></div></div>`),sF=W(`Creates <code class="svelte-psjrav"> </code> with <code class="svelte-psjrav">id</code> + <code class="svelte-psjrav">name</code> fields and a screen. Add more fields in the inspector.`,1),cF=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__mini-modal svelte-psjrav" role="dialog" aria-label="New entity" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> New entity</span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__mini-body svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Entity name <input placeholder="customers" aria-label="Entity name" class="svelte-psjrav"/></label> <p class="sv-studio__hint svelte-psjrav"><!></p> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__gen-btn svelte-psjrav">Cancel</button> <button type="button" class="sv-studio__req-send svelte-psjrav"><!>Create entity</button></div></div></div></div>`),lF=W(`<option> </option>`),uF=W(`<div class="sv-studio__seg svelte-psjrav" role="tablist" aria-label="Connection input mode"><button type="button" role="tab">Guided</button> <button type="button" role="tab">Connection string</button></div>`),dF=W(`<label class="sv-studio__req-field svelte-psjrav">Database file <input placeholder="./data.db" aria-label="SQLite database file" class="svelte-psjrav"/></label>`),fF=W(`<code class="sv-studio__conn-preview svelte-psjrav" title="Assembled connection string"> </code>`),pF=W(`<div class="sv-studio__conn-grid svelte-psjrav"><label class="sv-studio__req-field sv-studio__conn-host svelte-psjrav">Host <input placeholder="localhost" aria-label="Host" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Port <input inputmode="numeric" aria-label="Port" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Database <input placeholder="app" aria-label="Database name" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">User <input placeholder="user" aria-label="User" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Password <input type="password" placeholder="••••••" aria-label="Password" class="svelte-psjrav"/></label></div> <label class="sv-studio__conn-ssl svelte-psjrav"><input type="checkbox"/> Require SSL/TLS</label> <!>`,1),mF=W(`<label class="sv-studio__req-field svelte-psjrav">Connection string <input aria-label="Connection string" class="svelte-psjrav"/></label>`),hF=W(`<span class="svelte-psjrav"> <b class="svelte-psjrav"> </b></span>`),gF=W(`<span class="sv-studio__hint svelte-psjrav"> </span>`),_F=W(`<div class="sv-studio__conn-tested svelte-psjrav"><strong class="svelte-psjrav"><!> </strong> <div class="sv-studio__conn-counts svelte-psjrav"><!> <!></div></div>`),vF=W(`<button type="button" class="sv-studio__mini-link svelte-psjrav"> </button>`),yF=W(`<div class="sv-studio__conn-driver svelte-psjrav"><span>Driver <code class="svelte-psjrav"> </code> isn't installed in this project.</span> <!></div>`),bF=W(`<div class="sv-studio__req-row2 svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Database <select class="svelte-psjrav"></select></label> <!></div> <!> <p class="sv-studio__hint svelte-psjrav">The local designer server connects on your machine - nothing is sent to a cloud.</p> <!> <!> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__gen-btn svelte-psjrav">Cancel</button> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__gen-btn svelte-psjrav"> </button> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div>`,1),xF=W(`<input class="sv-studio__conn-search svelte-psjrav" placeholder="Filter tables…" aria-label="Filter tables"/>`),SF=W(`<label class="sv-studio__conn-table svelte-psjrav"><input type="checkbox"/> </label>`),CF=W(`<span class="sv-studio__hint svelte-psjrav" style="padding:8px"> </span>`),wF=W(`<div class="sv-studio__conn-bar svelte-psjrav"><span class="sv-studio__hint svelte-psjrav"> </span> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__mini-link svelte-psjrav">Select all</button> <button type="button" class="sv-studio__mini-link svelte-psjrav">None</button></div> <!> <div class="sv-studio__conn-tables svelte-psjrav"><!> <!></div> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__gen-btn svelte-psjrav">Back</button> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div>`,1),TF=W(`<span class="svelte-psjrav"> </span>`),EF=W(`<div class="sv-studio__conn-skip svelte-psjrav"><strong> </strong> <!></div>`),DF=W(`<p class="sv-studio__conn-done svelte-psjrav"><!> </p> <!> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__req-send svelte-psjrav">Done</button></div>`,1),OF=W(`<span class="sv-studio__issue sv-studio__issue--error svelte-psjrav"> </span>`),kF=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__mini-modal svelte-psjrav" role="dialog" aria-label="Connect database" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Connect database <small class="svelte-psjrav"> </small></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__mini-body svelte-psjrav"><!> <!></div></div></div>`),AF=W(`<option> </option>`),jF=W(`<div class="sv-studio__seg svelte-psjrav" role="tablist" aria-label="Connection input mode"><button type="button" role="tab">Guided</button> <button type="button" role="tab">Connection string</button></div>`),MF=W(`<label class="sv-studio__req-field svelte-psjrav">Database file <input placeholder="./data.db" aria-label="SQLite database file" class="svelte-psjrav"/></label>`),NF=W(`<code class="sv-studio__conn-preview svelte-psjrav" title="Assembled connection string"> </code>`),PF=W(`<div class="sv-studio__conn-grid svelte-psjrav"><label class="sv-studio__req-field sv-studio__conn-host svelte-psjrav">Host <input placeholder="localhost" aria-label="Host" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Port <input inputmode="numeric" aria-label="Port" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Database <input placeholder="app" aria-label="Database name" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">User <input placeholder="user" aria-label="User" class="svelte-psjrav"/></label> <label class="sv-studio__req-field svelte-psjrav">Password <input type="password" placeholder="••••••" aria-label="Password" class="svelte-psjrav"/></label></div> <label class="sv-studio__conn-ssl svelte-psjrav"><input type="checkbox"/> Require SSL/TLS</label> <!>`,1),FF=W(`<label class="sv-studio__req-field svelte-psjrav">Connection string <input aria-label="Connection string" class="svelte-psjrav"/></label>`),IF=W(`<span class="svelte-psjrav"> <b class="svelte-psjrav"> </b></span>`),LF=W(`<span class="sv-studio__hint svelte-psjrav"> </span>`),RF=W(`<div class="sv-studio__conn-tested svelte-psjrav"><strong class="svelte-psjrav"><!> </strong> <div class="sv-studio__conn-counts svelte-psjrav"><!> <!></div></div>`),zF=W(`<button type="button" class="sv-studio__mini-link svelte-psjrav"> </button>`),BF=W(`<div class="sv-studio__conn-driver svelte-psjrav"><span>Driver <code class="svelte-psjrav"> </code> isn't installed in this project.</span> <!></div>`),VF=W(`<p class="sv-studio__hint svelte-psjrav">Point this app's screens at your real database. Map each entity to one of your tables; the rest stay on sample data.</p> <div class="sv-studio__req-row2 svelte-psjrav"><label class="sv-studio__req-field svelte-psjrav">Database <select class="svelte-psjrav"></select></label> <!></div> <!> <!> <!> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__gen-btn svelte-psjrav">Cancel</button> <span class="sv-studio__spacer svelte-psjrav"></span> <button type="button" class="sv-studio__gen-btn svelte-psjrav"> </button> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div>`,1),HF=W(`<option> </option>`),UF=W(`<label class="sv-studio__rebind-row svelte-psjrav"><span class="sv-studio__rebind-ent svelte-psjrav"><!> </span> <span class="sv-studio__rebind-arrow svelte-psjrav">→</span> <select class="svelte-psjrav"><option>Keep sample data</option><!></select></label>`),WF=W(`<p class="sv-studio__hint svelte-psjrav"> </p> <div class="sv-studio__rebind-map svelte-psjrav"></div> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__gen-btn svelte-psjrav">Back</button> <button type="button" class="sv-studio__req-send svelte-psjrav"><!> </button></div>`,1),GF=W(`<span class="svelte-psjrav"> </span>`),KF=W(`<div class="sv-studio__conn-skip svelte-psjrav"><strong>Check these (a chart/detail references a field your table may not have):</strong> <!></div>`),qF=W(`<p class="sv-studio__conn-done svelte-psjrav"><!> </p> <!> <div class="sv-studio__mini-actions svelte-psjrav"><button type="button" class="sv-studio__req-send svelte-psjrav">Done</button></div>`,1),JF=W(`<span class="sv-studio__issue sv-studio__issue--error svelte-psjrav"> </span>`),YF=W(`<div class="sv-studio__modal-wrap svelte-psjrav" role="presentation"><div class="sv-studio__mini-modal svelte-psjrav" role="dialog" aria-label="Use my data" tabindex="-1"><header class="sv-studio__modal-head svelte-psjrav"><span class="sv-studio__modal-title svelte-psjrav"><!> Use my data <small class="svelte-psjrav"> </small></span> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Close"><!></button></header> <div class="sv-studio__mini-body svelte-psjrav"><!> <!></div></div></div>`),XF=W(`<div><div class="sv-studio__titlebar svelte-psjrav"><button type="button" class="sv-studio__railtoggle svelte-psjrav" aria-label="Toggle sidebar" title="Toggle sidebar"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M3 6h18M3 12h18M3 18h18"></path></svg></button> <span class="sv-studio__brand svelte-psjrav"><span class="sv-studio__brand-mark svelte-psjrav" aria-hidden="true"><!></span> <span class="sv-studio__brand-name svelte-psjrav">Studio</span></span> <span class="sv-studio__tb-sep svelte-psjrav"></span> <input class="sv-studio__app-name svelte-psjrav" aria-label="App name"/> <!> <div class="sv-studio__theme-menu svelte-psjrav"><button type="button" aria-haspopup="dialog" title="App theme"><span class="sv-studio__theme-chip svelte-psjrav"></span> <span class="sv-studio__theme-btn-label svelte-psjrav"> </span> <!></button> <!></div> <span class="sv-studio__spacer svelte-psjrav"></span> <!> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Undo" title="Undo (Ctrl+Z)"><!></button> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Redo" title="Redo (Ctrl+Shift+Z)"><!></button> <button type="button" class="sv-studio__icon-btn svelte-psjrav" aria-label="Keyboard shortcuts" title="Keyboard shortcuts (?)"><span style="font-weight:700;font-size:13px">?</span></button> <span class="sv-studio__tb-sep svelte-psjrav"></span> <!> <button type="button" class="sv-studio__tb-btn svelte-psjrav"><!>Sample apps</button> <!> <div class="sv-studio__menu svelte-psjrav"><button type="button" aria-haspopup="menu"><!>Add data <!></button> <!></div> <button type="button">Load</button> <button type="button"><!>Save</button> <span class="sv-studio__tb-sep svelte-psjrav"></span> <button type="button" class="sv-studio__tb-btn svelte-psjrav" title="Preview the whole app full screen (Esc to exit)"><!>Preview</button> <button type="button" title="Deploy the generated app"><!>Deploy</button> <button type="button" class="sv-studio__tb-btn sv-studio__tb-btn--primary svelte-psjrav"><!>Generate app</button></div> <!> <!> <!> <!> <div><!> <aside class="sv-studio__rail svelte-psjrav"><div class="sv-studio__rail-head svelte-psjrav"><span class="sv-studio__rail-title svelte-psjrav">Screens & data</span> <button type="button" class="sv-studio__rail-collapse svelte-psjrav" title="Collapse sidebar" aria-label="Collapse sidebar"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 6l-6 6 6 6"></path></svg></button></div> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Screens</span> <!></summary> <div class="sv-studio__navtree svelte-psjrav"><!> <!></div></details> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>Entities</span></summary> <div class="sv-studio__navtree svelte-psjrav"></div></details> <div class="sv-studio__rail-foot svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">New screen <select class="sv-studio__template svelte-psjrav" aria-label="Screen template"><option>CRUD (grid + form)</option><option>Dashboard (KPIs + chart)</option><option>Master / detail</option><option>Empty</option></select></label> <label class="sv-studio__prop svelte-psjrav">Default source <select class="svelte-psjrav"><option>In-memory (demo)</option><option>Local database (no setup)</option><option>SQL</option><option>Supabase</option><option>REST</option></select></label> <details class="sv-studio__section svelte-psjrav" open=""><summary class="sv-studio__sec-head svelte-psjrav"><!><span>App layout</span></summary> <div class="sv-studio__sec-body svelte-psjrav"><label class="sv-studio__prop svelte-psjrav">Style <select class="svelte-psjrav"><option>Sidebar</option><option>Top navigation</option></select></label> <!> <label class="sv-studio__prop svelte-psjrav">Brand <input type="text" class="svelte-psjrav"/></label> <span class="sv-studio__prop-label svelte-psjrav">Company logo</span> <div class="sv-studio__logo-row svelte-psjrav"><!></div> <span class="sv-studio__hint svelte-psjrav">Replaces the brand text in the app's nav bar. Stored inline (data URL) - shows in the preview and the generated app.</span> <label class="sv-studio__prop svelte-psjrav">Footer <input type="text" placeholder="Built with SvGrid Studio" class="svelte-psjrav"/></label></div></details></div></aside> <div class="sv-studio__splitter svelte-psjrav" role="separator" aria-label="Resize panel" aria-orientation="vertical"></div> <main class="sv-studio__main svelte-psjrav"><div class="sv-studio__palette svelte-psjrav"><span class="sv-studio__group-label svelte-psjrav">Add block</span> <!> <label class="sv-studio__preview-toggle svelte-psjrav" title="Show live sample data inside each block. Uncheck to see just the block layout."><input type="checkbox"/> Show data</label> <button type="button" class="sv-studio__preview-app svelte-psjrav" title="Preview the whole app full screen (Esc to exit)"><!>Preview app</button></div> <!></main> <div class="sv-studio__splitter svelte-psjrav" role="separator" aria-label="Resize panel" aria-orientation="vertical"></div> <aside class="sv-studio__inspector svelte-psjrav"><!> <!> <div class="sv-studio__insp-foot svelte-psjrav"><!></div></aside></div> <div class="sv-studio__statusbar svelte-psjrav"><!> <span> </span> <span> </span> <span> </span> <span class="sv-studio__status-sp svelte-psjrav"></span> <!> <!></div> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!></div>`);function ZF(e,t){Ze(t,!0);let n=(e,t=S)=>{var n=fA(),r=R(n);N(n),V(e=>Q(r,`d`,e),[()=>ai(t())]),K(e,n)},r=e=>{var t=yA(),r=z(t),i=e=>{var t=pA(),n=R(t,!0);N(t),V(()=>{X(t,1,`sv-studio__req-result sv-studio__issue sv-studio__issue--${H(no).ok?`ok`:`error`}`,`svelte-psjrav`),q(n,H(no).message)}),K(e,t)};J(r,e=>{H(no)&&e(i)});var a=B(r,2),o=e=>{let t=F(()=>H(ve)[H(A).name]??[]),r=F(()=>Object.keys(H(t)[0]??{})),i=F(()=>H(r).slice(0,6));var a=vA(),o=R(a),s=R(o),c=B(R(s)),l=R(c);N(c),N(s);var u=B(s,2),d=R(u);n(d,()=>`import`);var f=B(d);N(u),N(o);var p=B(o,2),m=R(p),h=R(m),g=R(h);Y(g,20,()=>H(i),e=>e,(e,t)=>{var n=mA(),r=R(n,!0);N(n),V(()=>q(r,t)),K(e,n)}),N(g),N(h);var _=B(h);Y(_,21,()=>H(t).slice(0,6),di,(e,t)=>{var n=gA();Y(n,20,()=>H(i),e=>e,(e,n)=>{var r=hA(),i=R(r,!0);N(r),V(e=>q(i,e),[()=>oo(H(t)[n])]),K(e,r)}),N(n),K(e,n)}),N(_),N(m),N(p);var v=B(p,2),y=e=>{K(e,_A())},b=F(()=>!H(i).some(e=>(H(A)?.fields??[]).some(t=>t.field===e)));J(v,e=>{H(b)&&e(y)}),N(a),V(e=>{q(l,`· showing ${e??``} of ${H(t).length??``}${H(t).length>=25?`+`:``}`),q(f,` Import ${H(r).length??``} fields`)},[()=>Math.min(H(t).length,6)]),U(`click`,u,co),K(e,a)};J(a,e=>{H(A)&&(H(ve)[H(A).name]??[]).length&&e(o)}),K(e,t)},i=(e,t=S,r=S,a=S,o=S,c=S)=>{var l=ii(),u=z(l),d=e=>{{let n=F(()=>De(r())),i=F(()=>ei(t().config)),s=F(()=>t().config.density===`compact`?28:t().config.density===`comfortable`?46:30);bm(e,{get data(){return a()},get columns(){return H(n)},get containerHeight(){return o()},fitColumns:!0,get enableRowSummaries(){return t().config.rowSummaries},get zebraRows(){return t().config.striped},get showRowSelection(){return t().config.selectable},get conditionalFormats(){return H(i)},get rowHeight(){return H(s)},onRowClick:e=>_t[r().name]=e.row})}},f=e=>{iS(e,{get schema(){return r()},row:null,presentation:`inline`,onSubmit:()=>{}})},p=e=>{{let n=F(()=>mr(r(),t().config.measure)&&t().config.reduce!==`count`?e=>`$${e.toLocaleString()}`:void 0);uS(e,{get schema(){return r()},get rows(){return a()},get dimension(){return t().config.dimension},get measure(){return t().config.measure},get reduce(){return t().config.reduce},get type(){return t().config.type},controls:!1,get height(){return o()},width:340,accent:`var(--sg-accent)`,get formatValue(){return H(n)}})}},m=e=>{gS(e,{get schema(){return r()},get rows(){return a()}})},h=e=>{let n=F(()=>t().config),i=F(()=>_r(H(n),a())),o=F(()=>gr(H(n),a()));var s=CA(),c=R(s),l=R(c,!0);N(c);var u=B(c,2),d=R(u,!0);N(u);var f=B(u,2),p=e=>{var t=bA();let n;var r=R(t,!0);N(t),V(()=>{n=X(t,1,`sv-studio__kpi-delta svelte-psjrav`,null,n,{"is-up":H(i).up,"is-down":!H(i).up}),q(r,H(i).text)}),K(e,t)};J(f,e=>{H(i)&&e(p)});var m=B(f,2),h=e=>{var t=xA(),n=R(t);N(t),V(e=>Q(n,`points`,e),[()=>Zb(H(o))]),K(e,t)},g=e=>{var t=SA(),r=R(t);N(t),V(()=>q(r,`${H(n).reduce??``}${H(n).measure?` · ${H(n).measure}`:``}`)),K(e,t)};J(m,e=>{H(o).length>1?e(h):e(g,-1)}),N(s),V(e=>{q(l,H(n).label),q(d,e)},[()=>hr(H(n),r(),a())]),K(e,s)},g=e=>{let n=F(()=>t().config);var r=wA(),i=R(r),o=R(i,!0);N(i);var s=B(i,2);{let e=F(()=>Yb(a(),{measure:H(n).measure,reduce:H(n).reduce})),t=F(()=>H(n).unit??``);Sg(s,{get value(){return H(e)},get min(){return H(n).min},get max(){return H(n).max},get unit(){return H(t)},size:150})}N(r),V(()=>q(o,H(n).label)),K(e,r)},_=e=>{let n=F(()=>t().config);var i=ii(),o=z(i),s=e=>{var t=TA(),i=R(t);{let e=F(()=>vr(a(),r(),H(n)));Hg(i,{get nodes(){return H(e)}})}N(t),K(e,t)},c=e=>{K(e,EA())};J(o,e=>{H(n).labelField&&H(n).parentField?e(s):e(c,-1)}),K(e,i)},v=e=>{let n=F(()=>t().config),o=F(()=>gt[t().id]??`${t().id}-0`);{let s=(e,o=S)=>{var s=ii();Y(z(s),17,()=>H(n).tabs,di,(e,n,s)=>{var l=ii(),u=z(l),d=e=>{var t=ii(),o=z(t),s=e=>{var t=OA();Y(t,21,()=>H(n).blocks,e=>e.id,(e,t)=>{var n=DA();let o;i(R(n),()=>H(t),r,a,()=>180,c),N(n),V((e,r)=>{Q(n,`data-block-id`,H(t).id),o=X(n,1,`sv-studio__tabchild svelte-psjrav`,null,o,{"is-selected":H(t).id===H(ue),"has-issue":!!H(pe)[H(t).id]}),Ui(n,`grid-column: span ${e??``}`),Q(n,`title`,`Select ${r??``} to edit it`)},[()=>Math.min(12,oT(H(t))),()=>pr(H(t).config.kind)]),U(`click`,n,e=>{e.stopPropagation(),L(ue,H(t).id,!0)}),U(`keydown`,n,e=>{e.key===`Enter`&&(e.stopPropagation(),L(ue,H(t).id,!0))}),K(e,n)}),N(t),K(e,t)},l=e=>{K(e,kA())};J(o,e=>{H(n).blocks.length?e(s):e(l,-1)}),K(e,t)};J(u,e=>{o()===`${t().id}-${s}`&&e(d)}),K(e,l)}),K(e,s)},l=F(()=>H(n).tabs.map((e,n)=>({id:`${t().id}-${n}`,label:e.label})));kg(e,{get tabs(){return H(l)},get value(){return H(o)},onChange:e=>gt[t().id]=e,panel:s,$$slots:{panel:!0}})}},y=e=>{let n=F(()=>uT(H(s),t().config.childEntity)),i=F(()=>t().config.linkScreen);{let t=F(()=>H(i)&&H(s).screens.some(e=>e.id===H(i))?()=>L(le,H(i),!0):void 0);jk(e,{get schema(){return r()},get data(){return a()},get detailSchema(){return H(n)},getChildren:()=>WC(H(n),3),get containerHeight(){return o()},detailHeight:130,get onParentClick(){return H(t)}})}},b=F(()=>t().config.kind===`master-detail`&&t().config.childEntity&&uT(H(s),t().config.childEntity)),x=e=>{{let n=F(()=>wr(r())),i=F(()=>Tr(t().config)),s=F(()=>Math.max(o()-64,120));dA(e,{get data(){return a()},get fields(){return H(n)},get layout(){return H(i)},showFieldList:!1,showToolbar:!1,get gridHeight(){return H(s)}})}},C=e=>{let n=F(()=>t().config);{let t=F(()=>Math.max(o()-8,260)),i=F(()=>H(n).openScreen&&H(s).screens.some(e=>e.id===H(n).openScreen)?()=>L(le,H(n).openScreen,!0):void 0);OS(e,{get schema(){return r()},get rows(){return a()},get groupBy(){return H(n).groupBy},get titleField(){return H(n).titleField},get badgeField(){return H(n).badgeField},get subtitleField(){return H(n).subtitleField},get height(){return H(t)},onMove:(e,t)=>Ee(r(),e,{[H(n).groupBy]:t}),get onOpen(){return H(i)}})}},w=e=>{let n=F(()=>t().config);{let t=F(()=>Math.max(o()-8,420)),i=F(()=>H(n).openScreen&&H(s).screens.some(e=>e.id===H(n).openScreen)?()=>L(le,H(n).openScreen,!0):void 0);LS(e,{get schema(){return r()},get rows(){return a()},get dateField(){return H(n).dateField},get titleField(){return H(n).titleField},get colorField(){return H(n).colorField},get height(){return H(t)},get onSelect(){return H(i)}})}},T=e=>{let n=F(()=>t().config);{let t=F(()=>H(n).metricFields??[]),i=F(()=>H(n).sections??[]),s=F(()=>Se(H(n))),c=F(()=>Math.max(o()-8,320));cC(e,{get schema(){return r()},get rows(){return a()},get titleField(){return H(n).titleField},get subtitleField(){return H(n).subtitleField},get statusField(){return H(n).statusField},get metricFields(){return H(t)},get sections(){return H(i)},get related(){return H(s)},get height(){return H(c)}})}},E=e=>{let n=F(()=>t().config);var i=RA(),a=R(i),o=R(a,!0);N(a);var s=B(a,2);Y(s,17,()=>Er(r(),H(n)),e=>e.field,(e,t)=>{let n=F(()=>H(ke)[r().name]?.[H(t).field]??``);var i=IA(),a=R(i),o=R(a,!0);N(a);var s=B(a,2),c=e=>{var i=AA();Z(i),V(()=>ra(i,H(n))),U(`input`,i,e=>Ae(r().name,H(t).field,e.currentTarget.value)),K(e,i)},l=e=>{var i=jA(),a=R(i);a.value=a.__value=``;var o=B(a);o.value=o.__value=`true`;var s=B(o);s.value=s.__value=`false`,N(i);var c;Gi(i),V(()=>{c!==(c=H(n))&&(i.value=(i.__value=H(n))??``,Wi(i,H(n)))}),U(`change`,i,e=>Ae(r().name,H(t).field,e.currentTarget.value)),K(e,i)},u=e=>{var i=NA(),a=R(i);a.value=a.__value=``,Y(B(a),17,()=>je(H(t)),e=>e.value,(e,t)=>{var n=MA(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(i);var o;Gi(i),V(()=>{o!==(o=H(n))&&(i.value=(i.__value=H(n))??``,Wi(i,H(n)))}),U(`change`,i,e=>Ae(r().name,H(t).field,e.currentTarget.value)),K(e,i)},d=e=>{var i=FA(),a=R(i);a.value=a.__value=``,Y(B(a),17,()=>H(t).options??[],e=>e.value,(e,t)=>{var n=PA(),r=R(n,!0);N(n);var i={};V(e=>{q(r,H(t).label??H(t).value),i!==(i=e)&&(n.value=(n.__value=e)??``)},[()=>String(H(t).value)]),K(e,n)}),N(i);var o;Gi(i),V(()=>{o!==(o=H(n))&&(i.value=(i.__value=H(n))??``,Wi(i,H(n)))}),U(`change`,i,e=>Ae(r().name,H(t).field,e.currentTarget.value)),K(e,i)};J(s,e=>{H(t).type===`text`&&!H(t).options?.length?e(c):H(t).type===`boolean`?e(l,1):H(t).type===`relation`?e(u,2):e(d,-1)}),N(i),V(()=>q(o,H(t).label??H(t).field)),K(e,i)});var c=B(s,2),l=e=>{K(e,LA())},u=F(()=>!Er(r(),H(n)).length);J(c,e=>{H(u)&&e(l)}),N(i),V(()=>q(o,H(n).title??`Filters`)),K(e,i)},D=e=>{let i=F(()=>_t[r().name]),a=F(()=>t().config.presentation??`inline`);var o=ii(),s=z(o),l=e=>{var r=zA(),i=R(r);n(i,()=>`record`);var o=B(i),s=R(o);N(o),N(r),V(()=>q(s,`Select a row in the grid above to ${t().config.editable?H(a)===`inline`?`edit`:`open its ${H(a)===`drawer`?`editor drawer`:`edit dialog`}`:`view`} it here.`)),K(e,r)},u=e=>{iS(e,{get schema(){return r()},get row(){return H(i)},get presentation(){return H(a)},onSubmit:({id:e,values:t})=>Ee(r(),e,t),onCancel:()=>_t[r().name]=void 0})},d=e=>{var t=VA(),o=z(t),s=e=>{var t=BA(),r=R(t);n(r,()=>H(a)===`drawer`?`screen`:`file`);var i=B(r);N(t),V(()=>q(i,` Opens as ${H(a)===`drawer`?`sidebar`:`modal`} at runtime`)),K(e,t)};J(o,e=>{H(a)!==`inline`&&e(s)}),iS(B(o,2),{get schema(){return r()},get row(){return H(i)},presentation:`inline`,onSubmit:({id:e,values:t})=>Ee(r(),e,t),onCancel:()=>_t[r().name]=void 0}),K(e,t)},f=e=>{var n=UA();Y(n,21,()=>Dr(r(),t().config),e=>e.field,(e,t)=>{var n=HA(),r=R(n),a=R(r,!0);N(r);var o=B(r),s=R(o,!0);N(o),N(n),V(e=>{q(a,H(t).label??H(t).field),q(s,e)},[()=>String(H(i)[H(t).field]??``)]),K(e,n)}),N(n),K(e,n)};J(s,e=>{H(i)?t().config.editable&&c()&&H(a)!==`inline`?e(u,1):t().config.editable?e(d,2):e(f,-1):e(l)}),K(e,o)},O=e=>{var n=WA(),r=R(n);N(n),V(e=>q(r,`${e??``} - configure in the inspector`),[()=>pr(t().config.kind)]),K(e,n)};J(u,e=>{t().config.kind===`grid`?e(d):t().config.kind===`form`?e(f,1):t().config.kind===`chart`?e(p,2):t().config.kind===`dashboard`?e(m,3):t().config.kind===`kpi`?e(h,4):t().config.kind===`gauge`?e(g,5):t().config.kind===`tree`?e(_,6):t().config.kind===`tabs`?e(v,7):H(b)?e(y,8):t().config.kind===`pivot`?e(x,9):t().config.kind===`board`?e(C,10):t().config.kind===`calendar`?e(w,11):t().config.kind===`detail`?e(T,12):t().config.kind===`filter`?e(E,13):t().config.kind===`record`?e(D,14):e(O,-1)}),K(e,l)},a=$(t,`showPreview`,7,!0),o=I(null),s=F(()=>H(o)??t.project),l=I(un([])),u=I(un([])),d=F(()=>H(l).length>0),f=F(()=>H(u).length>0);function p(e){e!==H(s)&&(L(l,[...H(l).slice(-59),H(s)],!0),L(u,[],!0),L(o,e,!0),t.onChange?.(e))}function m(){let e=H(l).at(-1);e&&(L(u,[H(s),...H(u)],!0),L(l,H(l).slice(0,-1),!0),L(o,e,!0),t.onChange?.(e))}function h(){let e=H(u)[0];e&&(L(l,[...H(l),H(s)],!0),L(u,H(u).slice(1),!0),L(o,e,!0),t.onChange?.(e))}let g=I(null),_=I(null),v,y=F(()=>t.persistKey?H(g)?`Saved`:H(o)?`Saving…`:`Saved`:``),b=!1;Ln(()=>{if(!(b||!t.persistKey)){b=!0;try{let e=localStorage.getItem(t.persistKey);if(e&&e.trim()){let n=rE(e);nE(n)!==nE(t.project)&&L(_,n,!0)}}catch{}}}),Ln(()=>{if(!t.persistKey||H(o)===null)return;let e=nE(H(s));clearTimeout(v),v=setTimeout(()=>{try{localStorage.setItem(t.persistKey,e),L(g,Date.now(),!0)}catch{}},600)});function x(){H(_)&&(L(l,[],!0),L(u,[],!0),L(o,H(_),!0),H(_).screens[0]&&(L(le,H(_).screens[0].id,!0),L(ue,null)),t.onChange?.(H(_)),L(g,Date.now(),!0),L(_,null))}function C(){L(_,null);try{t.persistKey&&localStorage.removeItem(t.persistKey)}catch{}}function w(e,t){if(!H(k))return;let n=t==null?DT(H(s),H(k).id,e):OT(H(s),H(k).id,e,t),r=n.screens.find(e=>e.id===H(k).id);p(n),L(ue,(t==null?r?.blocks.at(-1):r?.blocks[t])?.id??null,!0)}function E(){H(k)&&H(ue)&&(p(jT(H(s),H(k).id,H(ue))),L(ue,null))}function D(e){if(!H(k))return;let t=MT(H(s),H(k).id,e),n=H(k).blocks.findIndex(t=>t.id===e),r=t.screens.find(e=>e.id===H(k).id)?.blocks[n+1];p(t),r&&L(ue,r.id,!0)}let O=I(null),ee=I(!1),te=I(!1),ne=I(null),re=F(()=>H(s).entities.flatMap(e=>e.fields.filter(e=>e.type===`relation`&&e.relation?.entity).map(t=>({from:e.name,fromLabel:e.label??e.name,field:t.field,to:t.relation.entity,labelField:t.relation.labelField,missing:!uT(H(s),t.relation.entity)}))));function ie(e){L(ne,e,!0),queueMicrotask(()=>document.querySelector(`[data-entity-card="${CSS.escape(e)}"]`)?.scrollIntoView({behavior:`smooth`,block:`center`})),setTimeout(()=>{H(ne)===e&&L(ne,null)},1400)}function ae(){H(j)&&L(O,JSON.parse(JSON.stringify(H(j))),!0)}function oe(){if(!H(O)||!H(k))return;let e=VT(H(s),H(k).id,H(O));p(e),L(ue,e.screens.find(e=>e.id===H(k).id)?.blocks.at(-1)?.id??null,!0)}function se(){if(!H(k))return;let e=HT(H(s),H(k).id),t=H(s).screens.findIndex(e=>e.id===H(k).id);p(e);let n=e.screens[t+1];n&&(L(le,n.id,!0),L(ue,null))}function ce(e,t){if(!H(A))return;let n=t.trim();!n||n!==e&&H(A).fields.some(e=>e.field===n)||ba(UC(H(A),e,{field:n}))}let le=I(``),ue=I(null),k=F(()=>H(s).screens.find(e=>e.id===H(le))??H(s).screens[0]),A=F(()=>H(k)?uT(H(s),H(k).entity):void 0),j=F(()=>aT(H(k)?.blocks??[]).find(e=>e.id===H(ue))),de=F(()=>iE(H(s))),M=F(()=>aE(H(s))),fe=F(()=>H(de).filter(e=>e.level===`error`).length),pe=F(()=>{let e={};for(let t of H(de))t.block&&(e[t.block]??=[]).push(t);return e});function me(e){e.screen&&L(le,e.screen,!0),L(ue,e.block??null,!0),e.block&&queueMicrotask(()=>document.querySelector(`[data-block-id="${CSS.escape(e.block)}"]`)?.scrollIntoView({behavior:`smooth`,block:`center`}))}Ln(()=>{!H(s).screens.some(e=>e.id===H(le))&&H(s).screens[0]&&L(le,H(s).screens[0].id,!0)}),Ln(()=>By(`Studio`));let he=[`count`,`sum`,`avg`,`min`,`max`],ge=[`bar`,`pie`,`line`,`area`,`radar`,`funnel`,`waterfall`,`treemap`],_e={memory:`In-memory`,pglite:`Local database`,sql:`SQL`,supabase:`Supabase`,rest:`REST`},ve=I(un({}));function ye(e,t){let n=t.fields.filter(e=>e.type===`relation`&&e.relation);if(!n.length)return e;let r=n.map(e=>{let t=uT(H(s),e.relation.entity),n=JT(H(s),e.relation.entity),r=n.kind===`memory`&&n.seed?.length?n.seed:t?WC(t,6):[],i=t?.idField??t?.fields.find(e=>e.primaryKey)?.field??`id`;return{field:e.field,map:new Map(r.map(t=>[String(t[i]),t[e.relation.labelField]]))}});return e.map(e=>{let t={...e};for(let{field:n,map:i}of r){let r=i.get(String(e[n]));r!=null&&(t[n]=r)}return t})}function be(e){return ye(xe(e),e)}function xe(e){let t=JT(H(s),e.name);return H(ve)[e.name]??(t.kind===`memory`&&t.seed?.length?t.seed:WC(e,6))}function Se(e){return(e.related??[]).map(e=>{let t=uT(H(s),e.entity);return t?{label:e.label??t.label??t.name,schema:t,rows:be(t),foreignKey:e.foreignKey,parentField:e.parentField,titleField:e.titleField??t.fields.find(e=>e.type===`text`&&!e.primaryKey)?.field??t.fields[0]?.field??`id`,subtitleField:e.subtitleField,dateField:e.dateField,statusField:e.statusField}:null}).filter(e=>e!=null)}let Ce=F(()=>H(s).screens.filter(e=>e.blocks.some(e=>e.config.kind===`detail`)));function we(e){let t=[];for(let n of H(s).entities){if(n.name===e.name)continue;let r=n.fields.find(t=>t.type===`relation`&&t.relation?.entity===e.name)?.field;r&&t.push({child:n,fk:r})}return t}function Te(e,t){let n=e.fields.filter(e=>!e.primaryKey&&e.field!==t);return{entity:e.name,foreignKey:t,label:e.label??e.name,titleField:n.find(e=>e.type===`text`)?.field??n[0]?.field??e.fields[0]?.field??`id`,dateField:n.find(e=>e.type===`date`||e.type===`datetime`||e.type===`dateString`)?.field,statusField:n.find(e=>e.type===`enum`)?.field}}function Ee(e,t,n){let r=e.idField??e.fields.find(e=>e.primaryKey)?.field??`id`,i=String(t??_t[e.name]?.[r]??``),a=(H(ve)[e.name]??be(e)).map(e=>String(e[r])===i?{...e,...n}:{...e});L(ve,{...H(ve),[e.name]:a},!0),_t[e.name]=void 0}function De(e){let t=e.idField??e.fields.find(e=>e.primaryKey)?.field;return db(e).filter(e=>e.field!==t)}let Oe=F(()=>H(A)?be(H(A)):[]),ke=I(un({}));function Ae(e,t,n){L(ke,{...H(ke),[e]:{...H(ke)[e]??{},[t]:n}},!0)}function je(e){let t=e.relation;if(!t)return[];let n=H(s).entities.find(e=>e.name===t.entity);if(!n)return[];let r=n.idField??n.fields.find(e=>e.primaryKey)?.field??`id`;return be(n).map(e=>({value:String(e[r]??``),label:String(e[t.labelField]??e[r]??``)}))}function Me(e,t){let n=Object.entries(H(ke)[e.name]??{}).filter(([,e])=>e!==``&&e!=null);return n.length?t.filter(t=>n.every(([n,r])=>{let i=e.fields.find(e=>e.field===n),a=t[n];return i&&i.type===`text`&&!i.options?.length?String(a??``).toLowerCase().includes(String(r).toLowerCase()):String(a??``)===String(r)})):t}let Ne=F(()=>t.appearance??(H(s).theme?.mode===`dark`?`dark`:`light`)),Pe=F(()=>t.appearance?{...H(s).theme,mode:t.appearance}:H(s).theme),Fe=F(()=>fE(H(Pe))),Ie=F(()=>cE(H(s).theme?.preset)??sE),Le=F(()=>H(Ie)[H(Ne)].accent),Re=F(()=>H(s).theme?.shell?.style??`sidebar`),ze=F(()=>H(s).theme?.shell?.brand||H(s).title),Be=F(()=>H(s).theme?.shell?.navPosition??`left`),Ve=F(()=>H(s).theme?.shell?.footer),He=F(()=>H(s).theme?.shell?.logo),Ue=I(!1),We=F(()=>H(Re)===`sidebar`&&H(Ue));function Ge(e){let t=e.currentTarget.files?.[0];if(!t)return;let n=new FileReader;n.onload=()=>p(ZT(H(s),{logo:String(n.result)})),n.readAsDataURL(t)}let Ke=F(()=>H(s).screens.filter(e=>e.nav?.show!==!1).map((e,t)=>({s:e,order:e.nav?.order??t})).sort((e,t)=>e.order-t.order).map(e=>e.s)),qe=I(null),Je=I(`crud`),Ye=I(`none`),Xe=I(``),$e=I(``),et=I(null),tt=F(()=>nE(H(s)));function nt(e){try{p(rE(e)),L(Xe,``),L(et,null),L(Ye,`none`)}catch(e){L(et,e instanceof Error?e.message:String(e),!0)}}let rt=()=>nt(H(Xe)),it=I(!1);async function at(e){if(e)try{nt(await e.text())}catch(e){L(et,e instanceof Error?e.message:String(e),!0)}}function ot(e){e.preventDefault(),L(it,!1),at(e.dataTransfer?.files?.[0])}function st(){try{let e=/\bmodel\s+\w+\s*\{/.test(H($e))?bw(H($e)):ew(H($e)),t=H(s);for(let n of e)t=IT(t,n);p(t),L($e,``),L(et,null),L(Ye,`none`)}catch(e){L(et,e instanceof Error?e.message:String(e),!0)}}let ct=I(!1),lt=I(`desktop`),ut={desktop:`100%`,tablet:`834px`,mobile:`390px`},dt=I(``),ft=I(!1);Ln(()=>{L(ft,H(lt)!==`desktop`)});let pt=F(()=>H(Re)===`sidebar`&&H(ft)),mt=I(!1),ht=I(!1),gt=un({}),_t=un({}),vt=F(()=>H(s).screens.find(e=>e.id===H(dt))??H(s).screens[0]),yt=F(()=>H(vt)?uT(H(s),H(vt).entity):void 0);function bt(){L(dt,H(k)?.id??H(s).screens[0]?.id??``,!0),L(ct,!0)}let xt=I(!1),St=I(``),Ct=I(!1),wt=I(null),Tt=[`Add a "status" enum field (new / active / churned) to customers`,`Add a dashboard screen with revenue by tier`,`Make the customers grid drill into orders on row click`,`Add a validation rule: mrr must be >= 0`];function Et(){L(xt,!0),L(wt,null)}async function Dt(){let e=H(St).trim();if(!(!t.onCopilot||!e||H(Ct))){L(Ct,!0),L(wt,null);try{let n=rE(nE(await t.onCopilot({prompt:e,project:H(s)})));p(n),!n.screens.some(e=>e.id===H(le))&&n.screens[0]&&L(le,n.screens[0].id,!0),L(St,``),L(xt,!1)}catch(e){L(wt,e instanceof Error?e.message:String(e),!0)}finally{L(Ct,!1)}}}let Ot=I(!1);function kt(e){let t=e.build();p(t),t.screens[0]&&(L(le,t.screens[0].id,!0),L(ue,null)),L(Ot,!1)}let At=I(!1),jt=I(``);function Mt(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)}let Nt=F(()=>!!Mt(H(jt))&&!uT(H(s),Mt(H(jt))));function Pt(){let e=Mt(H(jt));if(!e||uT(H(s),e))return;let t={name:e,idField:`id`,fields:[{field:`id`,type:`number`,primaryKey:!0,readonly:!0},{field:`name`,type:`text`,required:!0}]};p(IT(H(s),t)),L(le,e,!0),L(ue,null),L(jt,``),L(At,!1)}let Ft=I(null);async function It(e){if(e){L(Ft,null),L(et,null);try{let t=await e.text(),n=Mt(e.name.replace(/\.[^.]+$/,``))||`imported`,r=n,i=2;for(;uT(H(s),r);)r=`${n}_${i++}`;let{schema:a,rows:o,renamed:c}=dw(r,t);if(a.fields.length===0||o.length===0){L(et,`That file had no rows to import.`);return}let l=IT(H(s),a);l=qT(l,r,{kind:`memory`,seed:o}),p(l),L(le,r,!0),L(ue,null);let u=c.length?` Renamed ${c.length} column${c.length>1?`s`:``} to safe keys.`:``;L(Ft,`Imported ${o.length} row${o.length>1?`s`:``} into "${r}" (${a.fields.length} fields).${u}`)}catch(e){L(et,e instanceof Error?e.message:String(e),!0)}}}let Lt=I(!1),Rt=I(!1),zt=F(()=>WE(H(s))),Bt=[{value:`auto`,label:`Auto-detect (Vercel / Netlify / Cloudflare)`},{value:`vercel`,label:`Vercel`},{value:`netlify`,label:`Netlify`},{value:`cloudflare`,label:`Cloudflare Pages`},{value:`node`,label:`Node server`}];function Vt(e){p(GT(H(s),e))}let Ht=I(!1),Ut=[{id:`neon`,label:`Neon`,blurb:`Serverless Postgres with a generous free tier - a database in seconds, no card.`,url:`https://neon.tech`,dialect:`postgres`,kind:`sql`,env:[`DATABASE_URL`]},{id:`supabase`,label:`Supabase`,blurb:`Postgres plus auth, storage, and realtime. Use the connection string (server) here.`,url:`https://database.new`,dialect:`supabase`,kind:`sql`,env:[`DATABASE_URL`]},{id:`turso`,label:`Turso`,blurb:`Hosted SQLite (libSQL) that runs at the edge - fast, cheap, great for reads.`,url:`https://turso.tech`,dialect:`turso`,kind:`sql`,env:[`DATABASE_URL`,`DATABASE_AUTH_TOKEN`]}],Wt=I(null);function Gt(e){let t=WT(H(s),`sql`);for(let n of H(s).entities)t=qT(t,n.name,{kind:`sql`,table:n.name,dialect:e.dialect});p(t),L(Wt,e,!0);try{window.open(e.url,`_blank`,`noopener,noreferrer`)}catch{}}async function Kt(){try{await navigator.clipboard.writeText(H(zt).cli),L(Rt,!0),setTimeout(()=>L(Rt,!1),1600)}catch{}}let qt=I(!1),Jt=I(`connect`),Yt=I(`postgres`),Xt=I(``),Zt=I(!1),Qt=I(null),$t=I(un([])),en=I(un(new Set)),tn=I(0),nn=I(``),rn=I(un([])),an=F(()=>H(nn).trim()?H($t).filter(e=>e.toLowerCase().includes(H(nn).trim().toLowerCase())):H($t)),on=[{value:`postgres`,label:`PostgreSQL`,placeholder:`postgres://user:pass@host:5432/db`},{value:`mysql`,label:`MySQL`,placeholder:`mysql://user:pass@host:3306/db`},{value:`mssql`,label:`SQL Server`,placeholder:`Server=host;Database=db;User Id=sa;Password=…`},{value:`sqlite`,label:`SQLite`,placeholder:`./data.db`},{value:`supabase`,label:`Supabase (Postgres)`,placeholder:`postgres://postgres:…@db.<ref>.supabase.co:5432/postgres`},{value:`turso`,label:`Turso (libSQL)`,placeholder:`libsql://<db>-<org>.turso.io`}],sn=F(()=>on.find(e=>e.value===H(Yt))?.placeholder??``),cn=I(`form`),ln=I(un({})),dn=I(null),fn=I(null),mn=I(!1),hn=F(()=>H(Yt)!==`turso`),gn=F(()=>H(cn)===`form`&&H(hn));function _n(){try{return Tw(H(Yt),H(ln))}catch{return``}}let vn=F(()=>H(gn)?_n():H(Xt).trim()),yn=F(()=>Sw(H(Yt))?``:String(xw[H(Yt)]??``));function bn(e,t){L(ln,{...H(ln),[e]:t},!0),L(dn,null)}function xn(e){L(Qt,e instanceof Error?e.message:String(e),!0);let t=e;L(fn,t?.missingDriver?t.driver??null:null,!0)}async function Sn(){if(!(!t.onIntrospectDatabase||!H(vn))){L(Zt,!0),L(Qt,null),L(dn,null),L(fn,null);try{L(dn,(await t.onIntrospectDatabase({dialect:H(Yt),url:H(vn),action:`test`})).tables??[],!0),H(dn).length===0&&L(Qt,`Connected, but no tables were found.`)}catch(e){xn(e)}finally{L(Zt,!1)}}}async function Cn(){if(t.onInstallDriver){L(mn,!0),L(Qt,null);try{let e=await t.onInstallDriver(H(Yt));e.ok?L(fn,null):L(Qt,`Install failed: ${(e.output||e.package||``).slice(-300)}`)}catch(e){L(Qt,e instanceof Error?e.message:String(e),!0)}finally{L(mn,!1)}}}function wn(){L(qt,!0),L(Jt,`connect`),L(Qt,null),L($t,[],!0),L(en,new Set,!0),L(tn,0),L(nn,``),L(rn,[],!0),L(dn,null),L(fn,null),L(ln,{},!0)}function Tn(e){let t=new Set(H(en));for(let n of H(an))e?t.add(n):t.delete(n);L(en,t,!0)}async function On(){if(!(!t.onIntrospectDatabase||!H(vn))){L(Zt,!0),L(Qt,null),L(fn,null);try{L($t,(await t.onIntrospectDatabase({dialect:H(Yt),url:H(vn),action:`tables`})).tables??[],!0),L(en,new Set(H($t)),!0),L(Jt,`tables`),H($t).length===0&&L(Qt,`No tables found in this database.`)}catch(e){xn(e)}finally{L(Zt,!1)}}}function kn(e){let t=new Set(H(en));t.has(e)?t.delete(e):t.add(e),L(en,t,!0)}async function An(){if(!t.onIntrospectDatabase)return;let e=[...H(en)];if(e.length!==0){L(Zt,!0),L(Qt,null);try{let n=await t.onIntrospectDatabase({dialect:H(Yt),url:H(vn),action:`introspect`,tables:e}),r=n.schemas??[];L(rn,n.errors??[],!0);let i=H(s);for(let e of r)i=IT(i,e),i=qT(i,e.name,{kind:`sql`,table:e.name,dialect:H(Yt)});p(i),L(tn,r.length,!0),r[0]&&(L(le,r[0].name,!0),L(ue,null)),L(Jt,`done`)}catch(e){L(Qt,e instanceof Error?e.message:String(e),!0)}finally{L(Zt,!1)}}}let jn=I(!1),Mn=I(`connect`),Nn=I(`postgres`),Pn=I(``),Fn=I(!1),In=I(null),Rn=I(un([])),zn=I(un({})),Bn=I(0),Vn=I(un([])),Hn=F(()=>on.find(e=>e.value===H(Nn))?.placeholder??``),Un=F(()=>Object.values(H(zn)).filter(Boolean).length),Wn=I(`form`),Gn=I(un({})),Kn=I(null),qn=I(null),Jn=I(!1),Yn=F(()=>H(Nn)!==`turso`),Xn=F(()=>H(Wn)===`form`&&H(Yn));function Zn(){try{return Tw(H(Nn),H(Gn))}catch{return``}}let Qn=F(()=>H(Xn)?Zn():H(Pn).trim()),$n=F(()=>Sw(H(Nn))?``:String(xw[H(Nn)]??``));function er(e,t){L(Gn,{...H(Gn),[e]:t},!0),L(Kn,null)}function tr(e){L(In,e instanceof Error?e.message:String(e),!0);let t=e;L(qn,t?.missingDriver?t.driver??null:null,!0)}async function nr(){if(!(!t.onIntrospectDatabase||!H(Qn))){L(Fn,!0),L(In,null),L(Kn,null),L(qn,null);try{L(Kn,(await t.onIntrospectDatabase({dialect:H(Nn),url:H(Qn),action:`test`})).tables??[],!0),H(Kn).length===0&&L(In,`Connected, but no tables were found.`)}catch(e){tr(e)}finally{L(Fn,!1)}}}async function rr(){if(t.onInstallDriver){L(Jn,!0),L(In,null);try{let e=await t.onInstallDriver(H(Nn));e.ok?L(qn,null):L(In,`Install failed: ${(e.output||e.package||``).slice(-300)}`)}catch(e){L(In,e instanceof Error?e.message:String(e),!0)}finally{L(Jn,!1)}}}function ir(){L(jn,!0),L(Mn,`connect`),L(In,null),L(Rn,[],!0),L(zn,{},!0),L(Bn,0),L(Vn,[],!0),L(Kn,null),L(qn,null),L(Gn,{},!0)}function ar(e,t){let n=e=>e.toLowerCase().replace(/[^a-z]/g,``).replace(/s$/,``),r=n(e);return t.find(e=>n(e)===r)??t.find(e=>n(e).includes(r)||r.includes(n(e)))??``}async function or(){if(!(!t.onIntrospectDatabase||!H(Qn))){L(Fn,!0),L(In,null),L(qn,null);try{L(Rn,(await t.onIntrospectDatabase({dialect:H(Nn),url:H(Qn),action:`tables`})).tables??[],!0);let e={};for(let t of H(s).entities)e[t.name]=ar(t.name,H(Rn));L(zn,e,!0),L(Mn,`map`),H(Rn).length===0&&L(In,`No tables found in this database.`)}catch(e){tr(e)}finally{L(Fn,!1)}}}function sr(e){let t=[],n=t=>new Set((uT(e,t)?.fields??[]).map(e=>e.field));for(let r of e.screens){let e=n(r.entity),i=(e,n,i)=>{e&&!n.has(e)&&t.push(`${r.title}: ${i} "${e}"`)};for(let t of r.blocks){let r=t.config;if(r.kind===`chart`)i(r.dimension,e,`chart dimension`),i(r.measure,e,`chart measure`);else if(r.kind===`kpi`)i(r.measure,e,`KPI measure`);else if(r.kind===`master-detail`)i(r.foreignKey,n(r.childEntity),`detail key`);else if(r.kind===`pivot`){for(let t of[...r.rows,...r.cols])i(t,e,`pivot field`);i(r.measure,e,`pivot measure`)}else if(r.kind===`filter`)for(let t of r.fields)i(t,e,`filter facet`);else if(r.kind===`record`&&r.fields)for(let t of r.fields)i(t,e,`record field`)}}return t}let cr=[[`value`,`amount`,`total`,`price`,`cost`,`revenue`,`mrr`,`arr`,`subtotal`,`fee`,`balance`],[`name`,`title`,`subject`,`label`,`fullname`],[`status`,`state`,`stage`,`phase`],[`created`,`createdat`,`placedat`,`opened`,`signed`,`date`,`timestamp`],[`due`,`duedate`,`deadline`,`closedate`,`expires`],[`owner`,`assignee`,`rep`,`manager`,`agent`,`handler`],[`qty`,`quantity`,`count`,`units`,`stock`,`inventory`],[`email`,`mail`],[`phone`,`mobile`,`tel`],[`description`,`notes`,`summary`,`comment`,`detail`],[`company`,`organization`,`account`,`client`,`vendor`,`supplier`]],lr=e=>e.toLowerCase().replace(/[^a-z0-9]/g,``);function ur(e,t,n){let r=t.filter(e=>!n.has(lr(e))),i=lr(e),a=r.find(e=>lr(e)===i);if(a)return a;let o=cr.find(e=>e.includes(i));return o&&(a=r.find(e=>o.includes(lr(e))),a)?a:(a=r.find(e=>lr(e).includes(i)||i.includes(lr(e))),a??``)}function dr(e,t,n){let r=t.fields.map(e=>e.field),i=new Set,a=[],o=[];for(let t of e.fields){let e=ur(t.field,r,i);if(!e){o.push(t.field);continue}i.add(lr(e)),a.push(e===t.field?{...t}:{...t,dbColumn:e})}for(let e of t.fields)i.has(lr(e.field))||a.push({field:e.field,type:e.type,...e.primaryKey?{primaryKey:!0,readonly:!0}:{}});let s=t.idField??t.fields.find(e=>e.primaryKey)?.field;if(!a.some(e=>e.primaryKey)&&s){let e=a.find(e=>(e.dbColumn??e.field)===s);e&&(e.primaryKey=!0,e.readonly=!0)}let c=a.find(e=>e.primaryKey)?.field??a[0]?.field;return{schema:{name:n,...e.label?{label:e.label}:{},idField:c,fields:a},dropped:o}}async function fr(){if(!t.onIntrospectDatabase)return;let e=Object.entries(H(zn)).filter(([,e])=>e);if(e.length!==0){L(Fn,!0),L(In,null);try{let n=await t.onIntrospectDatabase({dialect:H(Nn),url:H(Qn),action:`introspect`,tables:e.map(([,e])=>e)}),r=new Map((n.schemas??[]).map(e=>[e.name,e])),i=H(s),a=0;for(let[t,n]of e){let e=r.get(n),o=uT(i,t);if(!e||!o)continue;let{schema:s}=dr(o,e,t);i=FT(i,t,s),i=qT(i,t,{kind:`sql`,table:n,dialect:H(Nn)}),a++}p(i),L(Bn,a,!0),L(Vn,sr(i),!0),L(Mn,`done`)}catch(e){L(In,e instanceof Error?e.message:String(e),!0)}finally{L(Fn,!1)}}}let pr=e=>cT.find(t=>t.kind===e)?.label??e,mr=(e,t)=>!!t&&/\$/.test(e?.fields.find(e=>e.field===t)?.label??``),hr=(e,t,n)=>{let r=Yb(n,{measure:e.measure,reduce:e.reduce});if(typeof r!=`number`)return String(r??``);let i=e.format??`auto`;if(i!==`auto`)return $b(r,i);let a=r.toLocaleString(void 0,{maximumFractionDigits:1});return mr(t,e.measure)?`$${a}`:a},gr=(e,t)=>e.trendField?Xb(t,{trendField:e.trendField,measure:e.measure,reduce:e.trendReduce??e.reduce}):[],_r=(e,t)=>{if(e.target!=null&&e.target!==0){let n=Yb(t,{measure:e.measure,reduce:e.reduce});return{text:`${Math.round(n/e.target*100)}% of target`,up:n>=e.target}}let n=Qb(gr(e,t));return n==null?null:{text:`${n>=0?`▲`:`▼`} ${Math.abs(n).toFixed(0)}%`,up:n>=0}};function vr(e,t,n){let r=t.idField??t.fields.find(e=>e.primaryKey)?.field??`id`,i=new Map(e.map(e=>[String(e[r]),{id:String(e[r]),label:String(e[n.labelField]??e[r]),children:[]}])),a=[];for(let t of e){let e=i.get(String(t[r])),o=t[n.parentField]!=null&&t[n.parentField]!==``?String(t[n.parentField]):null;o&&o!==e.id&&i.has(o)?i.get(o).children.push(e):a.push(e)}return a}let yr=[`sum`,`avg`,`count`,`min`,`max`],br=e=>{let t=e.idField??e.fields.find(e=>e.primaryKey)?.field;return e.fields.filter(e=>e.field!==t)},xr=e=>br(e).filter(e=>e.type!==`number`&&e.type!==`json`&&e.type!==`relation`),Sr=e=>e.fields.filter(e=>e.type===`number`&&!e.primaryKey),Cr=e=>br(e).filter(e=>e.type===`enum`||e.type===`boolean`||e.type===`text`),wr=e=>br(e).filter(e=>e.type!==`json`&&e.type!==`relation`).map(e=>({field:e.field,label:e.label??e.field,kind:e.type===`number`?`measure`:`dimension`,...e.type===`number`?{defaultAgg:`sum`}:{}})),Tr=e=>({rows:[...e.rows],cols:[...e.cols],values:e.measure?[{field:e.measure,agg:e.aggregate}]:[],filters:[]}),Er=(e,t)=>t.fields.map(t=>e.fields.find(e=>e.field===t)).filter(e=>!!e),Dr=(e,t)=>t.fields&&t.fields.length?e.fields.filter(e=>t.fields.includes(e.field)):br(e);function Or(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}let kr=F(()=>H(s).access??{enabled:!1,roles:[]}),Ar=e=>p({...H(s),access:e});function jr(e){e&&(!H(s).access||H(s).access.roles.length===0)?Ar({enabled:!0,defaultRole:`viewer`,roles:[{role:`admin`,screens:`*`,actions:`*`},{role:`editor`,screens:`*`,actions:[`create`,`update`,`delete`]},{role:`viewer`,screens:`*`,actions:[]}]}):Ar({...H(kr),enabled:e})}let Mr=e=>Ar({...H(kr),roles:H(kr).roles.map(e)});function Nr(){let e=new Set(H(kr).roles.map(e=>e.role)),t=`role`,n=1;for(;e.has(t);)t=`role${++n}`;Ar({...H(kr),roles:[...H(kr).roles,{role:t,screens:`*`,actions:[]}]})}function Pr(e){let t=H(kr).roles.filter(t=>t.role!==e);Ar({...H(kr),roles:t,defaultRole:H(kr).defaultRole===e?t[0]?.role:H(kr).defaultRole})}function Fr(e,t){let n=t.trim();!n||n!==e&&H(kr).roles.some(e=>e.role===n)||Ar({...H(kr),roles:H(kr).roles.map(t=>t.role===e?{...t,role:n}:t),defaultRole:H(kr).defaultRole===e?n:H(kr).defaultRole})}let Ir=(e,t)=>e.actions===`*`||e.actions.includes(t);function Lr(e,t){Mr(n=>{if(n.role!==e)return n;let r=n.actions===`*`?[...sT]:n.actions,i=r.includes(t)?r.filter(e=>e!==t):[...r,t];return{...n,actions:i.length===sT.length?`*`:i}})}let Rr=(e,t)=>e.screens===`*`||e.screens.includes(t);function zr(e,t){Mr(n=>{if(n.role!==e)return n;let r=n.screens===`*`?H(s).screens.map(e=>e.id):n.screens,i=r.includes(t)?r.filter(e=>e!==t):[...r,t];return{...n,screens:i.length===H(s).screens.length?`*`:i}})}let Br=(e,t)=>Mr(n=>n.role===e?{...n,screens:t?`*`:[]}:n),Vr=[`edit`,`delete`,`navigate`];function Hr(e){let t=H(s).screens.find(t=>t.id===e),n=t?uT(H(s),t.entity):void 0;return n?[...n.fields]:[]}function Ur(e){H(k)&&H(j)&&p(PT(H(s),H(k).id,H(j).id,{config:e}))}function Wr(e){let t=H(j).config;Ur({rowActions:[...t.rowActions??[],{kind:e}]})}function Gr(e,t){let n=H(j).config;Ur({rowActions:(n.rowActions??[]).map((n,r)=>r===e?{...n,...t}:n)})}function Kr(e){let t=H(j).config;Ur({rowActions:(t.rowActions??[]).filter((t,n)=>n!==e)})}let qr=[{value:`eq`,label:`=`},{value:`ne`,label:`≠`},{value:`lt`,label:`<`},{value:`lte`,label:`≤`},{value:`gt`,label:`>`},{value:`gte`,label:`≥`},{value:`contains`,label:`contains`},{value:`empty`,label:`is empty`},{value:`notEmpty`,label:`not empty`}],Yr=e=>e!==`empty`&&e!==`notEmpty`;function Xr(){let e=H(j).config,t=e.columns.find(e=>e.show)?.field??H(A)?.fields[0]?.field??``;Ur({formatRules:[...e.formatRules??[],{field:t,op:`gt`,value:0,color:`#dc2626`,bold:!0}]})}function Zr(e,t){let n=H(j).config;Ur({formatRules:(n.formatRules??[]).map((n,r)=>r===e?{...n,...t}:n)})}function Qr(e){let t=H(j).config;Ur({formatRules:(t.formatRules??[]).filter((t,n)=>n!==e)})}function $r(e,t){let n=Number(t),r=String(t??``);switch(e){case`eq`:return e=>String(e.value)===r;case`ne`:return e=>String(e.value)!==r;case`lt`:return e=>Number(e.value)<n;case`lte`:return e=>Number(e.value)<=n;case`gt`:return e=>Number(e.value)>n;case`gte`:return e=>Number(e.value)>=n;case`contains`:return e=>String(e.value).toLowerCase().includes(r.toLowerCase());case`empty`:return e=>e.value==null||e.value===``;case`notEmpty`:return e=>e.value!=null&&e.value!==``;default:return null}}function ei(e){let t=[];for(let n of e.formatRules??[]){if((n.op===`lt`||n.op===`lte`||n.op===`gt`||n.op===`gte`)&&!Number.isFinite(Number(n.value)))continue;let e=$r(n.op,n.value);!e||!n.color&&!n.background&&!n.bold||t.push({type:`rule`,columns:[n.field],when:e,...n.background?{background:n.background}:{},...n.color?{color:n.color}:{},...n.bold?{fontWeight:700}:{}})}return t}let ti=F(()=>H(s).i18n??{enabled:!1,locales:[`en`]});function W(e){e&&(!H(s).i18n||H(s).i18n.locales.length===0)?p({...H(s),i18n:{enabled:!0,locales:[`en`],defaultLocale:`en`}}):p({...H(s),i18n:{...H(ti),enabled:e}})}function ni(e){let t=[...new Set(e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean))];if(!t.length)return;let n=t.includes(H(ti).defaultLocale??``)?H(ti).defaultLocale:t[0];p({...H(s),i18n:{...H(ti),locales:t,defaultLocale:n}})}let G={grid:`M3 3h18v18H3z M3 9h18 M3 15h18 M9 3v18 M15 3v18`,form:`M4 3h16v18H4z M8 8h8 M8 12h8 M8 16h5`,chart:`M4 4v16h16 M8 16v-5 M13 16V8 M18 16v-9`,dashboard:`M3 3h7v8H3z M14 3h7v5h-7z M14 12h7v9h-7z M3 15h7v6H3z`,kpi:`M3 17l5-5 4 3 6-7 M16 8h4v4`,gauge:`M4 20a8 8 0 1 1 16 0 M12 12l4-3`,tree:`M5 3h6v4H5z M13 10h6v4h-6z M13 17h6v4h-6z M8 7v10h5 M8 12h5`,tabs:`M3 7h5v13H3z M9 7h5v13H9z M3 4h18v3H3z`,"master-detail":`M4 5h16 M4 10h8 M8 10v10 M8 15h6 M8 20h6`,pivot:`M3 3h18v18H3z M3 9h18 M9 3v18`,filter:`M3 5h18l-7 8v6l-4 2v-8z`,record:`M4 4h16v16H4z M8 9h8 M8 13h8 M8 17h5`,board:`M4 4h4v16H4z M10 4h4v10h-4z M16 4h4v13h-4z`,calendar:`M4 5h16v15H4z M4 9h16 M8 3v4 M16 3v4`,detail:`M4 3h16v18H4z M8 8h8 M8 12h8 M8 16h5`,lookup:`M10 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12z M20 20l-5.5-5.5`,file:`M6 2h9l5 5v15H6z M15 2v5h5`,copy:`M9 9h11v11H9z M5 15H4V4h11v1`,generate:`M8 6l-5 6 5 6 M16 6l5 6-5 6`,import:`M12 15V3 M7 8l5-5 5 5 M4 17v3h16v-3`,save:`M12 3v12 M7 10l5 5 5-5 M4 19h16`,undo:`M9 14l-4-4 4-4 M5 10h11a4 4 0 0 1 0 8h-1`,redo:`M15 14l4-4-4-4 M19 10H8a4 4 0 0 0 0 8h1`,screen:`M3 4h18v13H3z M8 21h8 M12 17v4`,entity:`M4 6c0-1.7 3.6-3 8-3s8 1.3 8 3-3.6 3-8 3-8-1.3-8-3z M4 6v6c0 1.7 3.6 3 8 3s8-1.3 8-3V6 M4 12v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6`,database:`M4 5c0-1.7 3.6-3 8-3s8 1.3 8 3-3.6 3-8 3-8-1.3-8-3z M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5 M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3`,plus:`M12 5v14 M5 12h14`,deploy:`M22 2L11 13 M22 2l-7 20-4-9-9-4z`,desktop:`M3 4h18v12H3z M8 20h8 M12 16v4`,tablet:`M6 3h12a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z M11 18h2`,mobile:`M8 2h8a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z M11 18h2`,chevron:`M9 6l6 6-6 6`,close:`M6 6l12 12 M18 6L6 18`},ai=e=>G[e]??G.file,oi=I(!1),si=I(null),ci=I(!1),li=F(()=>H(qe)?.find(e=>e.path===H(si))??H(qe)?.[0]);function ui(){L(qe,XE(H(s)),!0),L(si,(H(qe).find(e=>e.path.endsWith(`+page.svelte`))??H(qe)[0])?.path??null,!0),L(oi,!0)}let fi=e=>e.replace(/^src\//,``);async function pi(){if(H(li))try{await navigator.clipboard.writeText(H(li).contents),L(ci,!0),setTimeout(()=>L(ci,!1),1200)}catch{}}let mi=I(!1);async function hi(){if(H(qe)){L(mi,!0);try{let e=(await Wy(async()=>{let{default:e}=await import(`./jszip.min-CjMo-QGg.js`).then(e=>c(e.default));return{default:e}},[],import.meta.url)).default,t=new e;for(let e of H(qe))t.file(e.path,e.contents);let n=await t.generateAsync({type:`blob`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${(H(s).title||`studio-app`).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`studio-app`}.zip`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}catch{alert(`Download needs the "jszip" package. Install it (npm i jszip) or copy the files individually.`)}finally{L(mi,!1)}}}let gi=I(`idle`);async function _i(){if(!(!H(qe)||!t.onWriteToDisk)){L(gi,`busy`);try{await t.onWriteToDisk(H(qe)),L(gi,`done`),setTimeout(()=>L(gi,`idle`),1600)}catch{L(gi,`idle`)}}}let vi=I(200),yi=I(290),bi=I(null),xi=0,Si=0,Ci=(e,t,n)=>Math.max(t,Math.min(e,n));function wi(e,t){L(bi,e,!0),xi=t.clientX,Si=H(e===`rail`?vi:yi),t.currentTarget.setPointerCapture(t.pointerId)}function Ti(e){if(!H(bi))return;let t=e.clientX-xi;H(bi)===`rail`?L(vi,Ci(Si+t,160,320),!0):L(yi,Ci(Si-t,230,440),!0)}function Ei(){L(bi,null)}let Di=I(!1),Oi=I(`none`),ki=I(!1);Ln(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(max-width: 900px)`),t=()=>{L(ki,e.matches,!0),e.matches||L(Oi,`none`)};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)});let Ai=F(()=>H(Di)?`0px 0px minmax(0, 1fr) 6px ${H(yi)}px`:`${H(vi)}px 6px minmax(0, 1fr) 6px ${H(yi)}px`);function ji(){H(ki)?L(Oi,H(Oi)===`rail`?`none`:`rail`,!0):L(Di,!H(Di))}function Mi(){L(Oi,H(Oi)===`insp`?`none`:`insp`,!0)}Ln(()=>{H(ki)&&H(ue)&&L(Oi,`insp`)});let Ni=new Set([`grid`,`chart`,`master-detail`,`pivot`]),Pi=e=>Ni.has(e.config.kind),Fi=new Set([`grid`,`master-detail`]),Ii=e=>Fi.has(e.config.kind),Li=I(null),Ri=I(0),zi=0,Bi=0,Vi=e=>H(Li)===e.id?H(Ri):e.height??200;function Hi(e,t){t.preventDefault(),t.stopPropagation(),L(Li,e.id,!0),zi=t.clientY,Bi=e.height??200,L(Ri,Bi,!0),t.currentTarget.setPointerCapture(t.pointerId)}function qi(e){H(Li)&&L(Ri,Ci(Bi+(e.clientY-zi),120,640),!0)}function Ji(){let e=H(Li);if(L(Li,null),!e||!H(k))return;let t=H(k).blocks.find(t=>t.id===e);t&&H(Ri)!==(t.height??200)&&p(PT(H(s),H(k).id,e,{height:H(Ri)}))}let Yi=I(null),Xi=I(4),Zi=0,Qi=0,$i=60,ea=e=>H(Yi)===e.id?H(Xi):oT(e);function ta(e,t){t.preventDefault(),t.stopPropagation(),L(Yi,e.id,!0),Zi=t.clientX,Qi=oT(e);let n=t.currentTarget.closest(`.sv-studio__block`)?.closest(`.sv-studio__canvas`);n&&($i=(n.clientWidth-132)/12),L(Xi,Qi,!0),t.currentTarget.setPointerCapture(t.pointerId)}function na(e){if(!H(Yi))return;let t=Math.round((e.clientX-Zi)/Math.max($i,1));L(Xi,Ci(Qi+t,1,12),!0)}function aa(){let e=H(Yi);if(L(Yi,null),!e||!H(k))return;let t=H(k).blocks.find(t=>t.id===e);t&&H(Xi)!==oT(t)&&p(PT(H(s),H(k).id,e,{colSpan:H(Xi)}))}let oa=(e,t)=>p(PT(H(s),H(k).id,e.id,{colSpan:t}));function sa(e){let t=e.target,n=!!t&&(/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)||t.isContentEditable),r=e.ctrlKey||e.metaKey;if(r&&(e.key===`z`||e.key===`Z`)){e.preventDefault(),e.shiftKey?h():m();return}if(r&&(e.key===`y`||e.key===`Y`)){e.preventDefault(),h();return}if(r&&(e.key===`d`||e.key===`D`)&&H(ue)&&!n){e.preventDefault(),D(H(ue));return}if(r&&(e.key===`c`||e.key===`C`)&&H(ue)&&!n&&!window.getSelection()?.toString()){e.preventDefault(),ae();return}if(r&&(e.key===`v`||e.key===`V`)&&H(O)&&!n){e.preventDefault(),oe();return}if(e.key===`?`&&!n){e.preventDefault(),L(ee,!H(ee));return}if(e.key===`Escape`){H(ee)?L(ee,!1):H(te)?L(te,!1):H(ht)?L(ht,!1):H(mt)?L(mt,!1):H(Lt)?L(Lt,!1):H(Ht)?L(Ht,!1):H(xt)?L(xt,!1):H(ct)?L(ct,!1):H(Ha)?L(Ha,!1):H(oi)?L(oi,!1):H(Ye)===`none`?L(ue,null):L(Ye,`none`);return}!n&&!H(oi)&&!H(Ha)&&(e.key===`Delete`||e.key===`Backspace`)&&H(ue)&&(e.preventDefault(),E())}let ca=I(null),la=I(null),ua=I(null),da=I(null);function ma(e,t){L(ca,t,!0),L(la,null),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`,e.dataTransfer.setData(`text/plain`,t))}function ha(e,t){if(H(Li)||H(Yi)){e.preventDefault();return}L(la,t,!0),L(ca,null),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t))}function ga(e,t){if(!H(ca)&&!H(la))return;e.preventDefault();let n=e.currentTarget.getBoundingClientRect();L(da,e.clientX>n.left+n.width/2?t+1:t,!0),e.dataTransfer&&(e.dataTransfer.dropEffect=H(ca)?`copy`:`move`)}function _a(e){(H(ca)||H(la))&&e.preventDefault()}function va(e){if(!H(k))return;e.preventDefault();let t=H(da)??H(k).blocks.length;if(H(ca))w(H(ca),t);else if(H(la)){let e=H(k).blocks.findIndex(e=>e.id===H(la));p(NT(H(s),H(k).id,H(la),e<t?t-1:t))}ya()}function ya(){L(ca,null),L(la,null),L(da,null)}function ba(e){H(A)&&p(FT(H(s),H(A).name,e))}let xa=[{value:`required`,label:`is required`},{value:`gt`,label:`>`},{value:`gte`,label:`≥`},{value:`lt`,label:`<`},{value:`lte`,label:`≤`},{value:`eq`,label:`=`},{value:`ne`,label:`≠`},{value:`minLen`,label:`min length`},{value:`maxLen`,label:`max length`}],Sa=e=>e!==`required`;function Ca(){if(!H(A))return;let e=H(A).fields.find(e=>!e.primaryKey)?.field??H(A).fields[0]?.field??``;ba({...H(A),validations:[...H(A).validations??[],{field:e,op:`required`,message:`This field is required`}]})}function wa(e,t){H(A)&&ba({...H(A),validations:(H(A).validations??[]).map((n,r)=>r===e?{...n,...t}:n)})}function Ta(e){H(A)&&ba({...H(A),validations:(H(A).validations??[]).filter((t,n)=>n!==e)})}let Ea=I(null),Da=I(null);function Oa(e,t){if(!H(Ea))return;e.preventDefault();let n=e.currentTarget.getBoundingClientRect();L(Da,e.clientY>n.top+n.height/2?t+1:t,!0)}function ka(){if(!H(A)||!H(Ea)||H(Da)==null){L(Ea,null),L(Da,null);return}let e=H(A).fields.findIndex(e=>e.field===H(Ea)),t=[...H(A).fields],[n]=t.splice(e,1);t.splice(Math.max(0,Math.min(e<H(Da)?H(Da)-1:H(Da),t.length)),0,n),ba({...H(A),fields:t}),L(Ea,null),L(Da,null)}function Aa(e,t){H(k)&&H(j)&&p(PT(H(s),H(k).id,H(j).id,{config:{columns:t}}))}function ja(e,t,n){Aa(e,e.columns.map(e=>e.field===t?{...e,show:n}:e))}function Ma(e,t,n){Aa(e,e.columns.map(e=>e.field===t?{...e,...n}:e))}function Na(e,t,n){let r=t+n;if(r<0||r>=e.columns.length)return;let i=[...e.columns];[i[t],i[r]]=[i[r],i[t]],Aa(e,i)}let Pa=e=>(uT(H(s),e)?.fields??[]).filter(e=>e.type===`text`||e.type===`enum`);function Fa(e){switch(e){case`number`:return[{value:``,label:`Number input`},{value:`slider`,label:`Slider`},{value:`rating`,label:`Rating`}];case`boolean`:return[{value:``,label:`Switch`}];case`date`:case`dateString`:return[{value:``,label:`Date`},{value:`datetime`,label:`Date + time`}];case`datetime`:return[{value:``,label:`Date + time`},{value:`date`,label:`Date only`},{value:`time`,label:`Time only`}];case`enum`:case`relation`:return[{value:``,label:`Dropdown`},{value:`rich-select`,label:`Searchable`}];case`json`:return[{value:``,label:`Textarea`}];default:return[{value:``,label:`Text`},{value:`textarea`,label:`Multiline`},{value:`chips`,label:`Tags`},{value:`password`,label:`Password`},{value:`color`,label:`Color`},{value:`phone`,label:`Phone`},{value:`country`,label:`Country`},{value:`mask`,label:`Masked`}]}}let Ia=e=>Fa(e).length>1;function La(e,t){if(!H(A))return;let n={...e.input??{},...t};for(let e of Object.keys(n)){let t=n[e];(t===``||t==null)&&delete n[e]}let r=Object.keys(n).length?n:void 0;ba(UC(H(A),e.field,{input:r}))}let Ra=[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`],za=[`postgres`,`mysql`,`sqlite`,`mssql`,`supabase`,`turso`],Ba=[`query`,`path`,`header`,`body`],Va=I(`query`),Ha=I(!1),Ua=F(()=>H(A)?JT(H(s),H(A).name):{kind:`memory`});function Wa(e){H(A)&&p(qT(H(s),H(A).name,e))}function Ga(e){if(!H(A)||H(Ua).kind===e)return;let t=KT(e,H(A).name),n=H(Ua),r=n.kind===`memory`||n.kind===`pglite`?n.seed:void 0;r&&(t.kind===`memory`||t.kind===`pglite`)&&(t.seed=r),Wa(t)}function Ka(e){H(Ua).kind===`rest`&&Wa({...H(Ua),...e})}let qa=F(()=>{if(!H(s).entities.length)return null;let e=new Set(H(s).entities.map(e=>JT(H(s),e.name).kind));return e.size===1&&e.has(`memory`)?`memory`:e.size===1&&e.has(`pglite`)?`pglite`:null});function Ja(e){if(H(qa)===e)return;let t=WT(H(s),e);for(let n of H(s).entities){let r=JT(H(s),n.name),i=r.kind===`memory`||r.kind===`pglite`?r.seed:void 0;t=qT(t,n.name,e===`pglite`?{kind:`pglite`,table:n.name,...i?{seed:i}:{}}:{kind:`memory`,...i?{seed:i}:{}})}p(t)}let Ya=e=>[...e.matchAll(/\{([^}]+)\}/g)].map(e=>e[1]);function Xa(e){if(H(Ua).kind!==`rest`)return;let t=Ya(e),n=H(Ua).params.filter(e=>e.location!==`path`),r=new Set,i=t.filter(e=>!r.has(e)&&r.add(e)).map(e=>H(Ua).kind===`rest`?H(Ua).params.find(t=>t.location===`path`&&t.name===e)??{name:e,location:`path`,type:`string`,value:``}:{name:e,location:`path`,type:`string`,value:``});Ka({path:e,params:[...n,...i]})}function Za(e){return H(Ua).kind===`rest`?H(Ua).params.filter(t=>t.location===e):[]}function Qa(e){H(Ua).kind===`rest`&&Ka({params:[...H(Ua).params,{name:``,location:e,type:`string`,value:``}]})}function $a(e,t){H(Ua).kind===`rest`&&Ka({params:H(Ua).params.map(n=>n===e?{...n,...t}:n)})}function eo(e){H(Ua).kind===`rest`&&Ka({params:H(Ua).params.filter(t=>t!==e)})}let to=I(!1),no=I(null),ro=(e,t)=>{let n=(e??``).replace(/\/+$/,``),r=(t??``).replace(/^\/+/,``);return n?r?`${n}/${r}`:n:r},io=(e,t)=>t?t.split(`.`).filter(Boolean).reduce((e,t)=>e==null?e:e[t],e):e;async function ao(){if(!H(A))return;let e=H(Ua);L(to,!0),L(no,null);try{let t;if(e.kind===`rest`){let n=e.path;for(let t of e.params)t.location===`path`&&t.value&&(n=n.split(`{${t.name}}`).join(t.value));let r=Object.fromEntries(e.params.filter(e=>e.location===`header`&&e.value).map(e=>[e.name,e.value])),i=Object.fromEntries(e.params.filter(e=>e.location===`query`&&e.value).map(e=>[e.name,e.value]));t=qb({url:ro(e.baseUrl,n),schema:H(A),headers:r,query:i,parse:e.rowsPath||e.totalPath?t=>{let n=io(t,e.rowsPath)??[];return{rows:n,rowCount:Number(io(t,e.totalPath)??n.length)}}:void 0})}else if(e.kind===`supabase`){if(!e.url||!e.key)throw Error(`Set the project URL and the anon key first.`);t=qb({url:`${e.url.replace(/\/+$/,``)}/rest/v1/${e.table}`,schema:H(A),headers:{apikey:e.key,Authorization:`Bearer ${e.key}`},query:{select:`*`}})}else return;let n=await t.getRows({startRow:0,endRow:25,pageIndex:0,pageSize:25,sortModel:[],filterModel:{}}),r=[...n.rows];L(ve,{...H(ve),[H(A).name]:r},!0),L(no,{ok:!0,message:`OK - ${n.rowCount} rows returned.`},!0)}catch(e){L(no,{ok:!1,message:e instanceof Error?e.message:String(e)},!0)}finally{L(to,!1)}}let oo=e=>{let t=e==null?``:typeof e==`object`?JSON.stringify(e):String(e);return t.length>48?t.slice(0,47)+`…`:t},so=e=>typeof e==`number`?`number`:typeof e==`boolean`?`boolean`:e&&typeof e==`object`?`json`:`text`;function co(){if(!H(A))return;let e=H(ve)[H(A).name]??[];if(!e.length)return;let t=Object.keys(e[0]??{});if(!t.length)return;let n=t.includes(`id`)?`id`:t[0],r=t.map(t=>({field:t,type:so(e.map(e=>e[t]).find(e=>e!=null)),...t===n?{primaryKey:!0}:{}}));ba({...H(A),idField:n,fields:r}),L(no,{ok:!0,message:`Imported ${r.length} fields from the response.`},!0)}var lo=XF();Jr(`keydown`,pn,sa);let uo;var fo=R(lo),po=R(fo),mo=B(po,2),ho=R(mo);n(R(ho),()=>`dashboard`),N(ho),P(2),N(mo);var go=B(mo,4);Z(go);var _o=B(go,2),vo=e=>{var t=GA();let n;V(()=>n=X(t,1,`sv-studio__tb-btn svelte-psjrav`,null,n,{"is-active":H(Oi)===`insp`})),U(`click`,t,Mi),K(e,t)};J(_o,e=>{H(ki)&&e(vo)});var yo=B(_o,2),bo=R(yo);let xo;var So=R(bo),Co=B(So,2),wo=R(Co,!0);N(Co),n(B(Co,2),()=>`chevron`),N(bo);var To=B(bo,2),Eo=e=>{var n=YA(),r=z(n),i=B(r,2),a=R(i),o=e=>{var t=KA(),n=R(t);let r;var i=B(n,2);let a;N(t),V(()=>{r=X(n,1,`svelte-psjrav`,null,r,{"is-active":H(Ne)===`light`}),a=X(i,1,`svelte-psjrav`,null,a,{"is-active":H(Ne)===`dark`})}),U(`click`,n,()=>p(YT(H(s),{mode:`light`}))),U(`click`,i,()=>p(YT(H(s),{mode:`dark`}))),K(e,t)};J(a,e=>{t.appearance||e(o)});var c=B(a,2);Y(c,21,()=>oE,e=>e.id,(e,t)=>{let n=F(()=>(H(s).theme?.preset??`tailwind`)===H(t).id),r=F(()=>H(t)[H(Ne)]);var i=qA();let a;var o=B(R(i),2),c=R(o,!0);N(o),N(i),V(()=>{a=X(i,1,`sv-studio__theme svelte-psjrav`,null,a,{"is-active":H(n)}),Q(i,`aria-checked`,H(n)),Q(i,`title`,H(t).name),Ui(i,`--pv-bg: ${H(r).bg??``}; --pv-header: ${H(r).headerBg??``}; --pv-border: ${H(r).border??``}; --pv-accent: ${H(r).accent??``}; --pv-fg: ${H(r).fg??``}`),q(c,H(t).name)}),U(`click`,i,()=>p(XT(H(s),H(t).id))),K(e,i)}),N(c);var l=B(c,2),u=B(R(l)),d=R(u);Z(d);var f=B(d,2),m=e=>{var t=JA();U(`click`,t,()=>p(YT(H(s),{accent:void 0}))),K(e,t)};J(f,e=>{H(s).theme?.accent&&e(m)}),N(u),N(l);var h=B(l,2),g=B(R(h));Dn(g),Q(g,`placeholder`,`/* Injected into the app’s global CSS */
|
|
938
|
-
.st__title { letter-spacing: -0.03em; }`),P(2),N(h),N(i),V(()=>{ra(d,H(s).theme?.accent??H(Le)),ra(g,H(s).theme?.customCss??``)}),U(`click`,r,()=>L(mt,!1)),U(`change`,d,e=>p(YT(H(s),{accent:e.currentTarget.value}))),U(`change`,g,e=>p(YT(H(s),{customCss:e.currentTarget.value.trim()||void 0}))),K(e,n)};J(To,e=>{H(mt)&&e(Eo)}),N(yo);var Do=B(yo,4),Oo=e=>{var t=XA();let n;var r=R(t);N(t),V(()=>{n=X(t,1,`sv-studio__saved svelte-psjrav`,null,n,{"is-saving":H(y)===`Saving…`}),q(r,`${H(y)===`Saving…`?``:`✓ `}${H(y)??``}`)}),K(e,t)};J(Do,e=>{H(y)&&e(Oo)});var ko=B(Do,2);n(R(ko),()=>`undo`),N(ko);var Ao=B(ko,2);n(R(Ao),()=>`redo`),N(Ao);var jo=B(Ao,2),Mo=B(jo,4),No=e=>{var t=ZA();let n;V(()=>n=X(t,1,`sv-studio__tb-btn sv-studio__tb-btn--ai svelte-psjrav`,null,n,{"is-active":H(xt)})),U(`click`,t,Et),K(e,t)};J(Mo,e=>{t.onCopilot&&e(No)});var Po=B(Mo,2);n(R(Po),()=>`dashboard`),P(),N(Po);var Fo=B(Po,2),Io=e=>{var t=QA();let r;n(R(t),()=>`entity`),P(),N(t),V(()=>r=X(t,1,`sv-studio__tb-btn svelte-psjrav`,null,r,{"is-active":H(te)})),U(`click`,t,()=>L(te,!0)),K(e,t)};J(Fo,e=>{H(s).entities.length>0&&e(Io)});var Lo=B(Fo,2),Ro=R(Lo);let zo;var Bo=R(Ro);n(Bo,()=>`plus`),n(B(Bo,2),()=>`chevron`),N(Ro);var Vo=B(Ro,2),Ho=e=>{var r=tj(),i=z(r),a=B(i,2),o=R(a);n(R(o),()=>`plus`),P(),N(o);var c=B(o,2),l=R(c);n(l,()=>`import`);var u=B(l,3);N(c);var d=B(c,2);n(R(d),()=>`database`),P(),N(d);var f=B(d,2),p=e=>{var t=ej(),r=z(t);n(R(r),()=>`database`),P(),N(r);var i=B(r,2),a=e=>{var t=$A();n(R(t),()=>`database`),P(),N(t),U(`click`,t,()=>{L(ht,!1),ir()}),K(e,t)};J(i,e=>{H(s).entities.length>0&&e(a)}),U(`click`,r,()=>{L(ht,!1),wn()}),K(e,t)};J(f,e=>{t.onIntrospectDatabase&&e(p)});var m=B(f,2);n(R(m),()=>`import`),P(),N(m),N(a),U(`click`,i,()=>L(ht,!1)),U(`click`,o,()=>{L(ht,!1),L(jt,``),L(At,!0)}),U(`change`,u,e=>{L(ht,!1),It(e.currentTarget.files?.[0]),e.currentTarget.value=``}),U(`click`,d,()=>{L(ht,!1),L(Wt,null),L(Ht,!0)}),U(`click`,m,()=>{L(ht,!1),L(Ye,`import`)}),K(e,r)};J(Vo,e=>{H(ht)&&e(Ho)}),N(Lo);var Uo=B(Lo,2);let Wo;var Go=B(Uo,2);let Ko;n(R(Go),()=>`save`),P(),N(Go);var qo=B(Go,4);n(R(qo),()=>`screen`),P(),N(qo);var Jo=B(qo,2);let Yo;n(R(Jo),()=>`deploy`),P(),N(Jo);var Xo=B(Jo,2);n(R(Xo),()=>`generate`),P(),N(Xo),N(fo);var Zo=B(fo,2),Qo=e=>{var t=nj(),r=R(t);n(R(r),()=>`save`),P(),N(r);var i=B(r,2),a=B(i,2);N(t),U(`click`,i,x),U(`click`,a,C),K(e,t)};J(Zo,e=>{H(_)&&e(Qo)});var $o=B(Zo,2),es=e=>{var t=rj(),n=R(t),r=R(n,!0);N(n);var i=B(n,2);N(t),V(()=>q(r,H(Ft))),U(`click`,i,()=>L(Ft,null)),K(e,t)};J($o,e=>{H(Ft)&&e(es)});var ts=B($o,2),ns=e=>{var t=ij(),n=R(t),r=R(n,!0);N(n);var i=B(n,2);N(t),V(()=>q(r,H(et))),U(`click`,i,()=>L(et,null)),K(e,t)};J(ts,e=>{H(et)&&H(Ye)===`none`&&e(ns)});var rs=B(ts,2),is=e=>{var t=lj(),r=R(t),i=e=>{var t=aj(),n=B(z(t),2);Dn(n),V(()=>ra(n,H(tt))),K(e,t)},a=e=>{var t=oj(),r=B(z(t),2);let i;var a=R(r);n(a,()=>`import`);var o=B(a,4);N(r);var s=B(r,2);Dn(s),Q(s,`placeholder`,`…or paste { "entities": [...], "screens": [...] }`);var c=B(s,2);V(e=>{i=X(r,1,`sv-studio__dropzone svelte-psjrav`,null,i,{"is-dragover":H(it)}),c.disabled=e},[()=>!H(Xe).trim()]),Jr(`dragover`,r,e=>{e.preventDefault(),L(it,!0)}),Jr(`dragleave`,r,()=>L(it,!1)),Jr(`drop`,r,ot),U(`change`,o,e=>at(e.currentTarget.files?.[0])),fa(s,()=>H(Xe),e=>L(Xe,e)),U(`click`,c,rt),K(e,t)},o=e=>{var t=sj(),n=B(z(t),2);Dn(n),Q(n,`placeholder`,`model User { id Int @id ... }`);var r=B(n,2);fa(n,()=>H($e),e=>L($e,e)),U(`click`,r,st),K(e,t)};J(r,e=>{H(Ye)===`save`?e(i):H(Ye)===`load`?e(a,1):e(o,-1)});var s=B(r,2),c=e=>{var t=cj(),n=R(t,!0);N(t),V(()=>q(n,H(et))),K(e,t)};J(s,e=>{H(et)&&e(c)}),N(t),K(e,t)};J(rs,e=>{H(Ye)!==`none`&&e(is)});var as=B(rs,2);let os;var ss=R(as),cs=e=>{var t=uj();U(`click`,t,()=>L(Oi,`none`)),K(e,t)};J(ss,e=>{H(ki)&&H(Oi)!==`none`&&e(cs)});var ls=B(ss,2),us=R(ls),ds=B(R(us),2);N(us);var fs=B(us,2),ps=R(fs),ms=R(ps);n(ms,()=>`chevron`);var hs=B(ms,3),gs=e=>{var t=dj();n(R(t),()=>`plus`),N(t),V(()=>Q(t,`title`,`Add ${H(Je)??``} screen for ${H(A).label??H(A).name??``}`)),U(`click`,t,e=>{e.preventDefault(),p($T(H(s),H(A).name,H(Je)))}),K(e,t)};J(hs,e=>{H(A)&&e(gs)}),N(ps);var _s=B(ps,2),vs=R(_s);Y(vs,17,()=>H(s).screens,e=>e.id,(e,t)=>{var r=fj();let i;var a=R(r),o=R(a);n(o,()=>`screen`);var c=B(o),l=R(c,!0);N(c);var u=B(c),d=R(u);N(u),N(a);var f=B(a,2),m=B(f,2);n(R(m),()=>`close`),N(m),N(r),V(()=>{i=X(r,1,`sv-studio__tree-row svelte-psjrav`,null,i,{"is-active":H(t).id===H(k)?.id,"is-dragging":H(ua)===H(t).id}),q(l,H(t).title),q(d,`/${H(t).route??``}`)}),Jr(`dragstart`,r,()=>L(ua,H(t).id,!0)),Jr(`dragover`,r,e=>e.preventDefault()),Jr(`drop`,r,e=>{e.preventDefault(),H(ua)&&H(ua)!==H(t).id&&p(UT(H(s),H(ua),H(s).screens.findIndex(e=>e.id===H(t).id))),L(ua,null)}),Jr(`dragend`,r,()=>L(ua,null)),U(`click`,a,()=>{L(le,H(t).id,!0),L(ue,null)}),U(`click`,f,()=>{L(le,H(t).id,!0),se()}),U(`click`,m,()=>p(RT(H(s),H(t).id))),K(e,r)});var ys=B(vs,2),bs=e=>{K(e,pj())};J(ys,e=>{H(s).screens.length===0&&e(bs)}),N(_s),N(fs);var xs=B(fs,2),Ss=R(xs);n(R(Ss),()=>`chevron`),P(),N(Ss);var Cs=B(Ss,2);Y(Cs,21,()=>H(s).entities,e=>e.name,(e,t)=>{var r=mj(),i=R(r),a=R(i);n(a,()=>`entity`);var o=B(a),c=R(o,!0);N(o),N(i);var l=B(i,2);n(R(l),()=>`plus`),N(l),N(r),V(()=>{q(c,H(t).label??H(t).name),Q(l,`aria-label`,`Add screen for ${H(t).name??``}`),Q(l,`title`,`Add ${H(Je)??``} screen`)}),U(`click`,l,()=>p($T(H(s),H(t).name,H(Je)))),K(e,r)}),N(Cs),N(xs);var ws=B(xs,2),Ts=R(ws),Es=B(R(Ts)),Ds=R(Es);Ds.value=Ds.__value=`crud`;var Os=B(Ds);Os.value=Os.__value=`dashboard`;var ks=B(Os);ks.value=ks.__value=`master-detail`;var As=B(ks);As.value=As.__value=`empty`,N(Es),N(Ts);var js=B(Ts,2),Ms=B(R(js)),Ns=R(Ms);Ns.value=Ns.__value=`memory`;var Ps=B(Ns);Ps.value=Ps.__value=`pglite`;var Fs=B(Ps);Fs.value=Fs.__value=`sql`;var Is=B(Fs);Is.value=Is.__value=`supabase`;var Ls=B(Is);Ls.value=Ls.__value=`rest`,N(Ms);var Rs;Gi(Ms),N(js);var zs=B(js,2),Bs=R(zs);n(R(Bs),()=>`chevron`),P(),N(Bs);var Vs=B(Bs,2),Hs=R(Vs),Us=B(R(Hs)),Ws=R(Us);Ws.value=Ws.__value=`sidebar`;var Gs=B(Ws);Gs.value=Gs.__value=`top-nav`,N(Us);var Ks;Gi(Us),N(Hs);var qs=B(Hs,2),Js=e=>{var t=hj(),n=B(R(t)),r=R(n);r.value=r.__value=`left`;var i=B(r);i.value=i.__value=`right`,N(n);var a;Gi(n),N(t),V(()=>{a!==(a=H(s).theme?.shell?.navPosition??`left`)&&(n.value=(n.__value=H(s).theme?.shell?.navPosition??`left`)??``,Wi(n,H(s).theme?.shell?.navPosition??`left`))}),U(`change`,n,e=>p(ZT(H(s),{navPosition:e.currentTarget.value}))),K(e,t)};J(qs,e=>{(H(s).theme?.shell?.style??`sidebar`)===`sidebar`&&e(Js)});var Ys=B(qs,2),Xs=B(R(Ys));Z(Xs),N(Ys);var Zs=B(Ys,4),Qs=R(Zs),$s=e=>{var t=gj(),n=z(t),r=B(n,2);V(()=>Q(n,`src`,H(He))),U(`click`,r,()=>p(ZT(H(s),{logo:void 0}))),K(e,t)},ec=e=>{var t=_j();U(`change`,t,Ge),K(e,t)};J(Qs,e=>{H(He)?e($s):e(ec,-1)}),N(Zs);var tc=B(Zs,4),nc=B(R(tc));Z(nc),N(tc),N(Vs),N(zs),N(ws),N(ls);var rc=B(ls,2),ic=B(rc,2),ac=R(ic),oc=B(R(ac),2);Y(oc,17,()=>cT,e=>e.kind,(e,t)=>{var r=vj();let i;var a=R(r);n(a,()=>H(t).kind);var o=B(a,1,!0);N(r),V(()=>{i=X(r,1,`sv-studio__palette-item svelte-psjrav`,null,i,{"is-dragging":H(ca)===H(t).kind}),r.disabled=!H(k),Q(r,`draggable`,!!H(k)),Q(r,`title`,H(t).needs?`Needs a ${H(t).needs}`:`Drag onto the canvas, or click to add`),q(o,H(t).label)}),Jr(`dragstart`,r,e=>H(k)&&ma(e,H(t).kind)),Jr(`dragend`,r,ya),U(`click`,r,()=>w(H(t).kind)),K(e,r)});var sc=B(oc,2),cc=R(sc);Z(cc),P(),N(sc);var lc=B(sc,2);n(R(lc),()=>`screen`),P(),N(lc),N(ac);var uc=B(ac,2),dc=e=>{var t=Nj();let r;var o=R(t),c=R(o),l=R(c),u=R(l),d=e=>{var t=yj();V(()=>{Q(t,`src`,H(He)),Q(t,`alt`,H(ze))}),K(e,t)},f=e=>{var t=bj(),r=z(t);n(r,()=>`dashboard`);var i=B(r),a=R(i,!0);N(i),V(()=>q(a,H(ze))),K(e,t)};J(u,e=>{H(He)?e(d):e(f,-1)}),N(l);var m=B(l,2),h=e=>{var t=xj();V(()=>{Q(t,`title`,H(Ue)?`Expand sidebar`:`Collapse sidebar`),Q(t,`aria-expanded`,!H(Ue))}),U(`click`,t,()=>L(Ue,!H(Ue))),K(e,t)};J(m,e=>{H(Re)===`sidebar`&&e(h)}),N(c);var g=B(c,2);Y(g,21,()=>H(Ke),e=>e.id,(e,t)=>{var n=Sj();let r;var i=R(n),a=R(i,!0);N(i);var o=B(i),s=R(o,!0);N(o),N(n),V(e=>{r=X(n,1,`sv-studio__shellnav-item svelte-psjrav`,null,r,{"is-active":H(t).id===H(k).id}),Q(n,`title`,H(t).nav?.label??H(t).title),q(a,e),q(s,H(t).nav?.label??H(t).title)},[()=>(H(t).nav?.label??H(t).title).trim().slice(0,1)]),U(`click`,n,()=>{L(le,H(t).id,!0),L(ue,null)}),K(e,n)}),N(g),N(o);var _=B(o,2),v=R(_),y=R(v);Y(y,19,()=>H(k).blocks,e=>e.id,(e,t,r)=>{var o=Aj();let c;var l=R(o),u=R(l),d=B(R(u));n(d,()=>H(t).config.kind);var f=B(d,1,!0),m=B(f),h=e=>{var n=Cj();V(e=>Q(n,`title`,e),[()=>H(pe)[H(t).id].map(e=>e.message).join(`
|
|
939
|
-
`)]),K(e,n)};J(m,e=>{H(pe)[H(t).id]&&e(h)}),N(u);var g=B(u,2),_=R(g);Y(_,20,()=>[{l:`⅓`,c:4},{l:`½`,c:6},{l:`⅔`,c:8},{l:`1`,c:12}],e=>e.c,(e,n)=>{var r=wj();let i;var a=R(r,!0);N(r),V(e=>{Q(r,`aria-label`,`Width ${n.l}`),i=X(r,1,`svelte-psjrav`,null,i,e),q(a,n.l)},[()=>({"is-active":oT(H(t))===n.c})]),U(`click`,r,e=>{e.stopPropagation(),oa(H(t),n.c)}),K(e,r)}),N(_);var v=B(_,2),y=B(v,2);N(g),N(l);var b=B(l,2),x=e=>{var r=Tj(),i=R(r);n(i,()=>H(t).config.kind);var a=B(i),o=R(a,!0);N(a),N(r),V(e=>q(o,e),[()=>pr(H(t).config.kind)]),K(e,r)},S=e=>{var n=Ej();let r;var a=R(n);{let e=F(()=>Me(H(A),H(Oe))),n=F(()=>Pi(H(t))?Vi(H(t))-(Ii(H(t))?0:20):200);i(a,()=>H(t),()=>H(A),()=>H(e),()=>H(n),()=>!1)}N(n),V((e,t)=>{r=X(n,1,`sv-studio__block-body svelte-psjrav`,null,r,e),Ui(n,t)},[()=>({"is-flush":Ii(H(t))}),()=>Pi(H(t))?`height:${Vi(H(t))}px`:``]),K(e,n)};J(b,e=>{a()?e(S,-1):e(x)});var C=B(b,2),w=e=>{var n=Oj();let r;var i=R(n),a=e=>{var t=Dj(),n=R(t);N(t),V(e=>q(n,`${e??``}px`),[()=>Math.round(H(Ri))]),K(e,t)};J(i,e=>{H(Li)===H(t).id&&e(a)}),N(n),V(()=>r=X(n,1,`sv-studio__block-resize svelte-psjrav`,null,r,{"is-resizing":H(Li)===H(t).id})),U(`pointerdown`,n,e=>Hi(H(t),e)),U(`pointermove`,n,qi),U(`pointerup`,n,Ji),K(e,n)},T=F(()=>a()&&Pi(H(t)));J(C,e=>{H(T)&&e(w)});var E=B(C,2);let O;var ee=R(E),te=e=>{var t=kj(),n=R(t);N(t),V(()=>q(n,`${H(Xi)??``}/12`)),K(e,t)};J(ee,e=>{H(Yi)===H(t).id&&e(te)}),N(E),N(o),V((e,n)=>{Q(o,`data-block-id`,H(t).id),c=X(o,1,`sv-studio__block svelte-psjrav`,null,c,{"is-selected":H(t).id===H(ue),"is-dragging":H(t).id===H(la),"is-width-resizing":H(Yi)===H(t).id,"has-issue":!!H(pe)[H(t).id],"drop-before":H(da)===H(r)&&(H(ca)||H(la)),"drop-after":H(da)===H(r)+1&&H(r)===H(k).blocks.length-1&&(H(ca)||H(la))}),Ui(o,`grid-column: span ${e??``}`),q(f,n),O=X(E,1,`sv-studio__block-wresize svelte-psjrav`,null,O,{"is-resizing":H(Yi)===H(t).id})},[()=>ea(H(t)),()=>pr(H(t).config.kind)]),Jr(`dragstart`,o,e=>ha(e,H(t).id)),Jr(`dragover`,o,e=>ga(e,H(r))),Jr(`drop`,o,va),Jr(`dragend`,o,ya),U(`click`,o,()=>L(ue,H(t).id,!0)),U(`keydown`,o,e=>e.key===`Enter`&&L(ue,H(t).id,!0)),U(`click`,v,e=>{e.stopPropagation(),D(H(t).id)}),U(`click`,y,e=>{e.stopPropagation(),p(jT(H(s),H(k).id,H(t).id))}),U(`pointerdown`,E,e=>ta(H(t),e)),U(`pointermove`,E,na),U(`pointerup`,E,aa),K(e,o)});var b=B(y,2),x=e=>{K(e,jj())};J(b,e=>{H(k).blocks.length===0&&e(x)}),N(v);var S=B(v,2),C=e=>{var t=Mj(),n=R(t,!0);N(t),V(()=>q(n,H(Ve))),K(e,t)};J(S,e=>{H(Ve)&&e(C)}),N(_),N(t),V(()=>{r=X(t,1,`sv-studio__shellframe svelte-psjrav`,null,r,{"is-topnav":H(Re)===`top-nav`,"is-navright":H(Re)===`sidebar`&&H(Be)===`right`,"is-navcollapsed":H(We)}),Ui(t,H(Fe))}),Jr(`dragover`,v,_a),Jr(`drop`,v,va),K(e,t)},fc=e=>{var r=Fj(),i=R(r),a=R(i);n(R(a),()=>`dashboard`),N(a);var o=B(a,6),s=R(o);n(R(s),()=>`dashboard`),P(),N(s);var c=B(s,2);n(R(c),()=>`plus`),P(),N(c);var l=B(c,2),u=R(l);n(u,()=>`import`);var d=B(u,2);N(l);var f=B(l,2);n(R(f),()=>`database`),P(),N(f);var p=B(f,2),m=e=>{var t=Pj();n(R(t),()=>`database`),P(),N(t),U(`click`,t,wn),K(e,t)};J(p,e=>{t.onIntrospectDatabase&&e(m)});var h=B(p,2);n(R(h),()=>`import`),P(),N(h),N(o),N(i),N(r),U(`click`,s,()=>L(Ot,!0)),U(`click`,c,()=>{L(jt,``),L(At,!0)}),U(`change`,d,e=>{It(e.currentTarget.files?.[0]),e.currentTarget.value=``}),U(`click`,f,()=>{L(Wt,null),L(Ht,!0)}),U(`click`,h,()=>L(Ye,`import`)),K(e,r)};J(uc,e=>{H(k)&&H(A)?e(dc):e(fc,-1)}),N(ic);var pc=B(ic,2),mc=B(pc,2),hc=R(mc),gc=e=>{var t=fN(),r=z(t),i=R(r);n(i,()=>H(j).config.kind);var a=B(i);N(r);var o=B(r,2),c=R(o);n(R(c),()=>`chevron`),P(),N(c);var l=B(c,2),u=R(l),d=B(R(u)),f=R(d);N(d);var m=B(d,2);Z(m),N(u);var h=B(u,2),g=e=>{var t=Ij(),n=z(t),r=B(R(n));Z(r),Q(r,`min`,120),Q(r,`max`,640),N(n),P(2),V(()=>ra(r,H(j).height??200)),U(`change`,r,e=>p(PT(H(s),H(k).id,H(j).id,{height:Ci(Number(e.currentTarget.value)||200,120,640)}))),K(e,t)},_=F(()=>Pi(H(j)));J(h,e=>{H(_)&&e(g)}),N(l),N(o);var v=B(o,2),y=e=>{let t=F(()=>H(j).config);var r=tM(),i=z(r),a=R(i);n(R(a),()=>`chevron`),P(),N(a);var o=B(a,2),c=R(o),l=B(R(c)),u=R(l);u.value=u.__value=`form`;var d=B(u);d.value=d.__value=`inline`;var f=B(d);f.value=f.__value=`none`,N(l);var m;Gi(l),N(c);var h=B(c,2),g=e=>{var n=Lj(),r=B(R(n)),i=R(r);i.value=i.__value=`modal`;var a=B(i);a.value=a.__value=`drawer`;var o=B(a);o.value=o.__value=`inline`,N(r);var c;Gi(r),N(n),V(()=>{c!==(c=H(t).formPresentation)&&(r.value=(r.__value=H(t).formPresentation)??``,Wi(r,H(t).formPresentation))}),U(`change`,r,e=>p(PT(H(s),H(k).id,H(j).id,{config:{formPresentation:e.currentTarget.value}}))),K(e,n)};J(h,e=>{H(t).editing===`form`&&e(g)}),P(2),N(o),N(i);var _=B(i,2),v=R(_);n(R(v),()=>`chevron`),P(),N(v);var y=B(v,2),b=R(y),x=R(b);Z(x),P(),N(b);var S=B(b,2),C=R(S);Z(C),P(),N(S);var w=B(S,2),T=R(w);Z(T),P(),N(w);var E=B(w,2),D=R(E);Z(D),P(),N(E);var O=B(E,2),ee=R(O);Z(ee),P(),N(O);var te=B(O,2),ne=R(te);Z(ne),P(),N(te);var re=B(te,2),ie=B(R(re)),ae=R(ie);ae.value=ae.__value=`compact`;var oe=B(ae);oe.value=oe.__value=`normal`;var se=B(oe);se.value=se.__value=`comfortable`,N(ie);var ce;Gi(ie),N(re),N(y),N(_);var le=B(_,2),ue=R(le);n(R(ue),()=>`chevron`),P(),N(ue);var de=B(ue,2),M=B(R(de),2),fe=R(M);fe.value=fe.__value=``,Y(B(fe),17,()=>H(s).screens.filter(e=>e.id!==H(k).id),e=>e.id,(e,t)=>{var n=Rj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(M);var pe;Gi(M);var me=B(M,2),he=e=>{var n=Vj(),r=z(n),i=B(R(r));Y(i,21,()=>H(A)?.fields??[],e=>e.field,(e,t)=>{var n=zj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(i);var a;Gi(i),N(r);var o=B(r,2),s=B(R(o));Y(s,21,()=>Hr(H(t).rowLink.screen),e=>e.field,(e,t)=>{var n=Bj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(s);var c;Gi(s),N(o),V(()=>{a!==(a=H(t).rowLink.sourceField??H(A)?.idField??``)&&(i.value=(i.__value=H(t).rowLink.sourceField??H(A)?.idField??``)??``,Wi(i,H(t).rowLink.sourceField??H(A)?.idField??``)),c!==(c=H(t).rowLink.targetField)&&(s.value=(s.__value=H(t).rowLink.targetField)??``,Wi(s,H(t).rowLink.targetField))}),U(`change`,i,e=>Ur({rowLink:{...H(t).rowLink,sourceField:e.currentTarget.value}})),U(`change`,s,e=>Ur({rowLink:{...H(t).rowLink,targetField:e.currentTarget.value}})),K(e,n)};J(me,e=>{H(t).rowLink&&e(he)});var ge=B(me,4);Y(ge,17,()=>H(t).rowActions??[],di,(e,t,n)=>{var r=Gj(),i=R(r),a=R(i);Y(a,20,()=>Vr,e=>e,(e,t)=>{var n=Hj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(a);var o;Gi(a);var c=B(a,2);N(i);var l=B(i,2);Z(l);var u=B(l,2),d=e=>{var r=Wj(),i=R(r);i.value=i.__value=``,Y(B(i),17,()=>H(s).screens.filter(e=>e.id!==H(k).id),e=>e.id,(e,t)=>{var n=Uj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(r);var a;Gi(r),V(()=>{a!==(a=H(t).screen??``)&&(r.value=(r.__value=H(t).screen??``)??``,Wi(r,H(t).screen??``))}),U(`change`,r,e=>Gr(n,{screen:e.currentTarget.value,targetField:Hr(e.currentTarget.value)[0]?.field,sourceField:H(A)?.idField})),K(e,r)};J(u,e=>{H(t).kind===`navigate`&&e(d)}),N(r),V(()=>{o!==(o=H(t).kind)&&(a.value=(a.__value=H(t).kind)??``,Wi(a,H(t).kind)),ra(l,H(t).label??``),Q(l,`placeholder`,H(t).kind)}),U(`change`,a,e=>Gr(n,{kind:e.currentTarget.value,...e.currentTarget.value===`navigate`?{}:{screen:void 0}})),U(`click`,c,()=>Kr(n)),U(`change`,l,e=>Gr(n,{label:e.currentTarget.value||void 0})),K(e,r)});var _e=B(ge,2);Y(_e,20,()=>Vr,e=>e,(e,t)=>{var r=Kj(),i=R(r);n(i,()=>`plus`);var a=B(i);N(r),V(()=>q(a,` ${t??``}`)),U(`click`,r,()=>Wr(t)),K(e,r)}),N(_e),P(2),N(de),N(le);var ve=B(le,2),ye=R(ve);n(R(ye),()=>`chevron`),P(),N(ye);var be=B(ye,2),xe=R(be);Y(xe,17,()=>H(t).formatRules??[],di,(e,t,n)=>{var r=Xj(),i=R(r),a=R(i);Y(a,21,()=>H(A)?.fields??[],e=>e.field,(e,t)=>{var n=qj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(a);var o;Gi(a);var s=B(a,2);Y(s,21,()=>qr,e=>e.value,(e,t)=>{var n=Jj(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(s);var c;Gi(s);var l=B(s,2),u=e=>{var r=Yj();Z(r),V(()=>ra(r,H(t).value??``)),U(`change`,r,e=>Zr(n,{value:e.currentTarget.value})),K(e,r)},d=F(()=>Yr(H(t).op));J(l,e=>{H(d)&&e(u)});var f=B(l,2);N(i);var p=B(i,2),m=R(p),h=R(m);Z(h),P(),N(m);var g=B(m,2),_=R(g);Z(_),P(),N(g);var v=B(g,2);let y;var b=B(v,2);let x;var S=B(b,2),C=R(S);Z(C),P(),N(S),N(p),N(r),V(()=>{o!==(o=H(t).field)&&(a.value=(a.__value=H(t).field)??``,Wi(a,H(t).field)),c!==(c=H(t).op)&&(s.value=(s.__value=H(t).op)??``,Wi(s,H(t).op)),ra(h,H(t).color??`#dc2626`),ra(_,H(t).background??`#fee2e2`),y=X(v,1,`sv-studio__mini svelte-psjrav`,null,y,{"is-active":!H(t).color}),x=X(b,1,`sv-studio__mini svelte-psjrav`,null,x,{"is-active":!H(t).background}),ia(C,H(t).bold??!1)}),U(`change`,a,e=>Zr(n,{field:e.currentTarget.value})),U(`change`,s,e=>Zr(n,{op:e.currentTarget.value})),U(`click`,f,()=>Qr(n)),U(`change`,h,e=>Zr(n,{color:e.currentTarget.value})),U(`change`,_,e=>Zr(n,{background:e.currentTarget.value})),U(`click`,v,()=>Zr(n,{color:void 0})),U(`click`,b,()=>Zr(n,{background:void 0})),U(`change`,C,e=>Zr(n,{bold:e.currentTarget.checked})),K(e,r)});var Se=B(xe,2);n(R(Se),()=>`plus`),P(),N(Se),P(2),N(be),N(ve);var Ce=B(ve,2),we=R(Ce);n(R(we),()=>`chevron`),P(),N(we);var Te=B(we,2),Ee=R(Te),De=R(Ee);Z(De),P(),N(Ee);var Oe=B(Ee,2),ke=e=>{var n=Zj(),r=z(n),i=B(R(r));Z(i),N(r);var a=B(r,2),o=B(R(a)),c=R(o);c.value=c.__value=`bottom`;var l=B(c);l.value=l.__value=`top`;var u=B(l);u.value=u.__value=`both`,N(o);var d;Gi(o),N(a);var f=B(a,2),m=B(R(f));Z(m),N(f),V(e=>{ra(i,H(t).pageSize),d!==(d=H(t).paginationPosition??`bottom`)&&(o.value=(o.__value=H(t).paginationPosition??`bottom`)??``,Wi(o,H(t).paginationPosition??`bottom`)),ra(m,e)},[()=>(H(t).pageSizeOptions??[10,25,50,100]).join(`, `)]),U(`change`,i,e=>p(PT(H(s),H(k).id,H(j).id,{config:{pageSize:Number(e.currentTarget.value)}}))),U(`change`,o,e=>p(PT(H(s),H(k).id,H(j).id,{config:{paginationPosition:e.currentTarget.value}}))),U(`change`,m,e=>{let t=e.currentTarget.value.split(`,`).map(e=>Number(e.trim())).filter(e=>Number.isFinite(e)&&e>0);p(PT(H(s),H(k).id,H(j).id,{config:{pageSizeOptions:t.length?t:[10,25,50,100]}}))}),K(e,n)},Ae=e=>{K(e,Qj())};J(Oe,e=>{H(t).paginated===!1?e(Ae,-1):e(ke)}),N(Te),N(Ce);var je=B(Ce,2),Me=R(je);n(R(Me),()=>`chevron`),P(),N(Me);var Ne=B(Me,2),Pe=R(Ne);Y(Pe,21,()=>H(t).columns,di,(e,r,i)=>{var a=eM();let o;var s=R(a),c=R(s),l=R(c);n(l,()=>`chevron`);var u=B(l,2);Z(u);var d=B(u,2),f=R(d,!0),p=B(f),m=e=>{var t=$j(),n=R(t,!0);N(t),V(()=>q(n,H(r).pin===`left`?`⇤`:`⇥`)),K(e,t)};J(p,e=>{H(r).pin&&e(m)}),N(d);var h=B(d,2),g=R(h);g.disabled=i===0;var _=B(g,2);N(h),N(c);var v=B(c,2),y=R(v),b=B(R(y));Z(b),N(y);var x=B(y,2),S=R(x),C=B(R(S));Z(C),N(S);var w=B(S,2),T=B(R(w)),E=R(T);E.value=E.__value=``;var D=B(E);D.value=D.__value=`left`;var O=B(D);O.value=O.__value=`center`;var ee=B(O);ee.value=ee.__value=`right`,N(T);var te;Gi(T),N(w);var ne=B(w,2),re=B(R(ne)),ie=R(re);ie.value=ie.__value=``;var ae=B(ie);ae.value=ae.__value=`left`;var oe=B(ae);oe.value=oe.__value=`right`,N(re);var se;Gi(re),N(ne),N(x),N(v),N(s),N(a),V(()=>{o=X(a,1,`sv-studio__col-item svelte-psjrav`,null,o,{"is-hidden":!H(r).show}),ia(u,H(r).show),Q(u,`aria-label`,`Show ${H(r).field}`),q(f,H(r).header||H(r).field),_.disabled=i===H(t).columns.length-1,ra(b,H(r).header??``),Q(b,`placeholder`,H(r).field),ra(C,H(r).width??``),te!==(te=H(r).align??``)&&(T.value=(T.__value=H(r).align??``)??``,Wi(T,H(r).align??``)),se!==(se=H(r).pin??``)&&(re.value=(re.__value=H(r).pin??``)??``,Wi(re,H(r).pin??``))}),U(`click`,u,e=>e.stopPropagation()),U(`change`,u,e=>ja(H(t),H(r).field,e.currentTarget.checked)),U(`click`,g,e=>{e.preventDefault(),Na(H(t),i,-1)}),U(`click`,_,e=>{e.preventDefault(),Na(H(t),i,1)}),U(`change`,b,e=>Ma(H(t),H(r).field,{header:e.currentTarget.value||void 0})),U(`change`,C,e=>Ma(H(t),H(r).field,{width:e.currentTarget.value?Number(e.currentTarget.value):void 0})),U(`change`,T,e=>Ma(H(t),H(r).field,{align:e.currentTarget.value||void 0})),U(`change`,re,e=>Ma(H(t),H(r).field,{pin:e.currentTarget.value||void 0})),K(e,a)}),N(Pe),N(Ne),N(je),V(()=>{m!==(m=H(t).editing)&&(l.value=(l.__value=H(t).editing)??``,Wi(l,H(t).editing)),ia(x,H(t).sortable),ia(C,H(t).filterable),ia(T,H(t).selectable),ia(D,H(t).cellSelection),ia(ee,H(t).striped),ia(ne,H(t).rowSummaries),ce!==(ce=H(t).density)&&(ie.value=(ie.__value=H(t).density)??``,Wi(ie,H(t).density)),pe!==(pe=H(t).rowLink?.screen??``)&&(M.value=(M.__value=H(t).rowLink?.screen??``)??``,Wi(M,H(t).rowLink?.screen??``)),ia(De,H(t).paginated!==!1)}),U(`change`,l,e=>p(PT(H(s),H(k).id,H(j).id,{config:{editing:e.currentTarget.value}}))),U(`change`,x,e=>p(PT(H(s),H(k).id,H(j).id,{config:{sortable:e.currentTarget.checked}}))),U(`change`,C,e=>p(PT(H(s),H(k).id,H(j).id,{config:{filterable:e.currentTarget.checked}}))),U(`change`,T,e=>p(PT(H(s),H(k).id,H(j).id,{config:{selectable:e.currentTarget.checked}}))),U(`change`,D,e=>p(PT(H(s),H(k).id,H(j).id,{config:{cellSelection:e.currentTarget.checked}}))),U(`change`,ee,e=>p(PT(H(s),H(k).id,H(j).id,{config:{striped:e.currentTarget.checked}}))),U(`change`,ne,e=>p(PT(H(s),H(k).id,H(j).id,{config:{rowSummaries:e.currentTarget.checked}}))),U(`change`,ie,e=>p(PT(H(s),H(k).id,H(j).id,{config:{density:e.currentTarget.value}}))),U(`change`,M,e=>Ur(e.currentTarget.value?{rowLink:{screen:e.currentTarget.value,sourceField:H(A)?.idField,targetField:Hr(e.currentTarget.value)[0]?.field??`id`}}:{rowLink:void 0})),U(`click`,Se,Xr),U(`change`,De,e=>p(PT(H(s),H(k).id,H(j).id,{config:{paginated:e.currentTarget.checked}}))),K(e,r)},b=e=>{let t=F(()=>H(j).config);var r=nM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o)),l=R(c);l.value=l.__value=`modal`;var u=B(l);u.value=u.__value=`drawer`;var d=B(u);d.value=d.__value=`inline`,N(c);var f;Gi(c),N(o),N(a),N(r),V(()=>{f!==(f=H(t).presentation)&&(c.value=(c.__value=H(t).presentation)??``,Wi(c,H(t).presentation))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{presentation:e.currentTarget.value}}))),K(e,r)},x=e=>{let t=F(()=>H(j).config);var r=cM(),i=z(r),a=R(i);n(R(a),()=>`chevron`),P(),N(a);var o=B(a,2),c=R(o),l=B(R(c));Y(l,21,()=>H(A)?.fields??[],e=>e.field,(e,t)=>{var n=rM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(l);var u;Gi(l),N(c);var d=B(c,2),f=B(R(d)),m=R(f);m.value=m.__value=``,Y(B(m),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`number`),e=>e.field,(e,t)=>{var n=iM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var h;Gi(f),N(d);var g=B(d,2),_=B(R(g));Y(_,20,()=>he,e=>e,(e,t)=>{var n=aM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(_);var v;Gi(_),N(g),N(o),N(i);var y=B(i,2),b=R(y);n(R(b),()=>`chevron`),P(),N(b);var x=B(b,2),S=R(x),C=B(R(S));Y(C,20,()=>ge,e=>e,(e,t)=>{var n=oM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(C);var w;Gi(C),N(S);var T=B(S,2),E=B(R(T)),D=R(E);D.value=D.__value=``,Y(B(D),17,()=>H(s).screens.filter(e=>e.id!==H(k).id),e=>e.id,(e,t)=>{var n=sM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(E);var O;Gi(E),N(T),N(x),N(y),V(()=>{u!==(u=H(t).dimension)&&(l.value=(l.__value=H(t).dimension)??``,Wi(l,H(t).dimension)),h!==(h=H(t).measure??``)&&(f.value=(f.__value=H(t).measure??``)??``,Wi(f,H(t).measure??``)),v!==(v=H(t).reduce)&&(_.value=(_.__value=H(t).reduce)??``,Wi(_,H(t).reduce)),w!==(w=H(t).type)&&(C.value=(C.__value=H(t).type)??``,Wi(C,H(t).type)),O!==(O=H(t).drillScreen??``)&&(E.value=(E.__value=H(t).drillScreen??``)??``,Wi(E,H(t).drillScreen??``))}),U(`change`,l,e=>p(PT(H(s),H(k).id,H(j).id,{config:{dimension:e.currentTarget.value}}))),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{measure:e.currentTarget.value||void 0}}))),U(`change`,_,e=>p(PT(H(s),H(k).id,H(j).id,{config:{reduce:e.currentTarget.value}}))),U(`change`,C,e=>p(PT(H(s),H(k).id,H(j).id,{config:{type:e.currentTarget.value}}))),U(`change`,E,e=>p(PT(H(s),H(k).id,H(j).id,{config:{drillScreen:e.currentTarget.value||void 0}}))),K(e,r)},S=e=>{let t=F(()=>H(j).config);var r=fM(),i=z(r),a=R(i);n(R(a),()=>`chevron`),P(),N(a);var o=B(a,2),c=R(o),l=B(R(c));Z(l),N(c);var u=B(c,2),d=B(R(u)),f=R(d);f.value=f.__value=``,Y(B(f),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`number`),e=>e.field,(e,t)=>{var n=lM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(d);var m;Gi(d),N(u);var h=B(u,2),g=B(R(h));Y(g,20,()=>he,e=>e,(e,t)=>{var n=uM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(g);var _;Gi(g),N(h),N(o),N(i);var v=B(i,2),y=R(v);n(R(y),()=>`chevron`),P(),N(y);var b=B(y,2),x=R(b),S=B(R(x)),C=R(S);C.value=C.__value=`auto`;var w=B(C);w.value=w.__value=`number`;var T=B(w);T.value=T.__value=`currency`;var E=B(T);E.value=E.__value=`percent`;var D=B(E);D.value=D.__value=`compact`,N(S);var O;Gi(S),N(x);var ee=B(x,2),te=B(R(ee)),ne=R(te);ne.value=ne.__value=``,Y(B(ne),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=dM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(te);var re;Gi(te),N(ee);var ie=B(ee,2),ae=B(R(ie));Z(ae),N(ie),P(2),N(b),N(v),V(()=>{ra(l,H(t).label),m!==(m=H(t).measure??``)&&(d.value=(d.__value=H(t).measure??``)??``,Wi(d,H(t).measure??``)),_!==(_=H(t).reduce)&&(g.value=(g.__value=H(t).reduce)??``,Wi(g,H(t).reduce)),O!==(O=H(t).format??`auto`)&&(S.value=(S.__value=H(t).format??`auto`)??``,Wi(S,H(t).format??`auto`)),re!==(re=H(t).trendField??``)&&(te.value=(te.__value=H(t).trendField??``)??``,Wi(te,H(t).trendField??``)),ra(ae,H(t).target??``)}),U(`change`,l,e=>p(PT(H(s),H(k).id,H(j).id,{config:{label:e.currentTarget.value}}))),U(`change`,d,e=>p(PT(H(s),H(k).id,H(j).id,{config:{measure:e.currentTarget.value||void 0}}))),U(`change`,g,e=>p(PT(H(s),H(k).id,H(j).id,{config:{reduce:e.currentTarget.value}}))),U(`change`,S,e=>p(PT(H(s),H(k).id,H(j).id,{config:{format:e.currentTarget.value}}))),U(`change`,te,e=>p(PT(H(s),H(k).id,H(j).id,{config:{trendField:e.currentTarget.value||void 0}}))),U(`change`,ae,e=>p(PT(H(s),H(k).id,H(j).id,{config:{target:e.currentTarget.value===``?void 0:Number(e.currentTarget.value)}}))),K(e,r)},C=e=>{let t=F(()=>H(j).config);var r=hM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o));Z(c),N(o);var l=B(o,2),u=B(R(l)),d=R(u);d.value=d.__value=``,Y(B(d),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`number`),e=>e.field,(e,t)=>{var n=pM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(u);var f;Gi(u),N(l);var m=B(l,2),h=B(R(m));Y(h,20,()=>he,e=>e,(e,t)=>{var n=mM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(h);var g;Gi(h),N(m);var _=B(m,2),v=R(_),y=B(R(v));Z(y),N(v);var b=B(v,2),x=B(R(b));Z(x),N(b),N(_);var S=B(_,2),C=B(R(S));Z(C),N(S),N(a),N(r),V(()=>{ra(c,H(t).label),f!==(f=H(t).measure??``)&&(u.value=(u.__value=H(t).measure??``)??``,Wi(u,H(t).measure??``)),g!==(g=H(t).reduce)&&(h.value=(h.__value=H(t).reduce)??``,Wi(h,H(t).reduce)),ra(y,H(t).min),ra(x,H(t).max),ra(C,H(t).unit??``)}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{label:e.currentTarget.value}}))),U(`change`,u,e=>p(PT(H(s),H(k).id,H(j).id,{config:{measure:e.currentTarget.value||void 0}}))),U(`change`,h,e=>p(PT(H(s),H(k).id,H(j).id,{config:{reduce:e.currentTarget.value}}))),U(`change`,y,e=>p(PT(H(s),H(k).id,H(j).id,{config:{min:Number(e.currentTarget.value)}}))),U(`change`,x,e=>p(PT(H(s),H(k).id,H(j).id,{config:{max:Number(e.currentTarget.value)}}))),U(`change`,C,e=>p(PT(H(s),H(k).id,H(j).id,{config:{unit:e.currentTarget.value||void 0}}))),K(e,r)},w=e=>{let t=F(()=>H(j).config);var r=vM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o)),l=R(c);l.value=l.__value=``,Y(B(l),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=gM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(c);var u;Gi(c),N(o);var d=B(o,2),f=B(R(d)),m=R(f);m.value=m.__value=``,Y(B(m),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=_M(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var h;Gi(f),N(d),P(2),N(a),N(r),V(()=>{u!==(u=H(t).labelField)&&(c.value=(c.__value=H(t).labelField)??``,Wi(c,H(t).labelField)),h!==(h=H(t).parentField)&&(f.value=(f.__value=H(t).parentField)??``,Wi(f,H(t).parentField))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{labelField:e.currentTarget.value}}))),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{parentField:e.currentTarget.value}}))),K(e,r)},T=e=>{let t=F(()=>H(j).config);var r=TM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o)),l=R(c);l.value=l.__value=``,Y(B(l),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`enum`),e=>e.field,(e,t)=>{var n=yM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(c);var u;Gi(c),N(o);var d=B(o,2),f=B(R(d));Y(f,21,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=bM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var m;Gi(f),N(d);var h=B(d,2),g=B(R(h)),_=R(g);_.value=_.__value=``,Y(B(_),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=xM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(g);var v;Gi(g),N(h);var y=B(h,2),b=B(R(y)),x=R(b);x.value=x.__value=``,Y(B(x),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=SM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(b);var S;Gi(b),N(y);var C=B(y,2),w=e=>{var t=wM(),n=B(R(t)),r=R(n);r.value=r.__value=``,Y(B(r),17,()=>H(Ce),e=>e.id,(e,t)=>{var n=CM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(n);var i;Gi(n),N(t),V(()=>{i!==(i=H(j).config.openScreen??``)&&(n.value=(n.__value=H(j).config.openScreen??``)??``,Wi(n,H(j).config.openScreen??``))}),U(`change`,n,e=>p(PT(H(s),H(k).id,H(j).id,{config:{openScreen:e.currentTarget.value||void 0}}))),K(e,t)};J(C,e=>{H(Ce).length&&e(w)}),P(2),N(a),N(r),V(()=>{u!==(u=H(t).groupBy)&&(c.value=(c.__value=H(t).groupBy)??``,Wi(c,H(t).groupBy)),m!==(m=H(t).titleField)&&(f.value=(f.__value=H(t).titleField)??``,Wi(f,H(t).titleField)),v!==(v=H(t).badgeField??``)&&(g.value=(g.__value=H(t).badgeField??``)??``,Wi(g,H(t).badgeField??``)),S!==(S=H(t).subtitleField??``)&&(b.value=(b.__value=H(t).subtitleField??``)??``,Wi(b,H(t).subtitleField??``))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{groupBy:e.currentTarget.value}}))),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{titleField:e.currentTarget.value}}))),U(`change`,g,e=>p(PT(H(s),H(k).id,H(j).id,{config:{badgeField:e.currentTarget.value||void 0}}))),U(`change`,b,e=>p(PT(H(s),H(k).id,H(j).id,{config:{subtitleField:e.currentTarget.value||void 0}}))),K(e,r)},E=e=>{let t=F(()=>H(j).config);var r=jM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o)),l=R(c);l.value=l.__value=``,Y(B(l),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`date`||e.type===`datetime`||e.type===`dateString`),e=>e.field,(e,t)=>{var n=EM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(c);var u;Gi(c),N(o);var d=B(o,2),f=B(R(d));Y(f,21,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=DM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var m;Gi(f),N(d);var h=B(d,2),g=B(R(h)),_=R(g);_.value=_.__value=``,Y(B(_),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`enum`),e=>e.field,(e,t)=>{var n=OM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(g);var v;Gi(g),N(h);var y=B(h,2),b=e=>{var t=AM(),n=B(R(t)),r=R(n);r.value=r.__value=``,Y(B(r),17,()=>H(Ce),e=>e.id,(e,t)=>{var n=kM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(n);var i;Gi(n),N(t),V(()=>{i!==(i=H(j).config.openScreen??``)&&(n.value=(n.__value=H(j).config.openScreen??``)??``,Wi(n,H(j).config.openScreen??``))}),U(`change`,n,e=>p(PT(H(s),H(k).id,H(j).id,{config:{openScreen:e.currentTarget.value||void 0}}))),K(e,t)};J(y,e=>{H(Ce).length&&e(b)}),P(2),N(a),N(r),V(()=>{u!==(u=H(t).dateField)&&(c.value=(c.__value=H(t).dateField)??``,Wi(c,H(t).dateField)),m!==(m=H(t).titleField)&&(f.value=(f.__value=H(t).titleField)??``,Wi(f,H(t).titleField)),v!==(v=H(t).colorField??``)&&(g.value=(g.__value=H(t).colorField??``)??``,Wi(g,H(t).colorField??``))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{dateField:e.currentTarget.value}}))),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{titleField:e.currentTarget.value}}))),U(`change`,g,e=>p(PT(H(s),H(k).id,H(j).id,{config:{colorField:e.currentTarget.value||void 0}}))),K(e,r)},D=e=>{let t=F(()=>H(j).config),r=F(()=>H(t).metricFields??[]),i=F(()=>H(t).related??[]),a=F(()=>H(t).sections??[]),o=F(()=>H(A)?we(H(A)):[]);var c=BM(),l=R(c);n(R(l),()=>`chevron`),P(),N(l);var u=B(l,2),d=R(u),f=B(R(d));Y(f,21,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=MM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var m;Gi(f),N(d);var h=B(d,2),g=B(R(h)),_=R(g);_.value=_.__value=``,Y(B(_),17,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,t)=>{var n=NM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(g);var v;Gi(g),N(h);var y=B(h,2),b=B(R(y)),x=R(b);x.value=x.__value=``,Y(B(x),17,()=>(H(A)?.fields??[]).filter(e=>e.type===`enum`),e=>e.field,(e,t)=>{var n=PM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(b);var S;Gi(b),N(y);var C=B(y,2),w=B(R(C));Y(w,21,()=>(H(A)?.fields??[]).filter(e=>e.type===`number`&&!e.primaryKey),e=>e.field,(e,t)=>{var n=FM(),i=R(n);Z(i);var a=B(i,1,!0);N(n),V(e=>{ia(i,e),q(a,H(t).label??H(t).field)},[()=>H(r).includes(H(t).field)]),U(`change`,i,e=>{let n=e.currentTarget.checked?[...H(r),H(t).field]:H(r).filter(e=>e!==H(t).field);p(PT(H(s),H(k).id,H(j).id,{config:{metricFields:n}}))}),K(e,n)}),N(w),N(C);var T=B(C,2),E=e=>{var t=LM(),n=B(R(t));Y(n,21,()=>H(o),e=>e.child.name,(e,t)=>{var n=IM(),r=R(n);Z(r);var a=B(r,1,!0);N(n),V(e=>{ia(r,e),q(a,H(t).child.label??H(t).child.name)},[()=>H(i).some(e=>e.entity===H(t).child.name)]),U(`change`,r,e=>{let n=e.currentTarget.checked?[...H(i),Te(H(t).child,H(t).fk)]:H(i).filter(e=>e.entity!==H(t).child.name);p(PT(H(s),H(k).id,H(j).id,{config:{related:n}}))}),K(e,n)}),N(n),N(t),K(e,t)};J(T,e=>{H(o).length&&e(E)});var D=B(T,2),O=B(R(D));Y(O,17,()=>H(a),di,(e,t,n)=>{var r=zM(),i=R(r),o=R(i);Z(o);var c=B(o);N(i);var l=B(i,2);Y(l,21,()=>(H(A)?.fields??[]).filter(e=>!e.primaryKey),e=>e.field,(e,r)=>{var i=RM(),o=R(i);Z(o);var c=B(o,1,!0);N(i),V(e=>{ia(o,e),q(c,H(r).label??H(r).field)},[()=>H(t).fields.includes(H(r).field)]),U(`change`,o,e=>{let i=e.currentTarget.checked?[...H(t).fields,H(r).field]:H(t).fields.filter(e=>e!==H(r).field),o=H(a).map((e,t)=>t===n?{...e,fields:i}:e);p(PT(H(s),H(k).id,H(j).id,{config:{sections:o}}))}),K(e,i)}),N(l),N(r),V(()=>ra(o,H(t).label)),U(`click`,o,e=>e.stopPropagation()),U(`change`,o,e=>{let t=H(a).map((t,r)=>r===n?{...t,label:e.currentTarget.value}:t);p(PT(H(s),H(k).id,H(j).id,{config:{sections:t}}))}),U(`click`,c,e=>{e.preventDefault(),p(PT(H(s),H(k).id,H(j).id,{config:{sections:H(a).filter((e,t)=>t!==n)}}))}),K(e,r)});var ee=B(O,2);n(R(ee),()=>`plus`),P(),N(ee),N(D),P(2),N(u),N(c),V(()=>{m!==(m=H(t).titleField)&&(f.value=(f.__value=H(t).titleField)??``,Wi(f,H(t).titleField)),v!==(v=H(t).subtitleField??``)&&(g.value=(g.__value=H(t).subtitleField??``)??``,Wi(g,H(t).subtitleField??``)),S!==(S=H(t).statusField??``)&&(b.value=(b.__value=H(t).statusField??``)??``,Wi(b,H(t).statusField??``))}),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{titleField:e.currentTarget.value}}))),U(`change`,g,e=>p(PT(H(s),H(k).id,H(j).id,{config:{subtitleField:e.currentTarget.value||void 0}}))),U(`change`,b,e=>p(PT(H(s),H(k).id,H(j).id,{config:{statusField:e.currentTarget.value||void 0}}))),U(`click`,ee,()=>p(PT(H(s),H(k).id,H(j).id,{config:{sections:[...H(a),{label:`Section `+(H(a).length+1),fields:[]}]}}))),K(e,c)},O=e=>{let t=F(()=>H(j).config);var r=GM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a);Y(o,17,()=>H(t).tabs,di,(e,r,i)=>{var a=WM(),o=R(a),c=R(o);Z(c);var l=B(c,2);N(o);var u=B(o,2);Y(u,21,()=>H(r).blocks,e=>e.id,(e,r)=>{var a=VM(),o=R(a);n(o,()=>H(r).config.kind);var c=B(o,1,!0),l=B(c);N(a),V(e=>q(c,e),[()=>pr(H(r).config.kind)]),U(`click`,l,()=>p(PT(H(s),H(k).id,H(j).id,{config:wT(H(t),i,H(r).id)}))),K(e,a)},e=>{K(e,HM())}),N(u);var d=B(u,2),f=R(d);f.value=f.__value=``,Y(B(f),16,()=>iT,e=>e,(e,t)=>{var n=UM(),r=R(n,!0);N(n);var i={};V(e=>{q(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>pr(t)]),K(e,n)}),N(d),N(a),V(()=>{ra(c,H(r).label),l.disabled=H(t).tabs.length<=1}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:ST(H(t),i,e.currentTarget.value)}))),U(`click`,l,()=>p(PT(H(s),H(k).id,H(j).id,{config:xT(H(t),i)}))),U(`change`,d,e=>{let n=e.currentTarget.value;e.currentTarget.value=``,n&&H(A)&&p(PT(H(s),H(k).id,H(j).id,{config:CT(H(t),i,n,H(A))}))}),K(e,a)});var c=B(o,2);n(R(c),()=>`plus`),P(),N(c),P(2),N(a),N(r),U(`click`,c,()=>p(PT(H(s),H(k).id,H(j).id,{config:bT(H(t))}))),K(e,r)},ee=e=>{let t=F(()=>H(j).config);var r=ZM(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o)),l=R(c);l.value=l.__value=``,Y(B(l),17,()=>H(s).entities.filter(e=>e.name!==H(A)?.name),e=>e.name,(e,t)=>{var n=KM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).name),i!==(i=H(t).name)&&(n.value=(n.__value=H(t).name)??``)}),K(e,n)}),N(c);var u;Gi(c),N(o);var d=B(o,2),f=B(R(d)),m=R(f);m.value=m.__value=``,Y(B(m),17,()=>uT(H(s),H(t).childEntity)?.fields??[],e=>e.field,(e,t)=>{var n=qM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(f);var h;Gi(f),N(d);var g=B(d,2),_=e=>{var n=YM(),r=z(n),i=B(R(r)),a=R(i);a.value=a.__value=``,Y(B(a),17,()=>H(Ce),e=>e.id,(e,t)=>{var n=JM(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).title),i!==(i=H(t).id)&&(n.value=(n.__value=H(t).id)??``)}),K(e,n)}),N(i);var o;Gi(i),N(r),P(2),V(()=>{o!==(o=H(t).linkScreen??``)&&(i.value=(i.__value=H(t).linkScreen??``)??``,Wi(i,H(t).linkScreen??``))}),U(`change`,i,e=>p(PT(H(s),H(k).id,H(j).id,{config:{linkScreen:e.currentTarget.value||void 0}}))),K(e,n)};J(g,e=>{H(Ce).length&&e(_)});var v=B(g,2),y=e=>{var t=XM(),n=R(t);N(t),V(()=>q(n,`Pick a child entity and the field on it that links back to ${H(A)?.label??H(A)?.name??``}.`)),K(e,t)};J(v,e=>{(!H(t).childEntity||!H(t).foreignKey)&&e(y)}),N(a),N(r),V(()=>{u!==(u=H(t).childEntity)&&(c.value=(c.__value=H(t).childEntity)??``,Wi(c,H(t).childEntity)),f.disabled=!H(t).childEntity,h!==(h=H(t).foreignKey)&&(f.value=(f.__value=H(t).foreignKey)??``,Wi(f,H(t).foreignKey))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{childEntity:e.currentTarget.value,foreignKey:``}}))),U(`change`,f,e=>p(PT(H(s),H(k).id,H(j).id,{config:{foreignKey:e.currentTarget.value}}))),K(e,r)},te=e=>{let t=F(()=>H(j).config);var r=nN(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=B(R(a),2);Y(o,21,()=>xr(H(A)),e=>e.field,(e,n)=>{var r=QM(),i=R(r);Z(i);var a=B(i);N(r),V(e=>{ia(i,e),q(a,` ${H(n).label??H(n).field??``}`)},[()=>H(t).rows.includes(H(n).field)]),U(`change`,i,()=>p(PT(H(s),H(k).id,H(j).id,{config:{rows:Or(H(t).rows,H(n).field)}}))),K(e,r)}),N(o);var c=B(o,4);Y(c,21,()=>xr(H(A)),e=>e.field,(e,n)=>{var r=$M(),i=R(r);Z(i);var a=B(i);N(r),V(e=>{ia(i,e),q(a,` ${H(n).label??H(n).field??``}`)},[()=>H(t).cols.includes(H(n).field)]),U(`change`,i,()=>p(PT(H(s),H(k).id,H(j).id,{config:{cols:Or(H(t).cols,H(n).field)}}))),K(e,r)}),N(c);var l=B(c,2),u=B(R(l)),d=R(u);d.value=d.__value=``,Y(B(d),17,()=>Sr(H(A)),e=>e.field,(e,t)=>{var n=eN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(u);var f;Gi(u),N(l);var m=B(l,2),h=B(R(m));Y(h,20,()=>yr,e=>e,(e,t)=>{var n=tN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(h);var g;Gi(h),N(m),P(2),N(a),N(r),V(()=>{f!==(f=H(t).measure??``)&&(u.value=(u.__value=H(t).measure??``)??``,Wi(u,H(t).measure??``)),g!==(g=H(t).aggregate)&&(h.value=(h.__value=H(t).aggregate)??``,Wi(h,H(t).aggregate))}),U(`change`,u,e=>p(PT(H(s),H(k).id,H(j).id,{config:{measure:e.currentTarget.value||void 0}}))),U(`change`,h,e=>p(PT(H(s),H(k).id,H(j).id,{config:{aggregate:e.currentTarget.value}}))),K(e,r)},ne=e=>{let t=F(()=>H(j).config);var r=aN(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o));Z(c),N(o);var l=B(o,4),u=R(l);Y(u,17,()=>Cr(H(A)),e=>e.field,(e,n)=>{var r=rN(),i=R(r);Z(i);var a=B(i),o=B(a),c=R(o,!0);N(o),N(r),V(e=>{ia(i,e),q(a,` ${H(n).label??H(n).field??``} `),q(c,H(n).type)},[()=>H(t).fields.includes(H(n).field)]),U(`change`,i,()=>p(PT(H(s),H(k).id,H(j).id,{config:{fields:Or(H(t).fields,H(n).field)}}))),K(e,r)});var d=B(u,2),f=e=>{K(e,iN())},m=F(()=>!Cr(H(A)).length);J(d,e=>{H(m)&&e(f)}),N(l),P(2),N(a),N(r),V(()=>ra(c,H(t).title??``)),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{title:e.currentTarget.value||void 0}}))),K(e,r)},re=e=>{let t=F(()=>H(j).config);var r=lN(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=R(o);Z(c),P(),N(o);var l=B(o,2),u=e=>{var n=oN(),r=z(n),i=B(R(r)),a=R(i);a.value=a.__value=`inline`;var o=B(a);o.value=o.__value=`modal`;var c=B(o);c.value=c.__value=`drawer`,N(i);var l;Gi(i),N(r),P(2),V(()=>{l!==(l=H(t).presentation??`inline`)&&(i.value=(i.__value=H(t).presentation??`inline`)??``,Wi(i,H(t).presentation??`inline`))}),U(`change`,i,e=>p(PT(H(s),H(k).id,H(j).id,{config:{presentation:e.currentTarget.value}}))),K(e,n)};J(l,e=>{H(t).editable&&e(u)});var d=B(l,2),f=e=>{var n=cN(),r=B(z(n),2);Y(r,21,()=>br(H(A)),e=>e.field,(e,n)=>{var r=sN(),i=R(r);Z(i);var a=B(i);N(r),V(e=>{ia(i,e),q(a,` ${H(n).label??H(n).field??``}`)},[()=>!H(t).fields?.length||H(t).fields.includes(H(n).field)]),U(`change`,i,()=>p(PT(H(s),H(k).id,H(j).id,{config:{fields:Or(H(t).fields??br(H(A)).map(e=>e.field),H(n).field)}}))),K(e,r)}),N(r),K(e,n)};J(d,e=>{H(t).editable||e(f)}),P(2),N(a),N(r),V(()=>ia(c,H(t).editable)),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{editable:e.currentTarget.checked}}))),K(e,r)},ie=e=>{let t=F(()=>H(j).config);var r=dN(),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=B(R(o));Y(c,21,()=>H(A)?.fields??[],e=>e.field,(e,t)=>{var n=uN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(c);var l;Gi(c),N(o),P(2),N(a),N(r),V(()=>{l!==(l=H(t).field)&&(c.value=(c.__value=H(t).field)??``,Wi(c,H(t).field))}),U(`change`,c,e=>p(PT(H(s),H(k).id,H(j).id,{config:{field:e.currentTarget.value}}))),K(e,r)};J(v,e=>{H(j).config.kind===`grid`?e(y):H(j).config.kind===`form`?e(b,1):H(j).config.kind===`chart`?e(x,2):H(j).config.kind===`kpi`?e(S,3):H(j).config.kind===`gauge`?e(C,4):H(j).config.kind===`tree`?e(w,5):H(j).config.kind===`board`?e(T,6):H(j).config.kind===`calendar`?e(E,7):H(j).config.kind===`detail`?e(D,8):H(j).config.kind===`tabs`?e(O,9):H(j).config.kind===`master-detail`?e(ee,10):H(j).config.kind===`pivot`?e(te,11):H(j).config.kind===`filter`?e(ne,12):H(j).config.kind===`record`?e(re,13):H(j).config.kind===`lookup`&&e(ie,14)}),V((e,t,n)=>{q(a,`${e??``} block`),q(f,`${t??``} / 12 columns`),ra(m,n)},[()=>pr(H(j).config.kind),()=>oT(H(j)),()=>oT(H(j))]),U(`change`,m,e=>oa(H(j),Number(e.currentTarget.value))),K(e,t)},_c=e=>{var t=GN(),r=z(t);n(R(r),()=>`screen`),P(),N(r);var i=B(r,2),a=R(i);n(R(a),()=>`chevron`),P(),N(a);var o=B(a,2),c=R(o),l=B(R(c));Z(l),N(c);var u=B(c,2),d=B(R(u));Z(d),N(u);var f=B(u,2),m=R(f);Z(m),P(),N(f);var h=B(f,2),g=e=>{var t=pN(),n=z(t),r=B(R(n));Z(r),N(n);var i=B(n,2),a=B(R(i));Z(a),N(i),V(()=>{ra(r,H(k).nav?.label??``),Q(r,`placeholder`,H(k).title),ra(a,H(k).nav?.order??0)}),U(`change`,r,e=>p(zT(H(s),H(k).id,{nav:{...H(k).nav,label:e.currentTarget.value||void 0}}))),U(`change`,a,e=>p(zT(H(s),H(k).id,{nav:{...H(k).nav,order:Number(e.currentTarget.value)}}))),K(e,t)};J(h,e=>{H(k).nav?.show!==!1&&e(g)}),N(o),N(i);var _=B(i,2),v=R(_);n(R(v),()=>`chevron`),P(),N(v);var y=B(v,2),b=R(y),x=R(b);Z(x),P(),N(b);var S=B(b,2),C=e=>{var t=yN(),r=z(t),i=B(R(r));Y(i,21,()=>H(kr).roles,e=>e.role,(e,t)=>{var n=mN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).role),i!==(i=H(t).role)&&(n.value=(n.__value=H(t).role)??``)}),K(e,n)}),N(i);var a;Gi(i),N(r);var o=B(r,2);Y(o,17,()=>H(kr).roles,e=>e.role,(e,t)=>{var n=vN(),r=R(n),i=R(r);Z(i);var a=B(i,2);N(r);var o=B(r,2);Y(o,20,()=>sT,e=>e,(e,n)=>{var r=hN(),i=R(r);Z(i);var a=B(i);N(r),V(e=>{ia(i,e),q(a,` ${n??``}`)},[()=>Ir(H(t),n)]),U(`change`,i,()=>Lr(H(t).role,n)),K(e,r)}),N(o);var c=B(o,2),l=R(c);Z(l),P(),N(c);var u=B(c,2),d=e=>{var n=_N();Y(n,21,()=>H(s).screens,e=>e.id,(e,n)=>{var r=gN(),i=R(r);Z(i);var a=B(i);N(r),V(e=>{ia(i,e),q(a,` ${H(n).title??``}`)},[()=>Rr(H(t),H(n).id)]),U(`change`,i,()=>zr(H(t).role,H(n).id)),K(e,r)}),N(n),K(e,n)};J(u,e=>{H(t).screens!==`*`&&e(d)}),N(n),V(()=>{ra(i,H(t).role),ia(l,H(t).screens===`*`)}),U(`change`,i,e=>Fr(H(t).role,e.currentTarget.value)),U(`click`,a,()=>Pr(H(t).role)),U(`change`,l,e=>Br(H(t).role,e.currentTarget.checked)),K(e,n)});var c=B(o,2);n(R(c),()=>`plus`),P(),N(c),P(2),V(()=>{a!==(a=H(kr).defaultRole??H(kr).roles[0]?.role??``)&&(i.value=(i.__value=H(kr).defaultRole??H(kr).roles[0]?.role??``)??``,Wi(i,H(kr).defaultRole??H(kr).roles[0]?.role??``))}),U(`change`,i,e=>Ar({...H(kr),defaultRole:e.currentTarget.value})),U(`click`,c,Nr),K(e,t)};J(S,e=>{H(kr).enabled&&e(C)}),N(y),N(_);var w=B(_,2),T=R(w);n(R(T),()=>`chevron`),P(),N(T);var E=B(T,2),D=R(E),O=R(D);Z(O),P(),N(D),P(2),N(E),N(w);var ee=B(w,2),te=R(ee);n(R(te),()=>`chevron`),P(),N(te);var ne=B(te,2),re=R(ne),ie=R(re);Z(ie),P(),N(re);var ae=B(re,2),oe=e=>{var t=xN(),n=z(t),r=B(R(n));Z(r),N(n);var i=B(n,2),a=B(R(i));Y(a,20,()=>H(ti).locales,e=>e,(e,t)=>{var n=bN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(a);var o;Gi(a),N(i),P(2),V(e=>{ra(r,e),o!==(o=H(ti).defaultLocale??H(ti).locales[0]??``)&&(a.value=(a.__value=H(ti).defaultLocale??H(ti).locales[0]??``)??``,Wi(a,H(ti).defaultLocale??H(ti).locales[0]??``))},[()=>H(ti).locales.join(`, `)]),U(`change`,r,e=>ni(e.currentTarget.value)),U(`change`,a,e=>p({...H(s),i18n:{...H(ti),defaultLocale:e.currentTarget.value}})),K(e,t)};J(ae,e=>{H(ti).enabled&&e(oe)}),N(ne),N(ee);var se=B(ee,2),le=e=>{var t=WN(),r=z(t),i=R(r);n(R(i),()=>`chevron`),P(),N(i);var a=B(i,2),o=R(a),c=R(o),l=B(c),u=R(l);u.value=u.__value=`memory`;var d=B(u);d.value=d.__value=`pglite`;var f=B(d);f.value=f.__value=`rest`;var p=B(f);p.value=p.__value=`sql`;var m=B(p);m.value=m.__value=`supabase`,N(l);var h;Gi(l),N(o);var g=B(o,2),_=e=>{K(e,SN())};J(g,e=>{H(Ua).kind===`pglite`&&e(_)});var v=B(g,2),y=e=>{let t=F(()=>H(Ua));var r=CN(),i=z(r),a=R(i),o=R(a,!0);N(a);var s=B(a,2),c=R(s,!0);N(s),N(i);var l=B(i,2);n(R(l),()=>`generate`),P(),N(l),P(2),V((e,n)=>{q(o,H(t).method),Q(s,`title`,e),q(c,n)},[()=>ro(H(t).baseUrl,H(t).path),()=>H(t).baseUrl||H(t).path?ro(H(t).baseUrl||`https://…`,H(t).path):`No endpoint set`]),U(`click`,l,()=>L(Ha,!0)),K(e,r)},b=e=>{let t=F(()=>H(Ua));var r=wN(),i=z(r),a=B(R(i),2),o=R(a);N(a),N(i);var s=B(i,2);n(R(s),()=>`generate`),P(),N(s),P(2),V(()=>q(o,`${(H(t).table||`no table`)??``} · ${H(t).dialect??`postgres`??``}`)),U(`click`,s,()=>L(Ha,!0)),K(e,r)},x=e=>{let t=F(()=>H(Ua));var r=TN(),i=z(r),a=B(R(i),2),o=R(a,!0);N(a),N(i);var s=B(i,2);n(R(s),()=>`generate`),P(),N(s),P(2),V(e=>q(o,e),[()=>H(t).table?H(t).url?`${H(t).url.replace(/^https?:\/\//,``)}/${H(t).table}`:H(t).table:`No table set`]),U(`click`,s,()=>L(Ha,!0)),K(e,r)},S=e=>{K(e,EN())};J(v,e=>{H(Ua).kind===`rest`?e(y):H(Ua).kind===`sql`?e(b,1):H(Ua).kind===`supabase`?e(x,2):e(S,-1)}),N(a),N(r);var C=B(r,2),w=R(C),T=R(w);n(T,()=>`chevron`);var E=B(T),D=R(E);N(E);var O=B(E,2);n(R(O),()=>`plus`),N(O),N(w);var ee=B(w,2),te=R(ee);Y(te,21,()=>H(A).fields,di,(e,t,n)=>{var r=IN();let i;var a=R(r),o=B(R(a),2);Z(o);var c=B(o,2);Y(c,20,()=>zC,e=>e,(e,t)=>{var n=DN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(c);var l;Gi(c);var u=B(c,2);N(a);var d=B(a,2),f=R(d),p=R(f);Z(p),P(),N(f);var m=B(f,2),h=R(m);Z(h),P(),N(m);var g=B(m,2),_=R(g);Z(_),P(),N(g),N(d);var v=B(d,2),y=e=>{var n=ON();Z(n),V(()=>ra(n,H(t).formula??``)),U(`change`,n,e=>ba(UC(H(A),H(t).field,{formula:e.currentTarget.value.trim()||void 0}))),K(e,n)};J(v,e=>{!H(t).primaryKey&&H(t).type!==`relation`&&e(y)});var b=B(v,2),x=e=>{var n=MN(),r=z(n),i=R(r);Y(i,21,()=>Fa(H(t).type),e=>e.value,(e,t)=>{var n=kN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(i);var a;Gi(i);var o=B(i,2),s=R(o);Z(s),P(),N(o),N(r);var c=B(r,2),l=e=>{var n=AN();Z(n),V(()=>ra(n,H(t).input?.mask??``)),U(`change`,n,e=>La(H(t),{mask:e.currentTarget.value.trim()||void 0})),K(e,n)};J(c,e=>{H(t).input?.editorType===`mask`&&e(l)});var u=B(c,2),d=e=>{var n=jN(),r=z(n),i=R(r);Z(i);var a=B(i,2);Z(a),N(r);var o=B(r,2),s=R(o);Z(s);var c=B(s,2);Z(c);var l=B(c,2);Z(l);var u=B(l,2);Z(u),N(o),V(()=>{ra(i,H(t).min??``),ra(a,H(t).max??``),ra(s,H(t).input?.step??``),ra(c,H(t).input?.precision??``),ra(l,H(t).input?.prefix??``),ra(u,H(t).input?.suffix??``)}),U(`change`,i,e=>ba(UC(H(A),H(t).field,{min:e.currentTarget.value===``?void 0:Number(e.currentTarget.value)}))),U(`change`,a,e=>ba(UC(H(A),H(t).field,{max:e.currentTarget.value===``?void 0:Number(e.currentTarget.value)}))),U(`change`,s,e=>La(H(t),{step:e.currentTarget.value===``?void 0:Number(e.currentTarget.value)})),U(`change`,c,e=>La(H(t),{precision:e.currentTarget.value===``?void 0:Number(e.currentTarget.value)})),U(`change`,l,e=>La(H(t),{prefix:e.currentTarget.value||void 0})),U(`change`,u,e=>La(H(t),{suffix:e.currentTarget.value||void 0})),K(e,n)};J(u,e=>{H(t).type===`number`&&e(d)}),V(()=>{a!==(a=H(t).input?.editorType??``)&&(i.value=(i.__value=H(t).input?.editorType??``)??``,Wi(i,H(t).input?.editorType??``)),ia(s,H(t).input?.span===2)}),U(`change`,i,e=>La(H(t),{editorType:e.currentTarget.value||void 0})),U(`change`,s,e=>La(H(t),{span:e.currentTarget.checked?2:void 0})),K(e,n)},S=F(()=>!H(t).primaryKey&&Ia(H(t).type));J(b,e=>{H(S)&&e(x)});var C=B(b,2),w=e=>{var n=FN(),r=R(n),i=R(r);i.value=i.__value=``,Y(B(i),17,()=>H(s).entities.filter(e=>e.name!==H(A).name),e=>e.name,(e,t)=>{var n=NN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).name),i!==(i=H(t).name)&&(n.value=(n.__value=H(t).name)??``)}),K(e,n)}),N(r);var a;Gi(r);var o=B(r,2),c=R(o);c.value=c.__value=``,Y(B(c),17,()=>Pa(H(t).relation?.entity??``),e=>e.field,(e,t)=>{var n=PN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(o);var l;Gi(o),N(n),V(()=>{a!==(a=H(t).relation?.entity??``)&&(r.value=(r.__value=H(t).relation?.entity??``)??``,Wi(r,H(t).relation?.entity??``)),o.disabled=!H(t).relation?.entity,l!==(l=H(t).relation?.labelField??``)&&(o.value=(o.__value=H(t).relation?.labelField??``)??``,Wi(o,H(t).relation?.labelField??``))}),U(`change`,r,e=>ba(UC(H(A),H(t).field,{relation:{entity:e.currentTarget.value,labelField:H(t).relation?.labelField??`name`,foreignKey:H(t).field}}))),U(`change`,o,e=>ba(UC(H(A),H(t).field,{relation:{entity:H(t).relation?.entity??``,labelField:e.currentTarget.value,foreignKey:H(t).field}}))),K(e,n)};J(C,e=>{H(t).type===`relation`&&e(w)}),N(r),V(()=>{i=X(r,1,`sv-studio__field svelte-psjrav`,null,i,{"drop-before":H(Da)===n&&H(Ea)}),ra(o,H(t).field),l!==(l=H(t).type)&&(c.value=(c.__value=H(t).type)??``,Wi(c,H(t).type)),ia(p,!!H(t).primaryKey),ia(h,!!H(t).required),ia(_,!!H(t).readonly)}),Jr(`dragstart`,r,()=>L(Ea,H(t).field,!0)),Jr(`dragover`,r,e=>Oa(e,n)),Jr(`drop`,r,ka),Jr(`dragend`,r,()=>{L(Ea,null),L(Da,null)}),U(`change`,o,e=>ce(H(t).field,e.currentTarget.value)),U(`change`,c,e=>ba(UC(H(A),H(t).field,{type:e.currentTarget.value}))),U(`click`,u,()=>ba(HC(H(A),H(t).field))),U(`change`,p,e=>ba(UC(H(A),H(t).field,{primaryKey:e.currentTarget.checked}))),U(`change`,h,e=>ba(UC(H(A),H(t).field,{required:e.currentTarget.checked}))),U(`change`,_,e=>ba(UC(H(A),H(t).field,{readonly:e.currentTarget.checked}))),K(e,r)}),N(te),N(ee),N(C);var ne=B(C,2),re=R(ne);n(R(re),()=>`chevron`),P(),N(re);var ie=B(re,2),ae=R(ie);Y(ae,17,()=>H(A).validations??[],di,(e,t,n)=>{var r=UN(),i=R(r),a=R(i);Y(a,21,()=>H(A).fields,e=>e.field,(e,t)=>{var n=LN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label??H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(a);var o;Gi(a);var s=B(a,2);Y(s,21,()=>xa,e=>e.value,(e,t)=>{var n=RN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(s);var c;Gi(s);var l=B(s,2),u=e=>{var r=ii(),i=z(r),a=e=>{var r=BN();Y(r,21,()=>H(A).fields.filter(e=>e.field!==H(t).field),e=>e.field,(e,t)=>{var n=zN(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).field),i!==(i=H(t).field)&&(n.value=(n.__value=H(t).field)??``)}),K(e,n)}),N(r);var i;Gi(r),V(()=>{i!==(i=H(t).compareTo)&&(r.value=(r.__value=H(t).compareTo)??``,Wi(r,H(t).compareTo))}),U(`change`,r,e=>wa(n,{compareTo:e.currentTarget.value})),K(e,r)},o=e=>{var r=VN();Z(r),V(()=>ra(r,H(t).value??``)),U(`change`,r,e=>wa(n,{value:e.currentTarget.value})),K(e,r)};J(i,e=>{H(t).compareTo?e(a):e(o,-1)}),K(e,r)},d=F(()=>Sa(H(t).op));J(l,e=>{H(d)&&e(u)});var f=B(l,2);N(i);var p=B(i,2),m=e=>{var r=HN(),i=R(r);Z(i),P(),N(r),V(()=>ia(i,!!H(t).compareTo)),U(`change`,i,e=>wa(n,e.currentTarget.checked?{compareTo:H(A).fields.find(e=>e.field!==H(t).field)?.field,value:void 0}:{compareTo:void 0,value:``})),K(e,r)},h=F(()=>Sa(H(t).op));J(p,e=>{H(h)&&e(m)});var g=B(p,2);Z(g),N(r),V(()=>{o!==(o=H(t).field)&&(a.value=(a.__value=H(t).field)??``,Wi(a,H(t).field)),c!==(c=H(t).op)&&(s.value=(s.__value=H(t).op)??``,Wi(s,H(t).op)),ra(g,H(t).message)}),U(`change`,a,e=>wa(n,{field:e.currentTarget.value})),U(`change`,s,e=>wa(n,{op:e.currentTarget.value})),U(`click`,f,()=>Ta(n)),U(`change`,g,e=>wa(n,{message:e.currentTarget.value})),K(e,r)});var oe=B(ae,2);n(R(oe),()=>`plus`),P(),N(oe),P(2),N(ie),N(ne),V(()=>{q(c,`Bind ${H(A).name??``} to `),h!==(h=H(Ua).kind)&&(l.value=(l.__value=H(Ua).kind)??``,Wi(l,H(Ua).kind)),q(D,`${H(A).name??``} fields`)}),U(`change`,l,e=>Ga(e.currentTarget.value)),U(`click`,O,e=>{e.preventDefault(),ba(VC(H(A)))}),Jr(`dragover`,te,e=>H(Ea)&&e.preventDefault()),Jr(`drop`,te,ka),U(`click`,oe,Ca),K(e,t)};J(se,e=>{H(A)&&e(le)}),P(2),V(()=>{ra(l,H(k).title),ra(d,H(k).route),ia(m,H(k).nav?.show!==!1),ia(x,H(kr).enabled),ia(O,H(s).audit===!0),ia(ie,H(ti).enabled)}),U(`change`,l,e=>p(zT(H(s),H(k).id,{title:e.currentTarget.value}))),U(`change`,d,e=>p(zT(H(s),H(k).id,{route:e.currentTarget.value.replace(/^\/+/,``)}))),U(`change`,m,e=>p(zT(H(s),H(k).id,{nav:{...H(k).nav,show:e.currentTarget.checked}}))),U(`change`,x,e=>jr(e.currentTarget.checked)),U(`change`,O,e=>p({...H(s),audit:e.currentTarget.checked})),U(`change`,ie,e=>W(e.currentTarget.checked)),K(e,t)};J(hc,e=>{H(j)&&H(k)?e(gc):H(k)&&e(_c,1)});var vc=B(hc,2),yc=e=>{var t=YN();Y(t,21,()=>H(de),di,(e,t)=>{var n=JN(),r=R(n),i=e=>{var n=KN(),r=R(n);P(),N(n),V(()=>{X(n,1,`sv-studio__issue sv-studio__issue--${H(t).level??``} sv-studio__issue--jump`,`svelte-psjrav`),q(r,`${H(t).message??``} `)}),U(`click`,n,()=>me(H(t))),K(e,n)},a=e=>{var n=qN(),r=R(n,!0);N(n),V(()=>{X(n,1,`sv-studio__issue sv-studio__issue--${H(t).level??``}`,`svelte-psjrav`),q(r,H(t).message)}),K(e,n)};J(r,e=>{H(t).screen||H(t).block?e(i):e(a,-1)}),N(n),K(e,n)}),N(t),K(e,t)};J(vc,e=>{H(de).length>0&&e(yc)});var bc=B(vc,2),xc=R(bc),Sc=e=>{var t=XN();n(R(t),()=>`generate`),P(),N(t),U(`click`,t,ui),K(e,t)},Cc=e=>{K(e,ZN())};J(xc,e=>{H(M)?e(Sc):e(Cc,-1)}),N(bc),N(mc),N(as);var wc=B(as,2),Tc=R(wc),Ec=e=>{K(e,QN())},Dc=e=>{var t=$N(),n=B(R(t));N(t),V(()=>q(n,`${H(fe)??``} error${H(fe)===1?``:`s`}`)),K(e,t)};J(Tc,e=>{H(M)?e(Ec):e(Dc,-1)});var Oc=B(Tc,2),kc=R(Oc);N(Oc);var Ac=B(Oc,2),jc=R(Ac);N(Ac);var Mc=B(Ac,2),Nc=R(Mc);N(Mc);var Pc=B(Mc,4),Fc=e=>{var t=eP(),r=R(t);n(r,()=>H(j).config.kind);var i=B(r);N(t),V(e=>q(i,`${e??``} selected`),[()=>pr(H(j).config.kind)]),K(e,t)};J(Pc,e=>{H(j)&&e(Fc)});var Ic=B(Pc,2),Lc=e=>{var t=tP(),n=R(t);let r;var i=B(n,2);let a;N(t),V(()=>{r=X(n,1,`sv-studio__datamode-btn svelte-psjrav`,null,r,{"is-on":H(qa)===`memory`}),Q(n,`aria-pressed`,H(qa)===`memory`),a=X(i,1,`sv-studio__datamode-btn svelte-psjrav`,null,a,{"is-on":H(qa)===`pglite`}),Q(i,`aria-pressed`,H(qa)===`pglite`)}),U(`click`,n,()=>Ja(`memory`)),U(`click`,i,()=>Ja(`pglite`)),K(e,t)},Rc=e=>{var t=nP(),n=R(t,!0);N(t),V(()=>q(n,_e[H(s).dataSource])),K(e,t)};J(Ic,e=>{H(qa)?e(Lc):e(Rc,-1)}),N(wc);var zc=B(wc,2),Bc=e=>{var r=aP(),i=R(r),a=R(i),o=R(a),s=R(o);n(s,()=>`generate`);var c=B(s,2),l=R(c);N(c),N(o);var u=B(o,4),d=e=>{var t=rP(),r=R(t);n(r,()=>`save`);var i=B(r,1,!0);N(t),V(()=>{t.disabled=H(gi)===`busy`,q(i,H(gi)===`busy`?`Saving…`:H(gi)===`done`?`Saved ✓`:`Save to folder`)}),U(`click`,t,_i),K(e,t)};J(u,e=>{t.onWriteToDisk&&e(d)});var f=B(u,2),p=R(f);n(p,()=>`save`);var m=B(p,1,!0);N(f);var h=B(f,2);n(R(h),()=>`close`),N(h),N(a);var g=B(a,2),_=R(g);Y(_,21,()=>H(qe),e=>e.path,(e,t)=>{var r=iP();let i;var a=R(r);n(a,()=>`file`);var o=B(a),s=R(o,!0);N(o),N(r),V(e=>{i=X(r,1,`sv-studio__tree-item svelte-psjrav`,null,i,{"is-active":H(t).path===H(li)?.path}),q(s,e)},[()=>fi(H(t).path)]),U(`click`,r,()=>L(si,H(t).path,!0)),K(e,r)}),N(_);var v=B(_,2),y=R(v),b=R(y),x=R(b,!0);N(b);var S=B(b,2),C=R(S);n(C,()=>`copy`);var w=B(C,1,!0);N(S),N(y);var T=B(y,2),E=R(T),D=R(E,!0);N(E),N(T),N(v),N(g),N(i),N(r),V(()=>{q(l,`· ${H(qe).length??``} files`),f.disabled=H(mi),q(m,H(mi)?`Zipping…`:`Download .zip`),q(x,H(li)?.path),q(w,H(ci)?`Copied`:`Copy`),q(D,H(li)?.contents)}),U(`click`,r,()=>L(oi,!1)),U(`keydown`,r,e=>e.key===`Escape`&&L(oi,!1)),U(`click`,i,e=>e.stopPropagation()),U(`keydown`,i,e=>e.key===`Escape`&&L(oi,!1)),U(`click`,f,hi),U(`click`,h,()=>L(oi,!1)),U(`click`,S,pi),K(e,r)};J(zc,e=>{H(oi)&&H(qe)&&e(Bc)});var Vc=B(zc,2),Hc=e=>{var t=lP(),r=R(t),i=R(r),a=R(i),o=R(a);n(o,()=>`deploy`);var c=B(o,2),l=R(c);N(c),N(a);var u=B(a,4);n(R(u),()=>`close`),N(u),N(i);var d=B(i,2),f=R(d),p=B(R(f));Y(p,21,()=>Bt,e=>e.value,(e,t)=>{var n=oP(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(p);var m;Gi(p),N(f);var h=B(f,2),g=B(R(h)),_=R(g,!0);N(g),P(),N(h);var v=B(h,2),y=e=>{var t=sP(),r=z(t),i=B(R(r),2),a=R(i);n(a,()=>`screen`);var o=B(a);N(i),N(r),P(2),V(()=>{Q(i,`href`,H(zt).dashboard),q(o,`Open ${H(zt).label??``}`)}),K(e,t)},b=e=>{K(e,cP())};J(v,e=>{H(zt).dashboard?e(y):e(b,-1)});var x=B(v,2),S=R(x),C=R(S,!0);N(S);var w=B(S,2),T=R(w);n(T,()=>`copy`);var E=B(T,1,!0);N(w),N(x);var D=B(x,4),O=R(D);n(R(O),()=>`generate`),P(),N(O),N(D),N(d),N(r),N(t),V(()=>{q(l,`· ${H(zt).label??``}`),m!==(m=H(s).deploy??`auto`)&&(p.value=(p.__value=H(s).deploy??`auto`)??``,Wi(p,H(s).deploy??`auto`)),q(_,H(zt).adapter),q(C,H(zt).cli),q(E,H(Rt)?`Copied`:`Copy`)}),U(`click`,t,()=>L(Lt,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(Lt,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(Lt,!1)),U(`click`,u,()=>L(Lt,!1)),U(`change`,p,e=>Vt(e.currentTarget.value)),U(`click`,w,Kt),U(`click`,O,()=>{L(Lt,!1),ui()}),K(e,t)};J(Vc,e=>{H(Lt)&&e(Hc)});var Uc=B(Vc,2),Wc=e=>{var t=vP(),r=R(t),i=R(r),a=R(i),o=R(a);n(o,()=>`entity`);var c=B(o,2),l=R(c);N(c),N(a);var u=B(a,4);n(R(u),()=>`close`),N(u),N(i);var d=B(i,2),f=R(d);Y(f,21,()=>H(s).entities,e=>e.name,(e,t)=>{let n=F(()=>JT(H(s),H(t).name));var r=mP();let i;var a=R(r),o=R(a),c=R(o,!0);N(o);var l=B(o,2),u=R(l,!0);N(l),N(a);var d=B(a,2);Y(d,21,()=>H(t).fields,e=>e.field,(e,t)=>{var n=pP();let r;var i=R(n),a=R(i,!0),o=B(a),s=e=>{K(e,uP())};J(o,e=>{H(t).primaryKey&&e(s)}),N(i);var c=B(i,2),l=e=>{var n=dP(),r=R(n);N(n),V(()=>{Q(n,`title`,`Go to ${H(t).relation.entity??``}`),q(r,`→ ${H(t).relation.entity??``}`)}),U(`click`,n,()=>ie(H(t).relation.entity)),K(e,n)},u=e=>{var n=fP(),r=R(n,!0);N(n),V(()=>q(r,H(t).type)),K(e,n)};J(c,e=>{H(t).type===`relation`&&H(t).relation?.entity?e(l):e(u,-1)}),N(n),V(()=>{r=X(n,1,`svelte-psjrav`,null,r,{"is-pk":H(t).primaryKey,"is-rel":H(t).type===`relation`}),q(a,H(t).field)}),K(e,n)}),N(d),N(r),V(()=>{i=X(r,1,`sv-studio__dm-card svelte-psjrav`,null,i,{"is-highlight":H(ne)===H(t).name}),Q(r,`data-entity-card`,H(t).name),q(c,H(t).label??H(t).name),q(u,H(n).kind)}),K(e,r)}),N(f);var p=B(f,2),m=B(R(p),2),h=e=>{K(e,hP())},g=e=>{var t=_P();Y(t,21,()=>H(re),e=>e.from+e.field,(e,t)=>{var n=gP();let r;var i=R(n),a=R(i,!0);N(i);var o=B(i,2),s=R(o);N(o);var c=B(o,2),l=R(c,!0);N(c);var u=B(c,2),d=R(u),f=B(d),p=e=>{K(e,ri(`· missing!`))};J(f,e=>{H(t).missing&&e(p)}),N(u),N(n),V(()=>{r=X(n,1,`svelte-psjrav`,null,r,{"is-broken":H(t).missing}),q(a,H(t).fromLabel),q(s,`.${H(t).field??``}`),q(l,H(t).to),q(d,`(${H(t).labelField??``})`)}),U(`click`,i,()=>ie(H(t).from)),U(`click`,c,()=>ie(H(t).to)),K(e,n)}),N(t),K(e,t)};J(m,e=>{H(re).length===0?e(h):e(g,-1)}),N(p),N(d),N(r),N(t),V(()=>q(l,`· ${H(s).entities.length??``} entit${H(s).entities.length===1?`y`:`ies`} · ${H(re).length??``} relationship${H(re).length===1?``:`s`}`)),U(`click`,t,()=>L(te,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(te,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(te,!1)),U(`click`,u,()=>L(te,!1)),K(e,t)};J(Uc,e=>{H(te)&&e(Wc)});var Gc=B(Uc,2),Kc=e=>{var t=bP(),r=R(t),i=R(r),a=R(i);n(R(a),()=>`screen`),P(),N(a);var o=B(a,4);n(R(o),()=>`close`),N(o),N(i);var s=B(i,2),c=R(s);Y(c,20,()=>[[`Ctrl/⌘ Z`,`Undo`],[`Ctrl/⌘ Shift Z`,`Redo`],[`Ctrl/⌘ D`,`Duplicate block`],[`Ctrl/⌘ C`,`Copy block`],[`Ctrl/⌘ V`,`Paste block (any screen)`],[`Delete`,`Remove selected block`],[`Enter`,`Select block / nested child`],[`Esc`,`Deselect / close panel`],[`?`,`This help`]],([e,t])=>e,(e,t)=>{var n=F(()=>T(t,2));let r=()=>H(n)[0],i=()=>H(n)[1];var a=yP(),o=R(a),s=R(o),c=R(s,!0);N(s),N(o);var l=B(o),u=R(l,!0);N(l),N(a),V(()=>{q(c,r()),q(u,i())}),K(e,a)}),N(c),P(2),N(s),N(r),N(t),U(`click`,t,()=>L(ee,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(ee,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(ee,!1)),U(`click`,o,()=>L(ee,!1)),K(e,t)};J(Gc,e=>{H(ee)&&e(Kc)});var qc=B(Gc,2),Jc=e=>{var t=wP(),r=R(t),i=R(r),a=R(i);n(R(a),()=>`database`),P(),N(a);var o=B(a,4);n(R(o),()=>`close`),N(o),N(i);var c=B(i,2),l=R(c),u=e=>{var t=SP();Y(B(z(t),2),17,()=>Ut,e=>e.id,(e,t)=>{var n=xP(),r=R(n),i=R(r,!0);N(r);var a=B(r,2),o=R(a,!0);N(a);var s=B(a,2),c=R(s);N(s),N(n),V(()=>{q(i,H(t).label),q(o,H(t).blurb),q(c,`Create on ${H(t).label??``} →`)}),U(`click`,n,()=>Gt(H(t))),K(e,n)}),K(e,t)},d=e=>{var t=CP(),r=z(t),i=R(r),a=B(i),o=R(a,!0);N(a);var c=B(a);N(r);var l=B(r,2),u=R(l),d=B(R(u)),f=R(d,!0);N(d),P(),N(u);var p=B(u,2),m=B(R(p),5),h=R(m),g=R(h,!0);N(h),N(m),N(p),P(2),N(l);var _=B(l,2),v=R(_),y=B(v,2);n(R(y),()=>`generate`),P(),N(y),N(_),V(e=>{q(i,`Bound ${H(s).entities.length??``} entit${H(s).entities.length===1?`y`:`ies`} to `),q(o,H(Wt).label),q(c,` (${H(Wt).dialect??``}). A new tab opened to create your database.`),Q(d,`href`,H(Wt).url),q(f,H(Wt).label),q(g,e),y.disabled=!H(M)},[()=>H(Wt).env.map(e=>`${e}=`).join(` `)]),U(`click`,v,()=>L(Wt,null)),U(`click`,y,()=>{L(Ht,!1),ui()}),K(e,t)};J(l,e=>{H(Wt)?e(d,-1):e(u)}),N(c),N(r),N(t),U(`click`,t,()=>L(Ht,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(Ht,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(Ht,!1)),U(`click`,o,()=>L(Ht,!1)),K(e,t)};J(qc,e=>{H(Ht)&&e(Jc)});var Yc=B(qc,2),Xc=e=>{var t=HP(),i=R(t),a=R(i),o=R(a),s=R(o);n(s,()=>`generate`);var c=B(s),l=B(c),u=R(l);N(l),N(o);var d=B(o,2);n(R(d),()=>`close`),N(d),N(a);var f=B(a,2),p=R(f),m=e=>{let t=F(()=>H(Ua));var n=EP(),r=z(n),i=R(r),a=B(R(i));Z(a),N(i);var o=B(i,2),s=B(R(o));Y(s,20,()=>za,e=>e,(e,t)=>{var n=TP(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(s);var c;Gi(s),N(o),N(r);var l=B(r,2),u=B(R(l)),d=R(u);N(u),N(l);var f=B(l,2),p=B(R(f),4),m=R(p);N(p);var h=B(p,2),g=R(h,!0);N(h);var _=B(h,10),v=R(_);N(_),N(f),V(()=>{ra(a,H(t).table),Q(a,`placeholder`,H(A).name),c!==(c=H(t).dialect??`postgres`)&&(s.value=(s.__value=H(t).dialect??`postgres`)??``,Wi(s,H(t).dialect??`postgres`)),q(d,`/api/${(H(t).table||H(A).name)??``}`),q(m,`src/routes/api/${(H(t).table||H(A).name)??``}/+server.ts`),q(g,H(t).dialect??`postgres`),q(v,`npx @svgrid/studio add ${(H(t).table||H(A).name)??``} --db ${H(t).dialect??`postgres`??``} --url …`)}),U(`change`,a,e=>Wa({...H(t),table:e.currentTarget.value})),U(`change`,s,e=>Wa({...H(t),dialect:e.currentTarget.value})),K(e,n)},h=e=>{let t=F(()=>H(Ua));var i=OP(),a=z(i),o=R(a),s=B(R(o));Z(s),N(o);var c=B(o,2),l=B(R(c));Z(l),N(c),N(a);var u=B(a,2),d=R(u),f=B(R(d),3);Z(f),N(d);var p=B(d,2),m=R(p);n(m,()=>`import`);var h=B(m,1,!0);N(p),N(u);var g=B(u,2),_=e=>{var n=DP(),r=R(n),i=R(r);N(r);var a=B(r),o=R(a,!0);N(a),N(n),V(e=>{q(i,`${e??``}/rest/v1/`),q(o,H(t).table)},[()=>H(t).url.replace(/\/+$/,``)]),K(e,n)};J(g,e=>{H(t).url&&H(t).table&&e(_)}),r(B(g,2)),P(2),V(()=>{ra(s,H(t).url??``),ra(l,H(t).table),Q(l,`placeholder`,H(A).name),ra(f,H(t).key??``),p.disabled=H(to)||!H(t).url||!H(t).key,q(h,H(to)?`Fetching…`:`Fetch sample`)}),U(`change`,s,e=>Wa({...H(t),url:e.currentTarget.value})),U(`change`,l,e=>Wa({...H(t),table:e.currentTarget.value})),U(`change`,f,e=>Wa({...H(t),key:e.currentTarget.value})),U(`click`,p,ao),K(e,i)},g=e=>{let t=F(()=>H(Ua)),i=F(()=>(H(t).baseUrl||`https://…`).replace(/\/+$/,``));var a=VP(),o=z(a),s=R(o),c=B(R(s));Z(c),N(s);var l=B(s,2),u=B(R(l));Y(u,20,()=>Ra,e=>e,(e,t)=>{var n=kP(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(u);var d;Gi(u),N(l);var f=B(l,2),p=B(R(f));Z(p),N(f);var m=B(f,2),h=R(m);n(h,()=>`import`);var g=B(h,1,!0);N(m),N(o);var _=B(o,2),v=B(R(_));Z(v),N(_);var y=B(_,2),b=R(y),x=R(b);N(b),Y(B(b),17,()=>H(t).path.split(/(\{[^}]+\})/),di,(e,t)=>{var n=ii(),r=z(n),i=e=>{var n=AP(),r=R(n,!0);N(n),V(()=>q(r,H(t))),K(e,n)},a=F(()=>/^\{[^}]+\}$/.test(H(t))),o=e=>{var n=jP(),r=R(n,!0);N(n),V(()=>q(r,H(t))),K(e,n)};J(r,e=>{H(a)?e(i):e(o,-1)}),K(e,n)}),N(y);var S=B(y,2);r(S);var C=B(S,4);Y(C,20,()=>Ba,e=>e,(e,t)=>{var n=NP();let r;var i=R(n,!0),a=B(i),o=e=>{var n=MP(),r=R(n,!0);N(n),V(e=>q(r,e),[()=>Za(t).length]),K(e,n)},s=F(()=>t!==`body`&&Za(t).length);J(a,e=>{H(s)&&e(o)}),N(n),V(()=>{r=X(n,1,`sv-studio__req-tab svelte-psjrav`,null,r,{"is-active":H(Va)===t}),Q(n,`aria-selected`,H(Va)===t),q(i,t)}),U(`click`,n,()=>L(Va,t,!0)),K(e,n)}),N(C);var w=B(C,2),T=e=>{K(e,PP())},E=e=>{var t=RP(),n=B(z(t),2),r=e=>{K(e,FP())},i=F(()=>Za(`path`).length===0),a=e=>{var t=LP();Y(B(R(t),2),17,()=>Za(`path`),di,(e,t)=>{var n=IP(),r=R(n),i=R(r,!0);N(r);var a=B(r,2);Z(a);var o=B(a,2),s=R(o);s.value=s.__value=`string`;var c=B(s);c.value=c.__value=`number`;var l=B(c);l.value=l.__value=`boolean`,N(o);var u;Gi(o),P(2),N(n),V(()=>{q(i,H(t).name),ra(a,H(t).value??``),u!==(u=H(t).type)&&(o.value=(o.__value=H(t).type)??``,Wi(o,H(t).type))}),U(`change`,a,e=>$a(H(t),{value:e.currentTarget.value})),U(`change`,o,e=>$a(H(t),{type:e.currentTarget.value})),K(e,n)}),N(t),K(e,t)};J(n,e=>{H(i)?e(r):e(a,-1)}),K(e,t)},D=e=>{var t=BP(),r=B(R(t),2);Y(r,17,()=>Za(H(Va)),di,(e,t)=>{var r=zP(),i=R(r);Z(i);var a=B(i,2);Z(a);var o=B(a,2),s=R(o);s.value=s.__value=`string`;var c=B(s);c.value=c.__value=`number`;var l=B(c);l.value=l.__value=`boolean`,N(o);var u;Gi(o);var d=B(o,2);n(R(d),()=>`close`),N(d),N(r),V(()=>{ra(i,H(t).name),ra(a,H(t).value??``),u!==(u=H(t).type)&&(o.value=(o.__value=H(t).type)??``,Wi(o,H(t).type))}),U(`change`,i,e=>$a(H(t),{name:e.currentTarget.value})),U(`change`,a,e=>$a(H(t),{value:e.currentTarget.value})),U(`change`,o,e=>$a(H(t),{type:e.currentTarget.value})),U(`click`,d,()=>eo(H(t))),K(e,r)});var i=B(r,2),a=R(i);n(a,()=>`plus`);var o=B(a);N(i),N(t),V(()=>q(o,` Add ${H(Va)??``} parameter`)),U(`click`,i,()=>Qa(H(Va))),K(e,t)};J(w,e=>{H(Va)===`body`?e(T):H(Va)===`path`?e(E,1):e(D,-1)});var O=B(w,4),ee=R(O),te=B(R(ee));Z(te),N(ee);var ne=B(ee,2),re=B(R(ne));Z(re),N(ne),N(O),V(()=>{ra(c,H(A).label??H(A).name),d!==(d=H(t).method)&&(u.value=(u.__value=H(t).method)??``,Wi(u,H(t).method)),ra(p,H(t).path),m.disabled=H(to)||!H(t).baseUrl,q(g,H(to)?`Sending…`:`Send`),ra(v,H(t).baseUrl),q(x,`${H(i)??``}/`),ra(te,H(t).rowsPath??``),ra(re,H(t).totalPath??``)}),U(`change`,u,e=>Ka({method:e.currentTarget.value})),U(`change`,p,e=>Xa(e.currentTarget.value)),U(`click`,m,ao),U(`change`,v,e=>Ka({baseUrl:e.currentTarget.value})),U(`change`,te,e=>Ka({rowsPath:e.currentTarget.value||void 0})),U(`change`,re,e=>Ka({totalPath:e.currentTarget.value||void 0})),K(e,a)};J(p,e=>{H(Ua).kind===`sql`?e(m):H(Ua).kind===`supabase`?e(h,1):e(g,-1)}),N(f),N(i),N(t),V(()=>{q(c,` ${H(Ua).kind===`supabase`?`Supabase table`:H(Ua).kind===`sql`?`SQL table`:`Request`} `),q(u,`· ${H(A).label??H(A).name??``}`)}),U(`click`,t,()=>L(Ha,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(Ha,!1)),U(`click`,i,e=>e.stopPropagation()),U(`keydown`,i,e=>e.key===`Escape`&&L(Ha,!1)),U(`click`,d,()=>L(Ha,!1)),K(e,t)};J(Yc,e=>{H(Ha)&&(H(Ua).kind===`rest`||H(Ua).kind===`supabase`||H(Ua).kind===`sql`)&&H(A)&&e(Xc)});var Zc=B(Yc,2),Qc=e=>{var t=$P(),r=R(t),a=R(r);n(R(a),()=>`screen`),P(2),N(a);var o=B(a,2);Y(o,20,()=>[{d:`desktop`,l:`Desktop`},{d:`tablet`,l:`Tablet`},{d:`mobile`,l:`Mobile`}],e=>e.d,(e,t)=>{var r=UP();let i;var a=R(r);n(a,()=>t.d);var o=B(a),s=R(o,!0);N(o),N(r),V(()=>{Q(r,`title`,t.l),i=X(r,1,`svelte-psjrav`,null,i,{"is-active":H(lt)===t.d}),q(s,t.l)}),U(`click`,r,()=>L(lt,t.d,!0)),K(e,r)}),N(o);var s=B(o,2);n(R(s),()=>`close`),P(2),N(s),N(r);var c=B(r,2);let l;var u=R(c),d=R(u),f=R(d),p=R(f),m=e=>{var t=WP();V(()=>{Q(t,`src`,H(He)),Q(t,`alt`,H(ze))}),K(e,t)},h=e=>{var t=GP(),r=z(t);n(r,()=>`dashboard`);var i=B(r),a=R(i,!0);N(i),V(()=>q(a,H(ze))),K(e,t)};J(p,e=>{H(He)?e(m):e(h,-1)}),N(f);var g=B(f,2),_=e=>{var t=KP();V(()=>{Q(t,`title`,H(ft)?`Expand sidebar`:`Collapse sidebar`),Q(t,`aria-expanded`,!H(ft))}),U(`click`,t,()=>L(ft,!H(ft))),K(e,t)};J(g,e=>{H(Re)===`sidebar`&&e(_)}),N(d);var v=B(d,2);Y(v,21,()=>H(Ke),e=>e.id,(e,t)=>{var n=qP();let r;var i=R(n),a=R(i,!0);N(i);var o=B(i),s=R(o,!0);N(o),N(n),V(e=>{r=X(n,1,`sv-studio__pv-nav-item svelte-psjrav`,null,r,{"is-active":H(t).id===H(vt)?.id}),Q(n,`title`,H(t).nav?.label??H(t).title),q(a,e),q(s,H(t).nav?.label??H(t).title)},[()=>(H(t).nav?.label??H(t).title).trim().slice(0,1)]),U(`click`,n,()=>L(dt,H(t).id,!0)),K(e,n)}),N(v),N(u);var y=B(u,2),b=R(y),x=e=>{let t=F(()=>Me(H(yt),be(H(yt))));var n=XP(),r=z(n),a=R(r),o=R(a,!0);N(a),N(r);var s=B(r,2),c=R(s);Y(c,17,()=>H(vt).blocks,e=>e.id,(e,n)=>{var r=JP();let a;var o=R(r);{let e=F(()=>Pi(H(n))?(H(n).height??320)-(Ii(H(n))?0:20):320);i(o,()=>H(n),()=>H(yt),()=>H(t),()=>H(e),()=>!0)}N(r),V((e,t,n)=>{a=X(r,1,`sv-studio__pv-block svelte-psjrav`,null,a,e),Ui(r,`grid-column: span ${t??``}${n??``}`)},[()=>({"is-flush":Ii(H(n))}),()=>oT(H(n)),()=>Pi(H(n))&&H(n).height?`; min-height:${H(n).height}px`:``]),K(e,r)});var l=B(c,2),u=e=>{K(e,YP())};J(l,e=>{H(vt).blocks.length===0&&e(u)}),N(s),V(()=>q(o,H(vt).title)),K(e,n)},S=e=>{K(e,ZP())};J(b,e=>{H(vt)&&H(yt)?e(x):e(S,-1)});var C=B(b,2),w=e=>{var t=QP(),n=R(t,!0);N(t),V(()=>q(n,H(Ve))),K(e,t)};J(C,e=>{H(Ve)&&e(w)}),N(y),N(c),N(t),V(()=>{Ui(t,H(Fe)),l=X(c,1,`sv-studio__pv-shell svelte-psjrav`,null,l,{"is-topnav":H(Re)===`top-nav`,"is-navright":H(Re)===`sidebar`&&H(Be)===`right`,"is-framed":H(lt)!==`desktop`,"is-navcollapsed":H(pt)}),Ui(c,`max-width: ${ut[H(lt)]??``}`)}),U(`click`,s,()=>L(ct,!1)),K(e,t)};J(Zc,e=>{H(ct)&&e(Qc)});var $c=B(Zc,2),el=e=>{var t=nF(),r=R(t),i=R(r),a=B(R(i),2);n(R(a),()=>`close`),N(a),N(i);var o=B(i,2),s=R(o);Dn(s);var c=B(s,2);Y(c,20,()=>Tt,e=>e,(e,t)=>{var n=eF(),r=R(n,!0);N(n),V(()=>{n.disabled=H(Ct),q(r,t)}),U(`click`,n,()=>L(St,t,!0)),K(e,n)}),N(c);var l=B(c,2),u=e=>{var t=tF(),n=R(t,!0);N(t),V(()=>q(n,H(wt))),K(e,t)};J(l,e=>{H(wt)&&e(u)});var d=B(l,2),f=B(R(d),2),p=R(f,!0);N(f),N(d),N(o),N(r),N(t),V(e=>{s.disabled=H(Ct),f.disabled=e,q(p,H(Ct)?`Working…`:`Apply change`)},[()=>H(Ct)||!H(St).trim()]),U(`click`,t,()=>L(xt,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(xt,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>{e.key===`Escape`&&L(xt,!1)}),U(`click`,a,()=>L(xt,!1)),U(`keydown`,s,e=>{(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&Dt()}),fa(s,()=>H(St),e=>L(St,e)),U(`click`,f,Dt),K(e,t)};J($c,e=>{H(xt)&&e(el)});var tl=B($c,2),nl=e=>{var t=oF(),r=R(t),i=R(r),a=R(i);n(R(a),()=>`dashboard`),P(2),N(a);var o=B(a,2);n(R(o),()=>`close`),N(o),N(i);var c=B(i,2),l=R(c),u=e=>{K(e,rF())};J(l,e=>{H(s).entities.length>0&&e(u)});var d=B(l,2);Y(d,21,()=>Ek,e=>e.id,(e,t)=>{var r=iF(),i=R(r),a=R(i,!0);N(i);var o=B(i,2),s=R(o,!0);N(o);var c=B(o,2),l=R(c,!0);N(c);var u=B(c,2);n(B(R(u)),()=>`generate`),N(u),N(r),V(()=>{Ui(r,`--sample-accent: ${H(t).accent??``}`),q(a,H(t).emoji),q(s,H(t).name),q(l,H(t).description)}),U(`click`,r,()=>kt(H(t))),K(e,r)}),N(d);var f=B(d,4);Y(f,21,()=>Tk,e=>e.id,(e,t)=>{var r=aF(),i=B(R(r),2),a=R(i,!0);N(i);var o=B(i,2),s=R(o,!0);N(o);var c=B(o,2),l=R(c,!0);N(c);var u=B(c,2);n(B(R(u)),()=>`generate`),N(u),N(r),V(()=>{Ui(r,`--sample-accent: ${H(t).accent??``}`),q(a,H(t).emoji),q(s,H(t).name),q(l,H(t).description)}),U(`click`,r,()=>kt(H(t))),K(e,r)}),N(f),N(c),N(r),N(t),U(`click`,t,()=>L(Ot,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(Ot,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(Ot,!1)),U(`click`,o,()=>L(Ot,!1)),K(e,t)};J(tl,e=>{H(Ot)&&e(nl)});var rl=B(tl,2),il=e=>{var t=cF(),r=R(t),i=R(r),a=R(i);n(R(a),()=>`entity`),P(),N(a);var o=B(a,2);n(R(o),()=>`close`),N(o),N(i);var c=B(i,2),l=R(c),u=B(R(l));Z(u),En(u,!0),N(l);var d=B(l,2),f=R(d),p=e=>{var t=ri();V(e=>q(t,e),[()=>uT(H(s),Mt(H(jt)))?`"${Mt(H(jt))}" already exists.`:`Enter a name.`]),K(e,t)},m=e=>{var t=sF(),n=B(z(t)),r=R(n,!0);N(n),P(5),V(e=>q(r,e),[()=>Mt(H(jt))||`name`]),K(e,t)};J(f,e=>{H(jt)&&!H(Nt)?e(p):e(m,-1)}),N(d);var h=B(d,2),g=R(h),_=B(g,2);n(R(_),()=>`plus`),P(),N(_),N(h),N(c),N(r),N(t),V(()=>{ra(u,H(jt)),_.disabled=!H(Nt)}),U(`click`,t,()=>L(At,!1)),U(`keydown`,t,e=>e.key===`Escape`&&L(At,!1)),U(`click`,r,e=>e.stopPropagation()),U(`keydown`,r,e=>e.key===`Escape`&&L(At,!1)),U(`click`,o,()=>L(At,!1)),U(`input`,u,e=>L(jt,e.currentTarget.value,!0)),U(`keydown`,u,e=>{e.key===`Enter`&&H(Nt)&&Pt()}),U(`click`,g,()=>L(At,!1)),U(`click`,_,Pt),K(e,t)};J(rl,e=>{H(At)&&e(il)});var al=B(rl,2),ol=e=>{var r=kF(),i=R(r),a=R(i),o=R(a),s=R(o);n(s,()=>`database`);var c=B(s,2),l=R(c);N(c),N(o);var u=B(o,2);n(R(u),()=>`close`),N(u),N(a);var d=B(a,2),f=R(d),p=e=>{var r=bF(),i=z(r),a=R(i),o=B(R(a));Y(o,21,()=>on,e=>e.value,(e,t)=>{var n=lF(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(o);var s;Gi(o),N(a);var c=B(a,2),l=e=>{var t=uF(),n=R(t);let r;var i=B(n,2);let a;N(t),V(()=>{Q(n,`aria-selected`,H(cn)===`form`),r=X(n,1,`sv-studio__seg-btn svelte-psjrav`,null,r,{"is-on":H(cn)===`form`}),Q(i,`aria-selected`,H(cn)===`string`),a=X(i,1,`sv-studio__seg-btn svelte-psjrav`,null,a,{"is-on":H(cn)===`string`})}),U(`click`,n,()=>L(cn,`form`)),U(`click`,i,()=>L(cn,`string`)),K(e,t)};J(c,e=>{H(hn)&&e(l)}),N(i);var u=B(i,2),d=e=>{var t=ii(),n=z(t),r=e=>{var t=dF(),n=B(R(t));Z(n),N(t),V(()=>ra(n,H(ln).file??``)),U(`input`,n,e=>bn(`file`,e.currentTarget.value)),U(`keydown`,n,e=>{e.key===`Enter`&&H(vn)&&On()}),K(e,t)},i=F(()=>Sw(H(Yt))),a=e=>{var t=pF(),n=z(t),r=R(n),i=B(R(r));Z(i),N(r);var a=B(r,2),o=B(R(a));Z(o),N(a);var s=B(a,2),c=B(R(s));Z(c),N(s);var l=B(s,2),u=B(R(l));Z(u),N(l);var d=B(l,2),f=B(R(d));Z(f),N(d),N(n);var p=B(n,2),m=R(p);Z(m),P(),N(p);var h=B(p,2),g=e=>{var t=fF(),n=R(t,!0);N(t),V(()=>q(n,H(vn))),K(e,t)};J(h,e=>{H(vn)&&e(g)}),V(()=>{ra(i,H(ln).host??``),ra(o,H(ln).port??``),Q(o,`placeholder`,H(yn)),ra(c,H(ln).database??``),ra(u,H(ln).user??``),ra(f,H(ln).password??``),ia(m,H(ln).ssl??!1)}),U(`input`,i,e=>bn(`host`,e.currentTarget.value)),U(`input`,o,e=>bn(`port`,e.currentTarget.value)),U(`input`,c,e=>bn(`database`,e.currentTarget.value)),U(`input`,u,e=>bn(`user`,e.currentTarget.value)),U(`input`,f,e=>bn(`password`,e.currentTarget.value)),U(`change`,m,e=>bn(`ssl`,e.currentTarget.checked)),K(e,t)};J(n,e=>{H(i)?e(r):e(a,-1)}),K(e,t)},f=e=>{var t=mF(),n=B(R(t));Z(n),N(t),V(()=>{ra(n,H(Xt)),Q(n,`placeholder`,H(sn))}),U(`input`,n,e=>{L(Xt,e.currentTarget.value,!0),L(dn,null)}),U(`keydown`,n,e=>{e.key===`Enter`&&H(vn)&&On()}),K(e,t)};J(u,e=>{H(gn)?e(d):e(f,-1)});var p=B(u,4),m=e=>{var t=_F(),r=R(t),i=R(r);n(i,()=>`entity`);var a=B(i);N(r);var o=B(r,2),s=R(o);Y(s,17,()=>H(dn).slice(0,12),e=>e.name,(e,t)=>{var n=hF(),r=R(n,!0),i=B(r),a=R(i,!0);N(i),N(n),V(e=>{q(r,H(t).name),q(a,e)},[()=>H(t).rows==null?`—`:H(t).rows.toLocaleString()]),K(e,n)});var c=B(s,2),l=e=>{var t=gF(),n=R(t);N(t),V(()=>q(n,`+${H(dn).length-12} more`)),K(e,t)};J(c,e=>{H(dn).length>12&&e(l)}),N(o),N(t),V(()=>q(a,` Connected · ${H(dn).length??``} ${H(dn).length===1?`table`:`tables`}`)),K(e,t)};J(p,e=>{H(dn)&&e(m)});var h=B(p,2),g=e=>{var n=yF(),r=R(n),i=B(R(r)),a=R(i,!0);N(i),P(),N(r);var o=B(r,2),s=e=>{var t=vF(),n=R(t,!0);N(t),V(()=>{t.disabled=H(mn),q(n,H(mn)?`Installing…`:`Install ${H(fn)}`)}),U(`click`,t,Cn),K(e,t)};J(o,e=>{t.onInstallDriver&&e(s)}),N(n),V(()=>q(a,H(fn))),K(e,n)};J(h,e=>{H(fn)&&e(g)});var _=B(h,2),v=R(_),y=B(v,4),b=R(y,!0);N(y);var x=B(y,2),S=R(x);n(S,()=>`database`);var C=B(S,1,!0);N(x),N(_),V(()=>{s!==(s=H(Yt))&&(o.value=(o.__value=H(Yt))??``,Wi(o,H(Yt))),y.disabled=H(Zt)||!H(vn),q(b,H(Zt)&&H(dn)===null?`Testing…`:`Test connection`),x.disabled=H(Zt)||!H(vn),q(C,H(Zt)?`Connecting…`:`Connect`)}),U(`change`,o,e=>{L(Yt,e.currentTarget.value,!0),L(dn,null),L(fn,null),H(Yt)===`turso`&&L(cn,`string`)}),U(`click`,v,()=>L(qt,!1)),U(`click`,y,Sn),U(`click`,x,On),K(e,r)},m=e=>{var t=wF(),r=z(t),i=R(r),a=R(i);N(i);var o=B(i,4),s=B(o,2);N(r);var c=B(r,2),l=e=>{var t=xF();Z(t),V(()=>ra(t,H(nn))),U(`input`,t,e=>L(nn,e.currentTarget.value,!0)),K(e,t)};J(c,e=>{H($t).length>8&&e(l)});var u=B(c,2),d=R(u);Y(d,16,()=>H(an),e=>e,(e,t)=>{var n=SF(),r=R(n);Z(r);var i=B(r);N(n),V(e=>{ia(r,e),q(i,` ${t??``}`)},[()=>H(en).has(t)]),U(`change`,r,()=>kn(t)),K(e,n)});var f=B(d,2),p=e=>{var t=CF(),n=R(t);N(t),V(()=>q(n,`No tables match "${H(nn)??``}".`)),K(e,t)};J(f,e=>{H(an).length===0&&e(p)}),N(u);var m=B(u,2),h=R(m),g=B(h,2),_=R(g);n(_,()=>`plus`);var v=B(_,1,!0);N(g),N(m),V(()=>{q(a,`${H(en).size??``} of ${H($t).length??``} selected`),g.disabled=H(Zt)||H(en).size===0,q(v,H(Zt)?`Reading…`:`Add ${H(en).size} ${H(en).size===1?`entity`:`entities`}`)}),U(`click`,o,()=>Tn(!0)),U(`click`,s,()=>Tn(!1)),U(`click`,h,()=>L(Jt,`connect`)),U(`click`,g,An),K(e,t)},h=e=>{var t=DF(),r=z(t),i=R(r);n(i,()=>`entity`);var a=B(i);N(r);var o=B(r,2),s=e=>{var t=EF(),n=R(t),r=R(n);N(n),Y(B(n,2),17,()=>H(rn),e=>e.table,(e,t)=>{var n=TF(),r=R(n,!0);N(n),V(()=>{Q(n,`title`,H(t).message),q(r,H(t).table)}),K(e,n)}),N(t),V(()=>q(r,`Skipped ${H(rn).length??``}:`)),K(e,t)};J(o,e=>{H(rn).length&&e(s)});var c=B(o,2),l=R(c);N(c),V(()=>q(a,` Added ${H(tn)??``} ${H(tn)===1?`entity`:`entities`} bound to your database. Generate app emits a connected API route (driver + DATABASE_URL) for each.`)),U(`click`,l,()=>L(qt,!1)),K(e,t)};J(f,e=>{H(Jt)===`connect`?e(p):H(Jt)===`tables`?e(m,1):e(h,-1)});var g=B(f,2),_=e=>{var t=OF(),n=R(t,!0);N(t),V(()=>q(n,H(Qt))),K(e,t)};J(g,e=>{H(Qt)&&e(_)}),N(d),N(i),N(r),V(()=>q(l,`· ${H(Jt)===`connect`?`step 1 of 2`:H(Jt)===`tables`?`step 2 of 2`:`done`}`)),U(`click`,r,()=>L(qt,!1)),U(`keydown`,r,e=>e.key===`Escape`&&L(qt,!1)),U(`click`,i,e=>e.stopPropagation()),U(`keydown`,i,e=>e.key===`Escape`&&L(qt,!1)),U(`click`,u,()=>L(qt,!1)),K(e,r)};J(al,e=>{H(qt)&&t.onIntrospectDatabase&&e(ol)});var sl=B(al,2),cl=e=>{var r=YF(),i=R(r),a=R(i),o=R(a),c=R(o);n(c,()=>`database`);var l=B(c,2),u=R(l);N(l),N(o);var d=B(o,2);n(R(d),()=>`close`),N(d),N(a);var f=B(a,2),p=R(f),m=e=>{var r=VF(),i=B(z(r),2),a=R(i),o=B(R(a));Y(o,21,()=>on,e=>e.value,(e,t)=>{var n=AF(),r=R(n,!0);N(n);var i={};V(()=>{q(r,H(t).label),i!==(i=H(t).value)&&(n.value=(n.__value=H(t).value)??``)}),K(e,n)}),N(o);var s;Gi(o),N(a);var c=B(a,2),l=e=>{var t=jF(),n=R(t);let r;var i=B(n,2);let a;N(t),V(()=>{Q(n,`aria-selected`,H(Wn)===`form`),r=X(n,1,`sv-studio__seg-btn svelte-psjrav`,null,r,{"is-on":H(Wn)===`form`}),Q(i,`aria-selected`,H(Wn)===`string`),a=X(i,1,`sv-studio__seg-btn svelte-psjrav`,null,a,{"is-on":H(Wn)===`string`})}),U(`click`,n,()=>L(Wn,`form`)),U(`click`,i,()=>L(Wn,`string`)),K(e,t)};J(c,e=>{H(Yn)&&e(l)}),N(i);var u=B(i,2),d=e=>{var t=ii(),n=z(t),r=e=>{var t=MF(),n=B(R(t));Z(n),N(t),V(()=>ra(n,H(Gn).file??``)),U(`input`,n,e=>er(`file`,e.currentTarget.value)),U(`keydown`,n,e=>{e.key===`Enter`&&H(Qn)&&or()}),K(e,t)},i=F(()=>Sw(H(Nn))),a=e=>{var t=PF(),n=z(t),r=R(n),i=B(R(r));Z(i),N(r);var a=B(r,2),o=B(R(a));Z(o),N(a);var s=B(a,2),c=B(R(s));Z(c),N(s);var l=B(s,2),u=B(R(l));Z(u),N(l);var d=B(l,2),f=B(R(d));Z(f),N(d),N(n);var p=B(n,2),m=R(p);Z(m),P(),N(p);var h=B(p,2),g=e=>{var t=NF(),n=R(t,!0);N(t),V(()=>q(n,H(Qn))),K(e,t)};J(h,e=>{H(Qn)&&e(g)}),V(()=>{ra(i,H(Gn).host??``),ra(o,H(Gn).port??``),Q(o,`placeholder`,H($n)),ra(c,H(Gn).database??``),ra(u,H(Gn).user??``),ra(f,H(Gn).password??``),ia(m,H(Gn).ssl??!1)}),U(`input`,i,e=>er(`host`,e.currentTarget.value)),U(`input`,o,e=>er(`port`,e.currentTarget.value)),U(`input`,c,e=>er(`database`,e.currentTarget.value)),U(`input`,u,e=>er(`user`,e.currentTarget.value)),U(`input`,f,e=>er(`password`,e.currentTarget.value)),U(`change`,m,e=>er(`ssl`,e.currentTarget.checked)),K(e,t)};J(n,e=>{H(i)?e(r):e(a,-1)}),K(e,t)},f=e=>{var t=FF(),n=B(R(t));Z(n),N(t),V(()=>{ra(n,H(Pn)),Q(n,`placeholder`,H(Hn))}),U(`input`,n,e=>{L(Pn,e.currentTarget.value,!0),L(Kn,null)}),U(`keydown`,n,e=>{e.key===`Enter`&&H(Qn)&&or()}),K(e,t)};J(u,e=>{H(Xn)?e(d):e(f,-1)});var p=B(u,2),m=e=>{var t=RF(),r=R(t),i=R(r);n(i,()=>`entity`);var a=B(i);N(r);var o=B(r,2),s=R(o);Y(s,17,()=>H(Kn).slice(0,12),e=>e.name,(e,t)=>{var n=IF(),r=R(n,!0),i=B(r),a=R(i,!0);N(i),N(n),V(e=>{q(r,H(t).name),q(a,e)},[()=>H(t).rows==null?`—`:H(t).rows.toLocaleString()]),K(e,n)});var c=B(s,2),l=e=>{var t=LF(),n=R(t);N(t),V(()=>q(n,`+${H(Kn).length-12} more`)),K(e,t)};J(c,e=>{H(Kn).length>12&&e(l)}),N(o),N(t),V(()=>q(a,` Connected · ${H(Kn).length??``} ${H(Kn).length===1?`table`:`tables`}`)),K(e,t)};J(p,e=>{H(Kn)&&e(m)});var h=B(p,2),g=e=>{var n=BF(),r=R(n),i=B(R(r)),a=R(i,!0);N(i),P(),N(r);var o=B(r,2),s=e=>{var t=zF(),n=R(t,!0);N(t),V(()=>{t.disabled=H(Jn),q(n,H(Jn)?`Installing…`:`Install ${H(qn)}`)}),U(`click`,t,rr),K(e,t)};J(o,e=>{t.onInstallDriver&&e(s)}),N(n),V(()=>q(a,H(qn))),K(e,n)};J(h,e=>{H(qn)&&e(g)});var _=B(h,2),v=R(_),y=B(v,4),b=R(y,!0);N(y);var x=B(y,2),S=R(x);n(S,()=>`database`);var C=B(S,1,!0);N(x),N(_),V(()=>{s!==(s=H(Nn))&&(o.value=(o.__value=H(Nn))??``,Wi(o,H(Nn))),y.disabled=H(Fn)||!H(Qn),q(b,H(Fn)&&H(Kn)===null?`Testing…`:`Test connection`),x.disabled=H(Fn)||!H(Qn),q(C,H(Fn)?`Connecting…`:`Connect`)}),U(`change`,o,e=>{L(Nn,e.currentTarget.value,!0),L(Kn,null),L(qn,null),H(Nn)===`turso`&&L(Wn,`string`)}),U(`click`,v,()=>L(jn,!1)),U(`click`,y,nr),U(`click`,x,or),K(e,r)},h=e=>{var t=WF(),r=z(t),i=R(r);N(r);var a=B(r,2);Y(a,21,()=>H(s).entities,e=>e.name,(e,t)=>{var r=UF(),i=R(r),a=R(i);n(a,()=>`entity`);var o=B(a);N(i);var s=B(i,4),c=R(s);c.value=c.__value=``,Y(B(c),16,()=>H(Rn),e=>e,(e,t)=>{var n=HF(),r=R(n,!0);N(n);var i={};V(()=>{q(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),K(e,n)}),N(s);var l;Gi(s),N(r),V(()=>{q(o,` ${H(t).label??H(t).name??``}`),l!==(l=H(zn)[H(t).name]??``)&&(s.value=(s.__value=H(zn)[H(t).name]??``)??``,Wi(s,H(zn)[H(t).name]??``))}),U(`change`,s,e=>L(zn,{...H(zn),[H(t).name]:e.currentTarget.value},!0)),K(e,r)}),N(a);var o=B(a,2),c=R(o),l=B(c,2),u=R(l);n(u,()=>`database`);var d=B(u,1,!0);N(l),N(o),V(()=>{q(i,`${H(Un)??``} of ${H(s).entities.length??``} entities mapped. Each mapped entity is bound to your SQL table (its fields are read from the table); unmapped entities keep their sample data.`),l.disabled=H(Fn)||H(Un)===0,q(d,H(Fn)?`Reading…`:`Bind ${H(Un)} ${H(Un)===1?`entity`:`entities`}`)}),U(`click`,c,()=>L(Mn,`connect`)),U(`click`,l,fr),K(e,t)},g=e=>{var t=qF(),r=z(t),i=R(r);n(i,()=>`entity`);var a=B(i);N(r);var o=B(r,2),s=e=>{var t=KF();Y(B(R(t),2),16,()=>H(Vn),e=>e,(e,t)=>{var n=GF(),r=R(n,!0);N(n),V(()=>q(r,t)),K(e,n)}),N(t),K(e,t)};J(o,e=>{H(Vn).length&&e(s)});var c=B(o,2),l=R(c);N(c),V(()=>q(a,` Bound ${H(Bn)??``} ${H(Bn)===1?`entity`:`entities`} to your database. Generate app emits a connected API route (driver + DATABASE_URL) for each; the screens now render your real data.`)),U(`click`,l,()=>L(jn,!1)),K(e,t)};J(p,e=>{H(Mn)===`connect`?e(m):H(Mn)===`map`?e(h,1):e(g,-1)});var _=B(p,2),v=e=>{var t=JF(),n=R(t,!0);N(t),V(()=>q(n,H(In))),K(e,t)};J(_,e=>{H(In)&&e(v)}),N(f),N(i),N(r),V(()=>q(u,`· ${H(Mn)===`connect`?`connect`:H(Mn)===`map`?`map tables`:`done`}`)),U(`click`,r,()=>L(jn,!1)),U(`keydown`,r,e=>e.key===`Escape`&&L(jn,!1)),U(`click`,i,e=>e.stopPropagation()),U(`keydown`,i,e=>e.key===`Escape`&&L(jn,!1)),U(`click`,d,()=>L(jn,!1)),K(e,r)};J(sl,e=>{H(jn)&&t.onIntrospectDatabase&&e(cl)}),N(lo),V(()=>{uo=X(lo,1,`sv-studio-shell svelte-psjrav`,null,uo,{"sv-studio-shell--light":H(Ne)===`light`,"sv-studio-shell--dark":H(Ne)===`dark`}),Ui(lo,H(Fe)),Q(po,`aria-expanded`,H(ki)?H(Oi)===`rail`:!H(Di)),ra(go,H(s).title),xo=X(bo,1,`sv-studio__theme-btn svelte-psjrav`,null,xo,{"is-open":H(mt)}),Q(bo,`aria-expanded`,H(mt)),Ui(So,`background: ${H(s).theme?.accent??H(Le)??``}`),q(wo,H(Ie).name),ko.disabled=!H(d),Ao.disabled=!H(f),zo=X(Ro,1,`sv-studio__tb-btn svelte-psjrav`,null,zo,{"is-active":H(ht)}),Q(Ro,`aria-expanded`,H(ht)),Wo=X(Uo,1,`sv-studio__tb-btn svelte-psjrav`,null,Wo,{"is-active":H(Ye)===`load`}),Ko=X(Go,1,`sv-studio__tb-btn svelte-psjrav`,null,Ko,{"is-active":H(Ye)===`save`}),qo.disabled=!H(k),Yo=X(Jo,1,`sv-studio__tb-btn svelte-psjrav`,null,Yo,{"is-active":H(Lt)}),Jo.disabled=!H(M),Xo.disabled=!H(M),os=X(as,1,`sv-studio svelte-psjrav`,null,os,{"is-resizing":H(bi),"is-railcollapsed":H(Di),"drawer-rail":H(Oi)===`rail`,"drawer-insp":H(Oi)===`insp`}),Ui(as,`grid-template-columns: ${H(Ai)??``};`),Rs!==(Rs=H(s).dataSource)&&(Ms.value=(Ms.__value=H(s).dataSource)??``,Wi(Ms,H(s).dataSource)),Ks!==(Ks=H(s).theme?.shell?.style??`sidebar`)&&(Us.value=(Us.__value=H(s).theme?.shell?.style??`sidebar`)??``,Wi(Us,H(s).theme?.shell?.style??`sidebar`)),ra(Xs,H(s).theme?.shell?.brand??``),Q(Xs,`placeholder`,H(s).title),ra(nc,H(s).theme?.shell?.footer??``),lc.disabled=!H(k),q(kc,`${H(s).entities.length??``} ${H(s).entities.length===1?`entity`:`entities`}`),q(jc,`${H(s).screens.length??``} ${H(s).screens.length===1?`screen`:`screens`}`),q(Nc,`${H(k)?.blocks.length??0??``} block${(H(k)?.blocks.length??0)===1?``:`s`}`)}),U(`click`,po,ji),U(`change`,go,e=>p({...H(s),title:e.currentTarget.value})),U(`click`,bo,()=>L(mt,!H(mt))),U(`click`,ko,m),U(`click`,Ao,h),U(`click`,jo,()=>L(ee,!0)),U(`click`,Po,()=>L(Ot,!0)),U(`click`,Ro,()=>L(ht,!H(ht))),U(`click`,Uo,()=>L(Ye,H(Ye)===`load`?`none`:`load`,!0)),U(`click`,Go,()=>L(Ye,H(Ye)===`save`?`none`:`save`,!0)),U(`click`,qo,bt),U(`click`,Jo,()=>L(Lt,!0)),U(`click`,Xo,ui),U(`click`,ds,ji),Ki(Es,()=>H(Je),e=>L(Je,e)),U(`change`,Ms,e=>p(WT(H(s),e.currentTarget.value))),U(`change`,Us,e=>p(ZT(H(s),{style:e.currentTarget.value}))),U(`change`,Xs,e=>p(ZT(H(s),{brand:e.currentTarget.value}))),U(`change`,nc,e=>p(ZT(H(s),{footer:e.currentTarget.value}))),U(`pointerdown`,rc,e=>wi(`rail`,e)),U(`pointermove`,rc,Ti),U(`pointerup`,rc,Ei),pa(cc,a),U(`click`,lc,bt),U(`pointerdown`,pc,e=>wi(`insp`,e)),U(`pointermove`,pc,Ti),U(`pointerup`,pc,Ei),K(e,lo),Qe()}Yr([`click`,`keydown`,`input`,`change`,`pointerdown`,`pointermove`,`pointerup`]),Yr([`click`,`change`]);var QF=W(`<div class="boot boot--error svelte-1na1vxa"><strong>Could not reach the designer server.</strong> <p> </p> <button type="button" class="svelte-1na1vxa">Retry</button></div>`),$F=W(`<button type="button" class="save-badge is-error svelte-1na1vxa">Save failed - retry</button>`),eI=W(`<div> </div>`),tI=W(`<div class="app svelte-1na1vxa"><!> <!></div>`),nI=W(`<div class="boot svelte-1na1vxa">Loading the designer…</div>`);function rI(e,t){Ze(t,!0);let n=I(null),r=I(null),i=I(`loading`),a=I(null);async function o(){try{let e=await fetch(`/api/project`);if(!e.ok)throw Error(`GET /api/project -> ${e.status}`);L(n,rE(await e.text()),!0),L(i,`ready`)}catch(e){L(r,e instanceof Error?e.message:String(e),!0)}}o();let s=null,c=null;function l(e){L(n,e,!0),L(i,`saving`),s&&clearTimeout(s),s=setTimeout(u,400)}async function u(){if(H(n)){c&&=(clearTimeout(c),null),L(i,`saving`);try{let e=await fetch(`/api/project`,{method:`POST`,headers:{"content-type":`application/json`},body:nE(H(n))});if(!e.ok)throw Error(`POST /api/project -> ${e.status}`);L(a,null),L(i,`saved`),setTimeout(()=>{H(i)===`saved`&&L(i,`ready`)},1200)}catch(e){L(a,e instanceof Error?e.message:String(e),!0),L(i,`error`),c&&clearTimeout(c),c=setTimeout(u,4e3)}}}async function d(e){let t=await fetch(`/api/generate`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({files:e})});if(!t.ok)throw Error(`POST /api/generate -> ${t.status}`)}async function f(e){let t=await fetch(`/api/introspect`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}),n=await t.json();if(!t.ok){let e=Error(n?.error||`POST /api/introspect -> ${t.status}`);throw e.missingDriver=!!n?.missingDriver,e.driver=n?.driver,e}return n}async function p(e){return(await fetch(`/api/install-driver`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({dialect:e})})).json()}var m=ii(),h=z(m),g=e=>{var t=QF(),n=B(R(t),2),a=R(n,!0);N(n);var s=B(n,2);N(t),V(()=>q(a,H(r))),U(`click`,s,()=>{L(r,null),L(i,`loading`),o()}),K(e,t)},_=e=>{var t=tI(),r=R(t);ZF(r,{get project(){return H(n)},onChange:l,onWriteToDisk:d,onIntrospectDatabase:f,onInstallDriver:p});var o=B(r,2),s=e=>{var t=$F();V(()=>Q(t,`title`,H(a)??`Save failed`)),U(`click`,t,u),K(e,t)},c=e=>{var t=eI();let n;var r=R(t,!0);N(t),V(()=>{n=X(t,1,`save-badge svelte-1na1vxa`,null,n,{"is-live":H(i)===`saving`||H(i)===`saved`}),q(r,H(i)===`saving`?`Saving…`:H(i)===`saved`?`Saved to disk ✓`:`Auto-save on`)}),K(e,t)};J(o,e=>{H(i)===`error`?e(s):e(c,-1)}),N(t),K(e,t)},v=e=>{K(e,nI())};J(h,e=>{H(r)?e(g):H(n)?e(_,1):e(v,-1)}),K(e,m),Qe()}Yr([`click`]),oi(rI,{target:document.getElementById(`app`)});export{l as n,o as t};
|