db-studio 1.3.25 → 1.3.26

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.
Files changed (90) hide show
  1. package/README.md +24 -0
  2. package/dist/core-dist/assets/{_baseUniq-CO5fFgqV.js → _baseUniq-Dz8rR54g.js} +1 -1
  3. package/dist/core-dist/assets/_pathlessLayout-byu8LhC4.js +2 -0
  4. package/dist/core-dist/assets/_queryId-tsebZ8Os.js +1 -0
  5. package/dist/core-dist/assets/_table-B9YoPE4g.js +8 -0
  6. package/dist/core-dist/assets/{arc-B_zMY48V.js → arc-DHQDyHbC.js} +1 -1
  7. package/dist/core-dist/assets/{architectureDiagram-VXUJARFQ-C9lykiZH.js → architectureDiagram-VXUJARFQ-Dye73hr2.js} +1 -1
  8. package/dist/core-dist/assets/{blockDiagram-VD42YOAC-DhqK2eyG.js → blockDiagram-VD42YOAC-fyPw9ErW.js} +1 -1
  9. package/dist/core-dist/assets/{c4Diagram-YG6GDRKO-CQrcwS8f.js → c4Diagram-YG6GDRKO-WorBPjZj.js} +1 -1
  10. package/dist/core-dist/assets/{cdoe-editor-C6mx2_AO.js → cdoe-editor-DWalt1Bs.js} +1 -1
  11. package/dist/core-dist/assets/channel-DmNVQLGj.js +1 -0
  12. package/dist/core-dist/assets/{chunk-4BX2VUAB-CdIpYPgB.js → chunk-4BX2VUAB-BWLeAEPx.js} +1 -1
  13. package/dist/core-dist/assets/{chunk-55IACEB6-BDNKe4fa.js → chunk-55IACEB6-Sz82sR_e.js} +1 -1
  14. package/dist/core-dist/assets/{chunk-B4BG7PRW-ZA-ck0YQ.js → chunk-B4BG7PRW-BRJVTFXO.js} +1 -1
  15. package/dist/core-dist/assets/{chunk-DI55MBZ5-CnVVpZE-.js → chunk-DI55MBZ5-DrMehRNo.js} +1 -1
  16. package/dist/core-dist/assets/{chunk-FMBD7UC4-CwwWK8-e.js → chunk-FMBD7UC4-DjrshjUM.js} +1 -1
  17. package/dist/core-dist/assets/{chunk-QN33PNHL-bn39U0qP.js → chunk-QN33PNHL-e_SdNueW.js} +1 -1
  18. package/dist/core-dist/assets/{chunk-QZHKN3VN-D0fSZNMo.js → chunk-QZHKN3VN-BcgeawM9.js} +1 -1
  19. package/dist/core-dist/assets/{chunk-TZMSLE5B-BTA4ulM4.js → chunk-TZMSLE5B-WV20vlP_.js} +1 -1
  20. package/dist/core-dist/assets/classDiagram-2ON5EDUG-BlV3AaHC.js +1 -0
  21. package/dist/core-dist/assets/classDiagram-v2-WZHVMYZB-BlV3AaHC.js +1 -0
  22. package/dist/core-dist/assets/clone-BJueq7g1.js +1 -0
  23. package/dist/core-dist/assets/{code-block-IT6T5CEO-BZv7MYo8.js → code-block-IT6T5CEO-CRNu6zPZ.js} +1 -1
  24. package/dist/core-dist/assets/{cose-bilkent-S5V4N54A-DQ5fWUqZ.js → cose-bilkent-S5V4N54A-C6XOe5oC.js} +1 -1
  25. package/dist/core-dist/assets/{dagre-6UL2VRFP-C-VDHjJ-.js → dagre-6UL2VRFP-BnmgBPjC.js} +1 -1
  26. package/dist/core-dist/assets/{diagram-PSM6KHXK-CdPWaSoG.js → diagram-PSM6KHXK-D6r3FA0m.js} +1 -1
  27. package/dist/core-dist/assets/{diagram-QEK2KX5R-CI3rBq3-.js → diagram-QEK2KX5R-CXpMzjrs.js} +1 -1
  28. package/dist/core-dist/assets/{diagram-S2PKOQOG-DrV1l_bS.js → diagram-S2PKOQOG-BolCoLvj.js} +1 -1
  29. package/dist/core-dist/assets/{erDiagram-Q2GNP2WA-DtHpaqwP.js → erDiagram-Q2GNP2WA-CTifgqt1.js} +1 -1
  30. package/dist/core-dist/assets/{flowDiagram-NV44I4VS-CWhbqAOb.js → flowDiagram-NV44I4VS-pbbYcDQW.js} +1 -1
  31. package/dist/core-dist/assets/{ganttDiagram-JELNMOA3-8U2ncuQI.js → ganttDiagram-JELNMOA3-zqJ48H3I.js} +1 -1
  32. package/dist/core-dist/assets/{gitGraphDiagram-NY62KEGX-rJlyYpVT.js → gitGraphDiagram-NY62KEGX-DxNJIXLP.js} +1 -1
  33. package/dist/core-dist/assets/{graph-BhgtEUho.js → graph-CjSaMg-K.js} +1 -1
  34. package/dist/core-dist/assets/icons-D6TH-xEh.js +1 -0
  35. package/dist/core-dist/assets/index-B11inYe0.js +58 -0
  36. package/dist/core-dist/assets/index-B3gSG1Yj.js +1 -0
  37. package/dist/core-dist/assets/index-BVXRwlCM.js +1 -0
  38. package/dist/core-dist/assets/index-BXRBzRx2.css +1 -0
  39. package/dist/core-dist/assets/{index-ejQaUr38.js → index-C4O5Rsq1.js} +1 -1
  40. package/dist/core-dist/assets/index-DelL3Eku.js +1 -0
  41. package/dist/core-dist/assets/{indexes-D8Eqj5x7.js → indexes-DYSIpFSd.js} +1 -1
  42. package/dist/core-dist/assets/infoDiagram-WHAUD3N6-CSNF_W-p.js +2 -0
  43. package/dist/core-dist/assets/{journeyDiagram-XKPGCS4Q-BNSrMmr7.js → journeyDiagram-XKPGCS4Q-BtpTxM-Y.js} +1 -1
  44. package/dist/core-dist/assets/{kanban-definition-3W4ZIXB7-V9L96KTF.js → kanban-definition-3W4ZIXB7-oYV0rhzZ.js} +1 -1
  45. package/dist/core-dist/assets/{layout-DNW_OiWL.js → layout-9jAkTDVb.js} +1 -1
  46. package/dist/core-dist/assets/{linear-DqoQUU19.js → linear-DbUIfB88.js} +1 -1
  47. package/dist/core-dist/assets/logs-CmJ0Xt6u.js +1 -0
  48. package/dist/core-dist/assets/{mermaid-VLURNSYL-F8q0N6Y-.js → mermaid-VLURNSYL-D5uFRwCp.js} +4 -4
  49. package/dist/core-dist/assets/{mermaid.core-Bl5zWzZD.js → mermaid.core-CLOnqD9L.js} +5 -5
  50. package/dist/core-dist/assets/{min-DDiiHzkP.js → min-CCTBSAVO.js} +1 -1
  51. package/dist/core-dist/assets/{mindmap-definition-VGOIOE7T-_ZelwEtb.js → mindmap-definition-VGOIOE7T-CCYjDuu4.js} +1 -1
  52. package/dist/core-dist/assets/{pieDiagram-ADFJNKIX-DlnlOcS9.js → pieDiagram-ADFJNKIX-C7byhore.js} +1 -1
  53. package/dist/core-dist/assets/{quadrantDiagram-AYHSOK5B-CyVFDRyR.js → quadrantDiagram-AYHSOK5B-CuHjSh6D.js} +1 -1
  54. package/dist/core-dist/assets/{queries.store-KdEzteJi.js → queries.store-CNqfnc5k.js} +1 -1
  55. package/dist/core-dist/assets/radix-ui-Cc0cu4Uu.js +51 -0
  56. package/dist/core-dist/assets/{react-dom-BWKcCUTe.js → react-dom-B7--tMaV.js} +1 -1
  57. package/dist/core-dist/assets/{requirementDiagram-UZGBJVZJ-jRbu5Vec.js → requirementDiagram-UZGBJVZJ-DLEPg0BV.js} +1 -1
  58. package/dist/core-dist/assets/{runner-tab-DG4JMrIS.js → runner-tab-BZPeQIxv.js} +3 -3
  59. package/dist/core-dist/assets/{sankeyDiagram-TZEHDZUN-gKjFH72S.js → sankeyDiagram-TZEHDZUN-DKdNm1Qv.js} +1 -1
  60. package/dist/core-dist/assets/{schema-Dig80dgQ.js → schema-C6AUjLib.js} +1 -1
  61. package/dist/core-dist/assets/{scroll-area-BZeWiQjX.js → scroll-area-DdKnqqlw.js} +1 -1
  62. package/dist/core-dist/assets/{sequenceDiagram-WL72ISMW-CAvLlHWG.js → sequenceDiagram-WL72ISMW-Bbo7kvpu.js} +1 -1
  63. package/dist/core-dist/assets/{stateDiagram-FKZM4ZOC-pYmj6Lkv.js → stateDiagram-FKZM4ZOC-Cz5Z-x6B.js} +1 -1
  64. package/dist/core-dist/assets/stateDiagram-v2-4FDKWEC3-CdjqUuw7.js +1 -0
  65. package/dist/core-dist/assets/{tanstack-I4NcPTsd.js → tanstack-BVOBleBY.js} +2 -2
  66. package/dist/core-dist/assets/{timeline-definition-IT6M3QCI-D9DODJhX.js → timeline-definition-IT6M3QCI-ByEvAs-P.js} +1 -1
  67. package/dist/core-dist/assets/{treemap-KMMF4GRG-ClhjKA5M.js → treemap-KMMF4GRG-C1GKyhAV.js} +1 -1
  68. package/dist/core-dist/assets/{visualizer-CVdpIuSS.js → visualizer-CKiw4rgK.js} +1 -1
  69. package/dist/core-dist/assets/{xychartDiagram-PRI3JC2R-OT9Z40XT.js → xychartDiagram-PRI3JC2R-CS-C2fw-.js} +1 -1
  70. package/dist/core-dist/index.html +6 -6
  71. package/dist/index.js +96 -26
  72. package/dist/index.js.map +1 -1
  73. package/package.json +5 -5
  74. package/dist/core-dist/assets/_pathlessLayout-C3BlW5Hc.js +0 -2
  75. package/dist/core-dist/assets/_queryId-iSqlGQ2Y.js +0 -1
  76. package/dist/core-dist/assets/_table-SO2FYYAw.js +0 -8
  77. package/dist/core-dist/assets/channel-4io835lz.js +0 -1
  78. package/dist/core-dist/assets/classDiagram-2ON5EDUG-DpPeI05m.js +0 -1
  79. package/dist/core-dist/assets/classDiagram-v2-WZHVMYZB-DpPeI05m.js +0 -1
  80. package/dist/core-dist/assets/clone-Cu5G1cWz.js +0 -1
  81. package/dist/core-dist/assets/icons-cLYU3CQS.js +0 -1
  82. package/dist/core-dist/assets/index-5l-GokF9.js +0 -1
  83. package/dist/core-dist/assets/index-B-czu-uB.js +0 -1
  84. package/dist/core-dist/assets/index-DM_G5wVs.js +0 -58
  85. package/dist/core-dist/assets/index-Llx5wPe1.css +0 -1
  86. package/dist/core-dist/assets/index-iREZCpeS.js +0 -1
  87. package/dist/core-dist/assets/infoDiagram-WHAUD3N6-RphuT4VC.js +0 -2
  88. package/dist/core-dist/assets/logs-CjN_gOvl.js +0 -1
  89. package/dist/core-dist/assets/radix-ui-BypjIQUF.js +0 -51
  90. package/dist/core-dist/assets/stateDiagram-v2-4FDKWEC3-BxqBo7RT.js +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "db-studio",
3
3
  "type": "module",
4
- "version": "1.3.25",
4
+ "version": "1.3.26",
5
5
  "description": "Modern database client for PostgreSQL with spreadsheet-like grid, AI-powered SQL assistance, ER diagrams, fast data browsing and editing. CLI tool, upcoming desktop & web versions.",
6
6
  "keywords": [
7
7
  "database",
@@ -51,13 +51,13 @@
51
51
  "test:coverage": "vitest run --coverage"
52
52
  },
53
53
  "dependencies": {
54
- "@clack/prompts": "^0.11.0",
54
+ "@clack/prompts": "^1.0.1",
55
55
  "@hono/node-server": "^1.19.7",
56
56
  "@hono/zod-validator": "^0.7.6",
57
- "commander": "^12.1.0",
58
- "dotenv": "^16.4.7",
57
+ "commander": "^14.0.3",
58
+ "dotenv": "^17.3.1",
59
59
  "hono": "^4.10.4",
60
- "open": "^10.0.2",
60
+ "open": "^11.0.0",
61
61
  "pg": "^8.13.1",
62
62
  "picocolors": "^1.1.1",
63
63
  "xlsx": "^0.18.5",
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid-VLURNSYL-F8q0N6Y-.js","assets/radix-ui-BypjIQUF.js","assets/icons-cLYU3CQS.js","assets/react-dom-BWKcCUTe.js","assets/tanstack-I4NcPTsd.js","assets/index-DM_G5wVs.js","assets/monaco-editor-BMj4E99D.js","assets/monaco-editor-Ck3IbhyB.css","assets/index-Llx5wPe1.css","assets/scroll-area-BZeWiQjX.js","assets/index-ejQaUr38.js"])))=>i.map(i=>d[i]);
2
- import{j as e,s as Ee,t as Fe,u as Le,v as Te,w as _e,I as Ae,x as Ie}from"./radix-ui-BypjIQUF.js";import{u as Qe,a as oe,L as ce,b as q,c as de,O as Oe}from"./tanstack-I4NcPTsd.js";import{_ as Me}from"./monaco-editor-BMj4E99D.js";import{S as qe,r as a,P as Pe,c as He,G as Ve,C as re,d as Z,e as ue,T as xe,f as Be,h as $e,F as Ke,i as me,j as he,D as Ue,k as Ge,l as Xe,m as We,n as Ye}from"./icons-cLYU3CQS.js";import{a as j,D as Ze,m as fe,B as b,T as Je,n as P,I as A,t as R,S as je,o as be,q as pe,r as ge,s as M,C as E,v as es,x as ss,y as ts,z as as,A as ns,E as rs,F as ls,G as is,H as os}from"./index-DM_G5wVs.js";import{T as J,a as ee,b as se,u as H}from"./index-ejQaUr38.js";import{K as I,D as K,a as U,b as G,c as X,d as W,e as Y,A as cs,f as ds,g as us,h as xs,i as ms,j as hs,k as fs,l as js,m as bs,S as ps}from"./scroll-area-BZeWiQjX.js";import{u as V}from"./queries.store-KdEzteJi.js";const gs={SITE_GITHUB_LINK:"https://github.com/husamql3/db-studio"};function vs({className:s,orientation:t="horizontal",decorative:l=!0,...r}){return e.jsx(Ee,{"data-slot":"separator",decorative:l,orientation:t,className:j("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",s),...r})}const ys=()=>{const{data:s,isLoading:t,error:l,refetch:r}=Qe({queryKey:["rate-limit"],queryFn:async()=>{const n=await fetch(`${Ze.PROXY_URL}/chat/limit`);if(!n.ok)throw new Error("Failed to fetch rate limit");return await n.json()}});return{rateLimit:s,isLoadingRateLimit:t,errorRateLimit:l,refetchRateLimit:r}},Ns=a.lazy(()=>Me(()=>import("./mermaid-VLURNSYL-F8q0N6Y-.js").then(s=>s.g),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(s=>({default:s.ChatSidebar}))),Cs=()=>{const{isSheetOpen:s,openSheet:t}=fe(),{rateLimit:l,isLoadingRateLimit:r}=ys(),{remaining:n=0,limit:o=0}=l??{remaining:0,limit:0},f=(h=>h===0?"bg-red-500":h<=5?"bg-yellow-500":"bg-emerald-500")(n);return e.jsxs(e.Fragment,{children:[e.jsxs(J,{children:[e.jsx(ee,{asChild:!0,children:e.jsxs(b,{variant:"ghost",className:"border-r-0 border-y-0 border-l border-zinc-800 rounded-none h-full w-12 relative",onClick:()=>t("ai-assistant"),children:[e.jsx(qe,{className:"size-5"}),e.jsx("span",{className:j("absolute top-2 right-2 h-2 w-2 rounded-full ring-2 ring-background",f)})]})}),e.jsx(se,{side:"bottom",className:"text-xs",children:!r&&(n>0?e.jsxs("p",{children:[n,"/",o," messages remaining"]}):e.jsx("p",{children:"AI Assistant"}))})]}),s("ai-assistant")&&e.jsx(a.Suspense,{fallback:null,children:e.jsx(Ns,{})})]})},ws=()=>{const{pathname:s}=oe(),t=s.split("/")[1]||"table";return e.jsx("div",{className:"flex h-full items-center",children:Je.map(l=>e.jsx(ce,{to:`/${l}`,className:"h-full flex items-center",children:e.jsx(b,{variant:"ghost",className:j("flex-1 px-4 border-l-0 border-y-0 border-r border-zinc-800 h-full rounded-none",t===l?"bg-zinc-900 text-white":"text-zinc-400"),children:l})},l))})},Ss=()=>{const{sidebar:{isOpen:s,isPinned:t},setSidebarOpen:l,setSidebarPinned:r}=P(),n=()=>{l(!s),r(!t)};return e.jsx(b,{variant:"ghost",onClick:n,className:"h-full aspect-square border-l-0 border-y-0 border-r border-zinc-800 rounded-none",children:s?e.jsx(Pe,{className:"size-5"}):e.jsx(He,{className:"size-5"})})},zs=()=>e.jsxs("div",{className:"border-b border-zinc-800 w-full flex items-center justify-between bg-black h-12",children:[e.jsxs("div",{className:"flex items-center h-full",children:[e.jsx(Ss,{}),e.jsx(ws,{})]}),e.jsxs("div",{className:"flex items-center h-full",children:[e.jsx(Cs,{}),e.jsxs(J,{children:[e.jsx(ee,{asChild:!0,children:e.jsx(b,{variant:"ghost",className:"border-r-0 border-y-0 border-l border-zinc-800 rounded-none h-full w-12",asChild:!0,children:e.jsx("a",{href:gs.SITE_GITHUB_LINK,target:"_blank",rel:"noopener noreferrer",children:e.jsx(Ve,{className:"size-5"})})})}),e.jsx(se,{children:e.jsx("p",{children:"View on GitHub"})})]})]})]});function ve({...s}){return e.jsx(Fe,{"data-slot":"context-menu",...s})}function ye({className:s,...t}){return e.jsx(Le,{"data-slot":"context-menu-trigger",className:j("select-none",s),...t})}function Ne({className:s,...t}){return e.jsx(Te,{children:e.jsx(_e,{"data-slot":"context-menu-content",className:j("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-context-menu-content-available-height) origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto",s),...t})})}function D({className:s,inset:t,variant:l="default",...r}){return e.jsx(Ae,{"data-slot":"context-menu-item","data-inset":t,"data-variant":l,className:j("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed [&_svg:not([class*='size-'])]:size-3.5 group/context-menu-item relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",s),...r})}function le({className:s,...t}){return e.jsx(Ie,{"data-slot":"context-menu-separator",className:j("bg-border/50 -mx-1 my-1 h-px",s),...t})}const $=({folderId:s,isExpanded:t,onToggle:l,count:r,name:n,showContextMenu:o=!1})=>{const m=q(),{deleteFolder:f,getQueriesByFolder:h,addQuery:u,updateFolder:y}=V(),[v,p]=a.useState(!1),[g,i]=a.useState(""),[d,C]=a.useState(!1),S=a.useCallback(()=>{if(s){if(h(s).length>0){C(!0);return}f(s)}},[f,s,h]),c=a.useCallback(()=>{s&&(f(s),C(!1))},[f,s]),N=a.useCallback(()=>{const w=u(void 0,s);m({to:"/runner/$queryId",params:{queryId:w}})},[u,s,m]),z=a.useCallback(()=>{i(n),p(!0)},[n]),Q=a.useCallback(()=>{s&&g.trim()&&(y(s,{name:g.trim()}),p(!1),i(""))},[s,g,y]);return e.jsxs(e.Fragment,{children:[o?e.jsxs(ve,{children:[e.jsx(ye,{asChild:!0,children:e.jsxs("button",{type:"button",onClick:l,className:j("w-full flex gap-2 px-4 py-2 text-sm transition-colors text-left","hover:bg-zinc-800/50 hover:text-zinc-100 focus:outline-none focus:bg-zinc-800/50","text-zinc-400 items-center"),children:[e.jsx(re,{className:j("size-4 transition-transform duration-200",t?"rotate-90":"")}),e.jsx("span",{className:"flex-1",children:n}),e.jsx(I,{children:r})]})}),e.jsxs(Ne,{children:[e.jsxs(D,{onClick:N,children:[e.jsx(Z,{className:"size-4"}),"Add a new query"]}),e.jsxs(D,{onClick:z,children:[e.jsx(ue,{className:"size-4"}),"Rename folder"]}),e.jsxs(D,{onClick:S,children:[e.jsx(xe,{className:"size-4"}),"Delete folder"]})]})]}):e.jsxs("button",{type:"button",onClick:l,className:j("w-full flex gap-2 px-4 py-2 text-sm transition-colors text-left","hover:bg-zinc-800/50 hover:text-zinc-100 focus:outline-none focus:bg-zinc-800/50","text-zinc-400 items-center"),children:[e.jsx(re,{className:j("size-4 transition-transform duration-200",t?"rotate-90":"")}),e.jsx("span",{className:"flex-1",children:n}),e.jsx(I,{children:r})]}),e.jsx(K,{open:v,onOpenChange:p,children:e.jsxs(U,{children:[e.jsxs(G,{children:[e.jsx(X,{children:"Rename Folder"}),e.jsx(W,{children:"Enter a new name for this folder."})]}),e.jsx(A,{value:g,onChange:w=>i(w.target.value),placeholder:"Folder name",onKeyDown:w=>{w.key==="Enter"&&Q()},autoFocus:!0}),e.jsxs(Y,{children:[e.jsx(b,{variant:"outline",onClick:()=>{p(!1),i("")},children:"Cancel"}),e.jsx(b,{onClick:Q,disabled:!g.trim(),children:"Rename"})]})]})}),e.jsx(cs,{open:d,onOpenChange:C,children:e.jsxs(ds,{children:[e.jsxs(us,{children:[e.jsx(xs,{children:"Delete Folder"}),e.jsxs(ms,{children:["This folder contains ",r," ",r===1?"query":"queries",". Deleting this folder will also delete all queries inside it. This action cannot be undone."]})]}),e.jsxs(hs,{children:[e.jsx(fs,{children:"Cancel"}),e.jsx(js,{onClick:c,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete Folder"})]})]})})]})},O=({id:s,tableName:t,isNested:l=!1,showContextMenu:r=!0})=>{const n=q(),{deleteQuery:o,addQuery:m,getQuery:f,toggleFavorite:h,updateQuery:u,moveQuery:y,folders:v,addFolder:p}=V(),{queryId:g}=de({strict:!1}),i=g===s,d=f(s),C=d?.isFavorite??!1,[S,c]=a.useState(!1),[N,z]=a.useState(""),[Q,w]=a.useState(!1),[B,F]=a.useState(void 0),[L,k]=a.useState(!1),[T,_]=a.useState(""),te=a.useCallback(()=>{n({to:"/runner/$queryId",params:{queryId:s}})},[n,s]),Ce=a.useCallback(()=>{o(s),g===s&&n({to:"/runner"}),R.success("Query deleted successfully")},[o,s,n,g]),we=a.useCallback(()=>{const x=f(s),Re=m(`${x?.name} (Copy)`);n({to:"/runner/$queryId",params:{queryId:Re}}),R.success("Query duplicated successfully")},[m,f,n,s]),Se=a.useCallback(()=>{h(s),R.success("Query favorited successfully")},[h,s]),ze=a.useCallback(()=>{z(d?.name??""),c(!0)},[d?.name]),ae=a.useCallback(()=>{N.trim()&&(u(s,{name:N.trim()}),c(!1),z(""),R.success("Query renamed successfully"))},[s,N,u]),De=a.useCallback(()=>{F(d?.folderId),k(!1),_(""),w(!0)},[d?.folderId]),ke=a.useCallback(x=>{x==="__create_new__"?(k(!0),F(void 0)):(k(!1),F(x==="__none__"?void 0:x))},[]),ne=a.useCallback(()=>{if(L&&T.trim()){const x=Math.random().toString(36).substring(2,15);p({id:x,name:T.trim(),isExpanded:!0,isFavorite:!1}),y(s,x),R.success("Query moved to new folder successfully")}else L||(y(s,B),R.success("Query moved to selected folder successfully"));w(!1),k(!1),_(""),F(void 0)},[L,T,B,s,p,y]);return e.jsxs("li",{className:"relative",children:[r?e.jsxs(ve,{children:[e.jsx(ye,{asChild:!0,children:e.jsxs("button",{type:"button",onClick:te,className:j("w-full flex gap-2 py-2 text-sm transition-colors text-left","hover:text-zinc-100 focus:outline-none focus:bg-accent/10 focus:text-zinc-100 justify-start items-center",i?"text-zinc-100 bg-accent/10":"text-zinc-400",l?"px-4 pl-12":"px-4"),children:[i&&e.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-1 bg-accent"}),e.jsx("span",{className:"flex-1",children:t})]})}),e.jsxs(Ne,{children:[e.jsxs(D,{onClick:ze,children:[e.jsx(ue,{className:"size-4"}),"Rename query"]}),e.jsxs(D,{onClick:we,children:[e.jsx(Be,{className:"size-4"}),"Duplicate query"]}),e.jsxs(D,{onClick:Se,children:[e.jsx($e,{className:C?"size-4 fill-current":"size-4"}),C?"Remove from favorites":"Add to favorites"]}),e.jsx(le,{}),e.jsxs(D,{onClick:De,children:[e.jsx(Ke,{className:"size-4"}),"Move to folder"]}),e.jsx(le,{}),e.jsxs(D,{onClick:Ce,children:[e.jsx(xe,{className:"size-4"}),"Delete query"]})]})]}):e.jsxs("button",{type:"button",onClick:te,className:j("w-full flex gap-2 py-2 text-sm transition-colors text-left","hover:text-zinc-100 focus:outline-none focus:bg-accent/10 focus:text-zinc-100 justify-start items-center",i?"text-zinc-100 bg-accent/10":"text-zinc-400",l?"px-4 pl-12":"px-4"),children:[i&&e.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-1 bg-accent"}),e.jsx("span",{className:"flex-1",children:t})]}),e.jsx(K,{open:S,onOpenChange:c,children:e.jsxs(U,{children:[e.jsxs(G,{children:[e.jsx(X,{children:"Rename Query"}),e.jsx(W,{children:"Enter a new name for this query."})]}),e.jsx(A,{value:N,onChange:x=>z(x.target.value),placeholder:"Query name",onKeyDown:x=>{x.key==="Enter"&&ae()},autoFocus:!0}),e.jsxs(Y,{children:[e.jsx(b,{variant:"outline",onClick:()=>{c(!1),z("")},children:"Cancel"}),e.jsx(b,{onClick:ae,disabled:!N.trim(),children:"Rename"})]})]})}),e.jsx(K,{open:Q,onOpenChange:x=>{w(x),x||(k(!1),_(""),F(void 0))},children:e.jsxs(U,{children:[e.jsxs(G,{children:[e.jsx(X,{children:"Move to Folder"}),e.jsx(W,{children:"Select a folder to move this query to."})]}),e.jsx("div",{className:"space-y-4",children:L?e.jsx(A,{value:T,onChange:x=>_(x.target.value),placeholder:"Folder name",onKeyDown:x=>{x.key==="Enter"&&T.trim()&&ne(),x.key==="Escape"&&(k(!1),_(""))},autoFocus:!0}):e.jsxs(je,{value:B??"__none__",onValueChange:ke,children:[e.jsx(be,{className:"w-full",children:e.jsx(pe,{placeholder:"Select a folder"})}),e.jsxs(ge,{children:[e.jsx(M,{value:"__none__",children:"No folder"}),v.map(x=>e.jsx(M,{value:x.id,children:x.name},x.id)),e.jsx(M,{value:"__create_new__",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(me,{className:"size-4"}),"Create a new folder"]})})]})]})}),e.jsxs(Y,{children:[e.jsx(b,{variant:"outline",onClick:()=>{w(!1),k(!1),_(""),F(void 0)},children:"Cancel"}),e.jsx(b,{onClick:ne,disabled:L&&!T.trim(),children:L?"Create & Move":"Move"})]})]})})]})},Ds=()=>{const[s]=H(E.SIDEBAR_SEARCH,{defaultValue:""}),{folders:t,queries:l,getFavoriteQueries:r,getQueriesByFolder:n,toggleFolder:o}=V(),[m,f]=a.useState(!0),[h,u]=a.useState(!0),y=l.filter(i=>!i.isFavorite).length,v=r(),p=v.length,g=l.filter(i=>!i.folderId&&!i.isFavorite);if(s){const i=l.filter(d=>d.name.toLowerCase().includes(s.toLowerCase()));return i.length===0?e.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:"No queries found matching"}):e.jsx("div",{className:"flex-1 overflow-y-auto",children:i.map(d=>e.jsx(O,{id:d.id,tableName:d.name},d.id))})}return e.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e.jsx($,{name:"Favorites",isExpanded:m,onToggle:()=>f(!m),count:p}),m&&v.map(i=>e.jsx(O,{id:i.id,tableName:i.name},i.id)),e.jsx(vs,{className:"bg-zinc-800"}),e.jsx($,{name:"Queries",isExpanded:h,onToggle:()=>u(!h),count:y}),h&&e.jsxs(e.Fragment,{children:[t.map(i=>{const d=n(i.id),C=d.length;return e.jsxs("div",{children:[e.jsx($,{folderId:i.id,name:i.name,isExpanded:i.isExpanded,onToggle:()=>o(i.id),count:C,showContextMenu:!0}),i.isExpanded&&d.map(S=>e.jsx(O,{id:S.id,tableName:S.name,isNested:!0,showContextMenu:!0},S.id))]},i.id)}),g.map(i=>e.jsx(O,{id:i.id,tableName:i.name,showContextMenu:!0},i.id))]})]})},ks=()=>{const{addQuery:s,addFolder:t}=V(),l=q(),r=a.useRef(null),[n,o]=H(E.SIDEBAR_SEARCH,{defaultValue:""}),m=u=>{o(u.target.value)},f=()=>{const u=s();l({to:"/runner/$queryId",params:{queryId:u}})},h=()=>{const u=Math.random().toString(36).substring(2,15);t({id:u,name:"New Folder",isExpanded:!0,isFavorite:!1})};return e.jsxs("div",{className:"p-3 space-y-2 border-b border-zinc-800",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(b,{className:"flex-1 justify-start h-8",onClick:f,children:[e.jsx(Z,{className:"size-4"}),"Add Query"]}),e.jsxs(b,{className:"flex-1 justify-start h-8",onClick:h,children:[e.jsx(me,{className:"size-4"}),"Add Folder"]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(he,{className:"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(A,{ref:r,placeholder:"Search queries",value:n??"",onChange:m,className:"rounded-sm h-8 pl-8 pr-8"}),e.jsx(I,{className:"absolute right-2 top-1/2 -translate-y-1/2 text-xs",children:"/"})]})]})},Rs=()=>e.jsxs(e.Fragment,{children:[e.jsx(ks,{}),e.jsx(Ds,{})]}),Es=({tableName:s,rowCount:t})=>{const n=de({strict:!1}).table===s;return e.jsx("li",{className:"relative",children:e.jsxs(ce,{to:"/table/$table",params:{table:s},className:j("w-full flex gap-0.5 px-4 py-1.5 text-sm transition-colors text-left","hover:text-zinc-100 focus:outline-none focus:bg-accent/10 focus:text-zinc-100 justify-start items-center",n?"text-white bg-zinc-800/50":"text-zinc-400"),children:[n&&e.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-1 bg-accent"}),e.jsx("span",{className:"flex-1",children:s}),e.jsx("div",{className:"flex items-center gap-1",children:e.jsx(I,{children:t})})]})})},Fs=()=>{const[s]=H(E.SIDEBAR_SEARCH,{defaultValue:""}),{tablesList:t=[],isLoadingTablesList:l,errorTablesList:r}=es(),n=t?.filter(o=>o.tableName.toLowerCase().includes(s.toLowerCase()));return l?e.jsx("div",{className:"flex-1 h-full overflow-y-auto pb-3 flex items-center justify-center",children:e.jsx(ss,{size:"size-6"})}):r?e.jsxs("div",{className:"flex-1 overflow-y-auto pb-3 h-full flex items-center justify-center",children:["Error: ",r.message]}):e.jsx("div",{className:"flex-1 overflow-y-auto pb-3",children:n&&n.length>0?e.jsx("ul",{children:n?.map(o=>e.jsx(Es,{tableName:o.tableName,rowCount:o.rowCount},o.tableName))}):s?e.jsx("div",{className:"flex-1 overflow-y-auto pb-3 h-full flex items-center justify-center",children:"No tables found matching"}):e.jsx("div",{className:"flex-1 overflow-y-auto pb-3 h-full flex items-center justify-center",children:"No tables available"})})},Ls=()=>{const s=a.useRef(null),[t,l]=H(E.SIDEBAR_SEARCH,{defaultValue:""}),{openSheet:r}=fe();return bs("/",n=>{n.preventDefault(),s.current&&s.current.focus()},{preventDefault:!0}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsxs(b,{className:"w-full justify-start h-8",onClick:()=>r("add-table"),children:[e.jsx(Z,{className:"size-4"}),"Add Table"]}),e.jsxs("div",{className:"relative",children:[e.jsx(he,{className:"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(A,{ref:s,placeholder:"Search tables",value:t??"",onChange:n=>l(n.target.value.trim()),className:"rounded-sm h-8 pl-8 pr-8"}),e.jsx(I,{className:"absolute right-2 top-1/2 -translate-y-1/2 text-xs",children:"/"})]})]})},ie=()=>e.jsxs(e.Fragment,{children:[e.jsx(Ls,{}),e.jsx(ps,{className:"flex-1 overflow-y-auto pb-3 block h-full w-full",children:e.jsx(Fs,{})})]});function Ts(){const{databases:s,isLoadingDatabases:t,refetchDatabases:l,isRefetchingDatabases:r}=ts(),{currentDatabase:n,isLoadingCurrentDatabase:o}=as(),{connectionInfo:m,isLoadingConnectionInfo:f}=ns(),{selectedDatabase:h,setSelectedDatabase:u}=rs(),y=q(),[v,p]=a.useState(!1);a.useEffect(()=>{n?.database&&!h&&!o&&u(n.database)},[n,h,u,o]);const g=d=>{u(d),y({to:"/table",search:{}})},i=async()=>{await l(),R.success("Databases refreshed")};return e.jsx("div",{className:"mt-auto border-t bg-background",children:e.jsxs("div",{className:"p-4 space-y-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ue,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium",children:"Database"})]}),e.jsxs(J,{children:[e.jsx(ee,{asChild:!0,children:e.jsx(b,{variant:"ghost",size:"icon",className:"h-6 w-6 hover:bg-accent",onClick:i,disabled:t||r,children:e.jsx(Ge,{className:j("h-3.5 w-3.5",(t||r)&&"animate-spin")})})}),e.jsx(se,{children:"Refresh databases"})]})]}),e.jsxs(je,{value:h||"",onValueChange:g,children:[e.jsx(be,{className:"h-9 text-xs font-mono w-full",disabled:t||r,children:e.jsx(pe,{placeholder:"Select database..."})}),e.jsx(ge,{children:s?.map(d=>e.jsx(M,{value:d.name,className:"font-mono text-xs",children:d.name},d.name))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(b,{variant:"ghost",className:"w-full hover:bg-accent flex items-center justify-between",onClick:()=>p(!v),disabled:f||r,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]})}),e.jsx("span",{className:"text-xs font-medium text-green-600",children:"Connected"})]}),e.jsx(Xe,{className:j("size-3 text-muted-foreground transition-transform",v&&"rotate-180")})]}),v&&m&&e.jsxs("div",{className:"space-y-1.5 px-2 py-2 rounded-md bg-muted/30",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"Host"}),e.jsxs("span",{className:"text-xs font-mono text-foreground",children:[m.host,":",m.port]})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"User"}),e.jsx("span",{className:"text-xs font-mono text-foreground",children:m.user})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"Databases"}),e.jsx("span",{className:"text-xs font-mono font-medium text-foreground",children:s?.length||0})]})]})]})]})})}const _s=()=>{const{sidebar:{isPinned:s},toggleSidebarPinned:t}=P();return e.jsx("div",{className:"flex items-center justify-between h-9 border-b border-zinc-800",children:e.jsx(b,{variant:"ghost",size:"lg",onClick:t,className:"size-9 flex items-center justify-center transition hover:bg-transparent! focus-visible:ring-0 focus-visible:ring-offset-0",title:s?"Unpin sidebar":"Pin sidebar",children:s?e.jsx(We,{className:"size-4"}):e.jsx(Ye,{className:"size-4"})})})},As=({children:s})=>{const{sidebar:{width:t,isOpen:l,isPinned:r},setSidebarWidth:n,setSidebarOpen:o}=P(),m=a.useRef(!1),f=a.useRef(0),h=a.useRef(0),u=a.useRef(null),y=a.useRef(null),v=a.useCallback(c=>{m.current&&requestAnimationFrame(()=>{const N=c.clientX-f.current,z=h.current+N;n(z)})},[n]),p=a.useCallback(()=>{m.current=!1,document.body.style.cursor="",document.body.style.userSelect="";const c=document.getElementById("resize-overlay");c&&c.remove()},[]),g=a.useCallback(c=>{c.preventDefault(),m.current=!0,f.current=c.clientX,h.current=t,document.body.style.cursor="col-resize",document.body.style.userSelect="none";const N=document.createElement("div");N.id="resize-overlay",N.style.cssText="position:fixed;inset:0;z-index:9999;cursor:col-resize;",document.body.appendChild(N)},[t]),i=a.useCallback(()=>{r||o(!0)},[r,o]),d=a.useCallback(()=>{r||o(!1)},[r,o]),C=a.useCallback(c=>{r||l||m.current||(c.clientX<=E.HOVER_ZONE?(u.current&&clearTimeout(u.current),u.current=window.setTimeout(()=>{o(!0)},E.HOVER_DELAY)):c.clientX>E.HOVER_ZONE+50&&u.current&&clearTimeout(u.current))},[r,l,o]),S=c=>{r||o(c)};return a.useEffect(()=>(document.addEventListener("mousemove",v),document.addEventListener("mouseup",p),document.addEventListener("mousemove",C),()=>{document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",p),document.removeEventListener("mousemove",C),u.current&&clearTimeout(u.current)}),[v,p,C]),a.useEffect(()=>{const c=y.current;if(c)return c.addEventListener("mouseenter",i),c.addEventListener("mouseleave",d),()=>{c.removeEventListener("mouseenter",i),c.removeEventListener("mouseleave",d)}},[i,d]),e.jsxs(ls,{open:l,onOpenChange:S,modal:!1,children:[e.jsx(is,{className:"sr-only",children:"Open Sidebar"}),e.jsx(os,{ref:y,side:"left",showCloseButton:!1,isPinned:r,className:j("bg-black border-r border-zinc-800 p-0","transition-transform duration-300 ease-out"),style:{width:`${t}px`},onOpenAutoFocus:c=>c.preventDefault(),children:e.jsxs("div",{className:"relative h-full flex flex-col",children:[s,e.jsx("div",{role:"button",tabIndex:0,onMouseDown:g,className:j("absolute top-0 right-0 w-2 h-full cursor-col-resize z-50","hover:bg-blue-500/50 transition-colors group"),title:"Drag to resize",children:e.jsx("div",{className:"absolute right-0 top-1/2 -translate-y-1/2 w-2 h-12 bg-blue-500 opacity-0 group-hover:opacity-100 transition-opacity rounded-full"})})]})})]})},Is=()=>{const{pathname:s}=oe(),t=s.split("/")[1],l=a.useMemo(()=>{switch(console.log(t),t){case"":case"table":return e.jsx(ie,{});case"runner":return e.jsx(Rs,{});default:return e.jsx(ie,{})}},[t]);return e.jsxs(As,{children:[e.jsx(_s,{}),l,e.jsx(Ts,{})]})};function Qs(){const{sidebar:{isPinned:s,width:t}}=P();return e.jsxs("div",{className:"bg-zinc-950 w-dvw flex h-dvh max-h-dvh overflow-hidden relative",children:[e.jsx(Is,{}),e.jsxs("div",{className:"flex-1 flex flex-col h-full overflow-hidden ",style:{marginLeft:s?`${t}px`:"0"},children:[e.jsx(zs,{}),e.jsx(Oe,{})]})]})}const Ks=Object.freeze(Object.defineProperty({__proto__:null,component:Qs},Symbol.toStringTag,{value:"Module"}));export{Ks as _,ys as u};
@@ -1 +0,0 @@
1
- import{j as r}from"./radix-ui-BypjIQUF.js";import{R as t}from"./runner-tab-DG4JMrIS.js";import{R as m}from"./index-DM_G5wVs.js";import"./icons-cLYU3CQS.js";import"./react-dom-BWKcCUTe.js";import"./monaco-editor-BMj4E99D.js";import"./tanstack-I4NcPTsd.js";import"./index-ejQaUr38.js";import"./format-cell-value-Cn3RA9a1.js";import"./queries.store-KdEzteJi.js";function c(){const{queryId:o}=m.useParams();return r.jsx(t,{queryId:o})}export{c as component};
@@ -1,8 +0,0 @@
1
- import{j as a,ae as Js,af as Gs,ag as Qs,ah as Dn,ai as Nn,aj as En}from"./radix-ui-BypjIQUF.js";import{a as W,L as ln,B as _,P as Ue,M as xt,N as Ve,S as ue,o as fe,q as he,r as me,s as B,C as M,O as On,m as ge,Q as Xs,U as le,I as ae,V as ke,W as Ee,E as Ae,K as We,x as Mn,X as $e,t as je,Y as Zs,Z as er,_ as at,$ as se,a0 as Bt,a1 as Kt,a2 as Ut,a3 as ce,c as tr,a4 as Vt,a5 as nr,a6 as Tn,a7 as sr,a8 as rr,a9 as Pt,n as ar}from"./index-DM_G5wVs.js";import{u as P,c as Ge,T as Qe,a as Xe,b as Ze,p as Pe}from"./index-ejQaUr38.js";import{a as N,r as g,K as _n,C as Rn,l as An,M as or,L as Wn,N as Tt,k as Fn,Q as zn,X as yt,U as lr,V as ir,A as cr,d as dr,W as ur,Y as fr,w as hr,Z as mr,_ as gr,T as pr,$ as xr}from"./icons-cLYU3CQS.js";import{S as yr,K as De,D as br,a as Cr,b as wr,c as vr,d as Sr,e as kr,m as Ie,A as jr,f as Dr,g as Nr,h as Er,i as Or,j as Mr,k as Tr,l as _r}from"./scroll-area-BZeWiQjX.js";import{u as Rr,d as Yn,g as Pn,f as st,j as ot,h as Le,e as In,p as Ar}from"./tanstack-I4NcPTsd.js";import{f as Wr}from"./format-cell-value-Cn3RA9a1.js";import"./react-dom-BWKcCUTe.js";import"./monaco-editor-BMj4E99D.js";const Bn=6048e5,Fr=864e5,cn=Symbol.for("constructDateFrom");function J(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&cn in e?e[cn](t):e instanceof Date?new e.constructor(t):new Date(t)}function L(e,t){return J(t||e,e)}function pt(e,t,n){const s=L(e,n?.in);return isNaN(t)?J(e,NaN):(t&&s.setDate(s.getDate()+t),s)}function Kn(e,t,n){const s=L(e,n?.in);if(isNaN(t))return J(e,NaN);if(!t)return s;const r=s.getDate(),l=J(e,s.getTime());l.setMonth(s.getMonth()+t+1,0);const c=l.getDate();return r>=c?l:(s.setFullYear(l.getFullYear(),l.getMonth(),r),s)}let zr={};function lt(){return zr}function Be(e,t){const n=lt(),s=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=L(e,t?.in),l=r.getDay(),c=(l<s?7:0)+l-s;return r.setDate(r.getDate()-c),r.setHours(0,0,0,0),r}function rt(e,t){return Be(e,{...t,weekStartsOn:1})}function Un(e,t){const n=L(e,t?.in),s=n.getFullYear(),r=J(n,0);r.setFullYear(s+1,0,4),r.setHours(0,0,0,0);const l=rt(r),c=J(n,0);c.setFullYear(s,0,4),c.setHours(0,0,0,0);const o=rt(c);return n.getTime()>=l.getTime()?s+1:n.getTime()>=o.getTime()?s:s-1}function dn(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 He(e,...t){const n=J.bind(null,t.find(s=>typeof s=="object"));return t.map(n)}function Ke(e,t){const n=L(e,t?.in);return n.setHours(0,0,0,0),n}function $t(e,t,n){const[s,r]=He(n?.in,e,t),l=Ke(s),c=Ke(r),o=+l-dn(l),i=+c-dn(c);return Math.round((o-i)/Fr)}function Yr(e,t){const n=Un(e,t),s=J(e,0);return s.setFullYear(n,0,4),s.setHours(0,0,0,0),rt(s)}function Pr(e,t,n){return pt(e,t*7,n)}function Ir(e,t,n){return Kn(e,t*12,n)}function Br(e,t){let n,s=t?.in;return e.forEach(r=>{!s&&typeof r=="object"&&(s=J.bind(null,r));const l=L(r,s);(!n||n<l||isNaN(+l))&&(n=l)}),J(s,n||NaN)}function Kr(e,t){let n,s=t?.in;return e.forEach(r=>{!s&&typeof r=="object"&&(s=J.bind(null,r));const l=L(r,s);(!n||n>l||isNaN(+l))&&(n=l)}),J(s,n||NaN)}function Ur(e,t,n){const[s,r]=He(n?.in,e,t);return+Ke(s)==+Ke(r)}function Vn(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Vr(e){return!(!Vn(e)&&typeof e!="number"||isNaN(+L(e)))}function $n(e,t,n){const[s,r]=He(n?.in,e,t),l=s.getFullYear()-r.getFullYear(),c=s.getMonth()-r.getMonth();return l*12+c}function $r(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 Ln(e,t){const[n,s]=He(e,t.start,t.end);return{start:n,end:s}}function Lr(e,t){const{start:n,end:s}=Ln(t?.in,e);let r=+n>+s;const l=r?+n:+s,c=r?s:n;c.setHours(0,0,0,0),c.setDate(1);let o=1;const i=[];for(;+c<=l;)i.push(J(n,c)),c.setMonth(c.getMonth()+o);return r?i.reverse():i}function Hr(e,t){const n=L(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function qr(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 Hn(e,t){const n=L(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Jr(e,t){const{start:n,end:s}=Ln(t?.in,e);let r=+n>+s;const l=r?+n:+s,c=r?s:n;c.setHours(0,0,0,0),c.setMonth(0,1);let o=1;const i=[];for(;+c<=l;)i.push(J(n,c)),c.setFullYear(c.getFullYear()+o);return r?i.reverse():i}function qn(e,t){const n=lt(),s=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=L(e,t?.in),l=r.getDay(),c=(l<s?-7:0)+6-(l-s);return r.setDate(r.getDate()+c),r.setHours(23,59,59,999),r}function Gr(e,t){return qn(e,{...t,weekStartsOn:1})}const Qr={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"}},Xr=(e,t,n)=>{let s;const r=Qr[e];return typeof r=="string"?s=r:t===1?s=r.one:s=r.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 Zr={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ea={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},ta={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},na={date:_t({formats:Zr,defaultWidth:"full"}),time:_t({formats:ea,defaultWidth:"full"}),dateTime:_t({formats:ta,defaultWidth:"full"})},sa={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ra=(e,t,n,s)=>sa[e];function et(e){return(t,n)=>{const s=n?.context?String(n.context):"standalone";let r;if(s==="formatting"&&e.formattingValues){const c=e.defaultFormattingWidth||e.defaultWidth,o=n?.width?String(n.width):c;r=e.formattingValues[o]||e.formattingValues[c]}else{const c=e.defaultWidth,o=n?.width?String(n.width):e.defaultWidth;r=e.values[o]||e.values[c]}const l=e.argumentCallback?e.argumentCallback(t):t;return r[l]}}const aa={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},oa={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},la={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"]},ia={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"]},ca={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"}},da={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"}},ua=(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"},fa={ordinalNumber:ua,era:et({values:aa,defaultWidth:"wide"}),quarter:et({values:oa,defaultWidth:"wide",argumentCallback:e=>e-1}),month:et({values:la,defaultWidth:"wide"}),day:et({values:ia,defaultWidth:"wide"}),dayPeriod:et({values:ca,defaultWidth:"wide",formattingValues:da,defaultFormattingWidth:"wide"})};function tt(e){return(t,n={})=>{const s=n.width,r=s&&e.matchPatterns[s]||e.matchPatterns[e.defaultMatchWidth],l=t.match(r);if(!l)return null;const c=l[0],o=s&&e.parsePatterns[s]||e.parsePatterns[e.defaultParseWidth],i=Array.isArray(o)?ma(o,f=>f.test(c)):ha(o,f=>f.test(c));let d;d=e.valueCallback?e.valueCallback(i):i,d=n.valueCallback?n.valueCallback(d):d;const u=t.slice(c.length);return{value:d,rest:u}}}function ha(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ma(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function ga(e){return(t,n={})=>{const s=t.match(e.matchPattern);if(!s)return null;const r=s[0],l=t.match(e.parsePattern);if(!l)return null;let c=e.valueCallback?e.valueCallback(l[0]):l[0];c=n.valueCallback?n.valueCallback(c):c;const o=t.slice(r.length);return{value:c,rest:o}}}const pa=/^(\d+)(th|st|nd|rd)?/i,xa=/\d+/i,ya={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},ba={any:[/^b/i,/^(a|c)/i]},Ca={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},wa={any:[/1/i,/2/i,/3/i,/4/i]},va={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},Sa={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]},ka={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},ja={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]},Da={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},Na={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}},Ea={ordinalNumber:ga({matchPattern:pa,parsePattern:xa,valueCallback:e=>parseInt(e,10)}),era:tt({matchPatterns:ya,defaultMatchWidth:"wide",parsePatterns:ba,defaultParseWidth:"any"}),quarter:tt({matchPatterns:Ca,defaultMatchWidth:"wide",parsePatterns:wa,defaultParseWidth:"any",valueCallback:e=>e+1}),month:tt({matchPatterns:va,defaultMatchWidth:"wide",parsePatterns:Sa,defaultParseWidth:"any"}),day:tt({matchPatterns:ka,defaultMatchWidth:"wide",parsePatterns:ja,defaultParseWidth:"any"}),dayPeriod:tt({matchPatterns:Da,defaultMatchWidth:"any",parsePatterns:Na,defaultParseWidth:"any"})},Ye={code:"en-US",formatDistance:Xr,formatLong:na,formatRelative:ra,localize:fa,match:Ea,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Oa(e,t){const n=L(e,t?.in);return $t(n,Hn(n))+1}function Lt(e,t){const n=L(e,t?.in),s=+rt(n)-+Yr(n);return Math.round(s/Bn)+1}function Jn(e,t){const n=L(e,t?.in),s=n.getFullYear(),r=lt(),l=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,c=J(t?.in||e,0);c.setFullYear(s+1,0,l),c.setHours(0,0,0,0);const o=Be(c,t),i=J(t?.in||e,0);i.setFullYear(s,0,l),i.setHours(0,0,0,0);const d=Be(i,t);return+n>=+o?s+1:+n>=+d?s:s-1}function Ma(e,t){const n=lt(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=Jn(e,t),l=J(t?.in||e,0);return l.setFullYear(r,0,s),l.setHours(0,0,0,0),Be(l,t)}function Ht(e,t){const n=L(e,t?.in),s=+Be(n,t)-+Ma(n,t);return Math.round(s/Bn)+1}function $(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 $(t==="yy"?s%100:s,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):$(n+1,2)},d(e,t){return $(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 $(e.getHours()%12||12,t.length)},H(e,t){return $(e.getHours(),t.length)},m(e,t){return $(e.getMinutes(),t.length)},s(e,t){return $(e.getSeconds(),t.length)},S(e,t){const n=t.length,s=e.getMilliseconds(),r=Math.trunc(s*Math.pow(10,n-3));return $(r,t.length)}},Fe={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},un={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(),r=s>0?s:1-s;return n.ordinalNumber(r,{unit:"year"})}return Ne.y(e,t)},Y:function(e,t,n,s){const r=Jn(e,s),l=r>0?r:1-r;if(t==="YY"){const c=l%100;return $(c,2)}return t==="Yo"?n.ordinalNumber(l,{unit:"year"}):$(l,t.length)},R:function(e,t){const n=Un(e);return $(n,t.length)},u:function(e,t){const n=e.getFullYear();return $(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 $(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 $(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 $(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 r=Ht(e,s);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):$(r,t.length)},I:function(e,t,n){const s=Lt(e);return t==="Io"?n.ordinalNumber(s,{unit:"week"}):$(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=Oa(e);return t==="Do"?n.ordinalNumber(s,{unit:"dayOfYear"}):$(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 r=e.getDay(),l=(r-s.weekStartsOn+8)%7||7;switch(t){case"e":return String(l);case"ee":return $(l,2);case"eo":return n.ordinalNumber(l,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,s){const r=e.getDay(),l=(r-s.weekStartsOn+8)%7||7;switch(t){case"c":return String(l);case"cc":return $(l,t.length);case"co":return n.ordinalNumber(l,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){const s=e.getDay(),r=s===0?7:s;switch(t){case"i":return String(r);case"ii":return $(r,t.length);case"io":return n.ordinalNumber(r,{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 r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){const s=e.getHours();let r;switch(s===12?r=Fe.noon:s===0?r=Fe.midnight:r=s/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){const s=e.getHours();let r;switch(s>=17?r=Fe.evening:s>=12?r=Fe.afternoon:s>=4?r=Fe.morning:r=Fe.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{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"}):$(s,t.length)},k:function(e,t,n){let s=e.getHours();return s===0&&(s=24),t==="ko"?n.ordinalNumber(s,{unit:"hour"}):$(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 hn(s);case"XXXX":case"XX":return Oe(s);default:return Oe(s,":")}},x:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"x":return hn(s);case"xxxx":case"xx":return Oe(s);default:return Oe(s,":")}},O:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+fn(s,":");default:return"GMT"+Oe(s,":")}},z:function(e,t,n){const s=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+fn(s,":");default:return"GMT"+Oe(s,":")}},t:function(e,t,n){const s=Math.trunc(+e/1e3);return $(s,t.length)},T:function(e,t,n){return $(+e,t.length)}};function fn(e,t=""){const n=e>0?"-":"+",s=Math.abs(e),r=Math.trunc(s/60),l=s%60;return l===0?n+String(r):n+String(r)+t+$(l,2)}function hn(e,t){return e%60===0?(e>0?"-":"+")+$(Math.abs(e)/60,2):Oe(e,t)}function Oe(e,t=""){const n=e>0?"-":"+",s=Math.abs(e),r=$(Math.trunc(s/60),2),l=$(s%60,2);return n+r+t+l}const mn=(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"})}},Gn=(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"})}},Ta=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],s=n[1],r=n[2];if(!r)return mn(e,t);let l;switch(s){case"P":l=t.dateTime({width:"short"});break;case"PP":l=t.dateTime({width:"medium"});break;case"PPP":l=t.dateTime({width:"long"});break;default:l=t.dateTime({width:"full"});break}return l.replace("{{date}}",mn(s,t)).replace("{{time}}",Gn(r,t))},_a={p:Gn,P:Ta},Ra=/^D+$/,Aa=/^Y+$/,Wa=["D","DD","YY","YYYY"];function Fa(e){return Ra.test(e)}function za(e){return Aa.test(e)}function Ya(e,t,n){const s=Pa(e,t,n);if(console.warn(s),Wa.includes(e))throw new RangeError(s)}function Pa(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 Ia=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ba=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ka=/^'([^]*?)'?$/,Ua=/''/g,Va=/[a-zA-Z]/;function we(e,t,n){const s=lt(),r=n?.locale??s.locale??Ye,l=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(!Vr(o))throw new RangeError("Invalid time value");let i=t.match(Ba).map(u=>{const f=u[0];if(f==="p"||f==="P"){const h=_a[f];return h(u,r.formatLong)}return u}).join("").match(Ia).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const f=u[0];if(f==="'")return{isToken:!1,value:$a(u)};if(un[f])return{isToken:!0,value:u};if(f.match(Va))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:u}});r.localize.preprocessor&&(i=r.localize.preprocessor(o,i));const d={firstWeekContainsDate:l,weekStartsOn:c,locale:r};return i.map(u=>{if(!u.isToken)return u.value;const f=u.value;(!n?.useAdditionalWeekYearTokens&&za(f)||!n?.useAdditionalDayOfYearTokens&&Fa(f))&&Ya(f,t,String(e));const h=un[f[0]];return h(o,f,r.localize,d)}).join("")}function $a(e){const t=e.match(Ka);return t?t[1].replace(Ua,"'"):e}function La(e,t){const n=L(e,t?.in),s=n.getFullYear(),r=n.getMonth(),l=J(n,0);return l.setFullYear(s,r+1,0),l.setHours(0,0,0,0),l.getDate()}function Ha(e,t){return L(e,t?.in).getMonth()}function qa(e,t){return L(e,t?.in).getFullYear()}function Ja(e,t){return+L(e)>+L(t)}function Ga(e,t){return+L(e)<+L(t)}function Qa(e,t,n){const[s,r]=He(n?.in,e,t);return s.getFullYear()===r.getFullYear()&&s.getMonth()===r.getMonth()}function Xa(e,t,n){const[s,r]=He(n?.in,e,t);return s.getFullYear()===r.getFullYear()}function Za(e,t,n){const s=L(e,n?.in),r=s.getFullYear(),l=s.getDate(),c=J(e,0);c.setFullYear(r,t,15),c.setHours(0,0,0,0);const o=La(c);return s.setMonth(t,Math.min(l,o)),s}function eo(e,t,n){const s=L(e,n?.in);return isNaN(+s)?J(e,NaN):(s.setFullYear(t),s)}function to(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 no={},nt={};function Me(e,t){try{const s=(no[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return s in nt?nt[s]:gn(s,s.split(":"))}catch{if(e in nt)return nt[e];const n=e?.match(so);return n?gn(e,n.slice(1)):NaN}}const so=/([+-]\d\d):?(\d\d)?/;function gn(e,t){const n=+(t[0]||0),s=+(t[1]||0),r=+(t[2]||0)/60;return nt[e]=n*60+s>0?n*60+s+r:n*60-s-r}class xe extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Me(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)),Qn(this),It(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new xe(...n,t):new xe(Date.now(),t)}withTimeZone(t){return new xe(+this,t)}getTimezoneOffset(){const t=-Me(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),It(this),+this}[Symbol.for("constructDateFrom")](t){return new xe(+new Date(t),this.timeZone)}}const pn=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!pn.test(e))return;const t=e.replace(pn,"$1UTC");xe.prototype[t]&&(e.startsWith("get")?xe.prototype[e]=function(){return this.internal[t]()}:(xe.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),ro(this),+this},xe.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),It(this),+this}))});function It(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Me(e.timeZone,e)*60))}function ro(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()),Qn(e)}function Qn(e){const t=Me(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),s=new Date(+e);s.setUTCHours(s.getUTCHours()-1);const r=-new Date(+e).getTimezoneOffset(),l=-new Date(+s).getTimezoneOffset(),c=r-l,o=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();c&&o&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+c);const i=r-n;i&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+i);const d=new Date(+e);d.setUTCSeconds(0);const u=r>0?d.getSeconds():(d.getSeconds()-60)%60,f=Math.round(-(Me(e.timeZone,e)*60))%60;(f||u)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+f),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+f+u));const h=Me(e.timeZone,e),x=h>0?Math.floor(h):Math.ceil(h),k=-new Date(+e).getTimezoneOffset()-x,S=x!==n,v=k-i;if(S&&v){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+v);const w=Me(e.timeZone,e),p=w>0?Math.floor(w):Math.ceil(w),m=x-p;m&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+m),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+m))}}class X extends xe{static tz(t,...n){return n.length?new X(...n,t):new X(Date.now(),t)}toISOString(){const[t,n,s]=this.tzComponents(),r=`${t}${n}:${s}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,s,r]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${s} ${n} ${r}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,s,r]=this.tzComponents();return`${t} GMT${n}${s}${r} (${to(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"),r=String(Math.abs(t)%60).padStart(2,"0");return[n,s,r]}withTimeZone(t){return new X(+this,t)}[Symbol.for("constructDateFrom")](t){return new X(+new Date(t),this.timeZone)}}const xn=5,ao=4;function oo(e,t){const n=t.startOfMonth(e),s=n.getDay()>0?n.getDay():7,r=t.addDays(e,-s+1),l=t.addDays(r,xn*7-1);return t.getMonth(e)===t.getMonth(l)?xn:ao}function Xn(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 lo(e,t){const n=Xn(e,t),s=oo(e,t);return t.addDays(n,s*7-1)}const Zn={...Ye,labels:{labelDayButton:(e,t,n,s)=>{let r;s&&typeof s.format=="function"?r=s.format.bind(s):r=(c,o)=>we(c,o,{locale:Ye,...n});let l=r(e,"PPPP");return t.today&&(l=`Today, ${l}`),t.selected&&(l=`${l}, selected`),l},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=(r,l)=>we(r,l,{locale:Ye,...t}),s(e,"LLLL yyyy")},labelGridcell:(e,t,n,s)=>{let r;s&&typeof s.format=="function"?r=s.format.bind(s):r=(c,o)=>we(c,o,{locale:Ye,...n});let l=r(e,"PPPP");return t?.today&&(l=`Today, ${l}`),l},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(e,t,n)=>{let s;return n&&typeof n.format=="function"?s=n.format.bind(n):s=(r,l)=>we(r,l,{locale:Ye,...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,r,l)=>this.overrides?.newDate?this.overrides.newDate(s,r,l):this.options.timeZone?new X(s,r,l,this.options.timeZone):new Date(s,r,l),this.addDays=(s,r)=>this.overrides?.addDays?this.overrides.addDays(s,r):pt(s,r),this.addMonths=(s,r)=>this.overrides?.addMonths?this.overrides.addMonths(s,r):Kn(s,r),this.addWeeks=(s,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(s,r):Pr(s,r),this.addYears=(s,r)=>this.overrides?.addYears?this.overrides.addYears(s,r):Ir(s,r),this.differenceInCalendarDays=(s,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(s,r):$t(s,r),this.differenceInCalendarMonths=(s,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(s,r):$n(s,r),this.eachMonthOfInterval=s=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(s):Lr(s),this.eachYearOfInterval=s=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(s):Jr(s),l=new Set(r.map(o=>this.getYear(o)));if(l.size===r.length)return r;const c=[];return l.forEach(o=>{c.push(new Date(o,0,1))}),c},this.endOfBroadcastWeek=s=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(s):lo(s,this),this.endOfISOWeek=s=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(s):Gr(s),this.endOfMonth=s=>this.overrides?.endOfMonth?this.overrides.endOfMonth(s):$r(s),this.endOfWeek=(s,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(s,r):qn(s,this.options),this.endOfYear=s=>this.overrides?.endOfYear?this.overrides.endOfYear(s):qr(s),this.format=(s,r,l)=>{const c=this.overrides?.format?this.overrides.format(s,r,this.options):we(s,r,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(c):c},this.getISOWeek=s=>this.overrides?.getISOWeek?this.overrides.getISOWeek(s):Lt(s),this.getMonth=(s,r)=>this.overrides?.getMonth?this.overrides.getMonth(s,this.options):Ha(s,this.options),this.getYear=(s,r)=>this.overrides?.getYear?this.overrides.getYear(s,this.options):qa(s,this.options),this.getWeek=(s,r)=>this.overrides?.getWeek?this.overrides.getWeek(s,this.options):Ht(s,this.options),this.isAfter=(s,r)=>this.overrides?.isAfter?this.overrides.isAfter(s,r):Ja(s,r),this.isBefore=(s,r)=>this.overrides?.isBefore?this.overrides.isBefore(s,r):Ga(s,r),this.isDate=s=>this.overrides?.isDate?this.overrides.isDate(s):Vn(s),this.isSameDay=(s,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(s,r):Ur(s,r),this.isSameMonth=(s,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(s,r):Qa(s,r),this.isSameYear=(s,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(s,r):Xa(s,r),this.max=s=>this.overrides?.max?this.overrides.max(s):Br(s),this.min=s=>this.overrides?.min?this.overrides.min(s):Kr(s),this.setMonth=(s,r)=>this.overrides?.setMonth?this.overrides.setMonth(s,r):Za(s,r),this.setYear=(s,r)=>this.overrides?.setYear?this.overrides.setYear(s,r):eo(s,r),this.startOfBroadcastWeek=(s,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(s,this):Xn(s,this),this.startOfDay=s=>this.overrides?.startOfDay?this.overrides.startOfDay(s):Ke(s),this.startOfISOWeek=s=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(s):rt(s),this.startOfMonth=s=>this.overrides?.startOfMonth?this.overrides.startOfMonth(s):Hr(s),this.startOfWeek=(s,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(s,this.options):Be(s,this.options),this.startOfYear=s=>this.overrides?.startOfYear?this.overrides.startOfYear(s):Hn(s),this.options={locale:Zn,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),s={};for(let r=0;r<10;r++)s[r.toString()]=n.format(r);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:r}=this.options,l=n?.code;if(l&&re.yearFirstLocales.has(l))try{return new Intl.DateTimeFormat(l,{month:"long",year:"numeric",timeZone:s,numberingSystem:r}).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 ye=new re;class es{constructor(t,n,s=ye){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 io{constructor(t,n){this.date=t,this.weeks=n}}class co{constructor(t,n){this.days=n,this.weekNumber=t}}function uo(e){return N.createElement("button",{...e})}function fo(e){return N.createElement("span",{...e})}function ho(e){const{size:t=24,orientation:n="left",className:s}=e;return N.createElement("svg",{className:s,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&N.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&N.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&N.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&N.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function mo(e){const{day:t,modifiers:n,...s}=e;return N.createElement("td",{...s})}function go(e){const{day:t,modifiers:n,...s}=e,r=N.useRef(null);return N.useEffect(()=>{n.focused&&r.current?.focus()},[n.focused]),N.createElement("button",{ref:r,...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 H;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(H||(H={}));var de;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(de||(de={}));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 po(e){const{options:t,className:n,components:s,classNames:r,...l}=e,c=[r[T.Dropdown],n].join(" "),o=t?.find(({value:i})=>i===l.value);return N.createElement("span",{"data-disabled":l.disabled,className:r[T.DropdownRoot]},N.createElement(s.Select,{className:c,...l},t?.map(({value:i,label:d,disabled:u})=>N.createElement(s.Option,{key:i,value:i,disabled:u},d))),N.createElement("span",{className:r[T.CaptionLabel],"aria-hidden":!0},o?.label,N.createElement(s.Chevron,{orientation:"down",size:18,className:r[T.Chevron]})))}function xo(e){return N.createElement("div",{...e})}function yo(e){return N.createElement("div",{...e})}function bo(e){const{calendarMonth:t,displayIndex:n,...s}=e;return N.createElement("div",{...s},e.children)}function Co(e){const{calendarMonth:t,displayIndex:n,...s}=e;return N.createElement("div",{...s})}function wo(e){return N.createElement("table",{...e})}function vo(e){return N.createElement("div",{...e})}const ts=g.createContext(void 0);function it(){const e=g.useContext(ts);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function So(e){const{components:t}=it();return N.createElement(t.Dropdown,{...e})}function ko(e){const{onPreviousClick:t,onNextClick:n,previousMonth:s,nextMonth:r,...l}=e,{components:c,classNames:o,labels:{labelPrevious:i,labelNext:d}}=it(),u=g.useCallback(h=>{r&&n?.(h)},[r,n]),f=g.useCallback(h=>{s&&t?.(h)},[s,t]);return N.createElement("nav",{...l},N.createElement(c.PreviousMonthButton,{type:"button",className:o[T.PreviousMonthButton],tabIndex:s?void 0:-1,"aria-disabled":s?void 0:!0,"aria-label":i(s),onClick:f},N.createElement(c.Chevron,{disabled:s?void 0:!0,className:o[T.Chevron],orientation:"left"})),N.createElement(c.NextMonthButton,{type:"button",className:o[T.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:u},N.createElement(c.Chevron,{disabled:r?void 0:!0,orientation:"right",className:o[T.Chevron]})))}function jo(e){const{components:t}=it();return N.createElement(t.Button,{...e})}function Do(e){return N.createElement("option",{...e})}function No(e){const{components:t}=it();return N.createElement(t.Button,{...e})}function Eo(e){const{rootRef:t,...n}=e;return N.createElement("div",{...n,ref:t})}function Oo(e){return N.createElement("select",{...e})}function Mo(e){const{week:t,...n}=e;return N.createElement("tr",{...n})}function To(e){return N.createElement("th",{...e})}function _o(e){return N.createElement("thead",{"aria-hidden":!0},N.createElement("tr",{...e}))}function Ro(e){const{week:t,...n}=e;return N.createElement("th",{...n})}function Ao(e){return N.createElement("th",{...e})}function Wo(e){return N.createElement("tbody",{...e})}function Fo(e){const{components:t}=it();return N.createElement(t.Dropdown,{...e})}const zo=Object.freeze(Object.defineProperty({__proto__:null,Button:uo,CaptionLabel:fo,Chevron:ho,Day:mo,DayButton:go,Dropdown:po,DropdownNav:xo,Footer:yo,Month:bo,MonthCaption:Co,MonthGrid:wo,Months:vo,MonthsDropdown:So,Nav:ko,NextMonthButton:jo,Option:Do,PreviousMonthButton:No,Root:Eo,Select:Oo,Week:Mo,WeekNumber:Ro,WeekNumberHeader:Ao,Weekday:To,Weekdays:_o,Weeks:Wo,YearsDropdown:Fo},Symbol.toStringTag,{value:"Module"}));function ve(e,t,n=!1,s=ye){let{from:r,to:l}=e;const{differenceInCalendarDays:c,isSameDay:o}=s;return r&&l?(c(l,r)<0&&([r,l]=[l,r]),c(t,r)>=(n?1:0)&&c(l,t)>=(n?1:0)):!n&&l?o(l,t):!n&&r?o(r,t):!1}function qt(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function bt(e){return!!(e&&typeof e=="object"&&"from"in e)}function Jt(e){return!!(e&&typeof e=="object"&&"after"in e)}function Gt(e){return!!(e&&typeof e=="object"&&"before"in e)}function ns(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ss(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Se(e,t,n=ye){const s=Array.isArray(t)?t:[t],{isSameDay:r,differenceInCalendarDays:l,isAfter:c}=n;return s.some(o=>{if(typeof o=="boolean")return o;if(n.isDate(o))return r(e,o);if(ss(o,n))return o.some(i=>r(e,i));if(bt(o))return ve(o,e,!1,n);if(ns(o))return Array.isArray(o.dayOfWeek)?o.dayOfWeek.includes(e.getDay()):o.dayOfWeek===e.getDay();if(qt(o)){const i=l(o.before,e),d=l(o.after,e),u=i>0,f=d<0;return c(o.before,o.after)?f&&u:u||f}return Jt(o)?l(e,o.after)>0:Gt(o)?l(o.before,e)>0:typeof o=="function"?o(e):!1})}function Yo(e,t,n,s,r){const{disabled:l,hidden:c,modifiers:o,showOutsideDays:i,broadcastCalendar:d,today:u=r.today()}=t,{isSameDay:f,isSameMonth:h,startOfMonth:x,isBefore:y,endOfMonth:k,isAfter:S}=r,v=n&&x(n),w=s&&k(s),p={[H.focused]:[],[H.outside]:[],[H.disabled]:[],[H.hidden]:[],[H.today]:[]},m={};for(const b of e){const{date:C,displayMonth:j}=b,E=!!(j&&!h(C,j)),D=!!(v&&y(C,v)),O=!!(w&&S(C,w)),R=!!(l&&Se(C,l,r)),q=!!(c&&Se(C,c,r))||D||O||!d&&!i&&E||d&&i===!1&&E,G=f(C,u);E&&p.outside.push(b),R&&p.disabled.push(b),q&&p.hidden.push(b),G&&p.today.push(b),o&&Object.keys(o).forEach(Y=>{const I=o?.[Y];I&&Se(C,I,r)&&(m[Y]?m[Y].push(b):m[Y]=[b])})}return b=>{const C={[H.focused]:!1,[H.disabled]:!1,[H.hidden]:!1,[H.outside]:!1,[H.today]:!1},j={};for(const E in p){const D=p[E];C[E]=D.some(O=>O===b)}for(const E in m)j[E]=m[E].some(D=>D===b);return{...C,...j}}}function Po(e,t,n={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[l])=>(n[l]?r.push(n[l]):t[H[l]]?r.push(t[H[l]]):t[de[l]]&&r.push(t[de[l]]),r),[t[T.Day]])}function Io(e){return{...zo,...e}}function Bo(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 Qt(){const e={};for(const t in T)e[T[t]]=`rdp-${T[t]}`;for(const t in H)e[H[t]]=`rdp-${H[t]}`;for(const t in de)e[de[t]]=`rdp-${de[t]}`;for(const t in ne)e[ne[t]]=`rdp-${ne[t]}`;return e}function rs(e,t,n){return(n??new re(t)).formatMonthYear(e)}const Ko=rs;function Uo(e,t,n){return(n??new re(t)).format(e,"d")}function Vo(e,t=ye){return t.format(e,"LLLL")}function $o(e,t,n){return(n??new re(t)).format(e,"cccccc")}function Lo(e,t=ye){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function Ho(){return""}function as(e,t=ye){return t.format(e,"yyyy")}const qo=as,Jo=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:rs,formatDay:Uo,formatMonthCaption:Ko,formatMonthDropdown:Vo,formatWeekNumber:Lo,formatWeekNumberHeader:Ho,formatWeekdayName:$o,formatYearCaption:qo,formatYearDropdown:as},Symbol.toStringTag,{value:"Module"}));function Go(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Jo,...e}}function Xt(e,t,n,s){let r=(s??new re(n)).format(e,"PPPP");return t.today&&(r=`Today, ${r}`),t.selected&&(r=`${r}, selected`),r}const Qo=Xt;function Zt(e,t,n){return(n??new re(t)).formatMonthYear(e)}const Xo=Zt;function os(e,t,n,s){let r=(s??new re(n)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function ls(e){return"Choose the Month"}function is(){return""}const Zo="Go to the Next Month";function cs(e,t){return Zo}function ds(e){return"Go to the Previous Month"}function us(e,t,n){return(n??new re(t)).format(e,"cccc")}function fs(e,t){return`Week ${e}`}function hs(e){return"Week Number"}function ms(e){return"Choose the Year"}const el=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:Xo,labelDay:Qo,labelDayButton:Xt,labelGrid:Zt,labelGridcell:os,labelMonthDropdown:ls,labelNav:is,labelNext:cs,labelPrevious:ds,labelWeekNumber:fs,labelWeekNumberHeader:hs,labelWeekday:us,labelYearDropdown:ms},Symbol.toStringTag,{value:"Module"})),ie=(e,t,n)=>t||(n?typeof n=="function"?n:(...s)=>n:e);function tl(e,t){const n=t.locale?.labels??{};return{...el,...e??{},labelDayButton:ie(Xt,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:ie(ls,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:ie(cs,e?.labelNext,n.labelNext),labelPrevious:ie(ds,e?.labelPrevious,n.labelPrevious),labelWeekNumber:ie(fs,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:ie(ms,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:ie(Zt,e?.labelGrid,n.labelGrid),labelGridcell:ie(os,e?.labelGridcell,n.labelGridcell),labelNav:ie(is,e?.labelNav,n.labelNav),labelWeekNumberHeader:ie(hs,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:ie(us,e?.labelWeekday,n.labelWeekday)}}function nl(e,t,n,s,r){const{startOfMonth:l,startOfYear:c,endOfYear:o,eachMonthOfInterval:i,getMonth:d}=r;return i({start:c(e),end:o(e)}).map(h=>{const x=s.formatMonthDropdown(h,r),y=d(h),k=t&&h<l(t)||n&&h>l(n)||!1;return{value:y,label:x,disabled:k}})}function sl(e,t={},n={}){let s={...t?.[T.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{s={...s,...n?.[r]}}),s}function rl(e,t,n,s){const r=s??e.today(),l=n?e.startOfBroadcastWeek(r,e):t?e.startOfISOWeek(r):e.startOfWeek(r),c=[];for(let o=0;o<7;o++){const i=e.addDays(l,o);c.push(i)}return c}function al(e,t,n,s,r=!1){if(!e||!t)return;const{startOfYear:l,endOfYear:c,eachYearOfInterval:o,getYear:i}=s,d=l(e),u=c(t),f=o({start:d,end:u});return r&&f.reverse(),f.map(h=>{const x=n.formatYearDropdown(h,s);return{value:i(h),label:x,disabled:!1}})}function ol(e,t={}){const{weekStartsOn:n,locale:s}=t,r=n??s?.options?.weekStartsOn??0,l=o=>{const i=typeof o=="number"||typeof o=="string"?new Date(o):o;return new X(i.getFullYear(),i.getMonth(),i.getDate(),12,0,0,e)},c=o=>{const i=l(o);return new Date(i.getFullYear(),i.getMonth(),i.getDate(),0,0,0,0)};return{today:()=>l(X.tz(e)),newDate:(o,i,d)=>new X(o,i,d,12,0,0,e),startOfDay:o=>l(o),startOfWeek:(o,i)=>{const d=l(o),u=i?.weekStartsOn??r,f=(d.getDay()-u+7)%7;return d.setDate(d.getDate()-f),d},startOfISOWeek:o=>{const i=l(o),d=(i.getDay()-1+7)%7;return i.setDate(i.getDate()-d),i},startOfMonth:o=>{const i=l(o);return i.setDate(1),i},startOfYear:o=>{const i=l(o);return i.setMonth(0,1),i},endOfWeek:(o,i)=>{const d=l(o),h=(((i?.weekStartsOn??r)+6)%7-d.getDay()+7)%7;return d.setDate(d.getDate()+h),d},endOfISOWeek:o=>{const i=l(o),d=(7-i.getDay())%7;return i.setDate(i.getDate()+d),i},endOfMonth:o=>{const i=l(o);return i.setMonth(i.getMonth()+1,0),i},endOfYear:o=>{const i=l(o);return i.setMonth(11,31),i},eachMonthOfInterval:o=>{const i=l(o.start),d=l(o.end),u=[],f=new X(i.getFullYear(),i.getMonth(),1,12,0,0,e),h=d.getFullYear()*12+d.getMonth();for(;f.getFullYear()*12+f.getMonth()<=h;)u.push(new X(f,e)),f.setMonth(f.getMonth()+1,1);return u},addDays:(o,i)=>{const d=l(o);return d.setDate(d.getDate()+i),d},addWeeks:(o,i)=>{const d=l(o);return d.setDate(d.getDate()+i*7),d},addMonths:(o,i)=>{const d=l(o);return d.setMonth(d.getMonth()+i),d},addYears:(o,i)=>{const d=l(o);return d.setFullYear(d.getFullYear()+i),d},eachYearOfInterval:o=>{const i=l(o.start),d=l(o.end),u=[],f=new X(i.getFullYear(),0,1,12,0,0,e);for(;f.getFullYear()<=d.getFullYear();)u.push(new X(f,e)),f.setFullYear(f.getFullYear()+1,0,1);return u},getWeek:(o,i)=>{const d=c(o);return Ht(d,{weekStartsOn:i?.weekStartsOn??r,firstWeekContainsDate:i?.firstWeekContainsDate??s?.options?.firstWeekContainsDate??1})},getISOWeek:o=>{const i=c(o);return Lt(i)},differenceInCalendarDays:(o,i)=>{const d=c(o),u=c(i);return $t(d,u)},differenceInCalendarMonths:(o,i)=>{const d=c(o),u=c(i);return $n(d,u)}}}const ct=e=>e instanceof HTMLElement?e:null,Rt=e=>[...e.querySelectorAll("[data-animated-month]")??[]],ll=e=>ct(e.querySelector("[data-animated-month]")),At=e=>ct(e.querySelector("[data-animated-caption]")),Wt=e=>ct(e.querySelector("[data-animated-weeks]")),il=e=>ct(e.querySelector("[data-animated-nav]")),cl=e=>ct(e.querySelector("[data-animated-weekdays]"));function dl(e,t,{classNames:n,months:s,focused:r,dateLib:l}){const c=g.useRef(null),o=g.useRef(s),i=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 u=l.isSameMonth(s[0].date,d[0].date),f=l.isAfter(s[0].date,d[0].date),h=f?n[ne.caption_after_enter]:n[ne.caption_before_enter],x=f?n[ne.weeks_after_enter]:n[ne.weeks_before_enter],y=c.current,k=e.current.cloneNode(!0);if(k instanceof HTMLElement?(Rt(k).forEach(p=>{if(!(p instanceof HTMLElement))return;const m=ll(p);m&&p.contains(m)&&p.removeChild(m);const b=At(p);b&&b.classList.remove(h);const C=Wt(p);C&&C.classList.remove(x)}),c.current=k):c.current=null,i.current||u||r)return;const S=y instanceof HTMLElement?Rt(y):[],v=Rt(e.current);if(v?.every(w=>w instanceof HTMLElement)&&S&&S.every(w=>w instanceof HTMLElement)){i.current=!0,e.current.style.isolation="isolate";const w=il(e.current);w&&(w.style.zIndex="1"),v.forEach((p,m)=>{const b=S[m];if(!b)return;p.style.position="relative",p.style.overflow="hidden";const C=At(p);C&&C.classList.add(h);const j=Wt(p);j&&j.classList.add(x);const E=()=>{i.current=!1,e.current&&(e.current.style.isolation=""),w&&(w.style.zIndex=""),C&&C.classList.remove(h),j&&j.classList.remove(x),p.style.position="",p.style.overflow="",p.contains(b)&&p.removeChild(b)};b.style.pointerEvents="none",b.style.position="absolute",b.style.overflow="hidden",b.setAttribute("aria-hidden","true");const D=cl(b);D&&(D.style.opacity="0");const O=At(b);O&&(O.classList.add(f?n[ne.caption_before_exit]:n[ne.caption_after_exit]),O.addEventListener("animationend",E));const R=Wt(b);R&&R.classList.add(f?n[ne.weeks_before_exit]:n[ne.weeks_after_exit]),p.insertBefore(b,p.firstChild)})}})}function ul(e,t,n,s){const r=e[0],l=e[e.length-1],{ISOWeek:c,fixedWeeks:o,broadcastCalendar:i}=n??{},{addDays:d,differenceInCalendarDays:u,differenceInCalendarMonths:f,endOfBroadcastWeek:h,endOfISOWeek:x,endOfMonth:y,endOfWeek:k,isAfter:S,startOfBroadcastWeek:v,startOfISOWeek:w,startOfWeek:p}=s,m=i?v(r,s):c?w(r):p(r),b=i?h(l):c?x(y(l)):k(y(l)),C=t&&(i?h(t):c?x(t):k(t)),j=C&&S(b,C)?C:b,E=u(j,m),D=f(l,r)+1,O=[];for(let G=0;G<=E;G++){const Y=d(m,G);O.push(Y)}const q=(i?35:42)*D;if(o&&O.length<q){const G=q-O.length;for(let Y=0;Y<G;Y++){const I=d(O[O.length-1],1);O.push(I)}}return O}function fl(e){const t=[];return e.reduce((n,s)=>{const r=s.weeks.reduce((l,c)=>l.concat(c.days.slice()),t.slice());return n.concat(r.slice())},t.slice())}function hl(e,t,n,s){const{numberOfMonths:r=1}=n,l=[];for(let c=0;c<r;c++){const o=s.addMonths(e,c);if(t&&o>t)break;l.push(o)}return l}function yn(e,t,n,s){const{month:r,defaultMonth:l,today:c=s.today(),numberOfMonths:o=1}=e;let i=r||l||c;const{differenceInCalendarMonths:d,addMonths:u,startOfMonth:f}=s;if(n&&d(n,i)<o-1){const h=-1*(o-1);i=u(n,h)}return t&&d(i,t)<0&&(i=t),f(i)}function ml(e,t,n,s){const{addDays:r,endOfBroadcastWeek:l,endOfISOWeek:c,endOfMonth:o,endOfWeek:i,getISOWeek:d,getWeek:u,startOfBroadcastWeek:f,startOfISOWeek:h,startOfWeek:x}=s,y=e.reduce((k,S)=>{const v=n.broadcastCalendar?f(S,s):n.ISOWeek?h(S):x(S),w=n.broadcastCalendar?l(S):n.ISOWeek?c(o(S)):i(o(S)),p=t.filter(j=>j>=v&&j<=w),m=n.broadcastCalendar?35:42;if(n.fixedWeeks&&p.length<m){const j=t.filter(E=>{const D=m-p.length;return E>w&&E<=r(w,D)});p.push(...j)}const b=p.reduce((j,E)=>{const D=n.ISOWeek?d(E):u(E),O=j.find(q=>q.weekNumber===D),R=new es(E,S,s);return O?O.days.push(R):j.push(new co(D,[R])),j},[]),C=new io(S,b);return k.push(C),k},[]);return n.reverseMonths?y.reverse():y}function gl(e,t){let{startMonth:n,endMonth:s}=e;const{startOfYear:r,startOfDay:l,startOfMonth:c,endOfMonth:o,addYears:i,endOfYear:d,newDate:u,today:f}=t,{fromYear:h,toYear:x,fromMonth:y,toMonth:k}=e;!n&&y&&(n=y),!n&&h&&(n=t.newDate(h,0,1)),!s&&k&&(s=k),!s&&x&&(s=u(x,11,31));const S=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=c(n):h?n=u(h,0,1):!n&&S&&(n=r(i(e.today??f(),-100))),s?s=o(s):x?s=u(x,11,31):!s&&S&&(s=d(e.today??f())),[n&&l(n),s&&l(s)]}function pl(e,t,n,s){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:l=1}=n,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:i}=s,d=r?l:1,u=c(e);if(!t)return o(u,d);if(!(i(t,e)<l))return o(u,d)}function xl(e,t,n,s){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:l}=n,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:i}=s,d=r?l??1:1,u=c(e);if(!t)return o(u,-d);if(!(i(u,t)<=0))return o(u,-d)}function yl(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 bl(e,t){const[n,s]=gl(e,t),{startOfMonth:r,endOfMonth:l}=t,c=yn(e,n,s,t),[o,i]=Ct(c,e.month?c:void 0);g.useEffect(()=>{const m=yn(e,n,s,t);i(m)},[e.timeZone]);const{months:d,weeks:u,days:f,previousMonth:h,nextMonth:x}=g.useMemo(()=>{const m=hl(o,s,{numberOfMonths:e.numberOfMonths},t),b=ul(m,e.endMonth?l(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),C=ml(m,b,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),j=yl(C),E=fl(C),D=xl(o,n,e,t),O=pl(o,s,e,t);return{months:C,weeks:j,days:E,previousMonth:D,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:y,onMonthChange:k}=e,S=m=>u.some(b=>b.days.some(C=>C.isEqualTo(m))),v=m=>{if(y)return;let b=r(m);n&&b<r(n)&&(b=r(n)),s&&b>r(s)&&(b=r(s)),i(b),k?.(b)};return{months:d,weeks:u,days:f,navStart:n,navEnd:s,previousMonth:h,nextMonth:x,goToMonth:v,goToDay:m=>{S(m)||v(m.date)}}}var pe;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(pe||(pe={}));function bn(e){return!e[H.disabled]&&!e[H.hidden]&&!e[H.outside]}function Cl(e,t,n,s){let r,l=-1;for(const c of e){const o=t(c);bn(o)&&(o[H.focused]&&l<pe.FocusedModifier?(r=c,l=pe.FocusedModifier):s?.isEqualTo(c)&&l<pe.LastFocused?(r=c,l=pe.LastFocused):n(c.date)&&l<pe.Selected?(r=c,l=pe.Selected):o[H.today]&&l<pe.Today&&(r=c,l=pe.Today))}return r||(r=e.find(c=>bn(t(c)))),r}function wl(e,t,n,s,r,l,c){const{ISOWeek:o,broadcastCalendar:i}=l,{addDays:d,addMonths:u,addWeeks:f,addYears:h,endOfBroadcastWeek:x,endOfISOWeek:y,endOfWeek:k,max:S,min:v,startOfBroadcastWeek:w,startOfISOWeek:p,startOfWeek:m}=c;let C={day:d,week:f,month:u,year:h,startOfWeek:j=>i?w(j,c):o?p(j):m(j),endOfWeek:j=>i?x(j):o?y(j):k(j)}[e](n,t==="after"?1:-1);return t==="before"&&s?C=S([s,C]):t==="after"&&r&&(C=v([r,C])),C}function gs(e,t,n,s,r,l,c,o=0){if(o>365)return;const i=wl(e,t,n.date,s,r,l,c),d=!!(l.disabled&&Se(i,l.disabled,c)),u=!!(l.hidden&&Se(i,l.hidden,c)),f=i,h=new es(i,f,c);return!d&&!u?h:gs(e,t,h,s,r,l,c,o+1)}function vl(e,t,n,s,r){const{autoFocus:l}=e,[c,o]=g.useState(),i=Cl(t.days,n,s||(()=>!1),c),[d,u]=g.useState(l?i:void 0);return{isFocusTarget:k=>!!i?.isEqualTo(k),setFocused:u,focused:d,blur:()=>{o(d),u(void 0)},moveFocus:(k,S)=>{if(!d)return;const v=gs(k,S,d,t.navStart,t.navEnd,e,r);v&&(e.disableNavigation&&!t.days.some(p=>p.isEqualTo(v))||(t.goToDay(v),u(v)))}}}function Sl(e,t){const{selected:n,required:s,onSelect:r}=e,[l,c]=Ct(n,r?n:void 0),o=r?n:l,{isSameDay:i}=t,d=x=>o?.some(y=>i(y,x))??!1,{min:u,max:f}=e;return{selected:o,select:(x,y,k)=>{let S=[...o??[]];if(d(x)){if(o?.length===u||s&&o?.length===1)return;S=o?.filter(v=>!i(v,x))}else o?.length===f?S=[x]:S=[...S,x];return r||c(S),r?.(S,x,y,k),S},isSelected:d}}function kl(e,t,n=0,s=0,r=!1,l=ye){const{from:c,to:o}=t||{},{isSameDay:i,isAfter:d,isBefore:u}=l;let f;if(!c&&!o)f={from:e,to:n>0?void 0:e};else if(c&&!o)i(c,e)?n===0?f={from:c,to:e}:r?f={from:c,to:void 0}:f=void 0:u(e,c)?f={from:e,to:c}:f={from:c,to:e};else if(c&&o)if(i(c,e)&&i(o,e))r?f={from:c,to:o}:f=void 0;else if(i(c,e))f={from:c,to:n>0?void 0:e};else if(i(o,e))f={from:e,to:n>0?void 0:e};else if(u(e,c))f={from:e,to:o};else if(d(e,c))f={from:c,to:e};else if(d(e,o))f={from:c,to:e};else throw new Error("Invalid range");if(f?.from&&f?.to){const h=l.differenceInCalendarDays(f.to,f.from);s>0&&h>s?f={from:e,to:void 0}:n>1&&h<n&&(f={from:e,to:void 0})}return f}function jl(e,t,n=ye){const s=Array.isArray(t)?t:[t];let r=e.from;const l=n.differenceInCalendarDays(e.to,e.from),c=Math.min(l,6);for(let o=0;o<=c;o++){if(s.includes(r.getDay()))return!0;r=n.addDays(r,1)}return!1}function Cn(e,t,n=ye){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 Dl(e,t,n=ye){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):ss(o,n)?o.some(i=>ve(e,i,!1,n)):bt(o)?o.from&&o.to?Cn(e,{from:o.from,to:o.to},n):!1:ns(o)?jl(e,o.dayOfWeek,n):qt(o)?n.isAfter(o.before,o.after)?Cn(e,{from:n.addDays(o.after,1),to:n.addDays(o.before,-1)},n):Se(e.from,o,n)||Se(e.to,o,n):Jt(o)||Gt(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 i=n.differenceInCalendarDays(e.to,e.from);for(let d=0;d<=i;d++){if(c.some(u=>u(o)))return!0;o=n.addDays(o,1)}}return!1}function Nl(e,t){const{disabled:n,excludeDisabled:s,selected:r,required:l,onSelect:c}=e,[o,i]=Ct(r,c?r:void 0),d=c?r:o;return{selected:d,select:(h,x,y)=>{const{min:k,max:S}=e,v=h?kl(h,d,k,S,l,t):void 0;return s&&n&&v?.from&&v.to&&Dl({from:v.from,to:v.to},n,t)&&(v.from=h,v.to=void 0),c||i(v),c?.(v,h,x,y),v},isSelected:h=>d&&ve(d,h,!1,t)}}function El(e,t){const{selected:n,required:s,onSelect:r}=e,[l,c]=Ct(n,r?n:void 0),o=r?n:l,{isSameDay:i}=t;return{selected:o,select:(f,h,x)=>{let y=f;return!s&&o&&o&&i(f,o)&&(y=void 0),r||c(y),r?.(y,f,h,x),y},isSelected:f=>o?i(o,f):!1}}function Ol(e,t){const n=El(e,t),s=Sl(e,t),r=Nl(e,t);switch(e.mode){case"single":return n;case"multiple":return s;case"range":return r;default:return}}function oe(e,t){return e instanceof X&&e.timeZone===t?e:new X(e,t)}function ze(e,t,n){return oe(e,t)}function wn(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?ze(e,t):Array.isArray(e)?e.map(s=>s instanceof Date?ze(s,t):s):bt(e)?{...e,from:e.from?oe(e.from,t):e.from,to:e.to?oe(e.to,t):e.to}:qt(e)?{before:ze(e.before,t),after:ze(e.after,t)}:Jt(e)?{after:ze(e.after,t)}:Gt(e)?{before:ze(e.before,t)}:e}function Ft(e,t,n){return e&&(Array.isArray(e)?e.map(s=>wn(s,t)):wn(e,t))}function Ml(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(z=>oe(z,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=Ft(t.disabled,n)),t.hidden!==void 0&&(t.hidden=Ft(t.hidden,n)),t.modifiers)){const z={};Object.keys(t.modifiers).forEach(V=>{z[V]=Ft(t.modifiers?.[V],n)}),t.modifiers=z}const{components:s,formatters:r,labels:l,dateLib:c,locale:o,classNames:i}=g.useMemo(()=>{const z={...Zn,...t.locale},V=t.broadcastCalendar?1:t.weekStartsOn,F=t.noonSafe&&t.timeZone?ol(t.timeZone,{weekStartsOn:V,locale:z}):void 0,U=t.dateLib&&F?{...F,...t.dateLib}:t.dateLib??F,te=new re({locale:z,weekStartsOn:V,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},U);return{dateLib:te,components:Io(t.components),formatters:Go(t.formatters),labels:tl(t.labels,te.options),locale:z,classNames:{...Qt(),...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:u,navLayout:f,numberOfMonths:h=1,onDayBlur:x,onDayClick:y,onDayFocus:k,onDayKeyDown:S,onDayMouseEnter:v,onDayMouseLeave:w,onNextClick:p,onPrevClick:m,showWeekNumber:b,styles:C}=t,{formatCaption:j,formatDay:E,formatMonthDropdown:D,formatWeekNumber:O,formatWeekNumberHeader:R,formatWeekdayName:q,formatYearDropdown:G}=r,Y=bl(t,c),{days:I,months:A,navStart:Q,navEnd:Je,previousMonth:Z,nextMonth:ee,goToMonth:Ce}=Y,kt=Yo(I,t,Q,Je,c),{isSelected:jt,select:Dt,selected:dt}=Ol(t,c)??{},{blur:tn,focused:nn,isFocusTarget:vs,moveFocus:sn,setFocused:ut}=vl(t,Y,kt,jt??(()=>!1),c),{labelDayButton:Ss,labelGridcell:ks,labelGrid:js,labelMonthDropdown:Ds,labelNav:rn,labelPrevious:Ns,labelNext:Es,labelWeekday:Os,labelWeekNumber:Ms,labelWeekNumberHeader:Ts,labelYearDropdown:_s}=l,Rs=g.useMemo(()=>rl(c,t.ISOWeek,t.broadcastCalendar,t.today),[c,t.ISOWeek,t.broadcastCalendar,t.today]),an=u!==void 0||y!==void 0,Nt=g.useCallback(()=>{Z&&(Ce(Z),m?.(Z))},[Z,Ce,m]),Et=g.useCallback(()=>{ee&&(Ce(ee),p?.(ee))},[Ce,ee,p]),As=g.useCallback((z,V)=>F=>{F.preventDefault(),F.stopPropagation(),ut(z),!V.disabled&&(Dt?.(z.date,V,F),y?.(z.date,V,F))},[Dt,y,ut]),Ws=g.useCallback((z,V)=>F=>{ut(z),k?.(z.date,V,F)},[k,ut]),Fs=g.useCallback((z,V)=>F=>{tn(),x?.(z.date,V,F)},[tn,x]),zs=g.useCallback((z,V)=>F=>{const U={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(U[F.key]){F.preventDefault(),F.stopPropagation();const[te,K]=U[F.key];sn(te,K)}S?.(z.date,V,F)},[sn,S,t.dir]),Ys=g.useCallback((z,V)=>F=>{v?.(z.date,V,F)},[v]),Ps=g.useCallback((z,V)=>F=>{w?.(z.date,V,F)},[w]),Is=g.useCallback(z=>V=>{const F=Number(V.target.value),U=c.setMonth(c.startOfMonth(z),F);Ce(U)},[c,Ce]),Bs=g.useCallback(z=>V=>{const F=Number(V.target.value),U=c.setYear(c.startOfMonth(z),F);Ce(U)},[c,Ce]),{className:Ks,style:Us}=g.useMemo(()=>({className:[i[T.Root],t.className].filter(Boolean).join(" "),style:{...C?.[T.Root],...t.style}}),[i,t.className,t.style,C]),Vs=Bo(t),on=g.useRef(null);dl(on,!!t.animate,{classNames:i,months:A,focused:nn,dateLib:c});const $s={dayPickerProps:t,selected:dt,select:Dt,isSelected:jt,months:A,nextMonth:ee,previousMonth:Z,goToMonth:Ce,getModifiers:kt,components:s,classNames:i,styles:C,labels:l,formatters:r};return N.createElement(ts.Provider,{value:$s},N.createElement(s.Root,{rootRef:t.animate?on:void 0,className:Ks,style:Us,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"],...Vs},N.createElement(s.Months,{className:i[T.Months],style:C?.[T.Months]},!t.hideNavigation&&!f&&N.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:i[T.Nav],style:C?.[T.Nav],"aria-label":rn(),onPreviousClick:Nt,onNextClick:Et,previousMonth:Z,nextMonth:ee}),A.map((z,V)=>N.createElement(s.Month,{"data-animated-month":t.animate?"true":void 0,className:i[T.Month],style:C?.[T.Month],key:V,displayIndex:V,calendarMonth:z},f==="around"&&!t.hideNavigation&&V===0&&N.createElement(s.PreviousMonthButton,{type:"button",className:i[T.PreviousMonthButton],tabIndex:Z?void 0:-1,"aria-disabled":Z?void 0:!0,"aria-label":Ns(Z),onClick:Nt,"data-animated-button":t.animate?"true":void 0},N.createElement(s.Chevron,{disabled:Z?void 0:!0,className:i[T.Chevron],orientation:t.dir==="rtl"?"right":"left"})),N.createElement(s.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:i[T.MonthCaption],style:C?.[T.MonthCaption],calendarMonth:z,displayIndex:V},d?.startsWith("dropdown")?N.createElement(s.DropdownNav,{className:i[T.Dropdowns],style:C?.[T.Dropdowns]},(()=>{const F=d==="dropdown"||d==="dropdown-months"?N.createElement(s.MonthsDropdown,{key:"month",className:i[T.MonthsDropdown],"aria-label":Ds(),classNames:i,components:s,disabled:!!t.disableNavigation,onChange:Is(z.date),options:nl(z.date,Q,Je,r,c),style:C?.[T.Dropdown],value:c.getMonth(z.date)}):N.createElement("span",{key:"month"},D(z.date,c)),U=d==="dropdown"||d==="dropdown-years"?N.createElement(s.YearsDropdown,{key:"year",className:i[T.YearsDropdown],"aria-label":_s(c.options),classNames:i,components:s,disabled:!!t.disableNavigation,onChange:Bs(z.date),options:al(Q,Je,r,c,!!t.reverseYears),style:C?.[T.Dropdown],value:c.getYear(z.date)}):N.createElement("span",{key:"year"},G(z.date,c));return c.getMonthYearOrder()==="year-first"?[U,F]:[F,U]})(),N.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(z.date,c.options,c))):N.createElement(s.CaptionLabel,{className:i[T.CaptionLabel],role:"status","aria-live":"polite"},j(z.date,c.options,c))),f==="around"&&!t.hideNavigation&&V===h-1&&N.createElement(s.NextMonthButton,{type:"button",className:i[T.NextMonthButton],tabIndex:ee?void 0:-1,"aria-disabled":ee?void 0:!0,"aria-label":Es(ee),onClick:Et,"data-animated-button":t.animate?"true":void 0},N.createElement(s.Chevron,{disabled:ee?void 0:!0,className:i[T.Chevron],orientation:t.dir==="rtl"?"left":"right"})),V===h-1&&f==="after"&&!t.hideNavigation&&N.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:i[T.Nav],style:C?.[T.Nav],"aria-label":rn(),onPreviousClick:Nt,onNextClick:Et,previousMonth:Z,nextMonth:ee}),N.createElement(s.MonthGrid,{role:"grid","aria-multiselectable":u==="multiple"||u==="range","aria-label":js(z.date,c.options,c)||void 0,className:i[T.MonthGrid],style:C?.[T.MonthGrid]},!t.hideWeekdays&&N.createElement(s.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:i[T.Weekdays],style:C?.[T.Weekdays]},b&&N.createElement(s.WeekNumberHeader,{"aria-label":Ts(c.options),className:i[T.WeekNumberHeader],style:C?.[T.WeekNumberHeader],scope:"col"},R()),Rs.map(F=>N.createElement(s.Weekday,{"aria-label":Os(F,c.options,c),className:i[T.Weekday],key:String(F),style:C?.[T.Weekday],scope:"col"},q(F,c.options,c)))),N.createElement(s.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:i[T.Weeks],style:C?.[T.Weeks]},z.weeks.map(F=>N.createElement(s.Week,{className:i[T.Week],key:F.weekNumber,style:C?.[T.Week],week:F},b&&N.createElement(s.WeekNumber,{week:F,style:C?.[T.WeekNumber],"aria-label":Ms(F.weekNumber,{locale:o}),className:i[T.WeekNumber],scope:"row",role:"rowheader"},O(F.weekNumber,c)),F.days.map(U=>{const{date:te}=U,K=kt(U);if(K[H.focused]=!K.hidden&&!!nn?.isEqualTo(U),K[de.selected]=jt?.(te)||K.selected,bt(dt)){const{from:Ot,to:Mt}=dt;K[de.range_start]=!!(Ot&&Mt&&c.isSameDay(te,Ot)),K[de.range_end]=!!(Ot&&Mt&&c.isSameDay(te,Mt)),K[de.range_middle]=ve(dt,te,!0,c)}const Ls=sl(K,C,t.modifiersStyles),Hs=Po(K,i,t.modifiersClassNames),qs=!an&&!K.hidden?ks(te,K,c.options,c):void 0;return N.createElement(s.Day,{key:`${U.isoDate}_${U.displayMonthId}`,day:U,modifiers:K,className:Hs.join(" "),style:Ls,role:"gridcell","aria-selected":K.selected||void 0,"aria-label":qs,"data-day":U.isoDate,"data-month":U.outside?U.dateMonthId:void 0,"data-selected":K.selected||void 0,"data-disabled":K.disabled||void 0,"data-hidden":K.hidden||void 0,"data-outside":U.outside||void 0,"data-focused":K.focused||void 0,"data-today":K.today||void 0},!K.hidden&&an?N.createElement(s.DayButton,{className:i[T.DayButton],style:C?.[T.DayButton],type:"button",day:U,modifiers:K,disabled:!K.focused&&K.disabled||void 0,"aria-disabled":K.focused&&K.disabled||void 0,tabIndex:vs(U)?0:-1,"aria-label":Ss(te,K,c.options,c),onClick:As(U,K),onBlur:Fs(U,K),onFocus:Ws(U,K),onKeyDown:zs(U,K),onMouseEnter:Ys(U,K),onMouseLeave:Ps(U,K)},E(te,c.options,c)):!K.hidden&&E(U.date,c.options,c))})))))))),t.footer&&N.createElement(s.Footer,{className:i[T.Footer],style:C?.[T.Footer],role:"status","aria-live":"polite"},t.footer)))}function Tl({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:s="label",buttonVariant:r="ghost",formatters:l,components:c,...o}){const i=Qt();return a.jsx(Ml,{showOutsideDays:n,className:W("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"}),...l},classNames:{root:W("w-fit",i.root),months:W("flex gap-4 flex-col md:flex-row relative",i.months),month:W("flex flex-col w-full gap-4",i.month),nav:W("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",i.nav),button_previous:W(ln({variant:r}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",i.button_previous),button_next:W(ln({variant:r}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",i.button_next),month_caption:W("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",i.month_caption),dropdowns:W("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",i.dropdowns),dropdown_root:W("relative cn-calendar-dropdown-root rounded-(--cell-radius)",i.dropdown_root),dropdown:W("absolute bg-popover inset-0 opacity-0",i.dropdown),caption_label:W("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",i.caption_label),table:"w-full border-collapse",weekdays:W("flex",i.weekdays),weekday:W("text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none",i.weekday),week:W("flex w-full mt-2",i.week),week_number_header:W("select-none w-(--cell-size)",i.week_number_header),week_number:W("text-[0.8rem] select-none text-muted-foreground",i.week_number),day:W("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)",i.day),range_start:W("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",i.range_start),range_middle:W("rounded-none",i.range_middle),range_end:W("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",i.range_end),today:W("bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none",i.today),outside:W("text-muted-foreground aria-selected:text-muted-foreground",i.outside),disabled:W("text-muted-foreground opacity-50",i.disabled),hidden:W("invisible",i.hidden),...t},components:{Root:({className:d,rootRef:u,...f})=>a.jsx("div",{"data-slot":"calendar",ref:u,className:W(d),...f}),Chevron:({className:d,orientation:u,...f})=>u==="left"?a.jsx(_n,{className:W("size-4",d),...f}):u==="right"?a.jsx(Rn,{className:W("size-4",d),...f}):a.jsx(An,{className:W("size-4",d),...f}),DayButton:_l,WeekNumber:({children:d,...u})=>a.jsx("td",{...u,children:a.jsx("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:d})}),...c},...o})}function _l({className:e,day:t,modifiers:n,...s}){const r=Qt(),l=g.useRef(null);return g.useEffect(()=>{n.focused&&l.current?.focus()},[n.focused]),a.jsx(_,{ref:l,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:W("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",r.day,e),...s})}function mt({value:e,onChange:t,placeholder:n="Pick a date",className:s,disabled:r,startYear:l=1980,endYear:c=new Date().getFullYear()+10,icon:o=!0,isFormatted:i=!0,showTime:d=!1}){const[u,f]=g.useState(!1),h=e?e.getHours():0,x=e?e.getMinutes():0,y=e?e.getSeconds():0,k=(j,E)=>{const D={target:{value:String(j)}};E(D)},S=j=>{j&&e&&(j.setHours(e.getHours()),j.setMinutes(e.getMinutes()),j.setSeconds(e.getSeconds())),t?.(j),d||f(!1)},v=(j,E)=>{const D=e?new Date(e):new Date;j==="hours"&&D.setHours(E),j==="minutes"&&D.setMinutes(E),j==="seconds"&&D.setSeconds(E),t?.(D)},w=j=>{const E=Ke(new Date);switch(j){case"NULL":t?.(null);break;case"NOW":t?.(new Date);break;case"TODAY":t?.(E);break;case"YESTERDAY":t?.(pt(E,-1));break;case"TOMORROW":t?.(pt(E,1));break}},p=Array.from({length:24},(j,E)=>E),m=Array.from({length:60},(j,E)=>E),b=Array.from({length:60},(j,E)=>E),C=e&&e instanceof Date&&!Number.isNaN(e.getTime())?i?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 a.jsxs(Ue,{open:u,onOpenChange:f,children:[a.jsx(xt,{asChild:!0,children:a.jsxs(_,{variant:"outline",className:W("w-[280px] justify-start text-left font-normal",!e&&"text-muted-foreground",s),disabled:r,children:[o&&a.jsx(or,{className:"mr-2 h-4 w-4"}),C]})}),a.jsx(Ve,{className:"w-auto p-0",align:"end",children:a.jsxs("div",{className:"flex",children:[a.jsxs("div",{className:"flex flex-col gap-1 p-2 border-r",children:[a.jsx(_,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>w("NULL"),children:"NULL"}),a.jsx(_,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>w("NOW"),children:"NOW"}),a.jsx(_,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>w("TODAY"),children:"TODAY"}),a.jsx(_,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>w("YESTERDAY"),children:"YESTERDAY"}),a.jsx(_,{variant:"ghost",size:"sm",className:"justify-start text-xs h-7",onClick:()=>w("TOMORROW"),children:"TOMORROW"})]}),a.jsx(Tl,{components:{Dropdown:j=>a.jsxs(ue,{onValueChange:E=>{j.onChange&&k(E,j.onChange)},value:String(j.value),children:[a.jsx(fe,{className:"h-8 w-fit font-medium first-letter:capitalize focus:ring-0 focus:ring-offset-0",children:a.jsx(he,{})}),a.jsx(me,{children:j.options?.map(E=>a.jsx(B,{value:String(E.value),children:E.label},E.value))})]}),DropdownNav:j=>a.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(l,0),endMonth:new Date(c,11)}),d&&a.jsxs("div",{className:"flex border-l",children:[a.jsx(zt,{label:"H",values:p,selected:h,onChange:j=>v("hours",j)}),a.jsx(zt,{label:"M",values:m,selected:x,onChange:j=>v("minutes",j)}),a.jsx(zt,{label:"S",values:b,selected:y,onChange:j=>v("seconds",j)})]})]})})]})}function zt({label:e,values:t,selected:n,onChange:s}){const r=g.useRef(new Map);return g.useEffect(()=>{const l=r.current.get(n);l&&l.scrollIntoView({block:"center",behavior:"auto"})},[n]),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground text-center border-b",children:e}),a.jsx(yr,{className:"h-[224px]",children:a.jsx("div",{className:"flex flex-col p-1",children:t.map(l=>a.jsx("button",{ref:c=>{c&&r.current.set(l,c)},type:"button",onClick:()=>s(l),className:W("w-10 h-8 text-sm rounded-md hover:bg-accent flex items-center justify-center",n===l&&"bg-primary text-primary-foreground hover:bg-primary"),children:l.toString().padStart(2,"0")},l))})})]})}const ft=e=>String(e).padStart(2,"0"),Rl=({columnName:e,dataTypeLabel:t,columnDefault:n,enumValues:s,isForeignKey:r,referencedTable:l,referencedColumn:c})=>{const[,o]=P(M.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),{control:i}=On(),{openSheet:d,setRecordReference:u}=ge(),f=h=>{const x={...h,value:h.value??""};return r?a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsxs("div",{className:"flex",children:[a.jsx(ae,{id:e,placeholder:n??"",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10",...x}),a.jsx(Ge,{delayDuration:0,children:a.jsxs(Qe,{children:[a.jsx(Xe,{asChild:!0,children:a.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:()=>{l&&e&&c&&u(l,e,c),d("record-reference"),o(l)},children:a.jsx(Wn,{"aria-hidden":"true",className:"size-4",size:16})})}),a.jsx(Ze,{className:"px-2 py-1 text-xs",children:"Go to table"})]})})]}),a.jsxs("span",{className:"text-xs text-muted-foreground",children:["Has a foreign key relation to"," ",a.jsx("button",{type:"button",className:"font-mono text-primary",onClick:()=>{l&&e&&c&&u(l,e,c),d("record-reference"),o(l)},children:l})," ","table"]})]}):t==="int"||t==="bigint"||t==="smallint"||t==="numeric"||t==="float"||t==="double"||t==="money"?a.jsx(ae,{id:e,type:"number",placeholder:n??"0",...x}):t==="boolean"?a.jsxs(ue,{value:h.value,onValueChange:y=>h.onChange(y),children:[a.jsx(fe,{className:"w-full",children:a.jsx(he,{placeholder:n??"true"})}),a.jsxs(me,{children:[a.jsx(B,{value:"true",children:"true"}),a.jsx(B,{value:"false",children:"false"})]})]}):t==="text"||t==="xml"?a.jsx(ke,{id:e,placeholder:n??"",rows:4,...x}):t==="json"||t==="jsonb"?a.jsx(ke,{id:e,placeholder:n??'{"key": "value"}',rows:6,...x}):t==="date"?a.jsxs("div",{className:"flex",children:[a.jsx(mt,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:y=>h.onChange(y?y.toISOString().split("T")[0]:""),placeholder:n??"Select a date",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10"}),a.jsx(Ge,{delayDuration:0,children:a.jsxs(Qe,{children:[a.jsx(Xe,{asChild:!0,children:a.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 y=new Date().toISOString().split("T")[0];h.onChange(y)},children:a.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),a.jsx(Ze,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):t==="timestamptz"?a.jsxs("div",{className:"flex",children:[a.jsx(mt,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:y=>h.onChange(y?y.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"}),a.jsx(Ge,{delayDuration:0,children:a.jsxs(Qe,{children:[a.jsx(Xe,{asChild:!0,children:a.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 y=new Date().toISOString();h.onChange(y)},children:a.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),a.jsx(Ze,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):t==="timestamp"?a.jsxs("div",{className:"flex",children:[a.jsx(mt,{value:h.value?new Date(h.value):h.value===""?null:void 0,onChange:y=>h.onChange(y?y.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"}),a.jsx(Ge,{delayDuration:0,children:a.jsxs(Qe,{children:[a.jsx(Xe,{asChild:!0,children:a.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 y=new Date,k=y.getFullYear(),S=ft(y.getMonth()+1).padStart(2,"0"),v=ft(y.getDate()).padStart(2,"0"),w=ft(y.getHours()).padStart(2,"0"),p=ft(y.getMinutes()).padStart(2,"0");h.onChange(`${k}-${S}-${v}T${w}:${p}`)},children:a.jsx(Tt,{"aria-hidden":"true",className:"size-4",size:16})})}),a.jsx(Ze,{className:"px-2 py-1 text-xs",children:"Set to now"})]})})]}):t==="uuid"?a.jsxs("div",{className:"flex",children:[a.jsx(ae,{id:e,type:"text",placeholder:n??"",pattern:"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",className:"-me-px flex-1 rounded-e-none shadow-none focus-visible:z-10",...x}),a.jsx(Ge,{delayDuration:0,children:a.jsxs(Qe,{children:[a.jsx(Xe,{asChild:!0,children:a.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 y=crypto.randomUUID();h.onChange(y)},children:a.jsx(Fn,{"aria-hidden":"true",className:"size-4",size:16})})}),a.jsx(Ze,{className:"px-2 py-1 text-xs",children:"Generate UUID"})]})})]}):t==="array"?a.jsx(ke,{id:e,placeholder:n??'["item1", "item2"]',rows:3,...x}):t==="enum"?s&&s.length>0?a.jsxs(ue,{value:h.value,onValueChange:y=>h.onChange(y),children:[a.jsx(fe,{className:"w-full",children:a.jsx(he,{placeholder:n??"Select a value"})}),a.jsx(me,{children:s.map(y=>a.jsx(B,{value:y,children:y},y))})]}):a.jsx(ae,{id:e,placeholder:n??"",...x}):t==="interval"?a.jsx(ae,{id:e,type:"text",placeholder:n??"1 day",...x}):t==="bytea"?a.jsx(ae,{id:e,type:"file",...x}):t==="inet"||t==="cidr"||t==="macaddr"||t==="macaddr8"?a.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",...x}):t==="point"||t==="line"||t==="polygon"?a.jsx(ae,{id:e,type:"text",placeholder:t==="point"?"(x,y)":t==="line"?"{A,B,C}":"((x1,y1),(x2,y2),...)",...x}):a.jsx(ae,{id:e,type:"text",placeholder:n??"",...x})};return a.jsx(Xs,{control:i,name:e,render:({field:h})=>a.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[a.jsxs("div",{className:"col-span-1 flex flex-col gap-1",children:[a.jsx(le,{htmlFor:e,children:e}),a.jsx("span",{className:"text-xs text-muted-foreground",children:t})]}),a.jsx("div",{className:"col-span-2 w-full",children:f(h)})]})},e)},Al=({tableName:e})=>{const[t,n]=P(M.REFERENCED_TABLE_STATE_KEYS.FILTERS,Pe(p=>p).withDefault([]).withOptions({history:"push"})),[,s]=P(M.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,r]=P(M.REFERENCED_TABLE_STATE_KEYS.DIRECTION),{tableCols:l}=Ee({tableName:e}),[c,o]=g.useState(!1),[i,d]=g.useState([]),u=()=>{const p=l?.[0]?.columnName??"";d([...i,{columnName:p,operator:"=",value:""}])},f=p=>{d(i.filter((m,b)=>b!==p))},h=(p,m)=>{d(i.map((b,C)=>C===p?{...b,columnName:m}:b))},x=(p,m)=>{d(i.map((b,C)=>C===p?{...b,value:m}:b))},y=(p,m)=>{d(i.map((b,C)=>C===p?{...b,operator:m}:b))},k=()=>{d([]),n([]),s(null),r(null),o(!1)},S=()=>{const p=i.filter(m=>m.columnName&&m.operator&&m.value!=="");n(p),s(null),r(null),o(!1)},v=t.length>0,w=p=>{p&&d(t),o(p)};return a.jsxs(Ue,{open:c,onOpenChange:w,children:[a.jsx(xt,{asChild:!0,children:a.jsxs(_,{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":v,children:[a.jsx(zn,{className:"size-4"}),"Filter",v&&a.jsx(De,{className:"text-[10px] font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:t.length})]})}),a.jsxs(Ve,{className:"w-md space-y-2",align:"start",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs(_,{variant:"outline",size:"lg",className:"text-sm",onClick:u,children:["Add filter",i&&i.length>0&&a.jsx(De,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:i.length})]})}),a.jsx("div",{className:"flex flex-col gap-4",children:i.length>0?i.map((p,m)=>a.jsxs("div",{className:"flex-1 flex h-9 gap-2",children:[a.jsxs(ue,{value:p.columnName,onValueChange:b=>h(m,b),children:[a.jsx(fe,{className:"w-full flex-1",children:a.jsx(he,{placeholder:"Select column"})}),a.jsx(me,{children:l?.map(b=>a.jsx(B,{value:b.columnName,children:b.columnName},b.columnName))})]}),a.jsxs(ue,{value:p.operator,onValueChange:b=>y(m,b),children:[a.jsx(fe,{children:a.jsx(he,{placeholder:"Op"})}),a.jsxs(me,{children:[a.jsx(B,{value:"=",children:"="}),a.jsx(B,{value:"!=",children:"!="}),a.jsx(B,{value:">",children:">"}),a.jsx(B,{value:">=",children:">="}),a.jsx(B,{value:"<",children:"<"}),a.jsx(B,{value:"<=",children:"<="}),a.jsx(B,{value:"is",children:"is"}),a.jsx(B,{value:"is not",children:"is not"}),a.jsx(B,{value:"like",children:"like"}),a.jsx(B,{value:"not like",children:"not like"}),a.jsx(B,{value:"ilike",children:"ilike"}),a.jsx(B,{value:"not ilike",children:"not ilike"})]})]}),a.jsx(ae,{type:"text",placeholder:"Value",value:p.value,onChange:b=>x(m,b.target.value)}),a.jsx(_,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>f(m),children:a.jsx(yt,{className:"size-4"})})]},m)):a.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:a.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No filters applied"})})}),a.jsxs("div",{className:"gap-2 flex justify-end",children:[a.jsx(_,{variant:"outline",size:"lg",className:"text-sm",onClick:k,children:"Reset"}),a.jsx(_,{variant:"default",size:"lg",className:"text-sm",onClick:S,children:"Apply"})]})]})]})};function Wl({className:e,size:t="default",...n}){return a.jsx(Js,{"data-slot":"switch","data-size":t,className:W("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:a.jsx(Gs,{"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 Fl=({tableName:e})=>{const{tableCols:t}=Ee({tableName:e}),[n,s]=P(M.REFERENCED_TABLE_STATE_KEYS.SORT,Pe(w=>w).withDefault([]).withOptions({history:"push"})),[,r]=P(M.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,l]=P(M.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[c,o]=g.useState(!1),[i,d]=g.useState([]),u=()=>{const w=t?.[0]?.columnName??"";d([...i,{columnName:w,direction:"asc"}])},f=w=>{d(i.filter((p,m)=>m!==w))},h=(w,p)=>{d(i.map((m,b)=>b===w?{...m,columnName:p}:m))},x=(w,p)=>{d(i.map((m,b)=>b===w?{...m,direction:p}:m))},y=()=>{d([]),s([]),r(null),l(null),o(!1)},k=()=>{const w=i.filter(p=>p.columnName);s(w),r(null),l(null),o(!1)},S=n.length>0,v=w=>{w&&d(n),o(w)};return a.jsxs(Ue,{open:c,onOpenChange:v,children:[a.jsx(xt,{asChild:!0,children:a.jsxs(_,{variant:"ghost",className:"border-r border-l-0 border-y-0 border-zinc-800 rounded-none text-xs h-full",children:[a.jsx(lr,{className:"size-4"}),"Sort",S&&a.jsx(De,{className:"text-[10px] font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:n.length})]})}),a.jsxs(Ve,{className:"w-md space-y-2",align:"start",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs(_,{variant:"outline",size:"lg",className:"text-sm",onClick:u,children:["Add sort",i&&i.length>0&&a.jsx(De,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:i.length})]})}),a.jsx("div",{className:"flex flex-col gap-4",children:i.length>0?i.map((w,p)=>a.jsxs("div",{className:"flex-1 flex h-9 gap-2 items-center",children:[a.jsxs(ue,{value:w.columnName,onValueChange:m=>h(p,m),children:[a.jsx(fe,{className:"w-full flex-1",children:a.jsx(he,{placeholder:"Select column"})}),a.jsx(me,{children:t?.map(m=>a.jsx(B,{value:m.columnName,children:m.columnName},m.columnName))})]}),a.jsxs("div",{className:"flex items-center space-x-2",children:[a.jsx(le,{htmlFor:`sort-direction-${p}`,children:"Asc"}),a.jsx(Wl,{id:`sort-direction-${p}`,checked:w.direction==="desc",onCheckedChange:m=>x(p,m?"desc":"asc")}),a.jsx(le,{htmlFor:`sort-direction-${p}`,children:"Desc"})]}),a.jsx(_,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>f(p),children:a.jsx(yt,{className:"size-4"})})]},p)):a.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:a.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No sorts applied"})})}),a.jsxs("div",{className:"gap-2 flex justify-end",children:[a.jsx(_,{variant:"outline",size:"lg",className:"text-sm",onClick:y,children:"Reset"}),a.jsx(_,{variant:"default",size:"lg",className:"text-sm",onClick:k,children:"Apply"})]})]})]})};function zl({className:e,...t}){return a.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:a.jsx("table",{"data-slot":"table",className:W("w-full caption-bottom text-xs",e),...t})})}function Yl({className:e,...t}){return a.jsx("thead",{"data-slot":"table-header",className:W("[&_tr]:border-b",e),...t})}function Pl({className:e,...t}){return a.jsx("tbody",{"data-slot":"table-body",className:W("[&_tr:last-child]:border-0",e),...t})}function Yt({className:e,...t}){return a.jsx("tr",{"data-slot":"table-row",className:W("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...t})}function Il({className:e,...t}){return a.jsx("th",{"data-slot":"table-head",className:W("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...t})}function vn({className:e,...t}){return a.jsx("td",{"data-slot":"table-cell",className:W("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...t})}const wt=({tableName:e,isReferencedTable:t=!1})=>{const{selectedDatabase:n}=Ae(),[s]=P(M.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),r=e||s,[l]=P(t?M.REFERENCED_TABLE_STATE_KEYS.CURSOR:M.TABLE_STATE_KEYS.CURSOR),[c]=P(t?M.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString():M.TABLE_STATE_KEYS.LIMIT),[o]=P(t?M.REFERENCED_TABLE_STATE_KEYS.DIRECTION:M.TABLE_STATE_KEYS.DIRECTION),[i]=P(M.REFERENCED_TABLE_STATE_KEYS.SORT,Pe(v=>v).withDefault([]).withOptions({history:"push"})),[d]=P(M.TABLE_STATE_KEYS.SORT),[u]=P(M.TABLE_STATE_KEYS.ORDER),[f]=P(t?M.REFERENCED_TABLE_STATE_KEYS.FILTERS:M.TABLE_STATE_KEYS.FILTERS,Pe(v=>v).withDefault([]).withOptions({history:"push"})),{data:h,isLoading:x,isRefetching:y,refetch:k,error:S}=Rr({queryKey:[M.CACHE_KEYS.TABLE_DATA,r,l,c,o,t?JSON.stringify(i):d,u,JSON.stringify(f),n],queryFn:async()=>{const v=M.CACHE_KEYS.TABLE_DEFAULT_LIMIT.toString(),w={limit:c?.toString()||v,db:n??void 0};return l&&(w.cursor=l),o&&(w.direction=o),t?i&&i.length>0&&(w.sort=JSON.stringify(i)):(d&&(w.sort=d),u&&(w.order=u)),f&&f.length>0&&(w.filters=JSON.stringify(f)),await We.get(`/tables/${r}/data`,{params:w})},select:v=>v.data.data,enabled:!!r});return{tableData:h,isLoadingTableData:x,isRefetchingTableData:y,errorTableData:S,refetchTableData:k}},Bl=({tableName:e,referencedColumn:t,columnName:n})=>{const{setValue:s}=On(),{closeSheet:r}=ge(),{tableCols:l,isLoadingTableCols:c}=Ee({tableName:e}),[o,i]=P(M.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),{tableData:d,isLoadingTableData:u}=wt({tableName:e,isReferencedTable:!0}),[,f]=P(M.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,h]=P(M.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[x,y]=P(M.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString());g.useEffect(()=>{e&&o!==e&&i(e),e&&!x&&y(M.REFERENCED_TABLE_STATE_KEYS.DEFAULT_LIMIT.toString())},[e,o,x,i,y]);const k=()=>{d?.meta?.nextCursor&&(f(d.meta.nextCursor),h("forward"))},S=()=>{d?.meta?.prevCursor&&(f(d.meta.prevCursor),h("backward"))},v=g.useMemo(()=>l?.map(m=>({id:m.columnName,accessorKey:m.columnName,header:m.columnName,cell:({row:b})=>a.jsx("div",{className:"font-medium max-w-[200px] truncate",children:Wr(b.getValue(m.columnName))})}))??[],[l]),w=Yn({columns:v??[],data:d?.data??[],getCoreRowModel:Pn()}),p=m=>{console.log(m.original[t??""]),s(n??"",m.original[t??""]),r("record-reference")};return c||u?a.jsx("div",{className:"flex items-center justify-center h-full",children:a.jsx(Mn,{size:"size-8"})}):a.jsxs("div",{children:[a.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:[a.jsxs("div",{className:"flex items-center h-full",children:[a.jsx(Al,{tableName:e}),a.jsx(Fl,{tableName:e})]}),a.jsxs("div",{className:"flex items-center h-full",children:[a.jsx(_,{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:a.jsx(ir,{className:"size-3"})}),a.jsx(_,{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:a.jsx(cr,{className:"size-3"})})]})]}),a.jsxs(zl,{children:[a.jsx(Yl,{children:w.getHeaderGroups().map(m=>a.jsx(Yt,{className:"hover:bg-transparent text-xs sticky top-0 right-0 left-0",children:m.headers.map(b=>a.jsx(Il,{className:"border-r border-zinc-800",children:b.isPlaceholder?null:st(b.column.columnDef.header,b.getContext())},b.id))},m.id))}),a.jsx(Pl,{children:w.getRowModel().rows?.length?w.getRowModel().rows.map(m=>a.jsx(Yt,{className:"text-xs cursor-pointer",onClick:()=>p(m),children:m.getVisibleCells().map(b=>a.jsx(vn,{className:"border-r border-zinc-800",children:st(b.column.columnDef.cell,b.getContext())},b.id))},m.id)):a.jsx(Yt,{children:a.jsx(vn,{className:"h-24 text-center",colSpan:v.length,children:"No results."})})})]})]})},Kl=()=>{const[,e]=P(M.REFERENCED_TABLE_STATE_KEYS.ACTIVE_TABLE),[,t]=P(M.REFERENCED_TABLE_STATE_KEYS.CURSOR),[,n]=P(M.REFERENCED_TABLE_STATE_KEYS.DIRECTION),[,s]=P(M.REFERENCED_TABLE_STATE_KEYS.LIMIT.toString()),[,r]=P(M.REFERENCED_TABLE_STATE_KEYS.SORT.toString()),[,l]=P(M.REFERENCED_TABLE_STATE_KEYS.ORDER.toString()),[,c]=P(M.REFERENCED_TABLE_STATE_KEYS.FILTERS,Pe(u=>u).withDefault([]).withOptions({history:"push"})),{closeSheet:o,isSheetOpen:i,recordReferenceData:d}=ge();return!d.tableName||!d.referencedColumn?null:a.jsx($e,{title:`View records in the table ${d.tableName}`,size:"max-w-lg!",contentClassName:"p-0",open:i("record-reference"),onOpenChange:u=>{u||(o("record-reference"),e(null),t(null),n(null),s(null),r(null),l(null),c(null))},children:a.jsx(Bl,{tableName:d.tableName,referencedColumn:d.referencedColumn??null,columnName:d.columnName??""})})},Ul=({tableName:e})=>{const t=ot(),{closeSheet:n}=ge(),{selectedDatabase:s}=Ae(),{mutateAsync:r,isPending:l}=Le({mutationFn:async o=>{const i=new URLSearchParams({db:s??""});return(await We.post("/records",{tableName:e,data:o},{params:i})).data.data},onSuccess:async o=>{await Promise.all([t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[M.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,i)=>{if(!o||Object.keys(o).length===0)throw new Error("At least one field is required");return je.promise(r(o,i),{loading:"Creating record...",success:d=>d||"Record created successfully",error:d=>d.detail||d.message||"Failed to create record"})},isCreatingRecord:l}},Vl=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=ge(),{tableCols:s,isLoadingTableCols:r}=Ee({tableName:e}),{createRecord:l,isCreatingRecord:c}=Ul({tableName:e}),o=Zs(),i=async h=>{console.log("onSubmit",h),l(h,{onSuccess:()=>{o.reset(),t("add-record")},onError:x=>{console.error("Failed to create record:",x)}})},d=h=>{console.log("onError",h)},u=()=>{o.reset(),t("add-record")};console.log("tableCols",s);const f=()=>s&&s.length>0?a.jsxs(er,{...o,children:[a.jsxs("form",{onSubmit:o.handleSubmit(i,d),className:"flex flex-col h-full",children:[a.jsx("div",{className:"space-y-6",children:s&&s.length>0&&!r?s.map(h=>a.jsx(Rl,{...h},h.columnName)):null}),a.jsxs("div",{className:"flex justify-end gap-2 py-6",children:[a.jsx(at,{asChild:!0,onClick:u,disabled:c,children:a.jsx(_,{variant:"outline",size:"lg",children:"Close"})}),a.jsx(_,{type:"submit",size:"lg",disabled:c||!o.formState.isDirty,children:"Save"})]})]}),a.jsx(Kl,{})]}):a.jsx("div",{className:"flex flex-col h-full",children:a.jsx("div",{className:"space-y-6",children:a.jsx(se,{variant:"info",title:"No columns found",message:"Please add at least one column to the table before adding a record."})})});return a.jsx($e,{title:`Add a new record to the table: ${e}`,open:n("add-record"),onOpenChange:h=>{h||u()},children:f()})},en=Qs,vt=g.forwardRef(({className:e,...t},n)=>a.jsx(Dn,{ref:n,className:W("inline-flex h-10 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));vt.displayName=Dn.displayName;const Te=g.forwardRef(({className:e,...t},n)=>a.jsx(Nn,{ref:n,className:W("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}));Te.displayName=Nn.displayName;const _e=g.forwardRef(({className:e,...t},n)=>a.jsx(En,{ref:n,className:W("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));_e.displayName=En.displayName;const St=({tableName:e})=>{const t=ot(),{closeSheet:n}=ge(),{selectedDatabase:s}=Ae(),{mutateAsync:r,isPending:l}=Le({mutationFn:async o=>{const i=new URLSearchParams({db:s??""}),d=await We.post("/records/bulk",{tableName:e,records:o},{params:i});return console.log("res",d.data.data),d.data.data},onSuccess:async()=>{await Promise.all([t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLES_LIST],exact:!1}),t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_COLUMNS,e],exact:!1})]),n("bulk-insert-records")}});return{bulkInsertRecords:async(o,i)=>{if(!o||o.length===0)throw new Error("At least one record is required");return je.promise(r(o),{loading:`Inserting ${o.length} record${o.length!==1?"s":""}...`,success:d=>(i?.onSuccess?.(d),d.failureCount>0?`${d.successCount} records inserted, ${d.failureCount} failed`:d.message),error:d=>(i?.onError?.(d),d.detail||d.message||"Failed to insert records")})},isInserting:l}},Re=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 $l(t)},$l=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=Ll(n),r=Sn(n,s).map(c=>c.trim());if(r.length===0)throw new Error("No headers found in CSV");const l=[];for(let c=1;c<t.length;c++){const o=Sn(t[c],s);o.length!==r.length&&console.warn(`Row ${c+1} has ${o.length} values but ${r.length} headers expected`);const i={};r.forEach((d,u)=>{const f=o[u]?.trim()??"";i[d]=Hl(f)}),l.push(i)}if(l.length===0)throw new Error("No records found in CSV");return l},Ll=e=>{const t=[","," ",";"];let n=0,s=",";for(const r of t){const l=(e.match(new RegExp(`\\${r}`,"g"))||[]).length;l>n&&(n=l,s=r)}return s},Sn=(e,t)=>{const n=[];let s="",r=!1;for(let l=0;l<e.length;l++){const c=e[l],o=e[l+1];c==='"'?r&&o==='"'?(s+='"',l++):r=!r:c===t&&!r?(n.push(s),s=""):s+=c}return n.push(s),n},Hl=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},ql=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=ge(),{bulkInsertRecords:s,isInserting:r}=St({tableName:e}),l=g.useRef(null),[c,o]=g.useState(""),[i,d]=g.useState(null),[u,f]=g.useState([]),[h,x]=g.useState(null),[y,k]=g.useState("file"),S=m=>{const b=m.target.files?.[0];b&&(d(b),f([]),x(null))},v=g.useCallback(()=>{x(null),f([]);try{if(y==="file"&&i){const m=new FileReader;m.onload=b=>{try{const C=b.target?.result,j=Re(C);f(j)}catch(C){x(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(i)}else if(c.trim()){const m=Re(c);f(m)}else x(y==="file"?"No file selected":"Input is empty")}catch(m){x(m instanceof Error?m.message:"Failed to format data")}},[c,i,y]),w=async()=>{if(u.length===0){x("No records to insert");return}try{await s(u,{onSuccess:()=>{o(""),d(null),f([]),x(null),t("bulk-insert-csv")}})}catch(m){console.error("Error inserting records:",m)}},p=()=>{o(""),d(null),f([]),x(null),t("bulk-insert-csv")};return a.jsx($e,{title:`Add data from CSV into: ${e}`,open:n("bulk-insert-csv"),onOpenChange:m=>{m||p()},children:a.jsxs("div",{className:"flex flex-col h-full gap-4",children:[a.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."}),a.jsxs(en,{value:y,onValueChange:m=>k(m),children:[a.jsxs(vt,{className:"grid w-full grid-cols-2",children:[a.jsx(Te,{value:"file",children:"File"}),a.jsx(Te,{value:"text",children:"Text"})]}),a.jsx(_e,{value:"file",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(le,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select CSV file"}),a.jsx("input",{id:"file-input",ref:l,type:"file",accept:".csv",onChange:S,disabled:r,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"})]})}),a.jsx(_e,{value:"text",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex-1 flex flex-col",children:[a.jsx(le,{htmlFor:"text-input",className:"text-sm font-medium mb-2 text-zinc-300",children:"Data Input"}),a.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),f([]),x(null)},placeholder:`column1,column2,column3
3
- value1,value2,value3
4
- value4,value5,value6`,className:"flex-1 resize-none font-mono text-sm",disabled:r})]})})]}),h&&a.jsx(se,{variant:"error",title:"Parse Error",message:h}),u.length>0&&a.jsx(se,{variant:"success",title:"Ready to Insert",message:`${u.length} record${u.length!==1?"s":""} parsed successfully`}),a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx(_,{variant:"secondary",size:"lg",onClick:v,disabled:y==="file"?!i:!c.trim()||r,children:"Format"}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(at,{asChild:!0,onClick:p,disabled:r,children:a.jsx(_,{variant:"outline",size:"lg",children:"Close"})}),a.jsx(_,{type:"button",size:"lg",onClick:w,disabled:u.length===0||r,children:r?"Inserting...":"Insert"})]})]})]})})},Jl=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=ge(),{bulkInsertRecords:s,isInserting:r}=St({tableName:e}),l=g.useRef(null),[c,o]=g.useState(""),[i,d]=g.useState(null),[u,f]=g.useState([]),[h,x]=g.useState(null),[y,k]=g.useState("file"),S=m=>{const b=m.target.files?.[0];b&&(d(b),f([]),x(null))},v=g.useCallback(()=>{x(null),f([]);try{if(y==="file"&&i){const m=new FileReader;m.onload=b=>{try{const C=b.target?.result,j=Re(C);f(j)}catch(C){x(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(i)}else if(c.trim()){const m=Re(c);f(m)}else x(y==="file"?"No file selected":"Input is empty")}catch(m){x(m instanceof Error?m.message:"Failed to format data")}},[c,i,y]),w=async()=>{if(u.length===0){x("No records to insert");return}try{await s(u,{onSuccess:()=>{o(""),d(null),f([]),x(null),t("bulk-insert-excel")}})}catch(m){console.error("Error inserting records:",m)}},p=()=>{o(""),d(null),f([]),x(null),t("bulk-insert-excel")};return a.jsx($e,{title:`Add data from Excel into: ${e}`,open:n("bulk-insert-excel"),onOpenChange:m=>{m||p()},children:a.jsxs("div",{className:"flex flex-col h-full gap-4",children:[a.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."}),a.jsxs(en,{value:y,onValueChange:m=>k(m),children:[a.jsxs(vt,{className:"grid w-full grid-cols-2",children:[a.jsx(Te,{value:"file",children:"File"}),a.jsx(Te,{value:"text",children:"Text"})]}),a.jsx(_e,{value:"file",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(le,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select Excel file"}),a.jsx("input",{id:"file-input",ref:l,type:"file",accept:".xlsx,.xls",onChange:S,disabled:r,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"})]})}),a.jsx(_e,{value:"text",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex-1 flex flex-col",children:[a.jsx(le,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),a.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),f([]),x(null)},placeholder:`column1 column2 column3
5
- value1 value2 value3
6
- value4 value5 value6`,className:"flex-1 resize-none font-mono text-sm",disabled:r})]})})]}),h&&a.jsx(se,{variant:"error",title:"Parse Error",message:h}),u.length>0&&a.jsx(se,{variant:"success",title:"Ready to Insert",message:`${u.length} record${u.length!==1?"s":""} parsed successfully`}),a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx(_,{variant:"secondary",size:"lg",onClick:v,disabled:y==="file"?!i:!c.trim()||r,children:"Format"}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(at,{asChild:!0,onClick:p,disabled:r,children:a.jsx(_,{variant:"outline",size:"lg",children:"Close"})}),a.jsx(_,{type:"button",size:"lg",onClick:w,disabled:u.length===0||r,children:r?"Inserting...":"Insert"})]})]})]})})},Gl=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=ge(),{bulkInsertRecords:s,isInserting:r}=St({tableName:e}),l=g.useRef(null),[c,o]=g.useState(""),[i,d]=g.useState(null),[u,f]=g.useState([]),[h,x]=g.useState(null),[y,k]=g.useState("file"),S=m=>{const b=m.target.files?.[0];b&&(d(b),f([]),x(null))},v=g.useCallback(()=>{x(null),f([]);try{if(y==="file"&&i){const m=new FileReader;m.onload=b=>{try{const C=b.target?.result,j=Re(C);f(j)}catch(C){x(C instanceof Error?C.message:"Failed to parse file")}},m.readAsText(i)}else if(c.trim()){const m=Re(c);f(m)}else x(y==="file"?"No file selected":"Input is empty")}catch(m){x(m instanceof Error?m.message:"Failed to format data")}},[c,i,y]),w=async()=>{if(u.length===0){x("No records to insert");return}try{await s(u,{onSuccess:()=>{o(""),d(null),f([]),x(null),t("bulk-insert-json")}})}catch(m){console.error("Error inserting records:",m)}},p=()=>{o(""),d(null),f([]),x(null),t("bulk-insert-json")};return a.jsx($e,{title:`Add data from JSON into: ${e}`,open:n("bulk-insert-json"),onOpenChange:m=>{m||p()},children:a.jsxs("div",{className:"flex flex-col h-full gap-4",children:[a.jsx(se,{variant:"info",title:"JSON Import",message:'Enter JSON array or single object. Example: [{"name": "John", "age": 30}, {"name": "Jane", "age": 28}]'}),a.jsxs(en,{value:y,onValueChange:m=>k(m),children:[a.jsxs(vt,{className:"grid w-full grid-cols-2",children:[a.jsx(Te,{value:"file",children:"File"}),a.jsx(Te,{value:"text",children:"Text"})]}),a.jsx(_e,{value:"file",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(le,{htmlFor:"file-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Select JSON file"}),a.jsx("input",{id:"file-input",ref:l,type:"file",accept:".json",onChange:S,disabled:r,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"})]})}),a.jsx(_e,{value:"text",className:"flex-1 flex flex-col gap-4",children:a.jsxs("div",{className:"flex-1 flex flex-col",children:[a.jsx(le,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),a.jsx(ke,{id:"text-input",value:c,onChange:m=>{o(m.target.value),f([]),x(null)},placeholder:'[{"column1": "value1", "column2": "value2"}]',className:"flex-1 resize-none font-mono text-sm",disabled:r})]})})]}),h&&a.jsx(se,{variant:"error",title:"Parse Error",message:h}),u.length>0&&a.jsx(se,{variant:"success",title:"Ready to Insert",message:`${u.length} record${u.length!==1?"s":""} parsed successfully`}),a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx(_,{variant:"secondary",size:"lg",onClick:v,disabled:y==="file"?!i:!c.trim()||r,children:"Format"}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(at,{asChild:!0,onClick:p,disabled:r,children:a.jsx(_,{variant:"outline",size:"lg",children:"Close"})}),a.jsx(_,{type:"button",size:"lg",onClick:w,disabled:u.length===0||r,children:r?"Inserting...":"Insert"})]})]})]})})},Ql=({tableName:e})=>{const{closeSheet:t,isSheetOpen:n}=ge(),{bulkInsertRecords:s,isInserting:r}=St({tableName:e}),[l,c]=g.useState(""),[o,i]=g.useState([]),[d,u]=g.useState(null),[f,h]=g.useState("auto"),x=g.useCallback(()=>{u(null),i([]);try{if(!l.trim()){u("Input is empty");return}const v=Re(l);i(v)}catch(v){u(v instanceof Error?v.message:"Failed to parse data")}},[l]),y=async()=>{if(o.length===0){u("No records to insert");return}try{await s(o,{onSuccess:()=>{c(""),i([]),u(null)}})}catch(v){console.error("Error inserting records:",v)}},k=()=>{c(""),i([]),u(null),t("bulk-insert-records")},S=()=>{c(""),i([]),u(null)};return a.jsx($e,{title:`Bulk Insert Records into: ${e}`,open:n("bulk-insert-records"),onOpenChange:v=>{v||k()},children:a.jsxs("div",{className:"flex flex-col h-full gap-4",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsx("button",{onClick:()=>h("auto"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="auto"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"Auto"}),a.jsx("button",{onClick:()=>h("csv"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="csv"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"CSV"}),a.jsx("button",{onClick:()=>h("json"),type:"button",className:`px-3 py-1 text-sm rounded-md transition-colors ${f==="json"?"bg-blue-600 text-white":"bg-zinc-700 text-zinc-300 hover:bg-zinc-600"}`,children:"JSON"})]}),a.jsx(se,{variant:"info",title:"Bulk Insert",message:f==="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."}),a.jsxs("div",{className:"flex-1 flex flex-col",children:[a.jsx(le,{htmlFor:"text-input",className:"mb-2 text-sm font-medium text-zinc-300",children:"Data Input"}),a.jsx(ke,{id:"text-input",value:l,onChange:v=>{c(v.target.value),i([]),u(null)},placeholder:f==="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&&a.jsx(se,{variant:"error",title:"Parse Error",message:d}),o.length>0&&a.jsx(se,{variant:"success",title:"Ready to Insert",message:`${o.length} record${o.length!==1?"s":""} parsed successfully`}),a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsxs("div",{className:"flex gap-2",children:[a.jsx(_,{variant:"outline",size:"lg",onClick:S,disabled:!l||r,children:"Clear"}),a.jsx(_,{variant:"secondary",size:"lg",onClick:x,disabled:!l||r,children:"Preview"})]}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(at,{asChild:!0,onClick:k,disabled:r,children:a.jsx(_,{variant:"outline",size:"lg",children:"Close"})}),a.jsx(_,{type:"button",size:"lg",onClick:y,disabled:o.length===0||r,children:r?"Inserting...":"Insert"})]})]})]})})},Xl=()=>{const{openSheet:e}=ge();return a.jsxs(Bt,{children:[a.jsx(Kt,{asChild:!0,children:a.jsxs(_,{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:[a.jsx(dr,{className:"size-4"}),"Add Record"]})}),a.jsxs(Ut,{align:"start",className:"w-48",children:[a.jsx(ce,{onClick:()=>e("add-record"),children:"Add Record"}),a.jsx(ce,{onClick:()=>e("bulk-insert-csv"),children:"Add data from CSV"}),a.jsx(ce,{onClick:()=>e("bulk-insert-excel"),children:"Add data from Excel"}),a.jsx(ce,{onClick:()=>e("bulk-insert-json"),children:"Add data from JSON"})]})]})},ht=(e,t)=>`${e.id??JSON.stringify(e)}-${t}`,be=tr()((e,t)=>({updates:new Map,setUpdate:(n,s,r,l)=>{e(c=>{const o=new Map(c.updates),i=ht(n,s);return r===l?o.delete(i):o.set(i,{rowData:n,columnName:s,newValue:r,originalValue:l}),console.log("setUpdate",{rowData:n,columnName:s,newValue:r,originalValue:l}),{updates:o}})},clearUpdates:()=>e({updates:new Map}),clearUpdate:(n,s)=>{e(r=>{const l=new Map(r.updates);return l.delete(ht(n,s)),{updates:l}})},getUpdates:()=>Array.from(t().updates.values()),getUpdate:(n,s)=>t().updates.get(ht(n,s))??null,hasUpdate:(n,s)=>t().updates.has(ht(n,s)),hasAnyUpdates:()=>t().updates.size>0,getUpdateCount:()=>t().updates.size})),ps=()=>{const e=ot(),{table:t}=Vt.useParams(),{clearUpdates:n,getUpdateCount:s}=be(),{selectedDatabase:r}=Ae(),{mutateAsync:l,isPending:c}=Le({mutationFn:async o=>{if(!t)throw new Error("No table selected");const i={tableName:t,updates:o.map(u=>({rowData:u.rowData,columnName:u.columnName,value:u.newValue}))},d=new URLSearchParams({db:r??""});return We.patch("/records",i,{params:d})},onSuccess:async o=>{const i=s();je.success(o.data.data||`${i} ${i===1?"change":"changes"} saved successfully`),n(),await Promise.all([e.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_DATA,t],exact:!1})])},onError:o=>{console.error("Update error:",o),je.error("Failed to save changes",{description:o instanceof Error?o.message:"Unknown error occurred"})}});return{updateCell:l,isUpdatingCell:c}},Zl=()=>{const{getUpdateCount:e,clearUpdates:t}=be(),{isUpdatingCell:n}=ps(),s=g.useCallback(()=>{t()},[t]);return e()===0?null:a.jsx(_,{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"})},ei=({tableName:e})=>{const t=ot(),{tableCols:n}=Ee({tableName:e}),{selectedDatabase:s}=Ae(),{mutateAsync:r,isPending:l,reset:c,error:o}=Le({mutationFn:async({rowData:u,force:f=!1})=>{if(!e)throw new Error("No active table selected");if(!n||n.length===0)throw new Error("No table columns found");return await ti(e,n,u,f,s||void 0)},onSuccess:async u=>{console.log("result",u),je.success(`Deleted ${u.deletedCount} records from "${e}"`),await Promise.all([t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_DATA,e],exact:!1}),t.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLES_LIST]})])},onError:u=>{console.error("Delete error:",u),u instanceof nr&&u.status===409?je.error(`Cannot delete records from "${e}" due to foreign key constraints, on ${u.response?.data.relatedRecords.map(f=>f.tableName).join(", ")}`):je.error(u instanceof Error?u.message:"Unknown error occurred")}});return{deleteCells:async u=>r({rowData:u,force:!1}),forceDeleteCells:async u=>r({rowData:u,force:!0}),isDeletingCells:l,resetDeleteResult:c,deleteCellsError:o}},ti=async(e,t,n,s,r)=>{const l=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]})),i={tableName:e,primaryKeys:o};try{const d=await We.delete(l,{data:i,params:{db:r}});return{deletedCount:d.data.data.deletedCount,fkViolation:d.data.data.fkViolation,relatedRecords:d.data.data.relatedRecords}}catch(d){const u=d;if(console.log("axiosError",u),u.response?.status===409)return{deletedCount:u.response.data.deletedCount};throw d}},ni=({isOpenFkDialog:e,handleDialogClose:t,relatedRecords:n,handleCancelForceDelete:s,handleForceDelete:r,isDeletingCells:l})=>a.jsx(br,{open:e,onOpenChange:t,children:a.jsxs(Cr,{className:"max-w-2xl z-500",children:[a.jsxs(wr,{children:[a.jsx(vr,{children:"Cannot Delete - Foreign Key Constraint"}),a.jsx(Sr,{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."})]}),a.jsx(si,{relatedRecords:n}),a.jsxs(kr,{className:"gap-2",children:[a.jsx(_,{variant:"outline",onClick:s,disabled:l,children:"Cancel"}),a.jsx(_,{variant:"destructive",onClick:r,disabled:l,children:l?"Deleting...":"Force Delete All"})]})]})}),si=({relatedRecords:e})=>a.jsx("div",{className:"space-y-4 max-h-64 overflow-y-auto",children:e.map((t,n)=>a.jsxs("div",{className:"border border-zinc-700 rounded-md p-3",children:[a.jsxs("div",{className:"font-medium text-sm mb-2",children:["Table: ",a.jsx("span",{className:"text-primary",children:t.tableName}),a.jsxs("span",{className:"text-muted-foreground ml-2",children:["(",t.records.length," record",t.records.length!==1?"s":"",")"]})]}),a.jsxs("div",{className:"text-xs text-muted-foreground mb-2",children:["References column: ",t.columnName]}),a.jsx("div",{className:"bg-zinc-900 rounded p-2 text-xs overflow-x-auto",children:a.jsxs("pre",{className:"whitespace-pre-wrap",children:[JSON.stringify(t.records.slice(0,5),null,2),t.records.length>5&&a.jsxs("div",{className:"text-muted-foreground mt-2",children:["... and ",t.records.length-5," more"]})]})})]},`${t.tableName}-${t.columnName}-${n}`))}),ri=({selectedRows:e,setRowSelection:t,tableName:n})=>{const{deleteCells:s,forceDeleteCells:r,isDeletingCells:l,resetDeleteResult:c}=ei({tableName:n}),[o,i]=g.useState([]),[d,u]=g.useState(!1),[f,h]=g.useState([]),x=g.useCallback(async()=>{const v=e.map(w=>w.original);try{await s(v),t({})}catch{i(v),h([]),u(!0)}},[s,e,t]),y=async()=>{if(o.length===0)return;const v=await r(o);console.log("Force delete response:",v),v?.deletedCount>0&&(u(!1),i([]),h([]),c(),t({}))},k=g.useCallback(()=>{u(!1),i([]),h([]),c()},[c]),S=v=>{l||(v?u(v):k())};return e?.length===0?null:a.jsxs(a.Fragment,{children:[a.jsxs(_,{type:"button",variant:"destructive",className:"h-8! border-l-0 border-y-0 border-r border-zinc-800 text-white rounded-none",onClick:x,"aria-label":"Delete the selected record",disabled:l,children:["Delete Record",e?.length>1&&a.jsx("span",{className:"ml-1.5 px-1.5 text-[10px] bg-white/20 border border-white/20 rounded",children:e?.length})]}),a.jsx(ni,{isOpenFkDialog:d,handleDialogClose:S,relatedRecords:f,handleCancelForceDelete:k,handleForceDelete:y,isDeletingCells:l})]})},ai=()=>{const{selectedDatabase:e}=Ae(),{mutateAsync:t,isPending:n}=Le({mutationFn:async({tableName:r,format:l})=>{const c=await We.get(`/tables/${r}/export`,{params:{db:e??"",format:l},responseType:"blob"}),d=c.headers["content-disposition"]?.match(/filename="(.+)"/)?.[1]||`${r}_export.${l}`,u=new Blob([c.data],{type:c.headers["content-type"]}),f=window.URL.createObjectURL(u),h=document.createElement("a");h.href=f,h.download=d,document.body.appendChild(h),h.click(),document.body.removeChild(h),window.URL.revokeObjectURL(f)}});return{exportFile:async({tableName:r,format:l})=>je.promise(t({tableName:r,format:l}),{loading:"Exporting file...",success:"File exported successfully",error:c=>c.message||"Failed to export file"}),isExportingFile:n}},oi=({tableName:e})=>{const{exportFile:t,isExportingFile:n}=ai();return a.jsxs(Bt,{children:[a.jsx(Kt,{asChild:!0,children:a.jsx(_,{type:"button",variant:"ghost",className:"size-8! aspect-square border-l-0 border-y-0 border-r border-zinc-800 rounded-none","aria-label":"Export table data",disabled:n,children:a.jsx(ur,{className:"size-4"})})}),a.jsxs(Ut,{align:"start",className:"w-40",children:[a.jsx(ce,{onClick:()=>t({tableName:e,format:"csv"}),disabled:n,children:"Export to CSV"}),a.jsx(ce,{onClick:()=>t({tableName:e,format:"xlsx"}),disabled:n,children:"Export to Excel"}),a.jsx(ce,{onClick:()=>t({tableName:e,format:"json"}),disabled:n,children:"Export to JSON"})]})]})},li=({tableName:e})=>{const[t,n]=P(M.TABLE_STATE_KEYS.FILTERS,Pe(p=>p).withDefault([]).withOptions({history:"push"})),[,s]=P(M.TABLE_STATE_KEYS.CURSOR),[,r]=P(M.TABLE_STATE_KEYS.DIRECTION),{tableCols:l}=Ee({tableName:e}),[c,o]=g.useState(!1),[i,d]=g.useState([]),u=()=>{const p=l?.[0]?.columnName??"";d([...i,{columnName:p,operator:"=",value:""}])},f=p=>{d(i.filter((m,b)=>b!==p))},h=(p,m)=>{d(i.map((b,C)=>C===p?{...b,columnName:m}:b))},x=(p,m)=>{d(i.map((b,C)=>C===p?{...b,value:m}:b))},y=(p,m)=>{d(i.map((b,C)=>C===p?{...b,operator:m}:b))},k=()=>{d([]),n([]),s(null),r(null),o(!1)},S=()=>{const p=i.filter(m=>m.columnName&&m.operator&&m.value!=="");n(p),s(null),r(null),o(!1)},v=t.length>0,w=p=>{p&&d(t),o(p)};return a.jsxs(Ue,{open:c,onOpenChange:w,children:[a.jsx(xt,{asChild:!0,children:a.jsx(_,{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":v,children:a.jsx(zn,{className:"size-4"})})}),a.jsxs(Ve,{className:"w-md space-y-2",align:"start",children:[a.jsx("div",{className:"flex items-center gap-4",children:a.jsxs(_,{variant:"outline",size:"lg",className:"text-sm",onClick:u,children:["Add filter",i&&i.length>0&&a.jsx(De,{className:"text-xs font-normal text-white bg-primary/10 border border-primary/90 px-1.5 py-0.5",children:i.length})]})}),a.jsx("div",{className:"flex flex-col gap-4",children:i.length>0?i.map((p,m)=>a.jsxs("div",{className:"flex-1 flex h-9 gap-2",children:[a.jsxs(ue,{value:p.columnName,onValueChange:b=>h(m,b),children:[a.jsx(fe,{className:"w-full flex-1",children:a.jsx(he,{placeholder:"Select column"})}),a.jsx(me,{children:l?.map(b=>a.jsx(B,{value:b.columnName,children:b.columnName},b.columnName))})]}),a.jsxs(ue,{value:p.operator,onValueChange:b=>y(m,b),children:[a.jsx(fe,{children:a.jsx(he,{placeholder:"Op"})}),a.jsxs(me,{children:[a.jsx(B,{value:"=",children:"="}),a.jsx(B,{value:"!=",children:"!="}),a.jsx(B,{value:">",children:">"}),a.jsx(B,{value:">=",children:">="}),a.jsx(B,{value:"<",children:"<"}),a.jsx(B,{value:"<=",children:"<="}),a.jsx(B,{value:"is",children:"is"}),a.jsx(B,{value:"is not",children:"is not"}),a.jsx(B,{value:"like",children:"like"}),a.jsx(B,{value:"not like",children:"not like"}),a.jsx(B,{value:"ilike",children:"ilike"}),a.jsx(B,{value:"not ilike",children:"not ilike"})]})]}),a.jsx(ae,{type:"text",placeholder:"Value",value:p.value,onChange:b=>x(m,b.target.value)}),a.jsx(_,{variant:"ghost",size:"icon",className:"text-xs",onClick:()=>f(m),children:a.jsx(yt,{className:"size-4"})})]},m)):a.jsx("div",{className:"flex-1 flex h-9 gap-2 items-center justify-center",children:a.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"No filters applied"})})}),a.jsxs("div",{className:"gap-2 flex justify-end",children:[a.jsx(_,{variant:"outline",size:"lg",className:"text-sm",onClick:k,children:"Reset"}),a.jsx(_,{variant:"default",size:"lg",className:"text-sm",onClick:S,children:"Apply"})]})]})]})},ii=({tableName:e})=>{const{refetchTableData:t,isRefetchingTableData:n}=wt({tableName:e}),{refetchTableCols:s,isRefetchingTableCols:r}=Ee({tableName:e}),l=g.useCallback(()=>{Promise.all([t(),s()])},[t,s]);return a.jsx(_,{type:"button",variant:"ghost",className:"size-8! aspect-square border-l-0 border-y-0 border-r border-zinc-800 rounded-none",onClick:l,"aria-label":"Refetch table data and columns",disabled:n||r,children:a.jsx(Fn,{className:"size-4"})})},ci=({setRowSelection:e})=>{const{getUpdates:t,getUpdateCount:n}=be(),{updateCell:s,isUpdatingCell:r}=ps(),l=g.useCallback(async()=>{const o=t();if(o.length!==0){console.log("Saving updates:",o);try{await s(o),e({})}catch(i){console.error("Failed to save updates:",i)}}},[t,s,e]);if(n()===0)return null;const c=n();return a.jsxs(_,{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:l,"aria-label":"Save changes to the table",disabled:r,children:["Save Changes",c>0&&a.jsx("span",{className:"ml-1.5 px-1.5 text-[10px] bg-white/20 border border-white/20 rounded",children:c})]})},kn=({selectedRows:e,setRowSelection:t,tableName:n})=>a.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:a.jsxs("div",{className:"flex items-center ",children:[a.jsx(ii,{tableName:n}),a.jsx(li,{tableName:n}),a.jsx(Xl,{}),a.jsx(ci,{setRowSelection:t}),a.jsx(Zl,{}),a.jsx(ri,{tableName:n,selectedRows:e,setRowSelection:t}),a.jsx(oi,{tableName:n})]})});function qe({table:e,cell:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,className:o,onClick:i,onKeyDown:d,...u}){const{getUpdate:f}=be(),h=e.options.meta,x=t.row.original,y=!!f(x,s),k=g.useCallback(C=>{r||(C.preventDefault(),i?.(C),l?h?.onCellEditingStart?.(n,s):h?.onCellClick?.(n,s,C))},[h,n,s,r,l,i]),S=g.useCallback(C=>{r||h?.onCellContextMenu?.(n,s,C)},[h,n,s,r]),v=g.useCallback(C=>{r||h?.onCellMouseDown?.(n,s,C)},[h,n,s,r]),w=g.useCallback(C=>{r||h?.onCellMouseEnter?.(n,s,C)},[h,n,s,r]),p=g.useCallback(()=>{r||h?.onCellMouseUp?.()},[h,r]),m=g.useCallback(C=>{r||(C.preventDefault(),h?.onCellDoubleClick?.(n,s))},[h,n,s,r]),b=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")&&l&&!r){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,l,r,h,n,s]);return a.jsx("div",{role:"button","data-slot":"grid-cell-wrapper","data-editing":r?"":void 0,"data-focused":l?"":void 0,"data-selected":c?"":void 0,"data-has-update":y?"":void 0,tabIndex:l&&!r?0:-1,className:W("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":l,"bg-primary/10":c&&!r,"cursor-default":!r,"ring-2 ring-primary":y},o),onClick:k,onContextMenu:S,onDoubleClick:m,onMouseDown:v,onMouseEnter:w,onMouseUp:p,onKeyDown:b,...u})}const gt=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i,getUpdate:d}=be(),u=e.getValue(),[f,h]=g.useState(()=>u??""),[x,y]=g.useState(!1),k=g.useRef(null),S=g.useRef(null),v=t.options.meta,w=e.row.original,p=s,m=d(w,p),b=m?m.newValue:u??"",C=g.useCallback(()=>{console.log("onSave",{editorValue:f,initialValue:u,columnName:p,rowData:w}),o(w,p,f,u),v?.onCellEditingStop?.(),y(!1)},[v,f,u,p,w,o]),j=g.useCallback(()=>{console.log("onCancel",f,u),h(u??""),i(w,p),v?.onCellEditingStop?.(),y(!1)},[v,u,p,w,i,f]),E=g.useCallback(Y=>{const I=Y.target.value;console.log("onChange",I,p,f,u),h(I)},[p,f,u]),D=g.useCallback(Y=>{y(Y),Y||(f!==u&&o(w,p,f,u),v?.onCellEditingStop?.())},[v,f,u,p,w,o]),O=g.useCallback(Y=>{if(Y.preventDefault(),k.current){k.current.focus();const I=k.current.value.length;k.current.setSelectionRange(I,I)}},[]),R=g.useCallback(Y=>{r&&!x&&(Y.key==="Escape"?(Y.preventDefault(),v?.onCellEditingStop?.()):Y.key==="Tab"&&(Y.preventDefault(),v?.onCellEditingStop?.({direction:Y.shiftKey?"left":"right"})))},[r,x,v]),q=g.useCallback(Y=>{Y.key==="Escape"?(Y.preventDefault(),console.log("onTextareaKeyDown",Y.key,f,u),j()):Y.key==="Enter"&&(Y.ctrlKey||Y.metaKey)&&(Y.preventDefault(),console.log("onTextareaKeyDown",Y.key,f,u),C()),Y.stopPropagation()},[j,C,f,u]),G=g.useCallback(()=>{f!==u&&o(w,p,f,u),v?.onCellEditingStop?.(),y(!1)},[v,f,u,p,w,o]);return g.useEffect(()=>{r&&!x?(h(b),y(!0)):!r&&x&&y(!1)},[r,x,b]),g.useEffect(()=>{l&&!r&&!v?.isScrolling&&S.current&&S.current.focus()},[l,r,v?.isScrolling]),Ie("enter",()=>C()),Ie("esc",()=>j()),a.jsxs(Ue,{open:x,onOpenChange:D,children:[a.jsx(Tn,{asChild:!0,children:a.jsx(qe,{ref:S,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:R,children:a.jsx("span",{"data-slot":"grid-cell-content",children:b})})}),a.jsxs(Ve,{"data-grid-cell-editor":"",align:"start",side:"bottom",sideOffset:0,className:"w-[400px] rounded-none p-0 gap-0",onOpenAutoFocus:O,children:[a.jsx(ke,{ref:k,value:f,onChange:E,onKeyDown:q,onBlur:G,className:"min-h-[150px] resize-none rounded-none border-0 shadow-none focus-visible:ring-0",placeholder:"Enter text..."}),a.jsxs("div",{className:"flex flex-col border-t",children:[a.jsxs(_,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[a.jsx(De,{className:"text-xs font-normal",children:"⌘↵"}),a.jsx("span",{className:"ml-1 text-xs",children:"Save Changes"})]}),a.jsxs(_,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[a.jsx(De,{className:"text-xs font-normal",children:"esc"}),a.jsx("span",{className:"ml-1 text-xs",children:"Cancel Changes"})]})]})]})]})});gt.displayName="TableTextCell";const xs=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i}=be(),d=e.getValue(),[u,f]=g.useState(()=>d),[h,x]=g.useState(!1),y=g.useRef(null),k=g.useRef(null),S=t.options.meta,v=e.row.original,w=s,p=g.useCallback(()=>{console.log("onSave",{value:u,initialValue:d,columnName:w,rowData:v}),o(v,w,u,d),x(!1),S?.onCellEditingStop?.()},[S,u,d,w,v,o]),m=g.useCallback(()=>{console.log("onCancel",u,d),f(d),i(v,w),x(!1),S?.onCellEditingStop?.()},[S,d,w,v,i,u]),b=g.useCallback(D=>{const O=D.target.value;console.log("onChange",O,w,u,d),f(Number(O)),o(v,w,Number(O),d)},[w,u,d,v,o]),C=g.useCallback(D=>{r&&!h&&(D.key==="Escape"?(D.preventDefault(),S?.onCellEditingStop?.()):D.key==="Tab"&&(D.preventDefault(),u!==d&&o(v,w,u,d),S?.onCellEditingStop?.({direction:D.shiftKey?"left":"right"})))},[r,h,S,u,d,w,v,o]),j=g.useCallback(D=>{D.key==="Escape"?(D.preventDefault(),console.log("onTextInputKeyDown",D.key,u,d),m()):D.key==="Enter"&&(D.ctrlKey||D.metaKey)&&(D.preventDefault(),console.log("onTextInputKeyDown",D.key,u,d),p()),D.stopPropagation()},[m,p,u,d]),E=g.useCallback(()=>{u!==d&&o(v,w,u,d),x(!1),S?.onCellEditingStop?.()},[S,u,d,w,v,o]);return r&&!h&&x(!0),g.useEffect(()=>{l&&!r&&!S?.isScrolling&&k.current&&k.current.focus()},[l,r,S?.isScrolling]),Ie("enter",()=>p()),Ie("esc",()=>m()),a.jsx(qe,{ref:k,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:C,children:a.jsx(ae,{type:"number",ref:y,value:u||"",onChange:D=>b(D),onKeyDown:D=>j(D),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"})})});xs.displayName="TableNumberCell";const ys=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i,getUpdate:d}=be(),u=e.getValue(),[f,h]=g.useState(!1),x=g.useRef(null),y=g.useRef(null),k=g.useRef(r),S=t.options.meta;g.useEffect(()=>{k.current=r},[r]);const v=e.row.original,w=s,p=d(v,w),m=p?p.newValue:u,b=g.useMemo(()=>m==null?"null":m?"true":"false",[m]),C=g.useCallback(R=>{let q;R==="null"?q=null:q=R==="true",o(v,w,q,u),h(!1),S?.onCellEditingStop?.()},[w,v,u,o,S]),j=g.useCallback(()=>{i(v,w),h(!1),S?.onCellEditingStop?.()},[v,w,i,S]),E=g.useCallback(R=>{h(R),!R&&r&&S?.onCellEditingStop?.()},[r,S]),D=g.useCallback(R=>{r&&!f&&(R.key==="Escape"?(R.preventDefault(),j()):R.key==="Tab"&&(R.preventDefault(),j(),S?.onCellEditingStop?.({direction:R.shiftKey?"left":"right"})))},[r,f,S,j]);g.useEffect(()=>{if(r){const R=setTimeout(()=>{k.current&&(h(!0),setTimeout(()=>{k.current&&y.current?.click()},0))},0);return()=>{clearTimeout(R),h(!1)}}},[r]),g.useEffect(()=>{l&&!r&&!S?.isScrolling&&x.current&&x.current.focus()},[l,r,S?.isScrolling]);const O=m==null?"NULL":m?"true":"false";return a.jsx(qe,{ref:x,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:D,className:"p-0!",children:r?a.jsxs(ue,{value:b,onValueChange:C,open:f,onOpenChange:E,children:[a.jsx(fe,{ref:y,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:a.jsx(he,{})}),a.jsxs(me,{"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:[a.jsx(B,{value:"true",children:"true"}),a.jsx(B,{value:"false",children:"false"}),a.jsx(B,{value:"null",children:"NULL"})]})]}):a.jsx("span",{className:"flex items-center size-full px-2 py-1.5",children:O})})});ys.displayName="TableBooleanCell";const bs=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i,getUpdate:d}=be(),u=e.getValue(),[f,h]=g.useState(!1),x=g.useRef(null),y=g.useRef(null),k=g.useRef(r),S=t.options.meta,v=e.column.columnDef.meta?.enumValues;g.useEffect(()=>{k.current=r},[r]);const w=e.row.original,p=s,m=d(w,p),b=m?m.newValue:u,C=g.useCallback(R=>{o(w,p,R==="null"?null:R,u),h(!1),S?.onCellEditingStop?.()},[p,w,u,o,S]),j=g.useCallback(()=>{i(w,p),h(!1),S?.onCellEditingStop?.()},[w,p,i,S]),E=g.useCallback(R=>{h(R),!R&&r&&S?.onCellEditingStop?.()},[r,S]),D=g.useCallback(R=>{r&&!f&&(R.key==="Escape"?(R.preventDefault(),j()):R.key==="Tab"&&(R.preventDefault(),j(),S?.onCellEditingStop?.({direction:R.shiftKey?"left":"right"})))},[r,f,S,j]);g.useEffect(()=>{if(r){const R=setTimeout(()=>{k.current&&(h(!0),setTimeout(()=>{k.current&&y.current?.click()},0))},0);return()=>{clearTimeout(R),h(!1)}}},[r]),g.useEffect(()=>{l&&!r&&!S?.isScrolling&&x.current&&x.current.focus()},[l,r,S?.isScrolling]);const O=b??"NULL";return a.jsx(qe,{ref:x,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:D,className:"p-0!",children:r?a.jsxs(ue,{value:b===null?"null":b,onValueChange:C,open:f,onOpenChange:E,children:[a.jsx(fe,{ref:y,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:a.jsx(he,{})}),a.jsxs(me,{"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:[v?.map(R=>a.jsx(B,{value:R,children:R},R)),a.jsx(B,{value:"null",children:"NULL"})]})]}):a.jsx("span",{className:"flex items-center size-full px-2 py-1.5 truncate",children:O})})});bs.displayName="TableEnumCell";const Cs=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i,getUpdate:d}=be(),u=e.getValue(),f=g.useRef(null),h=t.options.meta,x=e.row.original,y=s,k=d(x,y),S=k?k.newValue:u,v=g.useCallback(m=>{console.log("onDateChange",m,y,u);const b=m?m.toISOString():null;o(x,y,b,u),h?.onCellEditingStop?.()},[y,u,x,o,h]),w=g.useCallback(()=>{console.log("onCancel",S,u),i(x,y),h?.onCellEditingStop?.()},[x,y,i,h,S,u]),p=g.useCallback(m=>{r&&(m.key==="Escape"||m.key==="Tab")&&(m.preventDefault(),w())},[r,w]);return g.useEffect(()=>{l&&!r&&!h?.isScrolling&&f.current&&f.current.focus()},[l,r,h?.isScrolling]),a.jsx(qe,{ref:f,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:p,className:"p-0!",children:a.jsx(mt,{isFormatted:!1,icon:!1,value:S?new Date(S):void 0,onChange:v,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"})})});Cs.displayName="TableDateCell";const ws=g.memo(({cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c})=>{const{setUpdate:o,clearUpdate:i,getUpdate:d}=be(),u=e.getValue();let f;if(typeof u=="string")try{f=JSON.parse(u),console.warn(`TableJsonCell ${s}: initialValue was a string, parsed it to object`,f)}catch(A){console.error(`TableJsonCell ${s}: Failed to parse initialValue string`,u,A),f={}}else f=u;g.useEffect(()=>{console.log(`TableJsonCell ${s} initialValue:`,typeof f,f)},[f,s]);const[h,x]=g.useState(()=>JSON.stringify(f,null,2)??""),[y,k]=g.useState(!1),S=g.useRef(null),v=g.useRef(null),w=t.options.meta,p=e.row.original,m=s,b=d(p,m),C=b?b.newValue:f,j=JSON.stringify(C),E=g.useCallback(()=>{console.log("onSave",{editorValue:h,initialValue:f,columnName:m,rowData:p});try{const A=JSON.parse(h);console.log("Parsed value:",typeof A,A),console.log("Initial value:",typeof f,f),o(p,m,A,f)}catch(A){console.error("Invalid JSON:",A);return}w?.onCellEditingStop?.(),k(!1)},[w,h,f,m,p,o]),D=g.useCallback(()=>{console.log("onCancel",h,f),x(JSON.stringify(f,null,2)??""),i(p,m),w?.onCellEditingStop?.(),k(!1)},[w,f,m,p,i,h]),O=g.useCallback(A=>{const Q=A.target.value;console.log("onChange",Q,m,h,f),x(Q)},[m,h,f]),R=g.useCallback(A=>{if(k(A),!A){try{const Q=JSON.parse(h);JSON.stringify(Q)!==JSON.stringify(f)&&o(p,m,Q,f)}catch(Q){console.error("Invalid JSON on close:",Q)}w?.onCellEditingStop?.()}},[w,h,f,m,p,o]),q=g.useCallback(A=>{if(A.preventDefault(),S.current){S.current.focus();const Q=S.current.value.length;S.current.setSelectionRange(Q,Q)}},[]),G=g.useCallback(A=>{r&&!y&&(A.key==="Escape"?(A.preventDefault(),w?.onCellEditingStop?.()):A.key==="Tab"&&(A.preventDefault(),w?.onCellEditingStop?.({direction:A.shiftKey?"left":"right"})))},[r,y,w]),Y=g.useCallback(A=>{A.key==="Escape"?(A.preventDefault(),console.log("onTextareaKeyDown",A.key,h,f),D()):A.key==="Enter"&&(A.ctrlKey||A.metaKey)&&(A.preventDefault(),console.log("onTextareaKeyDown",A.key,h,f),E()),A.stopPropagation()},[D,E,h,f]),I=g.useCallback(()=>{try{const A=JSON.parse(h);JSON.stringify(A)!==JSON.stringify(f)&&o(p,m,A,f)}catch(A){console.error("Invalid JSON on blur:",A)}w?.onCellEditingStop?.(),k(!1)},[w,h,f,m,p,o]);return g.useEffect(()=>{r&&!y?(x(JSON.stringify(C,null,2)),k(!0)):!r&&y&&k(!1)},[r,y,C]),g.useEffect(()=>{l&&!r&&!w?.isScrolling&&v.current&&v.current.focus()},[l,r,w?.isScrolling]),Ie("enter",()=>E()),Ie("esc",()=>D()),a.jsxs(Ue,{open:y,onOpenChange:R,children:[a.jsx(Tn,{asChild:!0,children:a.jsx(qe,{ref:v,cell:e,table:t,rowIndex:n,columnId:s,isEditing:r,isFocused:l,isSelected:c,onKeyDown:G,children:a.jsx("span",{"data-slot":"grid-cell-content",children:j})})}),a.jsxs(Ve,{"data-grid-cell-editor":"",align:"start",side:"bottom",sideOffset:0,className:"w-[400px] rounded-none p-0 gap-0",onOpenAutoFocus:q,children:[a.jsx(ke,{ref:S,value:h,onChange:O,onKeyDown:Y,onBlur:I,className:"min-h-[150px] resize-none rounded-none border-0 shadow-none focus-visible:ring-0",placeholder:"Enter JSON..."}),a.jsxs("div",{className:"flex flex-col border-t",children:[a.jsxs(_,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[a.jsx(De,{className:"text-xs font-normal",children:"⌘↵"}),a.jsx("span",{className:"ml-1 text-xs",children:"Save Changes"})]}),a.jsxs(_,{variant:"ghost",size:"sm",className:"rounded-none justify-start text-xs py-4 px-2",children:[a.jsx(De,{className:"text-xs font-normal",children:"esc"}),a.jsx("span",{className:"ml-1 text-xs",children:"Cancel Changes"})]})]})]})]})});ws.displayName="TableJsonCell";const di=({cell:e,table:t})=>{const n=t.options.meta,s=e.row.index,l=t.getRowModel().rows.findIndex(h=>h.original===e.row.original),c=l>=0?l:s,o=e.column.id,i=n?.focusedCell?.rowIndex===c&&n?.focusedCell?.columnId===o,d=n?.editingCell?.rowIndex===c&&n?.editingCell?.columnId===o,u=n?.getIsCellSelected?.(c,o)??!1;switch(e.column.columnDef.meta?.variant){case"text":return a.jsx(gt,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"boolean":return a.jsx(ys,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"number":return a.jsx(xs,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"enum":return a.jsx(bs,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"date":return a.jsx(Cs,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"json":return a.jsx(ws,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});case"array":return a.jsx(gt,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u});default:return a.jsx(gt,{cell:e,table:t,rowIndex:c,columnId:o,isEditing:d,isFocused:i,isSelected:u})}},ui=({columnVirtualizer:e,row:t,rowVirtualizer:n,virtualPaddingLeft:s,virtualPaddingRight:r,virtualRow:l})=>{const c=t.getVisibleCells(),o=e.getVirtualItems();return a.jsxs("tr",{"data-index":l.index,ref:i=>n.measureElement(i),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(${l.start}px)`},children:[s?a.jsx("td",{style:{display:"flex",width:s}}):null,o.map(i=>{const d=c[i.index];return a.jsx("td",{className:W("flex border-r border-zinc-800 h-8"),style:{width:i.index===0?"40px":d.column.getSize()},children:st(d.column.columnDef.cell,d.getContext())},d.id)}),r?a.jsx("td",{style:{display:"flex",width:r}}):null]},t.id)},fi=({columnVirtualizer:e,table:t,tableContainerRef:n,virtualPaddingLeft:s,virtualPaddingRight:r})=>{const{rows:l}=t.getRowModel(),c=In({count:l.length,estimateSize:()=>33,getScrollElement:()=>n.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?i=>i?.getBoundingClientRect().height:void 0,overscan:5}),o=c.getVirtualItems();return a.jsx("tbody",{style:{display:"grid",height:`${c.getTotalSize()}px`,position:"relative"},children:o.map(i=>{const d=l[i.index];return a.jsx(ui,{columnVirtualizer:e,row:d,rowVirtualizer:c,virtualPaddingLeft:s,virtualPaddingRight:r,virtualRow:i},d.id)})})},hi=g.memo(mi,(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 mi({header:e,table:t,label:n}){const s=t._getDefaultColumnDef(),r=g.useCallback(()=>{t.setColumnSizing(l=>{const c={...l};return delete c[e.column.id],c})},[e.column.id,t]);return a.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:W("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:r,onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler()})}const gi=()=>{const e=ot(),{selectedDatabase:t}=Ae(),{mutateAsync:n}=Le({mutationFn:async({tableName:r,columnName:l,cascade:c})=>{const o=new URLSearchParams({db:t??"",cascade:c?"true":"false"});return(await We.delete(`/tables/${encodeURIComponent(r)}/columns/${encodeURIComponent(l)}`,{params:o})).data.data},onSuccess:async(r,l)=>{await Promise.all([e.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_COLUMNS,l.tableName],exact:!1}),e.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLE_DATA,l.tableName],exact:!1}),e.invalidateQueries({queryKey:[M.CACHE_KEYS.TABLES_LIST],exact:!1})])},onError:r=>{console.error("Error deleting column:",r)}});return{deleteColumn:async({tableName:r,columnName:l,cascade:c})=>je.promise(n({tableName:r,columnName:l,cascade:c,db:""}),{loading:"Deleting column...",success:o=>o||"Column deleted successfully",error:o=>o.message||"Failed to delete column"})}},pi=({columnVirtualizer:e,headerGroup:t,virtualPaddingLeft:n,virtualPaddingRight:s,table:r})=>{const{table:l}=Vt.useParams(),[c,o]=g.useState(!1),[i,d]=g.useState(null),[u,f]=g.useState(!1),{deleteColumn:h}=gi(),[,x]=P(M.COLUMN_NAME),[,y]=P(M.TABLE_STATE_KEYS.SORT),[,k]=P(M.TABLE_STATE_KEYS.ORDER),[,S]=P(M.TABLE_STATE_KEYS.CURSOR),[,v]=P(M.TABLE_STATE_KEYS.DIRECTION),w=e.getVirtualItems(),p=r.getState().columnSizingInfo.isResizingColumn,m=g.useCallback(D=>O=>{O===null?(x(null),y(null),k(null)):(x(D),y(D),k(O==="desc"?"desc":"asc")),S(null),v(null)},[x,y,k,S,v]),b=g.useCallback(D=>{d(D),f(!1),o(!0)},[]),C=g.useCallback(D=>{o(D),D||(d(null),f(!1))},[]),j=g.useCallback(async()=>{!i||!l||(await h({tableName:l,columnName:i,cascade:u}),o(!1),d(null),f(!1))},[i,l,h,u]),E=g.useCallback(()=>{o(!1),d(null),f(!1)},[]);return a.jsxs(a.Fragment,{children:[a.jsxs("tr",{className:W("flex w-fit bg-black border-b items-center justify-between text-sm data-[state=open]:bg-accent/40 [&_svg]:size-4",p&&"pointer-events-none"),children:[n?a.jsx("th",{style:{display:"flex",width:n}}):null,w.map(D=>{const O=t.headers[D.index],R=O.column.columnDef.meta?.isPrimaryKey,q=O.column.columnDef.meta?.isForeignKey,G=O.column.columnDef.meta?.dataTypeLabel;return a.jsx("th",{className:"h-full flex",style:{display:"flex",width:D.index===0?"40px":O.getSize()},children:a.jsx("div",{className:W("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:D.index===0?st(O.column.columnDef.header,O.getContext()):a.jsxs(a.Fragment,{children:[a.jsxs(Bt,{children:[a.jsx(Kt,{asChild:!0,children:a.jsxs(_,{variant:"outline",className:"p-2 border-none w-full h-full bg-transparent! rounded-none justify-between",children:[a.jsxs("div",{className:"flex items-center gap-1",children:[R&&a.jsx(fr,{size:20,className:"text-primary"}),q&&a.jsx(Wn,{size:20,className:"text-primary"}),st(O.column.columnDef.header,O.getContext())]}),a.jsxs("div",{className:"flex items-center gap-1",children:[G&&a.jsx("span",{className:"text-xs leading-none text-muted-foreground",children:G}),a.jsx("span",{className:"text-xs leading-none text-muted-foreground",children:{asc:a.jsx(An,{}),desc:a.jsx(hr,{})}[O.column.getIsSorted()]??null})]})]})}),a.jsxs(Ut,{className:"w-44",align:"start",children:[a.jsxs(sr,{children:[a.jsxs(ce,{onClick:()=>m(O.column.id)("asc"),children:[a.jsx(mr,{}),"Sort ascending"]}),a.jsxs(ce,{onClick:()=>m(O.column.id)("desc"),children:[a.jsx(gr,{}),"Sort descending"]}),O.column.getIsSorted()&&a.jsxs(ce,{onClick:()=>m(O.column.id)(null),children:[a.jsx(yt,{}),"Remove sort"]})]}),a.jsx(rr,{}),a.jsxs(ce,{variant:"destructive",onClick:()=>b(O.column.id),children:[a.jsx(pr,{}),"Delete column"]})]})]}),O.column.getCanResize()&&a.jsx(hi,{header:O,table:r,label:O.column.id})]})})},O.id)}),s?a.jsx("th",{style:{display:"flex",width:s}}):null]},t.id),a.jsx(jr,{open:c,onOpenChange:C,children:a.jsxs(Dr,{children:[a.jsxs(Nr,{children:[a.jsx(Er,{children:"Delete Column"}),a.jsxs(Or,{children:['Are you sure you want to delete the column "',i,'"? This action cannot be undone and will permanently remove all data in this column.']})]}),a.jsxs("div",{className:"flex gap-2 py-2",children:[a.jsx(Pt,{id:"cascade-delete",checked:u,onCheckedChange:D=>f(D===!0)}),a.jsx(le,{htmlFor:"cascade-delete",className:"text-xs text-muted-foreground cursor-pointer",children:"Drop with CASCADE (also remove dependent indexes, constraints, and foreign key references)"})]}),a.jsxs(Mr,{children:[a.jsx(Tr,{onClick:E,children:"Cancel"}),a.jsx(_r,{variant:"destructive",onClick:j,children:"Delete"})]})]})})]})},xi=({columnVirtualizer:e,table:t,virtualPaddingLeft:n,virtualPaddingRight:s})=>a.jsx("thead",{className:"h-9 grid sticky top-0 z-10",children:t.getHeaderGroups().map(r=>a.jsx(pi,{columnVirtualizer:e,headerGroup:r,table:t,virtualPaddingLeft:n,virtualPaddingRight:s},r.id))}),yi=({table:e})=>{const t=e.getVisibleLeafColumns(),n=g.useRef(null),s=In({count:t.length,estimateSize:o=>t[o].getSize(),getScrollElement:()=>n.current,horizontal:!0,overscan:3}),r=s.getVirtualItems();let l,c;return s&&r?.length&&(l=r[0]?.start??0,c=s.getTotalSize()-(r[r.length-1]?.end??0)),a.jsx("div",{className:"w-full flex-1 overflow-auto",ref:n,style:{position:"relative"},children:a.jsxs("table",{style:{display:"grid"},children:[a.jsx(xi,{columnVirtualizer:s,table:e,virtualPaddingLeft:l,virtualPaddingRight:c}),a.jsx(fi,{columnVirtualizer:s,table:e,tableContainerRef:n,virtualPaddingLeft:l,virtualPaddingRight:c})]})})};function bi({className:e,...t}){return a.jsx("nav",{"aria-label":"pagination","data-slot":"pagination",className:W("mx-auto flex w-full justify-center",e),...t})}function Ci({className:e,...t}){return a.jsx("ul",{"data-slot":"pagination-content",className:W("flex flex-row items-center gap-1",e),...t})}function jn({...e}){return a.jsx("li",{"data-slot":"pagination-item",...e})}const wi=({tableName:e})=>{const{sidebar:{isPinned:t,width:n}}=ar(),[s,r]=P(M.TABLE_STATE_KEYS.LIMIT),[,l]=P(M.TABLE_STATE_KEYS.CURSOR),[,c]=P(M.TABLE_STATE_KEYS.DIRECTION),{tableData:o}=wt({tableName:e}),i=o?.meta?.total??0,d=o?.data?.length??0,u=y=>{r(y),l(null),c(null)},f=()=>{o?.meta?.nextCursor&&(l(o.meta.nextCursor),c("asc"))},h=()=>{o?.meta?.prevCursor&&(l(o.meta.prevCursor),c("desc"))},x=()=>{l(null),c(null)};return a.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:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(le,{className:"text-xs text-zinc-400 whitespace-nowrap",children:"Rows per page"}),a.jsxs(ue,{value:s?.toString()||"50",onValueChange:y=>{u(y)},children:[a.jsx(fe,{size:"sm",className:"h-6 text-xs px-2 border-none bg-transparent! shadow-none hover:bg-transparent! gap-2",children:a.jsx(he,{placeholder:"Select number of results"})}),a.jsx(me,{className:"[&_*[role=option]]:ps-2 [&_*[role=option]]:pe-8 [&_*[role=option]>span]:start-auto [&_*[role=option]>span]:end-2 border-zinc-800",children:[5,10,25,50].map(y=>a.jsx(B,{value:y.toString(),children:y},y))})]})]}),a.jsx("div",{className:"flex items-center justify-center text-xs text-zinc-400",children:a.jsxs("p",{className:"whitespace-nowrap","aria-live":"polite",children:["Showing ",a.jsx("span",{className:"text-zinc-200",children:d})," of"," ",a.jsx("span",{className:"text-zinc-200",children:i})," rows"]})}),a.jsxs("div",{className:"flex items-center gap-0.5",children:[a.jsx(_,{size:"sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:x,disabled:!o?.meta?.hasPreviousPage||i===0,"aria-label":"Go to first page",children:a.jsx(xr,{"aria-hidden":"true"})}),a.jsx(bi,{children:a.jsxs(Ci,{className:"gap-0.5",children:[a.jsx(jn,{children:a.jsx(_,{size:"icon-sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:h,disabled:!o?.meta?.hasPreviousPage||i===0,"aria-label":"Go to previous page",children:a.jsx(_n,{"aria-hidden":"true"})})}),a.jsx(jn,{children:a.jsx(_,{size:"icon-sm",variant:"ghost",className:"h-6 w-6 disabled:opacity-30",onClick:f,disabled:!o?.meta?.hasNextPage||i===0,"aria-label":"Go to next page",children:a.jsx(Rn,{"aria-hidden":"true"})})})]})})]})]})},vi=()=>({id:"select",accessorKey:"select",header:({table:e})=>a.jsx("div",{className:"w-full h-full flex items-center justify-center",children:a.jsx(Pt,{checked:e.getIsAllRowsSelected(),onCheckedChange:()=>e.toggleAllRowsSelected()})}),cell:({row:e})=>a.jsx("div",{className:"w-full h-full flex items-center justify-center",children:a.jsx(Pt,{checked:e.getIsSelected(),onCheckedChange:()=>e.toggleSelected()})}),size:20,enableSorting:!1}),Si=({tableName:e})=>{const[t]=P(M.COLUMN_NAME),[n]=P(M.TABLE_STATE_KEYS.ORDER),{tableData:s,isLoadingTableData:r,errorTableData:l}=wt({tableName:e}),{tableCols:c,isLoadingTableCols:o,errorTableCols:i}=Ee({tableName:e}),[d,u]=g.useState({}),[f,h]=g.useState({}),[x,y]=g.useState(null),[k,S]=g.useState(null),v=g.useMemo(()=>vi(),[]),w=g.useMemo(()=>[v,...c?.map(I=>({accessorKey:I.columnName,header:I.columnName,meta:{variant:I.enumValues?"enum":I.dataType,isPrimaryKey:I.isPrimaryKey,isForeignKey:I.isForeignKey,referencedTable:I.referencedTable,referencedColumn:I.referencedColumn,enumValues:I.enumValues,dataTypeLabel:I.dataTypeLabel},size:(I.columnName.length+(I.dataTypeLabel?.length||0))*5+100,minSize:100,maxSize:500}))||[]],[c,v]);g.useEffect(()=>{u({})},[e]);const p=g.useMemo(()=>t&&n?[{id:t,desc:n==="desc"}]:[],[t,n]),m=g.useMemo(()=>s?.data||[],[s?.data]),b=g.useCallback((I,A)=>{y({rowIndex:I,columnId:A})},[]),C=g.useCallback((I,A)=>{S({rowIndex:I,columnId:A})},[]),j=g.useCallback((I,A)=>{S({rowIndex:I,columnId:A})},[]),E=g.useCallback(()=>{S(null)},[]),D=g.useCallback(I=>{console.log("Data update:",I)},[]),O=g.useCallback(()=>!1,[]),R=g.useMemo(()=>({focusedCell:x,editingCell:k,onCellClick:b,onCellDoubleClick:C,onCellEditingStart:j,onCellEditingStop:E,onDataUpdate:D,getIsCellSelected:O}),[x,k,b,C,j,E,D,O]),q=Yn({data:m,columns:w,defaultColumn:{cell:di,size:50,minSize:100,maxSize:500},getCoreRowModel:Pn(),getSortedRowModel:Ar(),state:{sorting:p,rowSelection:d,columnSizing:f},manualSorting:!1,enableRowSelection:!0,enableMultiRowSelection:!0,enableColumnResizing:!0,columnResizeMode:"onChange",onRowSelectionChange:u,onColumnSizingChange:h,meta:R});if(r||o)return a.jsx("div",{className:"size-full flex items-center justify-center",children:a.jsx(Mn,{size:"size-7"})});if(l||i){const I=l||i,A=I?.message||"",Q=A.includes("does not exist")||A.includes("404")||I?.status===404,Je=A.includes("Network Error")||A.includes("Failed to fetch");let Z="Something went wrong",ee=A||"An unexpected error occurred";return Q?(Z="Table not found",ee=A||`The table "${e}" does not exist or has been deleted`):Je&&(Z="Connection failed",ee="Unable to connect to the database server. Please check your connection."),a.jsx("div",{className:"size-full flex flex-col items-center justify-center",children:a.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center gap-2",children:[a.jsx("div",{className:"text-sm font-medium",children:Z}),a.jsx("div",{className:"text-sm text-muted-foreground",children:ee})]})})}const G=!s||!s.data||s.data.length===0,Y=q.getSelectedRowModel().rows;return G?a.jsxs("div",{className:"size-full flex flex-col items-center justify-center",children:[a.jsx(kn,{selectedRows:Y,setRowSelection:u,tableName:e}),a.jsxs("div",{className:"text-sm text-muted-foreground flex-1 flex items-center justify-center",children:['No data available for "',e,'" table']})]}):a.jsxs("div",{className:"flex-1 w-full flex flex-col overflow-hidden",children:[a.jsx(kn,{selectedRows:Y,setRowSelection:u,tableName:e}),a.jsx(yi,{table:q}),a.jsx(wi,{tableName:e})]})};function Ri(){const{table:e}=Vt.useParams();return a.jsxs("main",{className:"flex-1 flex flex-col overflow-hidden",children:[a.jsx(Si,{tableName:e}),a.jsx(Vl,{tableName:e}),a.jsx(Ql,{tableName:e}),a.jsx(ql,{tableName:e}),a.jsx(Gl,{tableName:e}),a.jsx(Jl,{tableName:e})]})}export{Ri as component};
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-Bl5zWzZD.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as t,c as a,a as i,C as s}from"./chunk-B4BG7PRW-ZA-ck0YQ.js";import{_ as o}from"./mermaid.core-Bl5zWzZD.js";import"./chunk-FMBD7UC4-CwwWK8-e.js";import"./chunk-55IACEB6-BDNKe4fa.js";import"./chunk-QN33PNHL-bn39U0qP.js";import"./monaco-editor-BMj4E99D.js";import"./icons-cLYU3CQS.js";import"./mermaid-VLURNSYL-F8q0N6Y-.js";import"./radix-ui-BypjIQUF.js";import"./react-dom-BWKcCUTe.js";import"./tanstack-I4NcPTsd.js";import"./index-DM_G5wVs.js";import"./scroll-area-BZeWiQjX.js";import"./index-ejQaUr38.js";import"./_pathlessLayout-C3BlW5Hc.js";import"./queries.store-KdEzteJi.js";var A={parser:i,get db(){return new s},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{A as diagram};
@@ -1 +0,0 @@
1
- import{s as t,c as a,a as i,C as s}from"./chunk-B4BG7PRW-ZA-ck0YQ.js";import{_ as o}from"./mermaid.core-Bl5zWzZD.js";import"./chunk-FMBD7UC4-CwwWK8-e.js";import"./chunk-55IACEB6-BDNKe4fa.js";import"./chunk-QN33PNHL-bn39U0qP.js";import"./monaco-editor-BMj4E99D.js";import"./icons-cLYU3CQS.js";import"./mermaid-VLURNSYL-F8q0N6Y-.js";import"./radix-ui-BypjIQUF.js";import"./react-dom-BWKcCUTe.js";import"./tanstack-I4NcPTsd.js";import"./index-DM_G5wVs.js";import"./scroll-area-BZeWiQjX.js";import"./index-ejQaUr38.js";import"./_pathlessLayout-C3BlW5Hc.js";import"./queries.store-KdEzteJi.js";var A={parser:i,get db(){return new s},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{A as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-BhgtEUho.js";var e=4;function a(o){return r(o,e)}export{a as c};