db-studio 1.5.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ import{j as r,Y as rr,Z as ar,_ as or,$ as En,a0 as On,a1 as Mn}from"./radix-ui-c-7GrHMM.js";import{c as z,z as dn,B as W,P as Le,A as gt,E as $e,S as he,a as me,b as ge,d as xe,e as I,C as A,F as Tn,r as de,G as ir,L as ie,I as ae,H as De,f as st,g as rt,q as _n,J as He,t as Ae,K as lr,M as cr,N as at,O as se,D as Kt,h as Vt,i as Ut,k as Ce,Q as dr,R as Lt,U as ur,V as Rn,j as fr,l as hr,W as It,u as mr,X as gr}from"./index-CJ0NUCyi.js";import{u as P,p as Be}from"./index-CVuaUgmF.js";import{a as D,r as g,y as An,f as Wn,e as $t,z as xr,L as zn,H as Tt,v as Fn,J as Yn,X as xt,K as pr,M as br,A as yr,l as Cr,N as wr,d as vr,Q as Sr,U as kr,n as jr,V as Nr}from"./icons-B2mES2Qq.js";import{S as Dr,K as je,A as Pn,a as In,b as Bn,c as Kn,d as Vn,e as Un,f as Ln,g as $n,h as Ke}from"./scroll-area-BqJhlKZJ.js";import{c as Qe,T as Me,a as Te,b as _e}from"./tooltip-BoaJ5LJp.js";import{u as Er,k as Hn,m as qn,n as tt,a as pt,b as bt,o as Jn,p as Or}from"./tanstack-BaWakKkc.js";import{f as Mr}from"./format-cell-value-Cn3RA9a1.js";import{D as Tr,a as _r,b as Rr,c as Ar,d as Wr,e as zr}from"./dialog-jogVSiaL.js";import{u as Fr}from"./use-delete-column-Bg30Zigo.js";import"./react-dom-BcUZDRtY.js";import"./monaco-editor-BMj4E99D.js";function ke({className:e,...t}){return r.jsx("textarea",{"data-slot":"textarea",className:z("border-input bg-input/20 dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 resize-none rounded-sm border px-2 py-2 text-sm transition-colors focus-visible:ring-[2px] aria-invalid:ring-[2px] md:text-xs/relaxed placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t})}const Gn=6048e5,Yr=864e5,un=Symbol.for("constructDateFrom");function q(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&un in e?e[un](t):e instanceof Date?new e.constructor(t):new Date(t)}function L(e,t){return q(t||e,e)}function mt(e,t,n){const s=L(e,n?.in);return isNaN(t)?q(e,NaN):(t&&s.setDate(s.getDate()+t),s)}function Qn(e,t,n){const s=L(e,n?.in);if(isNaN(t))return q(e,NaN);if(!t)return s;const a=s.getDate(),i=q(e,s.getTime());i.setMonth(s.getMonth()+t+1,0);const c=i.getDate();return a>=c?i:(s.setFullYear(i.getFullYear(),i.getMonth(),a),s)}let Pr={};function ot(){return Pr}function Ve(e,t){const n=ot(),s=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=L(e,t?.in),i=a.getDay(),c=(i<s?7:0)+i-s;return a.setDate(a.getDate()-c),a.setHours(0,0,0,0),a}function nt(e,t){return Ve(e,{...t,weekStartsOn:1})}function Xn(e,t){const n=L(e,t?.in),s=n.getFullYear(),a=q(n,0);a.setFullYear(s+1,0,4),a.setHours(0,0,0,0);const i=nt(a),c=q(n,0);c.setFullYear(s,0,4),c.setHours(0,0,0,0);const o=nt(c);return n.getTime()>=i.getTime()?s+1:n.getTime()>=o.getTime()?s:s-1}function fn(e){const t=L(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function qe(e,...t){const n=q.bind(null,t.find(s=>typeof s=="object"));return t.map(n)}function Ue(e,t){const n=L(e,t?.in);return n.setHours(0,0,0,0),n}function Ht(e,t,n){const[s,a]=qe(n?.in,e,t),i=Ue(s),c=Ue(a),o=+i-fn(i),l=+c-fn(c);return Math.round((o-l)/Yr)}function Ir(e,t){const n=Xn(e,t),s=q(e,0);return s.setFullYear(n,0,4),s.setHours(0,0,0,0),nt(s)}function Br(e,t,n){return mt(e,t*7,n)}function Kr(e,t,n){return Qn(e,t*12,n)}function Vr(e,t){let n,s=t?.in;return e.forEach(a=>{!s&&typeof a=="object"&&(s=q.bind(null,a));const i=L(a,s);(!n||n<i||isNaN(+i))&&(n=i)}),q(s,n||NaN)}function Ur(e,t){let n,s=t?.in;return e.forEach(a=>{!s&&typeof a=="object"&&(s=q.bind(null,a));const i=L(a,s);(!n||n>i||isNaN(+i))&&(n=i)}),q(s,n||NaN)}function Lr(e,t,n){const[s,a]=qe(n?.in,e,t);return+Ue(s)==+Ue(a)}function Zn(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function $r(e){return!(!Zn(e)&&typeof e!="number"||isNaN(+L(e)))}function es(e,t,n){const[s,a]=qe(n?.in,e,t),i=s.getFullYear()-a.getFullYear(),c=s.getMonth()-a.getMonth();return i*12+c}function Hr(e,t){const n=L(e,t?.in),s=n.getMonth();return n.setFullYear(n.getFullYear(),s+1,0),n.setHours(23,59,59,999),n}function ts(e,t){const[n,s]=qe(e,t.start,t.end);return{start:n,end:s}}function qr(e,t){const{start:n,end:s}=ts(t?.in,e);let a=+n>+s;const i=a?+n:+s,c=a?s:n;c.setHours(0,0,0,0),c.setDate(1);let o=1;const l=[];for(;+c<=i;)l.push(q(n,c)),c.setMonth(c.getMonth()+o);return a?l.reverse():l}function Jr(e,t){const n=L(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Gr(e,t){const n=L(e,t?.in),s=n.getFullYear();return n.setFullYear(s+1,0,0),n.setHours(23,59,59,999),n}function ns(e,t){const n=L(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Qr(e,t){const{start:n,end:s}=ts(t?.in,e);let a=+n>+s;const i=a?+n:+s,c=a?s:n;c.setHours(0,0,0,0),c.setMonth(0,1);let o=1;const l=[];for(;+c<=i;)l.push(q(n,c)),c.setFullYear(c.getFullYear()+o);return a?l.reverse():l}function ss(e,t){const n=ot(),s=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=L(e,t?.in),i=a.getDay(),c=(i<s?-7:0)+6-(i-s);return a.setDate(a.getDate()+c),a.setHours(23,59,59,999),a}function Xr(e,t){return ss(e,{...t,weekStartsOn:1})}const Zr={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},ea=(e,t,n)=>{let s;const a=Zr[e];return typeof a=="string"?s=a:t===1?s=a.one:s=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+s:s+" ago":s};function _t(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const ta={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},na={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},sa={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ra={date:_t({formats:ta,defaultWidth:"full"}),time:_t({formats:na,defaultWidth:"full"}),dateTime:_t({formats:sa,defaultWidth:"full"})},aa={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},oa=(e,t,n,s)=>aa[e];function Xe(e){return(t,n)=>{const s=n?.context?String(n.context):"standalone";let a;if(s==="formatting"&&e.formattingValues){const c=e.defaultFormattingWidth||e.defaultWidth,o=n?.width?String(n.width):c;a=e.formattingValues[o]||e.formattingValues[c]}else{const c=e.defaultWidth,o=n?.width?String(n.width):e.defaultWidth;a=e.values[o]||e.values[c]}const i=e.argumentCallback?e.argumentCallback(t):t;return a[i]}}const ia={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},la={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ca={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},da={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},ua={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},fa={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ha=(e,t)=>{const n=Number(e),s=n%100;if(s>20||s<10)switch(s%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},ma={ordinalNumber:ha,era:Xe({values:ia,defaultWidth:"wide"}),quarter:Xe({values:la,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Xe({values:ca,defaultWidth:"wide"}),day:Xe({values:da,defaultWidth:"wide"}),dayPeriod:Xe({values:ua,defaultWidth:"wide",formattingValues:fa,defaultFormattingWidth:"wide"})};function Ze(e){return(t,n={})=>{const s=n.width,a=s&&e.matchPatterns[s]||e.matchPatterns[e.defaultMatchWidth],i=t.match(a);if(!i)return null;const c=i[0],o=s&&e.parsePatterns[s]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(o)?xa(o,u=>u.test(c)):ga(o,u=>u.test(c));let d;d=e.valueCallback?e.valueCallback(l):l,d=n.valueCallback?n.valueCallback(d):d;const f=t.slice(c.length);return{value:d,rest:f}}}function ga(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function xa(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function pa(e){return(t,n={})=>{const s=t.match(e.matchPattern);if(!s)return null;const a=s[0],i=t.match(e.parsePattern);if(!i)return null;let c=e.valueCallback?e.valueCallback(i[0]):i[0];c=n.valueCallback?n.valueCallback(c):c;const o=t.slice(a.length);return{value:c,rest:o}}}const ba=/^(\d+)(th|st|nd|rd)?/i,ya=/\d+/i,Ca={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},wa={any:[/^b/i,/^(a|c)/i]},va={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Sa={any:[/1/i,/2/i,/3/i,/4/i]},ka={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ja={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Na={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Da={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Ea={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Oa={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ma={ordinalNumber:pa({matchPattern:ba,parsePattern:ya,valueCallback:e=>parseInt(e,10)}),era:Ze({matchPatterns:Ca,defaultMatchWidth:"wide",parsePatterns:wa,defaultParseWidth:"any"}),quarter:Ze({matchPatterns:va,defaultMatchWidth:"wide",parsePatterns:Sa,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ze({matchPatterns:ka,defaultMatchWidth:"wide",parsePatterns:ja,defaultParseWidth:"any"}),day:Ze({matchPatterns:Na,defaultMatchWidth:"wide",parsePatterns:Da,defaultParseWidth:"any"}),dayPeriod:Ze({matchPatterns:Ea,defaultMatchWidth:"any",parsePatterns:Oa,defaultParseWidth:"any"})},Ie={code:"en-US",formatDistance:ea,formatLong:ra,formatRelative:oa,localize:ma,match:Ma,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ta(e,t){const n=L(e,t?.in);return Ht(n,ns(n))+1}function qt(e,t){const n=L(e,t?.in),s=+nt(n)-+Ir(n);return Math.round(s/Gn)+1}function rs(e,t){const n=L(e,t?.in),s=n.getFullYear(),a=ot(),i=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=q(t?.in||e,0);c.setFullYear(s+1,0,i),c.setHours(0,0,0,0);const o=Ve(c,t),l=q(t?.in||e,0);l.setFullYear(s,0,i),l.setHours(0,0,0,0);const d=Ve(l,t);return+n>=+o?s+1:+n>=+d?s:s-1}function _a(e,t){const n=ot(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=rs(e,t),i=q(t?.in||e,0);return i.setFullYear(a,0,s),i.setHours(0,0,0,0),Ve(i,t)}function Jt(e,t){const n=L(e,t?.in),s=+Ve(n,t)-+_a(n,t);return Math.round(s/Gn)+1}function U(e,t){const n=e<0?"-":"",s=Math.abs(e).toString().padStart(t,"0");return n+s}const Ne={y(e,t){const n=e.getFullYear(),s=n>0?n:1-n;return U(t==="yy"?s%100:s,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):U(n+1,2)},d(e,t){return U(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return U(e.getHours()%12||12,t.length)},H(e,t){return U(e.getHours(),t.length)},m(e,t){return U(e.getMinutes(),t.length)},s(e,t){return U(e.getSeconds(),t.length)},S(e,t){const n=t.length,s=e.getMilliseconds(),a=Math.trunc(s*Math.pow(10,n-3));return U(a,t.length)}},Ye={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},hn={G:function(e,t,n){const s=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(s,{width:"abbreviated"});case"GGGGG":return n.era(s,{width:"narrow"});default:return n.era(s,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const s=e.getFullYear(),a=s>0?s:1-s;return n.ordinalNumber(a,{unit:"year"})}return Ne.y(e,t)},Y:function(e,t,n,s){const a=rs(e,s),i=a>0?a:1-a;if(t==="YY"){const c=i%100;return U(c,2)}return t==="Yo"?n.ordinalNumber(i,{unit:"year"}):U(i,t.length)},R:function(e,t){const n=Xn(e);return U(n,t.length)},u:function(e,t){const n=e.getFullYear();return U(n,t.length)},Q:function(e,t,n){const s=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(s);case"QQ":return U(s,2);case"Qo":return n.ordinalNumber(s,{unit:"quarter"});case"QQQ":return n.quarter(s,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(s,{width:"narrow",context:"formatting"});default:return n.quarter(s,{width:"wide",context:"formatting"})}},q:function(e,t,n){const s=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(s);case"qq":return U(s,2);case"qo":return n.ordinalNumber(s,{unit:"quarter"});case"qqq":return n.quarter(s,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(s,{width:"narrow",context:"standalone"});default:return n.quarter(s,{width:"wide",context:"standalone"})}},M:function(e,t,n){const s=e.getMonth();switch(t){case"M":case"MM":return Ne.M(e,t);case"Mo":return n.ordinalNumber(s+1,{unit:"month"});case"MMM":return n.month(s,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(s,{width:"narrow",context:"formatting"});default:return n.month(s,{width:"wide",context:"formatting"})}},L:function(e,t,n){const s=e.getMonth();switch(t){case"L":return String(s+1);case"LL":return U(s+1,2);case"Lo":return n.ordinalNumber(s+1,{unit:"month"});case"LLL":return n.month(s,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(s,{width:"narrow",context:"standalone"});default:return n.month(s,{width:"wide",context:"standalone"})}},w:function(e,t,n,s){const a=Jt(e,s);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):U(a,t.length)},I:function(e,t,n){const s=qt(e);return t==="Io"?n.ordinalNumber(s,{unit:"week"}):U(s,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Ne.d(e,t)},D:function(e,t,n){const s=Ta(e);return t==="Do"?n.ordinalNumber(s,{unit:"dayOfYear"}):U(s,t.length)},E:function(e,t,n){const s=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(s,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(s,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(s,{width:"short",context:"formatting"});default:return n.day(s,{width:"wide",context:"formatting"})}},e:function(e,t,n,s){const a=e.getDay(),i=(a-s.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return U(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,s){const a=e.getDay(),i=(a-s.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return U(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const s=e.getDay(),a=s===0?7:s;switch(t){case"i":return String(a);case"ii":return U(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(s,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(s,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(s,{width:"short",context:"formatting"});default:return n.day(s,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const s=e.getHours();let a;switch(s===12?a=Ye.noon:s===0?a=Ye.midnight:a=s/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const s=e.getHours();let a;switch(s>=17?a=Ye.evening:s>=12?a=Ye.afternoon:s>=4?a=Ye.morning:a=Ye.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let s=e.getHours()%12;return s===0&&(s=12),n.ordinalNumber(s,{unit:"hour"})}return Ne.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Ne.H(e,t)},K:function(e,t,n){const s=e.getHours()%12;return t==="Ko"?n.ordinalNumber(s,{unit:"hour"}):U(s,t.length)},k:function(e,t,n){let s=e.getHours();return s===0&&(s=24),t==="ko"?n.ordinalNumber(s,{unit:"hour"}):U(s,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Ne.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Ne.s(e,t)},S:function(e,t){return Ne.S(e,t)},X:function(e,t,n){const s=e.getTimezoneOffset();if(s===0)return"Z";switch(t){case"X":return gn(s);case"XXXX":case"XX":return Ee(s);default:return Ee(s,":")}},x:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"x":return gn(s);case"xxxx":case"xx":return Ee(s);default:return Ee(s,":")}},O:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+mn(s,":");default:return"GMT"+Ee(s,":")}},z:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+mn(s,":");default:return"GMT"+Ee(s,":")}},t:function(e,t,n){const s=Math.trunc(+e/1e3);return U(s,t.length)},T:function(e,t,n){return U(+e,t.length)}};function mn(e,t=""){const n=e>0?"-":"+",s=Math.abs(e),a=Math.trunc(s/60),i=s%60;return i===0?n+String(a):n+String(a)+t+U(i,2)}function gn(e,t){return e%60===0?(e>0?"-":"+")+U(Math.abs(e)/60,2):Ee(e,t)}function Ee(e,t=""){const n=e>0?"-":"+",s=Math.abs(e),a=U(Math.trunc(s/60),2),i=U(s%60,2);return n+a+t+i}const xn=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},as=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ra=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],s=n[1],a=n[2];if(!a)return xn(e,t);let i;switch(s){case"P":i=t.dateTime({width:"short"});break;case"PP":i=t.dateTime({width:"medium"});break;case"PPP":i=t.dateTime({width:"long"});break;default:i=t.dateTime({width:"full"});break}return i.replace("{{date}}",xn(s,t)).replace("{{time}}",as(a,t))},Aa={p:as,P:Ra},Wa=/^D+$/,za=/^Y+$/,Fa=["D","DD","YY","YYYY"];function Ya(e){return Wa.test(e)}function Pa(e){return za.test(e)}function Ia(e,t,n){const s=Ba(e,t,n);if(console.warn(s),Fa.includes(e))throw new RangeError(s)}function Ba(e,t,n){const s=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${s} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Ka=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Va=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ua=/^'([^]*?)'?$/,La=/''/g,$a=/[a-zA-Z]/;function we(e,t,n){const s=ot(),a=n?.locale??s.locale??Ie,i=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,c=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,o=L(e,n?.in);if(!$r(o))throw new RangeError("Invalid time value");let l=t.match(Va).map(f=>{const u=f[0];if(u==="p"||u==="P"){const h=Aa[u];return h(f,a.formatLong)}return f}).join("").match(Ka).map(f=>{if(f==="''")return{isToken:!1,value:"'"};const u=f[0];if(u==="'")return{isToken:!1,value:Ha(f)};if(hn[u])return{isToken:!0,value:f};if(u.match($a))throw new RangeError("Format string contains an unescaped latin alphabet character `"+u+"`");return{isToken:!1,value:f}});a.localize.preprocessor&&(l=a.localize.preprocessor(o,l));const d={firstWeekContainsDate:i,weekStartsOn:c,locale:a};return l.map(f=>{if(!f.isToken)return f.value;const u=f.value;(!n?.useAdditionalWeekYearTokens&&Pa(u)||!n?.useAdditionalDayOfYearTokens&&Ya(u))&&Ia(u,t,String(e));const h=hn[u[0]];return h(o,u,a.localize,d)}).join("")}function Ha(e){const t=e.match(Ua);return t?t[1].replace(La,"'"):e}function qa(e,t){const n=L(e,t?.in),s=n.getFullYear(),a=n.getMonth(),i=q(n,0);return i.setFullYear(s,a+1,0),i.setHours(0,0,0,0),i.getDate()}function Ja(e,t){return L(e,t?.in).getMonth()}function Ga(e,t){return L(e,t?.in).getFullYear()}function Qa(e,t){return+L(e)>+L(t)}function Xa(e,t){return+L(e)<+L(t)}function Za(e,t,n){const[s,a]=qe(n?.in,e,t);return s.getFullYear()===a.getFullYear()&&s.getMonth()===a.getMonth()}function eo(e,t,n){const[s,a]=qe(n?.in,e,t);return s.getFullYear()===a.getFullYear()}function to(e,t,n){const s=L(e,n?.in),a=s.getFullYear(),i=s.getDate(),c=q(e,0);c.setFullYear(a,t,15),c.setHours(0,0,0,0);const o=qa(c);return s.setMonth(t,Math.min(i,o)),s}function no(e,t,n){const s=L(e,n?.in);return isNaN(+s)?q(e,NaN):(s.setFullYear(t),s)}function so(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const ro={},et={};function Re(e,t){try{const s=(ro[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return s in et?et[s]:pn(s,s.split(":"))}catch{if(e in et)return et[e];const n=e?.match(ao);return n?pn(e,n.slice(1)):NaN}}const ao=/([+-]\d\d):?(\d\d)?/;function pn(e,t){const n=+(t[0]||0),s=+(t[1]||0),a=+(t[2]||0)/60;return et[e]=n*60+s>0?n*60+s+a:n*60-s-a}class fe extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Re(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),os(this),Bt(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new fe(...n,t):new fe(Date.now(),t)}withTimeZone(t){return new fe(+this,t)}getTimezoneOffset(){const t=-Re(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),Bt(this),+this}[Symbol.for("constructDateFrom")](t){return new fe(+new Date(t),this.timeZone)}}const bn=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!bn.test(e))return;const t=e.replace(bn,"$1UTC");fe.prototype[t]&&(e.startsWith("get")?fe.prototype[e]=function(){return this.internal[t]()}:(fe.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),oo(this),+this},fe.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),Bt(this),+this}))});function Bt(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Re(e.timeZone,e)*60))}function oo(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),os(e)}function os(e){const t=Re(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),s=new Date(+e);s.setUTCHours(s.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),i=-new Date(+s).getTimezoneOffset(),c=a-i,o=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();c&&o&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+c);const l=a-n;l&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+l);const d=new Date(+e);d.setUTCSeconds(0);const f=a>0?d.getSeconds():(d.getSeconds()-60)%60,u=Math.round(-(Re(e.timeZone,e)*60))%60;(u||f)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+u),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+u+f));const h=Re(e.timeZone,e),b=h>0?Math.floor(h):Math.ceil(h),k=-new Date(+e).getTimezoneOffset()-b,S=b!==n,w=k-l;if(S&&w){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+w);const y=Re(e.timeZone,e),x=y>0?Math.floor(y):Math.ceil(y),m=b-x;m&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+m),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+m))}}class X extends fe{static tz(t,...n){return n.length?new X(...n,t):new X(Date.now(),t)}toISOString(){const[t,n,s]=this.tzComponents(),a=`${t}${n}:${s}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,s,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${s} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,s,a]=this.tzComponents();return`${t} GMT${n}${s}${a} (${so(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",s=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,s,a]}withTimeZone(t){return new X(+this,t)}[Symbol.for("constructDateFrom")](t){return new X(+new Date(t),this.timeZone)}}const yn=5,io=4;function lo(e,t){const n=t.startOfMonth(e),s=n.getDay()>0?n.getDay():7,a=t.addDays(e,-s+1),i=t.addDays(a,yn*7-1);return t.getMonth(e)===t.getMonth(i)?yn:io}function is(e,t){const n=t.startOfMonth(e),s=n.getDay();return s===1?n:s===0?t.addDays(n,-6):t.addDays(n,-1*(s-1))}function co(e,t){const n=is(e,t),s=lo(e,t);return t.addDays(n,s*7-1)}const ls={...Ie,labels:{labelDayButton:(e,t,n,s)=>{let a;s&&typeof s.format=="function"?a=s.format.bind(s):a=(c,o)=>we(c,o,{locale:Ie,...n});let i=a(e,"PPPP");return t.today&&(i=`Today, ${i}`),t.selected&&(i=`${i}, selected`),i},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:"Choose the Year",labelGrid:(e,t,n)=>{let s;return n&&typeof n.format=="function"?s=n.format.bind(n):s=(a,i)=>we(a,i,{locale:Ie,...t}),s(e,"LLLL yyyy")},labelGridcell:(e,t,n,s)=>{let a;s&&typeof s.format=="function"?a=s.format.bind(s):a=(c,o)=>we(c,o,{locale:Ie,...n});let i=a(e,"PPPP");return t?.today&&(i=`Today, ${i}`),i},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(e,t,n)=>{let s;return n&&typeof n.format=="function"?s=n.format.bind(n):s=(a,i)=>we(a,i,{locale:Ie,...t}),s(e,"cccc")}}};class re{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?X.tz(this.options.timeZone):new this.Date,this.newDate=(s,a,i)=>this.overrides?.newDate?this.overrides.newDate(s,a,i):this.options.timeZone?new X(s,a,i,this.options.timeZone):new Date(s,a,i),this.addDays=(s,a)=>this.overrides?.addDays?this.overrides.addDays(s,a):mt(s,a),this.addMonths=(s,a)=>this.overrides?.addMonths?this.overrides.addMonths(s,a):Qn(s,a),this.addWeeks=(s,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(s,a):Br(s,a),this.addYears=(s,a)=>this.overrides?.addYears?this.overrides.addYears(s,a):Kr(s,a),this.differenceInCalendarDays=(s,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(s,a):Ht(s,a),this.differenceInCalendarMonths=(s,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(s,a):es(s,a),this.eachMonthOfInterval=s=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(s):qr(s),this.eachYearOfInterval=s=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(s):Qr(s),i=new Set(a.map(o=>this.getYear(o)));if(i.size===a.length)return a;const c=[];return i.forEach(o=>{c.push(new Date(o,0,1))}),c},this.endOfBroadcastWeek=s=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(s):co(s,this),this.endOfISOWeek=s=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(s):Xr(s),this.endOfMonth=s=>this.overrides?.endOfMonth?this.overrides.endOfMonth(s):Hr(s),this.endOfWeek=(s,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(s,a):ss(s,this.options),this.endOfYear=s=>this.overrides?.endOfYear?this.overrides.endOfYear(s):Gr(s),this.format=(s,a,i)=>{const c=this.overrides?.format?this.overrides.format(s,a,this.options):we(s,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(c):c},this.getISOWeek=s=>this.overrides?.getISOWeek?this.overrides.getISOWeek(s):qt(s),this.getMonth=(s,a)=>this.overrides?.getMonth?this.overrides.getMonth(s,this.options):Ja(s,this.options),this.getYear=(s,a)=>this.overrides?.getYear?this.overrides.getYear(s,this.options):Ga(s,this.options),this.getWeek=(s,a)=>this.overrides?.getWeek?this.overrides.getWeek(s,this.options):Jt(s,this.options),this.isAfter=(s,a)=>this.overrides?.isAfter?this.overrides.isAfter(s,a):Qa(s,a),this.isBefore=(s,a)=>this.overrides?.isBefore?this.overrides.isBefore(s,a):Xa(s,a),this.isDate=s=>this.overrides?.isDate?this.overrides.isDate(s):Zn(s),this.isSameDay=(s,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(s,a):Lr(s,a),this.isSameMonth=(s,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(s,a):Za(s,a),this.isSameYear=(s,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(s,a):eo(s,a),this.max=s=>this.overrides?.max?this.overrides.max(s):Vr(s),this.min=s=>this.overrides?.min?this.overrides.min(s):Ur(s),this.setMonth=(s,a)=>this.overrides?.setMonth?this.overrides.setMonth(s,a):to(s,a),this.setYear=(s,a)=>this.overrides?.setYear?this.overrides.setYear(s,a):no(s,a),this.startOfBroadcastWeek=(s,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(s,this):is(s,this),this.startOfDay=s=>this.overrides?.startOfDay?this.overrides.startOfDay(s):Ue(s),this.startOfISOWeek=s=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(s):nt(s),this.startOfMonth=s=>this.overrides?.startOfMonth?this.overrides.startOfMonth(s):Jr(s),this.startOfWeek=(s,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(s,this.options):Ve(s,this.options),this.startOfYear=s=>this.overrides?.startOfYear?this.overrides.startOfYear(s):ns(s),this.options={locale:ls,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),s={};for(let a=0;a<10;a++)s[a.toString()]=n.format(a);return s}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,s=>n[s]||s)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&re.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:s,numerals:a}=this.options,i=n?.code;if(i&&re.yearFirstLocales.has(i))try{return new Intl.DateTimeFormat(i,{month:"long",year:"numeric",timeZone:s,numberingSystem:a}).format(t)}catch{}const c=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,c)}}re.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const pe=new re;class cs{constructor(t,n,s=pe){this.date=t,this.displayMonth=n,this.outside=!!(n&&!s.isSameMonth(t,n)),this.dateLib=s,this.isoDate=s.format(t,"yyyy-MM-dd"),this.displayMonthId=s.format(n,"yyyy-MM"),this.dateMonthId=s.format(t,"yyyy-MM")}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class uo{constructor(t,n){this.date=t,this.weeks=n}}class fo{constructor(t,n){this.days=n,this.weekNumber=t}}function ho(e){return D.createElement("button",{...e})}function mo(e){return D.createElement("span",{...e})}function go(e){const{size:t=24,orientation:n="left",className:s}=e;return D.createElement("svg",{className:s,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&D.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&D.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&D.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&D.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function xo(e){const{day:t,modifiers:n,...s}=e;return D.createElement("td",{...s})}function po(e){const{day:t,modifiers:n,...s}=e,a=D.useRef(null);return D.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),D.createElement("button",{ref:a,...s})}var T;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(T||(T={}));var $;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})($||($={}));var ce;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(ce||(ce={}));var ne;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(ne||(ne={}));function bo(e){const{options:t,className:n,components:s,classNames:a,...i}=e,c=[a[T.Dropdown],n].join(" "),o=t?.find(({value:l})=>l===i.value);return D.createElement("span",{"data-disabled":i.disabled,className:a[T.DropdownRoot]},D.createElement(s.Select,{className:c,...i},t?.map(({value:l,label:d,disabled:f})=>D.createElement(s.Option,{key:l,value:l,disabled:f},d))),D.createElement("span",{className:a[T.CaptionLabel],"aria-hidden":!0},o?.label,D.createElement(s.Chevron,{orientation:"down",size:18,className:a[T.Chevron]})))}function yo(e){return D.createElement("div",{...e})}function Co(e){return D.createElement("div",{...e})}function wo(e){const{calendarMonth:t,displayIndex:n,...s}=e;return D.createElement("div",{...s},e.children)}function vo(e){const{calendarMonth:t,displayIndex:n,...s}=e;return D.createElement("div",{...s})}function So(e){return D.createElement("table",{...e})}function ko(e){return D.createElement("div",{...e})}const ds=g.createContext(void 0);function it(){const e=g.useContext(ds);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function jo(e){const{components:t}=it();return D.createElement(t.Dropdown,{...e})}function No(e){const{onPreviousClick:t,onNextClick:n,previousMonth:s,nextMonth:a,...i}=e,{components:c,classNames:o,labels:{labelPrevious:l,labelNext:d}}=it(),f=g.useCallback(h=>{a&&n?.(h)},[a,n]),u=g.useCallback(h=>{s&&t?.(h)},[s,t]);return D.createElement("nav",{...i},D.createElement(c.PreviousMonthButton,{type:"button",className:o[T.PreviousMonthButton],tabIndex:s?void 0:-1,"aria-disabled":s?void 0:!0,"aria-label":l(s),onClick:u},D.createElement(c.Chevron,{disabled:s?void 0:!0,className:o[T.Chevron],orientation:"left"})),D.createElement(c.NextMonthButton,{type:"button",className:o[T.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":d(a),onClick:f},D.createElement(c.Chevron,{disabled:a?void 0:!0,orientation:"right",className:o[T.Chevron]})))}function Do(e){const{components:t}=it();return D.createElement(t.Button,{...e})}function Eo(e){return D.createElement("option",{...e})}function Oo(e){const{components:t}=it();return D.createElement(t.Button,{...e})}function Mo(e){const{rootRef:t,...n}=e;return D.createElement("div",{...n,ref:t})}function To(e){return D.createElement("select",{...e})}function _o(e){const{week:t,...n}=e;return D.createElement("tr",{...n})}function Ro(e){return D.createElement("th",{...e})}function Ao(e){return D.createElement("thead",{"aria-hidden":!0},D.createElement("tr",{...e}))}function Wo(e){const{week:t,...n}=e;return D.createElement("th",{...n})}function zo(e){return D.createElement("th",{...e})}function Fo(e){return D.createElement("tbody",{...e})}function Yo(e){const{components:t}=it();return D.createElement(t.Dropdown,{...e})}const Po=Object.freeze(Object.defineProperty({__proto__:null,Button:ho,CaptionLabel:mo,Chevron:go,Day:xo,DayButton:po,Dropdown:bo,DropdownNav:yo,Footer:Co,Month:wo,MonthCaption:vo,MonthGrid:So,Months:ko,MonthsDropdown:jo,Nav:No,NextMonthButton:Do,Option:Eo,PreviousMonthButton:Oo,Root:Mo,Select:To,Week:_o,WeekNumber:Wo,WeekNumberHeader:zo,Weekday:Ro,Weekdays:Ao,Weeks:Fo,YearsDropdown:Yo},Symbol.toStringTag,{value:"Module"}));function ve(e,t,n=!1,s=pe){let{from:a,to:i}=e;const{differenceInCalendarDays:c,isSameDay:o}=s;return a&&i?(c(i,a)<0&&([a,i]=[i,a]),c(t,a)>=(n?1:0)&&c(i,t)>=(n?1:0)):!n&&i?o(i,t):!n&&a?o(a,t):!1}function Gt(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function yt(e){return!!(e&&typeof e=="object"&&"from"in e)}function Qt(e){return!!(e&&typeof e=="object"&&"after"in e)}function Xt(e){return!!(e&&typeof e=="object"&&"before"in e)}function us(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function fs(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Se(e,t,n=pe){const s=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:i,isAfter:c}=n;return s.some(o=>{if(typeof o=="boolean")return o;if(n.isDate(o))return a(e,o);if(fs(o,n))return o.some(l=>a(e,l));if(yt(o))return ve(o,e,!1,n);if(us(o))return Array.isArray(o.dayOfWeek)?o.dayOfWeek.includes(e.getDay()):o.dayOfWeek===e.getDay();if(Gt(o)){const l=i(o.before,e),d=i(o.after,e),f=l>0,u=d<0;return c(o.before,o.after)?u&&f:f||u}return Qt(o)?i(e,o.after)>0:Xt(o)?i(o.before,e)>0:typeof o=="function"?o(e):!1})}function Io(e,t,n,s,a){const{disabled:i,hidden:c,modifiers:o,showOutsideDays:l,broadcastCalendar:d,today:f=a.today()}=t,{isSameDay:u,isSameMonth:h,startOfMonth:b,isBefore:v,endOfMonth:k,isAfter:S}=a,w=n&&b(n),y=s&&k(s),x={[$.focused]:[],[$.outside]:[],[$.disabled]:[],[$.hidden]:[],[$.today]:[]},m={};for(const p of e){const{date:C,displayMonth:j}=p,E=!!(j&&!h(C,j)),N=!!(w&&v(C,w)),O=!!(y&&S(C,y)),R=!!(i&&Se(C,i,a)),H=!!(c&&Se(C,c,a))||N||O||!d&&!l&&E||d&&l===!1&&E,G=u(C,f);E&&x.outside.push(p),R&&x.disabled.push(p),H&&x.hidden.push(p),G&&x.today.push(p),o&&Object.keys(o).forEach(J=>{const _=o?.[J];_&&Se(C,_,a)&&(m[J]?m[J].push(p):m[J]=[p])})}return p=>{const C={[$.focused]:!1,[$.disabled]:!1,[$.hidden]:!1,[$.outside]:!1,[$.today]:!1},j={};for(const E in x){const N=x[E];C[E]=N.some(O=>O===p)}for(const E in m)j[E]=m[E].some(N=>N===p);return{...C,...j}}}function Bo(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[i])=>(n[i]?a.push(n[i]):t[$[i]]?a.push(t[$[i]]):t[ce[i]]&&a.push(t[ce[i]]),a),[t[T.Day]])}function Ko(e){return{...Po,...e}}function Vo(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,s])=>{n.startsWith("data-")&&(t[n]=s)}),t}function Zt(){const e={};for(const t in T)e[T[t]]=`rdp-${T[t]}`;for(const t in $)e[$[t]]=`rdp-${$[t]}`;for(const t in ce)e[ce[t]]=`rdp-${ce[t]}`;for(const t in ne)e[ne[t]]=`rdp-${ne[t]}`;return e}function hs(e,t,n){return(n??new re(t)).formatMonthYear(e)}const Uo=hs;function Lo(e,t,n){return(n??new re(t)).format(e,"d")}function $o(e,t=pe){return t.format(e,"LLLL")}function Ho(e,t,n){return(n??new re(t)).format(e,"cccccc")}function qo(e,t=pe){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function Jo(){return""}function ms(e,t=pe){return t.format(e,"yyyy")}const Go=ms,Qo=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:hs,formatDay:Lo,formatMonthCaption:Uo,formatMonthDropdown:$o,formatWeekNumber:qo,formatWeekNumberHeader:Jo,formatWeekdayName:Ho,formatYearCaption:Go,formatYearDropdown:ms},Symbol.toStringTag,{value:"Module"}));function Xo(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Qo,...e}}function en(e,t,n,s){let a=(s??new re(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const Zo=en;function tn(e,t,n){return(n??new re(t)).formatMonthYear(e)}const ei=tn;function gs(e,t,n,s){let a=(s??new re(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function xs(e){return"Choose the Month"}function ps(){return""}const ti="Go to the Next Month";function bs(e,t){return ti}function ys(e){return"Go to the Previous Month"}function Cs(e,t,n){return(n??new re(t)).format(e,"cccc")}function ws(e,t){return`Week ${e}`}function vs(e){return"Week Number"}function Ss(e){return"Choose the Year"}const ni=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:ei,labelDay:Zo,labelDayButton:en,labelGrid:tn,labelGridcell:gs,labelMonthDropdown:xs,labelNav:ps,labelNext:bs,labelPrevious:ys,labelWeekNumber:ws,labelWeekNumberHeader:vs,labelWeekday:Cs,labelYearDropdown:Ss},Symbol.toStringTag,{value:"Module"})),le=(e,t,n)=>t||(n?typeof n=="function"?n:(...s)=>n:e);function si(e,t){const n=t.locale?.labels??{};return{...ni,...e??{},labelDayButton:le(en,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:le(xs,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:le(bs,e?.labelNext,n.labelNext),labelPrevious:le(ys,e?.labelPrevious,n.labelPrevious),labelWeekNumber:le(ws,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:le(Ss,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:le(tn,e?.labelGrid,n.labelGrid),labelGridcell:le(gs,e?.labelGridcell,n.labelGridcell),labelNav:le(ps,e?.labelNav,n.labelNav),labelWeekNumberHeader:le(vs,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:le(Cs,e?.labelWeekday,n.labelWeekday)}}function ri(e,t,n,s,a){const{startOfMonth:i,startOfYear:c,endOfYear:o,eachMonthOfInterval:l,getMonth:d}=a;return l({start:c(e),end:o(e)}).map(h=>{const b=s.formatMonthDropdown(h,a),v=d(h),k=t&&h<i(t)||n&&h>i(n)||!1;return{value:v,label:b,disabled:k}})}function ai(e,t={},n={}){let s={...t?.[T.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{s={...s,...n?.[a]}}),s}function oi(e,t,n,s){const a=s??e.today(),i=n?e.startOfBroadcastWeek(a,e):t?e.startOfISOWeek(a):e.startOfWeek(a),c=[];for(let o=0;o<7;o++){const l=e.addDays(i,o);c.push(l)}return c}function ii(e,t,n,s,a=!1){if(!e||!t)return;const{startOfYear:i,endOfYear:c,eachYearOfInterval:o,getYear:l}=s,d=i(e),f=c(t),u=o({start:d,end:f});return a&&u.reverse(),u.map(h=>{const b=n.formatYearDropdown(h,s);return{value:l(h),label:b,disabled:!1}})}function li(e,t={}){const{weekStartsOn:n,locale:s}=t,a=n??s?.options?.weekStartsOn??0,i=o=>{const l=typeof o=="number"||typeof o=="string"?new Date(o):o;return new X(l.getFullYear(),l.getMonth(),l.getDate(),12,0,0,e)},c=o=>{const l=i(o);return new Date(l.getFullYear(),l.getMonth(),l.getDate(),0,0,0,0)};return{today:()=>i(X.tz(e)),newDate:(o,l,d)=>new X(o,l,d,12,0,0,e),startOfDay:o=>i(o),startOfWeek:(o,l)=>{const d=i(o),f=l?.weekStartsOn??a,u=(d.getDay()-f+7)%7;return d.setDate(d.getDate()-u),d},startOfISOWeek:o=>{const l=i(o),d=(l.getDay()-1+7)%7;return l.setDate(l.getDate()-d),l},startOfMonth:o=>{const l=i(o);return l.setDate(1),l},startOfYear:o=>{const l=i(o);return l.setMonth(0,1),l},endOfWeek:(o,l)=>{const d=i(o),h=(((l?.weekStartsOn??a)+6)%7-d.getDay()+7)%7;return d.setDate(d.getDate()+h),d},endOfISOWeek:o=>{const l=i(o),d=(7-l.getDay())%7;return l.setDate(l.getDate()+d),l},endOfMonth:o=>{const l=i(o);return l.setMonth(l.getMonth()+1,0),l},endOfYear:o=>{const l=i(o);return l.setMonth(11,31),l},eachMonthOfInterval:o=>{const l=i(o.start),d=i(o.end),f=[],u=new X(l.getFullYear(),l.getMonth(),1,12,0,0,e),h=d.getFullYear()*12+d.getMonth();for(;u.getFullYear()*12+u.getMonth()<=h;)f.push(new X(u,e)),u.setMonth(u.getMonth()+1,1);return f},addDays:(o,l)=>{const d=i(o);return d.setDate(d.getDate()+l),d},addWeeks:(o,l)=>{const d=i(o);return d.setDate(d.getDate()+l*7),d},addMonths:(o,l)=>{const d=i(o);return d.setMonth(d.getMonth()+l),d},addYears:(o,l)=>{const d=i(o);return d.setFullYear(d.getFullYear()+l),d},eachYearOfInterval:o=>{const l=i(o.start),d=i(o.end),f=[],u=new X(l.getFullYear(),0,1,12,0,0,e);for(;u.getFullYear()<=d.getFullYear();)f.push(new X(u,e)),u.setFullYear(u.getFullYear()+1,0,1);return f},getWeek:(o,l)=>{const d=c(o);return Jt(d,{weekStartsOn:l?.weekStartsOn??a,firstWeekContainsDate:l?.firstWeekContainsDate??s?.options?.firstWeekContainsDate??1})},getISOWeek:o=>{const l=c(o);return qt(l)},differenceInCalendarDays:(o,l)=>{const d=c(o),f=c(l);return Ht(d,f)},differenceInCalendarMonths:(o,l)=>{const d=c(o),f=c(l);return es(d,f)}}}const lt=e=>e instanceof HTMLElement?e:null,Rt=e=>[...e.querySelectorAll("[data-animated-month]")??[]],ci=e=>lt(e.querySelector("[data-animated-month]")),At=e=>lt(e.querySelector("[data-animated-caption]")),Wt=e=>lt(e.querySelector("[data-animated-weeks]")),di=e=>lt(e.querySelector("[data-animated-nav]")),ui=e=>lt(e.querySelector("[data-animated-weekdays]"));function fi(e,t,{classNames:n,months:s,focused:a,dateLib:i}){const c=g.useRef(null),o=g.useRef(s),l=g.useRef(!1);g.useLayoutEffect(()=>{const d=o.current;if(o.current=s,!t||!e.current||!(e.current instanceof HTMLElement)||s.length===0||d.length===0||s.length!==d.length)return;const f=i.isSameMonth(s[0].date,d[0].date),u=i.isAfter(s[0].date,d[0].date),h=u?n[ne.caption_after_enter]:n[ne.caption_before_enter],b=u?n[ne.weeks_after_enter]:n[ne.weeks_before_enter],v=c.current,k=e.current.cloneNode(!0);if(k instanceof HTMLElement?(Rt(k).forEach(x=>{if(!(x instanceof HTMLElement))return;const m=ci(x);m&&x.contains(m)&&x.removeChild(m);const p=At(x);p&&p.classList.remove(h);const C=Wt(x);C&&C.classList.remove(b)}),c.current=k):c.current=null,l.current||f||a)return;const S=v instanceof HTMLElement?Rt(v):[],w=Rt(e.current);if(w?.every(y=>y instanceof HTMLElement)&&S&&S.every(y=>y instanceof HTMLElement)){l.current=!0,e.current.style.isolation="isolate";const y=di(e.current);y&&(y.style.zIndex="1"),w.forEach((x,m)=>{const p=S[m];if(!p)return;x.style.position="relative",x.style.overflow="hidden";const C=At(x);C&&C.classList.add(h);const j=Wt(x);j&&j.classList.add(b);const E=()=>{l.current=!1,e.current&&(e.current.style.isolation=""),y&&(y.style.zIndex=""),C&&C.classList.remove(h),j&&j.classList.remove(b),x.style.position="",x.style.overflow="",x.contains(p)&&x.removeChild(p)};p.style.pointerEvents="none",p.style.position="absolute",p.style.overflow="hidden",p.setAttribute("aria-hidden","true");const N=ui(p);N&&(N.style.opacity="0");const O=At(p);O&&(O.classList.add(u?n[ne.caption_before_exit]:n[ne.caption_after_exit]),O.addEventListener("animationend",E));const R=Wt(p);R&&R.classList.add(u?n[ne.weeks_before_exit]:n[ne.weeks_after_exit]),x.insertBefore(p,x.firstChild)})}})}function hi(e,t,n,s){const a=e[0],i=e[e.length-1],{ISOWeek:c,fixedWeeks:o,broadcastCalendar:l}=n??{},{addDays:d,differenceInCalendarDays:f,differenceInCalendarMonths:u,endOfBroadcastWeek:h,endOfISOWeek:b,endOfMonth:v,endOfWeek:k,isAfter:S,startOfBroadcastWeek:w,startOfISOWeek:y,startOfWeek:x}=s,m=l?w(a,s):c?y(a):x(a),p=l?h(i):c?b(v(i)):k(v(i)),C=t&&(l?h(t):c?b(t):k(t)),j=C&&S(p,C)?C:p,E=f(j,m),N=u(i,a)+1,O=[];for(let G=0;G<=E;G++){const J=d(m,G);O.push(J)}const H=(l?35:42)*N;if(o&&O.length<H){const G=H-O.length;for(let J=0;J<G;J++){const _=d(O[O.length-1],1);O.push(_)}}return O}function mi(e){const t=[];return e.reduce((n,s)=>{const a=s.weeks.reduce((i,c)=>i.concat(c.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function gi(e,t,n,s){const{numberOfMonths:a=1}=n,i=[];for(let c=0;c<a;c++){const o=s.addMonths(e,c);if(t&&o>t)break;i.push(o)}return i}function Cn(e,t,n,s){const{month:a,defaultMonth:i,today:c=s.today(),numberOfMonths:o=1}=e;let l=a||i||c;const{differenceInCalendarMonths:d,addMonths:f,startOfMonth:u}=s;if(n&&d(n,l)<o-1){const h=-1*(o-1);l=f(n,h)}return t&&d(l,t)<0&&(l=t),u(l)}function xi(e,t,n,s){const{addDays:a,endOfBroadcastWeek:i,endOfISOWeek:c,endOfMonth:o,endOfWeek:l,getISOWeek:d,getWeek:f,startOfBroadcastWeek:u,startOfISOWeek:h,startOfWeek:b}=s,v=e.reduce((k,S)=>{const w=n.broadcastCalendar?u(S,s):n.ISOWeek?h(S):b(S),y=n.broadcastCalendar?i(S):n.ISOWeek?c(o(S)):l(o(S)),x=t.filter(j=>j>=w&&j<=y),m=n.broadcastCalendar?35:42;if(n.fixedWeeks&&x.length<m){const j=t.filter(E=>{const N=m-x.length;return E>y&&E<=a(y,N)});x.push(...j)}const p=x.reduce((j,E)=>{const N=n.ISOWeek?d(E):f(E),O=j.find(H=>H.weekNumber===N),R=new cs(E,S,s);return O?O.days.push(R):j.push(new fo(N,[R])),j},[]),C=new uo(S,p);return k.push(C),k},[]);return n.reverseMonths?v.reverse():v}function pi(e,t){let{startMonth:n,endMonth:s}=e;const{startOfYear:a,startOfDay:i,startOfMonth:c,endOfMonth:o,addYears:l,endOfYear:d,newDate:f,today:u}=t,{fromYear:h,toYear:b,fromMonth:v,toMonth:k}=e;!n&&v&&(n=v),!n&&h&&(n=t.newDate(h,0,1)),!s&&k&&(s=k),!s&&b&&(s=f(b,11,31));const S=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=c(n):h?n=f(h,0,1):!n&&S&&(n=a(l(e.today??u(),-100))),s?s=o(s):b?s=f(b,11,31):!s&&S&&(s=d(e.today??u())),[n&&i(n),s&&i(s)]}function bi(e,t,n,s){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:i=1}=n,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:l}=s,d=a?i:1,f=c(e);if(!t)return o(f,d);if(!(l(t,e)<i))return o(f,d)}function yi(e,t,n,s){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:i}=n,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:l}=s,d=a?i??1:1,f=c(e);if(!t)return o(f,-d);if(!(l(f,t)<=0))return o(f,-d)}function Ci(e){const t=[];return e.reduce((n,s)=>n.concat(s.weeks.slice()),t.slice())}function Ct(e,t){const[n,s]=g.useState(e);return[t===void 0?n:t,s]}function wi(e,t){const[n,s]=pi(e,t),{startOfMonth:a,endOfMonth:i}=t,c=Cn(e,n,s,t),[o,l]=Ct(c,e.month?c:void 0);g.useEffect(()=>{const m=Cn(e,n,s,t);l(m)},[e.timeZone]);const{months:d,weeks:f,days:u,previousMonth:h,nextMonth:b}=g.useMemo(()=>{const m=gi(o,s,{numberOfMonths:e.numberOfMonths},t),p=hi(m,e.endMonth?i(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),C=xi(m,p,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),j=Ci(C),E=mi(C),N=yi(o,n,e,t),O=bi(o,s,e,t);return{months:C,weeks:j,days:E,previousMonth:N,nextMonth:O}},[t,o.getTime(),s?.getTime(),n?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:v,onMonthChange:k}=e,S=m=>f.some(p=>p.days.some(C=>C.isEqualTo(m))),w=m=>{if(v)return;let p=a(m);n&&p<a(n)&&(p=a(n)),s&&p>a(s)&&(p=a(s)),l(p),k?.(p)};return{months:d,weeks:f,days:u,navStart:n,navEnd:s,previousMonth:h,nextMonth:b,goToMonth:w,goToDay:m=>{S(m)||w(m.date)}}}var ue;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ue||(ue={}));function wn(e){return!e[$.disabled]&&!e[$.hidden]&&!e[$.outside]}function vi(e,t,n,s){let a,i=-1;for(const c of e){const o=t(c);wn(o)&&(o[$.focused]&&i<ue.FocusedModifier?(a=c,i=ue.FocusedModifier):s?.isEqualTo(c)&&i<ue.LastFocused?(a=c,i=ue.LastFocused):n(c.date)&&i<ue.Selected?(a=c,i=ue.Selected):o[$.today]&&i<ue.Today&&(a=c,i=ue.Today))}return a||(a=e.find(c=>wn(t(c)))),a}function Si(e,t,n,s,a,i,c){const{ISOWeek:o,broadcastCalendar:l}=i,{addDays:d,addMonths:f,addWeeks:u,addYears:h,endOfBroadcastWeek:b,endOfISOWeek:v,endOfWeek:k,max:S,min:w,startOfBroadcastWeek:y,startOfISOWeek:x,startOfWeek:m}=c;let C={day:d,week:u,month:f,year:h,startOfWeek:j=>l?y(j,c):o?x(j):m(j),endOfWeek:j=>l?b(j):o?v(j):k(j)}[e](n,t==="after"?1:-1);return t==="before"&&s?C=S([s,C]):t==="after"&&a&&(C=w([a,C])),C}function ks(e,t,n,s,a,i,c,o=0){if(o>365)return;const l=Si(e,t,n.date,s,a,i,c),d=!!(i.disabled&&Se(l,i.disabled,c)),f=!!(i.hidden&&Se(l,i.hidden,c)),u=l,h=new cs(l,u,c);return!d&&!f?h:ks(e,t,h,s,a,i,c,o+1)}function ki(e,t,n,s,a){const{autoFocus:i}=e,[c,o]=g.useState(),l=vi(t.days,n,s||(()=>!1),c),[d,f]=g.useState(i?l:void 0);return{isFocusTarget:k=>!!l?.isEqualTo(k),setFocused:f,focused:d,blur:()=>{o(d),f(void 0)},moveFocus:(k,S)=>{if(!d)return;const w=ks(k,S,d,t.navStart,t.navEnd,e,a);w&&(e.disableNavigation&&!t.days.some(x=>x.isEqualTo(w))||(t.goToDay(w),f(w)))}}}function ji(e,t){const{selected:n,required:s,onSelect:a}=e,[i,c]=Ct(n,a?n:void 0),o=a?n:i,{isSameDay:l}=t,d=b=>o?.some(v=>l(v,b))??!1,{min:f,max:u}=e;return{selected:o,select:(b,v,k)=>{let S=[...o??[]];if(d(b)){if(o?.length===f||s&&o?.length===1)return;S=o?.filter(w=>!l(w,b))}else o?.length===u?S=[b]:S=[...S,b];return a||c(S),a?.(S,b,v,k),S},isSelected:d}}function Ni(e,t,n=0,s=0,a=!1,i=pe){const{from:c,to:o}=t||{},{isSameDay:l,isAfter:d,isBefore:f}=i;let u;if(!c&&!o)u={from:e,to:n>0?void 0:e};else if(c&&!o)l(c,e)?n===0?u={from:c,to:e}:a?u={from:c,to:void 0}:u=void 0:f(e,c)?u={from:e,to:c}:u={from:c,to:e};else if(c&&o)if(l(c,e)&&l(o,e))a?u={from:c,to:o}:u=void 0;else if(l(c,e))u={from:c,to:n>0?void 0:e};else if(l(o,e))u={from:e,to:n>0?void 0:e};else if(f(e,c))u={from:e,to:o};else if(d(e,c))u={from:c,to:e};else if(d(e,o))u={from:c,to:e};else throw new Error("Invalid range");if(u?.from&&u?.to){const h=i.differenceInCalendarDays(u.to,u.from);s>0&&h>s?u={from:e,to:void 0}:n>1&&h<n&&(u={from:e,to:void 0})}return u}function Di(e,t,n=pe){const s=Array.isArray(t)?t:[t];let a=e.from;const i=n.differenceInCalendarDays(e.to,e.from),c=Math.min(i,6);for(let o=0;o<=c;o++){if(s.includes(a.getDay()))return!0;a=n.addDays(a,1)}return!1}function vn(e,t,n=pe){return ve(e,t.from,!1,n)||ve(e,t.to,!1,n)||ve(t,e.from,!1,n)||ve(t,e.to,!1,n)}function Ei(e,t,n=pe){const s=Array.isArray(t)?t:[t];if(s.filter(o=>typeof o!="function").some(o=>typeof o=="boolean"?o:n.isDate(o)?ve(e,o,!1,n):fs(o,n)?o.some(l=>ve(e,l,!1,n)):yt(o)?o.from&&o.to?vn(e,{from:o.from,to:o.to},n):!1:us(o)?Di(e,o.dayOfWeek,n):Gt(o)?n.isAfter(o.before,o.after)?vn(e,{from:n.addDays(o.after,1),to:n.addDays(o.before,-1)},n):Se(e.from,o,n)||Se(e.to,o,n):Qt(o)||Xt(o)?Se(e.from,o,n)||Se(e.to,o,n):!1))return!0;const c=s.filter(o=>typeof o=="function");if(c.length){let o=e.from;const l=n.differenceInCalendarDays(e.to,e.from);for(let d=0;d<=l;d++){if(c.some(f=>f(o)))return!0;o=n.addDays(o,1)}}return!1}function Oi(e,t){const{disabled:n,excludeDisabled:s,selected:a,required:i,onSelect:c}=e,[o,l]=Ct(a,c?a:void 0),d=c?a:o;return{selected:d,select:(h,b,v)=>{const{min:k,max:S}=e,w=h?Ni(h,d,k,S,i,t):void 0;return s&&n&&w?.from&&w.to&&Ei({from:w.from,to:w.to},n,t)&&(w.from=h,w.to=void 0),c||l(w),c?.(w,h,b,v),w},isSelected:h=>d&&ve(d,h,!1,t)}}function Mi(e,t){const{selected:n,required:s,onSelect:a}=e,[i,c]=Ct(n,a?n:void 0),o=a?n:i,{isSameDay:l}=t;return{selected:o,select:(u,h,b)=>{let v=u;return!s&&o&&o&&l(u,o)&&(v=void 0),a||c(v),a?.(v,u,h,b),v},isSelected:u=>o?l(o,u):!1}}function Ti(e,t){const n=Mi(e,t),s=ji(e,t),a=Oi(e,t);switch(e.mode){case"single":return n;case"multiple":return s;case"range":return a;default:return}}function oe(e,t){return e instanceof X&&e.timeZone===t?e:new X(e,t)}function Pe(e,t,n){return oe(e,t)}function Sn(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?Pe(e,t):Array.isArray(e)?e.map(s=>s instanceof Date?Pe(s,t):s):yt(e)?{...e,from:e.from?oe(e.from,t):e.from,to:e.to?oe(e.to,t):e.to}:Gt(e)?{before:Pe(e.before,t),after:Pe(e.after,t)}:Qt(e)?{after:Pe(e.after,t)}:Xt(e)?{before:Pe(e.before,t)}:e}function zt(e,t,n){return e&&(Array.isArray(e)?e.map(s=>Sn(s,t)):Sn(e,t))}function _i(e){let t=e;const n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&(t.today=oe(t.today,n)),t.month&&(t.month=oe(t.month,n)),t.defaultMonth&&(t.defaultMonth=oe(t.defaultMonth,n)),t.startMonth&&(t.startMonth=oe(t.startMonth,n)),t.endMonth&&(t.endMonth=oe(t.endMonth,n)),t.mode==="single"&&t.selected?t.selected=oe(t.selected,n):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(Y=>oe(Y,n)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?oe(t.selected.from,n):t.selected.from,to:t.selected.to?oe(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=zt(t.disabled,n)),t.hidden!==void 0&&(t.hidden=zt(t.hidden,n)),t.modifiers)){const Y={};Object.keys(t.modifiers).forEach(V=>{Y[V]=zt(t.modifiers?.[V],n)}),t.modifiers=Y}const{components:s,formatters:a,labels:i,dateLib:c,locale:o,classNames:l}=g.useMemo(()=>{const Y={...ls,...t.locale},V=t.broadcastCalendar?1:t.weekStartsOn,F=t.noonSafe&&t.timeZone?li(t.timeZone,{weekStartsOn:V,locale:Y}):void 0,K=t.dateLib&&F?{...F,...t.dateLib}:t.dateLib??F,te=new re({locale:Y,weekStartsOn:V,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},K);return{dateLib:te,components:Ko(t.components),formatters:Xo(t.formatters),labels:si(t.labels,te.options),locale:Y,classNames:{...Zt(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.noonSafe,t.components,t.formatters,t.labels,t.classNames]);t.today||(t={...t,today:c.today()});const{captionLayout:d,mode:f,navLayout:u,numberOfMonths:h=1,onDayBlur:b,onDayClick:v,onDayFocus:k,onDayKeyDown:S,onDayMouseEnter:w,onDayMouseLeave:y,onNextClick:x,onPrevClick:m,showWeekNumber:p,styles:C}=t,{formatCaption:j,formatDay:E,formatMonthDropdown:N,formatWeekNumber:O,formatWeekNumberHeader:R,formatWeekdayName:H,formatYearDropdown:G}=a,J=wi(t,c),{days:_,months:M,navStart:Q,navEnd:Ge,previousMonth:Z,nextMonth:ee,goToMonth:ye}=J,kt=Io(_,t,Q,Ge,c),{isSelected:jt,select:Nt,selected:ct}=Ti(t,c)??{},{blur:sn,focused:rn,isFocusTarget:Ts,moveFocus:an,setFocused:dt}=ki(t,J,kt,jt??(()=>!1),c),{labelDayButton:_s,labelGridcell:Rs,labelGrid:As,labelMonthDropdown:Ws,labelNav:on,labelPrevious:zs,labelNext:Fs,labelWeekday:Ys,labelWeekNumber:Ps,labelWeekNumberHeader:Is,labelYearDropdown:Bs}=i,Ks=g.useMemo(()=>oi(c,t.ISOWeek,t.broadcastCalendar,t.today),[c,t.ISOWeek,t.broadcastCalendar,t.today]),ln=f!==void 0||v!==void 0,Dt=g.useCallback(()=>{Z&&(ye(Z),m?.(Z))},[Z,ye,m]),Et=g.useCallback(()=>{ee&&(ye(ee),x?.(ee))},[ye,ee,x]),Vs=g.useCallback((Y,V)=>F=>{F.preventDefault(),F.stopPropagation(),dt(Y),!V.disabled&&(Nt?.(Y.date,V,F),v?.(Y.date,V,F))},[Nt,v,dt]),Us=g.useCallback((Y,V)=>F=>{dt(Y),k?.(Y.date,V,F)},[k,dt]),Ls=g.useCallback((Y,V)=>F=>{sn(),b?.(Y.date,V,F)},[sn,b]),$s=g.useCallback((Y,V)=>F=>{const K={ArrowLeft:[F.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[F.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[F.shiftKey?"year":"week","after"],ArrowUp:[F.shiftKey?"year":"week","before"],PageUp:[F.shiftKey?"year":"month","before"],PageDown:[F.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(K[F.key]){F.preventDefault(),F.stopPropagation();const[te,B]=K[F.key];an(te,B)}S?.(Y.date,V,F)},[an,S,t.dir]),Hs=g.useCallback((Y,V)=>F=>{w?.(Y.date,V,F)},[w]),qs=g.useCallback((Y,V)=>F=>{y?.(Y.date,V,F)},[y]),Js=g.useCallback(Y=>V=>{const F=Number(V.target.value),K=c.setMonth(c.startOfMonth(Y),F);ye(K)},[c,ye]),Gs=g.useCallback(Y=>V=>{const F=Number(V.target.value),K=c.setYear(c.startOfMonth(Y),F);ye(K)},[c,ye]),{className:Qs,style:Xs}=g.useMemo(()=>({className:[l[T.Root],t.className].filter(Boolean).join(" "),style:{...C?.[T.Root],...t.style}}),[l,t.className,t.style,C]),Zs=Vo(t),cn=g.useRef(null);fi(cn,!!t.animate,{classNames:l,months:M,focused:rn,dateLib:c});const er={dayPickerProps:t,selected:ct,select:Nt,isSelected:jt,months:M,nextMonth:ee,previousMonth:Z,goToMonth:ye,getModifiers:kt,components:s,classNames:l,styles:C,labels:i,formatters:a};return D.createElement(ds.Provider,{value:er},D.createElement(s.Root,{rootRef:t.animate?cn:void 0,className:Qs,style:Xs,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Zs},D.createElement(s.Months,{className:l[T.Months],style:C?.[T.Months]},!t.hideNavigation&&!u&&D.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:l[T.Nav],style:C?.[T.Nav],"aria-label":on(),onPreviousClick:Dt,onNextClick:Et,previousMonth:Z,nextMonth:ee}),M.map((Y,V)=>D.createElement(s.Month,{"data-animated-month":t.animate?"true":void 0,className:l[T.Month],style:C?.[T.Month],key:V,displayIndex:V,calendarMonth:Y},u==="around"&&!t.hideNavigation&&V===0&&D.createElement(s.PreviousMonthButton,{type:"button",className:l[T.PreviousMonthButton],tabIndex:Z?void 0:-1,"aria-disabled":Z?void 0:!0,"aria-label":zs(Z),onClick:Dt,"data-animated-button":t.animate?"true":void 0},D.createElement(s.Chevron,{disabled:Z?void 0:!0,className:l[T.Chevron],orientation:t.dir==="rtl"?"right":"left"})),D.createElement(s.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:l[T.MonthCaption],style:C?.[T.MonthCaption],calendarMonth:Y,displayIndex:V},d?.startsWith("dropdown")?D.createElement(s.DropdownNav,{className:l[T.Dropdowns],style:C?.[T.Dropdowns]},(()=>{const F=d==="dropdown"||d==="dropdown-months"?D.createElement(s.MonthsDropdown,{key:"month",className:l[T.MonthsDropdown],"aria-label":Ws(),classNames:l,components:s,disabled:!!t.disableNavigation,onChange:Js(Y.date),options:ri(Y.date,Q,Ge,a,c),style:C?.[T.Dropdown],value:c.getMonth(Y.date)}):D.createElement("span",{key:"month"},N(Y.date,c)),K=d==="dropdown"||d==="dropdown-years"?D.createElement(s.YearsDropdown,{key:"year",className:l[T.YearsDropdown],"aria-label":Bs(c.options),classNames:l,components:s,disabled:!!t.disableNavigation,onChange:Gs(Y.date),options:ii(Q,Ge,a,c,!!t.reverseYears),style:C?.[T.Dropdown],value:c.getYear(Y.date)}):D.createElement("span",{key:"year"},G(Y.date,c));return c.getMonthYearOrder()==="year-first"?[K,F]:[F,K]})(),D.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},j(Y.date,c.options,c))):D.createElement(s.CaptionLabel,{className:l[T.CaptionLabel],role:"status","aria-live":"polite"},j(Y.date,c.options,c))),u==="around"&&!t.hideNavigation&&V===h-1&&D.createElement(s.NextMonthButton,{type:"button",className:l[T.NextMonthButton],tabIndex:ee?void 0:-1,"aria-disabled":ee?void 0:!0,"aria-label":Fs(ee),onClick:Et,"data-animated-button":t.animate?"true":void 0},D.createElement(s.Chevron,{disabled:ee?void 0:!0,className:l[T.Chevron],orientation:t.dir==="rtl"?"left":"right"})),V===h-1&&u==="after"&&!t.hideNavigation&&D.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:l[T.Nav],style:C?.[T.Nav],"aria-label":on(),onPreviousClick:Dt,onNextClick:Et,previousMonth:Z,nextMonth:ee}),D.createElement(s.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":As(Y.date,c.options,c)||void 0,className:l[T.MonthGrid],style:C?.[T.MonthGrid]},!t.hideWeekdays&&D.createElement(s.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:l[T.Weekdays],style:C?.[T.Weekdays]},p&&D.createElement(s.WeekNumberHeader,{"aria-label":Is(c.options),className:l[T.WeekNumberHeader],style:C?.[T.WeekNumberHeader],scope:"col"},R()),Ks.map(F=>D.createElement(s.Weekday,{"aria-label":Ys(F,c.options,c),className:l[T.Weekday],key:String(F),style:C?.[T.Weekday],scope:"col"},H(F,c.options,c)))),D.createElement(s.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:l[T.Weeks],style:C?.[T.Weeks]},Y.weeks.map(F=>D.createElement(s.Week,{className:l[T.Week],key:F.weekNumber,style:C?.[T.Week],week:F},p&&D.createElement(s.WeekNumber,{week:F,style:C?.[T.WeekNumber],"aria-label":Ps(F.weekNumber,{locale:o}),className:l[T.WeekNumber],scope:"row",role:"rowheader"},O(F.weekNumber,c)),F.days.map(K=>{const{date:te}=K,B=kt(K);if(B[$.focused]=!B.hidden&&!!rn?.isEqualTo(K),B[ce.selected]=jt?.(te)||B.selected,yt(ct)){const{from:Ot,to:Mt}=ct;B[ce.range_start]=!!(Ot&&Mt&&c.isSameDay(te,Ot)),B[ce.range_end]=!!(Ot&&Mt&&c.isSameDay(te,Mt)),B[ce.range_middle]=ve(ct,te,!0,c)}const tr=ai(B,C,t.modifiersStyles),nr=Bo(B,l,t.modifiersClassNames),sr=!ln&&!B.hidden?Rs(te,B,c.options,c):void 0;return D.createElement(s.Day,{key:`${K.isoDate}_${K.displayMonthId}`,day:K,modifiers:B,className:nr.join(" "),style:tr,role:"gridcell","aria-selected":B.selected||void 0,"aria-label":sr,"data-day":K.isoDate,"data-month":K.outside?K.dateMonthId:void 0,"data-selected":B.selected||void 0,"data-disabled":B.disabled||void 0,"data-hidden":B.hidden||void 0,"data-outside":K.outside||void 0,"data-focused":B.focused||void 0,"data-today":B.today||void 0},!B.hidden&&ln?D.createElement(s.DayButton,{className:l[T.DayButton],style:C?.[T.DayButton],type:"button",day:K,modifiers:B,disabled:!B.focused&&B.disabled||void 0,"aria-disabled":B.focused&&B.disabled||void 0,tabIndex:Ts(K)?0:-1,"aria-label":_s(te,B,c.options,c),onClick:Vs(K,B),onBlur:Ls(K,B),onFocus:Us(K,B),onKeyDown:$s(K,B),onMouseEnter:Hs(K,B),onMouseLeave:qs(K,B)},E(te,c.options,c)):!B.hidden&&E(K.date,c.options,c))})))))))),t.footer&&D.createElement(s.Footer,{className:l[T.Footer],style:C?.[T.Footer],role:"status","aria-live":"polite"},t.footer)))}function Ri({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:s="label",buttonVariant:a="ghost",formatters:i,components:c,...o}){const l=Zt();return r.jsx(_i,{showOutsideDays:n,className:z("p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(6)] bg-background group/calendar [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:s,formatters:{formatMonthDropdown:d=>d.toLocaleString("default",{month:"short"}),...i},classNames:{root:z("w-fit",l.root),months:z("flex gap-4 flex-col md:flex-row relative",l.months),month:z("flex flex-col w-full gap-4",l.month),nav:z("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",l.nav),button_previous:z(dn({variant:a}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",l.button_previous),button_next:z(dn({variant:a}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",l.button_next),month_caption:z("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",l.month_caption),dropdowns:z("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",l.dropdowns),dropdown_root:z("relative cn-calendar-dropdown-root rounded-(--cell-radius)",l.dropdown_root),dropdown:z("absolute bg-popover inset-0 opacity-0",l.dropdown),caption_label:z("select-none font-medium",s==="label"?"text-sm":"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5",l.caption_label),table:"w-full border-collapse",weekdays:z("flex",l.weekdays),weekday:z("text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none",l.weekday),week:z("flex w-full mt-2",l.week),week_number_header:z("select-none w-(--cell-size)",l.week_number_header),week_number:z("text-[0.8rem] select-none text-muted-foreground",l.week_number),day:z("relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none",o.showWeekNumber?"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)":"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",l.day),range_start:z("rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate",l.range_start),range_middle:z("rounded-none",l.range_middle),range_end:z("rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate",l.range_end),today:z("bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none",l.today),outside:z("text-muted-foreground aria-selected:text-muted-foreground",l.outside),disabled:z("text-muted-foreground opacity-50",l.disabled),hidden:z("invisible",l.hidden),...t},components:{Root:({className:d,rootRef:f,...u})=>r.jsx("div",{"data-slot":"calendar",ref:f,className:z(d),...u}),Chevron:({className:d,orientation:f,...u})=>f==="left"?r.jsx(An,{className:z("size-4",d),...u}):f==="right"?r.jsx(Wn,{className:z("size-4",d),...u}):r.jsx($t,{className:z("size-4",d),...u}),DayButton:Ai,WeekNumber:({children:d,...f})=>r.jsx("td",{...f,children:r.jsx("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:d})}),...c},...o})}function Ai({className:e,day:t,modifiers:n,...s}){const a=Zt(),i=g.useRef(null);return g.useEffect(()=>{n.focused&&i.current?.focus()},[n.focused]),r.jsx(W,{ref:i,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:z("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70",a.day,e),...s})}function Oe({value:e,onChange:t,placeholder:n="Pick a date",className:s,disabled:a,startYear:i=1980,endYear:c=new Date().getFullYear()+10,icon:o=!0,isFormatted:l=!0,showTime:d=!1}){const[f,u]=g.useState(!1),h=e?e.getHours():0,b=e?e.getMinutes():0,v=e?e.getSeconds():0,k=(j,E)=>{const N={target:{value:String(j)}};E(N)},S=j=>{j&&e&&(j.setHours(e.getHours()),j.setMinutes(e.getMinutes()),j.setSeconds(e.getSeconds())),t?.(j),d||u(!1)},w=(j,E)=>{const N=e?new Date(e):new Date;j==="hours"&&N.setHours(E),j==="minutes"&&N.setMinutes(E),j==="seconds"&&N.setSeconds(E),t?.(N)},y=j=>{const E=Ue(new Date);switch(j){case"NULL":t?.(null);break;case"NOW":t?.(new Date);break;case"TODAY":t?.(E);break;case"YESTERDAY":t?.(mt(E,-1));break;case"TOMORROW":t?.(mt(E,1));break}},x=Array.from({length:24},(j,E)=>E),m=Array.from({length:60},(j,E)=>E),p=Array.from({length:60},(j,E)=>E),C=e&&e instanceof Date&&!Number.isNaN(e.getTime())?l?d?we(e,"dd/MM/yyyy HH:mm:ss"):we(e,"dd/MM/yyyy"):d?we(e,"yyyy-MM-dd HH:mm:ss"):we(e,"yyyy-MM-dd"):e===null?"NULL":n;return r.jsxs(Le,{open:f,onOpenChange:u,children:[r.jsx(gt,{asChild:!0,children:r.jsxs(W,{variant:"outline",className:z("w-[280px] justify-start text-left font-normal",!e&&"text-muted-foreground",s),disabled:a,children:[o&&r.jsx(xr,{className:"mr-2 h-4 w-4"}),C]})}),r.jsx($e,{className:"w-auto p-0",align:"end",children:r.jsxs("div",{className:"flex",children:[r.jsxs("div",{className:"flex flex-col gap-1 p-2 border-r",children:[r.jsx(W,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>y("NULL"),children:"NULL"}),r.jsx(W,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>y("NOW"),children:"NOW"}),r.jsx(W,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>y("TODAY"),children:"TODAY"}),r.jsx(W,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>y("YESTERDAY"),children:"YESTERDAY"}),r.jsx(W,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>y("TOMORROW"),children:"TOMORROW"})]}),r.jsx(Ri,{components:{Dropdown:j=>r.jsxs(he,{onValueChange:E=>{j.onChange&&k(E,j.onChange)},value:String(j.value),children:[r.jsx(me,{className:"h-8 w-fit font-medium first-letter:capitalize focus:ring-0 focus:ring-offset-0",children:r.jsx(ge,{})}),r.jsx(xe,{children:j.options?.map(E=>r.jsx(I,{value:String(E.value),children:E.label},E.value))})]}),DropdownNav:j=>r.jsx("div",{className:"flex w-full items-center gap-2",children:j.children})},defaultMonth:e||new Date,hideNavigation:!0,mode:"single",onSelect:S,selected:e||void 0,startMonth:new Date(i,0),endMonth:new Date(c,11)}),d&&r.jsxs("div",{className:"flex border-l",children:[r.jsx(Ft,{label:"H",values:x,selected:h,onChange:j=>w("hours",j)}),r.jsx(Ft,{label:"M",values:m,selected:b,onChange:j=>w("minutes",j)}),r.jsx(Ft,{label:"S",values:p,selected:v,onChange:j=>w("seconds",j)})]})]})})]})}function Ft({label:e,values:t,selected:n,onChange:s}){const a=g.useRef(new Map);return g.useEffect(()=>{const i=a.current.get(n);i&&i.scrollIntoView({block:"center",behavior:"auto"})},[n]),r.jsxs("div",{className:"flex flex-col",children:[r.jsx("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground text-center border-b",children:e}),r.jsx(Dr,{className:"h-[224px]",children:r.jsx("div",{className:"flex flex-col p-1",children:t.map(i=>r.jsx("button",{ref:c=>{c&&a.current.set(i,c)},type:"button",onClick:()=>s(i),className:z("w-10 h-8 text-sm rounded-md hover:bg-accent flex items-center justify-center",n===i&&"bg-primary text-primary-foreground hover:bg-primary"),children:i.toString().padStart(2,"0")},i))})})]})}const ut=e=>String(e).padStart(2,"0"),Yt=e=>{const t=e.getFullYear(),n=ut(e.getMonth()+1),s=ut(e.getDate()),a=ut(e.getHours()),i=ut(e.getMinutes());return`${t}-${n}-${s}T${a}:${i}`},Wi=({columnName:e,dataTypeLabel:t,columnDefault:n,enumValues:s,isForeignKey:a,referencedTable:i,referencedColumn:c})=>{const[,o]=P(A.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),{control:l}=Tn(),{openSheet:d,setRecordReference:f}=de(),u=h=>{const b={...h,value:h.value??""};return a?r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsxs("div",{className:"flex",children:[r.jsx(ae,{id:e,placeholder:n??"",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10",...b}),r.jsx(Qe,{delayDuration:0,children:r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("button",{"aria-label":"Go to table",className:"inline-flex w-9 items-center justify-center rounded-e-md border border-input bg-background text-muted-foreground/80 text-sm outline-none transition-[color,box-shadow] hover:text-accent-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",type:"button",onClick:()=>{i&&e&&c&&f(i,e,c),d("record-reference"),o(i)},children:r.jsx(zn,{"aria-hidden":"true",className:"size-4",size:16})})}),r.jsx(_e,{className:"px-2 py-1 text-xs",children:"Go to table"})]})})]}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Has a foreign key relation to"," ",r.jsx("button",{type:"button",className:"font-mono text-primary",onClick:()=>{i&&e&&c&&f(i,e,c),d("record-reference"),o(i)},children:i})," ","table"]})]}):t==="int"||t==="bigint"||t==="smallint"||t==="numeric"||t==="float"||t==="double"||t==="money"?r.jsx(ae,{id:e,type:"number",placeholder:n??"0",...b}):t==="boolean"?r.jsxs(he,{value:h.value,onValueChange:v=>h.onChange(v),children:[r.jsx(me,{className:"w-full",children:r.jsx(ge,{placeholder:n??"true"})}),r.jsxs(xe,{children:[r.jsx(I,{value:"true",children:"true"}),r.jsx(I,{value:"false",children:"false"})]})]}):t==="text"||t==="xml"?r.jsx(ke,{id:e,placeholder:n??"",rows:4,...b}):t==="json"||t==="jsonb"?r.jsx(ke,{id:e,placeholder:n??'{"key": "value"}',rows:6,...b}):t==="date"?n?.toLowerCase().includes("current_date")||n?.toLowerCase().includes("now()")||n?.toLowerCase().includes("curdate()")?r.jsxs("div",{className:"flex",children:[r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?k.toISOString().split("T")[0]:""),placeholder:n??"Select a date",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10"}),r.jsx(Qe,{delayDuration:0,children:r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("button",{"aria-label":"Set to now",className:"inline-flex w-7 items-center justify-center rounded-e-md border border-input bg-background text-muted-foreground/80 text-sm outline-none transition-[color,box-shadow] hover:text-accent-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",type:"button",onClick:()=>{const k=new Date().toISOString().split("T")[0];h.onChange(k)},children:r.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),r.jsx(_e,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?k.toISOString().split("T")[0]:""),placeholder:n??"Select a date"}):t==="timestamptz"?n?.toLowerCase().includes("current_timestamp")||n?.toLowerCase().includes("now()")||n?.toLowerCase().includes("localtimestamp")?r.jsxs("div",{className:"flex",children:[r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?k.toISOString():""),showTime:!0,isFormatted:!1,placeholder:n??"Select a date and time",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10"}),r.jsx(Qe,{delayDuration:0,children:r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("button",{"aria-label":"Set to now",className:"inline-flex w-7 items-center justify-center rounded-e-md border border-input bg-background text-muted-foreground/80 text-sm outline-none transition-[color,box-shadow] hover:text-accent-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",type:"button",onClick:()=>{const k=new Date().toISOString();h.onChange(k)},children:r.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),r.jsx(_e,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?k.toISOString():""),showTime:!0,isFormatted:!1,placeholder:n??"Select a date and time"}):t==="timestamp"?n?.toLowerCase().includes("current_timestamp")||n?.toLowerCase().includes("now()")||n?.toLowerCase().includes("localtimestamp")?r.jsxs("div",{className:"flex",children:[r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?Yt(k):""),showTime:!0,isFormatted:!1,placeholder:n??"Select a date and time",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10"}),r.jsx(Qe,{delayDuration:0,children:r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("button",{"aria-label":"Set to now",className:"inline-flex w-7 items-center justify-center rounded-e-md border border-input bg-background text-muted-foreground/80 text-sm outline-none transition-[color,box-shadow] hover:text-accent-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",type:"button",onClick:()=>{h.onChange(Yt(new Date))},children:r.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),r.jsx(_e,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):r.jsx(Oe,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:k=>h.onChange(k?Yt(k):""),showTime:!0,isFormatted:!1,placeholder:n??"Select a date and time"}):t==="uuid"?r.jsxs("div",{className:"flex",children:[r.jsx(ae,{id:e,type:"text",placeholder:n??"",pattern:"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10",...b}),r.jsx(Qe,{delayDuration:0,children:r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("button",{"aria-label":"Generate UUID",className:"inline-flex w-9 items-center justify-center rounded-e-md border border-input bg-background text-muted-foreground/80 text-sm outline-none transition-[color,box-shadow] hover:text-accent-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",type:"button",onClick:()=>{const v=crypto.randomUUID();h.onChange(v)},children:r.jsx(Fn,{"aria-hidden":"true",className:"size-4",size:16})})}),r.jsx(_e,{className:"px-2 py-1 text-xs",children:"Generate UUID"})]})})]}):t==="array"?r.jsx(ke,{id:e,placeholder:n??'["item1", "item2"]',rows:3,...b}):t==="enum"?s&&s.length>0?r.jsxs(he,{value:h.value,onValueChange:v=>h.onChange(v),children:[r.jsx(me,{className:"w-full",children:r.jsx(ge,{placeholder:n??"Select a value"})}),r.jsx(xe,{children:s.map(v=>r.jsx(I,{value:v,children:v},v))})]}):r.jsx(ae,{id:e,placeholder:n??"",...b}):t==="interval"?r.jsx(ae,{id:e,type:"text",placeholder:n??"1 day",...b}):t==="bytea"?r.jsx(ae,{id:e,type:"file",...b}):t==="inet"||t==="cidr"||t==="macaddr"||t==="macaddr8"?r.jsx(ae,{id:e,type:"text",placeholder:t==="inet"?"192.168.1.1":t==="cidr"?"192.168.1.0/24":t==="macaddr"?"08:00:2b:01:02:03":"08:00:2b:01:02:03:04:05",...b}):t==="point"||t==="line"||t==="polygon"?r.jsx(ae,{id:e,type:"text",placeholder:t==="point"?"(x,y)":t==="line"?"{A,B,C}":"((x1,y1),(x2,y2),...)",...b}):r.jsx(ae,{id:e,type:"text",placeholder:n??"",...b})};return r.jsx(ir,{control:l,name:e,render:({field:h})=>r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsxs("div",{className:"col-span-1 flex flex-col gap-1",children:[r.jsx(ie,{htmlFor:e,children:e}),r.jsx("span",{className:"text-xs text-muted-foreground",children:t})]}),r.jsx("div",{className:"col-span-2 w-full",children:u(h)})]})},e)},zi=({tableName:e})=>{const[t,n]=P(A.REFERENCED_TABLE_STATE_KEYS.FILTERS,Be(x=>x).withDefault([]).withOptions({history:"push"})),[,s]=P(A.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,a]=P(A.REFERENCED_TABLE_STATE_KEYS.DIRECTION),{tableCols:i}=De({tableName:e}),[c,o]=g.useState(!1),[l,d]=g.useState([]),f=()=>{const x=i?.[0]?.columnName??"";d([...l,{columnName:x,operator:"=",value:""}])},u=x=>{d(l.filter((m,p)=>p!==x))},h=(x,m)=>{d(l.map((p,C)=>C===x?{...p,columnName:m}:p))},b=(x,m)=>{d(l.map((p,C)=>C===x?{...p,value:m}:p))},v=(x,m)=>{d(l.map((p,C)=>C===x?{...p,operator:m}:p))},k=()=>{d([]),n([]),s(null),a(null),o(!1)},S=()=>{const x=l.filter(m=>m.columnName&&m.operator&&m.value!=="");n(x),s(null),a(null),o(!1)},w=t.length>0,y=x=>{x&&d(t),o(x)};return r.jsxs(Le,{open:c,onOpenChange:y,children:[r.jsx(gt,{asChild:!0,children:r.jsxs(W,{type:"button",variant:"ghost",className:"border-r border-l-0 border-y-0 border-zinc-800 rounded-none text-xs h-full","aria-label":"Filter table data","data-active":w,children:[r.jsx(Yn,{className:"size-4"}),"Filter",w&&r.jsx(je,{className:"text-[10px] font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:t.length})]})}),r.jsxs($e,{className:"w-md space-y-2",align:"start",children:[r.jsx("div",{className:"flex items-center gap-4",children:r.jsxs(W,{variant:"outline",size:"lg",className:"text-sm",onClick:f,children:["Add filter",l&&l.length>0&&r.jsx(je,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:l.length})]})}),r.jsx("div",{className:"flex flex-col gap-4",children:l.length>0?l.map((x,m)=>r.jsxs("div",{className:"flex-1 flex h-9 gap-2",children:[r.jsxs(he,{value:x.columnName,onValueChange:p=>h(m,p),children:[r.jsx(me,{className:"w-full flex-1",children:r.jsx(ge,{placeholder:"Select column"})}),r.jsx(xe,{children:i?.map(p=>r.jsx(I,{value:p.columnName,children:p.columnName},p.columnName))})]}),r.jsxs(he,{value:x.operator,onValueChange:p=>v(m,p),children:[r.jsx(me,{children:r.jsx(ge,{placeholder:"Op"})}),r.jsxs(xe,{children:[r.jsx(I,{value:"=",children:"="}),r.jsx(I,{value:"!=",children:"!="}),r.jsx(I,{value:">",children:">"}),r.jsx(I,{value:">=",children:">="}),r.jsx(I,{value:"<",children:"<"}),r.jsx(I,{value:"<=",children:"<="}),r.jsx(I,{value:"is",children:"is"}),r.jsx(I,{value:"is not",children:"is not"}),r.jsx(I,{value:"like",children:"like"}),r.jsx(I,{value:"not like",children:"not like"}),r.jsx(I,{value:"ilike",children:"ilike"}),r.jsx(I,{value:"not ilike",children:"not ilike"})]})]}),r.jsx(ae,{type:"text",placeholder:"Value",value:x.value,onChange:p=>b(m,p.target.value)}),r.jsx(W,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>u(m),children:r.jsx(xt,{className:"size-4"})})]},m)):r.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:r.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No filters applied"})})}),r.jsxs("div",{className:"gap-2 flex justify-end",children:[r.jsx(W,{variant:"outline",size:"lg",className:"text-sm",onClick:k,children:"Reset"}),r.jsx(W,{variant:"default",size:"lg",className:"text-sm",onClick:S,children:"Apply"})]})]})]})};function Fi({className:e,size:t="default",...n}){return r.jsx(rr,{"data-slot":"switch","data-size":t,className:z("data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-[2px] aria-invalid:ring-[2px] data-[size=default]:h-[16.6px] data-[size=default]:w-[28px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50",e),...n,children:r.jsx(ar,{"data-slot":"switch-thumb",className:"bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-3.5 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform"})})}const Yi=({tableName:e})=>{const{tableCols:t}=De({tableName:e}),[n,s]=P(A.REFERENCED_TABLE_STATE_KEYS.SORT,Be(y=>y).withDefault([]).withOptions({history:"push"})),[,a]=P(A.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,i]=P(A.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[c,o]=g.useState(!1),[l,d]=g.useState([]),f=()=>{const y=t?.[0]?.columnName??"";d([...l,{columnName:y,direction:"asc"}])},u=y=>{d(l.filter((x,m)=>m!==y))},h=(y,x)=>{d(l.map((m,p)=>p===y?{...m,columnName:x}:m))},b=(y,x)=>{d(l.map((m,p)=>p===y?{...m,direction:x}:m))},v=()=>{d([]),s([]),a(null),i(null),o(!1)},k=()=>{const y=l.filter(x=>x.columnName);s(y),a(null),i(null),o(!1)},S=n.length>0,w=y=>{y&&d(n),o(y)};return r.jsxs(Le,{open:c,onOpenChange:w,children:[r.jsx(gt,{asChild:!0,children:r.jsxs(W,{variant:"ghost",className:"border-r border-l-0 border-y-0 border-zinc-800 rounded-none text-xs h-full",children:[r.jsx(pr,{className:"size-4"}),"Sort",S&&r.jsx(je,{className:"text-[10px] font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:n.length})]})}),r.jsxs($e,{className:"w-md space-y-2",align:"start",children:[r.jsx("div",{className:"flex items-center gap-4",children:r.jsxs(W,{variant:"outline",size:"lg",className:"text-sm",onClick:f,children:["Add sort",l&&l.length>0&&r.jsx(je,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:l.length})]})}),r.jsx("div",{className:"flex flex-col gap-4",children:l.length>0?l.map((y,x)=>r.jsxs("div",{className:"flex-1 flex h-9 gap-2 items-center",children:[r.jsxs(he,{value:y.columnName,onValueChange:m=>h(x,m),children:[r.jsx(me,{className:"w-full flex-1",children:r.jsx(ge,{placeholder:"Select column"})}),r.jsx(xe,{children:t?.map(m=>r.jsx(I,{value:m.columnName,children:m.columnName},m.columnName))})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(ie,{htmlFor:`sort-direction-${x}`,children:"Asc"}),r.jsx(Fi,{id:`sort-direction-${x}`,checked:y.direction==="desc",onCheckedChange:m=>b(x,m?"desc":"asc")}),r.jsx(ie,{htmlFor:`sort-direction-${x}`,children:"Desc"})]}),r.jsx(W,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>u(x),children:r.jsx(xt,{className:"size-4"})})]},x)):r.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:r.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No sorts applied"})})}),r.jsxs("div",{className:"gap-2 flex justify-end",children:[r.jsx(W,{variant:"outline",size:"lg",className:"text-sm",onClick:v,children:"Reset"}),r.jsx(W,{variant:"default",size:"lg",className:"text-sm",onClick:k,children:"Apply"})]})]})]})};function Pi({className:e,...t}){return r.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:r.jsx("table",{"data-slot":"table",className:z("w-full caption-bottom text-xs",e),...t})})}function Ii({className:e,...t}){return r.jsx("thead",{"data-slot":"table-header",className:z("[&_tr]:border-b",e),...t})}function Bi({className:e,...t}){return r.jsx("tbody",{"data-slot":"table-body",className:z("[&_tr:last-child]:border-0",e),...t})}function Pt({className:e,...t}){return r.jsx("tr",{"data-slot":"table-row",className:z("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...t})}function Ki({className:e,...t}){return r.jsx("th",{"data-slot":"table-head",className:z("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...t})}function kn({className:e,...t}){return r.jsx("td",{"data-slot":"table-cell",className:z("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...t})}const wt=({tableName:e,isReferencedTable:t=!1})=>{const{selectedDatabase:n}=st(),[s]=P(A.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),a=e||s,[i]=P(t?A.REFERENCED_TABLE_STATE_KEYS.CURSOR:A.TABLE_STATE_KEYS.CURSOR),[c]=P(t?A.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString():A.TABLE_STATE_KEYS.LIMIT),[o]=P(t?A.REFERENCED_TABLE_STATE_KEYS.DIRECTION:A.TABLE_STATE_KEYS.DIRECTION),[l]=P(A.REFERENCED_TABLE_STATE_KEYS.SORT,Be(w=>w).withDefault([]).withOptions({history:"push"})),[d]=P(A.TABLE_STATE_KEYS.SORT),[f]=P(A.TABLE_STATE_KEYS.ORDER),[u]=P(t?A.REFERENCED_TABLE_STATE_KEYS.FILTERS:A.TABLE_STATE_KEYS.FILTERS,Be(w=>w).withDefault([]).withOptions({history:"push"})),{data:h,isLoading:b,isRefetching:v,refetch:k,error:S}=Er({queryKey:[A.CACHE_KEYS.TABLE_DATA,a,i,c,o,t?JSON.stringify(l):d,f,JSON.stringify(u),n],queryFn:async()=>{const w=A.CACHE_KEYS.TABLE_DEFAULT_LIMIT.toString(),y={limit:c?.toString()||w,db:n??void 0};return i&&(y.cursor=i),o&&(y.direction=o),t?l&&l.length>0&&(y.sort=JSON.stringify(l)):(d&&(y.sort=d),f&&(y.order=f)),u&&u.length>0&&(y.filters=JSON.stringify(u)),await rt.get(`/tables/${a}/data`,{params:y})},select:w=>w.data.data,enabled:!!a});return{tableData:h,isLoadingTableData:b,isRefetchingTableData:v,errorTableData:S,refetchTableData:k}},Vi=({tableName:e,referencedColumn:t,columnName:n})=>{const{setValue:s}=Tn(),{closeSheet:a}=de(),{tableCols:i,isLoadingTableCols:c}=De({tableName:e}),[o,l]=P(A.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),{tableData:d,isLoadingTableData:f}=wt({tableName:e,isReferencedTable:!0}),[,u]=P(A.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,h]=P(A.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[b,v]=P(A.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString());g.useEffect(()=>{e&&o!==e&&l(e),e&&!b&&v(A.REFERENCED_TABLE_STATE_KEYS.DEFAULT_LIMIT.toString())},[e,o,b,l,v]);const k=()=>{d?.meta?.nextCursor&&(u(d.meta.nextCursor),h("forward"))},S=()=>{d?.meta?.prevCursor&&(u(d.meta.prevCursor),h("backward"))},w=g.useMemo(()=>i?.map(m=>({id:m.columnName,accessorKey:m.columnName,header:m.columnName,cell:({row:p})=>r.jsx("div",{className:"font-medium max-w-[200px] truncate",children:Mr(p.getValue(m.columnName))})}))??[],[i]),y=Hn({columns:w??[],data:d?.data??[],getCoreRowModel:qn()}),x=m=>{console.log(m.original[t??""]),s(n??"",m.original[t??""]),a("record-reference")};return c||f?r.jsx("div",{className:"flex items-center justify-center h-full",children:r.jsx(_n,{size:"size-8"})}):r.jsxs("div",{children:[r.jsxs("div",{className:"sticky top-0 left-0 right-0 h-8 border-b border-zinc-800 w-full flex items-center justify-between bg-background z-50",children:[r.jsxs("div",{className:"flex items-center h-full",children:[r.jsx(zi,{tableName:e}),r.jsx(Yi,{tableName:e})]}),r.jsxs("div",{className:"flex items-center h-full",children:[r.jsx(W,{variant:"ghost",size:"icon",className:"border-l border-r-0 border-y-0 border-zinc-800 rounded-none text-xs h-full aspect-square size-8",onClick:S,disabled:!d?.meta?.hasPreviousPage,children:r.jsx(br,{className:"size-3"})}),r.jsx(W,{variant:"ghost",size:"icon",className:"border-r border-l border-y-0 border-zinc-800 rounded-none text-xs h-full aspect-square size-8",onClick:k,disabled:!d?.meta?.hasNextPage,children:r.jsx(yr,{className:"size-3"})})]})]}),r.jsxs(Pi,{children:[r.jsx(Ii,{children:y.getHeaderGroups().map(m=>r.jsx(Pt,{className:"hover:bg-transparent text-xs sticky top-0 right-0 left-0",children:m.headers.map(p=>r.jsx(Ki,{className:"border-r border-zinc-800",children:p.isPlaceholder?null:tt(p.column.columnDef.header,p.getContext())},p.id))},m.id))}),r.jsx(Bi,{children:y.getRowModel().rows?.length?y.getRowModel().rows.map(m=>r.jsx(Pt,{className:"text-xs cursor-pointer",onClick:()=>x(m),children:m.getVisibleCells().map(p=>r.jsx(kn,{className:"border-r border-zinc-800",children:tt(p.column.columnDef.cell,p.getContext())},p.id))},m.id)):r.jsx(Pt,{children:r.jsx(kn,{className:"h-24 text-center",colSpan:w.length,children:"No results."})})})]})]})},Ui=()=>{const[,e]=P(A.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),[,t]=P(A.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,n]=P(A.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[,s]=P(A.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString()),[,a]=P(A.REFERENCED_TABLE_STATE_KEYS.SORT.toString()),[,i]=P(A.REFERENCED_TABLE_STATE_KEYS.ORDER.toString()),[,c]=P(A.REFERENCED_TABLE_STATE_KEYS.FILTERS,Be(f=>f).withDefault([]).withOptions({history:"push"})),{closeSheet:o,isSheetOpen:l,recordReferenceData:d}=de();return!d.tableName||!d.referencedColumn?null:r.jsx(He,{title:`View records in the table ${d.tableName}`,size:"max-w-lg!",contentClassName:"p-0",open:l("record-reference"),onOpenChange:f=>{f||(o("record-reference"),e(null),t(null),n(null),s(null),a(null),i(null),c(null))},children:r.jsx(Vi,{tableName:d.tableName,referencedColumn:d.referencedColumn??null,columnName:d.columnName??""})})},Li=({tableName:e})=>{const t=pt(),{closeSheet:n}=de(),{selectedDatabase:s}=st(),{mutateAsync:a,isPending:i}=bt({mutationFn:async o=>{const l=new URLSearchParams({db:s??""});return(await rt.post("/records",{tableName:e,data:o},{params:l})).data.data},onSuccess:async o=>{await Promise.all([t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLES_LIST]})]),n("add-record"),console.log("Record created successfully:",o)},onError:o=>{console.error("Error creating record:",o)}});return{createRecord:async(o,l)=>{if(!o||Object.keys(o).length===0)throw new Error("At least one field is required");return Ae.promise(a(o,l),{loading:"Creating record...",success:d=>d||"Record created successfully",error:d=>d.detail||d.message||"Failed to create record"})},isCreatingRecord:i}},$i=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=de(),{tableCols:s,isLoadingTableCols:a}=De({tableName:e}),{createRecord:i,isCreatingRecord:c}=Li({tableName:e}),o=lr(),l=async h=>{console.log("onSubmit",h),i(h,{onSuccess:()=>{o.reset(),t("add-record")},onError:b=>{console.error("Failed to create record:",b)}})},d=h=>{console.log("onError",h)},f=()=>{o.reset(),t("add-record")};console.log("tableCols",s);const u=()=>s&&s.length>0?r.jsxs(cr,{...o,children:[r.jsxs("form",{onSubmit:o.handleSubmit(l,d),className:"flex flex-col h-full",children:[r.jsx("div",{className:"space-y-6",children:s&&s.length>0&&!a?s.map(h=>r.jsx(Wi,{...h},h.columnName)):null}),r.jsxs("div",{className:"flex justify-end gap-2 py-6",children:[r.jsx(at,{asChild:!0,onClick:f,disabled:c,children:r.jsx(W,{variant:"outline",size:"lg",children:"Close"})}),r.jsx(W,{type:"submit",size:"lg",disabled:c||!o.formState.isDirty,children:"Save"})]})]}),r.jsx(Ui,{})]}):r.jsx("div",{className:"flex flex-col h-full",children:r.jsx("div",{className:"space-y-6",children:r.jsx(se,{variant:"info",title:"No columns found",message:"Please add at least one column to the table before adding a record."})})});return r.jsx(He,{title:`Add a new record to the table: ${e}`,open:n("add-record"),onOpenChange:h=>{h||f()},children:u()})},nn=or,vt=g.forwardRef(({className:e,...t},n)=>r.jsx(En,{ref:n,className:z("inline-flex h-10 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));vt.displayName=En.displayName;const We=g.forwardRef(({className:e,...t},n)=>r.jsx(On,{ref:n,className:z("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...t}));We.displayName=On.displayName;const ze=g.forwardRef(({className:e,...t},n)=>r.jsx(Mn,{ref:n,className:z("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));ze.displayName=Mn.displayName;const St=({tableName:e})=>{const t=pt(),{closeSheet:n}=de(),{selectedDatabase:s}=st(),{mutateAsync:a,isPending:i}=bt({mutationFn:async o=>{const l=new URLSearchParams({db:s??""}),d=await rt.post("/records/bulk",{tableName:e,records:o},{params:l});return console.log("res",d.data.data),d.data.data},onSuccess:async()=>{await Promise.all([t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLES_LIST],exact:!1}),t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLE_COLUMNS,e],exact:!1})]),n("bulk-insert-records")}});return{bulkInsertRecords:async(o,l)=>{if(!o||o.length===0)throw new Error("At least one record is required");return Ae.promise(a(o),{loading:`Inserting ${o.length} record${o.length!==1?"s":""}...`,success:d=>(l?.onSuccess?.(d),d.failureCount>0?`${d.successCount} records inserted, ${d.failureCount} failed`:d.message),error:d=>(l?.onError?.(d),d.detail||d.message||"Failed to insert records")})},isInserting:i}},Fe=e=>{const t=e.trim();if(t.startsWith("[")||t.startsWith("{"))try{const n=JSON.parse(t);if(Array.isArray(n))return n;if(typeof n=="object"&&n!==null)return[n];throw new Error("Invalid JSON format")}catch(n){throw n instanceof SyntaxError?new Error(`Invalid JSON format: ${n.message.replace("JSON.","")}`):n}return Hi(t)},Hi=e=>{const t=e.split(`
2
+ `).filter(c=>c.trim());if(t.length<1)throw new Error("No data to parse");const n=t[0],s=qi(n),a=jn(n,s).map(c=>c.trim());if(a.length===0)throw new Error("No headers found in CSV");const i=[];for(let c=1;c<t.length;c++){const o=jn(t[c],s);o.length!==a.length&&console.warn(`Row ${c+1} has ${o.length} values but ${a.length} headers expected`);const l={};a.forEach((d,f)=>{const u=o[f]?.trim()??"";l[d]=Ji(u)}),i.push(l)}if(i.length===0)throw new Error("No records found in CSV");return i},qi=e=>{const t=[","," ",";"];let n=0,s=",";for(const a of t){const i=(e.match(new RegExp(`\\${a}`,"g"))||[]).length;i>n&&(n=i,s=a)}return s},jn=(e,t)=>{const n=[];let s="",a=!1;for(let i=0;i<e.length;i++){const c=e[i],o=e[i+1];c==='"'?a&&o==='"'?(s+='"',i++):a=!a:c===t&&!a?(n.push(s),s=""):s+=c}return n.push(s),n},Ji=e=>{if(e===""||e==="null")return null;if(e==="true")return!0;if(e==="false")return!1;if(!Number.isNaN(Number(e))&&e!==""){const t=Number(e);if(String(t)===e||e.includes(".")&&!Number.isNaN(parseFloat(e)))return t}if(e.startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]"))try{return JSON.parse(e)}catch{}return e},Gi=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=de(),{bulkInsertRecords:s,isInserting:a}=St({tableName:e}),i=g.useRef(null),[c,o]=g.useState(""),[l,d]=g.useState(null),[f,u]=g.useState([]),[h,b]=g.useState(null),[v,k]=g.useState("file"),S=m=>{const p=m.target.files?.[0];p&&(d(p),u([]),b(null))},w=g.useCallback(()=>{b(null),u([]);try{if(v==="file"&&l){const m=new FileReader;m.onload=p=>{try{const C=p.target?.result,j=Fe(C);u(j)}catch(C){b(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(l)}else if(c.trim()){const m=Fe(c);u(m)}else b(v==="file"?"No file selected":"Input is empty")}catch(m){b(m instanceof Error?m.message:"Failed to format data")}},[c,l,v]),y=async()=>{if(f.length===0){b("No records to insert");return}try{await s(f,{onSuccess:()=>{o(""),d(null),u([]),b(null),t("bulk-insert-csv")}})}catch(m){console.error("Error inserting records:",m)}},x=()=>{o(""),d(null),u([]),b(null),t("bulk-insert-csv")};return r.jsx(He,{title:`Add data from CSV into: ${e}`,open:n("bulk-insert-csv"),onOpenChange:m=>{m||x()},children:r.jsxs("div",{className:"flex flex-col h-full gap-4",children:[r.jsx(se,{variant:"info",title:"CSV Import",message:"Enter CSV data with headers. Supports comma, tab, or semicolon delimiters. First row should be column names."}),r.jsxs(nn,{value:v,onValueChange:m=>k(m),children:[r.jsxs(vt,{className:"grid w-full grid-cols-2",children:[r.jsx(We,{value:"file",children:"File"}),r.jsx(We,{value:"text",children:"Text"})]}),r.jsx(ze,{value:"file",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx(ie,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select CSV file"}),r.jsx("input",{id:"file-input",ref:i,type:"file",accept:".csv",onChange:S,disabled:a,className:"text-sm text-zinc-400 file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-zinc-700 file:text-white hover:file:bg-zinc-600 cursor-pointer disabled:opacity-50"})]})}),r.jsx(ze,{value:"text",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex-1 flex flex-col",children:[r.jsx(ie,{htmlFor:"text-input",className:"text-sm font-medium mb-2 text-zinc-300",children:"Data Input"}),r.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),u([]),b(null)},placeholder:`column1,column2,column3
3
+ value1,value2,value3
4
+ value4,value5,value6`,className:"flex-1 resize-none font-mono text-sm",disabled:a})]})})]}),h&&r.jsx(se,{variant:"error",title:"Parse Error",message:h}),f.length>0&&r.jsx(se,{variant:"success",title:"Ready to Insert",message:`${f.length} record${f.length!==1?"s":""} parsed successfully`}),r.jsxs("div",{className:"flex justify-between gap-2",children:[r.jsx(W,{variant:"secondary",size:"lg",onClick:w,disabled:v==="file"?!l:!c.trim()||a,children:"Format"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(at,{asChild:!0,onClick:x,disabled:a,children:r.jsx(W,{variant:"outline",size:"lg",children:"Close"})}),r.jsx(W,{type:"button",size:"lg",onClick:y,disabled:f.length===0||a,children:a?"Inserting...":"Insert"})]})]})]})})},Qi=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=de(),{bulkInsertRecords:s,isInserting:a}=St({tableName:e}),i=g.useRef(null),[c,o]=g.useState(""),[l,d]=g.useState(null),[f,u]=g.useState([]),[h,b]=g.useState(null),[v,k]=g.useState("file"),S=m=>{const p=m.target.files?.[0];p&&(d(p),u([]),b(null))},w=g.useCallback(()=>{b(null),u([]);try{if(v==="file"&&l){const m=new FileReader;m.onload=p=>{try{const C=p.target?.result,j=Fe(C);u(j)}catch(C){b(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(l)}else if(c.trim()){const m=Fe(c);u(m)}else b(v==="file"?"No file selected":"Input is empty")}catch(m){b(m instanceof Error?m.message:"Failed to format data")}},[c,l,v]),y=async()=>{if(f.length===0){b("No records to insert");return}try{await s(f,{onSuccess:()=>{o(""),d(null),u([]),b(null),t("bulk-insert-excel")}})}catch(m){console.error("Error inserting records:",m)}},x=()=>{o(""),d(null),u([]),b(null),t("bulk-insert-excel")};return r.jsx(He,{title:`Add data from Excel into: ${e}`,open:n("bulk-insert-excel"),onOpenChange:m=>{m||x()},children:r.jsxs("div",{className:"flex flex-col h-full gap-4",children:[r.jsx(se,{variant:"info",title:"Excel Import",message:"Upload an Excel file (.xlsx, .xls) with headers in the first row. Column names should match your table schema."}),r.jsxs(nn,{value:v,onValueChange:m=>k(m),children:[r.jsxs(vt,{className:"grid w-full grid-cols-2",children:[r.jsx(We,{value:"file",children:"File"}),r.jsx(We,{value:"text",children:"Text"})]}),r.jsx(ze,{value:"file",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx(ie,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select Excel file"}),r.jsx("input",{id:"file-input",ref:i,type:"file",accept:".xlsx,.xls",onChange:S,disabled:a,className:"text-sm text-zinc-400 file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-zinc-700 file:text-white hover:file:bg-zinc-600 cursor-pointer disabled:opacity-50"})]})}),r.jsx(ze,{value:"text",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex-1 flex flex-col",children:[r.jsx(ie,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),r.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),u([]),b(null)},placeholder:`column1 column2 column3
5
+ value1 value2 value3
6
+ value4 value5 value6`,className:"flex-1 resize-none font-mono text-sm",disabled:a})]})})]}),h&&r.jsx(se,{variant:"error",title:"Parse Error",message:h}),f.length>0&&r.jsx(se,{variant:"success",title:"Ready to Insert",message:`${f.length} record${f.length!==1?"s":""} parsed successfully`}),r.jsxs("div",{className:"flex justify-between gap-2",children:[r.jsx(W,{variant:"secondary",size:"lg",onClick:w,disabled:v==="file"?!l:!c.trim()||a,children:"Format"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(at,{asChild:!0,onClick:x,disabled:a,children:r.jsx(W,{variant:"outline",size:"lg",children:"Close"})}),r.jsx(W,{type:"button",size:"lg",onClick:y,disabled:f.length===0||a,children:a?"Inserting...":"Insert"})]})]})]})})},Xi=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=de(),{bulkInsertRecords:s,isInserting:a}=St({tableName:e}),i=g.useRef(null),[c,o]=g.useState(""),[l,d]=g.useState(null),[f,u]=g.useState([]),[h,b]=g.useState(null),[v,k]=g.useState("file"),S=m=>{const p=m.target.files?.[0];p&&(d(p),u([]),b(null))},w=g.useCallback(()=>{b(null),u([]);try{if(v==="file"&&l){const m=new FileReader;m.onload=p=>{try{const C=p.target?.result,j=Fe(C);u(j)}catch(C){b(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(l)}else if(c.trim()){const m=Fe(c);u(m)}else b(v==="file"?"No file selected":"Input is empty")}catch(m){b(m instanceof Error?m.message:"Failed to format data")}},[c,l,v]),y=async()=>{if(f.length===0){b("No records to insert");return}try{await s(f,{onSuccess:()=>{o(""),d(null),u([]),b(null),t("bulk-insert-json")}})}catch(m){console.error("Error inserting records:",m)}},x=()=>{o(""),d(null),u([]),b(null),t("bulk-insert-json")};return r.jsx(He,{title:`Add data from JSON into: ${e}`,open:n("bulk-insert-json"),onOpenChange:m=>{m||x()},children:r.jsxs("div",{className:"flex flex-col h-full gap-4",children:[r.jsx(se,{variant:"info",title:"JSON Import",message:'Enter JSON array or single object. Example: [{"name": "John", "age": 30}, {"name": "Jane", "age": 28}]'}),r.jsxs(nn,{value:v,onValueChange:m=>k(m),children:[r.jsxs(vt,{className:"grid w-full grid-cols-2",children:[r.jsx(We,{value:"file",children:"File"}),r.jsx(We,{value:"text",children:"Text"})]}),r.jsx(ze,{value:"file",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx(ie,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select JSON file"}),r.jsx("input",{id:"file-input",ref:i,type:"file",accept:".json",onChange:S,disabled:a,className:"text-sm text-zinc-400 file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-zinc-700 file:text-white hover:file:bg-zinc-600 cursor-pointer disabled:opacity-50"})]})}),r.jsx(ze,{value:"text",className:"flex-1 flex flex-col gap-4",children:r.jsxs("div",{className:"flex-1 flex flex-col",children:[r.jsx(ie,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),r.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),u([]),b(null)},placeholder:'[{"column1": "value1", "column2": "value2"}]',className:"flex-1 resize-none font-mono text-sm",disabled:a})]})})]}),h&&r.jsx(se,{variant:"error",title:"Parse Error",message:h}),f.length>0&&r.jsx(se,{variant:"success",title:"Ready to Insert",message:`${f.length} record${f.length!==1?"s":""} parsed successfully`}),r.jsxs("div",{className:"flex justify-between gap-2",children:[r.jsx(W,{variant:"secondary",size:"lg",onClick:w,disabled:v==="file"?!l:!c.trim()||a,children:"Format"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(at,{asChild:!0,onClick:x,disabled:a,children:r.jsx(W,{variant:"outline",size:"lg",children:"Close"})}),r.jsx(W,{type:"button",size:"lg",onClick:y,disabled:f.length===0||a,children:a?"Inserting...":"Insert"})]})]})]})})},Zi=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=de(),{bulkInsertRecords:s,isInserting:a}=St({tableName:e}),[i,c]=g.useState(""),[o,l]=g.useState([]),[d,f]=g.useState(null),[u,h]=g.useState("auto"),b=g.useCallback(()=>{f(null),l([]);try{if(!i.trim()){f("Input is empty");return}const w=Fe(i);l(w)}catch(w){f(w instanceof Error?w.message:"Failed to parse data")}},[i]),v=async()=>{if(o.length===0){f("No records to insert");return}try{await s(o,{onSuccess:()=>{c(""),l([]),f(null)}})}catch(w){console.error("Error inserting records:",w)}},k=()=>{c(""),l([]),f(null),t("bulk-insert-records")},S=()=>{c(""),l([]),f(null)};return r.jsx(He,{title:`Bulk Insert Records into: ${e}`,open:n("bulk-insert-records"),onOpenChange:w=>{w||k()},children:r.jsxs("div",{className:"flex flex-col h-full gap-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{onClick:()=>h("auto"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${u==="auto"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"Auto"}),r.jsx("button",{onClick:()=>h("csv"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${u==="csv"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"CSV"}),r.jsx("button",{onClick:()=>h("json"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${u==="json"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"JSON"})]}),r.jsx(se,{variant:"info",title:"Bulk Insert",message:u==="json"?'Enter JSON array or single object. Example: [{"name": "John", "age": 30}, {"name": "Jane", "age": 28}]':"Enter CSV data with headers. Supports comma, tab, or semicolon delimiters. First row should be column names."}),r.jsxs("div",{className:"flex-1 flex flex-col",children:[r.jsx(ie,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),r.jsx(ke,{id:"text-input",value:i,onChange:w=>{c(w.target.value),l([]),f(null)},placeholder:u==="json"?'[{"column1": "value1", "column2": "value2"}]':`column1,column2,column3
7
+ value1,value2,value3
8
+ value4,value5,value6`,className:"flex-1 resize-none font-mono text-sm"})]}),d&&r.jsx(se,{variant:"error",title:"Parse Error",message:d}),o.length>0&&r.jsx(se,{variant:"success",title:"Ready to Insert",message:`${o.length} record${o.length!==1?"s":""} parsed successfully`}),r.jsxs("div",{className:"flex justify-between gap-2",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsx(W,{variant:"outline",size:"lg",onClick:S,disabled:!i||a,children:"Clear"}),r.jsx(W,{variant:"secondary",size:"lg",onClick:b,disabled:!i||a,children:"Preview"})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(at,{asChild:!0,onClick:k,disabled:a,children:r.jsx(W,{variant:"outline",size:"lg",children:"Close"})}),r.jsx(W,{type:"button",size:"lg",onClick:v,disabled:o.length===0||a,children:a?"Inserting...":"Insert"})]})]})]})})},el=()=>{const{openSheet:e}=de();return r.jsxs(Kt,{children:[r.jsx(Vt,{asChild:!0,children:r.jsxs(W,{type:"button",variant:"default",className:"h-8! border-l-0 border-y-0 border-r border-zinc-800 rounded-none flex items-center gap-2","aria-label":"Add records to the table",children:[r.jsx(Cr,{className:"size-4"}),"Add Record"]})}),r.jsxs(Ut,{align:"start",className:"w-48",children:[r.jsx(Ce,{onClick:()=>e("add-record"),children:"Add Record"}),r.jsx(Ce,{onClick:()=>e("bulk-insert-csv"),children:"Add data from CSV"}),r.jsx(Ce,{onClick:()=>e("bulk-insert-excel"),children:"Add data from Excel"}),r.jsx(Ce,{onClick:()=>e("bulk-insert-json"),children:"Add data from JSON"})]})]})},ft=(e,t)=>`${e.id??JSON.stringify(e)}-${t}`,be=dr()((e,t)=>({updates:new Map,setUpdate:(n,s,a,i)=>{e(c=>{const o=new Map(c.updates),l=ft(n,s);return a===i?o.delete(l):o.set(l,{rowData:n,columnName:s,newValue:a,originalValue:i}),console.log("setUpdate",{rowData:n,columnName:s,newValue:a,originalValue:i}),{updates:o}})},clearUpdates:()=>e({updates:new Map}),clearUpdate:(n,s)=>{e(a=>{const i=new Map(a.updates);return i.delete(ft(n,s)),{updates:i}})},getUpdates:()=>Array.from(t().updates.values()),getUpdate:(n,s)=>t().updates.get(ft(n,s))??null,hasUpdate:(n,s)=>t().updates.has(ft(n,s)),hasAnyUpdates:()=>t().updates.size>0,getUpdateCount:()=>t().updates.size})),js=()=>{const e=pt(),{table:t}=Lt.useParams(),{clearUpdates:n,getUpdateCount:s}=be(),{selectedDatabase:a}=st(),{mutateAsync:i,isPending:c}=bt({mutationFn:async o=>{if(!t)throw new Error("No table selected");const l={tableName:t,updates:o.map(f=>({rowData:f.rowData,columnName:f.columnName,value:f.newValue}))},d=new URLSearchParams({db:a??""});return rt.patch("/records",l,{params:d})},onSuccess:async o=>{const l=s();Ae.success(o.data.data||`${l} ${l===1?"change":"changes"} saved successfully`),n(),await Promise.all([e.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLE_DATA,t],exact:!1})])},onError:o=>{console.error("Update error:",o),Ae.error("Failed to save changes",{description:o instanceof Error?o.message:"Unknown error occurred"})}});return{updateCell:i,isUpdatingCell:c}},tl=()=>{const{getUpdateCount:e,clearUpdates:t}=be(),{isUpdatingCell:n}=js(),s=g.useCallback(()=>{t()},[t]);return e()===0?null:r.jsx(W,{type:"button",variant:"secondary",className:"h-8! border-l-0 border-y-0 border-r border-zinc-800 rounded-none",onClick:s,"aria-label":"Clear changes to the table",disabled:n,children:"Clear Changes"})},nl=({tableName:e})=>{const t=pt(),{tableCols:n}=De({tableName:e}),{selectedDatabase:s}=st(),{mutateAsync:a,isPending:i,reset:c,error:o}=bt({mutationFn:async({rowData:f,force:u=!1})=>{if(!e)throw new Error("No active table selected");if(!n||n.length===0)throw new Error("No table columns found");return await sl(e,n,f,u,s||void 0)},onSuccess:async f=>{console.log("result",f),Ae.success(`Deleted ${f.deletedCount} records from "${e}"`),await Promise.all([t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[A.CACHE_KEYS.TABLES_LIST]})])},onError:f=>{console.error("Delete error:",f),f instanceof ur&&f.status===409?Ae.error(`Cannot delete records from "${e}" due to foreign key constraints, on ${f.response?.data.relatedRecords.map(u=>u.tableName).join(", ")}`):Ae.error(f instanceof Error?f.message:"Unknown error occurred")}});return{deleteCells:async f=>a({rowData:f,force:!1}),forceDeleteCells:async f=>a({rowData:f,force:!0}),isDeletingCells:i,resetDeleteResult:c,deleteCellsError:o}},sl=async(e,t,n,s,a)=>{const i=s?"/records/force":"/records",c=t.find(d=>d.isPrimaryKey);if(!c)throw new Error("No primary key found for this table");const o=n.map(d=>({columnName:c.columnName,value:d[c.columnName]})),l={tableName:e,primaryKeys:o};try{const d=await rt.delete(i,{data:l,params:{db:a}});return{deletedCount:d.data.data.deletedCount,fkViolation:d.data.data.fkViolation,relatedRecords:d.data.data.relatedRecords}}catch(d){const f=d;if(console.log("axiosError",f),f.response?.status===409)return{deletedCount:f.response.data.deletedCount};throw d}},rl=({isOpenFkDialog:e,handleDialogClose:t,relatedRecords:n,handleCancelForceDelete:s,handleForceDelete:a,isDeletingCells:i})=>r.jsx(Tr,{open:e,onOpenChange:t,children:r.jsxs(_r,{className:"max-w-2xl z-500",children:[r.jsxs(Rr,{children:[r.jsx(Ar,{children:"Cannot Delete - Foreign Key Constraint"}),r.jsx(Wr,{children:"The selected records cannot be deleted because they are referenced by records in other tables. You can either cancel the operation or force delete, which will also delete all related records."})]}),r.jsx(al,{relatedRecords:n}),r.jsxs(zr,{className:"gap-2",children:[r.jsx(W,{variant:"outline",onClick:s,disabled:i,children:"Cancel"}),r.jsx(W,{variant:"destructive",onClick:a,disabled:i,children:i?"Deleting...":"Force Delete All"})]})]})}),al=({relatedRecords:e})=>r.jsx("div",{className:"space-y-4 max-h-64 overflow-y-auto",children:e.map((t,n)=>r.jsxs("div",{className:"border border-zinc-700 rounded-md p-3",children:[r.jsxs("div",{className:"font-medium text-sm mb-2",children:["Table: ",r.jsx("span",{className:"text-primary",children:t.tableName}),r.jsxs("span",{className:"text-muted-foreground ml-2",children:["(",t.records.length," record",t.records.length!==1?"s":"",")"]})]}),r.jsxs("div",{className:"text-xs text-muted-foreground mb-2",children:["References column: ",t.columnName]}),r.jsx("div",{className:"bg-zinc-900 rounded p-2 text-xs overflow-x-auto",children:r.jsxs("pre",{className:"whitespace-pre-wrap",children:[JSON.stringify(t.records.slice(0,5),null,2),t.records.length>5&&r.jsxs("div",{className:"text-muted-foreground mt-2",children:["... and ",t.records.length-5," more"]})]})})]},`${t.tableName}-${t.columnName}-${n}`))}),ol=({selectedRows:e,setRowSelection:t,tableName:n})=>{const{deleteCells:s,forceDeleteCells:a,isDeletingCells:i,resetDeleteResult:c}=nl({tableName:n}),[o,l]=g.useState([]),[d,f]=g.useState(!1),[u,h]=g.useState(!1),[b,v]=g.useState([]),k=g.useCallback(()=>{h(!0)},[]),S=g.useCallback(async()=>{const m=e.map(p=>p.original);h(!1);try{await s(m),t({})}catch{l(m),v([]),f(!0)}},[s,e,t]),w=async()=>{if(o.length===0)return;const m=await a(o);console.log("Force delete response:",m),m?.deletedCount>0&&(f(!1),l([]),v([]),c(),t({}))},y=g.useCallback(()=>{f(!1),l([]),v([]),c()},[c]),x=m=>{i||(m?f(m):y())};return e?.length===0?null:r.jsxs(r.Fragment,{children:[r.jsxs(W,{type:"button",variant:"destructive",className:"h-8! border-l-0 border-y-0 border-r border-zinc-800 text-white rounded-none",onClick:k,"aria-label":"Delete the selected record",disabled:i,children:["Delete Record",e?.length>1&&r.jsx("span",{className:"ml-1.5 px-1.5 text-[10px] bg-white/20 border border-white/20 rounded",children:e?.length})]}),r.jsx(Pn,{open:u,onOpenChange:h,children:r.jsxs(In,{children:[r.jsxs(Bn,{children:[r.jsxs(Kn,{children:["Delete ",e.length===1?"Record":"Records"]}),r.jsxs(Vn,{children:["Are you sure you want to delete"," ",e.length===1?"this record":`${e.length} records`," ",'from "',n,'"? This action cannot be undone.']})]}),r.jsxs(Un,{children:[r.jsx(Ln,{children:"Cancel"}),r.jsx($n,{variant:"destructive",onClick:S,children:"Delete"})]})]})}),r.jsx(rl,{isOpenFkDialog:d,handleDialogClose:x,relatedRecords:b,handleCancelForceDelete:y,handleForceDelete:w,isDeletingCells:i})]})},il=({tableName:e})=>{const[t,n]=P(A.TABLE_STATE_KEYS.FILTERS,Be(x=>x).withDefault([]).withOptions({history:"push"})),[,s]=P(A.TABLE_STATE_KEYS.CURSOR),[,a]=P(A.TABLE_STATE_KEYS.DIRECTION),{tableCols:i}=De({tableName:e}),[c,o]=g.useState(!1),[l,d]=g.useState([]),f=()=>{const x=i?.[0]?.columnName??"";d([...l,{columnName:x,operator:"=",value:""}])},u=x=>{d(l.filter((m,p)=>p!==x))},h=(x,m)=>{d(l.map((p,C)=>C===x?{...p,columnName:m}:p))},b=(x,m)=>{d(l.map((p,C)=>C===x?{...p,value:m}:p))},v=(x,m)=>{d(l.map((p,C)=>C===x?{...p,operator:m}:p))},k=()=>{d([]),n([]),s(null),a(null),o(!1)},S=()=>{const x=l.filter(m=>m.columnName&&m.operator&&m.value!=="");n(x),s(null),a(null),o(!1)},w=t.length>0,y=x=>{x&&d(t),o(x)};return r.jsxs(Le,{open:c,onOpenChange:y,children:[r.jsx(gt,{asChild:!0,children:r.jsx(W,{type:"button",variant:"ghost",className:"size-8! aspect-square border-l-0 border-y-0 border-r border-zinc-800 rounded-none","aria-label":"Filter table data","data-active":w,children:r.jsx(Yn,{className:"size-4"})})}),r.jsxs($e,{className:"w-md space-y-2",align:"start",children:[r.jsx("div",{className:"flex items-center gap-4",children:r.jsxs(W,{variant:"outline",size:"lg",className:"text-sm",onClick:f,children:["Add filter",l&&l.length>0&&r.jsx(je,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:l.length})]})}),r.jsx("div",{className:"flex flex-col gap-4",children:l.length>0?l.map((x,m)=>r.jsxs("div",{className:"flex-1 flex h-9 gap-2",children:[r.jsxs(he,{value:x.columnName,onValueChange:p=>h(m,p),children:[r.jsx(me,{className:"w-full flex-1",children:r.jsx(ge,{placeholder:"Select column"})}),r.jsx(xe,{children:i?.map(p=>r.jsx(I,{value:p.columnName,children:p.columnName},p.columnName))})]}),r.jsxs(he,{value:x.operator,onValueChange:p=>v(m,p),children:[r.jsx(me,{children:r.jsx(ge,{placeholder:"Op"})}),r.jsxs(xe,{children:[r.jsx(I,{value:"=",children:"="}),r.jsx(I,{value:"!=",children:"!="}),r.jsx(I,{value:">",children:">"}),r.jsx(I,{value:">=",children:">="}),r.jsx(I,{value:"<",children:"<"}),r.jsx(I,{value:"<=",children:"<="}),r.jsx(I,{value:"is",children:"is"}),r.jsx(I,{value:"is not",children:"is not"}),r.jsx(I,{value:"like",children:"like"}),r.jsx(I,{value:"not like",children:"not like"}),r.jsx(I,{value:"ilike",children:"ilike"}),r.jsx(I,{value:"not ilike",children:"not ilike"})]})]}),r.jsx(ae,{type:"text",placeholder:"Value",value:x.value,onChange:p=>b(m,p.target.value)}),r.jsx(W,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>u(m),children:r.jsx(xt,{className:"size-4"})})]},m)):r.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:r.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No filters applied"})})}),r.jsxs("div",{className:"gap-2 flex justify-end",children:[r.jsx(W,{variant:"outline",size:"lg",className:"text-sm",onClick:k,children:"Reset"}),r.jsx(W,{variant:"default",size:"lg",className:"text-sm",onClick:S,children:"Apply"})]})]})]})},ll=({tableName:e})=>{const{refetchTableData:t,isRefetchingTableData:n}=wt({tableName:e}),{refetchTableCols:s,isRefetchingTableCols:a}=De({tableName:e}),i=g.useCallback(()=>{Promise.all([t(),s()])},[t,s]);return r.jsx(W,{type:"button",variant:"ghost",className:"size-8! aspect-square border-l-0 border-y-0 border-r border-zinc-800 rounded-none",onClick:i,"aria-label":"Refetch table data and columns",disabled:n||a,children:r.jsx(Fn,{className:"size-4"})})},cl=({setRowSelection:e})=>{const{getUpdates:t,getUpdateCount:n}=be(),{updateCell:s,isUpdatingCell:a}=js(),i=g.useCallback(async()=>{const o=t();if(o.length!==0){console.log("Saving updates:",o);try{await s(o),e({})}catch(l){console.error("Failed to save updates:",l)}}},[t,s,e]);if(n()===0)return null;const c=n();return r.jsxs(W,{type:"button",variant:"default",className:"h-8! border-l-0 border-y-0 border-r border-zinc-800 rounded-none bg-green-700 text-white hover:bg-green-800",onClick:i,"aria-label":"Save changes to the table",disabled:a,children:["Save Changes",c>0&&r.jsx("span",{className:"ml-1.5 px-1.5 text-[10px] bg-white/20 border border-white/20 rounded",children:c})]})},Nn=({selectedRows:e,setRowSelection:t,tableName:n})=>r.jsx("header",{className:"max-h-8 overflow-hidden border-b border-zinc-800 w-full flex items-center justify-between bg-black sticky top-0 left-0 right-0 z-0",children:r.jsxs("div",{className:"flex items-center ",children:[r.jsx(ll,{tableName:n}),r.jsx(il,{tableName:n}),r.jsx(el,{}),r.jsx(cl,{setRowSelection:t}),r.jsx(tl,{}),r.jsx(ol,{tableName:n,selectedRows:e,setRowSelection:t})]})});function Je({table:e,cell:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,className:o,onClick:l,onKeyDown:d,...f}){const{getUpdate:u}=be(),h=e.options.meta,b=t.row.original,v=!!u(b,s),k=g.useCallback(C=>{a||(C.preventDefault(),l?.(C),i?h?.onCellEditingStart?.(n,s):h?.onCellClick?.(n,s,C))},[h,n,s,a,i,l]),S=g.useCallback(C=>{a||h?.onCellContextMenu?.(n,s,C)},[h,n,s,a]),w=g.useCallback(C=>{a||h?.onCellMouseDown?.(n,s,C)},[h,n,s,a]),y=g.useCallback(C=>{a||h?.onCellMouseEnter?.(n,s,C)},[h,n,s,a]),x=g.useCallback(()=>{a||h?.onCellMouseUp?.()},[h,a]),m=g.useCallback(C=>{a||(C.preventDefault(),h?.onCellDoubleClick?.(n,s))},[h,n,s,a]),p=g.useCallback(C=>{if(d?.(C),!C.defaultPrevented&&!(C.key==="ArrowUp"||C.key==="ArrowDown"||C.key==="ArrowLeft"||C.key==="ArrowRight"||C.key==="Home"||C.key==="End"||C.key==="PageUp"||C.key==="PageDown"||C.key==="Tab")&&i&&!a){if(C.key==="F2"||C.key==="Enter"){C.preventDefault(),C.stopPropagation(),h?.onCellEditingStart?.(n,s);return}if(C.key===" "){C.preventDefault(),C.stopPropagation(),h?.onCellEditingStart?.(n,s);return}C.key.length===1&&!C.ctrlKey&&!C.metaKey&&(C.preventDefault(),C.stopPropagation(),h?.onCellEditingStart?.(n,s))}},[d,i,a,h,n,s]);return r.jsx("div",{role:"button","data-slot":"grid-cell-wrapper","data-editing":a?"":void 0,"data-focused":i?"":void 0,"data-selected":c?"":void 0,"data-has-update":v?"":void 0,tabIndex:i&&!a?0:-1,className:z("size-full px-2 py-1.5 text-left text-sm outline-none has-data-[slot=checkbox]:pt-2.5","**:data-[slot=grid-cell-content]:line-clamp-1",{"ring-1 ring-ring ring-inset":i,"bg-primary/10":c&&!a,"cursor-default":!a,"ring-2 ring-primary":v},o),onClick:k,onContextMenu:S,onDoubleClick:m,onMouseDown:w,onMouseEnter:y,onMouseUp:x,onKeyDown:p,...f})}const ht=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l,getUpdate:d}=be(),f=e.getValue(),u=f!=null&&typeof f=="object"?JSON.stringify(f):f,[h,b]=g.useState(()=>u??""),[v,k]=g.useState(!1),S=g.useRef(null),w=g.useRef(null),y=t.options.meta,x=e.row.original,m=s,p=d(x,m),C=p?p.newValue:u??"",j=g.useCallback(()=>{console.log("onSave",{editorValue:h,initialValue:u,columnName:m,rowData:x}),o(x,m,h,u),y?.onCellEditingStop?.(),k(!1)},[y,h,u,m,x,o]),E=g.useCallback(()=>{b(u??""),l(x,m),y?.onCellEditingStop?.(),k(!1)},[y,u,m,x,l,h]),N=g.useCallback(_=>{const M=_.target.value;console.log("onChange",M,m,h,u),b(M)},[m,h,u]),O=g.useCallback(_=>{k(_),_||(h!==u&&o(x,m,h,u),y?.onCellEditingStop?.())},[y,h,u,m,x,o]),R=g.useCallback(_=>{if(_.preventDefault(),S.current){S.current.focus();const M=S.current.value.length;S.current.setSelectionRange(M,M)}},[]),H=g.useCallback(_=>{a&&!v&&(_.key==="Escape"?(_.preventDefault(),y?.onCellEditingStop?.()):_.key==="Tab"&&(_.preventDefault(),y?.onCellEditingStop?.({direction:_.shiftKey?"left":"right"})))},[a,v,y]),G=g.useCallback(_=>{_.key==="Escape"?(_.preventDefault(),console.log("onTextareaKeyDown",_.key,h,u),E()):_.key==="Enter"&&(_.ctrlKey||_.metaKey)&&(_.preventDefault(),console.log("onTextareaKeyDown",_.key,h,u),j()),_.stopPropagation()},[E,j,h,u]),J=g.useCallback(()=>{h!==u&&o(x,m,h,u),y?.onCellEditingStop?.(),k(!1)},[y,h,u,m,x,o]);return g.useEffect(()=>{a&&!v?(b(C),k(!0)):!a&&v&&k(!1)},[a,v,C]),g.useEffect(()=>{i&&!a&&!y?.isScrolling&&w.current&&w.current.focus()},[i,a,y?.isScrolling]),Ke("enter",()=>j()),Ke("esc",()=>E()),r.jsxs(Le,{open:v,onOpenChange:O,children:[r.jsx(Rn,{asChild:!0,children:r.jsx(Je,{ref:w,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:H,children:r.jsx("span",{"data-slot":"grid-cell-content",children:C})})}),r.jsxs($e,{"data-grid-cell-editor":"",align:"start",side:"bottom",sideOffset:0,className:"w-[400px] rounded-none p-0 gap-0",onOpenAutoFocus:R,children:[r.jsx(ke,{ref:S,value:h,onChange:N,onKeyDown:G,onBlur:J,className:"min-h-[150px] resize-none rounded-none border-0 shadow-none focus-visible:ring-0",placeholder:"Enter text..."}),r.jsxs("div",{className:"flex flex-col border-t",children:[r.jsxs(W,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[r.jsx(je,{className:"text-xs font-normal",children:"⌘↵"}),r.jsx("span",{className:"ml-1 text-xs",children:"Save Changes"})]}),r.jsxs(W,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[r.jsx(je,{className:"text-xs font-normal",children:"esc"}),r.jsx("span",{className:"ml-1 text-xs",children:"Cancel Changes"})]})]})]})]})});ht.displayName="TableTextCell";const Ns=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l}=be(),d=e.getValue(),[f,u]=g.useState(()=>d),[h,b]=g.useState(!1),v=g.useRef(null),k=g.useRef(null),S=t.options.meta,w=e.row.original,y=s,x=g.useCallback(()=>{console.log("onSave",{value:f,initialValue:d,columnName:y,rowData:w}),o(w,y,f,d),b(!1),S?.onCellEditingStop?.()},[S,f,d,y,w,o]),m=g.useCallback(()=>{u(d),l(w,y),b(!1),S?.onCellEditingStop?.()},[S,d,y,w,l,f]),p=g.useCallback(N=>{const O=N.target.value;console.log("onChange",O,y,f,d),u(Number(O)),o(w,y,Number(O),d)},[y,f,d,w,o]),C=g.useCallback(N=>{a&&!h&&(N.key==="Escape"?(N.preventDefault(),S?.onCellEditingStop?.()):N.key==="Tab"&&(N.preventDefault(),f!==d&&o(w,y,f,d),S?.onCellEditingStop?.({direction:N.shiftKey?"left":"right"})))},[a,h,S,f,d,y,w,o]),j=g.useCallback(N=>{N.key==="Escape"?(N.preventDefault(),console.log("onTextInputKeyDown",N.key,f,d),m()):N.key==="Enter"&&(N.ctrlKey||N.metaKey)&&(N.preventDefault(),console.log("onTextInputKeyDown",N.key,f,d),x()),N.stopPropagation()},[m,x,f,d]),E=g.useCallback(()=>{f!==d&&o(w,y,f,d),b(!1),S?.onCellEditingStop?.()},[S,f,d,y,w,o]);return a&&!h&&b(!0),g.useEffect(()=>{i&&!a&&!S?.isScrolling&&k.current&&k.current.focus()},[i,a,S?.isScrolling]),Ke("enter",()=>x()),Ke("esc",()=>m()),r.jsx(Je,{ref:k,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:C,children:r.jsx(ae,{type:"number",ref:v,value:f||"",onChange:N=>p(N),onKeyDown:N=>j(N),onBlur:E,className:"size-full rounded-none border-none p-0 shadow-none hover:bg-transparent! focus-visible:ring-0 dark:bg-transparent [&_svg]:hidden"})})});Ns.displayName="TableNumberCell";const Ds=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l,getUpdate:d}=be(),f=e.getValue(),[u,h]=g.useState(!1),b=g.useRef(null),v=g.useRef(null),k=g.useRef(a),S=t.options.meta;g.useEffect(()=>{k.current=a},[a]);const w=e.row.original,y=s,x=d(w,y),m=x?x.newValue:f,p=g.useMemo(()=>m==null?"null":m?"true":"false",[m]),C=g.useCallback(R=>{let H;R==="null"?H=null:H=R==="true",o(w,y,H,f),h(!1),S?.onCellEditingStop?.()},[y,w,f,o,S]),j=g.useCallback(()=>{l(w,y),h(!1),S?.onCellEditingStop?.()},[w,y,l,S]),E=g.useCallback(R=>{h(R),!R&&a&&S?.onCellEditingStop?.()},[a,S]),N=g.useCallback(R=>{a&&!u&&(R.key==="Escape"?(R.preventDefault(),j()):R.key==="Tab"&&(R.preventDefault(),j(),S?.onCellEditingStop?.({direction:R.shiftKey?"left":"right"})))},[a,u,S,j]);g.useEffect(()=>{if(a){const R=setTimeout(()=>{k.current&&(h(!0),setTimeout(()=>{k.current&&v.current?.click()},0))},0);return()=>{clearTimeout(R),h(!1)}}},[a]),g.useEffect(()=>{i&&!a&&!S?.isScrolling&&b.current&&b.current.focus()},[i,a,S?.isScrolling]);const O=m==null?"NULL":m?"true":"false";return r.jsx(Je,{ref:b,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:N,className:"p-0!",children:a?r.jsxs(he,{value:p,onValueChange:C,open:u,onOpenChange:E,children:[r.jsx(me,{ref:v,className:"size-full px-2 py-1.5 rounded-none border-none p-0 shadow-none hover:bg-transparent! focus-visible:ring-0 dark:bg-transparent [&_svg]:hidden",children:r.jsx(ge,{})}),r.jsxs(xe,{"data-grid-cell-editor":"",alignOffset:-8,sideOffset:-8,className:"min-w-[calc(var(--radix-select-trigger-width)+16px)]",onEscapeKeyDown:j,onPointerDownOutside:R=>{R.preventDefault(),h(!1),S?.onCellEditingStop?.()},children:[r.jsx(I,{value:"true",children:"true"}),r.jsx(I,{value:"false",children:"false"}),r.jsx(I,{value:"null",children:"NULL"})]})]}):r.jsx("span",{className:"flex items-center size-full px-2 py-1.5",children:O})})});Ds.displayName="TableBooleanCell";const Es=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l,getUpdate:d}=be(),f=e.getValue(),[u,h]=g.useState(!1),b=g.useRef(null),v=g.useRef(null),k=g.useRef(a),S=t.options.meta,w=e.column.columnDef.meta?.enumValues;g.useEffect(()=>{k.current=a},[a]);const y=e.row.original,x=s,m=d(y,x),p=m?m.newValue:f,C=g.useCallback(R=>{o(y,x,R==="null"?null:R,f),h(!1),S?.onCellEditingStop?.()},[x,y,f,o,S]),j=g.useCallback(()=>{l(y,x),h(!1),S?.onCellEditingStop?.()},[y,x,l,S]),E=g.useCallback(R=>{h(R),!R&&a&&S?.onCellEditingStop?.()},[a,S]),N=g.useCallback(R=>{a&&!u&&(R.key==="Escape"?(R.preventDefault(),j()):R.key==="Tab"&&(R.preventDefault(),j(),S?.onCellEditingStop?.({direction:R.shiftKey?"left":"right"})))},[a,u,S,j]);g.useEffect(()=>{if(a){const R=setTimeout(()=>{k.current&&(h(!0),setTimeout(()=>{k.current&&v.current?.click()},0))},0);return()=>{clearTimeout(R),h(!1)}}},[a]),g.useEffect(()=>{i&&!a&&!S?.isScrolling&&b.current&&b.current.focus()},[i,a,S?.isScrolling]);const O=p??"NULL";return r.jsx(Je,{ref:b,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:N,className:"p-0!",children:a?r.jsxs(he,{value:p===null?"null":p,onValueChange:C,open:u,onOpenChange:E,children:[r.jsx(me,{ref:v,className:"size-full px-2 py-1.5 rounded-none border-none p-0 shadow-none hover:bg-transparent! focus-visible:ring-0 dark:bg-transparent [&_svg]:hidden",children:r.jsx(ge,{})}),r.jsxs(xe,{"data-grid-cell-editor":"",alignOffset:-8,sideOffset:-8,className:"min-w-[calc(var(--radix-select-trigger-width)+16px)]",onEscapeKeyDown:j,onPointerDownOutside:R=>{R.preventDefault(),h(!1),S?.onCellEditingStop?.()},children:[w?.map(R=>r.jsx(I,{value:R,children:R},R)),r.jsx(I,{value:"null",children:"NULL"})]})]}):r.jsx("span",{className:"flex items-center size-full px-2 py-1.5 truncate",children:O})})});Es.displayName="TableEnumCell";const Os=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l,getUpdate:d}=be(),f=e.getValue(),u=g.useRef(null),h=t.options.meta,b=e.row.original,v=s,k=d(b,v),S=k?k.newValue:f,w=g.useCallback(m=>{console.log("onDateChange",m,v,f);const p=m?m.toISOString():null;o(b,v,p,f),h?.onCellEditingStop?.()},[v,f,b,o,h]),y=g.useCallback(()=>{l(b,v),h?.onCellEditingStop?.()},[b,v,l,h,S,f]),x=g.useCallback(m=>{a&&(m.key==="Escape"||m.key==="Tab")&&(m.preventDefault(),y())},[a,y]);return g.useEffect(()=>{i&&!a&&!h?.isScrolling&&u.current&&u.current.focus()},[i,a,h?.isScrolling]),r.jsx(Je,{ref:u,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:x,className:"p-0!",children:r.jsx(Oe,{isFormatted:!1,icon:!1,value:S?new Date(S):void 0,onChange:w,placeholder:"Pick a date",className:"size-full px-2! py-1.5! rounded-none border-none p-0 shadow-none hover:bg-transparent! focus-visible:ring-0 dark:bg-transparent [&_svg]:hidden"})})});Os.displayName="TableDateCell";const Ms=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c})=>{const{setUpdate:o,clearUpdate:l,getUpdate:d}=be(),f=e.getValue();let u;if(typeof f=="string")try{u=JSON.parse(f),console.warn(`TableJsonCell ${s}: initialValue was a string, parsed it to object`,u)}catch(M){console.error(`TableJsonCell ${s}: Failed to parse initialValue string`,f,M),u={}}else u=f;g.useEffect(()=>{console.log(`TableJsonCell ${s} initialValue:`,typeof u,u)},[u,s]);const[h,b]=g.useState(()=>JSON.stringify(u,null,2)??""),[v,k]=g.useState(!1),S=g.useRef(null),w=g.useRef(null),y=t.options.meta,x=e.row.original,m=s,p=d(x,m),C=p?p.newValue:u,j=JSON.stringify(C),E=g.useCallback(()=>{console.log("onSave",{editorValue:h,initialValue:u,columnName:m,rowData:x});try{const M=JSON.parse(h);console.log("Parsed value:",typeof M,M),console.log("Initial value:",typeof u,u),o(x,m,M,u)}catch(M){console.error("Invalid JSON:",M);return}y?.onCellEditingStop?.(),k(!1)},[y,h,u,m,x,o]),N=g.useCallback(()=>{b(JSON.stringify(u,null,2)??""),l(x,m),y?.onCellEditingStop?.(),k(!1)},[y,u,m,x,l,h]),O=g.useCallback(M=>{const Q=M.target.value;console.log("onChange",Q,m,h,u),b(Q)},[m,h,u]),R=g.useCallback(M=>{if(k(M),!M){try{const Q=JSON.parse(h);JSON.stringify(Q)!==JSON.stringify(u)&&o(x,m,Q,u)}catch(Q){console.error("Invalid JSON on close:",Q)}y?.onCellEditingStop?.()}},[y,h,u,m,x,o]),H=g.useCallback(M=>{if(M.preventDefault(),S.current){S.current.focus();const Q=S.current.value.length;S.current.setSelectionRange(Q,Q)}},[]),G=g.useCallback(M=>{a&&!v&&(M.key==="Escape"?(M.preventDefault(),y?.onCellEditingStop?.()):M.key==="Tab"&&(M.preventDefault(),y?.onCellEditingStop?.({direction:M.shiftKey?"left":"right"})))},[a,v,y]),J=g.useCallback(M=>{M.key==="Escape"?(M.preventDefault(),console.log("onTextareaKeyDown",M.key,h,u),N()):M.key==="Enter"&&(M.ctrlKey||M.metaKey)&&(M.preventDefault(),console.log("onTextareaKeyDown",M.key,h,u),E()),M.stopPropagation()},[N,E,h,u]),_=g.useCallback(()=>{try{const M=JSON.parse(h);JSON.stringify(M)!==JSON.stringify(u)&&o(x,m,M,u)}catch(M){console.error("Invalid JSON on blur:",M)}y?.onCellEditingStop?.(),k(!1)},[y,h,u,m,x,o]);return g.useEffect(()=>{a&&!v?(b(JSON.stringify(C,null,2)),k(!0)):!a&&v&&k(!1)},[a,v,C]),g.useEffect(()=>{i&&!a&&!y?.isScrolling&&w.current&&w.current.focus()},[i,a,y?.isScrolling]),Ke("enter",()=>E()),Ke("esc",()=>N()),r.jsxs(Le,{open:v,onOpenChange:R,children:[r.jsx(Rn,{asChild:!0,children:r.jsx(Je,{ref:w,cell:e,table:t,rowIndex:n,columnId:s,isEditing:a,isFocused:i,isSelected:c,onKeyDown:G,children:r.jsx("span",{"data-slot":"grid-cell-content",children:j})})}),r.jsxs($e,{"data-grid-cell-editor":"",align:"start",side:"bottom",sideOffset:0,className:"w-[400px] rounded-none p-0 gap-0",onOpenAutoFocus:H,children:[r.jsx(ke,{ref:S,value:h,onChange:O,onKeyDown:J,onBlur:_,className:"min-h-[150px] resize-none rounded-none border-0 shadow-none focus-visible:ring-0",placeholder:"Enter JSON..."}),r.jsxs("div",{className:"flex flex-col border-t",children:[r.jsxs(W,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[r.jsx(je,{className:"text-xs font-normal",children:"⌘↵"}),r.jsx("span",{className:"ml-1 text-xs",children:"Save Changes"})]}),r.jsxs(W,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[r.jsx(je,{className:"text-xs font-normal",children:"esc"}),r.jsx("span",{className:"ml-1 text-xs",children:"Cancel Changes"})]})]})]})]})});Ms.displayName="TableJsonCell";const dl=({cell:e,table:t})=>{const n=t.options.meta,s=e.row.index,i=t.getRowModel().rows.findIndex(h=>h.original===e.row.original),c=i>=0?i:s,o=e.column.id,l=n?.focusedCell?.rowIndex===c&&n?.focusedCell?.columnId===o,d=n?.editingCell?.rowIndex===c&&n?.editingCell?.columnId===o,f=n?.getIsCellSelected?.(c,o)??!1;switch(e.column.columnDef.meta?.variant){case"text":return r.jsx(ht,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"boolean":return r.jsx(Ds,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"number":return r.jsx(Ns,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"enum":return r.jsx(Es,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"date":return r.jsx(Os,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"json":return r.jsx(Ms,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});case"array":return r.jsx(ht,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f});default:return r.jsx(ht,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:l,isSelected:f})}},ul=({columnVirtualizer:e,row:t,rowVirtualizer:n,virtualPaddingLeft:s,virtualPaddingRight:a,virtualRow:i})=>{const c=t.getVisibleCells(),o=e.getVirtualItems();return r.jsxs("tr",{"data-index":i.index,ref:l=>n.measureElement(l),className:"flex absolute w-fit border-b items-center justify-between text-sm hover:bg-accent/20 data-[state=open]:bg-accent/40 [&_svg]:size-4",style:{transform:`translateY(${i.start}px)`},children:[s?r.jsx("td",{style:{display:"flex",width:s}}):null,o.map(l=>{const d=c[l.index];return r.jsx("td",{className:z("flex border-r border-zinc-800 h-8"),style:{width:l.index===0?"40px":d.column.getSize()},children:tt(d.column.columnDef.cell,d.getContext())},d.id)}),a?r.jsx("td",{style:{display:"flex",width:a}}):null]},t.id)},fl=({columnVirtualizer:e,table:t,tableContainerRef:n,virtualPaddingLeft:s,virtualPaddingRight:a})=>{const{rows:i}=t.getRowModel(),c=Jn({count:i.length,estimateSize:()=>33,getScrollElement:()=>n.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?l=>l?.getBoundingClientRect().height:void 0,overscan:5}),o=c.getVirtualItems();return r.jsx("tbody",{style:{display:"grid",height:`${c.getTotalSize()}px`,position:"relative"},children:o.map(l=>{const d=i[l.index];return r.jsx(ul,{columnVirtualizer:e,row:d,rowVirtualizer:c,virtualPaddingLeft:s,virtualPaddingRight:a,virtualRow:l},d.id)})})},hl=g.memo(ml,(e,t)=>{const n=e.header.column,s=t.header.column;return!(n.getIsResizing()!==s.getIsResizing()||n.getSize()!==s.getSize()||e.label!==t.label)});function ml({header:e,table:t,label:n}){const s=t._getDefaultColumnDef(),a=g.useCallback(()=>{t.setColumnSizing(i=>{const c={...i};return delete c[e.column.id],c})},[e.column.id,t]);return r.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":`Resize ${n} column`,"aria-valuenow":e.column.getSize(),"aria-valuemin":s.minSize,"aria-valuemax":s.maxSize,tabIndex:0,className:z("after:-translate-x-1/2 -right-px absolute top-0 z-50 h-full w-0.5 cursor-ew-resize touch-none select-none bg-border transition-opacity after:absolute after:inset-y-0 after:left-1/2 after:h-full after:w-[18px] after:content-[''] hover:bg-primary focus:bg-primary focus:outline-none",e.column.getIsResizing()?"bg-primary":"opacity-0 hover:opacity-100"),onDoubleClick:a,onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler()})}const gl=({columnVirtualizer:e,headerGroup:t,virtualPaddingLeft:n,virtualPaddingRight:s,table:a})=>{const{table:i}=Lt.useParams(),[c,o]=g.useState(!1),[l,d]=g.useState(null),[f,u]=g.useState(!1),{deleteColumn:h}=Fr(),[,b]=P(A.COLUMN_NAME),[,v]=P(A.TABLE_STATE_KEYS.SORT),[,k]=P(A.TABLE_STATE_KEYS.ORDER),[,S]=P(A.TABLE_STATE_KEYS.CURSOR),[,w]=P(A.TABLE_STATE_KEYS.DIRECTION),y=e.getVirtualItems(),x=a.getState().columnSizingInfo.isResizingColumn,m=g.useCallback(N=>O=>{O===null?(b(null),v(null),k(null)):(b(N),v(N),k(O==="desc"?"desc":"asc")),S(null),w(null)},[b,v,k,S,w]),p=g.useCallback(N=>{d(N),u(!1),o(!0)},[]),C=g.useCallback(N=>{o(N),N||(d(null),u(!1))},[]),j=g.useCallback(async()=>{!l||!i||(await h({db:i,tableName:i,columnName:l,cascade:f}),o(!1),d(null),u(!1))},[l,i,h,f]),E=g.useCallback(()=>{o(!1),d(null),u(!1)},[]);return r.jsxs(r.Fragment,{children:[r.jsxs("tr",{className:z("flex w-fit bg-black border-b items-center justify-between text-sm data-[state=open]:bg-accent/40 [&_svg]:size-4",x&&"pointer-events-none"),children:[n?r.jsx("th",{style:{display:"flex",width:n}}):null,y.map(N=>{const O=t.headers[N.index],R=O.column.columnDef.meta?.isPrimaryKey,H=O.column.columnDef.meta?.isForeignKey,G=O.column.columnDef.meta?.dataTypeLabel;return r.jsx("th",{className:"h-full flex z-100! relative",style:{display:"flex",width:N.index===0?"40px":O.getSize()},children:r.jsx("div",{className:z("relative w-full h-full flex items-center justify-between gap-2 text-sm hover:bg-accent/20 data-[state=open]:bg-accent/40 [&_svg]:size-4","border-r border-zinc-800",O.column.getCanSort()?"cursor-pointer select-none":""),children:N.index===0?tt(O.column.columnDef.header,O.getContext()):r.jsxs(r.Fragment,{children:[r.jsxs(Kt,{children:[r.jsx(Vt,{asChild:!0,children:r.jsxs(W,{variant:"outline",className:"relative border-none w-full h-full bg-transparent! rounded-none justify-between",children:[r.jsxs("div",{className:"flex items-center gap-1",children:[R&&r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("span",{className:"inline-flex",children:r.jsx(wr,{size:20,className:"text-primary"})})}),r.jsx(_e,{className:"text-[10px]",children:"primary key"})]}),H&&r.jsxs(Me,{children:[r.jsx(Te,{asChild:!0,children:r.jsx("span",{className:"inline-flex",children:r.jsx(zn,{size:20,className:"text-primary"})})}),r.jsx(_e,{className:"text-[10px]",children:"foreign key"})]}),tt(O.column.columnDef.header,O.getContext())]}),r.jsxs("div",{className:"flex items-center gap-1",children:[G&&r.jsx("span",{className:"text-xs leading-none text-muted-foreground",children:G}),r.jsx("span",{className:"text-xs leading-none text-muted-foreground",children:{asc:r.jsx($t,{}),desc:r.jsx(vr,{})}[O.column.getIsSorted()]??null})]})]})}),r.jsxs(Ut,{className:"w-44",align:"start",children:[r.jsxs(fr,{children:[r.jsxs(Ce,{onClick:()=>m(O.column.id)("asc"),children:[r.jsx(Sr,{}),"Sort ascending"]}),r.jsxs(Ce,{onClick:()=>m(O.column.id)("desc"),children:[r.jsx(kr,{}),"Sort descending"]}),O.column.getIsSorted()&&r.jsxs(Ce,{onClick:()=>m(O.column.id)(null),children:[r.jsx(xt,{}),"Remove sort"]})]}),r.jsx(hr,{}),r.jsxs(Ce,{variant:"destructive",onClick:()=>p(O.column.id),children:[r.jsx(jr,{}),"Delete column"]})]})]}),O.column.getCanResize()&&r.jsx(hl,{header:O,table:a,label:O.column.id})]})})},O.id)}),s?r.jsx("th",{style:{display:"flex",width:s}}):null]},t.id),r.jsx(Pn,{open:c,onOpenChange:C,children:r.jsxs(In,{children:[r.jsxs(Bn,{children:[r.jsx(Kn,{children:"Delete Column"}),r.jsxs(Vn,{children:['Are you sure you want to delete the column "',l,'"? This action cannot be undone and will permanently remove all data in this column.']})]}),r.jsxs("div",{className:"flex gap-2 py-2",children:[r.jsx(It,{id:"cascade-delete",checked:f,onCheckedChange:N=>u(N===!0)}),r.jsx(ie,{htmlFor:"cascade-delete",className:"text-xs text-muted-foreground cursor-pointer",children:"Drop with CASCADE (also remove dependent indexes, constraints, and foreign key references)"})]}),r.jsxs(Un,{children:[r.jsx(Ln,{onClick:E,children:"Cancel"}),r.jsx($n,{variant:"destructive",onClick:j,children:"Delete"})]})]})})]})},xl=({columnVirtualizer:e,table:t,virtualPaddingLeft:n,virtualPaddingRight:s})=>r.jsx("thead",{className:"h-9 grid sticky top-0 z-10",children:t.getHeaderGroups().map(a=>r.jsx(gl,{columnVirtualizer:e,headerGroup:a,table:t,virtualPaddingLeft:n,virtualPaddingRight:s},a.id))}),pl=({table:e})=>{const t=e.getVisibleLeafColumns(),n=g.useRef(null),s=Jn({count:t.length,estimateSize:o=>t[o].getSize(),getScrollElement:()=>n.current,horizontal:!0,overscan:3}),a=s.getVirtualItems();let i,c;return s&&a?.length&&(i=a[0]?.start??0,c=s.getTotalSize()-(a[a.length-1]?.end??0)),r.jsx("div",{className:"w-full flex-1 overflow-auto",ref:n,style:{position:"relative"},children:r.jsxs("table",{style:{display:"grid"},children:[r.jsx(xl,{columnVirtualizer:s,table:e,virtualPaddingLeft:i,virtualPaddingRight:c}),r.jsx(fl,{columnVirtualizer:s,table:e,tableContainerRef:n,virtualPaddingLeft:i,virtualPaddingRight:c})]})})};function bl({className:e,...t}){return r.jsx("nav",{"aria-label":"pagination","data-slot":"pagination",className:z("mx-auto flex w-full justify-center",e),...t})}function yl({className:e,...t}){return r.jsx("ul",{"data-slot":"pagination-content",className:z("flex flex-row items-center gap-1",e),...t})}function Dn({...e}){return r.jsx("li",{"data-slot":"pagination-item",...e})}const Cl=({tableName:e})=>{const{sidebar:{isPinned:t,width:n}}=mr(),[s,a]=P(A.TABLE_STATE_KEYS.LIMIT),[,i]=P(A.TABLE_STATE_KEYS.CURSOR),[,c]=P(A.TABLE_STATE_KEYS.DIRECTION),{tableData:o}=wt({tableName:e}),l=o?.meta?.total??0,d=o?.data?.length??0,[f,u]=g.useState(s??"50"),h=g.useRef(null);g.useEffect(()=>{u(s??"50")},[s]);const b=w=>{const y=parseInt(w,10);if(Number.isNaN(y)||y<1)return;const x=Math.min(y,1e4).toString();u(x),a(x),i(null),c(null)},v=()=>{o?.meta?.nextCursor&&(i(o.meta.nextCursor),c("asc"))},k=()=>{o?.meta?.prevCursor&&(i(o.meta.prevCursor),c("desc"))},S=()=>{i(null),c(null)};return r.jsxs("footer",{className:"fixed bottom-0 left-0 right-0 h-9 border-t border-zinc-800 flex items-center justify-between bg-black px-2 text-white",style:{marginLeft:t?`${n}px`:"0"},children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ie,{className:"text-xs text-zinc-400 whitespace-nowrap",children:"Rows per page"}),r.jsxs("div",{className:"flex items-center h-6 rounded-sm border border-transparent hover:border-zinc-700 focus-within:border-zinc-600 transition-colors",children:[r.jsx("input",{ref:h,type:"number",min:1,max:1e4,value:f,onChange:w=>u(w.target.value),onBlur:w=>b(w.target.value),onKeyDown:w=>{w.key==="Enter"&&h.current?.blur()},className:"w-10 h-full bg-transparent text-xs text-center text-white outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"}),r.jsxs(Kt,{children:[r.jsx(Vt,{asChild:!0,children:r.jsx("button",{type:"button",className:"flex items-center h-full px-0.5 text-zinc-500 hover:text-zinc-300 transition-colors focus:outline-none","aria-label":"Choose preset row count",children:r.jsx($t,{className:"size-3"})})}),r.jsx(Ut,{align:"start",className:"min-w-16 border-zinc-800",children:gr.map(w=>r.jsx(Ce,{onSelect:()=>b(w.toString()),className:"text-xs justify-center",children:w},w))})]})]})]}),r.jsx("div",{className:"flex items-center justify-center text-xs text-zinc-400",children:r.jsxs("p",{className:"whitespace-nowrap","aria-live":"polite",children:["Showing ",r.jsx("span",{className:"text-zinc-200",children:d})," of"," ",r.jsx("span",{className:"text-zinc-200",children:l})," rows"]})}),r.jsxs("div",{className:"flex items-center gap-0.5",children:[r.jsx(W,{size:"sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:S,disabled:!o?.meta?.hasPreviousPage||l===0,"aria-label":"Go to first page",children:r.jsx(Nr,{"aria-hidden":"true"})}),r.jsx(bl,{children:r.jsxs(yl,{className:"gap-0.5",children:[r.jsx(Dn,{children:r.jsx(W,{size:"icon-sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:k,disabled:!o?.meta?.hasPreviousPage||l===0,"aria-label":"Go to previous page",children:r.jsx(An,{"aria-hidden":"true"})})}),r.jsx(Dn,{children:r.jsx(W,{size:"icon-sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:v,disabled:!o?.meta?.hasNextPage||l===0,"aria-label":"Go to next page",children:r.jsx(Wn,{"aria-hidden":"true"})})})]})})]})]})},wl=()=>({id:"select",accessorKey:"select",header:({table:e})=>r.jsx("div",{className:"w-full h-full flex items-center justify-center",children:r.jsx(It,{checked:e.getIsAllRowsSelected(),onCheckedChange:()=>e.toggleAllRowsSelected()})}),cell:({row:e})=>r.jsx("div",{className:"w-full h-full flex items-center justify-center",children:r.jsx(It,{checked:e.getIsSelected(),onCheckedChange:()=>e.toggleSelected()})}),size:20,enableSorting:!1}),vl=({tableName:e})=>{const[t]=P(A.COLUMN_NAME),[n]=P(A.TABLE_STATE_KEYS.ORDER),{tableData:s,isLoadingTableData:a,errorTableData:i}=wt({tableName:e}),{tableCols:c,isLoadingTableCols:o,errorTableCols:l}=De({tableName:e}),[d,f]=g.useState({}),[u,h]=g.useState({}),[b,v]=g.useState(null),[k,S]=g.useState(null),w=g.useMemo(()=>wl(),[]),y=g.useMemo(()=>[w,...c?.map(_=>({accessorKey:_.columnName,header:_.columnName,meta:{variant:_.enumValues?"enum":_.dataType,isPrimaryKey:_.isPrimaryKey,isForeignKey:_.isForeignKey,referencedTable:_.referencedTable,referencedColumn:_.referencedColumn,enumValues:_.enumValues,dataTypeLabel:_.dataTypeLabel},size:(_.columnName.length+(_.dataTypeLabel?.length||0))*5+100,minSize:100,maxSize:500}))||[]],[c,w]);g.useEffect(()=>{f({})},[e]);const x=g.useMemo(()=>t&&n?[{id:t,desc:n==="desc"}]:[],[t,n]),m=g.useMemo(()=>s?.data||[],[s?.data]),p=g.useCallback((_,M)=>{v({rowIndex:_,columnId:M})},[]),C=g.useCallback((_,M)=>{S({rowIndex:_,columnId:M})},[]),j=g.useCallback((_,M)=>{S({rowIndex:_,columnId:M})},[]),E=g.useCallback(()=>{S(null)},[]),N=g.useCallback(_=>{console.log("Data update:",_)},[]),O=g.useCallback(()=>!1,[]),R=g.useMemo(()=>({focusedCell:b,editingCell:k,onCellClick:p,onCellDoubleClick:C,onCellEditingStart:j,onCellEditingStop:E,onDataUpdate:N,getIsCellSelected:O}),[b,k,p,C,j,E,N,O]),H=Hn({data:m,columns:y,defaultColumn:{cell:dl,size:50,minSize:100,maxSize:500},getCoreRowModel:qn(),getSortedRowModel:Or(),state:{sorting:x,rowSelection:d,columnSizing:u},manualSorting:!1,enableRowSelection:!0,enableMultiRowSelection:!0,enableColumnResizing:!0,columnResizeMode:"onChange",onRowSelectionChange:f,onColumnSizingChange:h,meta:R});if(a||o)return r.jsx("div",{className:"size-full flex items-center justify-center",children:r.jsx(_n,{size:"size-7"})});if(i||l){const _=i||l,M=_?.message||"",Q=M.includes("does not exist")||M.includes("404")||_?.status===404,Ge=M.includes("Network Error")||M.includes("Failed to fetch");let Z="Something went wrong",ee=M||"An unexpected error occurred";return Q?(Z="Table not found",ee=M||`The table "${e}" does not exist or has been deleted`):Ge&&(Z="Connection failed",ee="Unable to connect to the database server. Please check your connection."),r.jsx("div",{className:"size-full flex flex-col items-center justify-center",children:r.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center gap-2",children:[r.jsx("div",{className:"text-sm font-medium",children:Z}),r.jsx("div",{className:"text-sm text-muted-foreground",children:ee})]})})}const G=!s||!s.data||s.data.length===0,J=H.getSelectedRowModel().rows;return G?r.jsxs("div",{className:"size-full flex flex-col items-center justify-center",children:[r.jsx(Nn,{selectedRows:J,setRowSelection:f,tableName:e}),r.jsxs("div",{className:"text-sm text-muted-foreground flex-1 flex items-center justify-center",children:['No data available for "',e,'" table']})]}):r.jsxs("div",{className:"flex-1 w-full flex flex-col overflow-hidden",children:[r.jsx(Nn,{selectedRows:J,setRowSelection:f,tableName:e}),r.jsx(pl,{table:H}),r.jsx(Cl,{tableName:e})]})};function Wl(){const{table:e}=Lt.useParams();return r.jsxs("main",{className:"flex-1 flex flex-col overflow-hidden",children:[r.jsx(vl,{tableName:e}),r.jsx($i,{tableName:e}),r.jsx(Zi,{tableName:e}),r.jsx(Gi,{tableName:e}),r.jsx(Xi,{tableName:e}),r.jsx(Qi,{tableName:e})]})}export{Wl as component};