kontexta 4.5.2 → 4.6.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/bundle/standalone/CHANGELOG.md +59 -0
- package/bundle/standalone/apps/web/.next/BUILD_ID +1 -1
- package/bundle/standalone/apps/web/.next/app-build-manifest.json +89 -75
- package/bundle/standalone/apps/web/.next/app-path-routes-manifest.json +9 -7
- package/bundle/standalone/apps/web/.next/build-manifest.json +2 -2
- package/bundle/standalone/apps/web/.next/prerender-manifest.json +13 -13
- package/bundle/standalone/apps/web/.next/routes-manifest.json +8 -0
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found.rsc +4 -4
- package/bundle/standalone/apps/web/.next/server/app/api/about/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/about/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/setup/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/setup/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/token/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/token/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/conflicts/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/conflicts/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/ics/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/ics/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/links/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/links/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/settings/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/settings/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/clip/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/clip/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/docker-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/docker-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/export/zip/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/export/zip/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/backlinks/route.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/backlinks/route.js.nft.json +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/backlinks/route_client-reference-manifest.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/download/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/download/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-html/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-html/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-pdf/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-pdf/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/restore/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/restore/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/move/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/move/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/move/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/folders/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/folders/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/remote/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/remote/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/sync-all/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/sync-all/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/test-pattern/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/test-pattern/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/validate/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/validate/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/health/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/install-snippets/route.js +9 -9
- package/bundle/standalone/apps/web/.next/server/app/api/install-snippets/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/install-snippets/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/profile/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/profile/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/profile/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/hands-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/hands-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-status/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-status/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/onboard/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/onboard/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/refresh/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/refresh/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/sync/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/sync/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/onboard/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/onboard/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/html/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/html/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/refresh/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/refresh/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reindex/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reindex/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reports/resources/[name]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reports/resources/[name]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/tags/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/version-check/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/version-check/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/welcome/route.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/welcome/route.js.nft.json +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/welcome/route_client-reference-manifest.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/ws-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/ws-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/calendar/page.js +2 -2
- package/bundle/standalone/apps/web/.next/server/app/calendar/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/calendar/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/page.js +4 -4
- package/bundle/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs/page.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs.html +2 -2
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs.rsc +4 -4
- package/bundle/standalone/apps/web/.next/server/app-paths-manifest.json +9 -7
- package/bundle/standalone/apps/web/.next/server/chunks/{2144.js → 5156.js} +1 -1
- package/bundle/standalone/apps/web/.next/server/chunks/6680.js +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_app.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_document.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_error.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/1480-3e4f4a95f11429a9.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/3466-1f8fcb266364a156.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/about/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/login/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/logout/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/setup/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/status/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/token/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/conflicts/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/[id]/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/[id]/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/ics/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/links/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/settings/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/clip/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/docker-config/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/export/zip/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/backlinks/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/download/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-html/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-pdf/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/restore/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/move/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/upload/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/folders/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/remote/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/sync-all/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/test-pattern/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/validate/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/health/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/install-snippets/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/mcp-tools/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/profile/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/hands-config/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-config/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-status/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/onboard/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/refresh/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/sync/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/onboard/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/html/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/refresh/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reindex/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reports/resources/[name]/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/search/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/tags/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/version-check/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/welcome/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/ws-config/route-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/calendar/page-f9542f9f518f9257.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/{layout-50d1052f9326c7ff.js → layout-3050c58d9809581a.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/page-2f1ad9f037e15d25.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/preview/motifs/page-f5e054069fb68dd7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/css/35a6a6dfd2c31933.css +3 -0
- package/bundle/standalone/apps/web/.next/static/m_hfSuYViCrjEik31It3-/_buildManifest.js +1 -0
- package/bundle/standalone/apps/web/package.json +5 -5
- package/bundle/standalone/apps/web/src/lib/mcp-tools.json +99 -13
- package/bundle/standalone/node_modules/kontexta-mcp/dist/agent-rules/rules-block.md +11 -0
- package/bundle/standalone/node_modules/kontexta-mcp/dist/index.js +207 -37
- package/bundle/standalone/node_modules/kontexta-mcp/dist/index.js.map +1 -1
- package/bundle/standalone/node_modules/kontexta-mcp/dist/migrations/008-content-class.sql +29 -0
- package/bundle/standalone/node_modules/kontexta-mcp/dist/migrations/009-content-class-windows-safe.sql +27 -0
- package/bundle/standalone/node_modules/kontexta-mcp/package.json +2 -2
- package/bundle/standalone/node_modules/kxta-core/dist/agent-rules/rules-block.md +11 -0
- package/bundle/standalone/node_modules/kxta-core/dist/clip/index.js +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/clip/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/content-class/index.d.ts +8 -0
- package/bundle/standalone/node_modules/kxta-core/dist/content-class/index.d.ts.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/content-class/index.js +31 -0
- package/bundle/standalone/node_modules/kxta-core/dist/content-class/index.js.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/db/migrations/008-content-class.sql +29 -0
- package/bundle/standalone/node_modules/kxta-core/dist/db/migrations/009-content-class-windows-safe.sql +27 -0
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.d.ts +3 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.js +60 -19
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/layout.d.ts +11 -0
- package/bundle/standalone/node_modules/kxta-core/dist/files/layout.d.ts.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/files/layout.js +70 -0
- package/bundle/standalone/node_modules/kxta-core/dist/files/layout.js.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/index.d.ts +2 -1
- package/bundle/standalone/node_modules/kxta-core/dist/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/index.js +2 -1
- package/bundle/standalone/node_modules/kxta-core/dist/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/metadata/index.d.ts +18 -0
- package/bundle/standalone/node_modules/kxta-core/dist/metadata/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/metadata/index.js +82 -6
- package/bundle/standalone/node_modules/kxta-core/dist/metadata/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/profile/index.d.ts +8 -3
- package/bundle/standalone/node_modules/kxta-core/dist/profile/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/profile/index.js +12 -1
- package/bundle/standalone/node_modules/kxta-core/dist/profile/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.js +15 -5
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/types.d.ts +5 -1
- package/bundle/standalone/node_modules/kxta-core/dist/types.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/paths.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/paths.js +3 -0
- package/bundle/standalone/node_modules/kxta-core/dist/util/paths.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/package.json +2 -2
- package/bundle/standalone/node_modules/kxta-publish/dist/render/html-export.js +11 -3
- package/bundle/standalone/node_modules/kxta-publish/package.json +3 -3
- package/bundle/standalone/package.json +3 -2
- package/package.json +2 -2
- package/bundle/standalone/apps/web/.next/static/3-XgdPUkib9c8DXcXAxa1/_buildManifest.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/3068-293b252158eb9d15.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/9794-16144bed6de4bf26.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/about/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/login/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/logout/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/setup/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/status/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/token/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/conflicts/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/[id]/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/[id]/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/ics/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/links/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/settings/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/clip/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/docker-config/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/export/zip/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/download/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-html/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-pdf/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/restore/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/move/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/upload/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/folders/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/remote/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/sync-all/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/test-pattern/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/validate/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/health/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/install-snippets/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/mcp-tools/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/profile/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/hands-config/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-config/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-status/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/onboard/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/refresh/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/sync/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/onboard/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/html/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/refresh/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reindex/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reports/resources/[name]/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/search/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/tags/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/version-check/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/ws-config/route-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/calendar/page-c2b69b100c786dc4.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/page-c733552ab47df1c0.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/preview/motifs/page-c6ecffaac8622c61.js +0 -1
- package/bundle/standalone/apps/web/.next/static/css/3088e309ea0d151a.css +0 -3
- /package/bundle/standalone/apps/web/.next/static/{3-XgdPUkib9c8DXcXAxa1 → m_hfSuYViCrjEik31It3-}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=5085,a.ids=[5085],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13754:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(52810),e=c(18093),f=c(98611),g=c(55572),h=c(17262),i=c(92768),j=c(44031),k=c(8188),l=c(26370),m=c(53256),n=c(34510),o=c(67330),p=c(77357),q=c(74749),r=c(71110),s=c(261),t=c(86725),u=c(33834),v=c(26713),w=c(79596),x=c(70925),y=c(67857),z=c(92710),A=c(17402),B=c(66270),C=c(86439),D=c(28450),E=c.n(D),F=c(4410),G=c(56691),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["calendar",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,26656)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/calendar/page.tsx"]}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,6296)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,28450,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,72036,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,6285,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,25680,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]}.children,J=["/home/runner/work/kontexta/kontexta/apps/web/src/app/calendar/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/calendar/page",pathname:"/calendar",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/calendar/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26656:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,dynamic:()=>k});var d=c(18234),e=c(8002),f=c(34017),g=c(16040),h=c(28684),i=c(38186),j=c(28691);let k="force-dynamic";async function l(){(0,j.G)();let a=null;try{a=(0,h.getSetting)("auth_password_hash")}catch{(0,f.redirect)("/login")}a||(0,f.redirect)("/login");let b=await (0,e.b3)(),c=await (0,e.UL)();return(0,g.T5)({headers:b,cookies:c})||(0,f.redirect)("/login"),(0,d.jsx)(i.CalendarClient,{})}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28684:a=>{"use strict";a.exports=require("kxta-core")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38186:(a,b,c)=>{"use strict";c.d(b,{CalendarClient:()=>d});let d=(0,c(13522).registerClientReference)(function(){throw Error("Attempted to call CalendarClient() from the server but CalendarClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/kontexta/kontexta/apps/web/src/components/calendar/calendar-client.tsx","CalendarClient")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},57042:(a,b,c)=>{"use strict";c.d(b,{CalendarClient:()=>W});var d=c(25108),e=c(33997),f=c(40905),g=c(13505),h=c(90554);function i(a){let b=new Date(a),c=a=>String(a).padStart(2,"0");return`${b.getFullYear()}-${c(b.getMonth()+1)}-${c(b.getDate())}T${c(b.getHours())}:${c(b.getMinutes())}`}function j(a){return new Date(a).toISOString()}function k(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function l(a,b){let c=new Date(a);return c.setDate(c.getDate()+b),c}function m(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}function n(a){let b=(a.getDay()+6)%7;return k(l(a,-b))}function o(a){let b=new Date(a.getFullYear(),a.getMonth(),1),c=new Date(a.getFullYear(),a.getMonth()+1,0),d=n(b);return Array.from({length:7*(Math.round((n(c).getTime()-d.getTime())/6048e5)+1)},(a,b)=>l(d,b))}let p={4:5,5:4,6:3},q=Array.from({length:24},(a,b)=>b);function r(a,b){let c=k(b).getTime();return new Date(a.starts_at).getTime()<c+864e5&&new Date(a.ends_at).getTime()>c}function s(a,b){if(!r(a,b))return!1;let c=k(b).getTime(),d=Math.max(new Date(a.starts_at).getTime(),c);return(Math.min(new Date(a.ends_at).getTime(),c+864e5)-d)/6e4>=1380}function t(a){return new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}var u=c(17184),v=c(41880);let w=(0,v.A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),x=[{id:"month",label:"Month"},{id:"week",label:"Week"},{id:"agenda",label:"Agenda"}],y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function z({view:a,onViewChange:b,rangeLabel:c,anchor:h,onNavigate:i,onJumpToDate:j,entities:k,entityFilter:l,onEntityFilter:m,types:n,typeFilter:o,onTypeFilter:p,query:q,onQueryChange:r,conflictCount:s,conflictsOpen:t,onToggleConflicts:v,onExportIcs:z,onManageEntities:A,onNewEvent:B}){let[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(h.getFullYear());return(0,d.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,d.jsxs)("div",{className:"px-4 pt-3 pb-2 flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(-1),"aria-label":"Previous",children:(0,d.jsx)(w,{className:"w-4 h-4","aria-hidden":!0})}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(0),children:"Today"}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(1),"aria-label":"Next",children:(0,d.jsx)(f.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,d.jsxs)(u.bL,{open:C,onOpenChange:a=>{D(a),a&&F(h.getFullYear())},children:[(0,d.jsx)(u.l9,{asChild:!0,children:(0,d.jsx)("button",{type:"button",className:"font-title text-lg font-bold text-[var(--text-primary)] mx-2 whitespace-nowrap truncate hover:text-amber-accent transition-colors","aria-label":"Jump to a different month",children:c})}),(0,d.jsx)(u.ZL,{children:(0,d.jsx)(u.UC,{align:"start",sideOffset:6,className:"z-[var(--z-dropdown)]",children:(0,d.jsxs)("div",{className:"w-56 rounded-md border border-[var(--border)] bg-[var(--bg-primary)] p-3 shadow-xl animate-scale-in",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>F(a=>a-1),className:"btn btn-icon-sm","aria-label":"Previous year",children:(0,d.jsx)(w,{className:"w-3.5 h-3.5","aria-hidden":!0})}),(0,d.jsx)("span",{className:"text-xs font-bold text-[var(--text-primary)]",children:E}),(0,d.jsx)("button",{type:"button",onClick:()=>F(a=>a+1),className:"btn btn-icon-sm","aria-label":"Next year",children:(0,d.jsx)(f.A,{className:"w-3.5 h-3.5","aria-hidden":!0})})]}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:y.map((a,b)=>{let c=E===h.getFullYear()&&b===h.getMonth();return(0,d.jsx)("button",{type:"button",onClick:()=>{j(new Date(E,b,1)),D(!1)},className:`rounded px-2 py-1.5 text-[11px] font-medium transition-colors ${c?"bg-amber-accent/15 text-amber-accent border border-amber-accent/40":"text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]/40"}`,children:a},a)})}),(0,d.jsx)("button",{type:"button",onClick:function(){j(new Date),D(!1)},className:"mt-2 w-full text-center text-[10px] font-bold uppercase tracking-widest text-amber-accent hover:opacity-80",children:"Today"})]})})})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("div",{className:"flex rounded-lg border border-[var(--border)] overflow-hidden shrink-0",children:x.map(c=>(0,d.jsx)("button",{onClick:()=>b(c.id),className:`px-3 py-1.5 text-xs font-bold tracking-widest uppercase transition-colors ${a===c.id?"bg-amber-accent/10 text-amber-accent":"text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]/40"}`,children:c.label},c.id))})]}),(0,d.jsxs)("div",{className:"px-4 pb-3 flex items-center gap-2 flex-wrap",children:[(0,d.jsxs)("select",{value:l??"",onChange:a=>m(a.target.value?Number(a.target.value):void 0),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer min-w-0",children:[(0,d.jsx)("option",{value:"",children:"All entities"}),k.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{value:o??"",onChange:a=>p(a.target.value||void 0),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer min-w-0",children:[(0,d.jsx)("option",{value:"",children:"All types"}),n.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]}),(0,d.jsxs)("div",{className:"relative min-w-[8rem] flex-1 max-w-48",children:[(0,d.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),placeholder:"Filter: entity, title, type…",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 pr-6 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 placeholder:text-[var(--muted)]"}),q&&(0,d.jsx)("button",{onClick:()=>r(""),className:"absolute right-1 top-1/2 -translate-y-1/2 text-[var(--muted)] hover:text-amber-accent text-xs px-1","aria-label":"Clear filter",children:(0,d.jsx)(g.A,{className:"w-3.5 h-3.5","aria-hidden":!0})})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,d.jsxs)("button",{onClick:v,className:`btn btn-sm flex items-center gap-1.5 ${t?"bg-amber-accent/10 text-amber-accent":""}`,children:["Conflicts",s>0&&(0,d.jsx)("span",{className:"px-1.5 rounded-full bg-[var(--danger-soft)] text-[var(--danger)] text-[10px] font-bold",children:s})]}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:A,children:"Entities"}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:z,children:"Export ICS"}),(0,d.jsx)("button",{className:"btn btn-sm btn-primary",onClick:B,children:"+ New event"})]})]})]})}let A=[{chip:"bg-amber-accent/15 text-amber-accent-dark dark:text-amber-accent-light border-amber-accent/30",dot:"bg-amber-accent"},{chip:"bg-sky-500/15 text-sky-700 dark:text-sky-300 border-sky-500/30",dot:"bg-sky-400"},{chip:"bg-emerald-500/15 text-emerald-700 dark:text-emerald-300 border-emerald-500/30",dot:"bg-emerald-400"},{chip:"bg-violet-500/15 text-violet-700 dark:text-violet-300 border-violet-500/30",dot:"bg-violet-400"},{chip:"bg-rose-500/15 text-rose-700 dark:text-rose-300 border-rose-500/30",dot:"bg-rose-400"},{chip:"bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 border-cyan-500/30",dot:"bg-cyan-400"}];function B(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return A[b%A.length]}function C({event:a,entityName:b,allDay:c,conflicted:e,highlighted:f,onClick:g}){let h=B(a.type);return(0,d.jsxs)("button",{id:`cal-ev-${a.id}`,onClick:a=>{a.stopPropagation(),g(a)},className:`w-full text-left truncate rounded px-1.5 py-0.5 text-[11px] border ${h.chip} ${e?"ring-1 ring-red-400/70":""} ${f?"ring-2 ring-red-400":""}`,title:`${b} — ${a.title}`,children:[!c&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-mono opacity-70",children:t(a.starts_at)})," "]}),(0,d.jsx)("span",{className:"font-bold",children:b})," \xb7 ",a.title]})}let D=["MON","TUE","WED","THU","FRI","SAT","SUN"];function E(a){return k(a).toISOString()}function F({anchor:a,events:b,entitiesById:c,conflictEventIds:f,highlightIds:g,loading:h,onSlotClick:i,onEventClick:j,onShowDay:k}){let l=(0,e.useMemo)(()=>o(a),[a]),n=l.length/7,q=p[n]??3,t={gridTemplateRows:`repeat(${n}, minmax(0, 1fr))`},u=(0,e.useMemo)(()=>{let a=new Map;for(let c of l){let d=b.filter(a=>r(a,c)).sort((a,b)=>a.starts_at<b.starts_at?-1:+(a.starts_at>b.starts_at));a.set(E(c),d)}return a},[l,b]),v=new Date;return(0,d.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,d.jsx)("div",{className:"grid grid-cols-7 text-[10px] font-bold tracking-widest uppercase text-[var(--muted)] border-b border-[var(--border)]",children:D.map(a=>(0,d.jsx)("div",{className:"px-2 py-1.5",children:a},a))}),h?(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",style:t,children:l.map(a=>(0,d.jsx)("div",{className:"border-b border-r border-[var(--border)] p-1.5",children:(0,d.jsx)("div",{className:"skeleton h-4 w-4 rounded-full bp-keep-round"})},E(a)))}):(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1 overflow-y-auto",style:t,children:l.map(b=>{let e=b.getMonth()===a.getMonth(),h=m(b,v),l=u.get(E(b))??[],n=l.slice(0,q),o=l.length-n.length;return(0,d.jsxs)("div",{onClick:()=>i(b),className:`border-b border-r border-[var(--border)] p-1.5 min-h-[96px] cursor-pointer hover:bg-amber-accent/5 flex flex-col gap-1 overflow-hidden ${h?"bg-amber-accent/5":""}`,children:[h?(0,d.jsx)("span",{className:"w-6 h-6 rounded-full bp-keep-round bg-amber-accent text-white flex items-center justify-center font-bold text-xs",children:b.getDate()}):(0,d.jsx)("span",{className:`text-xs ${e?"text-[var(--text-primary)]":"text-[var(--muted)] opacity-50"}`,children:b.getDate()}),n.map(a=>(0,d.jsx)(C,{event:a,entityName:c.get(a.entity_id)?.name??`#${a.entity_id}`,allDay:s(a,b),conflicted:f.has(a.id),highlighted:g.has(a.id),onClick:()=>j(a)},a.id)),o>0&&(0,d.jsxs)("button",{onClick:a=>{a.stopPropagation(),k(b)},className:"text-[10px] text-[var(--text-secondary)] hover:text-amber-accent text-left",children:["+",o," more"]})]},E(b))})})]})}function G(a){return k(a).toISOString()}function H({day:a}){let[b,c]=(0,e.useState)(new Date);if(!m(a,b))return null;let f=(60*b.getHours()+b.getMinutes())*.8;return(0,d.jsxs)("div",{className:"absolute left-0 right-0 pointer-events-none z-10",style:{top:f},children:[(0,d.jsx)("div",{className:"h-px bg-amber-accent shadow-[0_0_6px_var(--accent-soft)]"}),(0,d.jsx)("div",{className:"w-2 h-2 rounded-full bp-keep-round bg-amber-accent -ml-1 -mt-1"})]})}function I({anchor:a,events:b,entitiesById:c,conflictEventIds:f,highlightIds:g,loading:h,onSlotClick:i,onEventClick:j}){let o=(0,e.useMemo)(()=>(function(a){let b=n(a);return Array.from({length:7},(a,c)=>l(b,c))})(a),[a]),p=(0,e.useRef)(null),u=new Date,v=(0,e.useMemo)(()=>{let a=new Map;for(let c of o)a.set(G(c),b.filter(a=>s(a,c)));return a},[o,b]),w=(0,e.useMemo)(()=>[...v.values()].some(a=>a.length>0),[v]);return h?(0,d.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden p-4 gap-2",children:Array.from({length:8},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-8 w-full"},b))}):(0,d.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex sticky top-0 z-10 bg-[var(--bg-secondary)]/80 backdrop-blur-xl border-b border-[var(--border)]",children:[(0,d.jsx)("div",{className:"w-14 shrink-0"}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>(0,d.jsx)("div",{className:`text-center py-2 text-xs font-bold ${m(a,u)?"text-amber-accent":"text-[var(--text-secondary)]"}`,children:a.toLocaleDateString(void 0,{weekday:"short",day:"numeric"})},a.toISOString()))})]}),w&&(0,d.jsxs)("div",{className:"flex border-b border-[var(--border)] shrink-0",children:[(0,d.jsx)("div",{className:"w-14 shrink-0 flex items-start justify-end pr-2 pt-1.5",children:(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-widest text-[var(--muted)]",children:"All-day"})}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>(0,d.jsx)("div",{className:"border-l border-[var(--border)] p-1 flex flex-col gap-1",children:(v.get(G(a))??[]).map(a=>(0,d.jsx)(C,{event:a,entityName:c.get(a.entity_id)?.name??`#${a.entity_id}`,allDay:!0,conflicted:f.has(a.id),highlighted:g.has(a.id),onClick:()=>j(a)},a.id))},a.toISOString()))})]}),(0,d.jsxs)("div",{ref:p,className:"flex-1 overflow-y-auto flex",children:[(0,d.jsx)("div",{className:"w-14 shrink-0",children:q.map(a=>(0,d.jsxs)("div",{className:"text-[10px] text-[var(--muted)] text-right pr-2 font-mono",style:{height:48},children:[String(a).padStart(2,"0"),":00"]},a))}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>{let e=function(a,b){let c=k(b).getTime(),d=c+864e5,e=a.filter(a=>r(a,b)).map(a=>{let b=Math.max(new Date(a.starts_at).getTime(),c),e=Math.min(new Date(a.ends_at).getTime(),d);return{event:a,topMin:(b-c)/6e4,endMin:(e-c)/6e4}}).sort((a,b)=>a.topMin!==b.topMin?a.topMin-b.topMin:b.endMin-a.endMin),f=[],g=0;for(;g<e.length;){let a=e[g].endMin,b=g+1;for(;b<e.length&&e[b].topMin<a;)a=Math.max(a,e[b].endMin),b++;let c=e.slice(g,b),d=[],h=[];for(let a of c){let b=d.findIndex(b=>b<=a.topMin);-1===b?(b=d.length,d.push(a.endMin)):d[b]=a.endMin,h.push(b)}let i=d.length;c.forEach((a,b)=>{f.push({event:a.event,lane:h[b],lanes:i,topMin:a.topMin,heightMin:Math.max(a.endMin-a.topMin,20)})}),g=b}return f}(b.filter(b=>!s(b,a)),a);return(0,d.jsxs)("div",{className:"relative border-l border-[var(--border)]",style:{height:1152},onClick:b=>{let c=b.currentTarget.getBoundingClientRect();i(a,Math.floor((b.clientY-c.top)/48))},children:[q.map(a=>(0,d.jsx)("div",{className:"absolute left-0 right-0 border-t border-[var(--border)]",style:{top:48*a}},a)),(0,d.jsx)(H,{day:a}),e.map(({event:a,lane:b,lanes:e,topMin:h,heightMin:i})=>{let k=B(a.type),l=c.get(a.entity_id)?.name??`#${a.entity_id}`;return(0,d.jsxs)("button",{id:`cal-ev-${a.id}`,onClick:b=>{b.stopPropagation(),j(a)},className:`absolute rounded-md border px-1.5 py-0.5 text-[11px] leading-tight overflow-hidden text-left cursor-pointer ${k.chip} ${f.has(a.id)?"ring-1 ring-red-400/70":""} ${g.has(a.id)?"ring-2 ring-red-400":""}`,style:{top:.8*h,height:.8*i,left:`${b/e*100}%`,width:`calc(${100/e}% - 2px)`},title:`${l} — ${a.title}`,children:[(0,d.jsxs)("div",{className:"font-semibold truncate",children:[(0,d.jsx)("span",{className:"font-bold",children:l})," \xb7 ",a.title]}),(0,d.jsxs)("div",{className:"opacity-70 font-mono text-[10px]",children:[t(a.starts_at),"–",t(a.ends_at)]})]},a.id)})]},a.toISOString())})})]})]})}let J=(0,v.A)("calendar-days",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);function K(a){return k(a).toISOString()}function L({events:a,entitiesById:b,conflicts:c,loading:f,highlightIds:g,onEventClick:h}){let i=(0,e.useMemo)(()=>{let a=new Map;for(let b of c)a.has(b.event_a.id)||a.set(b.event_a.id,[]),a.get(b.event_a.id).push(b),a.has(b.event_b.id)||a.set(b.event_b.id,[]),a.get(b.event_b.id).push(b);return a},[c]),j=(0,e.useMemo)(()=>{let b=[...a].sort((a,b)=>a.starts_at<b.starts_at?-1:+(a.starts_at>b.starts_at)),c=new Map;for(let a of b){let b=k(new Date(a.starts_at)),d=K(b);c.has(d)||c.set(d,{day:b,items:[]}),c.get(d).items.push(a)}return[...c.values()].sort((a,b)=>a.day<b.day?-1:+(a.day>b.day))},[a]);if(f)return(0,d.jsx)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:Array.from({length:6},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-10 w-full"},b))});if(0===j.length)return(0,d.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-16 gap-3",children:[(0,d.jsx)(J,{className:"w-9 h-9 opacity-30 dark-icon","aria-hidden":!0}),(0,d.jsx)("div",{className:"text-sm text-[var(--muted)]",children:"No events in the next 30 days"})]});let l=new Date;return(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:j.map(({day:a,items:c})=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:`sticky top-0 px-4 py-2 bg-[var(--bg-secondary)]/80 backdrop-blur-xl text-[10px] font-bold tracking-widest uppercase border-b border-[var(--border)] ${m(a,l)?"text-amber-accent":"text-[var(--text-secondary)]"}`,children:a.toLocaleDateString(void 0,{weekday:"long",day:"numeric",month:"long"})}),c.map(a=>{let c=b.get(a.entity_id),e=B(a.type),f=i.get(a.id)??[];return(0,d.jsxs)("div",{id:`cal-ev-${a.id}`,onClick:()=>h(a),className:`px-4 py-3 border-b border-[var(--border)] flex items-center gap-3 hover:bg-amber-accent/5 cursor-pointer ${g.has(a.id)?"ring-2 ring-[var(--danger)]":""}`,children:[(0,d.jsx)("span",{className:`w-2 h-2 rounded-full bp-keep-round shrink-0 ${e.dot}`}),(0,d.jsxs)("span",{className:"font-mono text-xs text-[var(--text-secondary)] w-28 shrink-0",children:[t(a.starts_at),"–",t(a.ends_at)]}),(0,d.jsx)("span",{className:"text-sm text-[var(--text-primary)] font-medium truncate",children:a.title}),(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0",children:c?.name??`#${a.entity_id}`}),(0,d.jsx)("span",{className:"px-1.5 rounded bg-amber-accent/10 border border-amber-accent/20 text-[10px] shrink-0",children:a.type}),f.length>0&&(0,d.jsx)("span",{className:"ml-auto px-2 py-0.5 rounded-full bg-[var(--danger-soft)] border border-[var(--danger)]/30 text-[var(--danger)] text-[10px] font-bold uppercase tracking-wider shrink-0",title:f.map(a=>a.reason).join("\n"),children:"Conflict"})]},a.id)})]},K(a)))})}var M=c(42052),N=c(361);let O="w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",P="block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5 uppercase";function Q({state:a,entities:b,knownTypes:c,onClose:f,onSaved:g}){let h="edit"===a.mode,i=h?a.event:null,[k,l]=(0,e.useState)(h?i.entity_id:a.entityId??b[0]?.id??""),[m,n]=(0,e.useState)(h?i.type:""),[o,p]=(0,e.useState)(h?i.title:""),[q,r]=(0,e.useState)(h?C(i.starts_at):a.startsAt),[s,t]=(0,e.useState)(h?C(i.ends_at):a.endsAt),[u,v]=(0,e.useState)(h?i.notes??"":""),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(!1);function C(a){let b=new Date(a),c=a=>String(a).padStart(2,"0");return`${b.getFullYear()}-${c(b.getMonth()+1)}-${c(b.getDate())}T${c(b.getHours())}:${c(b.getMinutes())}`}async function D(){if(z(null),!k||!m.trim()||!o.trim()||!q||!s)return void z("Entity, type, title, start, and end are all required.");if(s<=q)return void z("End must be after start.");x(!0);try{let a={entity_id:Number(k),type:m.trim(),title:o.trim(),notes:u.trim()||void 0,starts_at:j(q),ends_at:j(s),original_timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},b=h?await fetch(`/api/calendar/events/${i.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}):await fetch("/api/calendar/events",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,source:"web"})});if(!b.ok){let a=await b.json().catch(()=>({}));z(a.error??"Failed to save event.");return}g(),f()}finally{x(!1)}}async function E(){B(!1),x(!0);try{let a=await fetch(`/api/calendar/events/${i.id}`,{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));z(b.error??"Failed to delete event.");return}g(),f()}finally{x(!1)}}return(0,d.jsxs)(M.l,{open:!0,onClose:f,title:h?"Edit event":"New event",widthClass:"max-w-lg",children:[(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Entity"}),(0,d.jsxs)("select",{value:k,onChange:a=>l(a.target.value?Number(a.target.value):""),className:`${O} cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"Select an entity…"}),b.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Type"}),(0,d.jsx)("input",{type:"text",list:"calendar-event-types",value:m,onChange:a=>n(a.target.value),placeholder:"Freeform — any label you like",className:O}),(0,d.jsx)("datalist",{id:"calendar-event-types",children:c.map(a=>(0,d.jsx)("option",{value:a},a))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Title"}),(0,d.jsx)("input",{type:"text",value:o,onChange:a=>p(a.target.value),className:O})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Starts"}),(0,d.jsx)("input",{type:"datetime-local",value:q,onChange:a=>r(a.target.value),className:O})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Ends"}),(0,d.jsx)("input",{type:"datetime-local",value:s,onChange:a=>t(a.target.value),className:O})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Notes"}),(0,d.jsx)("textarea",{rows:3,value:u,onChange:a=>v(a.target.value),className:O})]}),y&&(0,d.jsx)("div",{className:"text-xs text-[var(--danger)]",children:y})]}),(0,d.jsxs)("div",{className:"pt-4 mt-4 border-t border-[var(--border)] flex items-center justify-between gap-3",children:[h?(0,d.jsx)("button",{onClick:()=>B(!0),disabled:w,className:"btn btn-sm btn-destructive",children:"Delete"}):(0,d.jsx)("div",{}),(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("button",{onClick:f,disabled:w,className:"btn btn-sm",children:"Cancel"}),(0,d.jsx)("button",{onClick:D,disabled:w,className:"btn btn-sm btn-primary",children:w?"Saving…":"Save"})]})]}),(0,d.jsx)(N.T,{open:A,onClose:()=>B(!1),onConfirm:E,title:"Delete event?",message:"This cannot be undone.",confirmLabel:"Delete",destructive:!0,loading:w})]})}var R=c(75947);let S="bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50";function T({open:a,onClose:b,entities:c,links:f,onChanged:g}){let[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)("");async function z(){if(o(null),!h.trim())return;let a=await fetch("/api/calendar/entities",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim(),kind:j.trim()||void 0,timezone:l.trim()||void 0})});if(!a.ok)return void o((await a.json().catch(()=>({}))).error??"Failed to add entity.");i(""),k(""),m(""),g()}async function A(a){o(null);let b=await fetch(`/api/calendar/entities/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({active:!a.active})});if(!b.ok)return void o((await b.json().catch(()=>({}))).error??"Failed to update entity.");g()}async function B(){if(p){s(!0);try{let a=await fetch(`/api/calendar/entities/${p.id}`,{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));R.o.error(b.error??"Failed to delete entity.");return}q(null),R.o.success(`Deleted "${p.name}"`),g()}finally{s(!1)}}}async function C(){if(o(null),!t||!v||t===v)return void o("Choose two different entities.");let a=await fetch("/api/calendar/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from_entity_id:t,to_entity_id:v,label:x.trim()||void 0})});if(!a.ok)return void o((await a.json().catch(()=>({}))).error??"Failed to add link.");u(""),w(""),y(""),g()}async function D(a){o(null),(await fetch(`/api/calendar/links?from=${a.from_entity_id}&to=${a.to_entity_id}`,{method:"DELETE"})).ok&&g()}function E(a){return c.find(b=>b.id===a)?.name??`#${a}`}return(0,d.jsxs)(M.l,{open:a,onClose:b,title:"Manage entities & links",widthClass:"max-w-3xl",children:[(0,d.jsxs)("div",{className:"space-y-6",children:[n&&(0,d.jsx)("div",{className:"text-xs text-[var(--danger)]",children:n}),(0,d.jsxs)("section",{children:[(0,d.jsx)("h4",{className:"text-xs font-bold tracking-widest uppercase text-[var(--text-secondary)] mb-3",children:"Entities"}),(0,d.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,d.jsx)("input",{placeholder:"Name",value:h,onChange:a=>i(a.target.value),className:`${S} flex-1`}),(0,d.jsx)("input",{placeholder:"Kind",value:j,onChange:a=>k(a.target.value),className:`${S} w-28`}),(0,d.jsx)("input",{placeholder:"Timezone",value:l,onChange:a=>m(a.target.value),className:`${S} w-36`}),(0,d.jsx)("button",{onClick:z,className:"btn btn-sm btn-primary",children:"Add"})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[c.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-2 py-1.5 rounded hover:bg-amber-accent/5",children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full bp-keep-round shrink-0 ${a.active?"bg-[var(--success)]":"bg-[var(--muted)]"}`}),(0,d.jsx)("span",{className:"text-sm text-[var(--text-primary)] flex-1 truncate",children:a.name}),a.kind&&(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0",children:a.kind}),a.timezone&&(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0 font-mono",children:a.timezone}),(0,d.jsx)("button",{onClick:()=>A(a),className:"btn btn-sm shrink-0",children:a.active?"Retire":"Reactivate"}),(0,d.jsx)("button",{onClick:()=>q(a),className:"btn btn-sm btn-destructive shrink-0",children:"Delete"})]},a.id)),0===c.length&&(0,d.jsx)("div",{className:"text-xs text-[var(--muted)] py-2",children:"No entities yet."})]})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)("h4",{className:"text-xs font-bold tracking-widest uppercase text-[var(--text-secondary)] mb-3",children:"Links"}),(0,d.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,d.jsxs)("select",{value:t,onChange:a=>u(a.target.value?Number(a.target.value):""),className:`${S} flex-1 cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"From…"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{value:v,onChange:a=>w(a.target.value?Number(a.target.value):""),className:`${S} flex-1 cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"To…"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsx)("input",{placeholder:"Label",value:x,onChange:a=>y(a.target.value),className:`${S} w-32`}),(0,d.jsx)("button",{onClick:C,className:"btn btn-sm btn-primary",children:"Add"})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[f.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-2 py-1.5 rounded hover:bg-amber-accent/5",children:[(0,d.jsxs)("span",{className:"text-sm text-[var(--text-primary)] flex-1",children:[E(a.from_entity_id)," → ",E(a.to_entity_id)]}),a.label&&(0,d.jsx)("span",{className:"px-1.5 rounded bg-amber-accent/10 border border-amber-accent/20 text-[10px] shrink-0",children:a.label}),(0,d.jsx)("button",{onClick:()=>D(a),className:"btn btn-sm btn-destructive shrink-0",children:"Remove"})]},a.id)),0===f.length&&(0,d.jsx)("div",{className:"text-xs text-[var(--muted)] py-2",children:"No links yet."})]})]})]}),(0,d.jsx)(N.T,{open:null!==p,onClose:()=>q(null),onConfirm:B,title:"Delete entity?",message:(0,d.jsxs)(d.Fragment,{children:["Deleting ",p?(0,d.jsxs)("strong",{className:"text-[var(--text-primary)]",children:['"',p.name,'"']}):"this entity"," also deletes all of its events and links. This cannot be undone."]}),confirmLabel:"Delete",destructive:!0,loading:r})]})}let U=(0,v.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);function V({conflicts:a,bufferMinutes:b,loading:c,entitiesById:f,onFocusConflict:h,onBufferSaved:i,onClose:j}){let[k,l]=(0,e.useState)(String(b)),[m,n]=(0,e.useState)(!1);async function o(){let a=Number(k);if(Number.isInteger(a)&&!(a<0)){n(!0);try{(await fetch("/api/calendar/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({buffer_minutes:a})})).ok&&i()}finally{n(!1)}}}return(0,d.jsxs)("div",{className:"w-80 shrink-0 floating-surface rounded-2xl shadow-2xl flex flex-col overflow-hidden animate-fade-in",children:[(0,d.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--border)] flex items-center justify-between shrink-0",children:[(0,d.jsx)("span",{className:"text-xs font-bold tracking-widest uppercase text-amber-accent",children:"Conflicts"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.length>0&&(0,d.jsx)("span",{className:"px-1.5 rounded-full bg-[var(--danger-soft)] text-[var(--danger)] text-[10px] font-bold",children:a.length}),(0,d.jsx)("button",{onClick:j,className:"btn btn-icon-sm","aria-label":"Close conflicts panel",children:(0,d.jsx)(g.A,{className:"w-4 h-4","aria-hidden":!0})})]})]}),(0,d.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--border)] flex items-center gap-2 shrink-0",children:[(0,d.jsx)("label",{className:"text-[10px] font-bold text-[var(--text-secondary)] tracking-widest uppercase flex-1",children:"Min buffer (minutes)"}),(0,d.jsx)("input",{type:"number",min:0,value:k,onChange:a=>l(a.target.value),className:"w-16 bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50"}),(0,d.jsx)("button",{onClick:o,disabled:m,className:"btn btn-sm",children:"Save"})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:c?(0,d.jsx)("div",{className:"p-3 space-y-2",children:Array.from({length:3},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-16 w-full rounded-lg"},b))}):0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,d.jsx)(U,{className:"w-7 h-7 opacity-30 dark-icon","aria-hidden":!0}),(0,d.jsx)("div",{className:"text-xs text-[var(--muted)]",children:"No conflicts in view"})]}):a.map((a,b)=>{var c;let e=f.get(a.entity_a.id),g=f.get(a.entity_b.id);return(0,d.jsxs)("div",{onClick:()=>h(a),className:`mx-3 my-2 p-3 rounded-lg border cursor-pointer hover:border-opacity-50 ${"insufficient_buffer"===a.kind?"bg-amber-500/10 border-amber-500/30 text-amber-400":"bg-[var(--danger-soft)] border-[var(--danger)]/30 text-[var(--danger)]"}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"overlap"===(c=a.kind)?"Overlap":"linked_overlap"===c?"Linked overlap":"Insufficient buffer"}),null!==a.gap_minutes&&(0,d.jsxs)("span",{className:"text-[10px] font-mono",children:[a.gap_minutes,"m gap"]})]}),(0,d.jsxs)("div",{className:"text-xs text-[var(--text-primary)] space-y-0.5 mb-1.5",children:[(0,d.jsxs)("div",{children:[a.event_a.title," — ",t(a.event_a.starts_at)," (",e?.name??a.entity_a.name,")"]}),(0,d.jsxs)("div",{children:[a.event_b.title," — ",t(a.event_b.starts_at)," (",g?.name??a.entity_b.name,")"]})]}),(0,d.jsx)("div",{className:"text-[11px] text-[var(--text-secondary)]",children:a.reason})]},b)})})]})}function W(){let a=(0,h.useRouter)(),[b,c]=(0,e.useState)("month"),[j,m]=(0,e.useState)(()=>new Date),[p,q]=(0,e.useState)(),[r,s]=(0,e.useState)(),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!0),[C,D]=(0,e.useState)(new Set),{entities:E,links:G,loading:H,refresh:J}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),h=(0,e.useRef)(0),i=(0,e.useRef)(null),j=(0,e.useCallback)(async()=>{let a=++h.current;i.current?.abort();let c=new AbortController;i.current=c;try{g(!0);let[e,f]=await Promise.all([fetch("/api/calendar/entities",{signal:c.signal}),fetch("/api/calendar/links",{signal:c.signal})]);if(a!==h.current)return;e.ok&&b(await e.json()),f.ok&&d(await f.json())}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch calendar entities:",a)}finally{a===h.current&&g(!1)}},[]);return{entities:a,links:c,loading:f,refresh:j}}(),{from:K,to:M}=(0,e.useMemo)(()=>(function(a,b){if("month"===a){let a=o(b);return{from:a[0],to:l(a[a.length-1],1)}}if("week"===a){let a=n(b);return{from:a,to:l(a,7)}}let c=k(b);return{from:c,to:l(c,30)}})(b,j),[b,j]),N=K.toISOString(),O=M.toISOString(),{events:P,conflicts:R,bufferMinutes:S,loading:U,refresh:W}=function(a){let[b,c]=(0,e.useState)([]),[d,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(0),[i,j]=(0,e.useState)(0),[k,l]=(0,e.useState)(!0),m=(0,e.useRef)(a);m.current=a;let n=(0,e.useRef)(0),o=(0,e.useRef)(null),p=(0,e.useCallback)(async()=>{let a=m.current,b=++n.current;o.current?.abort();let d=new AbortController;o.current=d;try{l(!0);let e=new URLSearchParams({from:a.fromIso,to:a.toIso});void 0!==a.entityId&&e.append("entity_id",String(a.entityId)),a.type&&e.append("type",a.type);let g=new URLSearchParams({from:a.fromIso,to:a.toIso});void 0!==a.entityId&&g.append("entity_ids",String(a.entityId));let[i,k]=await Promise.all([fetch(`/api/calendar/events?${e.toString()}`,{signal:d.signal}),fetch(`/api/calendar/conflicts?${g.toString()}`,{signal:d.signal})]);if(b!==n.current)return;if(i.ok&&c(await i.json()),k.ok){let a=await k.json();f(a.conflicts),h(a.buffer_minutes),j(a.events_considered)}}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch calendar data:",a)}finally{b===n.current&&l(!1)}},[]);return{events:b,conflicts:d,bufferMinutes:g,eventsConsidered:i,loading:k,refresh:p}}({fromIso:N,toIso:O,entityId:p,type:r}),X=(0,e.useCallback)(()=>{J(),W()},[J,W]),Y=(0,e.useMemo)(()=>new Map(E.map(a=>[a.id,a])),[E]),Z=(0,e.useMemo)(()=>{let a=new Set;for(let b of R)a.add(b.event_a.id),a.add(b.event_b.id);return a},[R]),$=(0,e.useMemo)(()=>[...new Set(P.map(a=>a.type))].sort(),[P]),_=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase();return a?P.filter(b=>{let c=Y.get(b.entity_id)?.name??"";return b.title.toLowerCase().includes(a)||c.toLowerCase().includes(a)||b.type.toLowerCase().includes(a)||(b.notes??"").toLowerCase().includes(a)||(b.source??"").toLowerCase().includes(a)}):P},[P,t,Y]);function aa(a,b){J();let c=new Date(a);c.setHours(b??9,0,0,0);let d=new Date(c);d.setHours(c.getHours()+1),w({mode:"create",entityId:p,startsAt:i(c.toISOString()),endsAt:i(d.toISOString())})}function ab(a){J(),w({mode:"edit",event:a})}let ac="month"===b?j.toLocaleDateString(void 0,{month:"long",year:"numeric"}):function(a,b){let c=l(b,-1),d=a.getMonth()===c.getMonth()&&a.getFullYear()===c.getFullYear(),e=a.toLocaleDateString(void 0,d?{day:"numeric"}:{day:"numeric",month:"short"}),f=c.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});return`${e} – ${f}`}(K,M),ad=H||U;return(0,d.jsxs)("div",{className:"h-screen overflow-hidden flex flex-col bg-[var(--bg-secondary)] dark:bg-[var(--bg-primary)]",children:[(0,d.jsxs)("header",{className:"sticky top-0 z-30 h-16 bg-[var(--bg-secondary)]/80 backdrop-blur-xl border-b border-[var(--border)] flex items-center px-6 gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 cursor-pointer",onClick:()=>a.push("/"),children:[(0,d.jsx)("span",{className:"text-sm text-[var(--text-secondary)] hover:text-amber-accent transition-colors",children:"Home"}),(0,d.jsx)(f.A,{className:"w-4 h-4 text-[var(--muted)] opacity-40","aria-hidden":!0}),(0,d.jsx)("span",{className:"text-sm font-bold text-amber-accent",children:"Calendar"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>a.push("/"),className:"btn btn-icon-md btn-outline ml-auto","aria-label":"Close calendar and return to home",title:"Close",children:(0,d.jsx)(g.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,d.jsxs)("div",{className:"flex-1 p-3 lg:p-4 flex gap-3 overflow-hidden",children:[(0,d.jsxs)("main",{className:"flex-1 min-w-0 floating-surface rounded-2xl shadow-2xl relative flex flex-col overflow-hidden",children:[(0,d.jsx)("div",{className:"absolute inset-0 border border-amber-accent/10 rounded-2xl pointer-events-none z-20"}),(0,d.jsx)(z,{view:b,onViewChange:c,rangeLabel:ac,anchor:j,onNavigate:function(a){if(D(new Set),0===a)return void m(new Date);"month"===b?m(b=>new Date(b.getFullYear(),b.getMonth()+a,1)):"week"===b?m(b=>l(b,7*a)):m(b=>l(b,30*a))},onJumpToDate:function(a){D(new Set),m(a)},entities:E,entityFilter:p,onEntityFilter:q,types:$,typeFilter:r,onTypeFilter:s,query:t,onQueryChange:u,conflictCount:R.length,conflictsOpen:A,onToggleConflicts:()=>B(a=>!a),onExportIcs:function(){let a=new URLSearchParams({from:N,to:O});void 0!==p&&a.append("entity_id",String(p));let b=`/api/calendar/ics?${a.toString()}`,c=document.createElement("a");c.href=b,c.download="",c.click()},onManageEntities:()=>{J(),y(!0)},onNewEvent:()=>aa(new Date)}),"month"===b&&(0,d.jsx)(F,{anchor:j,events:_,entitiesById:Y,conflictEventIds:Z,highlightIds:C,loading:ad,onSlotClick:aa,onEventClick:ab,onShowDay:function(a){m(a),c("week")}}),"week"===b&&(0,d.jsx)(I,{anchor:j,events:_,entitiesById:Y,conflictEventIds:Z,highlightIds:C,loading:ad,onSlotClick:aa,onEventClick:ab}),"agenda"===b&&(0,d.jsx)(L,{events:_,entitiesById:Y,conflicts:R,loading:ad,highlightIds:C,onEventClick:ab})]}),A&&(0,d.jsx)("div",{className:"hidden xl:flex",children:(0,d.jsx)(V,{conflicts:R,bufferMinutes:S,loading:U,entitiesById:Y,onFocusConflict:function(a){m(new Date(a.event_a.starts_at)),D(new Set([a.event_a.id,a.event_b.id])),requestAnimationFrame(()=>{let b=document.getElementById(`cal-ev-${a.event_a.id}`);b?.scrollIntoView({block:"center",behavior:"smooth"})})},onBufferSaved:W,onClose:()=>B(!1)})})]}),v&&(0,d.jsx)(Q,{state:v,entities:E.filter(a=>a.active),knownTypes:$,onClose:()=>w(null),onSaved:X}),(0,d.jsx)(T,{open:x,onClose:()=>y(!1),entities:E,links:G,onChanged:X})]})}},62595:(a,b,c)=>{Promise.resolve().then(c.bind(c,57042))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77598:a=>{"use strict";a.exports=require("node:crypto")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86571:(a,b,c)=>{Promise.resolve().then(c.bind(c,38186))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,3668,8675,2144,6680],()=>b(b.s=13754));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=5085,a.ids=[5085],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1691:(a,b,c)=>{"use strict";c.d(b,{CalendarClient:()=>W});var d=c(25108),e=c(33997),f=c(40905),g=c(13505),h=c(90554);function i(a){let b=new Date(a),c=a=>String(a).padStart(2,"0");return`${b.getFullYear()}-${c(b.getMonth()+1)}-${c(b.getDate())}T${c(b.getHours())}:${c(b.getMinutes())}`}function j(a){return new Date(a).toISOString()}function k(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function l(a,b){let c=new Date(a);return c.setDate(c.getDate()+b),c}function m(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}function n(a){let b=(a.getDay()+6)%7;return k(l(a,-b))}function o(a){let b=new Date(a.getFullYear(),a.getMonth(),1),c=new Date(a.getFullYear(),a.getMonth()+1,0),d=n(b);return Array.from({length:7*(Math.round((n(c).getTime()-d.getTime())/6048e5)+1)},(a,b)=>l(d,b))}let p={4:5,5:4,6:3},q=Array.from({length:24},(a,b)=>b);function r(a,b){let c=k(b).getTime();return new Date(a.starts_at).getTime()<c+864e5&&new Date(a.ends_at).getTime()>c}function s(a,b){if(!r(a,b))return!1;let c=k(b).getTime(),d=Math.max(new Date(a.starts_at).getTime(),c);return(Math.min(new Date(a.ends_at).getTime(),c+864e5)-d)/6e4>=1380}function t(a){return new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}var u=c(17184),v=c(41880);let w=(0,v.A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),x=[{id:"month",label:"Month"},{id:"week",label:"Week"},{id:"agenda",label:"Agenda"}],y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function z({view:a,onViewChange:b,rangeLabel:c,anchor:h,onNavigate:i,onJumpToDate:j,entities:k,entityFilter:l,onEntityFilter:m,types:n,typeFilter:o,onTypeFilter:p,query:q,onQueryChange:r,conflictCount:s,conflictsOpen:t,onToggleConflicts:v,onExportIcs:z,onManageEntities:A,onNewEvent:B}){let[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(h.getFullYear());return(0,d.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,d.jsxs)("div",{className:"px-4 pt-3 pb-2 flex items-center gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(-1),"aria-label":"Previous",children:(0,d.jsx)(w,{className:"w-4 h-4","aria-hidden":!0})}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(0),children:"Today"}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:()=>i(1),"aria-label":"Next",children:(0,d.jsx)(f.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,d.jsxs)(u.bL,{open:C,onOpenChange:a=>{D(a),a&&F(h.getFullYear())},children:[(0,d.jsx)(u.l9,{asChild:!0,children:(0,d.jsx)("button",{type:"button",className:"font-title text-lg font-bold text-[var(--text-primary)] mx-2 whitespace-nowrap truncate hover:text-amber-accent transition-colors","aria-label":"Jump to a different month",children:c})}),(0,d.jsx)(u.ZL,{children:(0,d.jsx)(u.UC,{align:"start",sideOffset:6,className:"z-[var(--z-dropdown)]",children:(0,d.jsxs)("div",{className:"w-56 rounded-md border border-[var(--border)] bg-[var(--bg-primary)] p-3 shadow-xl animate-scale-in",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>F(a=>a-1),className:"btn btn-icon-sm","aria-label":"Previous year",children:(0,d.jsx)(w,{className:"w-3.5 h-3.5","aria-hidden":!0})}),(0,d.jsx)("span",{className:"text-xs font-bold text-[var(--text-primary)]",children:E}),(0,d.jsx)("button",{type:"button",onClick:()=>F(a=>a+1),className:"btn btn-icon-sm","aria-label":"Next year",children:(0,d.jsx)(f.A,{className:"w-3.5 h-3.5","aria-hidden":!0})})]}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:y.map((a,b)=>{let c=E===h.getFullYear()&&b===h.getMonth();return(0,d.jsx)("button",{type:"button",onClick:()=>{j(new Date(E,b,1)),D(!1)},className:`rounded px-2 py-1.5 text-[11px] font-medium transition-colors ${c?"bg-amber-accent/15 text-amber-accent border border-amber-accent/40":"text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]/40"}`,children:a},a)})}),(0,d.jsx)("button",{type:"button",onClick:function(){j(new Date),D(!1)},className:"mt-2 w-full text-center text-[10px] font-bold uppercase tracking-widest text-amber-accent hover:opacity-80",children:"Today"})]})})})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("div",{className:"flex rounded-lg border border-[var(--border)] overflow-hidden shrink-0",children:x.map(c=>(0,d.jsx)("button",{onClick:()=>b(c.id),className:`px-3 py-1.5 text-xs font-bold tracking-widest uppercase transition-colors ${a===c.id?"bg-amber-accent/10 text-amber-accent":"text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]/40"}`,children:c.label},c.id))})]}),(0,d.jsxs)("div",{className:"px-4 pb-3 flex items-center gap-2 flex-wrap",children:[(0,d.jsxs)("select",{value:l??"",onChange:a=>m(a.target.value?Number(a.target.value):void 0),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer min-w-0",children:[(0,d.jsx)("option",{value:"",children:"All entities"}),k.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{value:o??"",onChange:a=>p(a.target.value||void 0),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer min-w-0",children:[(0,d.jsx)("option",{value:"",children:"All types"}),n.map(a=>(0,d.jsx)("option",{value:a,children:a},a))]}),(0,d.jsxs)("div",{className:"relative min-w-[8rem] flex-1 max-w-48",children:[(0,d.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),placeholder:"Filter: entity, title, type…",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 pr-6 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50 placeholder:text-[var(--muted)]"}),q&&(0,d.jsx)("button",{onClick:()=>r(""),className:"absolute right-1 top-1/2 -translate-y-1/2 text-[var(--muted)] hover:text-amber-accent text-xs px-1","aria-label":"Clear filter",children:(0,d.jsx)(g.A,{className:"w-3.5 h-3.5","aria-hidden":!0})})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,d.jsxs)("button",{onClick:v,className:`btn btn-sm flex items-center gap-1.5 ${t?"bg-amber-accent/10 text-amber-accent":""}`,children:["Conflicts",s>0&&(0,d.jsx)("span",{className:"px-1.5 rounded-full bg-[var(--danger-soft)] text-[var(--danger)] text-[10px] font-bold",children:s})]}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:A,children:"Entities"}),(0,d.jsx)("button",{className:"btn btn-sm",onClick:z,children:"Export ICS"}),(0,d.jsx)("button",{className:"btn btn-sm btn-primary",onClick:B,children:"+ New event"})]})]})]})}let A=[{chip:"bg-amber-accent/15 text-amber-accent-dark dark:text-amber-accent-light border-amber-accent/30",dot:"bg-amber-accent"},{chip:"bg-sky-500/15 text-sky-700 dark:text-sky-300 border-sky-500/30",dot:"bg-sky-400"},{chip:"bg-emerald-500/15 text-emerald-700 dark:text-emerald-300 border-emerald-500/30",dot:"bg-emerald-400"},{chip:"bg-violet-500/15 text-violet-700 dark:text-violet-300 border-violet-500/30",dot:"bg-violet-400"},{chip:"bg-rose-500/15 text-rose-700 dark:text-rose-300 border-rose-500/30",dot:"bg-rose-400"},{chip:"bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 border-cyan-500/30",dot:"bg-cyan-400"}];function B(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return A[b%A.length]}function C({event:a,entityName:b,allDay:c,conflicted:e,highlighted:f,onClick:g}){let h=B(a.type);return(0,d.jsxs)("button",{id:`cal-ev-${a.id}`,onClick:a=>{a.stopPropagation(),g(a)},className:`w-full text-left truncate rounded px-1.5 py-0.5 text-[11px] border ${h.chip} ${e?"ring-1 ring-red-400/70":""} ${f?"ring-2 ring-red-400":""}`,title:`${b} — ${a.title}`,children:[!c&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-mono opacity-70",children:t(a.starts_at)})," "]}),(0,d.jsx)("span",{className:"font-bold",children:b})," \xb7 ",a.title]})}let D=["MON","TUE","WED","THU","FRI","SAT","SUN"];function E(a){return k(a).toISOString()}function F({anchor:a,events:b,entitiesById:c,conflictEventIds:f,highlightIds:g,loading:h,onSlotClick:i,onEventClick:j,onShowDay:k}){let l=(0,e.useMemo)(()=>o(a),[a]),n=l.length/7,q=p[n]??3,t={gridTemplateRows:`repeat(${n}, minmax(0, 1fr))`},u=(0,e.useMemo)(()=>{let a=new Map;for(let c of l){let d=b.filter(a=>r(a,c)).sort((a,b)=>a.starts_at<b.starts_at?-1:+(a.starts_at>b.starts_at));a.set(E(c),d)}return a},[l,b]),v=new Date;return(0,d.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,d.jsx)("div",{className:"grid grid-cols-7 text-[10px] font-bold tracking-widest uppercase text-[var(--muted)] border-b border-[var(--border)]",children:D.map(a=>(0,d.jsx)("div",{className:"px-2 py-1.5",children:a},a))}),h?(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",style:t,children:l.map(a=>(0,d.jsx)("div",{className:"border-b border-r border-[var(--border)] p-1.5",children:(0,d.jsx)("div",{className:"skeleton h-4 w-4 rounded-full bp-keep-round"})},E(a)))}):(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1 overflow-y-auto",style:t,children:l.map(b=>{let e=b.getMonth()===a.getMonth(),h=m(b,v),l=u.get(E(b))??[],n=l.slice(0,q),o=l.length-n.length;return(0,d.jsxs)("div",{onClick:()=>i(b),className:`border-b border-r border-[var(--border)] p-1.5 min-h-[96px] cursor-pointer hover:bg-amber-accent/5 flex flex-col gap-1 overflow-hidden ${h?"bg-amber-accent/5":""}`,children:[h?(0,d.jsx)("span",{className:"w-6 h-6 rounded-full bp-keep-round bg-amber-accent text-white flex items-center justify-center font-bold text-xs",children:b.getDate()}):(0,d.jsx)("span",{className:`text-xs ${e?"text-[var(--text-primary)]":"text-[var(--muted)] opacity-50"}`,children:b.getDate()}),n.map(a=>(0,d.jsx)(C,{event:a,entityName:c.get(a.entity_id)?.name??`#${a.entity_id}`,allDay:s(a,b),conflicted:f.has(a.id),highlighted:g.has(a.id),onClick:()=>j(a)},a.id)),o>0&&(0,d.jsxs)("button",{onClick:a=>{a.stopPropagation(),k(b)},className:"text-[10px] text-[var(--text-secondary)] hover:text-amber-accent text-left",children:["+",o," more"]})]},E(b))})})]})}function G(a){return k(a).toISOString()}function H({day:a}){let[b,c]=(0,e.useState)(new Date);if(!m(a,b))return null;let f=(60*b.getHours()+b.getMinutes())*.8;return(0,d.jsxs)("div",{className:"absolute left-0 right-0 pointer-events-none z-10",style:{top:f},children:[(0,d.jsx)("div",{className:"h-px bg-amber-accent shadow-[0_0_6px_var(--accent-soft)]"}),(0,d.jsx)("div",{className:"w-2 h-2 rounded-full bp-keep-round bg-amber-accent -ml-1 -mt-1"})]})}function I({anchor:a,events:b,entitiesById:c,conflictEventIds:f,highlightIds:g,loading:h,onSlotClick:i,onEventClick:j}){let o=(0,e.useMemo)(()=>(function(a){let b=n(a);return Array.from({length:7},(a,c)=>l(b,c))})(a),[a]),p=(0,e.useRef)(null),u=new Date,v=(0,e.useMemo)(()=>{let a=new Map;for(let c of o)a.set(G(c),b.filter(a=>s(a,c)));return a},[o,b]),w=(0,e.useMemo)(()=>[...v.values()].some(a=>a.length>0),[v]);return h?(0,d.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden p-4 gap-2",children:Array.from({length:8},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-8 w-full"},b))}):(0,d.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex sticky top-0 z-10 bg-[var(--bg-secondary)]/80 backdrop-blur-xl border-b border-[var(--border)]",children:[(0,d.jsx)("div",{className:"w-14 shrink-0"}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>(0,d.jsx)("div",{className:`text-center py-2 text-xs font-bold ${m(a,u)?"text-amber-accent":"text-[var(--text-secondary)]"}`,children:a.toLocaleDateString(void 0,{weekday:"short",day:"numeric"})},a.toISOString()))})]}),w&&(0,d.jsxs)("div",{className:"flex border-b border-[var(--border)] shrink-0",children:[(0,d.jsx)("div",{className:"w-14 shrink-0 flex items-start justify-end pr-2 pt-1.5",children:(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-widest text-[var(--muted)]",children:"All-day"})}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>(0,d.jsx)("div",{className:"border-l border-[var(--border)] p-1 flex flex-col gap-1",children:(v.get(G(a))??[]).map(a=>(0,d.jsx)(C,{event:a,entityName:c.get(a.entity_id)?.name??`#${a.entity_id}`,allDay:!0,conflicted:f.has(a.id),highlighted:g.has(a.id),onClick:()=>j(a)},a.id))},a.toISOString()))})]}),(0,d.jsxs)("div",{ref:p,className:"flex-1 overflow-y-auto flex",children:[(0,d.jsx)("div",{className:"w-14 shrink-0",children:q.map(a=>(0,d.jsxs)("div",{className:"text-[10px] text-[var(--muted)] text-right pr-2 font-mono",style:{height:48},children:[String(a).padStart(2,"0"),":00"]},a))}),(0,d.jsx)("div",{className:"grid grid-cols-7 flex-1",children:o.map(a=>{let e=function(a,b){let c=k(b).getTime(),d=c+864e5,e=a.filter(a=>r(a,b)).map(a=>{let b=Math.max(new Date(a.starts_at).getTime(),c),e=Math.min(new Date(a.ends_at).getTime(),d);return{event:a,topMin:(b-c)/6e4,endMin:(e-c)/6e4}}).sort((a,b)=>a.topMin!==b.topMin?a.topMin-b.topMin:b.endMin-a.endMin),f=[],g=0;for(;g<e.length;){let a=e[g].endMin,b=g+1;for(;b<e.length&&e[b].topMin<a;)a=Math.max(a,e[b].endMin),b++;let c=e.slice(g,b),d=[],h=[];for(let a of c){let b=d.findIndex(b=>b<=a.topMin);-1===b?(b=d.length,d.push(a.endMin)):d[b]=a.endMin,h.push(b)}let i=d.length;c.forEach((a,b)=>{f.push({event:a.event,lane:h[b],lanes:i,topMin:a.topMin,heightMin:Math.max(a.endMin-a.topMin,20)})}),g=b}return f}(b.filter(b=>!s(b,a)),a);return(0,d.jsxs)("div",{className:"relative border-l border-[var(--border)]",style:{height:1152},onClick:b=>{let c=b.currentTarget.getBoundingClientRect();i(a,Math.floor((b.clientY-c.top)/48))},children:[q.map(a=>(0,d.jsx)("div",{className:"absolute left-0 right-0 border-t border-[var(--border)]",style:{top:48*a}},a)),(0,d.jsx)(H,{day:a}),e.map(({event:a,lane:b,lanes:e,topMin:h,heightMin:i})=>{let k=B(a.type),l=c.get(a.entity_id)?.name??`#${a.entity_id}`;return(0,d.jsxs)("button",{id:`cal-ev-${a.id}`,onClick:b=>{b.stopPropagation(),j(a)},className:`absolute rounded-md border px-1.5 py-0.5 text-[11px] leading-tight overflow-hidden text-left cursor-pointer ${k.chip} ${f.has(a.id)?"ring-1 ring-red-400/70":""} ${g.has(a.id)?"ring-2 ring-red-400":""}`,style:{top:.8*h,height:.8*i,left:`${b/e*100}%`,width:`calc(${100/e}% - 2px)`},title:`${l} — ${a.title}`,children:[(0,d.jsxs)("div",{className:"font-semibold truncate",children:[(0,d.jsx)("span",{className:"font-bold",children:l})," \xb7 ",a.title]}),(0,d.jsxs)("div",{className:"opacity-70 font-mono text-[10px]",children:[t(a.starts_at),"–",t(a.ends_at)]})]},a.id)})]},a.toISOString())})})]})]})}var J=c(49395);function K(a){return k(a).toISOString()}function L({events:a,entitiesById:b,conflicts:c,loading:f,highlightIds:g,onEventClick:h}){let i=(0,e.useMemo)(()=>{let a=new Map;for(let b of c)a.has(b.event_a.id)||a.set(b.event_a.id,[]),a.get(b.event_a.id).push(b),a.has(b.event_b.id)||a.set(b.event_b.id,[]),a.get(b.event_b.id).push(b);return a},[c]),j=(0,e.useMemo)(()=>{let b=[...a].sort((a,b)=>a.starts_at<b.starts_at?-1:+(a.starts_at>b.starts_at)),c=new Map;for(let a of b){let b=k(new Date(a.starts_at)),d=K(b);c.has(d)||c.set(d,{day:b,items:[]}),c.get(d).items.push(a)}return[...c.values()].sort((a,b)=>a.day<b.day?-1:+(a.day>b.day))},[a]);if(f)return(0,d.jsx)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:Array.from({length:6},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-10 w-full"},b))});if(0===j.length)return(0,d.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-16 gap-3",children:[(0,d.jsx)(J.A,{className:"w-9 h-9 opacity-30 dark-icon","aria-hidden":!0}),(0,d.jsx)("div",{className:"text-sm text-[var(--muted)]",children:"No events in the next 30 days"})]});let l=new Date;return(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:j.map(({day:a,items:c})=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:`sticky top-0 px-4 py-2 bg-[var(--bg-secondary)]/80 backdrop-blur-xl text-[10px] font-bold tracking-widest uppercase border-b border-[var(--border)] ${m(a,l)?"text-amber-accent":"text-[var(--text-secondary)]"}`,children:a.toLocaleDateString(void 0,{weekday:"long",day:"numeric",month:"long"})}),c.map(a=>{let c=b.get(a.entity_id),e=B(a.type),f=i.get(a.id)??[];return(0,d.jsxs)("div",{id:`cal-ev-${a.id}`,onClick:()=>h(a),className:`px-4 py-3 border-b border-[var(--border)] flex items-center gap-3 hover:bg-amber-accent/5 cursor-pointer ${g.has(a.id)?"ring-2 ring-[var(--danger)]":""}`,children:[(0,d.jsx)("span",{className:`w-2 h-2 rounded-full bp-keep-round shrink-0 ${e.dot}`}),(0,d.jsxs)("span",{className:"font-mono text-xs text-[var(--text-secondary)] w-28 shrink-0",children:[t(a.starts_at),"–",t(a.ends_at)]}),(0,d.jsx)("span",{className:"text-sm text-[var(--text-primary)] font-medium truncate",children:a.title}),(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0",children:c?.name??`#${a.entity_id}`}),(0,d.jsx)("span",{className:"px-1.5 rounded bg-amber-accent/10 border border-amber-accent/20 text-[10px] shrink-0",children:a.type}),f.length>0&&(0,d.jsx)("span",{className:"ml-auto px-2 py-0.5 rounded-full bg-[var(--danger-soft)] border border-[var(--danger)]/30 text-[var(--danger)] text-[10px] font-bold uppercase tracking-wider shrink-0",title:f.map(a=>a.reason).join("\n"),children:"Conflict"})]},a.id)})]},K(a)))})}var M=c(42052),N=c(361);let O="w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",P="block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5 uppercase";function Q({state:a,entities:b,knownTypes:c,onClose:f,onSaved:g}){let h="edit"===a.mode,i=h?a.event:null,[k,l]=(0,e.useState)(h?i.entity_id:a.entityId??b[0]?.id??""),[m,n]=(0,e.useState)(h?i.type:""),[o,p]=(0,e.useState)(h?i.title:""),[q,r]=(0,e.useState)(h?C(i.starts_at):a.startsAt),[s,t]=(0,e.useState)(h?C(i.ends_at):a.endsAt),[u,v]=(0,e.useState)(h?i.notes??"":""),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(!1);function C(a){let b=new Date(a),c=a=>String(a).padStart(2,"0");return`${b.getFullYear()}-${c(b.getMonth()+1)}-${c(b.getDate())}T${c(b.getHours())}:${c(b.getMinutes())}`}async function D(){if(z(null),!k||!m.trim()||!o.trim()||!q||!s)return void z("Entity, type, title, start, and end are all required.");if(s<=q)return void z("End must be after start.");x(!0);try{let a={entity_id:Number(k),type:m.trim(),title:o.trim(),notes:u.trim()||void 0,starts_at:j(q),ends_at:j(s),original_timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},b=h?await fetch(`/api/calendar/events/${i.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}):await fetch("/api/calendar/events",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,source:"web"})});if(!b.ok){let a=await b.json().catch(()=>({}));z(a.error??"Failed to save event.");return}g(),f()}finally{x(!1)}}async function E(){B(!1),x(!0);try{let a=await fetch(`/api/calendar/events/${i.id}`,{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));z(b.error??"Failed to delete event.");return}g(),f()}finally{x(!1)}}return(0,d.jsxs)(M.l,{open:!0,onClose:f,title:h?"Edit event":"New event",widthClass:"max-w-lg",children:[(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Entity"}),(0,d.jsxs)("select",{value:k,onChange:a=>l(a.target.value?Number(a.target.value):""),className:`${O} cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"Select an entity…"}),b.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Type"}),(0,d.jsx)("input",{type:"text",list:"calendar-event-types",value:m,onChange:a=>n(a.target.value),placeholder:"Freeform — any label you like",className:O}),(0,d.jsx)("datalist",{id:"calendar-event-types",children:c.map(a=>(0,d.jsx)("option",{value:a},a))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Title"}),(0,d.jsx)("input",{type:"text",value:o,onChange:a=>p(a.target.value),className:O})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Starts"}),(0,d.jsx)("input",{type:"datetime-local",value:q,onChange:a=>r(a.target.value),className:O})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Ends"}),(0,d.jsx)("input",{type:"datetime-local",value:s,onChange:a=>t(a.target.value),className:O})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:P,children:"Notes"}),(0,d.jsx)("textarea",{rows:3,value:u,onChange:a=>v(a.target.value),className:O})]}),y&&(0,d.jsx)("div",{className:"text-xs text-[var(--danger)]",children:y})]}),(0,d.jsxs)("div",{className:"pt-4 mt-4 border-t border-[var(--border)] flex items-center justify-between gap-3",children:[h?(0,d.jsx)("button",{onClick:()=>B(!0),disabled:w,className:"btn btn-sm btn-destructive",children:"Delete"}):(0,d.jsx)("div",{}),(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("button",{onClick:f,disabled:w,className:"btn btn-sm",children:"Cancel"}),(0,d.jsx)("button",{onClick:D,disabled:w,className:"btn btn-sm btn-primary",children:w?"Saving…":"Save"})]})]}),(0,d.jsx)(N.T,{open:A,onClose:()=>B(!1),onConfirm:E,title:"Delete event?",message:"This cannot be undone.",confirmLabel:"Delete",destructive:!0,loading:w})]})}var R=c(75947);let S="bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50";function T({open:a,onClose:b,entities:c,links:f,onChanged:g}){let[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)("");async function z(){if(o(null),!h.trim())return;let a=await fetch("/api/calendar/entities",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim(),kind:j.trim()||void 0,timezone:l.trim()||void 0})});if(!a.ok)return void o((await a.json().catch(()=>({}))).error??"Failed to add entity.");i(""),k(""),m(""),g()}async function A(a){o(null);let b=await fetch(`/api/calendar/entities/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({active:!a.active})});if(!b.ok)return void o((await b.json().catch(()=>({}))).error??"Failed to update entity.");g()}async function B(){if(p){s(!0);try{let a=await fetch(`/api/calendar/entities/${p.id}`,{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));R.o.error(b.error??"Failed to delete entity.");return}q(null),R.o.success(`Deleted "${p.name}"`),g()}finally{s(!1)}}}async function C(){if(o(null),!t||!v||t===v)return void o("Choose two different entities.");let a=await fetch("/api/calendar/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from_entity_id:t,to_entity_id:v,label:x.trim()||void 0})});if(!a.ok)return void o((await a.json().catch(()=>({}))).error??"Failed to add link.");u(""),w(""),y(""),g()}async function D(a){o(null),(await fetch(`/api/calendar/links?from=${a.from_entity_id}&to=${a.to_entity_id}`,{method:"DELETE"})).ok&&g()}function E(a){return c.find(b=>b.id===a)?.name??`#${a}`}return(0,d.jsxs)(M.l,{open:a,onClose:b,title:"Manage entities & links",widthClass:"max-w-3xl",children:[(0,d.jsxs)("div",{className:"space-y-6",children:[n&&(0,d.jsx)("div",{className:"text-xs text-[var(--danger)]",children:n}),(0,d.jsxs)("section",{children:[(0,d.jsx)("h4",{className:"text-xs font-bold tracking-widest uppercase text-[var(--text-secondary)] mb-3",children:"Entities"}),(0,d.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,d.jsx)("input",{placeholder:"Name",value:h,onChange:a=>i(a.target.value),className:`${S} flex-1`}),(0,d.jsx)("input",{placeholder:"Kind",value:j,onChange:a=>k(a.target.value),className:`${S} w-28`}),(0,d.jsx)("input",{placeholder:"Timezone",value:l,onChange:a=>m(a.target.value),className:`${S} w-36`}),(0,d.jsx)("button",{onClick:z,className:"btn btn-sm btn-primary",children:"Add"})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[c.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-2 py-1.5 rounded hover:bg-amber-accent/5",children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full bp-keep-round shrink-0 ${a.active?"bg-[var(--success)]":"bg-[var(--muted)]"}`}),(0,d.jsx)("span",{className:"text-sm text-[var(--text-primary)] flex-1 truncate",children:a.name}),a.kind&&(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0",children:a.kind}),a.timezone&&(0,d.jsx)("span",{className:"text-xs text-[var(--muted)] shrink-0 font-mono",children:a.timezone}),(0,d.jsx)("button",{onClick:()=>A(a),className:"btn btn-sm shrink-0",children:a.active?"Retire":"Reactivate"}),(0,d.jsx)("button",{onClick:()=>q(a),className:"btn btn-sm btn-destructive shrink-0",children:"Delete"})]},a.id)),0===c.length&&(0,d.jsx)("div",{className:"text-xs text-[var(--muted)] py-2",children:"No entities yet."})]})]}),(0,d.jsxs)("section",{children:[(0,d.jsx)("h4",{className:"text-xs font-bold tracking-widest uppercase text-[var(--text-secondary)] mb-3",children:"Links"}),(0,d.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,d.jsxs)("select",{value:t,onChange:a=>u(a.target.value?Number(a.target.value):""),className:`${S} flex-1 cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"From…"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsxs)("select",{value:v,onChange:a=>w(a.target.value?Number(a.target.value):""),className:`${S} flex-1 cursor-pointer`,children:[(0,d.jsx)("option",{value:"",children:"To…"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,d.jsx)("input",{placeholder:"Label",value:x,onChange:a=>y(a.target.value),className:`${S} w-32`}),(0,d.jsx)("button",{onClick:C,className:"btn btn-sm btn-primary",children:"Add"})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[f.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-2 py-1.5 rounded hover:bg-amber-accent/5",children:[(0,d.jsxs)("span",{className:"text-sm text-[var(--text-primary)] flex-1",children:[E(a.from_entity_id)," → ",E(a.to_entity_id)]}),a.label&&(0,d.jsx)("span",{className:"px-1.5 rounded bg-amber-accent/10 border border-amber-accent/20 text-[10px] shrink-0",children:a.label}),(0,d.jsx)("button",{onClick:()=>D(a),className:"btn btn-sm btn-destructive shrink-0",children:"Remove"})]},a.id)),0===f.length&&(0,d.jsx)("div",{className:"text-xs text-[var(--muted)] py-2",children:"No links yet."})]})]})]}),(0,d.jsx)(N.T,{open:null!==p,onClose:()=>q(null),onConfirm:B,title:"Delete entity?",message:(0,d.jsxs)(d.Fragment,{children:["Deleting ",p?(0,d.jsxs)("strong",{className:"text-[var(--text-primary)]",children:['"',p.name,'"']}):"this entity"," also deletes all of its events and links. This cannot be undone."]}),confirmLabel:"Delete",destructive:!0,loading:r})]})}let U=(0,v.A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);function V({conflicts:a,bufferMinutes:b,loading:c,entitiesById:f,onFocusConflict:h,onBufferSaved:i,onClose:j}){let[k,l]=(0,e.useState)(String(b)),[m,n]=(0,e.useState)(!1);async function o(){let a=Number(k);if(Number.isInteger(a)&&!(a<0)){n(!0);try{(await fetch("/api/calendar/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({buffer_minutes:a})})).ok&&i()}finally{n(!1)}}}return(0,d.jsxs)("div",{className:"w-80 shrink-0 floating-surface rounded-2xl shadow-2xl flex flex-col overflow-hidden animate-fade-in",children:[(0,d.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--border)] flex items-center justify-between shrink-0",children:[(0,d.jsx)("span",{className:"text-xs font-bold tracking-widest uppercase text-amber-accent",children:"Conflicts"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.length>0&&(0,d.jsx)("span",{className:"px-1.5 rounded-full bg-[var(--danger-soft)] text-[var(--danger)] text-[10px] font-bold",children:a.length}),(0,d.jsx)("button",{onClick:j,className:"btn btn-icon-sm","aria-label":"Close conflicts panel",children:(0,d.jsx)(g.A,{className:"w-4 h-4","aria-hidden":!0})})]})]}),(0,d.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--border)] flex items-center gap-2 shrink-0",children:[(0,d.jsx)("label",{className:"text-[10px] font-bold text-[var(--text-secondary)] tracking-widest uppercase flex-1",children:"Min buffer (minutes)"}),(0,d.jsx)("input",{type:"number",min:0,value:k,onChange:a=>l(a.target.value),className:"w-16 bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs text-[var(--text-primary)] outline-none focus:border-amber-accent/50"}),(0,d.jsx)("button",{onClick:o,disabled:m,className:"btn btn-sm",children:"Save"})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto",children:c?(0,d.jsx)("div",{className:"p-3 space-y-2",children:Array.from({length:3},(a,b)=>(0,d.jsx)("div",{className:"skeleton h-16 w-full rounded-lg"},b))}):0===a.length?(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,d.jsx)(U,{className:"w-7 h-7 opacity-30 dark-icon","aria-hidden":!0}),(0,d.jsx)("div",{className:"text-xs text-[var(--muted)]",children:"No conflicts in view"})]}):a.map((a,b)=>{var c;let e=f.get(a.entity_a.id),g=f.get(a.entity_b.id);return(0,d.jsxs)("div",{onClick:()=>h(a),className:`mx-3 my-2 p-3 rounded-lg border cursor-pointer hover:border-opacity-50 ${"insufficient_buffer"===a.kind?"bg-amber-500/10 border-amber-500/30 text-amber-400":"bg-[var(--danger-soft)] border-[var(--danger)]/30 text-[var(--danger)]"}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"overlap"===(c=a.kind)?"Overlap":"linked_overlap"===c?"Linked overlap":"Insufficient buffer"}),null!==a.gap_minutes&&(0,d.jsxs)("span",{className:"text-[10px] font-mono",children:[a.gap_minutes,"m gap"]})]}),(0,d.jsxs)("div",{className:"text-xs text-[var(--text-primary)] space-y-0.5 mb-1.5",children:[(0,d.jsxs)("div",{children:[a.event_a.title," — ",t(a.event_a.starts_at)," (",e?.name??a.entity_a.name,")"]}),(0,d.jsxs)("div",{children:[a.event_b.title," — ",t(a.event_b.starts_at)," (",g?.name??a.entity_b.name,")"]})]}),(0,d.jsx)("div",{className:"text-[11px] text-[var(--text-secondary)]",children:a.reason})]},b)})})]})}function W(){let a=(0,h.useRouter)(),[b,c]=(0,e.useState)("month"),[j,m]=(0,e.useState)(()=>new Date),[p,q]=(0,e.useState)(),[r,s]=(0,e.useState)(),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!0),[C,D]=(0,e.useState)(new Set),{entities:E,links:G,loading:H,refresh:J}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),h=(0,e.useRef)(0),i=(0,e.useRef)(null),j=(0,e.useCallback)(async()=>{let a=++h.current;i.current?.abort();let c=new AbortController;i.current=c;try{g(!0);let[e,f]=await Promise.all([fetch("/api/calendar/entities",{signal:c.signal}),fetch("/api/calendar/links",{signal:c.signal})]);if(a!==h.current)return;e.ok&&b(await e.json()),f.ok&&d(await f.json())}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch calendar entities:",a)}finally{a===h.current&&g(!1)}},[]);return{entities:a,links:c,loading:f,refresh:j}}(),{from:K,to:M}=(0,e.useMemo)(()=>(function(a,b){if("month"===a){let a=o(b);return{from:a[0],to:l(a[a.length-1],1)}}if("week"===a){let a=n(b);return{from:a,to:l(a,7)}}let c=k(b);return{from:c,to:l(c,30)}})(b,j),[b,j]),N=K.toISOString(),O=M.toISOString(),{events:P,conflicts:R,bufferMinutes:S,loading:U,refresh:W}=function(a){let[b,c]=(0,e.useState)([]),[d,f]=(0,e.useState)([]),[g,h]=(0,e.useState)(0),[i,j]=(0,e.useState)(0),[k,l]=(0,e.useState)(!0),m=(0,e.useRef)(a);m.current=a;let n=(0,e.useRef)(0),o=(0,e.useRef)(null),p=(0,e.useCallback)(async()=>{let a=m.current,b=++n.current;o.current?.abort();let d=new AbortController;o.current=d;try{l(!0);let e=new URLSearchParams({from:a.fromIso,to:a.toIso});void 0!==a.entityId&&e.append("entity_id",String(a.entityId)),a.type&&e.append("type",a.type);let g=new URLSearchParams({from:a.fromIso,to:a.toIso});void 0!==a.entityId&&g.append("entity_ids",String(a.entityId));let[i,k]=await Promise.all([fetch(`/api/calendar/events?${e.toString()}`,{signal:d.signal}),fetch(`/api/calendar/conflicts?${g.toString()}`,{signal:d.signal})]);if(b!==n.current)return;if(i.ok&&c(await i.json()),k.ok){let a=await k.json();f(a.conflicts),h(a.buffer_minutes),j(a.events_considered)}}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch calendar data:",a)}finally{b===n.current&&l(!1)}},[]);return{events:b,conflicts:d,bufferMinutes:g,eventsConsidered:i,loading:k,refresh:p}}({fromIso:N,toIso:O,entityId:p,type:r}),X=(0,e.useCallback)(()=>{J(),W()},[J,W]),Y=(0,e.useMemo)(()=>new Map(E.map(a=>[a.id,a])),[E]),Z=(0,e.useMemo)(()=>{let a=new Set;for(let b of R)a.add(b.event_a.id),a.add(b.event_b.id);return a},[R]),$=(0,e.useMemo)(()=>[...new Set(P.map(a=>a.type))].sort(),[P]),_=(0,e.useMemo)(()=>{let a=t.trim().toLowerCase();return a?P.filter(b=>{let c=Y.get(b.entity_id)?.name??"";return b.title.toLowerCase().includes(a)||c.toLowerCase().includes(a)||b.type.toLowerCase().includes(a)||(b.notes??"").toLowerCase().includes(a)||(b.source??"").toLowerCase().includes(a)}):P},[P,t,Y]);function aa(a,b){J();let c=new Date(a);c.setHours(b??9,0,0,0);let d=new Date(c);d.setHours(c.getHours()+1),w({mode:"create",entityId:p,startsAt:i(c.toISOString()),endsAt:i(d.toISOString())})}function ab(a){J(),w({mode:"edit",event:a})}let ac="month"===b?j.toLocaleDateString(void 0,{month:"long",year:"numeric"}):function(a,b){let c=l(b,-1),d=a.getMonth()===c.getMonth()&&a.getFullYear()===c.getFullYear(),e=a.toLocaleDateString(void 0,d?{day:"numeric"}:{day:"numeric",month:"short"}),f=c.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"});return`${e} – ${f}`}(K,M),ad=H||U;return(0,d.jsxs)("div",{className:"h-screen overflow-hidden flex flex-col bg-[var(--bg-secondary)] dark:bg-[var(--bg-primary)]",children:[(0,d.jsxs)("header",{className:"sticky top-0 z-30 h-16 bg-[var(--bg-secondary)]/80 backdrop-blur-xl border-b border-[var(--border)] flex items-center px-6 gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 cursor-pointer",onClick:()=>a.push("/"),children:[(0,d.jsx)("span",{className:"text-sm text-[var(--text-secondary)] hover:text-amber-accent transition-colors",children:"Home"}),(0,d.jsx)(f.A,{className:"w-4 h-4 text-[var(--muted)] opacity-40","aria-hidden":!0}),(0,d.jsx)("span",{className:"text-sm font-bold text-amber-accent",children:"Calendar"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>a.push("/"),className:"btn btn-icon-md btn-outline ml-auto","aria-label":"Close calendar and return to home",title:"Close",children:(0,d.jsx)(g.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,d.jsxs)("div",{className:"flex-1 p-3 lg:p-4 flex gap-3 overflow-hidden",children:[(0,d.jsxs)("main",{className:"flex-1 min-w-0 floating-surface rounded-2xl shadow-2xl relative flex flex-col overflow-hidden",children:[(0,d.jsx)("div",{className:"absolute inset-0 border border-amber-accent/10 rounded-2xl pointer-events-none z-20"}),(0,d.jsx)(z,{view:b,onViewChange:c,rangeLabel:ac,anchor:j,onNavigate:function(a){if(D(new Set),0===a)return void m(new Date);"month"===b?m(b=>new Date(b.getFullYear(),b.getMonth()+a,1)):"week"===b?m(b=>l(b,7*a)):m(b=>l(b,30*a))},onJumpToDate:function(a){D(new Set),m(a)},entities:E,entityFilter:p,onEntityFilter:q,types:$,typeFilter:r,onTypeFilter:s,query:t,onQueryChange:u,conflictCount:R.length,conflictsOpen:A,onToggleConflicts:()=>B(a=>!a),onExportIcs:function(){let a=new URLSearchParams({from:N,to:O});void 0!==p&&a.append("entity_id",String(p));let b=`/api/calendar/ics?${a.toString()}`,c=document.createElement("a");c.href=b,c.download="",c.click()},onManageEntities:()=>{J(),y(!0)},onNewEvent:()=>aa(new Date)}),"month"===b&&(0,d.jsx)(F,{anchor:j,events:_,entitiesById:Y,conflictEventIds:Z,highlightIds:C,loading:ad,onSlotClick:aa,onEventClick:ab,onShowDay:function(a){m(a),c("week")}}),"week"===b&&(0,d.jsx)(I,{anchor:j,events:_,entitiesById:Y,conflictEventIds:Z,highlightIds:C,loading:ad,onSlotClick:aa,onEventClick:ab}),"agenda"===b&&(0,d.jsx)(L,{events:_,entitiesById:Y,conflicts:R,loading:ad,highlightIds:C,onEventClick:ab})]}),A&&(0,d.jsx)("div",{className:"hidden xl:flex",children:(0,d.jsx)(V,{conflicts:R,bufferMinutes:S,loading:U,entitiesById:Y,onFocusConflict:function(a){m(new Date(a.event_a.starts_at)),D(new Set([a.event_a.id,a.event_b.id])),requestAnimationFrame(()=>{let b=document.getElementById(`cal-ev-${a.event_a.id}`);b?.scrollIntoView({block:"center",behavior:"smooth"})})},onBufferSaved:W,onClose:()=>B(!1)})})]}),v&&(0,d.jsx)(Q,{state:v,entities:E.filter(a=>a.active),knownTypes:$,onClose:()=>w(null),onSaved:X}),(0,d.jsx)(T,{open:x,onClose:()=>y(!1),entities:E,links:G,onChanged:X})]})}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13754:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(52810),e=c(18093),f=c(98611),g=c(55572),h=c(17262),i=c(92768),j=c(44031),k=c(8188),l=c(26370),m=c(53256),n=c(34510),o=c(67330),p=c(77357),q=c(74749),r=c(71110),s=c(261),t=c(86725),u=c(33834),v=c(26713),w=c(79596),x=c(70925),y=c(67857),z=c(92710),A=c(17402),B=c(66270),C=c(86439),D=c(28450),E=c.n(D),F=c(4410),G=c(56691),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["calendar",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,26656)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/calendar/page.tsx"]}]},{metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,6296)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,28450,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,72036,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,6285,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,25680,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]}.children,J=["/home/runner/work/kontexta/kontexta/apps/web/src/app/calendar/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/calendar/page",pathname:"/calendar",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/calendar/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26656:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,dynamic:()=>k});var d=c(18234),e=c(8002),f=c(34017),g=c(16040),h=c(28684),i=c(38186),j=c(28691);let k="force-dynamic";async function l(){(0,j.G)();let a=null;try{a=(0,h.getSetting)("auth_password_hash")}catch{(0,f.redirect)("/login")}a||(0,f.redirect)("/login");let b=await (0,e.b3)(),c=await (0,e.UL)();return(0,g.T5)({headers:b,cookies:c})||(0,f.redirect)("/login"),(0,d.jsx)(i.CalendarClient,{})}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28684:a=>{"use strict";a.exports=require("kxta-core")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38186:(a,b,c)=>{"use strict";c.d(b,{CalendarClient:()=>d});let d=(0,c(13522).registerClientReference)(function(){throw Error("Attempted to call CalendarClient() from the server but CalendarClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/kontexta/kontexta/apps/web/src/components/calendar/calendar-client.tsx","CalendarClient")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},62595:(a,b,c)=>{Promise.resolve().then(c.bind(c,1691))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},77598:a=>{"use strict";a.exports=require("node:crypto")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86571:(a,b,c)=>{Promise.resolve().then(c.bind(c,38186))}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,3668,8675,5156,6680],()=>b(b.s=13754));module.exports=c})();
|