d1s 0.2.13 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -1
- package/dist/.next/.next/BUILD_ID +1 -1
- package/dist/.next/.next/app-build-manifest.json +119 -77
- package/dist/.next/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/.next/build-manifest.json +7 -7
- package/dist/.next/.next/cache/.rscinfo +1 -1
- package/dist/.next/.next/cache/.tsbuildinfo +1 -1
- package/dist/.next/.next/cache/webpack/client-development/0.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/client-development/1.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/client-development/index.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
- package/dist/.next/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/10.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/11.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/12.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/3.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/4.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/5.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/6.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/7.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/8.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/9.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/.next/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-development/0.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/server-development/1.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/server-development/index.pack.gz +0 -0
- package/dist/.next/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/1.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/2.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/3.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/dist/.next/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/.next/.next/next-server.js.nft.json +1 -1
- package/dist/.next/.next/prerender-manifest.json +1 -1
- package/dist/.next/.next/react-loadable-manifest.json +11 -1
- package/dist/.next/.next/required-server-files.json +1 -1
- package/dist/.next/.next/routes-manifest.json +1 -1
- package/dist/.next/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/_not-found.html +1 -1
- package/dist/.next/.next/server/app/_not-found.rsc +5 -5
- package/dist/.next/.next/server/app/api/cloudflare/route.js +1 -1
- package/dist/.next/.next/server/app/api/cloudflare/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/databases/route.js +1 -1
- package/dist/.next/.next/server/app/api/databases/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/migrations/list/route.js +26 -0
- package/dist/.next/.next/server/app/api/migrations/list/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/migrations/list/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/migrations/sync/route.js +5 -5
- package/dist/.next/.next/server/app/api/migrations/sync/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/migrations/sync-files/route.js +4 -4
- package/dist/.next/.next/server/app/api/migrations/sync-files/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pro/route.js +1 -0
- package/dist/.next/.next/server/app/api/pro/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/pro/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/pull-data/confirm/route.js +1 -1
- package/dist/.next/.next/server/app/api/pull-data/confirm/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js +4 -4
- package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/preview/route.js +4 -4
- package/dist/.next/.next/server/app/api/pull-remote/preview/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/push-remote/confirm/route.js +6 -6
- package/dist/.next/.next/server/app/api/push-remote/confirm/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/push-remote/preview/route.js +6 -6
- package/dist/.next/.next/server/app/api/push-remote/preview/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/query/route.js +9 -9
- package/dist/.next/.next/server/app/api/query/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/schema/route.js +1 -0
- package/dist/.next/.next/server/app/api/schema/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/schema/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/tables/[name]/import/route.js +1 -0
- package/dist/.next/.next/server/app/api/tables/[name]/import/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/tables/[name]/import/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/tables/[name]/route.js +5 -5
- package/dist/.next/.next/server/app/api/tables/[name]/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/tables/route.js +2 -2
- package/dist/.next/.next/server/app/api/tables/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/time-travel/preview/route.js +1 -0
- package/dist/.next/.next/server/app/api/time-travel/preview/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/time-travel/preview/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/time-travel/restore/route.js +1 -0
- package/dist/.next/.next/server/app/api/time-travel/restore/route.js.nft.json +1 -0
- package/dist/.next/.next/server/app/api/time-travel/restore/route_client-reference-manifest.js +1 -0
- package/dist/.next/.next/server/app/api/update/route.js +1 -1
- package/dist/.next/.next/server/app/api/update/route.js.nft.json +1 -1
- package/dist/.next/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/index.html +5 -3
- package/dist/.next/.next/server/app/index.rsc +6 -6
- package/dist/.next/.next/server/app/page.js +15 -15
- package/dist/.next/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app-paths-manifest.json +8 -2
- package/dist/.next/.next/server/chunks/226.js +12 -12
- package/dist/.next/.next/server/chunks/452.js +1 -1
- package/dist/.next/.next/server/chunks/487.js +1 -0
- package/dist/.next/.next/server/chunks/572.js +1 -1
- package/dist/.next/.next/server/chunks/992.js +2 -2
- package/dist/.next/.next/server/chunks/{638.js → 994.js} +3 -3
- package/dist/.next/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/.next/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/.next/server/next-font-manifest.json +1 -1
- package/dist/.next/.next/server/pages/404.html +1 -1
- package/dist/.next/.next/server/pages/500.html +1 -1
- package/dist/.next/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/.next/static/-OO4tE7EKr8o62Bne-ODo/_buildManifest.js +1 -0
- package/dist/.next/.next/static/3kAeIJC56X7aw1Fk5_OXO/_buildManifest.js +1 -0
- package/dist/.next/.next/static/J8r9W6xxmYYvuKehItNuW/_buildManifest.js +1 -0
- package/dist/.next/.next/static/ZmKZbpam0G_d3SphfZPJ7/_buildManifest.js +1 -0
- package/dist/.next/.next/static/arc9h7hbaQzL1Dl0iuVrT/_buildManifest.js +1 -0
- package/dist/.next/.next/static/chunks/1a258343.3b3e7ba5ba0bd0d2.js +1 -0
- package/dist/.next/.next/static/chunks/345.8fc37569d5708622.js +1 -0
- package/dist/.next/.next/static/chunks/480-85b6c8ae3f51b156.js +1 -0
- package/dist/.next/.next/static/chunks/52.2cdc9bdb75e1fc2e.js +1 -0
- package/dist/.next/.next/static/chunks/803-a2fcfbd00e6b3b38.js +1 -0
- package/dist/.next/.next/static/chunks/{92-5f7522943fcb72a8.js → 92-a84bdac2be7c8d7a.js} +1 -1
- package/dist/.next/.next/static/chunks/app/api/cloudflare/route-d0c1dc2a9e7dce36.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/databases/route-cd322321212797cf.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/migrations/list/route-cd710ff75b6bcd02.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/migrations/sync/route-ee522f232b9f0a9c.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/migrations/sync-files/route-79ee2c26f87d3bc7.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/pro/route-c90c1f901fc00d38.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/pull-data/confirm/route-118764086af798f8.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/pull-remote/confirm/route-2b0ade4ebfcea0bc.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/pull-remote/preview/route-342db7ea13e6f447.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/push-remote/confirm/route-b778c053bd515abd.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/push-remote/preview/route-ab090482f299f57f.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/query/route-4d21a8b1d34491f1.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/schema/route-cb17a387d6b557ad.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/tables/[name]/import/route-510472de7a5c29bd.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/tables/[name]/route-6a1fa95c303ce0de.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/tables/route-daa975df4ea8e8f8.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/time-travel/preview/route-5787d7e8f17bd539.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/time-travel/restore/route-84b64a27e831e21c.js +1 -0
- package/dist/.next/.next/static/chunks/app/api/update/route-54ee900537982652.js +1 -0
- package/dist/.next/.next/static/chunks/app/{layout-40ec07d04681ba81.js → layout-f0ec4d636ee0f763.js} +1 -1
- package/dist/.next/.next/static/chunks/app/page-358bf2112802ff85.js +1 -0
- package/dist/.next/.next/static/chunks/app/page-3ec9d72ecb052d39.js +1 -0
- package/dist/.next/.next/static/chunks/webpack-024900a94af4f0a7.js +1 -0
- package/dist/.next/.next/static/css/2c165a0ede9b2442.css +3 -0
- package/dist/.next/.next/static/css/32df9a4d493f8b0f.css +31 -0
- package/dist/.next/.next/static/f_PVCmmSeM5SwW3M1tw7Q/_buildManifest.js +1 -0
- package/dist/.next/.next/static/fiesjBWbrmSSyLf4biwrX/_buildManifest.js +1 -0
- package/dist/.next/.next/static/ft39e6W6vSgUL7peRo7pE/_buildManifest.js +1 -0
- package/dist/.next/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- package/dist/.next/.next/static/u7ssdTycF4iQ-w-pQZhxg/_buildManifest.js +1 -0
- package/dist/.next/.next/static/v-i2YsOGT890zutOSiqqK/_buildManifest.js +1 -0
- package/dist/.next/.next/trace +3 -3
- package/dist/.next/.next/types/app/api/migrations/list/route.ts +347 -0
- package/dist/.next/.next/types/app/api/pro/route.ts +347 -0
- package/dist/.next/.next/types/app/api/schema/route.ts +347 -0
- package/dist/.next/.next/types/app/api/tables/[name]/import/route.ts +347 -0
- package/dist/.next/.next/types/app/api/time-travel/preview/route.ts +347 -0
- package/dist/.next/.next/types/app/api/time-travel/restore/route.ts +347 -0
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +122 -80
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +7 -7
- package/dist/.next/cache/.rscinfo +1 -1
- package/dist/.next/cache/.tsbuildinfo +1 -1
- package/dist/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/.next/next-server.js.nft.json +1 -1
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/react-loadable-manifest.json +11 -1
- package/dist/.next/required-server-files.json +1 -1
- package/dist/.next/routes-manifest.json +1 -1
- package/dist/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +5 -5
- package/dist/.next/server/app/api/cloudflare/route.js +1 -1
- package/dist/.next/server/app/api/cloudflare/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/databases/route.js +1 -1
- package/dist/.next/server/app/api/databases/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/migrations/list/route.js +26 -0
- package/dist/.next/server/app/api/migrations/list/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/migrations/list/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/migrations/sync/route.js +5 -5
- package/dist/.next/server/app/api/migrations/sync/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/migrations/sync-files/route.js +4 -4
- package/dist/.next/server/app/api/migrations/sync-files/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pro/route.js +1 -0
- package/dist/.next/server/app/api/pro/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/pro/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/pull-data/confirm/route.js +1 -1
- package/dist/.next/server/app/api/pull-data/confirm/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pull-remote/confirm/route.js +4 -4
- package/dist/.next/server/app/api/pull-remote/confirm/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pull-remote/preview/route.js +4 -4
- package/dist/.next/server/app/api/pull-remote/preview/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/push-remote/confirm/route.js +6 -6
- package/dist/.next/server/app/api/push-remote/confirm/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/push-remote/preview/route.js +6 -6
- package/dist/.next/server/app/api/push-remote/preview/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/query/route.js +9 -9
- package/dist/.next/server/app/api/query/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/schema/route.js +1 -0
- package/dist/.next/server/app/api/schema/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/schema/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/tables/[name]/import/route.js +1 -0
- package/dist/.next/server/app/api/tables/[name]/import/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/tables/[name]/import/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/tables/[name]/route.js +5 -5
- package/dist/.next/server/app/api/tables/[name]/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/tables/route.js +2 -2
- package/dist/.next/server/app/api/tables/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/time-travel/preview/route.js +1 -0
- package/dist/.next/server/app/api/time-travel/preview/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/time-travel/preview/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/time-travel/restore/route.js +1 -0
- package/dist/.next/server/app/api/time-travel/restore/route.js.nft.json +1 -0
- package/dist/.next/server/app/api/time-travel/restore/route_client-reference-manifest.js +1 -0
- package/dist/.next/server/app/api/update/route.js +1 -1
- package/dist/.next/server/app/api/update/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/index.html +5 -3
- package/dist/.next/server/app/index.rsc +6 -6
- package/dist/.next/server/app/page.js +15 -15
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app-paths-manifest.json +11 -5
- package/dist/.next/server/chunks/226.js +12 -12
- package/dist/.next/server/chunks/391.js +1 -1
- package/dist/.next/server/chunks/452.js +1 -1
- package/dist/.next/server/chunks/487.js +1 -0
- package/dist/.next/server/chunks/572.js +1 -1
- package/dist/.next/server/chunks/992.js +3 -3
- package/dist/.next/server/chunks/{638.js → 994.js} +3 -3
- package/dist/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.json +1 -1
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/pages-manifest.json +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1a258343.3b3e7ba5ba0bd0d2.js +1 -0
- package/dist/.next/static/chunks/345.8fc37569d5708622.js +1 -0
- package/dist/.next/static/chunks/480-85b6c8ae3f51b156.js +1 -0
- package/dist/.next/static/chunks/52.2cdc9bdb75e1fc2e.js +1 -0
- package/dist/.next/static/chunks/803-a2fcfbd00e6b3b38.js +1 -0
- package/dist/.next/static/chunks/{92-5f7522943fcb72a8.js → 92-a84bdac2be7c8d7a.js} +1 -1
- package/dist/.next/static/chunks/app/api/cloudflare/route-d0c1dc2a9e7dce36.js +1 -0
- package/dist/.next/static/chunks/app/api/databases/route-cd322321212797cf.js +1 -0
- package/dist/.next/static/chunks/app/api/migrations/list/route-cd710ff75b6bcd02.js +1 -0
- package/dist/.next/static/chunks/app/api/migrations/sync/route-ee522f232b9f0a9c.js +1 -0
- package/dist/.next/static/chunks/app/api/migrations/sync-files/route-79ee2c26f87d3bc7.js +1 -0
- package/dist/.next/static/chunks/app/api/pro/route-c90c1f901fc00d38.js +1 -0
- package/dist/.next/static/chunks/app/api/pull-data/confirm/route-118764086af798f8.js +1 -0
- package/dist/.next/static/chunks/app/api/pull-remote/confirm/route-2b0ade4ebfcea0bc.js +1 -0
- package/dist/.next/static/chunks/app/api/pull-remote/preview/route-342db7ea13e6f447.js +1 -0
- package/dist/.next/static/chunks/app/api/push-remote/confirm/route-b778c053bd515abd.js +1 -0
- package/dist/.next/static/chunks/app/api/push-remote/preview/route-ab090482f299f57f.js +1 -0
- package/dist/.next/static/chunks/app/api/query/route-4d21a8b1d34491f1.js +1 -0
- package/dist/.next/static/chunks/app/api/schema/route-cb17a387d6b557ad.js +1 -0
- package/dist/.next/static/chunks/app/api/tables/[name]/import/route-510472de7a5c29bd.js +1 -0
- package/dist/.next/static/chunks/app/api/tables/[name]/route-6a1fa95c303ce0de.js +1 -0
- package/dist/.next/static/chunks/app/api/tables/route-daa975df4ea8e8f8.js +1 -0
- package/dist/.next/static/chunks/app/api/time-travel/preview/route-5787d7e8f17bd539.js +1 -0
- package/dist/.next/static/chunks/app/api/time-travel/restore/route-84b64a27e831e21c.js +1 -0
- package/dist/.next/static/chunks/app/api/update/route-54ee900537982652.js +1 -0
- package/dist/.next/static/chunks/app/{layout-40ec07d04681ba81.js → layout-f0ec4d636ee0f763.js} +1 -1
- package/dist/.next/static/chunks/app/page-358bf2112802ff85.js +1 -0
- package/dist/.next/static/chunks/webpack-024900a94af4f0a7.js +1 -0
- package/dist/.next/static/css/2c165a0ede9b2442.css +3 -0
- package/dist/.next/static/css/32df9a4d493f8b0f.css +31 -0
- package/dist/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- package/dist/.next/static/zh4Fz2tbm8GRka4woRrGp/_buildManifest.js +1 -0
- package/dist/.next/static/zh4Fz2tbm8GRka4woRrGp/_ssgManifest.js +1 -0
- package/dist/.next/trace +18 -3
- package/dist/.next/types/app/api/migrations/list/route.ts +347 -0
- package/dist/.next/types/app/api/pro/route.ts +347 -0
- package/dist/.next/types/app/api/schema/route.ts +347 -0
- package/dist/.next/types/app/api/tables/[name]/import/route.ts +347 -0
- package/dist/.next/types/app/api/time-travel/preview/route.ts +347 -0
- package/dist/.next/types/app/api/time-travel/restore/route.ts +347 -0
- package/dist/app/api/databases/route.js +2 -1
- package/dist/app/api/migrations/list/route.js +137 -0
- package/dist/app/api/migrations/sync-files/route.js +2 -1
- package/dist/app/api/pro/route.js +7 -0
- package/dist/app/api/pull-remote/confirm/route.js +138 -146
- package/dist/app/api/pull-remote/preview/route.js +49 -84
- package/dist/app/api/push-remote/confirm/route.js +31 -12
- package/dist/app/api/push-remote/preview/route.js +27 -12
- package/dist/app/api/query/route.js +24 -13
- package/dist/app/api/schema/route.js +63 -0
- package/dist/app/api/tables/[name]/import/route.js +112 -0
- package/dist/app/api/tables/[name]/route.js +38 -29
- package/dist/app/api/tables/route.js +29 -16
- package/dist/app/api/time-travel/preview/route.js +122 -0
- package/dist/app/api/time-travel/restore/route.js +106 -0
- package/dist/app/page.jsx +26 -8
- package/dist/d1-studio.js +129 -23
- package/dist/lib/license.js +99 -71
- package/dist/lib/local-db.js +223 -0
- package/dist/lib/migrations.js +40 -2
- package/dist/lib/parse-sql-error.js +99 -160
- package/dist/lib/sql-operations.js +28 -10
- package/dist/lib/telemetry.js +39 -0
- package/package.json +6 -2
- package/dist/.next/.next/static/FEsQ9jwPUQv5A3fwg6Opl/_buildManifest.js +0 -1
- package/dist/.next/.next/static/Y9mYu4WBghepP5oT_3OdR/_buildManifest.js +0 -1
- package/dist/.next/.next/static/ae3gNmoSGm-R5LJC4UagI/_buildManifest.js +0 -1
- package/dist/.next/.next/static/bKfUJeuvAQlBmR3TjrfkH/_buildManifest.js +0 -1
- package/dist/.next/.next/static/chunks/576-18a2209e1ed26aad.js +0 -1
- package/dist/.next/.next/static/chunks/735-b885dfec6353171d.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/cloudflare/route-b77846f372b01f38.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/databases/route-407794f8145d9a0b.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/migrations/sync/route-9f480f5590369a8f.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/migrations/sync-files/route-92010db279b4dd8e.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/pull-data/confirm/route-a02fe6d3cdd0a535.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/pull-remote/confirm/route-f401a03507d1da50.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/pull-remote/preview/route-3c53814b5cb8b6b0.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/push-remote/confirm/route-8f359249e907c63b.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/push-remote/preview/route-b51bf94f39c17a9d.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/query/route-87bae2d4aebaf859.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/tables/[name]/route-d20ca163b9c03e7c.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/tables/route-0f46f911562abcdf.js +0 -1
- package/dist/.next/.next/static/chunks/app/api/update/route-14edc1917760bce0.js +0 -1
- package/dist/.next/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +0 -1
- package/dist/.next/.next/static/chunks/app/page-f2bc307c0d8acdaa.js +0 -1
- package/dist/.next/.next/static/chunks/webpack-c76ac1e586b2802a.js +0 -1
- package/dist/.next/.next/static/css/7c16f57d325d0d7d.css +0 -3
- package/dist/.next/.next/static/ejYPqJ2kVicVp5EFWOZIC/_buildManifest.js +0 -1
- package/dist/.next/.next/static/gABGrAoO8IPArDo_Ns_7g/_buildManifest.js +0 -1
- package/dist/.next/.next/static/gh-QfIUVo4FTTduYCVKT6/_buildManifest.js +0 -1
- package/dist/.next/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
- package/dist/.next/.next/static/thaCy2qVeNqYYhdayr13C/_buildManifest.js +0 -1
- package/dist/.next/.next/static/ybCx6L6gHqtODbKmlhU-d/_buildManifest.js +0 -1
- package/dist/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/.next/static/IX-QLbm7scYnyqWeeimal/_buildManifest.js +0 -1
- package/dist/.next/static/chunks/576-18a2209e1ed26aad.js +0 -1
- package/dist/.next/static/chunks/735-b885dfec6353171d.js +0 -1
- package/dist/.next/static/chunks/app/api/cloudflare/route-b77846f372b01f38.js +0 -1
- package/dist/.next/static/chunks/app/api/databases/route-407794f8145d9a0b.js +0 -1
- package/dist/.next/static/chunks/app/api/migrations/sync/route-9f480f5590369a8f.js +0 -1
- package/dist/.next/static/chunks/app/api/migrations/sync-files/route-92010db279b4dd8e.js +0 -1
- package/dist/.next/static/chunks/app/api/pull-data/confirm/route-a02fe6d3cdd0a535.js +0 -1
- package/dist/.next/static/chunks/app/api/pull-remote/confirm/route-f401a03507d1da50.js +0 -1
- package/dist/.next/static/chunks/app/api/pull-remote/preview/route-3c53814b5cb8b6b0.js +0 -1
- package/dist/.next/static/chunks/app/api/push-remote/confirm/route-8f359249e907c63b.js +0 -1
- package/dist/.next/static/chunks/app/api/push-remote/preview/route-b51bf94f39c17a9d.js +0 -1
- package/dist/.next/static/chunks/app/api/query/route-87bae2d4aebaf859.js +0 -1
- package/dist/.next/static/chunks/app/api/tables/[name]/route-d20ca163b9c03e7c.js +0 -1
- package/dist/.next/static/chunks/app/api/tables/route-0f46f911562abcdf.js +0 -1
- package/dist/.next/static/chunks/app/api/update/route-14edc1917760bce0.js +0 -1
- package/dist/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +0 -1
- package/dist/.next/static/chunks/webpack-c76ac1e586b2802a.js +0 -1
- package/dist/.next/static/css/7c16f57d325d0d7d.css +0 -3
- package/dist/.next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
- /package/dist/.next/.next/static/{FEsQ9jwPUQv5A3fwg6Opl → -OO4tE7EKr8o62Bne-ODo}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{Y9mYu4WBghepP5oT_3OdR → 3kAeIJC56X7aw1Fk5_OXO}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{ae3gNmoSGm-R5LJC4UagI → J8r9W6xxmYYvuKehItNuW}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{bKfUJeuvAQlBmR3TjrfkH → ZmKZbpam0G_d3SphfZPJ7}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{ejYPqJ2kVicVp5EFWOZIC → arc9h7hbaQzL1Dl0iuVrT}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/chunks/{4bd1b696-8c908eb707f85a27.js → 4bd1b696-124ea104c06f6cea.js} +0 -0
- /package/dist/.next/.next/static/chunks/{517-3b698a5d3da06ff7.js → 517-c876ce2f00030cd0.js} +0 -0
- /package/dist/.next/.next/static/chunks/{692-ede418e1d28a1394.js → 692-9e59d546afd11ec3.js} +0 -0
- /package/dist/.next/.next/static/chunks/app/_not-found/{page-b786c3dd79ad15a5.js → page-3e24b81707d98126.js} +0 -0
- /package/dist/.next/.next/static/{gABGrAoO8IPArDo_Ns_7g → f_PVCmmSeM5SwW3M1tw7Q}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{gh-QfIUVo4FTTduYCVKT6 → fiesjBWbrmSSyLf4biwrX}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{thaCy2qVeNqYYhdayr13C → ft39e6W6vSgUL7peRo7pE}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{ybCx6L6gHqtODbKmlhU-d → u7ssdTycF4iQ-w-pQZhxg}/_ssgManifest.js +0 -0
- /package/dist/.next/{static/IX-QLbm7scYnyqWeeimal → .next/static/v-i2YsOGT890zutOSiqqK}/_ssgManifest.js +0 -0
- /package/dist/.next/static/chunks/{4bd1b696-8c908eb707f85a27.js → 4bd1b696-124ea104c06f6cea.js} +0 -0
- /package/dist/.next/static/chunks/{517-3b698a5d3da06ff7.js → 517-c876ce2f00030cd0.js} +0 -0
- /package/dist/.next/static/chunks/{692-ede418e1d28a1394.js → 692-9e59d546afd11ec3.js} +0 -0
- /package/dist/.next/static/chunks/app/_not-found/{page-b786c3dd79ad15a5.js → page-3e24b81707d98126.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{4576:(e,t,a)=>{Promise.resolve().then(a.bind(a,2624))},2624:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>tt});var s=a(5155),l=a(2115),n=a(2398),r=a(1680),i=a(7443),o=a(2591),c=a(2783),d=a(4031);let u=l.forwardRef((e,t)=>{let{className:a,type:l,...n}=e;return(0,s.jsx)("input",{type:l,className:(0,d.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),ref:t,...n})});u.displayName="Input";var m=a(1027);let h=(0,m.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),x=l.forwardRef((e,t)=>{let{className:a,variant:l,...n}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,d.cn)(h({variant:l}),a),...n})});x.displayName="Alert",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("h5",{ref:t,className:(0,d.cn)("mb-1 font-medium leading-none tracking-tight",a),...l})}).displayName="AlertTitle";let f=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,d.cn)("text-sm [&_p]:leading-relaxed",a),...l})});f.displayName="AlertDescription";var p=a(33),g=a(6217),N=a(689);let v=g.bL;g.l9;let j=g.ZL;g.bm;let b=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.hJ,{ref:t,className:(0,d.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...l})});b.displayName=g.hJ.displayName;let w=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(j,{children:[(0,s.jsx)(b,{}),(0,s.jsxs)(g.UC,{ref:t,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...n,children:[l,(0,s.jsxs)(g.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(N.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});w.displayName=g.UC.displayName;let y=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};y.displayName="DialogHeader";let C=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};C.displayName="DialogFooter";let E=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.hE,{ref:t,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",a),...l})});E.displayName=g.hE.displayName;let S=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.VY,{ref:t,className:(0,d.cn)("text-sm text-muted-foreground",a),...l})});S.displayName=g.VY.displayName;var R=a(2317);let T=(0,m.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),A=l.forwardRef((e,t)=>{let{className:a,variant:l,size:n,asChild:r=!1,...i}=e,o=r?R.DX:"button";return(0,s.jsx)(o,{className:(0,d.cn)(T({variant:l,size:n,className:a})),ref:t,...i})});function k(e){let{open:t,onClose:a,onSubmit:n}=e,[r,i]=(0,l.useState)(""),[o,d]=(0,l.useState)(""),[m,h]=(0,l.useState)(""),[p,g]=(0,l.useState)(!1),N=async e=>{e.preventDefault(),h(""),g(!0);try{await n({accountId:r,apiToken:o}),localStorage.setItem("cf_credentials",JSON.stringify({accountId:r,apiToken:o})),a()}catch(e){h(e.message)}finally{g(!1)}};return(0,s.jsx)(v,{open:t,onOpenChange:a,children:(0,s.jsxs)(w,{className:"sm:max-w-md",children:[(0,s.jsxs)(y,{children:[(0,s.jsx)(E,{children:"Connect to Cloudflare"}),(0,s.jsx)(S,{children:"Enter your Cloudflare credentials to push your database to production."})]}),(0,s.jsxs)("form",{onSubmit:N,className:"space-y-4 mt-4",children:[m&&(0,s.jsx)(x,{variant:"destructive",children:(0,s.jsx)(f,{children:m})}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:"Account ID"}),(0,s.jsx)(u,{placeholder:"Your Cloudflare Account ID",value:r,onChange:e=>i(e.target.value),required:!0})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:"API Token"}),(0,s.jsx)(u,{type:"password",placeholder:"Your D1 Database API Token",value:o,onChange:e=>d(e.target.value),required:!0})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,s.jsx)(A,{type:"button",variant:"outline",onClick:a,children:"Cancel"}),(0,s.jsxs)(A,{type:"submit",disabled:p,children:[p&&(0,s.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Connect"]})]})]})]})})}A.displayName="Button";var _=a(6528),O=a(1868);let L=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(O.bL,{ref:t,className:(0,d.cn)("relative overflow-hidden",a),...n,children:[(0,s.jsx)(O.LM,{className:"h-full w-full rounded-[inherit]",children:l}),(0,s.jsx)(I,{}),(0,s.jsx)(O.OK,{})]})});L.displayName=O.bL.displayName;let I=l.forwardRef((e,t)=>{let{className:a,orientation:l="vertical",...n}=e;return(0,s.jsx)(O.VM,{ref:t,orientation:l,className:(0,d.cn)("flex touch-none select-none transition-colors","vertical"===l&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===l&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...n,children:(0,s.jsx)(O.lr,{className:"relative flex-1 rounded-full bg-border"})})});I.displayName=O.VM.displayName;let U=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:t,className:(0,d.cn)("w-full caption-bottom text-sm",a),...l})})});U.displayName="Table";let P=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("thead",{ref:t,className:(0,d.cn)("[&_tr]:border-b",a),...l})});P.displayName="TableHeader";let D=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tbody",{ref:t,className:(0,d.cn)("[&_tr:last-child]:border-0",a),...l})});D.displayName="TableBody",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tfoot",{ref:t,className:(0,d.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...l})}).displayName="TableFooter";let F=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tr",{ref:t,className:(0,d.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...l})});F.displayName="TableRow";let M=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("th",{ref:t,className:(0,d.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...l})});M.displayName="TableHead";let z=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("td",{ref:t,className:(0,d.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...l})});z.displayName="TableCell",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("caption",{ref:t,className:(0,d.cn)("mt-4 text-sm text-muted-foreground",a),...l})}).displayName="TableCaption";let Q=function(e){let{preview:t=[],onConfirm:a,onCancel:n,isConfirming:r,error:i,isLoading:o,success:u}=e,[m,h]=(0,l.useState)(!0);if(o)return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4 shadow-lg bg-background",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(c.A,{className:"h-5 w-5 text-neutral-600 shrink-0 mt-0.5 animate-spin"}),(0,s.jsx)("div",{className:"flex-1 space-y-3",children:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"font-medium text-neutral-800",children:"Preparing Push Migration"}),(0,s.jsx)("p",{className:"text-sm text-neutral-600",children:"Checking local migrations..."})]})})]})})});if(!(null==t?void 0:t.length))return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4",children:(0,s.jsx)("p",{className:"text-sm font-medium",children:"No migrations to preview"})})});let x=t.filter(e=>"will be applied"===e.action).length,f=t.filter(e=>"skipped"===e.action).length;t.filter(e=>"applied"===e.action).length;let p=e=>{switch(e){case"will be applied":return"\uD83D\uDD52️";case"applied":case"skipped":return"✅";case"failed":return"❌";default:return""}};return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:(0,d.cn)("rounded-lg border p-4 shadow-lg",i?"bg-destructive/15":"bg-background"),children:(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h5",{className:"font-medium text-neutral-900",children:"Push Migration Preview"}),(0,s.jsx)("button",{onClick:n,className:"text-neutral-500 hover:text-neutral-900 p-1 rounded-md hover:bg-neutral-100",children:(0,s.jsx)(N.A,{className:"h-4 w-4"})})]}),(0,s.jsxs)("p",{className:"text-sm text-neutral-700",children:[x," migration(s) \uD83D\uDD52️ pending, ",f," to ✅ skip"]}),i?(0,s.jsx)("p",{className:"text-sm text-destructive font-medium mt-1",children:i.message}):u&&(0,s.jsx)("p",{className:"text-sm text-green-700 font-medium mt-1",children:u})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("button",{onClick:()=>h(!m),className:"text-sm font-medium hover:underline",children:m?"Hide Details":"Show Details"}),m&&(0,s.jsx)(L,{className:"h-[480px] mt-2 rounded border border-neutral-200",children:(0,s.jsxs)(U,{children:[(0,s.jsx)(P,{children:(0,s.jsxs)(F,{children:[(0,s.jsx)(M,{children:"Migration"}),(0,s.jsx)(M,{className:"text-center w-24",children:"Status"})]})}),(0,s.jsx)(D,{children:t.map((e,t)=>(0,s.jsxs)(F,{children:[(0,s.jsx)(z,{className:"font-mono text-xs",children:e.name}),(0,s.jsx)(z,{className:"text-center align-middle",children:p(e.action)})]},t))})]})})]}),(0,s.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,s.jsx)(A,{onClick:a,disabled:r||0===x,className:"flex-1",children:r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Confirming..."]}):"Confirm Push"}),(0,s.jsx)(A,{variant:"outline",onClick:n,disabled:r,className:"flex-1",children:"Cancel"})]})]})})})},V=function(e){let{preview:t=[],onConfirm:a,onCancel:n,onDataPull:r,isConfirming:i,isDataPulling:o,error:u,isLoading:m,success:h}=e;console.log("PullPreviewToast rendered with:",{previewLength:t.length,isConfirming:i,error:u,isLoading:m}),(0,l.useEffect)(()=>(console.log("PullPreviewToast mounted/updated"),()=>console.log("PullPreviewToast unmounted")),[]);let[x,f]=(0,l.useState)(!1);if(m)return console.log("Rendering loading state"),(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4 shadow-lg bg-background",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(c.A,{className:"h-5 w-5 text-neutral-600 shrink-0 mt-0.5 animate-spin"}),(0,s.jsx)("div",{className:"flex-1 space-y-3",children:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"font-medium text-neutral-800",children:"Preparing Pull Migration"}),(0,s.jsx)("p",{className:"text-sm text-neutral-600",children:"Checking remote migrations..."})]})})]})})});if(!(null==t?void 0:t.length))return console.log("No preview data available"),(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border bg-destructive/15 p-4",children:(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)("p",{className:"text-sm font-medium text-destructive",children:"No preview data available"})})})});let p=t.filter(e=>(e.migration||e.name||"").endsWith(".sql")),g=p.length;console.log("Migration stats:",{totalMigrations:g});let v=h&&!o&&!u;return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:(0,d.cn)("rounded-lg border p-4 shadow-lg",u?"bg-destructive/15":"bg-background"),children:(0,s.jsx)("div",{className:"flex items-start gap-x-1",children:(0,s.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h5",{className:(0,d.cn)("font-medium",u?"text-destructive":"text-neutral-900"),children:u?"Pull Migration Error":"Pull Migration Preview"}),(0,s.jsx)("button",{onClick:n,className:"text-neutral-500 hover:text-neutral-900 p-1 rounded-md hover:bg-neutral-100",children:(0,s.jsx)(N.A,{className:"h-4 w-4"})})]}),(0,s.jsx)("p",{className:(0,d.cn)("text-sm",u?"text-destructive/80":"text-neutral-700"),children:"".concat(g," migration(s) will be applied")}),u&&(0,s.jsx)("p",{className:"text-sm text-destructive font-medium mt-1",children:u.message}),h&&(0,s.jsx)("p",{className:"text-sm text-green-700 font-medium mt-1",children:h})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("button",{onClick:()=>f(!x),className:"text-sm font-medium hover:underline",children:x?"Hide Details":"Show Details"}),x&&(0,s.jsx)(L,{className:"h-[480px] mt-2 rounded border border-neutral-200",children:(0,s.jsxs)("div",{className:"w-full",children:[(0,s.jsx)("div",{className:"bg-neutral-50 border-b px-4 py-2",children:(0,s.jsx)("div",{className:"text-sm font-medium text-neutral-600",children:"Migration"})}),(0,s.jsx)("div",{children:p.map((e,t)=>(0,s.jsx)("div",{className:"px-4 py-2 border-b last:border-0",children:(0,s.jsx)("div",{className:"font-mono text-xs",children:e.migration||e.name})},t))})]})})]}),(0,s.jsx)("div",{className:"flex flex-col gap-2 pt-1",children:(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(A,{onClick:a,disabled:i,className:"flex-1 ".concat(i?"cursor-not-allowed opacity-50":""),children:i?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Confirming..."]}):"Confirm Pull"}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col gap-2",children:[(0,s.jsx)(A,{onClick:r,disabled:!v,variant:"outline",className:"w-full ".concat(v?"":"cursor-not-allowed opacity-50"),children:o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Syncing remote data..."]}):"Sync remote data"}),(0,s.jsx)("p",{className:"text-xs text-neutral-500 text-center",children:"75 records per table"})]})]})})]})})})})};var K=a(3409),J=a(2645),q=a(2488),Y=a(7193);let X=K.bL;K.YJ;let H=K.WT,W=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(K.l9,{ref:t,className:(0,d.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...n,children:[l,(0,s.jsx)(K.In,{asChild:!0,children:(0,s.jsx)(J.A,{className:"h-4 w-4 opacity-50"})})]})});W.displayName=K.l9.displayName;let B=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.PP,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...l,children:(0,s.jsx)(q.A,{className:"h-4 w-4"})})});B.displayName=K.PP.displayName;let G=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.wn,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...l,children:(0,s.jsx)(J.A,{className:"h-4 w-4"})})});G.displayName=K.wn.displayName;let Z=l.forwardRef((e,t)=>{let{className:a,children:l,position:n="popper",...r}=e;return(0,s.jsx)(K.ZL,{children:(0,s.jsxs)(K.UC,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:n,...r,children:[(0,s.jsx)(B,{}),(0,s.jsx)(K.LM,{className:(0,d.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:l}),(0,s.jsx)(G,{})]})})});Z.displayName=K.UC.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.JU,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-sm font-semibold",a),...l})}).displayName=K.JU.displayName;let $=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(K.q7,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(K.VF,{children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})}),(0,s.jsx)(K.p4,{children:l})]})});$.displayName=K.q7.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.wv,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...l})}).displayName=K.wv.displayName;var ee=a(2303),et=a(319),ea=a(5942);function es(e){let{value:t,onValueChange:a,isLoading:l,disabled:n,showPreview:r}=e;return(0,s.jsxs)(X,{value:t,onValueChange:a,disabled:n||l||r,children:[(0,s.jsx)(W,{className:"w-full bg-white border-neutral-200 font-medium",children:(0,s.jsx)("div",{className:"flex items-center gap-1 text-sm",children:l||r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,s.jsx)("span",{className:"text-muted-foreground font-medium",children:"pull"===t?"Pulling...":"syncing"===t?"Syncing...":"production"===t?"Pushing...":"Loading..."})]}):(0,s.jsx)(H,{placeholder:"Environment",className:"w-full"})})}),(0,s.jsxs)(Z,{children:[(0,s.jsx)($,{value:"local",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(ee.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Local"})]})}),(0,s.jsx)($,{value:"pull",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(et.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Pull remote"})]})}),(0,s.jsx)($,{value:"production",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(ea.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Push remote"})]})})]})]})}function el(e){var t;let{className:a,currentView:d,onNavigate:m,onTableSelect:h}=e,{tables:g,refreshTables:N,isLoading:v,error:j}=(0,p.t)(),[b,w]=(0,l.useState)([]),[y,C]=(0,l.useState)(""),[E,S]=(0,l.useState)("local"),[R,T]=(0,l.useState)(!1),[A,O]=(0,l.useState)(null),[L,I]=(0,l.useState)(!1),{isConnecting:U,isPushing:P,showPreview:D,connectToCloudflare:F,pushToRemote:M,pullFromRemote:z,pullToRemotePreview:K,validateStoredCredentials:J,PreviewUI:q}=function(){var e,t;let[a,n]=(0,l.useState)(!1),[r,i]=(0,l.useState)(!1),[o,c]=(0,l.useState)(!1),[d,u]=(0,l.useState)(!1),[m,h]=(0,l.useState)(null),[x,f]=(0,l.useState)(null),[g,N]=(0,l.useState)(null),[v,j]=(0,l.useState)(null),[b,w]=(0,l.useState)("local"),{toast:y}=(0,_.dj)(),{refreshTables:C}=(0,p.t)(),E=()=>{u(!1),h(null),f(null),N(null),j(null)},S=async()=>{let e=localStorage.getItem("cf_credentials");if(!e)return null;try{let t=JSON.parse(e),a=await fetch("/api/cloudflare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error("Invalid stored credentials");let s=await a.json();return{...t,databaseId:s.database.id}}catch(e){return console.error("Failed to validate stored credentials:",e),localStorage.removeItem("cf_credentials"),null}},R=async()=>{try{N("push"),u(!0),i(!0),f(null),j(null),h({preview:[]});let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/push-remote/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to generate preview")}h(s.details.details)}catch(e){console.error("Push to remote preview failed:",e),f(e),y({title:"Preview Failed",description:e.message||"Failed to generate preview",variant:"destructive"})}finally{i(!1)}},T=async()=>{try{i(!0),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/push-remote/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm push")}h(e=>({...e,preview:e.preview.map(e=>({...e,action:"will be applied"===e.action?"applied":e.action}))})),j("Applied ".concat(s.details.applied," migration(s), skipped ").concat(s.details.skipped,".")),w("local")}catch(e){console.error("Push to remote confirm failed:",e),f(e),w("local")}finally{i(!1)}},A=async()=>{try{N("pull"),u(!0),i(!0),f(null),j(null),h({preview:[]});let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-remote/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to generate pull preview")}h(s.details)}catch(e){console.error("Pull to remote preview failed:",e),f(e),y({title:"Preview Failed",description:e.message||"Failed to generate pull preview",variant:"destructive"})}finally{i(!1)}},k=async()=>{try{i(!0),w("pull"),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-remote/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm pull")}j("Pull migrations applied successfully."),h(e=>({...e,preview:e.preview.map(e=>({...e,action:"will be applied"===e.action?"applied":e.action}))})),await C()}catch(e){console.error("Pull to remote confirm failed:",e),f(e)}finally{i(!1),w("local")}},O=async()=>{try{c(!0),w("syncing"),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-data/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm data pull")}j("Remote data synced successfully."),await C()}catch(e){console.error("Data pull confirm failed:",e),f(e)}finally{c(!1),w("local")}};async function L(e){try{n(!0);let t=await fetch("/api/cloudflare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json();if(!t.ok)throw Error(a.error||"Failed to connect to Cloudflare");localStorage.setItem("cf_credentials",JSON.stringify({...e,databaseId:a.database.id})),y({title:"Connected to Cloudflare",description:"Connected to database: ".concat(a.database.name),variant:"default"})}catch(e){throw y({title:"Connection Failed",description:e.message||"Failed to connect to Cloudflare",variant:"destructive"}),e}finally{n(!1)}}let I=d&&("pull"===g?(0,s.jsx)(V,{preview:(null==m?void 0:m.preview)||[],onConfirm:k,onDataPull:O,onCancel:E,isConfirming:r,isDataPulling:o,error:x,success:v,isLoading:r&&!(null==m?void 0:null===(e=m.preview)||void 0===e?void 0:e.length)}):(0,s.jsx)(Q,{preview:(null==m?void 0:m.preview)||[],onConfirm:T,onCancel:E,isConfirming:r,error:x,success:v,isLoading:r&&!(null==m?void 0:null===(t=m.preview)||void 0===t?void 0:t.length)}));return{isConnecting:a,isPushing:r,isDataPulling:o,showPreview:d,previewError:x,environment:b,setEnvironment:w,pushToRemote:R,pullToRemotePreview:A,confirmPull:k,confirmDataPull:O,connectToCloudflare:L,validateStoredCredentials:S,PreviewUI:I}}(),Y=(0,l.useMemo)(()=>{let e=[...(null==g?void 0:g.filter(e=>e.toLowerCase().includes(y.toLowerCase())))||[]].sort((e,t)=>e.localeCompare(t)),t=e.indexOf("d1_migrations");return -1!==t&&(e.splice(t,1),e.unshift("d1_migrations")),e},[g,y]),X=async e=>{try{I(!0),O(e),h(e)}catch(e){console.error("Error selecting table:",e)}finally{I(!1)}},H=async e=>{if(console.log("Environment change triggered:",e),S(e),"production"===e)try{if(!await J()){T(!0);return}await M()}catch(e){console.error("Environment change failed:",e),S("local")}else if("pull"===e)try{if(!await J()){T(!0);return}await K()}catch(e){console.error("Pull from remote failed:",e),S("local")}else S(e)};return(0,l.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/databases"),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to fetch databases");w(t.databases||[])}catch(e){console.error("Error fetching databases:",e)}})(),N()},[N]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("aside",{className:"".concat(a," top-[var(--banner-height,0px)] left-0 h-[calc(100vh-var(--banner-height,0px))] bg-neutral-50 p-4"),children:[(0,s.jsxs)("div",{className:"flex flex-col h-full font-sans",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(n.A,{className:"h-5 w-5"}),(0,s.jsx)("span",{className:"font-mono font-bold text-sm",children:"d1-studio"})]}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:"v0.2.11 • Local"})]}),j&&(0,s.jsxs)(x,{variant:"destructive",className:"mb-4",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsx)(f,{className:"text-sm ml-2",children:j})]}),(0,s.jsxs)("div",{className:"mb-2",children:[(0,s.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Database name"}),(0,s.jsx)("div",{className:"font-semibold text-sm",children:(null===(t=b[0])||void 0===t?void 0:t.database_name)||"No database found"})]}),(0,s.jsx)("div",{className:"mb-6",children:(0,s.jsx)(es,{className:"w-full",value:E,onValueChange:H,isLoading:P,disabled:U,showPreview:D})}),(0,s.jsx)("div",{className:"mb-3",children:(0,s.jsxs)("button",{className:"w-full flex items-center gap-x-1 border rounded-md text-sm font-medium transition-colors px-2 py-2\n ".concat("sql-editor"===d?"bg-neutral-900 text-white":"bg-white hover:bg-neutral-100"),onClick:()=>m("sql-editor"),disabled:L,children:[(0,s.jsx)(i.A,{className:"h-[16px] w-[16px]"}),"SQL editor"]})}),(0,s.jsxs)("div",{className:"relative mb-3 bg-white",children:[(0,s.jsx)(o.A,{className:"absolute left-2 top-2.5 h-4 w-4 text-neutral-500"}),(0,s.jsx)(u,{placeholder:"Search tables",value:y,onChange:e=>C(e.target.value),className:"pl-7"})]}),(0,s.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-1 flex-none",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium text-muted-foreground",children:["Tables ",(null==g?void 0:g.length)?"(".concat(g.length,")"):""]}),v&&(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,s.jsx)("div",{className:"overflow-y-auto flex-1",children:(0,s.jsxs)("div",{className:"pr-2 pb-4",children:[" ",!v&&0===Y.length&&(0,s.jsx)("div",{className:"text-sm font-medium text-muted-foreground px-2 py-2",children:y?"No matching tables found":j?"Error loading tables":"No tables available"}),Y.map(e=>(0,s.jsx)("button",{className:"w-full text-left text-sm font-medium rounded-md transition-colors px-2 py-2\n ".concat("table-view"===d&&A===e?"bg-[#F0F0F0] text-neutral-900 font-semibold":"text-neutral-700 hover:bg-[#F2F2F2]","\n ").concat(L&&"opacity-50 cursor-not-allowed"),onClick:()=>X(e),disabled:L,children:e},e))]})})]})]}),(0,s.jsx)(k,{open:R,onClose:()=>{T(!1),S("local")},onSubmit:F})]}),q]})}var en=a(707),er=a(1170),ei=a(3320),eo=a(5377);function ec(e){let{results:t}=e;return t&&Array.isArray(t)?(0,s.jsxs)("div",{className:"text-xs font-medium text-neutral-900 flex items-center gap-2 mb-2",children:[t.length," ",1===t.length?"row":"rows"," returned"]}):null}function ed(e){var t;let{error:a}=e;console.debug("SQLErrorDisplay - Received error prop:",a);let l=a&&"string"==typeof a.message?a:{message:"An unknown error occurred",details:{}};return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-neutral-700 text-sm",children:l.message}),(null===(t=l.details)||void 0===t?void 0:t.stderr)&&(0,s.jsx)("pre",{className:"mt-2 p-2 text-xs text-red-500 whitespace-pre-wrap",children:l.details.stderr})]})}function eu(e){let{query:t,results:a}=e;if(!(null==a?void 0:a.length))return(0,s.jsx)("div",{className:"text-sm text-neutral-500",children:"No results to display."});let l=null==t?void 0:t.trim().toLowerCase().startsWith("pragma table_info"),n=l?["Column Name","Type","Not Null","Default Value","Primary Key"]:Object.keys(a[0]),r=l?a.map(e=>({"Column Name":e.name,Type:e.type,"Not Null":1===e.notnull?"YES":"NO","Default Value":e.dflt_value||"(null)","Primary Key":1===e.pk?"YES":"NO"})):a;return(0,s.jsxs)("div",{className:"flex flex-col h-full",children:[(0,s.jsx)(ec,{results:r}),(0,s.jsx)("div",{className:"flex-1 overflow-auto border rounded-lg",children:(0,s.jsx)("div",{className:"min-w-full",children:(0,s.jsxs)(U,{children:[(0,s.jsx)(P,{children:(0,s.jsx)(F,{className:"bg-muted/50",children:n.map(e=>(0,s.jsx)(M,{className:"font-mono text-xs font-medium text-muted-foreground",children:e},e))})}),(0,s.jsx)(D,{children:r.map((e,t)=>(0,s.jsx)(F,{className:"hover:bg-muted/50",children:n.map(a=>{let l=e[a],n=null===l?"(null)":String(l);return(0,s.jsx)(z,{className:"font-monospace text-xs whitespace-nowrap",children:n},"".concat(t,"-").concat(a))})},t))})]})})})]})}var em=a(4471),eh=a(5325),ex=a(1703);let ef=em.bL,ep=em.l9;em.YJ,em.ZL,em.Pb,em.z6,l.forwardRef((e,t)=>{let{className:a,inset:l,children:n,...r}=e;return(0,s.jsxs)(em.ZP,{ref:t,className:(0,d.cn)("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",l&&"pl-8",a),...r,children:[n,(0,s.jsx)(eh.A,{className:"ml-auto"})]})}).displayName=em.ZP.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(em.G5,{ref:t,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",a),...l})}).displayName=em.G5.displayName;let eg=l.forwardRef((e,t)=>{let{className:a,sideOffset:l=4,...n}=e;return(0,s.jsx)(em.ZL,{children:(0,s.jsx)(em.UC,{ref:t,sideOffset:l,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",a),...n})})});eg.displayName=em.UC.displayName;let eN=l.forwardRef((e,t)=>{let{className:a,inset:l,...n}=e;return(0,s.jsx)(em.q7,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",l&&"pl-8",a),...n})});eN.displayName=em.q7.displayName,l.forwardRef((e,t)=>{let{className:a,children:l,checked:n,...r}=e;return(0,s.jsxs)(em.H_,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:n,...r,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(em.VF,{children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})}),l]})}).displayName=em.H_.displayName,l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(em.hN,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(em.VF,{children:(0,s.jsx)(ex.A,{className:"h-2 w-2 fill-current"})})}),l]})}).displayName=em.hN.displayName,l.forwardRef((e,t)=>{let{className:a,inset:l,...n}=e;return(0,s.jsx)(em.JU,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-sm font-semibold",l&&"pl-8",a),...n})}).displayName=em.JU.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(em.wv,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...l})}).displayName=em.wv.displayName;let ev={SYNTAX_ERROR:"SYNTAX_ERROR",EXECUTION_ERROR:"EXECUTION_ERROR",TABLE_NOT_FOUND:"TABLE_NOT_FOUND",TABLE_EXISTS:"TABLE_EXISTS",FOREIGN_KEY_ERROR:"FOREIGN_KEY_ERROR",UNIQUE_CONSTRAINT_ERROR:"UNIQUE_CONSTRAINT_ERROR",NOT_NULL_CONSTRAINT_ERROR:"NOT_NULL_CONSTRAINT_ERROR",CHECK_CONSTRAINT_ERROR:"CHECK_CONSTRAINT_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"};function ej(e){if(console.debug("parseSQLError - Received error:",e),!e)return console.debug("parseSQLError - error is null or undefined."),{type:ev.UNKNOWN_ERROR,message:"An unknown error occurred",details:{}};let t="",a=null,s=null,l=e.cmd||e.details&&e.details.command;if(l){let e=l.match(RegExp('--command="(.+?)"',"s"));e&&console.debug("parseSQLError - Extracted original query:",s=e[1].replace(/\\n/g,"\n"))}let n=e.stderr||e.details&&e.details.stderr;if(n){let r=n.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,"");if(console.debug("parseSQLError - Cleaned stderr:",r),r.includes("env: node: No such file or directory"))return console.debug("parseSQLError - Detected 'env: node: No such file or directory' error."),{type:ev.EXECUTION_ERROR,message:e.message||"Execution error: env: node: No such file or directory",details:{originalQuery:s,stderr:r}};let i=r.match(/near "([^"]+)": syntax error at offset (\d+)/);if(i){let[e,l,n]=i;return a=parseInt(n,10),t='Syntax error near "'.concat(l,'" at position ').concat(a),console.debug("parseSQLError - Syntax error detected:",{near:l,offset:a}),{type:ev.SYNTAX_ERROR,message:t,details:{originalQuery:s,errorLocation:{offset:a,near:l},stderr:r}}}if(r.includes("UNIQUE constraint failed")){let[e,t,a]=r.match(/UNIQUE constraint failed: (\w+)\.(\w+)/)||[];return console.debug("parseSQLError - UNIQUE constraint error detected:",{table:t,column:a}),{type:ev.UNIQUE_CONSTRAINT_ERROR,message:"Unique constraint violation updating ".concat(t,".").concat(a),details:{originalQuery:s,stderr:r}}}if(r.includes("NOT NULL constraint failed")){let[e,t,a]=r.match(/NOT NULL constraint failed: (\w+)\.(\w+)/)||[];return console.debug("parseSQLError - NOT NULL constraint error detected:",{table:t,column:a}),{type:ev.NOT_NULL_CONSTRAINT_ERROR,message:"NOT NULL constraint violation updating ".concat(t,".").concat(a),details:{originalQuery:s,stderr:r}}}if(r.includes("CHECK constraint failed")){let[e,t]=r.match(/CHECK constraint failed: (\w+)/)||[];return console.debug("parseSQLError - CHECK constraint error detected:",{constraintName:t}),{type:ev.CHECK_CONSTRAINT_ERROR,message:"Check constraint violation updating ".concat(t),details:{originalQuery:s,stderr:r}}}if(r.includes("FOREIGN KEY constraint failed")){console.debug("parseSQLError - FOREIGN KEY constraint error detected.");let e=/--command="([^"]+)"/.exec(l||""),t=e?e[1]:null,a={};if(t){let e=/UPDATE\s+(\w+)\s+SET\s+(\w+)\s*=/.exec(t);e&&(a={table:e[1],column:e[2]})}let s=a.table?"Foreign key constraint violation updating ".concat(a.table,".").concat(a.column):"Foreign key constraint violation";return{type:ev.FOREIGN_KEY_ERROR,message:s,details:{...a,originalQuery:t,stderr:r}}}if(r.includes("no such table")){let[e,t]=r.match(/no such table: (\w+)/)||[];return console.debug("parseSQLError - Table not found error detected:",{table:t}),{type:ev.TABLE_NOT_FOUND,message:"Table not found: ".concat(t),details:{originalQuery:s,stderr:r}}}if(r.includes("already exists")){let[e,t]=r.match(/table (\w+) already exists/)||[];return console.debug("parseSQLError - Table exists error detected:",{table:t}),{type:ev.TABLE_EXISTS,message:"Table already exists: ".concat(t),details:{originalQuery:s,stderr:r}}}return console.debug("parseSQLError - No specific error match found. Using fallback for execution error."),{type:ev.EXECUTION_ERROR,message:e.message||"Failed to execute SQL command",details:{originalQuery:s,stderr:r}}}return console.debug("parseSQLError - No stderr available; using default error handling."),{type:ev.UNKNOWN_ERROR,message:e.message||"An unknown error occurred",details:{}}}let eb={"Show Tables":"SELECT name\n FROM sqlite_master \n WHERE type='table' \n AND name NOT LIKE 'sqlite_%';","Table Schema":"-- Table Schema\n-- Replace table_name with your table name\nPRAGMA table_info(table_name);","Table Indexes":"-- Table Indexes\n-- Replace table_name with your table name\nSELECT \n m.name as table_name,\n i.name as index_name,\n i.sql as index_definition\nFROM sqlite_master m\nJOIN sqlite_master i ON m.name = i.tbl_name\nWHERE m.type = 'table'\nAND i.type = 'index'\nAND m.name = 'table_name';","Foreign Keys":"-- Foreign Key Information\n-- Replace table_name with your table name\nPRAGMA foreign_key_list(table_name);","Table Data":"-- Table Data\n-- Replace table_name with your table name\nSELECT * FROM table_name LIMIT 100;","Row Count":"-- Row Count\n-- Replace table_name with your table name\nSELECT COUNT(*) as total_rows FROM table_name;","Column Stats":"-- Column Statistics\n-- Replace table_name and column_name with your values\nSELECT \n COUNT(*) as total_rows,\n COUNT(column_name) as non_null_count,\n COUNT(DISTINCT column_name) as unique_values,\n MIN(column_name) as min_value,\n MAX(column_name) as max_value\nFROM table_name;","Create Table":"CREATE TABLE IF NOT EXISTS new_table (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n name TEXT NOT NULL,\n email TEXT UNIQUE,\n status TEXT CHECK(status IN ('active', 'inactive')) DEFAULT 'active',\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Create indexes\nCREATE INDEX idx_new_table_name ON new_table(name);\nCREATE UNIQUE INDEX idx_new_table_email ON new_table(email);","Create View":"-- Create a view\nCREATE VIEW view_name AS\nSELECT column1, column2\nFROM table_name\nWHERE condition;"},ew={"Schema Information":["Show Tables","Table Schema","Table Indexes","Foreign Keys"],"Data Queries":["Table Data","Row Count","Column Stats"],"Schema Modification":["Create Table","Create View"]};function ey(e){let{onSelectQuery:t}=e;return(0,s.jsxs)(ef,{children:[(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsxs)(A,{variant:"outline",size:"sm",children:["Query Templates",(0,s.jsx)(J.A,{className:"ml-2 h-4 w-4"})]})}),(0,s.jsx)(eg,{align:"start",className:"w-72",children:Object.entries(ew).map(e=>{let[a,n]=e;return(0,s.jsxs)(l.Fragment,{children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-sm font-semibold text-neutral-900 font-sans",children:a}),n.map(e=>(0,s.jsx)(eN,{onClick:()=>t(e),className:"font-sans text-neutral-800",children:e},e))]},a)})})]})}function eC(){let{executeQuery:e,refreshTables:t}=(0,p.t)(),[a,n]=(0,l.useState)(null),[r,i]=(0,l.useState)(!1),[o,d]=(0,l.useState)(300),[u,m]=(0,l.useState)(!1),h=(0,l.useRef)(null),x=(0,l.useRef)(null);(0,l.useEffect)(()=>{x.current&&(x.current.style.height="".concat(o,"px"))},[o]);let f=(0,l.useCallback)(e=>{e.preventDefault();let t=e.pageY,a=e=>{d(Math.min(Math.max(o+(e.pageY-t),100),.8*window.innerHeight))},s=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",s)},[o]),g=async()=>{if(!h.current)return;let a=h.current.getValue().trim().replace(/;+$/,"");if(!a){n({success:!1,error:{message:"Query cannot be empty."}});return}try{var s,l,r,o;i(!0),n(null);let c=await e(a);/^(CREATE|DROP|ALTER)\s+TABLE/i.test(a)&&await t();let d=[];if(c.results){if(Array.isArray(c.results)){if(c.results.length>0&&(null===(s=c.results[0])||void 0===s?void 0:s.columns)&&(null===(l=c.results[0])||void 0===l?void 0:l.values)){let e=c.results[0];d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}else d=1===c.results.length&&c.results[0].results&&Array.isArray(c.results[0].results)?c.results[0].results:c.results}else if(c.results.columns&&c.results.values){let e=c.results;d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}}else if(c.result&&c.result.results){if(Array.isArray(c.result.results)){if(c.result.results.length>0&&(null===(r=c.result.results[0])||void 0===r?void 0:r.columns)&&(null===(o=c.result.results[0])||void 0===o?void 0:o.values)){let e=c.result.results[0];d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}else d=1===c.result.results.length&&c.result.results[0].results&&Array.isArray(c.result.results[0].results)?c.result.results[0].results:c.result.results}else if(c.result.results.columns&&c.result.results.values){let e=c.result.results;d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}}n({success:!0,results:d})}catch(e){n({success:!1,error:ej(e)||{message:"An unknown error occurred",details:{}}})}finally{i(!1)}};return(0,s.jsxs)("div",{className:"h-full flex flex-col bg-white text-neutral-900 font-sans",children:[(0,s.jsx)("div",{className:"px-4 py-2 bg-neutral-100 border-b flex items-center gap-4",children:(0,s.jsx)(ey,{onSelectQuery:e=>{if(h.current){let t=Object.keys(eb).find(t=>t.toLowerCase()===e.toLowerCase());if(t){let e=eb[t];h.current.setValue(e),h.current.focus()}else console.warn("Query template not found for: ".concat(e))}}})}),(0,s.jsx)("div",{ref:x,className:"relative pt-2 overflow-hidden",style:{height:"".concat(o,"px"),minHeight:"100px"},children:(0,s.jsx)(en.Ay,{height:"100%",language:"sql",options:{minimap:{enabled:!1},fontSize:14,wordWrap:"on",automaticLayout:!0,lineNumbers:"on",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"},onMount:e=>{h.current=e,e.addCommand(monaco.KeyMod.CtrlCmd|monaco.KeyCode.Enter,()=>{g()})}})}),(0,s.jsx)("div",{className:"relative h-0.5 cursor-row-resize bg-neutral-200 group ".concat(u?"bg-neutral-300":"hover:bg-neutral-300"),onMouseDown:e=>{m(!0),f(e)},onMouseUp:()=>m(!1),children:(0,s.jsx)("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-neutral-900 rounded-sm px-0.5 \n ".concat(u?"visible":"invisible group-hover:visible"),children:(0,s.jsx)(er.A,{className:"h-3 w-3 text-white"})})}),(0,s.jsx)("div",{className:"px-4 py-3 bg-neutral-100 border-b font-sans",children:(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsx)("h3",{className:"text-sm font-medium",children:"Results"}),(0,s.jsxs)(A,{size:"sm",onClick:g,disabled:r,className:"flex items-center gap-1 text-sm font-medium",children:["Run",r?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(ei.A,{className:"h-4 w-4"}),(0,s.jsx)(eo.A,{className:"h-4 w-4"})]})]})]})}),(0,s.jsx)("div",{className:"flex-1 overflow-auto p-4 bg-white",children:(()=>{var e;if(r)return(0,s.jsxs)("div",{className:"flex items-center text-sm text-neutral-700",children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin mr-2 font-sans"}),"Running your query..."]});if(!a)return(0,s.jsx)("div",{className:"text-sm text-neutral-500 font-sans",children:"Run the query to see the results."});if(!a.success)return console.debug("SQLEditor - Rendering error:",a.error),(0,s.jsx)(ed,{error:a.error});let t=a.results;return t&&0!==t.length?(0,s.jsx)(eu,{query:(null===(e=h.current)||void 0===e?void 0:e.getValue())||"",results:t}):(0,s.jsx)("div",{className:"text-sm text-neutral-900 font-sans",children:"Success. No results to display."})})()})]})}var eE=a(6352);let eS=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(eE.bL,{ref:t,className:(0,d.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...l,children:(0,s.jsx)(eE.C1,{className:(0,d.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})})});eS.displayName=eE.bL.displayName;var eR=a(138),eT=a(1598),eA=a(2884),ek=a(9710);let e_=ek.Kq,eO=ek.bL,eL=ek.l9,eI=l.forwardRef((e,t)=>{let{className:a,sideOffset:l=4,...n}=e;return(0,s.jsx)(ek.ZL,{children:(0,s.jsx)(ek.UC,{ref:t,sideOffset:l,className:(0,d.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",a),...n})})});eI.displayName=ek.UC.displayName;var eU=a(6235);let eP=(0,l.memo)(e=>{let{onRefresh:t,disabled:a}=e,[n,r]=(0,l.useState)(!1),i=async()=>{if(!n&&!a){r(!0);try{await t()}catch(e){console.error("Refresh failed:",e)}finally{setTimeout(()=>{r(!1)},500)}}};return(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",onClick:i,disabled:n||a,className:"h-8",children:n?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(eU.A,{className:"h-4 w-4"})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Refresh table data"})})]})})});eP.displayName="RefreshButton";var eD=a(7973);let eF=(0,l.memo)(e=>{let{tableName:t,onSync:a}=e,[n,r]=(0,l.useState)(!1),{toast:i}=(0,_.dj)();if("d1_migrations"!==t)return null;let o=async()=>{try{r(!0);let e=await fetch("/api/migrations/sync-files",{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to sync migrations");let{added:s=[],removed:l=[]}=t.details||{};i({title:"Migrations Synced",description:"Added: ".concat(s.length,", Removed: ").concat(l.length)}),a&&await a()}catch(e){console.error("Error syncing migrations:",e),i({variant:"destructive",title:"Sync Failed",description:e.message})}finally{r(!1)}};return(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",onClick:o,disabled:n,className:"h-8",children:n?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(eD.A,{className:"h-4 w-4"})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Sync migration files with d1_migrations table"})})]})})});eF.displayName="SyncMigrationsButton";var eM=a(358),ez=a(8742),eQ=a(6697);let eV=(0,l.memo)(e=>{let{tableName:t,onDownloadStart:a,onDownloadComplete:n,disabled:r}=e,[i,o]=(0,l.useState)(!1),{toast:d}=(0,_.dj)(),u=(e,t)=>{try{let a=new Blob([e],{type:"application/octet-stream"}),s=window.URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=t,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(s)}catch(e){throw console.error("Error during file download:",e),e}},m=async e=>{if(!r)try{o(!0),null==a||a();let s=await fetch("/api/tables/".concat(t)),l=await s.json();if(!s.ok)throw Error(l.error||"Failed to fetch data");let{data:r,schema:i}=l;if(!(null==r?void 0:r.length)){d({title:"No Data",description:"The table is empty.",variant:"destructive"});return}let c=new Date().toISOString().split("T")[0],m="".concat(t,"_").concat(c,".").concat(e);switch(e){case"json":{let e=JSON.stringify(r,null,2);u(e,m);break}case"csv":{let e=Object.keys(r[0]),t=[e.join(","),...r.map(t=>e.map(e=>{let a=t[e];if(null==a)return"";if("string"==typeof a){let e=a.replace(/"/g,'""');return'"'.concat(e,'"')}return a}).join(","))].join("\n");u(t,m);break}case"sql":{let e="CREATE TABLE IF NOT EXISTS ".concat(t," (\n")+i.map(e=>{let t=[];return e.pk&&t.push("PRIMARY KEY"),e.notnull||t.push("NOT NULL")," ".concat(e.name," ").concat(e.type).concat(t.length?" ".concat(t.join(" ")):"")}).join(",\n")+"\n);\n\n",a=r.map(e=>{let a=Object.keys(e),s=a.map(t=>{let a=e[t];return null===a?"NULL":"string"==typeof a?"'".concat(a.replace(/'/g,"''"),"'"):a});return"INSERT INTO ".concat(t," (").concat(a.join(", "),")\nVALUES (").concat(s.join(", "),");")}).join("\n");u(e+a,m)}}d({title:"Download Complete",description:"".concat(r.length," rows exported as ").concat(e.toUpperCase(),".")}),null==n||n()}catch(e){console.error("Download error:",e),d({variant:"destructive",title:"Download Failed",description:e.message})}finally{o(!1)}};return(0,s.jsxs)(ef,{children:[(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",className:"h-8",disabled:i||r,children:i?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(et.A,{className:"h-4 w-4"})})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Download table data"})})]})}),(0,s.jsxs)(eg,{align:"end",children:[(0,s.jsxs)(eN,{onClick:()=>m("json"),disabled:r,children:[(0,s.jsx)(eM.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download JSON"})]}),(0,s.jsxs)(eN,{onClick:()=>m("csv"),disabled:r,children:[(0,s.jsx)(ez.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download CSV"})]}),(0,s.jsxs)(eN,{onClick:()=>m("sql"),disabled:r,children:[(0,s.jsx)(eQ.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download SQL"})]})]})]})});eV.displayName="DownloadButton";var eK=a(9045);let eJ=function(e){let{schema:t=[],visibleColumns:a=[],onColumnToggle:n}=e,[r,i]=(0,l.useState)("");(0,l.useEffect)(()=>{if(!t||0===t.length)return;let e=t.map(e=>e.name);0===a.length&&e.forEach(e=>n(e))},[t,a.length,n]);let o=t.filter(e=>e.name.toLowerCase().includes(r.toLowerCase())),c=o.map(e=>e.name),d=c.length>0&&c.every(e=>a.includes(e)),m=e=>{n(e)};return(0,s.jsxs)(ef,{children:[(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsxs)(A,{size:"sm",variant:"outline",className:"font-semibold",children:[(0,s.jsx)(eK.A,{className:"h-4 w-4"}),"Columns (",a.length,")"]})}),(0,s.jsxs)(eg,{align:"end",className:"w-64 font-sans",children:[(0,s.jsx)("div",{className:"p-2",children:(0,s.jsx)(u,{placeholder:"Search columns...",value:r,onChange:e=>i(e.target.value),className:"h-8"})}),(0,s.jsxs)("div",{className:"flex items-center space-x-2 px-2 py-1.5 hover:bg-accent rounded-md",children:[(0,s.jsx)(eS,{id:"select-all-columns",checked:d,onCheckedChange:e=>{e?o.forEach(e=>{a.includes(e.name)||n(e.name)}):o.forEach(e=>{a.includes(e.name)&&n(e.name)})},className:"shrink-0"}),(0,s.jsxs)("label",{htmlFor:"select-all-columns",className:"flex-1 cursor-pointer text-sm font-medium",children:["Select All ",r&&"(Filtered)"]})]}),(0,s.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:o.map(e=>(0,s.jsxs)("div",{className:"flex items-start space-x-2 px-2 py-1.5 hover:bg-accent rounded-md",children:[(0,s.jsx)(eS,{id:"column-".concat(e.name),checked:a.includes(e.name),onCheckedChange:()=>m(e.name),className:"mt-1"}),(0,s.jsxs)("label",{htmlFor:"column-".concat(e.name),className:"flex-1 cursor-pointer",children:[(0,s.jsx)("div",{className:"text-sm font-medium",children:e.name}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:e.type.toLowerCase()})]})]},e.name))})]})]})},eq=(0,l.memo)(e=>{let{onAdd:t,onDelete:a,selectedCount:l,disabled:n,newRecordsCount:r,schema:i,visibleColumns:o,onColumnToggle:c}=e;return(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)("span",{children:(0,s.jsxs)(A,{size:"sm",variant:"outline",className:"font-semibold opacity-50 cursor-not-allowed",disabled:!0,children:[(0,s.jsx)(eR.A,{className:"h-4 w-4"}),"Filters"]})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Filters are not available yet. Coming soon!"})})]})}),(0,s.jsx)(eJ,{schema:i,visibleColumns:o,onColumnToggle:c}),(0,s.jsx)("div",{className:"h-4 border-r mx-2"}),(0,s.jsx)(A,{size:"sm",variant:"default",className:"font-semibold",onClick:t,children:"Add record"}),l>0&&(0,s.jsxs)(A,{size:"sm",className:"font-semibold",onClick:a,variant:"destructive",disabled:n||r>0,children:["Delete ",l," ",1===l?"record":"records"]})]})}),eY=(0,l.memo)(e=>{let{totalRows:t}=e;return(0,s.jsxs)("span",{className:"text-sm text-neutral-600",children:[t," ",1===t?"row":"rows"]})}),eX=(0,l.memo)(e=>{let{currentPage:t,totalPages:a,onPageChange:l,disabled:n,newRecordsCount:r}=e;return(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(A,{variant:"ghost",size:"icon",onClick:()=>{console.log("Pagination: navigating to previous page",t-1),l(t-1)},disabled:1===t||n||r>0,className:"h-8",children:(0,s.jsx)(eT.A,{className:"h-4 w-4"})}),(0,s.jsxs)("span",{className:"text-sm",children:["Page ",t," of ",a]}),(0,s.jsx)(A,{variant:"ghost",size:"icon",onClick:()=>{console.log("Pagination: navigating to next page",t+1),l(t+1)},disabled:t===a||n||r>0,className:"h-8",children:(0,s.jsx)(eA.A,{className:"h-4 w-4"})})]})}),eH=(0,l.memo)(e=>{let{value:t,onValueChange:a,disabled:l,newRecordsCount:n}=e;return(0,s.jsxs)(X,{value:t.toString(),onValueChange:a,disabled:l||n>0,children:[(0,s.jsx)(W,{className:"w-20 h-8",children:(0,s.jsx)(H,{})}),(0,s.jsxs)(Z,{children:[(0,s.jsx)($,{value:"50",children:"50"}),(0,s.jsx)($,{value:"100",children:"100"}),(0,s.jsx)($,{value:"250",children:"250"})]})]})}),eW=(0,l.memo)(e=>{let{onSave:t,onDiscard:a,totalChanges:l,isSaving:n}=e;return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(A,{size:"sm",variant:"ghost",className:"font-semibold",onClick:a,disabled:n,children:"Discard changes"}),(0,s.jsx)(A,{size:"sm",className:"font-semibold bg-green-600 hover:bg-green-700",variant:"default",onClick:t,disabled:n,children:n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Saving..."]}):"Save ".concat(l," ").concat(1===l?"change":"changes")})]})}),eB=e=>{let{selectedCount:t=0,onAdd:a,onDelete:l,onRefresh:n,totalRows:r=0,currentPage:i=1,totalPages:o=1,onPageChange:c,rowsPerPage:d=50,onRowsPerPageChange:u,tableName:m,onDownloadStart:h,onDownloadComplete:x,disabled:f=!1,editCount:p=0,newRecordsCount:g=0,onSaveChanges:N,onDiscardChanges:v,isSaving:j=!1,schema:b,visibleColumns:w,onColumnToggle:y}=e,C=p+g;return(0,s.jsx)("div",{className:"flex items-center justify-between p-3 border-b bg-background font-sans",children:(0,s.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,s.jsx)(eq,{onAdd:a,onDelete:l,selectedCount:t,disabled:f||j,newRecordsCount:g,schema:b,visibleColumns:w,onColumnToggle:y}),(0,s.jsx)("div",{className:"flex items-center gap-4",children:C>0?(0,s.jsx)(eW,{onSave:N,onDiscard:v,totalChanges:C,isSaving:j}):(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(eY,{totalRows:r}),(0,s.jsx)(eX,{currentPage:i,totalPages:o,onPageChange:c,disabled:f,newRecordsCount:g}),(0,s.jsx)(eH,{value:d,onValueChange:e=>{u(parseInt(e,10)),c(1)},disabled:f,newRecordsCount:g}),(0,s.jsx)(eP,{onRefresh:n,disabled:f}),(0,s.jsx)(eF,{tableName:m,onSync:n,disabled:f}),(0,s.jsx)(eV,{tableName:m,onDownloadStart:h,onDownloadComplete:x,disabled:f})]})})]})})};eB.displayName="TableToolbar";let eG=(0,l.memo)(eB);function eZ(e){let{value:t,row:a,column:n,schema:r,onChange:i,onStartEdit:o,isEditing:c}=e,d="string"==typeof t?t.replace(/^'|'$/g,""):t,[m,h]=(0,l.useState)(d),[x,f]=(0,l.useState)("auto"),p=(0,l.useRef)(null),g=(0,l.useRef)(null),N=r.find(e=>e.name===n),v=(0,l.useMemo)(()=>(null==N?void 0:N.check)||null,[N]),j=(0,l.useMemo)(()=>{var e;let t=(null==N?void 0:null===(e=N.type)||void 0===e?void 0:e.toLowerCase())||"";return"boolean"===t||"bool"===t||"integer"===t&&n.toLowerCase().startsWith("is_")},[N,n]);(0,l.useEffect)(()=>{h(d)},[d]),(0,l.useEffect)(()=>{if(p.current&&!c){let e=p.current.offsetWidth;f("".concat(e,"px"))}},[c]),(0,l.useEffect)(()=>{c&&g.current&&(g.current.focus(),g.current.select())},[c]),null==N||N.pk;let b=(0,l.useCallback)(e=>{let t=j?"true"===e?1:"false"===e?0:e:e;h(e),null==i||i(t)},[i,j]),w=(0,l.useCallback)(()=>{!c&&o&&o(d)},[c,o,d]),y="border-x border-neutral-200 px-3 py-2.5 text-xs font-mono whitespace-nowrap",C=(0,l.useMemo)(()=>null==d?"null":j?1===d||"1"===d||"true"===d?"true":"false":d.toString(),[d,j]);return c?j?(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)("div",{className:"w-full h-full",children:(0,s.jsxs)(X,{value:C,onValueChange:b,defaultOpen:c,children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select value"})}),(0,s.jsxs)(Z,{className:"min-w-[8rem]",children:[(0,s.jsx)($,{value:"true",children:"true"}),(0,s.jsx)($,{value:"false",children:"false"})]})]})})}):(null==v?void 0:v.length)>0?(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)("div",{className:"w-full h-full",children:(0,s.jsxs)(X,{value:null!=m?m:v[0],onValueChange:b,defaultOpen:c,children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select ".concat(n)})}),(0,s.jsx)(Z,{className:"min-w-[8rem]",children:v.map(e=>(0,s.jsx)($,{value:e,children:e},e))})]})})}):(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)(u,{ref:g,value:null!=m?m:"",onChange:e=>b(e.target.value),className:"w-full min-w-0 rounded-none border-0 bg-orange-50 text-orange-900"})}):(0,s.jsx)(z,{ref:p,className:"".concat(y," cursor-pointer hover:bg-muted/50"),onClick:w,children:C})}var e$=a(5524);function e0(e){return"string"==typeof e?e.replace(/^'|'$/g,""):e}function e1(e){let{schema:t,onRemove:a,onChange:n,showCheckbox:r=!1,initialData:i={}}=e,[o,c]=(0,l.useState)(()=>t.reduce((e,t)=>{var a;let s=null!==(a=i[t.name])&&void 0!==a?a:null;if(s=e0(s),"INTEGER"===t.type.toUpperCase()&&1===t.pk&&(null===s||""===s))s="[Auto-generated INT]";else if(null===s){if(t.dflt_value){let e=e0(t.dflt_value);s=e.includes("randomblob")||e.includes("lower(hex(")?"[Auto-generated UUID]":"INTEGER"===t.type.toUpperCase()&&1===t.pk&&(e.includes("AUTOINCREMENT")||e.includes("AUTO_INCREMENT")||e.includes("nextval")||""===e||"0"===e)?"[Auto-generated INT]":e}else"INTEGER"===t.type.toUpperCase()?s="":"TEXT"===t.type.toUpperCase()&&(s="")}return e[t.name]=s,e},{})),d=(e,t)=>{let a={...o,[e]:t};c(a),null==n||n(a)},m=e=>{var t;let a=(null===(t=e.type)||void 0===t?void 0:t.toLowerCase())||"";return"boolean"===a||"bool"===a||"integer"===a&&e.name.toLowerCase().startsWith("is_")};return(0,s.jsxs)(F,{className:"bg-orange-50/50",children:[(0,s.jsx)(z,{className:"w-10 p-0",children:(0,s.jsx)("div",{className:"pl-1 flex items-center",children:r?(0,s.jsx)(eS,{disabled:!0}):(0,s.jsx)(A,{variant:"ghost",size:"icon",className:"h-8 w-8 text-orange-700 hover:text-orange-800",onClick:a,children:(0,s.jsx)(e$.A,{className:"h-4 w-4"})})})}),t.map(e=>{var t,a;let l=1===e.pk,n=e.check||null;if(m(e)){let t="false";if(null!==e.dflt_value&&void 0!==e.dflt_value){let a=e.dflt_value.toString().toLowerCase();t="1"===a||"true"===a||"'true'"===a||'"true"'===a?"true":"false"}let a=null!==o[e.name]&&void 0!==o[e.name]?1===o[e.name]||!0===o[e.name]||"true"===o[e.name]?"true":"false":t;return(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)("div",{className:"w-full",children:(0,s.jsxs)(X,{value:a,onValueChange:t=>d(e.name,"true"===t?1:0),children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",title:"Default: ".concat(t),children:(0,s.jsx)(H,{placeholder:"Select ".concat(e.name)})}),(0,s.jsxs)(Z,{className:"min-w-[8rem]",children:[(0,s.jsx)($,{value:"true",children:"true"}),(0,s.jsx)($,{value:"false",children:"false"})]})]})})},e.name)}return(null==n?void 0:n.length)>0?(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)("div",{className:"w-full",children:(0,s.jsxs)(X,{value:null!==(t=o[e.name])&&void 0!==t?t:n[0],onValueChange:t=>d(e.name,t),children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select ".concat(e.name)})}),(0,s.jsx)(Z,{className:"min-w-[8rem]",children:n.map(e=>(0,s.jsx)($,{value:e,children:e},e))})]})})},e.name):(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)(u,{value:null!==(a=o[e.name])&&void 0!==a?a:"",onChange:t=>d(e.name,t.target.value),className:"w-full min-w-0 rounded-none border-0 px-2 bg-orange-50 text-orange-900",placeholder:l&&"INTEGER"===e.type.toUpperCase()?"Auto-generated INT":l?"Auto-generated":"Enter ".concat(e.name)})},e.name)})]})}let e4=function(e){let{isOpen:t,onClose:a,onConfirm:l,selectedCount:n,tableName:i,isDeleting:o,error:c}=e;return(0,s.jsx)(v,{open:t,onOpenChange:a,children:(0,s.jsxs)(w,{className:"sm:max-w-md font-sans",children:[(0,s.jsxs)(y,{children:[(0,s.jsxs)(E,{className:"mb-2",children:["Delete ",n," ",1===n?"Record":"Records","?"]}),(0,s.jsxs)(S,{className:"text-neutral-600 font-medium",children:["You're about to delete ",n," ",1===n?"record":"records"," from ",(0,s.jsx)("span",{className:"font-sans font-bold text-neutral-900",children:i}),"."]})]}),c&&(0,s.jsxs)(x,{variant:"destructive",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsx)(f,{children:c})]}),(0,s.jsxs)(C,{className:"flex gap-1 mt-2 sm:justify-end font-sans",children:[(0,s.jsx)(A,{variant:"outline",onClick:a,disabled:o,children:"Cancel"}),(0,s.jsx)(A,{variant:"destructive",onClick:l,disabled:o,children:o?"Deleting...":"Delete"})]})]})})};function e2(e){var t;let{isOpen:a,onClose:l,error:n}=e;if(!n||!a)return null;let{message:i,icon:o}=n?{message:n.message,icon:r.A}:{message:"An unknown error occurred.",icon:r.A};return(0,s.jsx)(v,{open:a,onOpenChange:l,children:(0,s.jsxs)(w,{className:"sm:max-w-md font-sans",children:[(0,s.jsx)(y,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(o,{className:"h-4 w-4 text-red-500"}),(0,s.jsx)(E,{children:"Error"})]})}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("p",{className:"bg-neutral-100 p-2 rounded-md text-neutral-900",children:i}),(null===(t=n.details)||void 0===t?void 0:t.suggestions)&&(0,s.jsxs)("div",{className:"text-sm space-y-1",children:[(0,s.jsx)("p",{className:"font-medium",children:"Suggestions:"}),(0,s.jsx)("ul",{className:"list-disc pl-4 space-y-1",children:n.details.suggestions.map((e,t)=>(0,s.jsx)("li",{children:e},t))})]})]}),(0,s.jsx)("div",{className:"flex justify-end gap-2 mt-4",children:(0,s.jsx)(A,{variant:"default",onClick:l,children:"Got it"})})]})})}let e5=e=>{let{children:t,width:a,onResize:n,className:r=""}=e,[i,o]=(0,l.useState)(!1),c=(0,l.useRef)(null),d=(0,l.useCallback)(e=>{var t;e.preventDefault(),o(!0);let a=e.clientX,s=(null===(t=c.current)||void 0===t?void 0:t.offsetWidth)||0,l=e=>{c.current&&n(Math.max(s+(e.clientX-a),100))},r=()=>{o(!1),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",r)};document.addEventListener("mousemove",l),document.addEventListener("mouseup",r)},[n]);return(0,s.jsxs)("th",{ref:c,className:"relative ".concat(r," ").concat(i?"select-none":""),style:{width:"".concat(a,"px")},children:[t,(0,s.jsx)("div",{className:"absolute top-0 right-0 h-full w-1 cursor-col-resize group hover:bg-neutral-300",onMouseDown:d})]})},e3=e=>{let{columns:t,children:a,onColumnsResize:n,className:r=""}=e,[i,o]=(0,l.useState)(t.reduce((e,t)=>({...e,[t.key]:t.width||150}),{})),c=(0,l.useCallback)((e,t)=>{o(a=>{let s={...a,[e]:t};return null==n||n(s),s})},[n]);return(0,s.jsx)("div",{className:"w-full ".concat(r),children:l.Children.map(a,e=>l.isValidElement(e)?l.cloneElement(e,{onResize:c}):e)})};var e9=a(3998),e8=a(3303),e7=a(8729);function e6(e){let{column:t,sortConfig:a,onSort:l,children:n}=e,r=a[t];return(0,s.jsx)("div",{className:"flex items-center w-full",children:(0,s.jsxs)(A,{variant:"ghost",size:"sm",className:"h-8 hover:bg-neutral-100 w-full justify-between",onClick:()=>{l(t,r?"asc"===r?"desc":null:"asc")},children:[(0,s.jsx)("span",{className:"flex items-center gap-1 font-mono",children:n}),(0,s.jsxs)("span",{className:"shrink-0",children:["asc"===r&&(0,s.jsx)(e9.A,{className:"h-4 w-4"}),"desc"===r&&(0,s.jsx)(e8.A,{className:"h-4 w-4"}),!r&&(0,s.jsx)(e7.A,{className:"h-4 w-4"})]})]})})}function te(e){let{tableName:t}=e,{executeQuery:a,getCachedTable:n,updateTableCache:i,invalidateTable:o,switchTable:d,activeTable:u,updateTableData:m}=(0,p.t)(),{toast:h}=(0,_.dj)(),[g,N]=(0,l.useState)(()=>[]),[v,j]=(0,l.useState)([]),[b,w]=(0,l.useState)(0),[y,C]=(0,l.useState)(!0),[E,S]=(0,l.useState)(!1),[R,T]=(0,l.useState)(null),[A,k]=(0,l.useState)(new Map),[O,Q]=(0,l.useState)(new Set),[V,K]=(0,l.useState)([]),[J,q]=(0,l.useState)(1),[Y,X]=(0,l.useState)(50),[H,W]=(0,l.useState)(1),[B,G]=(0,l.useState)(new Set),Z=(0,l.useRef)(null),[$,ee]=(0,l.useState)(!1),[et,ea]=(0,l.useState)(!1),[es,el]=(0,l.useState)(null),[en,er]=(0,l.useState)(!1),[ei,eo]=(0,l.useState)(null),[ec,ed]=(0,l.useState)({}),[eu,em]=(0,l.useState)({}),[eh,ex]=(0,l.useState)([]);(0,l.useEffect)(()=>{if(t){let e=localStorage.getItem("table-widths-".concat(t));e&&em(JSON.parse(e));let a=localStorage.getItem("table-columns-".concat(t));if(a)try{ex(JSON.parse(a))}catch(e){ex([])}}},[t]);let ef=(0,l.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!t)return;let a=n(t,J,Y);if(a&&!e){N(a.data),j(a.schema),w(a.meta.total),W(a.meta.totalPages);return}C(!0),T(null),G(new Set);try{let a=await d(t,{page:J,limit:Y,forceFetch:e});return a.meta.page=J,N(Array.isArray(a.data)?a.data:[]),j(a.schema||[]),w(a.meta.total),W(a.meta.totalPages),!0}catch(e){throw console.error("Error loading table data:",e),T(e.message||String(e)),h({variant:"destructive",title:"Error",description:"Failed to load table: ".concat(e.message)}),e}finally{C(!1)}},[t,J,Y,n,d,h,eh.length]),ep=(0,l.useCallback)(e=>{ex(a=>{let s=a.includes(e)?a.filter(t=>t!==e):[...a,e];return localStorage.setItem("table-columns-".concat(t),JSON.stringify(s)),s})},[t]),eg=(0,l.useCallback)((e,a)=>{em(s=>{let l={...s,[e]:a};return localStorage.setItem("table-widths-".concat(t),JSON.stringify(l)),l})},[t]),eN=(0,l.useCallback)(async()=>{try{G(new Set),o(t),await ef(!0),h({title:"Success",description:"Table data refreshed"})}catch(e){console.error("Refresh failed:",e),h({variant:"destructive",title:"Refresh Failed",description:e.message})}},[ef,o,t,h]),ev=(0,l.useCallback)((e,a)=>{ed(t=>({...t,[e]:a}));let s=a&&g.length?[...g].sort((t,s)=>{let l=t[e],n=s[e];if(null==l&&null==n)return 0;if(null==l)return 1;if(null==n)return -1;if("number"==typeof l&&"number"==typeof n)return"asc"===a?l-n:n-l;let r=String(l).toLowerCase(),i=String(n).toLowerCase();return"asc"===a?r.localeCompare(i):i.localeCompare(r)}):g;N(s);let l=n(t);l&&i(t,s,l.schema,{...l.meta,currentPage:J,limit:Y},J,Y)},[g,t,n,i]),eb=(0,l.useCallback)((e,t,a)=>{let s="".concat(e,"-").concat(t);k(e=>new Map(e).set(s,{value:a,originalValue:a})),Q(t=>new Set(t).add(e))},[]),ew=(0,l.useCallback)((e,t,a)=>{var s,l;let n="".concat(e,"-").concat(t),r=g[e],i=null!==(l=null===(s=A.get(n))||void 0===s?void 0:s.originalValue)&&void 0!==l?l:r[t];if(a===i){let t=new Map(A);if(t.delete(n),k(t),!Array.from(t.keys()).some(t=>t.startsWith("".concat(e,"-")))){let t=new Set(O);t.delete(e),Q(t)}}else k(e=>new Map(e).set(n,{value:a,originalValue:i})),Q(t=>new Set(t).add(e))},[g,A,O]),ey=(0,l.useCallback)(()=>{K(e=>[...e,{}])},[]),eC=(0,l.useCallback)(e=>{K(t=>t.filter((t,a)=>a!==e))},[]),eE=(0,l.useCallback)((e,t)=>{K(a=>{let s=[...a];return s[e]=t,s})},[]),eR=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];S(!0);try{if(V.length>0){let e=0,s=v.filter(e=>"datetime"===e.type.toLowerCase()).map(e=>e.name);for(let l of V){let n=Object.keys(l).filter(e=>{let t=l[e];if(null===t||""===t||"null"===t)return!1;if((null==t?void 0:t.toString())==="[Auto-generated INT]"){let t=v.find(t=>t.name===e);if(t&&1===t.pk&&"INTEGER"===t.type.toUpperCase())return!1}return!0});if(s.forEach(e=>{n.includes(e)||n.push(e)}),0===n.length)continue;let r=n.map(e=>{if(s.includes(e))return"CURRENT_TIMESTAMP";let t=l[e];if(null===t||""===t||"null"===t)return"NULL";let a=t.toString();if("[Auto-generated UUID]"===a){let t=v.find(t=>t.name===e);if(t&&t.dflt_value)return t.dflt_value}if("[Auto-generated INT]"===a){let t=v.find(t=>t.name===e);if(t&&1===t.pk&&"INTEGER"===t.type.toUpperCase())return null}return a.includes("randomblob")||a.includes("CURRENT_TIMESTAMP")||a.includes("lower(hex(")||a.startsWith("(")&&a.endsWith(")")?a:"'".concat(a.replace(/'/g,"''"),"'")}),i="INSERT INTO ".concat(t," (").concat(n.join(", "),") VALUES (").concat(r.join(", "),");");await a(i),e++}if(e>0){let a=await m(t);N(a.data),w(a.meta.total),W(Math.ceil(a.meta.total/Y)),h({title:"Success",description:"Added ".concat(e," ").concat(1===e?"record":"records")})}K([])}if(A.size>0&&(e||!ei)){var s;let e=null===(s=v.find(e=>1===e.pk))||void 0===s?void 0:s.name;if(!e)throw Error("No primary key found in table schema");let l=new Map;A.forEach((t,a)=>{let[s,n]=a.split("-"),r=g[s];l.has(r[e])||l.set(r[e],new Map),l.get(r[e]).set(n,t.value)});let n=0;for(let[s,r]of l){let l=Array.from(r.entries()).map(e=>{let[t,a]=e;return null===a||""===a||"null"===a?"".concat(t," = NULL"):"CURRENT_TIMESTAMP"===a?"".concat(t," = CURRENT_TIMESTAMP"):"".concat(t," = '").concat(a.toString().replace(/'/g,"''"),"'")}).join(", "),i="\n UPDATE ".concat(t,"\n SET ").concat(l,"\n WHERE ").concat(e," = ").concat(s,";\n ");await a(i),n++}if(n>0){let e=await m(t);N(e.data),w(e.meta.total),W(Math.ceil(e.meta.total/Y)),h({title:"Success",description:"Updated ".concat(n," ").concat(1===n?"record":"records")})}}k(new Map),Q(new Set),eo(null)}catch(e){eo({...ej(e),stderr:e.stderr,stdout:e.stdout}),er(!0)}finally{S(!1)}},eT=(0,l.useCallback)(async()=>{if(ea(!0),el(null),t){ea(!0),el(null);try{var e;let s=null===(e=v.find(e=>1===e.pk))||void 0===e?void 0:e.name;if(!s)throw Error("No primary key found in table schema");let l=Array.from(B).map(e=>g[e][s]);if(0===l.length)return;let r=l.map(e=>"string"==typeof e&&isNaN(e)?"'".concat(e.replace(/'/g,"''"),"'"):e),o="DELETE FROM ".concat(t," WHERE ").concat(s," IN (").concat(r.join(","),");");await a(o);let c=new Set(l),d=g.filter(e=>!c.has(e[s]));N(d),w(e=>e-l.length),W(Math.ceil((b-l.length)/Y));let u=n(t);u&&i(t,d,u.schema,{...u.meta,total:u.meta.total-l.length}),J>1&&g.length===l.length&&(q(e=>e-1),await ef()),ee(!1),G(new Set),h({title:"Success",description:"Successfully deleted ".concat(l.length," ").concat(1===l.length?"record":"records")})}catch(e){console.error("Delete operation failed:",e),el(e.message||String(e))}finally{ea(!1)}}},[t,B,g,v,a,m,ef,J,Y,b,h,n,i]);(0,l.useEffect)(()=>{if(!t)return;k(new Map),Q(new Set),K([]),T(null),G(new Set),q(1);let e=n(t,1,Y);e?(N(e.data),j(e.schema),w(e.meta.total),W(e.meta.totalPages),ex(a=>{if(a.length)return a;let s=e.schema.map(e=>e.name);return localStorage.setItem("table-columns-".concat(t),JSON.stringify(s)),s})):ef(!1)},[t,Y]),(0,l.useEffect)(()=>{if(u===t){let e=n(t);e&&(N(e.data),j(e.schema),w(e.meta.total),W(e.meta.totalPages))}},[u,t,n]),(0,l.useEffect)(()=>{if(t&&!y){var e;let a=n(t,J,Y);a&&J===(null===(e=a.meta)||void 0===e?void 0:e.currentPage)||ef(!1)}},[t,J,Y,y,ef,n]),(0,l.useEffect)(()=>{Z.current&&(Z.current.indeterminate=B.size>0&&B.size<g.length)},[B.size,g.length]);let eA=(0,l.useCallback)(e=>{G(e?new Set(g.map((e,t)=>t)):new Set)},[g]),ek=(0,l.useCallback)((e,t)=>{G(a=>{let s=new Set(a);return t?s.add(e):s.delete(e),s})},[]);(0,l.useCallback)(e=>{em(e),localStorage.setItem("table-widths-".concat(t),JSON.stringify(e))},[t]);let e_=v.filter(e=>eh.includes(e.name)),eO=A.size>0||V.length>0;return R?(0,s.jsx)("div",{className:"p-4",children:(0,s.jsxs)(x,{variant:"destructive",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsxs)(f,{children:["Failed to load table: ",R]})]})}):(0,s.jsxs)("div",{className:"h-full flex flex-col",children:[(0,s.jsx)(eG,{selectedCount:B.size,totalRows:b,currentPage:J,totalPages:H,rowsPerPage:Y,onPageChange:q,onRowsPerPageChange:X,onAdd:ey,onDelete:()=>ee(!0),onRefresh:eN,tableName:t,disabled:eO,editCount:A.size,newRecordsCount:V.length,isSaving:E,onSaveChanges:eR,onDiscardChanges:()=>{k(new Map),Q(new Set),K([]),eo(null),h({description:"Changes discarded"})},schema:v,visibleColumns:eh,onColumnToggle:ep}),(0,s.jsx)(e3,{columns:v,onColumnsResize:eg,children:(0,s.jsx)("div",{className:"flex-1 overflow-hidden bg-background font-mono",children:(0,s.jsx)(L,{className:"w-full h-screen",children:(0,s.jsxs)("div",{className:"relative w-max min-w-fit pb-4",children:[(0,s.jsxs)(U,{children:[!y&&(0,s.jsx)(P,{className:"bg-neutral-100 sticky top-0 z-30",children:(0,s.jsxs)(F,{children:[(0,s.jsx)(M,{className:"w-10 p-0 border-r border-neutral-200",children:(0,s.jsx)("div",{className:"py-0.5 px-3 flex items-center",children:(0,s.jsx)(eS,{ref:Z,checked:B.size===g.length&&g.length>0,onCheckedChange:eA,disabled:eO})})}),e_.map(e=>{var t;return(0,s.jsx)(e5,{width:eu[e.name]||150,onResize:t=>eg(e.name,t),className:"py-0.5 whitespace-nowrap border-r border-neutral-200",children:(0,s.jsxs)(e6,{column:e.name,sortConfig:ec,onSort:ev,children:[(0,s.jsx)("span",{className:"text-xs font-bold text-foreground",children:e.name}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:null===(t=e.type)||void 0===t?void 0:t.toLowerCase()})]})},e.name)})]})}),(0,s.jsxs)(D,{children:[y&&(0,s.jsx)(F,{className:"hover:bg-transparent",children:(0,s.jsx)(z,{colSpan:e_.length+1,className:"h-[calc(100vh-200px)]",children:(0,s.jsx)("div",{className:"h-full w-full flex items-center justify-center",children:(0,s.jsx)(c.A,{className:"h-6 w-6 animate-spin text-primary"})})})}),!y&&(0,s.jsxs)(s.Fragment,{children:[V.map((e,t)=>(0,s.jsx)(e1,{schema:e_,onRemove:()=>eC(t),onChange:e=>eE(t,e)},"new-".concat(t))),0===g.length&&0===V.length?(0,s.jsx)(F,{className:"hover:bg-transparent",children:(0,s.jsx)(z,{colSpan:e_.length+1,className:"h-[calc(100vh-200px)] text-center text-muted-foreground",children:"Table is empty"})}):g.map((e,t)=>(0,s.jsxs)(F,{className:"".concat(B.has(t)?"bg-muted/50":""),children:[(0,s.jsx)(z,{className:"p-0",children:(0,s.jsx)("div",{className:"px-3 py-2.5 flex items-center",children:(0,s.jsx)(eS,{checked:B.has(t),onCheckedChange:e=>ek(t,e),disabled:eO})})}),e_.map(a=>{let l="".concat(t,"-").concat(a.name),n=A.get(l);return(0,s.jsx)(eZ,{value:n?n.value:e[a.name],row:e,column:a.name,schema:v,onChange:e=>ew(t,a.name,e),onStartEdit:e=>eb(t,a.name,e),isEditing:A.has(l),style:{width:"".concat(eu[a.name]||150,"px")}},a.name)})]},t))]})]})]}),(0,s.jsx)(I,{orientation:"horizontal"})]})})})}),(0,s.jsx)(e4,{isOpen:$,onClose:()=>{ee(!1),el(null)},onConfirm:eT,selectedCount:B.size,tableName:t,isDeleting:et,error:es}),(0,s.jsx)(e2,{isOpen:en,onClose:()=>er(!1),error:ei,onOpenInSQL:()=>{er(!1)},onUpdateAnyway:async()=>{er(!1),await eR(!0)},showSQLOption:(null==ei?void 0:ei.type)==="NULLABLE_PK"})]})}function tt(){let[e,t]=(0,l.useState)("sql-editor"),[a,n]=(0,l.useState)(null);return(0,s.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,s.jsx)(el,{className:"w-64 border-r flex-shrink-0",currentView:e,onNavigate:t,onTableSelect:e=>{n(e),t("table-view")}}),(0,s.jsxs)("main",{className:"flex-1 overflow-hidden",children:["sql-editor"===e&&(0,s.jsx)(eC,{}),"table-view"===e&&a&&(0,s.jsx)(te,{tableName:a})]})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[692,576,735,441,517,358],()=>t(4576)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{4576:(e,t,a)=>{Promise.resolve().then(a.bind(a,2624))},2624:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>tt});var s=a(5155),l=a(2115),n=a(2398),r=a(1680),i=a(7443),o=a(2591),c=a(2783),d=a(4031);let u=l.forwardRef((e,t)=>{let{className:a,type:l,...n}=e;return(0,s.jsx)("input",{type:l,className:(0,d.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),ref:t,...n})});u.displayName="Input";var m=a(1027);let h=(0,m.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),x=l.forwardRef((e,t)=>{let{className:a,variant:l,...n}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,d.cn)(h({variant:l}),a),...n})});x.displayName="Alert",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("h5",{ref:t,className:(0,d.cn)("mb-1 font-medium leading-none tracking-tight",a),...l})}).displayName="AlertTitle";let f=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{ref:t,className:(0,d.cn)("text-sm [&_p]:leading-relaxed",a),...l})});f.displayName="AlertDescription";var p=a(33),g=a(6217),N=a(689);let v=g.bL;g.l9;let j=g.ZL;g.bm;let b=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.hJ,{ref:t,className:(0,d.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...l})});b.displayName=g.hJ.displayName;let w=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(j,{children:[(0,s.jsx)(b,{}),(0,s.jsxs)(g.UC,{ref:t,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...n,children:[l,(0,s.jsxs)(g.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(N.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});w.displayName=g.UC.displayName;let y=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};y.displayName="DialogHeader";let C=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};C.displayName="DialogFooter";let E=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.hE,{ref:t,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",a),...l})});E.displayName=g.hE.displayName;let S=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(g.VY,{ref:t,className:(0,d.cn)("text-sm text-muted-foreground",a),...l})});S.displayName=g.VY.displayName;var R=a(2317);let T=(0,m.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),A=l.forwardRef((e,t)=>{let{className:a,variant:l,size:n,asChild:r=!1,...i}=e,o=r?R.DX:"button";return(0,s.jsx)(o,{className:(0,d.cn)(T({variant:l,size:n,className:a})),ref:t,...i})});function k(e){let{open:t,onClose:a,onSubmit:n}=e,[r,i]=(0,l.useState)(""),[o,d]=(0,l.useState)(""),[m,h]=(0,l.useState)(""),[p,g]=(0,l.useState)(!1),N=async e=>{e.preventDefault(),h(""),g(!0);try{await n({accountId:r,apiToken:o}),localStorage.setItem("cf_credentials",JSON.stringify({accountId:r,apiToken:o})),a()}catch(e){h(e.message)}finally{g(!1)}};return(0,s.jsx)(v,{open:t,onOpenChange:a,children:(0,s.jsxs)(w,{className:"sm:max-w-md",children:[(0,s.jsxs)(y,{children:[(0,s.jsx)(E,{children:"Connect to Cloudflare"}),(0,s.jsx)(S,{children:"Enter your Cloudflare credentials to push your database to production."})]}),(0,s.jsxs)("form",{onSubmit:N,className:"space-y-4 mt-4",children:[m&&(0,s.jsx)(x,{variant:"destructive",children:(0,s.jsx)(f,{children:m})}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:"Account ID"}),(0,s.jsx)(u,{placeholder:"Your Cloudflare Account ID",value:r,onChange:e=>i(e.target.value),required:!0})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:"API Token"}),(0,s.jsx)(u,{type:"password",placeholder:"Your D1 Database API Token",value:o,onChange:e=>d(e.target.value),required:!0})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,s.jsx)(A,{type:"button",variant:"outline",onClick:a,children:"Cancel"}),(0,s.jsxs)(A,{type:"submit",disabled:p,children:[p&&(0,s.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Connect"]})]})]})]})})}A.displayName="Button";var _=a(6528),O=a(1868);let L=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(O.bL,{ref:t,className:(0,d.cn)("relative overflow-hidden",a),...n,children:[(0,s.jsx)(O.LM,{className:"h-full w-full rounded-[inherit]",children:l}),(0,s.jsx)(I,{}),(0,s.jsx)(O.OK,{})]})});L.displayName=O.bL.displayName;let I=l.forwardRef((e,t)=>{let{className:a,orientation:l="vertical",...n}=e;return(0,s.jsx)(O.VM,{ref:t,orientation:l,className:(0,d.cn)("flex touch-none select-none transition-colors","vertical"===l&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===l&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",a),...n,children:(0,s.jsx)(O.lr,{className:"relative flex-1 rounded-full bg-border"})})});I.displayName=O.VM.displayName;let U=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:t,className:(0,d.cn)("w-full caption-bottom text-sm",a),...l})})});U.displayName="Table";let P=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("thead",{ref:t,className:(0,d.cn)("[&_tr]:border-b",a),...l})});P.displayName="TableHeader";let D=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tbody",{ref:t,className:(0,d.cn)("[&_tr:last-child]:border-0",a),...l})});D.displayName="TableBody",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tfoot",{ref:t,className:(0,d.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...l})}).displayName="TableFooter";let F=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("tr",{ref:t,className:(0,d.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...l})});F.displayName="TableRow";let M=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("th",{ref:t,className:(0,d.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...l})});M.displayName="TableHead";let z=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("td",{ref:t,className:(0,d.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...l})});z.displayName="TableCell",l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)("caption",{ref:t,className:(0,d.cn)("mt-4 text-sm text-muted-foreground",a),...l})}).displayName="TableCaption";let Q=function(e){let{preview:t=[],onConfirm:a,onCancel:n,isConfirming:r,error:i,isLoading:o,success:u}=e,[m,h]=(0,l.useState)(!0);if(o)return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4 shadow-lg bg-background",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(c.A,{className:"h-5 w-5 text-neutral-600 shrink-0 mt-0.5 animate-spin"}),(0,s.jsx)("div",{className:"flex-1 space-y-3",children:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"font-medium text-neutral-800",children:"Preparing Push Migration"}),(0,s.jsx)("p",{className:"text-sm text-neutral-600",children:"Checking local migrations..."})]})})]})})});if(!(null==t?void 0:t.length))return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4",children:(0,s.jsx)("p",{className:"text-sm font-medium",children:"No migrations to preview"})})});let x=t.filter(e=>"will be applied"===e.action).length,f=t.filter(e=>"skipped"===e.action).length;t.filter(e=>"applied"===e.action).length;let p=e=>{switch(e){case"will be applied":return"\uD83D\uDD52️";case"applied":case"skipped":return"✅";case"failed":return"❌";default:return""}};return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:(0,d.cn)("rounded-lg border p-4 shadow-lg",i?"bg-destructive/15":"bg-background"),children:(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h5",{className:"font-medium text-neutral-900",children:"Push Migration Preview"}),(0,s.jsx)("button",{onClick:n,className:"text-neutral-500 hover:text-neutral-900 p-1 rounded-md hover:bg-neutral-100",children:(0,s.jsx)(N.A,{className:"h-4 w-4"})})]}),(0,s.jsxs)("p",{className:"text-sm text-neutral-700",children:[x," migration(s) \uD83D\uDD52️ pending, ",f," to ✅ skip"]}),i?(0,s.jsx)("p",{className:"text-sm text-destructive font-medium mt-1",children:i.message}):u&&(0,s.jsx)("p",{className:"text-sm text-green-700 font-medium mt-1",children:u})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("button",{onClick:()=>h(!m),className:"text-sm font-medium hover:underline",children:m?"Hide Details":"Show Details"}),m&&(0,s.jsx)(L,{className:"h-[480px] mt-2 rounded border border-neutral-200",children:(0,s.jsxs)(U,{children:[(0,s.jsx)(P,{children:(0,s.jsxs)(F,{children:[(0,s.jsx)(M,{children:"Migration"}),(0,s.jsx)(M,{className:"text-center w-24",children:"Status"})]})}),(0,s.jsx)(D,{children:t.map((e,t)=>(0,s.jsxs)(F,{children:[(0,s.jsx)(z,{className:"font-mono text-xs",children:e.name}),(0,s.jsx)(z,{className:"text-center align-middle",children:p(e.action)})]},t))})]})})]}),(0,s.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,s.jsx)(A,{onClick:a,disabled:r||0===x,className:"flex-1",children:r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Confirming..."]}):"Confirm Push"}),(0,s.jsx)(A,{variant:"outline",onClick:n,disabled:r,className:"flex-1",children:"Cancel"})]})]})})})},V=function(e){let{preview:t=[],onConfirm:a,onCancel:n,onDataPull:r,isConfirming:i,isDataPulling:o,error:u,isLoading:m,success:h}=e;console.log("PullPreviewToast rendered with:",{previewLength:t.length,isConfirming:i,error:u,isLoading:m}),(0,l.useEffect)(()=>(console.log("PullPreviewToast mounted/updated"),()=>console.log("PullPreviewToast unmounted")),[]);let[x,f]=(0,l.useState)(!1);if(m)return console.log("Rendering loading state"),(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border p-4 shadow-lg bg-background",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(c.A,{className:"h-5 w-5 text-neutral-600 shrink-0 mt-0.5 animate-spin"}),(0,s.jsx)("div",{className:"flex-1 space-y-3",children:(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"font-medium text-neutral-800",children:"Preparing Pull Migration"}),(0,s.jsx)("p",{className:"text-sm text-neutral-600",children:"Checking remote migrations..."})]})})]})})});if(!(null==t?void 0:t.length))return console.log("No preview data available"),(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 w-[600px]",children:(0,s.jsx)("div",{className:"rounded-lg border bg-destructive/15 p-4",children:(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)("p",{className:"text-sm font-medium text-destructive",children:"No preview data available"})})})});let p=t.filter(e=>(e.migration||e.name||"").endsWith(".sql")),g=p.length;console.log("Migration stats:",{totalMigrations:g});let v=h&&!o&&!u;return(0,s.jsx)("div",{className:"fixed bottom-4 right-4 z-50 font-sans w-[600px]",children:(0,s.jsx)("div",{className:(0,d.cn)("rounded-lg border p-4 shadow-lg",u?"bg-destructive/15":"bg-background"),children:(0,s.jsx)("div",{className:"flex items-start gap-x-1",children:(0,s.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h5",{className:(0,d.cn)("font-medium",u?"text-destructive":"text-neutral-900"),children:u?"Pull Migration Error":"Pull Migration Preview"}),(0,s.jsx)("button",{onClick:n,className:"text-neutral-500 hover:text-neutral-900 p-1 rounded-md hover:bg-neutral-100",children:(0,s.jsx)(N.A,{className:"h-4 w-4"})})]}),(0,s.jsx)("p",{className:(0,d.cn)("text-sm",u?"text-destructive/80":"text-neutral-700"),children:"".concat(g," migration(s) will be applied")}),u&&(0,s.jsx)("p",{className:"text-sm text-destructive font-medium mt-1",children:u.message}),h&&(0,s.jsx)("p",{className:"text-sm text-green-700 font-medium mt-1",children:h})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("button",{onClick:()=>f(!x),className:"text-sm font-medium hover:underline",children:x?"Hide Details":"Show Details"}),x&&(0,s.jsx)(L,{className:"h-[480px] mt-2 rounded border border-neutral-200",children:(0,s.jsxs)("div",{className:"w-full",children:[(0,s.jsx)("div",{className:"bg-neutral-50 border-b px-4 py-2",children:(0,s.jsx)("div",{className:"text-sm font-medium text-neutral-600",children:"Migration"})}),(0,s.jsx)("div",{children:p.map((e,t)=>(0,s.jsx)("div",{className:"px-4 py-2 border-b last:border-0",children:(0,s.jsx)("div",{className:"font-mono text-xs",children:e.migration||e.name})},t))})]})})]}),(0,s.jsx)("div",{className:"flex flex-col gap-2 pt-1",children:(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(A,{onClick:a,disabled:i,className:"flex-1 ".concat(i?"cursor-not-allowed opacity-50":""),children:i?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Confirming..."]}):"Confirm Pull"}),(0,s.jsxs)("div",{className:"flex-1 flex flex-col gap-2",children:[(0,s.jsx)(A,{onClick:r,disabled:!v,variant:"outline",className:"w-full ".concat(v?"":"cursor-not-allowed opacity-50"),children:o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Syncing remote data..."]}):"Sync remote data"}),(0,s.jsx)("p",{className:"text-xs text-neutral-500 text-center",children:"75 records per table"})]})]})})]})})})})};var K=a(3409),J=a(2645),q=a(2488),Y=a(7193);let X=K.bL;K.YJ;let H=K.WT,W=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(K.l9,{ref:t,className:(0,d.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...n,children:[l,(0,s.jsx)(K.In,{asChild:!0,children:(0,s.jsx)(J.A,{className:"h-4 w-4 opacity-50"})})]})});W.displayName=K.l9.displayName;let B=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.PP,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...l,children:(0,s.jsx)(q.A,{className:"h-4 w-4"})})});B.displayName=K.PP.displayName;let G=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.wn,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1",a),...l,children:(0,s.jsx)(J.A,{className:"h-4 w-4"})})});G.displayName=K.wn.displayName;let Z=l.forwardRef((e,t)=>{let{className:a,children:l,position:n="popper",...r}=e;return(0,s.jsx)(K.ZL,{children:(0,s.jsxs)(K.UC,{ref:t,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:n,...r,children:[(0,s.jsx)(B,{}),(0,s.jsx)(K.LM,{className:(0,d.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:l}),(0,s.jsx)(G,{})]})})});Z.displayName=K.UC.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.JU,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-sm font-semibold",a),...l})}).displayName=K.JU.displayName;let $=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(K.q7,{ref:t,className:(0,d.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(K.VF,{children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})}),(0,s.jsx)(K.p4,{children:l})]})});$.displayName=K.q7.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(K.wv,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...l})}).displayName=K.wv.displayName;var ee=a(2303),et=a(319),ea=a(5942);function es(e){let{value:t,onValueChange:a,isLoading:l,disabled:n,showPreview:r}=e;return(0,s.jsxs)(X,{value:t,onValueChange:a,disabled:n||l||r,children:[(0,s.jsx)(W,{className:"w-full bg-white border-neutral-200 font-medium",children:(0,s.jsx)("div",{className:"flex items-center gap-1 text-sm",children:l||r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin text-muted-foreground"}),(0,s.jsx)("span",{className:"text-muted-foreground font-medium",children:"pull"===t?"Pulling...":"syncing"===t?"Syncing...":"production"===t?"Pushing...":"Loading..."})]}):(0,s.jsx)(H,{placeholder:"Environment",className:"w-full"})})}),(0,s.jsxs)(Z,{children:[(0,s.jsx)($,{value:"local",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(ee.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Local"})]})}),(0,s.jsx)($,{value:"pull",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(et.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Pull remote"})]})}),(0,s.jsx)($,{value:"production",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(ea.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Push remote"})]})})]})]})}function el(e){var t;let{className:a,currentView:d,onNavigate:m,onTableSelect:h}=e,{tables:g,refreshTables:N,isLoading:v,error:j}=(0,p.t)(),[b,w]=(0,l.useState)([]),[y,C]=(0,l.useState)(""),[E,S]=(0,l.useState)("local"),[R,T]=(0,l.useState)(!1),[A,O]=(0,l.useState)(null),[L,I]=(0,l.useState)(!1),{isConnecting:U,isPushing:P,showPreview:D,connectToCloudflare:F,pushToRemote:M,pullFromRemote:z,pullToRemotePreview:K,validateStoredCredentials:J,PreviewUI:q}=function(){var e,t;let[a,n]=(0,l.useState)(!1),[r,i]=(0,l.useState)(!1),[o,c]=(0,l.useState)(!1),[d,u]=(0,l.useState)(!1),[m,h]=(0,l.useState)(null),[x,f]=(0,l.useState)(null),[g,N]=(0,l.useState)(null),[v,j]=(0,l.useState)(null),[b,w]=(0,l.useState)("local"),{toast:y}=(0,_.dj)(),{refreshTables:C}=(0,p.t)(),E=()=>{u(!1),h(null),f(null),N(null),j(null)},S=async()=>{let e=localStorage.getItem("cf_credentials");if(!e)return null;try{let t=JSON.parse(e),a=await fetch("/api/cloudflare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error("Invalid stored credentials");let s=await a.json();return{...t,databaseId:s.database.id}}catch(e){return console.error("Failed to validate stored credentials:",e),localStorage.removeItem("cf_credentials"),null}},R=async()=>{try{N("push"),u(!0),i(!0),f(null),j(null),h({preview:[]});let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/push-remote/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to generate preview")}h(s.details.details)}catch(e){console.error("Push to remote preview failed:",e),f(e),y({title:"Preview Failed",description:e.message||"Failed to generate preview",variant:"destructive"})}finally{i(!1)}},T=async()=>{try{i(!0),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/push-remote/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm push")}h(e=>({...e,preview:e.preview.map(e=>({...e,action:"will be applied"===e.action?"applied":e.action}))})),j("Applied ".concat(s.details.applied," migration(s), skipped ").concat(s.details.skipped,".")),w("local")}catch(e){console.error("Push to remote confirm failed:",e),f(e),w("local")}finally{i(!1)}},A=async()=>{try{N("pull"),u(!0),i(!0),f(null),j(null),h({preview:[]});let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-remote/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to generate pull preview")}h(s.details)}catch(e){console.error("Pull to remote preview failed:",e),f(e),y({title:"Preview Failed",description:e.message||"Failed to generate pull preview",variant:"destructive"})}finally{i(!1)}},k=async()=>{try{i(!0),w("pull"),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-remote/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm pull")}j("Pull migrations applied successfully."),h(e=>({...e,preview:e.preview.map(e=>({...e,action:"will be applied"===e.action?"applied":e.action}))})),await C()}catch(e){console.error("Pull to remote confirm failed:",e),f(e)}finally{i(!1),w("local")}},O=async()=>{try{c(!0),w("syncing"),f(null),j(null);let t=await S();if(!t)throw Error("No valid credentials found");let a=await fetch("/api/pull-data/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),s=await a.json();if(!s.success){var e;throw Error((null===(e=s.error)||void 0===e?void 0:e.message)||"Failed to confirm data pull")}j("Remote data synced successfully."),await C()}catch(e){console.error("Data pull confirm failed:",e),f(e)}finally{c(!1),w("local")}};async function L(e){try{n(!0);let t=await fetch("/api/cloudflare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json();if(!t.ok)throw Error(a.error||"Failed to connect to Cloudflare");localStorage.setItem("cf_credentials",JSON.stringify({...e,databaseId:a.database.id})),y({title:"Connected to Cloudflare",description:"Connected to database: ".concat(a.database.name),variant:"default"})}catch(e){throw y({title:"Connection Failed",description:e.message||"Failed to connect to Cloudflare",variant:"destructive"}),e}finally{n(!1)}}let I=d&&("pull"===g?(0,s.jsx)(V,{preview:(null==m?void 0:m.preview)||[],onConfirm:k,onDataPull:O,onCancel:E,isConfirming:r,isDataPulling:o,error:x,success:v,isLoading:r&&!(null==m?void 0:null===(e=m.preview)||void 0===e?void 0:e.length)}):(0,s.jsx)(Q,{preview:(null==m?void 0:m.preview)||[],onConfirm:T,onCancel:E,isConfirming:r,error:x,success:v,isLoading:r&&!(null==m?void 0:null===(t=m.preview)||void 0===t?void 0:t.length)}));return{isConnecting:a,isPushing:r,isDataPulling:o,showPreview:d,previewError:x,environment:b,setEnvironment:w,pushToRemote:R,pullToRemotePreview:A,confirmPull:k,confirmDataPull:O,connectToCloudflare:L,validateStoredCredentials:S,PreviewUI:I}}(),Y=(0,l.useMemo)(()=>{let e=[...(null==g?void 0:g.filter(e=>e.toLowerCase().includes(y.toLowerCase())))||[]].sort((e,t)=>e.localeCompare(t)),t=e.indexOf("d1_migrations");return -1!==t&&(e.splice(t,1),e.unshift("d1_migrations")),e},[g,y]),X=async e=>{try{I(!0),O(e),h(e)}catch(e){console.error("Error selecting table:",e)}finally{I(!1)}},H=async e=>{if(console.log("Environment change triggered:",e),S(e),"production"===e)try{if(!await J()){T(!0);return}await M()}catch(e){console.error("Environment change failed:",e),S("local")}else if("pull"===e)try{if(!await J()){T(!0);return}await K()}catch(e){console.error("Pull from remote failed:",e),S("local")}else S(e)};return(0,l.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/databases"),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to fetch databases");w(t.databases||[])}catch(e){console.error("Error fetching databases:",e)}})(),N()},[N]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("aside",{className:"".concat(a," top-[var(--banner-height,0px)] left-0 h-[calc(100vh-var(--banner-height,0px))] bg-neutral-50 p-4"),children:[(0,s.jsxs)("div",{className:"flex flex-col h-full font-sans",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(n.A,{className:"h-5 w-5"}),(0,s.jsx)("span",{className:"font-mono font-bold text-sm",children:"d1-studio"})]}),(0,s.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:"v0.2.12"})]}),j&&(0,s.jsxs)(x,{variant:"destructive",className:"mb-4",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsx)(f,{className:"text-sm ml-2",children:j})]}),(0,s.jsxs)("div",{className:"mb-2",children:[(0,s.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Database name"}),(0,s.jsx)("div",{className:"font-semibold text-sm",children:(null===(t=b[0])||void 0===t?void 0:t.database_name)||"No database found"})]}),(0,s.jsx)("div",{className:"mb-6",children:(0,s.jsx)(es,{className:"w-full",value:E,onValueChange:H,isLoading:P,disabled:U,showPreview:D})}),(0,s.jsx)("div",{className:"mb-3",children:(0,s.jsxs)("button",{className:"w-full flex items-center gap-x-1 border rounded-md text-sm font-medium transition-colors px-2 py-2\n ".concat("sql-editor"===d?"bg-neutral-900 text-white":"bg-white hover:bg-neutral-100"),onClick:()=>m("sql-editor"),disabled:L,children:[(0,s.jsx)(i.A,{className:"h-[16px] w-[16px]"}),"SQL editor"]})}),(0,s.jsxs)("div",{className:"relative mb-3 bg-white",children:[(0,s.jsx)(o.A,{className:"absolute left-2 top-2.5 h-4 w-4 text-neutral-500"}),(0,s.jsx)(u,{placeholder:"Search tables",value:y,onChange:e=>C(e.target.value),className:"pl-7"})]}),(0,s.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-1 flex-none",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium text-muted-foreground",children:["Tables ",(null==g?void 0:g.length)?"(".concat(g.length,")"):""]}),v&&(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,s.jsx)("div",{className:"overflow-y-auto flex-1",children:(0,s.jsxs)("div",{className:"pr-2 pb-4",children:[" ",!v&&0===Y.length&&(0,s.jsx)("div",{className:"text-sm font-medium text-muted-foreground px-2 py-2",children:y?"No matching tables found":j?"Error loading tables":"No tables available"}),Y.map(e=>(0,s.jsx)("button",{className:"w-full text-left text-sm font-medium rounded-md transition-colors px-2 py-2\n ".concat("table-view"===d&&A===e?"bg-[#F0F0F0] text-neutral-900 font-semibold":"text-neutral-700 hover:bg-[#F2F2F2]","\n ").concat(L&&"opacity-50 cursor-not-allowed"),onClick:()=>X(e),disabled:L,children:e},e))]})})]})]}),(0,s.jsx)(k,{open:R,onClose:()=>{T(!1),S("local")},onSubmit:F})]}),q]})}var en=a(707),er=a(1170),ei=a(3320),eo=a(5377);function ec(e){let{results:t}=e;return t&&Array.isArray(t)?(0,s.jsxs)("div",{className:"text-xs font-medium text-neutral-900 flex items-center gap-2 mb-2",children:[t.length," ",1===t.length?"row":"rows"," returned"]}):null}function ed(e){var t;let{error:a}=e;console.debug("SQLErrorDisplay - Received error prop:",a);let l=a&&"string"==typeof a.message?a:{message:"An unknown error occurred",details:{}};return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-neutral-700 text-sm",children:l.message}),(null===(t=l.details)||void 0===t?void 0:t.stderr)&&(0,s.jsx)("pre",{className:"mt-2 p-2 text-xs text-red-500 whitespace-pre-wrap",children:l.details.stderr})]})}function eu(e){let{query:t,results:a}=e;if(!(null==a?void 0:a.length))return(0,s.jsx)("div",{className:"text-sm text-neutral-500",children:"No results to display."});let l=null==t?void 0:t.trim().toLowerCase().startsWith("pragma table_info"),n=l?["Column Name","Type","Not Null","Default Value","Primary Key"]:Object.keys(a[0]),r=l?a.map(e=>({"Column Name":e.name,Type:e.type,"Not Null":1===e.notnull?"YES":"NO","Default Value":e.dflt_value||"(null)","Primary Key":1===e.pk?"YES":"NO"})):a;return(0,s.jsxs)("div",{className:"flex flex-col h-full",children:[(0,s.jsx)(ec,{results:r}),(0,s.jsx)("div",{className:"flex-1 overflow-auto border rounded-lg",children:(0,s.jsx)("div",{className:"min-w-full",children:(0,s.jsxs)(U,{children:[(0,s.jsx)(P,{children:(0,s.jsx)(F,{className:"bg-muted/50",children:n.map(e=>(0,s.jsx)(M,{className:"font-mono text-xs font-medium text-muted-foreground",children:e},e))})}),(0,s.jsx)(D,{children:r.map((e,t)=>(0,s.jsx)(F,{className:"hover:bg-muted/50",children:n.map(a=>{let l=e[a],n=null===l?"(null)":String(l);return(0,s.jsx)(z,{className:"font-monospace text-xs whitespace-nowrap",children:n},"".concat(t,"-").concat(a))})},t))})]})})})]})}var em=a(4471),eh=a(5325),ex=a(1703);let ef=em.bL,ep=em.l9;em.YJ,em.ZL,em.Pb,em.z6,l.forwardRef((e,t)=>{let{className:a,inset:l,children:n,...r}=e;return(0,s.jsxs)(em.ZP,{ref:t,className:(0,d.cn)("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",l&&"pl-8",a),...r,children:[n,(0,s.jsx)(eh.A,{className:"ml-auto"})]})}).displayName=em.ZP.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(em.G5,{ref:t,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",a),...l})}).displayName=em.G5.displayName;let eg=l.forwardRef((e,t)=>{let{className:a,sideOffset:l=4,...n}=e;return(0,s.jsx)(em.ZL,{children:(0,s.jsx)(em.UC,{ref:t,sideOffset:l,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",a),...n})})});eg.displayName=em.UC.displayName;let eN=l.forwardRef((e,t)=>{let{className:a,inset:l,...n}=e;return(0,s.jsx)(em.q7,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",l&&"pl-8",a),...n})});eN.displayName=em.q7.displayName,l.forwardRef((e,t)=>{let{className:a,children:l,checked:n,...r}=e;return(0,s.jsxs)(em.H_,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:n,...r,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(em.VF,{children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})}),l]})}).displayName=em.H_.displayName,l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(em.hN,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(em.VF,{children:(0,s.jsx)(ex.A,{className:"h-2 w-2 fill-current"})})}),l]})}).displayName=em.hN.displayName,l.forwardRef((e,t)=>{let{className:a,inset:l,...n}=e;return(0,s.jsx)(em.JU,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-sm font-semibold",l&&"pl-8",a),...n})}).displayName=em.JU.displayName,l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(em.wv,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...l})}).displayName=em.wv.displayName;let ev={SYNTAX_ERROR:"SYNTAX_ERROR",EXECUTION_ERROR:"EXECUTION_ERROR",TABLE_NOT_FOUND:"TABLE_NOT_FOUND",TABLE_EXISTS:"TABLE_EXISTS",FOREIGN_KEY_ERROR:"FOREIGN_KEY_ERROR",UNIQUE_CONSTRAINT_ERROR:"UNIQUE_CONSTRAINT_ERROR",NOT_NULL_CONSTRAINT_ERROR:"NOT_NULL_CONSTRAINT_ERROR",CHECK_CONSTRAINT_ERROR:"CHECK_CONSTRAINT_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"};function ej(e){if(console.debug("parseSQLError - Received error:",e),!e)return console.debug("parseSQLError - error is null or undefined."),{type:ev.UNKNOWN_ERROR,message:"An unknown error occurred",details:{}};let t="",a=null,s=null,l=e.cmd||e.details&&e.details.command;if(l){let e=l.match(RegExp('--command="(.+?)"',"s"));e&&console.debug("parseSQLError - Extracted original query:",s=e[1].replace(/\\n/g,"\n"))}let n=e.stderr||e.details&&e.details.stderr;if(n){let r=n.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,"");if(console.debug("parseSQLError - Cleaned stderr:",r),r.includes("env: node: No such file or directory"))return console.debug("parseSQLError - Detected 'env: node: No such file or directory' error."),{type:ev.EXECUTION_ERROR,message:e.message||"Execution error: env: node: No such file or directory",details:{originalQuery:s,stderr:r}};let i=r.match(/near "([^"]+)": syntax error at offset (\d+)/);if(i){let[e,l,n]=i;return a=parseInt(n,10),t='Syntax error near "'.concat(l,'" at position ').concat(a),console.debug("parseSQLError - Syntax error detected:",{near:l,offset:a}),{type:ev.SYNTAX_ERROR,message:t,details:{originalQuery:s,errorLocation:{offset:a,near:l},stderr:r}}}if(r.includes("UNIQUE constraint failed")){let[e,t,a]=r.match(/UNIQUE constraint failed: (\w+)\.(\w+)/)||[];return console.debug("parseSQLError - UNIQUE constraint error detected:",{table:t,column:a}),{type:ev.UNIQUE_CONSTRAINT_ERROR,message:"Unique constraint violation updating ".concat(t,".").concat(a),details:{originalQuery:s,stderr:r}}}if(r.includes("NOT NULL constraint failed")){let[e,t,a]=r.match(/NOT NULL constraint failed: (\w+)\.(\w+)/)||[];return console.debug("parseSQLError - NOT NULL constraint error detected:",{table:t,column:a}),{type:ev.NOT_NULL_CONSTRAINT_ERROR,message:"NOT NULL constraint violation updating ".concat(t,".").concat(a),details:{originalQuery:s,stderr:r}}}if(r.includes("CHECK constraint failed")){let[e,t]=r.match(/CHECK constraint failed: (\w+)/)||[];return console.debug("parseSQLError - CHECK constraint error detected:",{constraintName:t}),{type:ev.CHECK_CONSTRAINT_ERROR,message:"Check constraint violation updating ".concat(t),details:{originalQuery:s,stderr:r}}}if(r.includes("FOREIGN KEY constraint failed")){console.debug("parseSQLError - FOREIGN KEY constraint error detected.");let e=/--command="([^"]+)"/.exec(l||""),t=e?e[1]:null,a={};if(t){let e=/UPDATE\s+(\w+)\s+SET\s+(\w+)\s*=/.exec(t);e&&(a={table:e[1],column:e[2]})}let s=a.table?"Foreign key constraint violation updating ".concat(a.table,".").concat(a.column):"Foreign key constraint violation";return{type:ev.FOREIGN_KEY_ERROR,message:s,details:{...a,originalQuery:t,stderr:r}}}if(r.includes("no such table")){let[e,t]=r.match(/no such table: (\w+)/)||[];return console.debug("parseSQLError - Table not found error detected:",{table:t}),{type:ev.TABLE_NOT_FOUND,message:"Table not found: ".concat(t),details:{originalQuery:s,stderr:r}}}if(r.includes("already exists")){let[e,t]=r.match(/table (\w+) already exists/)||[];return console.debug("parseSQLError - Table exists error detected:",{table:t}),{type:ev.TABLE_EXISTS,message:"Table already exists: ".concat(t),details:{originalQuery:s,stderr:r}}}return console.debug("parseSQLError - No specific error match found. Using fallback for execution error."),{type:ev.EXECUTION_ERROR,message:e.message||"Failed to execute SQL command",details:{originalQuery:s,stderr:r}}}return console.debug("parseSQLError - No stderr available; using default error handling."),{type:ev.UNKNOWN_ERROR,message:e.message||"An unknown error occurred",details:{}}}let eb={"Show Tables":"SELECT name\n FROM sqlite_master \n WHERE type='table' \n AND name NOT LIKE 'sqlite_%';","Table Schema":"-- Table Schema\n-- Replace table_name with your table name\nPRAGMA table_info(table_name);","Table Indexes":"-- Table Indexes\n-- Replace table_name with your table name\nSELECT \n m.name as table_name,\n i.name as index_name,\n i.sql as index_definition\nFROM sqlite_master m\nJOIN sqlite_master i ON m.name = i.tbl_name\nWHERE m.type = 'table'\nAND i.type = 'index'\nAND m.name = 'table_name';","Foreign Keys":"-- Foreign Key Information\n-- Replace table_name with your table name\nPRAGMA foreign_key_list(table_name);","Table Data":"-- Table Data\n-- Replace table_name with your table name\nSELECT * FROM table_name LIMIT 100;","Row Count":"-- Row Count\n-- Replace table_name with your table name\nSELECT COUNT(*) as total_rows FROM table_name;","Column Stats":"-- Column Statistics\n-- Replace table_name and column_name with your values\nSELECT \n COUNT(*) as total_rows,\n COUNT(column_name) as non_null_count,\n COUNT(DISTINCT column_name) as unique_values,\n MIN(column_name) as min_value,\n MAX(column_name) as max_value\nFROM table_name;","Create Table":"CREATE TABLE IF NOT EXISTS new_table (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n name TEXT NOT NULL,\n email TEXT UNIQUE,\n status TEXT CHECK(status IN ('active', 'inactive')) DEFAULT 'active',\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Create indexes\nCREATE INDEX idx_new_table_name ON new_table(name);\nCREATE UNIQUE INDEX idx_new_table_email ON new_table(email);","Create View":"-- Create a view\nCREATE VIEW view_name AS\nSELECT column1, column2\nFROM table_name\nWHERE condition;"},ew={"Schema Information":["Show Tables","Table Schema","Table Indexes","Foreign Keys"],"Data Queries":["Table Data","Row Count","Column Stats"],"Schema Modification":["Create Table","Create View"]};function ey(e){let{onSelectQuery:t}=e;return(0,s.jsxs)(ef,{children:[(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsxs)(A,{variant:"outline",size:"sm",children:["Query Templates",(0,s.jsx)(J.A,{className:"ml-2 h-4 w-4"})]})}),(0,s.jsx)(eg,{align:"start",className:"w-72",children:Object.entries(ew).map(e=>{let[a,n]=e;return(0,s.jsxs)(l.Fragment,{children:[(0,s.jsx)("div",{className:"px-2 py-1.5 text-sm font-semibold text-neutral-900 font-sans",children:a}),n.map(e=>(0,s.jsx)(eN,{onClick:()=>t(e),className:"font-sans text-neutral-800",children:e},e))]},a)})})]})}function eC(){let{executeQuery:e,refreshTables:t}=(0,p.t)(),[a,n]=(0,l.useState)(null),[r,i]=(0,l.useState)(!1),[o,d]=(0,l.useState)(300),[u,m]=(0,l.useState)(!1),h=(0,l.useRef)(null),x=(0,l.useRef)(null);(0,l.useEffect)(()=>{x.current&&(x.current.style.height="".concat(o,"px"))},[o]);let f=(0,l.useCallback)(e=>{e.preventDefault();let t=e.pageY,a=e=>{d(Math.min(Math.max(o+(e.pageY-t),100),.8*window.innerHeight))},s=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",s)},[o]),g=async()=>{if(!h.current)return;let a=h.current.getValue().trim().replace(/;+$/,"");if(!a){n({success:!1,error:{message:"Query cannot be empty."}});return}try{var s,l,r,o;i(!0),n(null);let c=await e(a);/^(CREATE|DROP|ALTER)\s+TABLE/i.test(a)&&await t();let d=[];if(c.results){if(Array.isArray(c.results)){if(c.results.length>0&&(null===(s=c.results[0])||void 0===s?void 0:s.columns)&&(null===(l=c.results[0])||void 0===l?void 0:l.values)){let e=c.results[0];d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}else d=1===c.results.length&&c.results[0].results&&Array.isArray(c.results[0].results)?c.results[0].results:c.results}else if(c.results.columns&&c.results.values){let e=c.results;d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}}else if(c.result&&c.result.results){if(Array.isArray(c.result.results)){if(c.result.results.length>0&&(null===(r=c.result.results[0])||void 0===r?void 0:r.columns)&&(null===(o=c.result.results[0])||void 0===o?void 0:o.values)){let e=c.result.results[0];d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}else d=1===c.result.results.length&&c.result.results[0].results&&Array.isArray(c.result.results[0].results)?c.result.results[0].results:c.result.results}else if(c.result.results.columns&&c.result.results.values){let e=c.result.results;d=e.values.map(t=>e.columns.reduce((e,a,s)=>(e[a]=t[s],e),{}))}}n({success:!0,results:d})}catch(e){n({success:!1,error:ej(e)||{message:"An unknown error occurred",details:{}}})}finally{i(!1)}};return(0,s.jsxs)("div",{className:"h-full flex flex-col bg-white text-neutral-900 font-sans",children:[(0,s.jsx)("div",{className:"px-4 py-2 bg-neutral-100 border-b flex items-center gap-4",children:(0,s.jsx)(ey,{onSelectQuery:e=>{if(h.current){let t=Object.keys(eb).find(t=>t.toLowerCase()===e.toLowerCase());if(t){let e=eb[t];h.current.setValue(e),h.current.focus()}else console.warn("Query template not found for: ".concat(e))}}})}),(0,s.jsx)("div",{ref:x,className:"relative pt-2 overflow-hidden",style:{height:"".concat(o,"px"),minHeight:"100px"},children:(0,s.jsx)(en.Ay,{height:"100%",language:"sql",options:{minimap:{enabled:!1},fontSize:14,wordWrap:"on",automaticLayout:!0,lineNumbers:"on",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"},onMount:e=>{h.current=e,e.addCommand(monaco.KeyMod.CtrlCmd|monaco.KeyCode.Enter,()=>{g()})}})}),(0,s.jsx)("div",{className:"relative h-0.5 cursor-row-resize bg-neutral-200 group ".concat(u?"bg-neutral-300":"hover:bg-neutral-300"),onMouseDown:e=>{m(!0),f(e)},onMouseUp:()=>m(!1),children:(0,s.jsx)("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-neutral-900 rounded-sm px-0.5 \n ".concat(u?"visible":"invisible group-hover:visible"),children:(0,s.jsx)(er.A,{className:"h-3 w-3 text-white"})})}),(0,s.jsx)("div",{className:"px-4 py-3 bg-neutral-100 border-b font-sans",children:(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsx)("h3",{className:"text-sm font-medium",children:"Results"}),(0,s.jsxs)(A,{size:"sm",onClick:g,disabled:r,className:"flex items-center gap-1 text-sm font-medium",children:["Run",r?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(ei.A,{className:"h-4 w-4"}),(0,s.jsx)(eo.A,{className:"h-4 w-4"})]})]})]})}),(0,s.jsx)("div",{className:"flex-1 overflow-auto p-4 bg-white",children:(()=>{var e;if(r)return(0,s.jsxs)("div",{className:"flex items-center text-sm text-neutral-700",children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin mr-2 font-sans"}),"Running your query..."]});if(!a)return(0,s.jsx)("div",{className:"text-sm text-neutral-500 font-sans",children:"Run the query to see the results."});if(!a.success)return console.debug("SQLEditor - Rendering error:",a.error),(0,s.jsx)(ed,{error:a.error});let t=a.results;return t&&0!==t.length?(0,s.jsx)(eu,{query:(null===(e=h.current)||void 0===e?void 0:e.getValue())||"",results:t}):(0,s.jsx)("div",{className:"text-sm text-neutral-900 font-sans",children:"Success. No results to display."})})()})]})}var eE=a(6352);let eS=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(eE.bL,{ref:t,className:(0,d.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...l,children:(0,s.jsx)(eE.C1,{className:(0,d.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(Y.A,{className:"h-4 w-4"})})})});eS.displayName=eE.bL.displayName;var eR=a(138),eT=a(1598),eA=a(2884),ek=a(9710);let e_=ek.Kq,eO=ek.bL,eL=ek.l9,eI=l.forwardRef((e,t)=>{let{className:a,sideOffset:l=4,...n}=e;return(0,s.jsx)(ek.ZL,{children:(0,s.jsx)(ek.UC,{ref:t,sideOffset:l,className:(0,d.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",a),...n})})});eI.displayName=ek.UC.displayName;var eU=a(6235);let eP=(0,l.memo)(e=>{let{onRefresh:t,disabled:a}=e,[n,r]=(0,l.useState)(!1),i=async()=>{if(!n&&!a){r(!0);try{await t()}catch(e){console.error("Refresh failed:",e)}finally{setTimeout(()=>{r(!1)},500)}}};return(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",onClick:i,disabled:n||a,className:"h-8",children:n?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(eU.A,{className:"h-4 w-4"})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Refresh table data"})})]})})});eP.displayName="RefreshButton";var eD=a(7973);let eF=(0,l.memo)(e=>{let{tableName:t,onSync:a}=e,[n,r]=(0,l.useState)(!1),{toast:i}=(0,_.dj)();if("d1_migrations"!==t)return null;let o=async()=>{try{r(!0);let e=await fetch("/api/migrations/sync-files",{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error||"Failed to sync migrations");let{added:s=[],removed:l=[]}=t.details||{};i({title:"Migrations Synced",description:"Added: ".concat(s.length,", Removed: ").concat(l.length)}),a&&await a()}catch(e){console.error("Error syncing migrations:",e),i({variant:"destructive",title:"Sync Failed",description:e.message})}finally{r(!1)}};return(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",onClick:o,disabled:n,className:"h-8",children:n?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(eD.A,{className:"h-4 w-4"})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Sync migration files with d1_migrations table"})})]})})});eF.displayName="SyncMigrationsButton";var eM=a(358),ez=a(8742),eQ=a(6697);let eV=(0,l.memo)(e=>{let{tableName:t,onDownloadStart:a,onDownloadComplete:n,disabled:r}=e,[i,o]=(0,l.useState)(!1),{toast:d}=(0,_.dj)(),u=(e,t)=>{try{let a=new Blob([e],{type:"application/octet-stream"}),s=window.URL.createObjectURL(a),l=document.createElement("a");l.href=s,l.download=t,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(s)}catch(e){throw console.error("Error during file download:",e),e}},m=async e=>{if(!r)try{o(!0),null==a||a();let s=await fetch("/api/tables/".concat(t)),l=await s.json();if(!s.ok)throw Error(l.error||"Failed to fetch data");let{data:r,schema:i}=l;if(!(null==r?void 0:r.length)){d({title:"No Data",description:"The table is empty.",variant:"destructive"});return}let c=new Date().toISOString().split("T")[0],m="".concat(t,"_").concat(c,".").concat(e);switch(e){case"json":{let e=JSON.stringify(r,null,2);u(e,m);break}case"csv":{let e=Object.keys(r[0]),t=[e.join(","),...r.map(t=>e.map(e=>{let a=t[e];if(null==a)return"";if("string"==typeof a){let e=a.replace(/"/g,'""');return'"'.concat(e,'"')}return a}).join(","))].join("\n");u(t,m);break}case"sql":{let e="CREATE TABLE IF NOT EXISTS ".concat(t," (\n")+i.map(e=>{let t=[];return e.pk&&t.push("PRIMARY KEY"),e.notnull||t.push("NOT NULL")," ".concat(e.name," ").concat(e.type).concat(t.length?" ".concat(t.join(" ")):"")}).join(",\n")+"\n);\n\n",a=r.map(e=>{let a=Object.keys(e),s=a.map(t=>{let a=e[t];return null===a?"NULL":"string"==typeof a?"'".concat(a.replace(/'/g,"''"),"'"):a});return"INSERT INTO ".concat(t," (").concat(a.join(", "),")\nVALUES (").concat(s.join(", "),");")}).join("\n");u(e+a,m)}}d({title:"Download Complete",description:"".concat(r.length," rows exported as ").concat(e.toUpperCase(),".")}),null==n||n()}catch(e){console.error("Download error:",e),d({variant:"destructive",title:"Download Failed",description:e.message})}finally{o(!1)}};return(0,s.jsxs)(ef,{children:[(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsx)(A,{variant:"outline",size:"icon",className:"h-8",disabled:i||r,children:i?(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(et.A,{className:"h-4 w-4"})})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Download table data"})})]})}),(0,s.jsxs)(eg,{align:"end",children:[(0,s.jsxs)(eN,{onClick:()=>m("json"),disabled:r,children:[(0,s.jsx)(eM.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download JSON"})]}),(0,s.jsxs)(eN,{onClick:()=>m("csv"),disabled:r,children:[(0,s.jsx)(ez.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download CSV"})]}),(0,s.jsxs)(eN,{onClick:()=>m("sql"),disabled:r,children:[(0,s.jsx)(eQ.A,{className:"mr-2 h-4 w-4"}),(0,s.jsx)("span",{children:"Download SQL"})]})]})]})});eV.displayName="DownloadButton";var eK=a(9045);let eJ=function(e){let{schema:t=[],visibleColumns:a=[],onColumnToggle:n}=e,[r,i]=(0,l.useState)("");(0,l.useEffect)(()=>{if(!t||0===t.length)return;let e=t.map(e=>e.name);0===a.length&&e.forEach(e=>n(e))},[t,a.length,n]);let o=t.filter(e=>e.name.toLowerCase().includes(r.toLowerCase())),c=o.map(e=>e.name),d=c.length>0&&c.every(e=>a.includes(e)),m=e=>{n(e)};return(0,s.jsxs)(ef,{children:[(0,s.jsx)(ep,{asChild:!0,children:(0,s.jsxs)(A,{size:"sm",variant:"outline",className:"font-semibold",children:[(0,s.jsx)(eK.A,{className:"h-4 w-4"}),"Columns (",a.length,")"]})}),(0,s.jsxs)(eg,{align:"end",className:"w-64 font-sans",children:[(0,s.jsx)("div",{className:"p-2",children:(0,s.jsx)(u,{placeholder:"Search columns...",value:r,onChange:e=>i(e.target.value),className:"h-8"})}),(0,s.jsxs)("div",{className:"flex items-center space-x-2 px-2 py-1.5 hover:bg-accent rounded-md",children:[(0,s.jsx)(eS,{id:"select-all-columns",checked:d,onCheckedChange:e=>{e?o.forEach(e=>{a.includes(e.name)||n(e.name)}):o.forEach(e=>{a.includes(e.name)&&n(e.name)})},className:"shrink-0"}),(0,s.jsxs)("label",{htmlFor:"select-all-columns",className:"flex-1 cursor-pointer text-sm font-medium",children:["Select All ",r&&"(Filtered)"]})]}),(0,s.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:o.map(e=>(0,s.jsxs)("div",{className:"flex items-start space-x-2 px-2 py-1.5 hover:bg-accent rounded-md",children:[(0,s.jsx)(eS,{id:"column-".concat(e.name),checked:a.includes(e.name),onCheckedChange:()=>m(e.name),className:"mt-1"}),(0,s.jsxs)("label",{htmlFor:"column-".concat(e.name),className:"flex-1 cursor-pointer",children:[(0,s.jsx)("div",{className:"text-sm font-medium",children:e.name}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:e.type.toLowerCase()})]})]},e.name))})]})]})},eq=(0,l.memo)(e=>{let{onAdd:t,onDelete:a,selectedCount:l,disabled:n,newRecordsCount:r,schema:i,visibleColumns:o,onColumnToggle:c}=e;return(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(e_,{children:(0,s.jsxs)(eO,{children:[(0,s.jsx)(eL,{asChild:!0,children:(0,s.jsx)("span",{children:(0,s.jsxs)(A,{size:"sm",variant:"outline",className:"font-semibold opacity-50 cursor-not-allowed",disabled:!0,children:[(0,s.jsx)(eR.A,{className:"h-4 w-4"}),"Filters"]})})}),(0,s.jsx)(eI,{children:(0,s.jsx)("p",{children:"Filters are not available yet. Coming soon!"})})]})}),(0,s.jsx)(eJ,{schema:i,visibleColumns:o,onColumnToggle:c}),(0,s.jsx)("div",{className:"h-4 border-r mx-2"}),(0,s.jsx)(A,{size:"sm",variant:"default",className:"font-semibold",onClick:t,children:"Add record"}),l>0&&(0,s.jsxs)(A,{size:"sm",className:"font-semibold",onClick:a,variant:"destructive",disabled:n||r>0,children:["Delete ",l," ",1===l?"record":"records"]})]})}),eY=(0,l.memo)(e=>{let{totalRows:t}=e;return(0,s.jsxs)("span",{className:"text-sm text-neutral-600",children:[t," ",1===t?"row":"rows"]})}),eX=(0,l.memo)(e=>{let{currentPage:t,totalPages:a,onPageChange:l,disabled:n,newRecordsCount:r}=e;return(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(A,{variant:"ghost",size:"icon",onClick:()=>{console.log("Pagination: navigating to previous page",t-1),l(t-1)},disabled:1===t||n||r>0,className:"h-8",children:(0,s.jsx)(eT.A,{className:"h-4 w-4"})}),(0,s.jsxs)("span",{className:"text-sm",children:["Page ",t," of ",a]}),(0,s.jsx)(A,{variant:"ghost",size:"icon",onClick:()=>{console.log("Pagination: navigating to next page",t+1),l(t+1)},disabled:t===a||n||r>0,className:"h-8",children:(0,s.jsx)(eA.A,{className:"h-4 w-4"})})]})}),eH=(0,l.memo)(e=>{let{value:t,onValueChange:a,disabled:l,newRecordsCount:n}=e;return(0,s.jsxs)(X,{value:t.toString(),onValueChange:a,disabled:l||n>0,children:[(0,s.jsx)(W,{className:"w-20 h-8",children:(0,s.jsx)(H,{})}),(0,s.jsxs)(Z,{children:[(0,s.jsx)($,{value:"50",children:"50"}),(0,s.jsx)($,{value:"100",children:"100"}),(0,s.jsx)($,{value:"250",children:"250"})]})]})}),eW=(0,l.memo)(e=>{let{onSave:t,onDiscard:a,totalChanges:l,isSaving:n}=e;return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(A,{size:"sm",variant:"ghost",className:"font-semibold",onClick:a,disabled:n,children:"Discard changes"}),(0,s.jsx)(A,{size:"sm",className:"font-semibold bg-green-600 hover:bg-green-700",variant:"default",onClick:t,disabled:n,children:n?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4 animate-spin"}),"Saving..."]}):"Save ".concat(l," ").concat(1===l?"change":"changes")})]})}),eB=e=>{let{selectedCount:t=0,onAdd:a,onDelete:l,onRefresh:n,totalRows:r=0,currentPage:i=1,totalPages:o=1,onPageChange:c,rowsPerPage:d=50,onRowsPerPageChange:u,tableName:m,onDownloadStart:h,onDownloadComplete:x,disabled:f=!1,editCount:p=0,newRecordsCount:g=0,onSaveChanges:N,onDiscardChanges:v,isSaving:j=!1,schema:b,visibleColumns:w,onColumnToggle:y}=e,C=p+g;return(0,s.jsx)("div",{className:"flex items-center justify-between p-3 border-b bg-background font-sans",children:(0,s.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,s.jsx)(eq,{onAdd:a,onDelete:l,selectedCount:t,disabled:f||j,newRecordsCount:g,schema:b,visibleColumns:w,onColumnToggle:y}),(0,s.jsx)("div",{className:"flex items-center gap-4",children:C>0?(0,s.jsx)(eW,{onSave:N,onDiscard:v,totalChanges:C,isSaving:j}):(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(eY,{totalRows:r}),(0,s.jsx)(eX,{currentPage:i,totalPages:o,onPageChange:c,disabled:f,newRecordsCount:g}),(0,s.jsx)(eH,{value:d,onValueChange:e=>{u(parseInt(e,10)),c(1)},disabled:f,newRecordsCount:g}),(0,s.jsx)(eP,{onRefresh:n,disabled:f}),(0,s.jsx)(eF,{tableName:m,onSync:n,disabled:f}),(0,s.jsx)(eV,{tableName:m,onDownloadStart:h,onDownloadComplete:x,disabled:f})]})})]})})};eB.displayName="TableToolbar";let eG=(0,l.memo)(eB);function eZ(e){let{value:t,row:a,column:n,schema:r,onChange:i,onStartEdit:o,isEditing:c}=e,d="string"==typeof t?t.replace(/^'|'$/g,""):t,[m,h]=(0,l.useState)(d),[x,f]=(0,l.useState)("auto"),p=(0,l.useRef)(null),g=(0,l.useRef)(null),N=r.find(e=>e.name===n),v=(0,l.useMemo)(()=>(null==N?void 0:N.check)||null,[N]),j=(0,l.useMemo)(()=>{var e;let t=(null==N?void 0:null===(e=N.type)||void 0===e?void 0:e.toLowerCase())||"";return"boolean"===t||"bool"===t||"integer"===t&&n.toLowerCase().startsWith("is_")},[N,n]);(0,l.useEffect)(()=>{h(d)},[d]),(0,l.useEffect)(()=>{if(p.current&&!c){let e=p.current.offsetWidth;f("".concat(e,"px"))}},[c]),(0,l.useEffect)(()=>{c&&g.current&&(g.current.focus(),g.current.select())},[c]),null==N||N.pk;let b=(0,l.useCallback)(e=>{let t=j?"true"===e?1:"false"===e?0:e:e;h(e),null==i||i(t)},[i,j]),w=(0,l.useCallback)(()=>{!c&&o&&o(d)},[c,o,d]),y="border-x border-neutral-200 px-3 py-2.5 text-xs font-mono whitespace-nowrap",C=(0,l.useMemo)(()=>null==d?"null":j?1===d||"1"===d||"true"===d?"true":"false":d.toString(),[d,j]);return c?j?(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)("div",{className:"w-full h-full",children:(0,s.jsxs)(X,{value:C,onValueChange:b,defaultOpen:c,children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select value"})}),(0,s.jsxs)(Z,{className:"min-w-[8rem]",children:[(0,s.jsx)($,{value:"true",children:"true"}),(0,s.jsx)($,{value:"false",children:"false"})]})]})})}):(null==v?void 0:v.length)>0?(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)("div",{className:"w-full h-full",children:(0,s.jsxs)(X,{value:null!=m?m:v[0],onValueChange:b,defaultOpen:c,children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select ".concat(n)})}),(0,s.jsx)(Z,{className:"min-w-[8rem]",children:v.map(e=>(0,s.jsx)($,{value:e,children:e},e))})]})})}):(0,s.jsx)(z,{className:"".concat(y," p-0"),style:{width:x},children:(0,s.jsx)(u,{ref:g,value:null!=m?m:"",onChange:e=>b(e.target.value),className:"w-full min-w-0 rounded-none border-0 bg-orange-50 text-orange-900"})}):(0,s.jsx)(z,{ref:p,className:"".concat(y," cursor-pointer hover:bg-muted/50"),onClick:w,children:C})}var e$=a(5524);function e0(e){return"string"==typeof e?e.replace(/^'|'$/g,""):e}function e1(e){let{schema:t,onRemove:a,onChange:n,showCheckbox:r=!1,initialData:i={}}=e,[o,c]=(0,l.useState)(()=>t.reduce((e,t)=>{var a;let s=null!==(a=i[t.name])&&void 0!==a?a:null;if(s=e0(s),"INTEGER"===t.type.toUpperCase()&&1===t.pk&&(null===s||""===s))s="[Auto-generated INT]";else if(null===s){if(t.dflt_value){let e=e0(t.dflt_value);s=e.includes("randomblob")||e.includes("lower(hex(")?"[Auto-generated UUID]":"INTEGER"===t.type.toUpperCase()&&1===t.pk&&(e.includes("AUTOINCREMENT")||e.includes("AUTO_INCREMENT")||e.includes("nextval")||""===e||"0"===e)?"[Auto-generated INT]":e}else"INTEGER"===t.type.toUpperCase()?s="":"TEXT"===t.type.toUpperCase()&&(s="")}return e[t.name]=s,e},{})),d=(e,t)=>{let a={...o,[e]:t};c(a),null==n||n(a)},m=e=>{var t;let a=(null===(t=e.type)||void 0===t?void 0:t.toLowerCase())||"";return"boolean"===a||"bool"===a||"integer"===a&&e.name.toLowerCase().startsWith("is_")};return(0,s.jsxs)(F,{className:"bg-orange-50/50",children:[(0,s.jsx)(z,{className:"w-10 p-0",children:(0,s.jsx)("div",{className:"pl-1 flex items-center",children:r?(0,s.jsx)(eS,{disabled:!0}):(0,s.jsx)(A,{variant:"ghost",size:"icon",className:"h-8 w-8 text-orange-700 hover:text-orange-800",onClick:a,children:(0,s.jsx)(e$.A,{className:"h-4 w-4"})})})}),t.map(e=>{var t,a;let l=1===e.pk,n=e.check||null;if(m(e)){let t="false";if(null!==e.dflt_value&&void 0!==e.dflt_value){let a=e.dflt_value.toString().toLowerCase();t="1"===a||"true"===a||"'true'"===a||'"true"'===a?"true":"false"}let a=null!==o[e.name]&&void 0!==o[e.name]?1===o[e.name]||!0===o[e.name]||"true"===o[e.name]?"true":"false":t;return(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)("div",{className:"w-full",children:(0,s.jsxs)(X,{value:a,onValueChange:t=>d(e.name,"true"===t?1:0),children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",title:"Default: ".concat(t),children:(0,s.jsx)(H,{placeholder:"Select ".concat(e.name)})}),(0,s.jsxs)(Z,{className:"min-w-[8rem]",children:[(0,s.jsx)($,{value:"true",children:"true"}),(0,s.jsx)($,{value:"false",children:"false"})]})]})})},e.name)}return(null==n?void 0:n.length)>0?(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)("div",{className:"w-full",children:(0,s.jsxs)(X,{value:null!==(t=o[e.name])&&void 0!==t?t:n[0],onValueChange:t=>d(e.name,t),children:[(0,s.jsx)(W,{className:"w-full h-9 min-w-0 rounded-none border-0 bg-orange-50 text-orange-900",children:(0,s.jsx)(H,{placeholder:"Select ".concat(e.name)})}),(0,s.jsx)(Z,{className:"min-w-[8rem]",children:n.map(e=>(0,s.jsx)($,{value:e,children:e},e))})]})})},e.name):(0,s.jsx)(z,{className:"border-x border-neutral-200 p-0",children:(0,s.jsx)(u,{value:null!==(a=o[e.name])&&void 0!==a?a:"",onChange:t=>d(e.name,t.target.value),className:"w-full min-w-0 rounded-none border-0 px-2 bg-orange-50 text-orange-900",placeholder:l&&"INTEGER"===e.type.toUpperCase()?"Auto-generated INT":l?"Auto-generated":"Enter ".concat(e.name)})},e.name)})]})}let e4=function(e){let{isOpen:t,onClose:a,onConfirm:l,selectedCount:n,tableName:i,isDeleting:o,error:c}=e;return(0,s.jsx)(v,{open:t,onOpenChange:a,children:(0,s.jsxs)(w,{className:"sm:max-w-md font-sans",children:[(0,s.jsxs)(y,{children:[(0,s.jsxs)(E,{className:"mb-2",children:["Delete ",n," ",1===n?"Record":"Records","?"]}),(0,s.jsxs)(S,{className:"text-neutral-600 font-medium",children:["You're about to delete ",n," ",1===n?"record":"records"," from ",(0,s.jsx)("span",{className:"font-sans font-bold text-neutral-900",children:i}),"."]})]}),c&&(0,s.jsxs)(x,{variant:"destructive",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsx)(f,{children:c})]}),(0,s.jsxs)(C,{className:"flex gap-1 mt-2 sm:justify-end font-sans",children:[(0,s.jsx)(A,{variant:"outline",onClick:a,disabled:o,children:"Cancel"}),(0,s.jsx)(A,{variant:"destructive",onClick:l,disabled:o,children:o?"Deleting...":"Delete"})]})]})})};function e2(e){var t;let{isOpen:a,onClose:l,error:n}=e;if(!n||!a)return null;let{message:i,icon:o}=n?{message:n.message,icon:r.A}:{message:"An unknown error occurred.",icon:r.A};return(0,s.jsx)(v,{open:a,onOpenChange:l,children:(0,s.jsxs)(w,{className:"sm:max-w-md font-sans",children:[(0,s.jsx)(y,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(o,{className:"h-4 w-4 text-red-500"}),(0,s.jsx)(E,{children:"Error"})]})}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("p",{className:"bg-neutral-100 p-2 rounded-md text-neutral-900",children:i}),(null===(t=n.details)||void 0===t?void 0:t.suggestions)&&(0,s.jsxs)("div",{className:"text-sm space-y-1",children:[(0,s.jsx)("p",{className:"font-medium",children:"Suggestions:"}),(0,s.jsx)("ul",{className:"list-disc pl-4 space-y-1",children:n.details.suggestions.map((e,t)=>(0,s.jsx)("li",{children:e},t))})]})]}),(0,s.jsx)("div",{className:"flex justify-end gap-2 mt-4",children:(0,s.jsx)(A,{variant:"default",onClick:l,children:"Got it"})})]})})}let e5=e=>{let{children:t,width:a,onResize:n,className:r=""}=e,[i,o]=(0,l.useState)(!1),c=(0,l.useRef)(null),d=(0,l.useCallback)(e=>{var t;e.preventDefault(),o(!0);let a=e.clientX,s=(null===(t=c.current)||void 0===t?void 0:t.offsetWidth)||0,l=e=>{c.current&&n(Math.max(s+(e.clientX-a),100))},r=()=>{o(!1),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",r)};document.addEventListener("mousemove",l),document.addEventListener("mouseup",r)},[n]);return(0,s.jsxs)("th",{ref:c,className:"relative ".concat(r," ").concat(i?"select-none":""),style:{width:"".concat(a,"px")},children:[t,(0,s.jsx)("div",{className:"absolute top-0 right-0 h-full w-1 cursor-col-resize group hover:bg-neutral-300",onMouseDown:d})]})},e3=e=>{let{columns:t,children:a,onColumnsResize:n,className:r=""}=e,[i,o]=(0,l.useState)(t.reduce((e,t)=>({...e,[t.key]:t.width||150}),{})),c=(0,l.useCallback)((e,t)=>{o(a=>{let s={...a,[e]:t};return null==n||n(s),s})},[n]);return(0,s.jsx)("div",{className:"w-full ".concat(r),children:l.Children.map(a,e=>l.isValidElement(e)?l.cloneElement(e,{onResize:c}):e)})};var e9=a(3998),e8=a(3303),e7=a(8729);function e6(e){let{column:t,sortConfig:a,onSort:l,children:n}=e,r=a[t];return(0,s.jsx)("div",{className:"flex items-center w-full",children:(0,s.jsxs)(A,{variant:"ghost",size:"sm",className:"h-8 hover:bg-neutral-100 w-full justify-between",onClick:()=>{l(t,r?"asc"===r?"desc":null:"asc")},children:[(0,s.jsx)("span",{className:"flex items-center gap-1 font-mono",children:n}),(0,s.jsxs)("span",{className:"shrink-0",children:["asc"===r&&(0,s.jsx)(e9.A,{className:"h-4 w-4"}),"desc"===r&&(0,s.jsx)(e8.A,{className:"h-4 w-4"}),!r&&(0,s.jsx)(e7.A,{className:"h-4 w-4"})]})]})})}function te(e){let{tableName:t}=e,{executeQuery:a,getCachedTable:n,updateTableCache:i,invalidateTable:o,switchTable:d,activeTable:u,updateTableData:m}=(0,p.t)(),{toast:h}=(0,_.dj)(),[g,N]=(0,l.useState)(()=>[]),[v,j]=(0,l.useState)([]),[b,w]=(0,l.useState)(0),[y,C]=(0,l.useState)(!0),[E,S]=(0,l.useState)(!1),[R,T]=(0,l.useState)(null),[A,k]=(0,l.useState)(new Map),[O,Q]=(0,l.useState)(new Set),[V,K]=(0,l.useState)([]),[J,q]=(0,l.useState)(1),[Y,X]=(0,l.useState)(50),[H,W]=(0,l.useState)(1),[B,G]=(0,l.useState)(new Set),Z=(0,l.useRef)(null),[$,ee]=(0,l.useState)(!1),[et,ea]=(0,l.useState)(!1),[es,el]=(0,l.useState)(null),[en,er]=(0,l.useState)(!1),[ei,eo]=(0,l.useState)(null),[ec,ed]=(0,l.useState)({}),[eu,em]=(0,l.useState)({}),[eh,ex]=(0,l.useState)([]);(0,l.useEffect)(()=>{if(t){let e=localStorage.getItem("table-widths-".concat(t));e&&em(JSON.parse(e));let a=localStorage.getItem("table-columns-".concat(t));if(a)try{ex(JSON.parse(a))}catch(e){ex([])}}},[t]);let ef=(0,l.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!t)return;let a=n(t,J,Y);if(a&&!e){N(a.data),j(a.schema),w(a.meta.total),W(a.meta.totalPages);return}C(!0),T(null),G(new Set);try{let a=await d(t,{page:J,limit:Y,forceFetch:e});return a.meta.page=J,N(Array.isArray(a.data)?a.data:[]),j(a.schema||[]),w(a.meta.total),W(a.meta.totalPages),!0}catch(e){throw console.error("Error loading table data:",e),T(e.message||String(e)),h({variant:"destructive",title:"Error",description:"Failed to load table: ".concat(e.message)}),e}finally{C(!1)}},[t,J,Y,n,d,h,eh.length]),ep=(0,l.useCallback)(e=>{ex(a=>{let s=a.includes(e)?a.filter(t=>t!==e):[...a,e];return localStorage.setItem("table-columns-".concat(t),JSON.stringify(s)),s})},[t]),eg=(0,l.useCallback)((e,a)=>{em(s=>{let l={...s,[e]:a};return localStorage.setItem("table-widths-".concat(t),JSON.stringify(l)),l})},[t]),eN=(0,l.useCallback)(async()=>{try{G(new Set),o(t),await ef(!0),h({title:"Success",description:"Table data refreshed"})}catch(e){console.error("Refresh failed:",e),h({variant:"destructive",title:"Refresh Failed",description:e.message})}},[ef,o,t,h]),ev=(0,l.useCallback)((e,a)=>{ed(t=>({...t,[e]:a}));let s=a&&g.length?[...g].sort((t,s)=>{let l=t[e],n=s[e];if(null==l&&null==n)return 0;if(null==l)return 1;if(null==n)return -1;if("number"==typeof l&&"number"==typeof n)return"asc"===a?l-n:n-l;let r=String(l).toLowerCase(),i=String(n).toLowerCase();return"asc"===a?r.localeCompare(i):i.localeCompare(r)}):g;N(s);let l=n(t);l&&i(t,s,l.schema,{...l.meta,currentPage:J,limit:Y},J,Y)},[g,t,n,i]),eb=(0,l.useCallback)((e,t,a)=>{let s="".concat(e,"-").concat(t);k(e=>new Map(e).set(s,{value:a,originalValue:a})),Q(t=>new Set(t).add(e))},[]),ew=(0,l.useCallback)((e,t,a)=>{var s,l;let n="".concat(e,"-").concat(t),r=g[e],i=null!==(l=null===(s=A.get(n))||void 0===s?void 0:s.originalValue)&&void 0!==l?l:r[t];if(a===i){let t=new Map(A);if(t.delete(n),k(t),!Array.from(t.keys()).some(t=>t.startsWith("".concat(e,"-")))){let t=new Set(O);t.delete(e),Q(t)}}else k(e=>new Map(e).set(n,{value:a,originalValue:i})),Q(t=>new Set(t).add(e))},[g,A,O]),ey=(0,l.useCallback)(()=>{K(e=>[...e,{}])},[]),eC=(0,l.useCallback)(e=>{K(t=>t.filter((t,a)=>a!==e))},[]),eE=(0,l.useCallback)((e,t)=>{K(a=>{let s=[...a];return s[e]=t,s})},[]),eR=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];S(!0);try{if(V.length>0){let e=0,s=v.filter(e=>"datetime"===e.type.toLowerCase()).map(e=>e.name);for(let l of V){let n=Object.keys(l).filter(e=>{let t=l[e];if(null===t||""===t||"null"===t)return!1;if((null==t?void 0:t.toString())==="[Auto-generated INT]"){let t=v.find(t=>t.name===e);if(t&&1===t.pk&&"INTEGER"===t.type.toUpperCase())return!1}return!0});if(s.forEach(e=>{n.includes(e)||n.push(e)}),0===n.length)continue;let r=n.map(e=>{if(s.includes(e))return"CURRENT_TIMESTAMP";let t=l[e];if(null===t||""===t||"null"===t)return"NULL";let a=t.toString();if("[Auto-generated UUID]"===a){let t=v.find(t=>t.name===e);if(t&&t.dflt_value)return t.dflt_value}if("[Auto-generated INT]"===a){let t=v.find(t=>t.name===e);if(t&&1===t.pk&&"INTEGER"===t.type.toUpperCase())return null}return a.includes("randomblob")||a.includes("CURRENT_TIMESTAMP")||a.includes("lower(hex(")||a.startsWith("(")&&a.endsWith(")")?a:"'".concat(a.replace(/'/g,"''"),"'")}),i="INSERT INTO ".concat(t," (").concat(n.join(", "),") VALUES (").concat(r.join(", "),");");await a(i),e++}if(e>0){let a=await m(t);N(a.data),w(a.meta.total),W(Math.ceil(a.meta.total/Y)),h({title:"Success",description:"Added ".concat(e," ").concat(1===e?"record":"records")})}K([])}if(A.size>0&&(e||!ei)){var s;let e=null===(s=v.find(e=>1===e.pk))||void 0===s?void 0:s.name;if(!e)throw Error("No primary key found in table schema");let l=new Map;A.forEach((t,a)=>{let[s,n]=a.split("-"),r=g[s];l.has(r[e])||l.set(r[e],new Map),l.get(r[e]).set(n,t.value)});let n=0;for(let[s,r]of l){let l=Array.from(r.entries()).map(e=>{let[t,a]=e;return null===a||""===a||"null"===a?"".concat(t," = NULL"):"CURRENT_TIMESTAMP"===a?"".concat(t," = CURRENT_TIMESTAMP"):"".concat(t," = '").concat(a.toString().replace(/'/g,"''"),"'")}).join(", "),i="\n UPDATE ".concat(t,"\n SET ").concat(l,"\n WHERE ").concat(e," = ").concat(s,";\n ");await a(i),n++}if(n>0){let e=await m(t);N(e.data),w(e.meta.total),W(Math.ceil(e.meta.total/Y)),h({title:"Success",description:"Updated ".concat(n," ").concat(1===n?"record":"records")})}}k(new Map),Q(new Set),eo(null)}catch(e){eo({...ej(e),stderr:e.stderr,stdout:e.stdout}),er(!0)}finally{S(!1)}},eT=(0,l.useCallback)(async()=>{if(ea(!0),el(null),t){ea(!0),el(null);try{var e;let s=null===(e=v.find(e=>1===e.pk))||void 0===e?void 0:e.name;if(!s)throw Error("No primary key found in table schema");let l=Array.from(B).map(e=>g[e][s]);if(0===l.length)return;let r=l.map(e=>"string"==typeof e&&isNaN(e)?"'".concat(e.replace(/'/g,"''"),"'"):e),o="DELETE FROM ".concat(t," WHERE ").concat(s," IN (").concat(r.join(","),");");await a(o);let c=new Set(l),d=g.filter(e=>!c.has(e[s]));N(d),w(e=>e-l.length),W(Math.ceil((b-l.length)/Y));let u=n(t);u&&i(t,d,u.schema,{...u.meta,total:u.meta.total-l.length}),J>1&&g.length===l.length&&(q(e=>e-1),await ef()),ee(!1),G(new Set),h({title:"Success",description:"Successfully deleted ".concat(l.length," ").concat(1===l.length?"record":"records")})}catch(e){console.error("Delete operation failed:",e),el(e.message||String(e))}finally{ea(!1)}}},[t,B,g,v,a,m,ef,J,Y,b,h,n,i]);(0,l.useEffect)(()=>{if(!t)return;k(new Map),Q(new Set),K([]),T(null),G(new Set),q(1);let e=n(t,1,Y);e?(N(e.data),j(e.schema),w(e.meta.total),W(e.meta.totalPages),ex(a=>{if(a.length)return a;let s=e.schema.map(e=>e.name);return localStorage.setItem("table-columns-".concat(t),JSON.stringify(s)),s})):ef(!1)},[t,Y]),(0,l.useEffect)(()=>{if(u===t){let e=n(t);e&&(N(e.data),j(e.schema),w(e.meta.total),W(e.meta.totalPages))}},[u,t,n]),(0,l.useEffect)(()=>{if(t&&!y){var e;let a=n(t,J,Y);a&&J===(null===(e=a.meta)||void 0===e?void 0:e.currentPage)||ef(!1)}},[t,J,Y,y,ef,n]),(0,l.useEffect)(()=>{Z.current&&(Z.current.indeterminate=B.size>0&&B.size<g.length)},[B.size,g.length]);let eA=(0,l.useCallback)(e=>{G(e?new Set(g.map((e,t)=>t)):new Set)},[g]),ek=(0,l.useCallback)((e,t)=>{G(a=>{let s=new Set(a);return t?s.add(e):s.delete(e),s})},[]);(0,l.useCallback)(e=>{em(e),localStorage.setItem("table-widths-".concat(t),JSON.stringify(e))},[t]);let e_=v.filter(e=>eh.includes(e.name)),eO=A.size>0||V.length>0;return R?(0,s.jsx)("div",{className:"p-4",children:(0,s.jsxs)(x,{variant:"destructive",children:[(0,s.jsx)(r.A,{className:"h-4 w-4"}),(0,s.jsxs)(f,{children:["Failed to load table: ",R]})]})}):(0,s.jsxs)("div",{className:"h-full flex flex-col",children:[(0,s.jsx)(eG,{selectedCount:B.size,totalRows:b,currentPage:J,totalPages:H,rowsPerPage:Y,onPageChange:q,onRowsPerPageChange:X,onAdd:ey,onDelete:()=>ee(!0),onRefresh:eN,tableName:t,disabled:eO,editCount:A.size,newRecordsCount:V.length,isSaving:E,onSaveChanges:eR,onDiscardChanges:()=>{k(new Map),Q(new Set),K([]),eo(null),h({description:"Changes discarded"})},schema:v,visibleColumns:eh,onColumnToggle:ep}),(0,s.jsx)(e3,{columns:v,onColumnsResize:eg,children:(0,s.jsx)("div",{className:"flex-1 overflow-hidden bg-background font-mono",children:(0,s.jsx)(L,{className:"w-full h-screen",children:(0,s.jsxs)("div",{className:"relative w-max min-w-fit pb-4",children:[(0,s.jsxs)(U,{children:[!y&&(0,s.jsx)(P,{className:"bg-neutral-100 sticky top-0 z-30",children:(0,s.jsxs)(F,{children:[(0,s.jsx)(M,{className:"w-10 p-0 border-r border-neutral-200",children:(0,s.jsx)("div",{className:"py-0.5 px-3 flex items-center",children:(0,s.jsx)(eS,{ref:Z,checked:B.size===g.length&&g.length>0,onCheckedChange:eA,disabled:eO})})}),e_.map(e=>{var t;return(0,s.jsx)(e5,{width:eu[e.name]||150,onResize:t=>eg(e.name,t),className:"py-0.5 whitespace-nowrap border-r border-neutral-200",children:(0,s.jsxs)(e6,{column:e.name,sortConfig:ec,onSort:ev,children:[(0,s.jsx)("span",{className:"text-xs font-bold text-foreground",children:e.name}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:null===(t=e.type)||void 0===t?void 0:t.toLowerCase()})]})},e.name)})]})}),(0,s.jsxs)(D,{children:[y&&(0,s.jsx)(F,{className:"hover:bg-transparent",children:(0,s.jsx)(z,{colSpan:e_.length+1,className:"h-[calc(100vh-200px)]",children:(0,s.jsx)("div",{className:"h-full w-full flex items-center justify-center",children:(0,s.jsx)(c.A,{className:"h-6 w-6 animate-spin text-primary"})})})}),!y&&(0,s.jsxs)(s.Fragment,{children:[V.map((e,t)=>(0,s.jsx)(e1,{schema:e_,onRemove:()=>eC(t),onChange:e=>eE(t,e)},"new-".concat(t))),0===g.length&&0===V.length?(0,s.jsx)(F,{className:"hover:bg-transparent",children:(0,s.jsx)(z,{colSpan:e_.length+1,className:"h-[calc(100vh-200px)] text-center text-muted-foreground",children:"Table is empty"})}):g.map((e,t)=>(0,s.jsxs)(F,{className:"".concat(B.has(t)?"bg-muted/50":""),children:[(0,s.jsx)(z,{className:"p-0",children:(0,s.jsx)("div",{className:"px-3 py-2.5 flex items-center",children:(0,s.jsx)(eS,{checked:B.has(t),onCheckedChange:e=>ek(t,e),disabled:eO})})}),e_.map(a=>{let l="".concat(t,"-").concat(a.name),n=A.get(l);return(0,s.jsx)(eZ,{value:n?n.value:e[a.name],row:e,column:a.name,schema:v,onChange:e=>ew(t,a.name,e),onStartEdit:e=>eb(t,a.name,e),isEditing:A.has(l),style:{width:"".concat(eu[a.name]||150,"px")}},a.name)})]},t))]})]})]}),(0,s.jsx)(I,{orientation:"horizontal"})]})})})}),(0,s.jsx)(e4,{isOpen:$,onClose:()=>{ee(!1),el(null)},onConfirm:eT,selectedCount:B.size,tableName:t,isDeleting:et,error:es}),(0,s.jsx)(e2,{isOpen:en,onClose:()=>er(!1),error:ei,onOpenInSQL:()=>{er(!1)},onUpdateAnyway:async()=>{er(!1),await eR(!0)},showSQLOption:(null==ei?void 0:ei.type)==="NULLABLE_PK"})]})}function tt(){let[e,t]=(0,l.useState)("sql-editor"),[a,n]=(0,l.useState)(null);return(0,s.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,s.jsx)(el,{className:"w-64 border-r flex-shrink-0",currentView:e,onNavigate:t,onTableSelect:e=>{n(e),t("table-view")}}),(0,s.jsxs)("main",{className:"flex-1 overflow-hidden",children:["sql-editor"===e&&(0,s.jsx)(eC,{}),"table-view"===e&&a&&(0,s.jsx)(te,{tableName:a})]})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[692,576,735,441,517,358],()=>t(4576)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}},a=!0;try{e[o](i,i.exports,r),a=!1}finally{a&&delete t[o]}return i.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,i)=>{if(o){i=i||0;for(var a=e.length;a>0&&e[a-1][2]>i;a--)e[a]=e[a-1];e[a]=[o,n,i];return}for(var u=1/0,a=0;a<e.length;a++){for(var[o,n,i]=e[a],l=!0,c=0;c<o.length;c++)(!1&i||u>=i)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,i<u&&(u=i));if(l){e.splice(a--,1);var f=n();void 0!==f&&(t=f)}}return t}})(),(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var i=Object.create(null);r.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>a[e]=()=>o[e]);return a.default=()=>o,r.d(i,a),i}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,i,a)=>{if(e[o]){e[o].push(n);return}if(void 0!==i)for(var u,l,c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var s=c[f];if(s.getAttribute("src")==o||s.getAttribute("data-webpack")==t+i){u=s;break}}u||(l=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+i),u.src=r.tu(o)),e[o]=[n];var d=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=d.bind(null,u.onerror),u.onload=d.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,280:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n){if(n)o.push(n[2]);else if(/^(280|68)$/.test(t))e[t]=0;else{var i=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=i);var a=r.p+r.u(t),u=Error();r.l(a,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[a,u,l]=o,c=0;if(a.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var f=l(r)}for(t&&t(o);c<a.length;c++)i=a[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return r.O(f)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0})();
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
|
|
2
|
-
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
|
3
|
-
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:240 5.9% 10%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:240 10% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:0.5rem;--sidebar-background:0 0% 98%;--sidebar-foreground:240 5.3% 26.1%;--sidebar-primary:240 5.9% 10%;--sidebar-primary-foreground:0 0% 98%;--sidebar-accent:240 4.8% 95.9%;--sidebar-accent-foreground:240 5.9% 10%;--sidebar-border:220 13% 91%;--sidebar-ring:217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-\[var\(--banner-height\2c 0px\)\]{top:var(--banner-height,0)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem}.mb-1,.my-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.size-4{width:1rem;height:1rem}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[16px\]{height:16px}.h-\[1px\]{height:1px}.h-\[480px\]{height:480px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-var\(--banner-height\2c 0px\)\)\]{height:calc(100vh - var(--banner-height,0px))}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-svh{min-height:100svh}.w-1{width:.25rem}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[16px\]{width:16px}.w-\[1px\]{width:1px}.w-\[600px\]{width:600px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.min-w-0{min-width:0}.min-w-5{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-x-px{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x:-1px}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-px{--tw-translate-x:1px}.translate-x-px,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.touch-none{touch-action:none}.select-none{user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-1{column-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-x{border-left-width:1px;border-right-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-input{border-color:hsl(var(--input))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-primary{border-color:hsl(var(--primary))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#F0F0F0\]{--tw-bg-opacity:1;background-color:rgb(240 240 240/var(--tw-bg-opacity,1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-destructive\/15{background-color:hsl(var(--destructive)/.15)}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-neutral-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-50\/50{background-color:rgba(255,247,237,.5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-destructive-foreground\/80{color:hsl(var(--destructive-foreground)/.8)}.text-destructive-foreground\/90{color:hsl(var(--destructive-foreground)/.9)}.text-destructive\/80{color:hsl(var(--destructive)/.8)}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-900{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity,1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground)/.7)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\2c right\2c width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\2c opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\2c height\2c padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}body{font-family:Arial,Helvetica,sans-serif}.table-fixed{table-layout:fixed;width:100%}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.last\:border-0:last-child{border-width:0}.hover\:bg-\[\#F2F2F2\]:hover{--tw-bg-opacity:1;background-color:rgb(242 242 242/var(--tw-bg-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive)/.1)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-neutral-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.hover\:bg-neutral-300:hover{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-neutral-700:hover{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.hover\:text-neutral-900:hover{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.hover\:text-orange-800:hover{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel],.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0,.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{--tw-rotate:180deg}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex{display:flex}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:max-w-\[420px\]{max-width:420px}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[1,1,0,0,0,1,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,r,e,r,r,r,r,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,e,e,e,r,r,e,e,r,e,r,e,r,e,e,r,e,e,r,r,r,e,r,r,r,r,e,e,e,r,r,e,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,e,r,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,r,r,r,e,r,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[e,r,r,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e]},"/_error":["static/chunks/pages/_error-9b7125ad1a1e68fa.js"],sortedPages:["/_app","/_error"]}}(1,0,14,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[1,1,0,0,0,1,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,r,e,r,r,r,r,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,e,e,e,r,r,e,e,r,e,r,e,r,e,e,r,e,e,r,r,r,e,r,r,r,r,e,e,e,r,r,e,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,e,r,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,r,r,r,e,r,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[e,r,r,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e]},"/_error":["static/chunks/pages/_error-9b7125ad1a1e68fa.js"],sortedPages:["/_app","/_error"]}}(1,0,14,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[1,1,0,0,0,1,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,r,e,r,r,r,r,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,e,e,e,r,r,e,e,r,e,r,e,r,e,e,r,e,e,r,r,r,e,r,r,r,r,e,e,e,r,r,e,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,e,r,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,r,r,r,e,r,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[e,r,r,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e]},"/_error":["static/chunks/pages/_error-9b7125ad1a1e68fa.js"],sortedPages:["/_app","/_error"]}}(1,0,14,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[1,1,0,0,0,1,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,r,e,r,r,r,r,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,e,e,e,r,r,e,e,r,e,r,e,r,e,e,r,e,e,r,r,r,e,r,r,r,r,e,e,e,r,r,e,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,e,r,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,r,r,r,e,r,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[e,r,r,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e]},"/_error":["static/chunks/pages/_error-9b7125ad1a1e68fa.js"],sortedPages:["/_app","/_error"]}}(1,0,14,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[1,1,0,0,0,1,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,r,e,r,r,r,r,r,e,r,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,r,r,e,r,e,r,e,r,e,e,e,r,r,e,e,r,e,r,e,r,e,e,r,e,e,r,r,r,e,r,r,r,r,e,e,e,r,r,e,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,r,e,r,e,e,e,e,e,e,r,e,r,r,e,e,r,e,r,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,e,r,e,e,r,e,r,e,r,e,r,e,e,r,r,r,r,e,e,r,r,e,r,r,r,r,r,e,e,r,r,r,e,r,e,e,e,e,r,e,e,r,r,r,r,e,e,e,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[e,r,r,e,r,e,e,r,e,e,e,r,r,r,r,e,e,e,e,e]},"/_error":["static/chunks/pages/_error-9b7125ad1a1e68fa.js"],sortedPages:["/_app","/_error"]}}(1,0,14,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|