kontexta 4.3.1 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/standalone/CHANGELOG.md +6 -0
- package/bundle/standalone/apps/web/.next/BUILD_ID +1 -1
- package/bundle/standalone/apps/web/.next/app-build-manifest.json +129 -129
- package/bundle/standalone/apps/web/.next/app-path-routes-manifest.json +23 -23
- package/bundle/standalone/apps/web/.next/build-manifest.json +3 -3
- package/bundle/standalone/apps/web/.next/prerender-manifest.json +20 -20
- package/bundle/standalone/apps/web/.next/required-server-files.json +4 -4
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page.js +2 -2
- 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 +3 -3
- package/bundle/standalone/apps/web/.next/server/app/api/about/route.js +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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]/download/route.js +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-pdf/route.js +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 +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 +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_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/route.js +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_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_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_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/remote/route.js +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 +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 +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 +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 +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 +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/hands-config/route.js +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 +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 +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 +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 +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 +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 +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 +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 +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 +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_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/refresh/route.js +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 +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/search/route.js +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_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/ws-config/route.js +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 +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 +1 -1
- package/bundle/standalone/apps/web/.next/server/app/icon.png/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page.js +2 -2
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/bundle/standalone/apps/web/.next/server/app-paths-manifest.json +23 -23
- package/bundle/standalone/apps/web/.next/server/chunks/2151.js +1 -1
- package/bundle/standalone/apps/web/.next/server/chunks/3668.js +2 -2
- package/bundle/standalone/apps/web/.next/server/chunks/6680.js +1 -0
- package/bundle/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/next-font-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/next-font-manifest.json +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/server-reference-manifest.json +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/_not-found/page-6565c12f025c6338.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/calendar/{page-180fba7a5e149d79.js → page-c2b69b100c786dc4.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/{layout-9a9569fc88cd95d2.js → layout-50d1052f9326c7ff.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/login/page-a6fe2c4740cdd5c7.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/{page-2b151d30cb29d2e5.js → page-0dc6192830ae65e6.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/{main-app-20d292116f434ff3.js → main-app-57f658242c7d6c8b.js} +1 -1
- package/bundle/standalone/apps/web/package.json +4 -4
- package/bundle/standalone/apps/web/server.js +1 -1
- package/bundle/standalone/apps/web/src/lib/mcp-tools.json +1 -1
- package/bundle/standalone/node_modules/kontexta-mcp/package.json +1 -1
- package/bundle/standalone/node_modules/kxta-core/package.json +1 -1
- package/bundle/standalone/node_modules/kxta-publish/dist/index.js +0 -0
- package/bundle/standalone/node_modules/kxta-publish/package.json +2 -2
- package/bundle/standalone/package.json +1 -1
- package/dist/index.js +1 -1
- package/dist/{start-RCW7AKUK.js → start-MCG73ATY.js} +6 -1
- package/package.json +1 -1
- package/bundle/standalone/apps/web/.next/server/chunks/5186.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/_not-found/page-972b01bf23ed0942.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/login/page-d299785546ea6ab6.js +0 -1
- /package/bundle/standalone/apps/web/.next/static/{TwaiLte1NHCp3gRYUc-go → FQ4ncHomPr7biizG6ufGX}/_buildManifest.js +0 -0
- /package/bundle/standalone/apps/web/.next/static/{TwaiLte1NHCp3gRYUc-go → FQ4ncHomPr7biizG6ufGX}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=7432,a.ids=[7432],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78625:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>w,dynamic:()=>x});var e=c(20584),f=c(18093),g=c(84892),h=c(17262),i=c(55572),j=c(261),k=c(26370),l=c(97824),m=c(92768),n=c(98611),o=c(52333),p=c(67359),q=c(5601),r=c(92710),s=c(86439),t=c(79596),u=c(36865);let v=Buffer.from("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","base64");function w(){return new u.NextResponse(v,{headers:{"Content-Type":"image/png","Cache-Control":"public, immutable, no-transform, max-age=31536000"}})}let x="force-static",y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/apple-icon.png/route",pathname:"/apple-icon.png",filename:"apple-icon",bundlePath:"app/apple-icon.png/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2FUsers%2Fsafiyudeen.saidumuha%2Fprojects%2Fkontexta%2Fapps%2Fweb%2Fsrc%2Fapp%2Fapple-icon.png&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/apple-icon.png/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.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=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,9372],()=>b(b.s=78625));module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=7432,a.ids=[7432],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91009:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>w,dynamic:()=>x});var e=c(20584),f=c(18093),g=c(84892),h=c(17262),i=c(55572),j=c(261),k=c(26370),l=c(97824),m=c(92768),n=c(98611),o=c(52333),p=c(67359),q=c(5601),r=c(92710),s=c(86439),t=c(79596),u=c(36865);let v=Buffer.from("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","base64");function w(){return new u.NextResponse(v,{headers:{"Content-Type":"image/png","Cache-Control":"public, immutable, no-transform, max-age=31536000"}})}let x="force-static",y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/apple-icon.png/route",pathname:"/apple-icon.png",filename:"apple-icon",bundlePath:"app/apple-icon.png/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2Fhome%2Frunner%2Fwork%2Fkontexta%2Fkontexta%2Fapps%2Fweb%2Fsrc%2Fapp%2Fapple-icon.png&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/apple-icon.png/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.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=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,9372],()=>b(b.s=91009));module.exports=c})();
|
|
@@ -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")},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.")},"/Users/safiyudeen.saidumuha/projects/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})]})}},61999:(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)),"/Users/safiyudeen.saidumuha/projects/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)),"/Users/safiyudeen.saidumuha/projects/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=["/Users/safiyudeen.saidumuha/projects/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}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65510:(a,b,c)=>{Promise.resolve().then(c.bind(c,57042))},77598:a=>{"use strict";a.exports=require("node:crypto")},82814:(a,b,c)=>{Promise.resolve().then(c.bind(c,38186))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,3668,8675,2144,5186],()=>b(b.s=61999));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")},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})();
|