@alook/app 0.0.100 → 0.0.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/bundled/email-worker/index.js +5 -1
  2. package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
  3. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  4. package/bundled/web/.open-next/assets/_next/static/chunks/{0tvembqw.e82g.js → 01yvpio9kzobl.js} +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{0.9oyh86wn1fd.js → 06-36_p6krl~i.js} +1 -1
  6. package/bundled/web/.open-next/assets/_next/static/chunks/06lpxhe_9sltg.js +1 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/{0uayv05d6mntr.js → 0byowbhmg_3u~.js} +1 -1
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{0wx~9mjjiq42o.js → 0h1de3c3ehomh.js} +3 -3
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0huy7.sigtt~2.css +1 -0
  10. package/bundled/web/.open-next/assets/_next/static/chunks/0hyshwdxcbwbq.js +1 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/0k2238cv1yqp0.js +62 -0
  12. package/bundled/web/.open-next/assets/_next/static/chunks/{0dhez0ocwb1sn.js → 0r775oyts5ozc.js} +1 -1
  13. package/bundled/web/.open-next/assets/_next/static/chunks/{0u.pao5ubynoe.js → 0v4hr9uuvoz8q.js} +1 -1
  14. package/bundled/web/.open-next/assets/_next/static/chunks/{01uwb4d6kz814.js → 0y8rj~id6sl.y.js} +1 -1
  15. package/bundled/web/.open-next/assets/_next/static/chunks/10rvnbe-gw6a7.js +3 -0
  16. package/bundled/web/.open-next/assets/_next/static/chunks/10ux4o4nkn.sj.js +1 -0
  17. package/bundled/web/.open-next/assets/_next/static/chunks/{0xbk75wddja-u.js → 135zhgfi292f8.js} +2 -2
  18. package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_global-error.cache +1 -1
  19. package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_not-found.cache +1 -1
  20. package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/privacy.cache +1 -1
  21. package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/sitemap.xml.cache +1 -1
  22. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  23. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  24. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  25. package/bundled/web/.open-next/middleware/handler.mjs +4 -4
  26. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  28. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/0b5f_next_dist_esm_build_templates_app-route_08rz-qa.js +172 -572
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +8 -7
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0i4u2y-._.js +1 -1
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0iw.~u_._.js +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j3ag~p._.js +1 -1
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0j_~vur._.js +1 -1
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0mk4o2l._.js +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0r0h9so._.js +5 -4
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/01k0_lucide-react_dist_esm_icons_0q8k8yb._.js +3 -0
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0r7fdlr._.js → [root-of-the-server]__05g0phj._.js} +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__07of89~._.js → [root-of-the-server]__06c6dak._.js} +2 -2
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0cdpfp7._.js → [root-of-the-server]__0uv4dv6._.js} +2 -2
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +8 -7
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_02.xen~._.js +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0.q_x36._.js → _06a692f._.js} +1 -1
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_09n89mu._.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0_.06ux._.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0a8f3fa._.js → _0c-ma68._.js} +1 -1
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sby7nn._.js +64 -0
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0u~xh2v._.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xhx.5_._.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0wtsjmd._.js → _0~twhbc._.js} +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12yhe5_._.js +1 -1
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0stugv_._.js +1 -1
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_calendar_page_tsx_01geiyd._.js +1 -1
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0lkx78f._.js +1 -1
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -37
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_templates_index_ts_13n9_2e._.js +172 -572
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  90. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +444 -1542
  91. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +171 -153
  92. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  93. package/bundled/web/wrangler.toml +1 -1
  94. package/bundled/ws-do/index.js +5 -1
  95. package/dist/cli/index.js +8 -4
  96. package/dist/cli/session-runner.js +6 -2
  97. package/dist/index.js +5 -1
  98. package/package.json +1 -1
  99. package/bundled/web/.open-next/assets/_next/static/chunks/01mduafj8.t03.js +0 -37
  100. package/bundled/web/.open-next/assets/_next/static/chunks/051._099hez6h.js +0 -1
  101. package/bundled/web/.open-next/assets/_next/static/chunks/07ju9-jia-17m.js +0 -325
  102. package/bundled/web/.open-next/assets/_next/static/chunks/09m73_4eia.5a.css +0 -1
  103. package/bundled/web/.open-next/assets/_next/static/chunks/09tp3dnnhv6a0.js +0 -3
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_13__3im._.js +0 -327
  105. /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_buildManifest.js +0 -0
  106. /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_clientMiddlewareManifest.js +0 -0
  107. /package/bundled/web/.open-next/assets/_next/static/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/_ssgManifest.js +0 -0
  108. /package/bundled/web/.open-next/cache/{stPDLxY2tICyNcpCDMCz4 → vYwH57AQyFDz3H5YJt_2h}/robots.txt.cache +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[489351,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(921584),f=a.i(75118),g=a.i(752792),h=a.i(506180),i=a.i(732254),j=a.i(552012),k=a.i(588339),l=a.i(38763),m=a.i(25668),n=a.i(905890),o=a.i(316215);function p({events:a,agents:c,loading:d,onSelectEvent:e}){let g=function(a){let b=new Map;for(let c of a){let a=new Date(c.scheduled_at),d=(0,l.dateKey)(a);if(!b.has(d)){let c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set(d,{day:c,items:[]})}b.get(d).items.push(c)}let c=[...b.values()].sort((a,b)=>a.day.getTime()-b.day.getTime());for(let a of c)a.items.sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime());return c}(a),h=new Map;for(let a of c)h.set(a.id,a.name);let i=new Date;return d&&0===a.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:Array.from({length:4}).map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-8 w-full rounded-md"},c))]},c))}):0===g.length?(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"No events in view."}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Switch to month view or create a new event above."})]})}):(0,b.jsx)("div",{className:"flex flex-col gap-4","data-testid":"calendar-agenda",children:g.map(a=>{let c=i.getFullYear()===a.day.getFullYear()&&i.getMonth()===a.day.getMonth()&&i.getDate()===a.day.getDate();return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:(0,f.cn)("sticky top-0 z-10 py-1 text-[11px] font-medium text-muted-foreground",c&&"text-foreground"),children:[a.day.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),c&&(0,b.jsx)("span",{className:"ml-2 rounded-full bg-foreground text-background px-1.5 py-0.5 text-[10px]",children:"Today"})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:a.items.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a),className:"flex w-full items-center gap-3 rounded-md border border-border/50 bg-background px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums w-16",children:new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,b.jsx)("span",{className:(0,f.cn)("shrink-0 rounded-sm px-1.5 py-0.5 text-[10px] font-medium",(0,n.agentColor)(a.agent_id)),children:h.get(a.agent_id)??a.agent_id}),(0,b.jsx)("span",{className:"flex-1 truncate text-sm",children:a.title}),a.repeat_interval&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(0,o.formatRepeatDisplay)(a.repeat_interval)}),null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:["× ",a.collapsed_count," today"]})]})},`${a.id}@${a.occurrence_at}`))})]},(0,l.dateKey)(a.day))})})}var q=a.i(807018),r=a.i(143984),s=a.i(313404);function t(a){let b=new Date(a.getFullYear(),a.getMonth(),a.getDate());return b.setDate(b.getDate()-b.getDay()),b}function u(a){let b,c=t(a),d=((b=new Date(t(a))).setDate(b.getDate()+6),b.setHours(23,59,59,999),b);return{from:c.toISOString(),to:d.toISOString()}}let v=Array.from({length:24},(a,b)=>b);function w({weekStart:a,events:d,agents:e,loading:g,focusedDate:h,compact:j=!1,onPrevWeek:k,onNextWeek:o,onJumpToToday:p,onJumpToDate:t,onSelectSlot:u,onSelectEvent:x,headerExtras:y}){let z,A,B,C,D=j?36:48,E=j?"2.5rem":"3.5rem",F=(0,c.useRef)(null),G=(0,c.useRef)(!1),H=new Date,I=new Date(a);I.setDate(I.getDate()+6);let J=(z=a.toLocaleDateString("en-US",{month:"short"}),A=I.toLocaleDateString("en-US",{month:"short"}),B=a.getFullYear(),B!==(C=I.getFullYear())?`${z} ${a.getDate()}, ${B}\u2013${A} ${I.getDate()}, ${C}`:z!==A?`${z} ${a.getDate()}\u2013${A} ${I.getDate()}, ${C}`:`${z} ${a.getDate()}\u2013${I.getDate()}, ${B}`),K=H>=a&&H<=new Date(I.getFullYear(),I.getMonth(),I.getDate(),23,59,59,999),L=(0,c.useMemo)(()=>{let b=[];for(let c=0;c<7;c++){let d=new Date(a);d.setDate(a.getDate()+c),b.push(d)}return b},[a]),M=(0,c.useMemo)(()=>{let a=new Map;for(let b of d){let c=(0,l.dateKey)(new Date(b.scheduled_at));a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[d]),N=(0,c.useMemo)(()=>{let a=new Map;for(let[b,c]of M)a.set(b,function(a){if(0===a.length)return[];let b=[...a].sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime()),c=[],d=[b[0]],e=new Date(b[0].scheduled_at).getTime()+18e5;for(let a=1;a<b.length;a++){let f=new Date(b[a].scheduled_at).getTime();if(f<e){d.push(b[a]);let c=f+18e5;c>e&&(e=c)}else c.push(d),d=[b[a]],e=f+18e5}c.push(d);let f=[];for(let a of c){let b=a.length;for(let c=0;c<a.length;c++)f.push({event:a[c],columnIndex:c,columnCount:b})}return f}(c));return a},[M]),O=(0,c.useMemo)(()=>{let a=new Map;for(let b of e)a.set(b.id,b.name);return a},[e]);(0,c.useEffect)(()=>{if(G.current||!F.current)return;let a=Math.max(0,(new Date().getHours()-1)*D);F.current.scrollTop=a,G.current=!0},[D]);let P=(0,c.useMemo)(()=>{let a=new Date;return a.getHours()+a.getMinutes()/60},[]);if(g&&0===d.length){let a=`${E} repeat(7, 1fr)`;return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)(m.Skeleton,{className:"h-5 w-48"}),(0,b.jsx)(m.Skeleton,{className:"h-7 w-32"})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[(0,b.jsxs)("div",{className:"border-b border-border/30 shrink-0",style:{display:"grid",gridTemplateColumns:a},children:[(0,b.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-5 mx-2 my-1.5"},c))]}),(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:Array.from({length:12}).map((c,d)=>(0,b.jsxs)("div",{className:"border-b border-border/10",style:{display:"grid",gridTemplateColumns:a,height:D},children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)("div",{className:"relative",children:d%4==c%3&&(0,b.jsx)(m.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},c))]},d))})]})]})}return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:J}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[y,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous week",onClick:k,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(q.ChevronLeft,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:p,disabled:K,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next week",onClick:o,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(r.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(s.CalendarDatePicker,{value:h,onChange:t,ariaLabel:"Jump to date"})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[g&&(0,b.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,b.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,b.jsxs)("div",{role:"grid","aria-label":`Week of ${J}`,"aria-busy":g||void 0,className:(0,f.cn)("flex flex-1 flex-col min-h-0 transition-opacity",g&&"opacity-70"),children:[(0,b.jsxs)("div",{role:"row",className:"sticky top-0 z-10 border-b border-border/30 bg-background",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"columnheader",className:"h-8"}),L.map(a=>{let c=(0,l.sameDay)(a,H);return(0,b.jsx)("div",{role:"columnheader","aria-current":c?"date":void 0,className:(0,f.cn)("flex items-center justify-center h-8 text-xs font-medium",c?"text-foreground":"text-muted-foreground"),children:(0,b.jsx)("span",{className:(0,f.cn)("px-1.5 py-0.5 rounded-md",c&&"bg-foreground text-background"),children:function(a,b){if(b)return["S","M","T","W","T","F","S"][a.getDay()];let c=a.toLocaleDateString("en-US",{weekday:"short"});return`${c} ${a.getDate()}`}(a,j)})},(0,l.dateKey)(a))})]}),(0,b.jsx)("div",{ref:F,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,b.jsxs)("div",{className:"relative",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"rowheader",className:"relative",children:v.map(a=>{var c;return(0,b.jsx)("div",{className:"flex items-start justify-end pr-2 text-[10px] text-muted-foreground tabular-nums",style:{height:D},children:(0,b.jsx)("span",{className:"-mt-1.5",children:0===a?"":(c=a,j?0===c?"12a":c<12?`${c}a`:12===c?"12p":`${c-12}p`:`${String(c).padStart(2,"0")}:00`)})},a)})}),L.map(a=>{let c=(0,l.dateKey)(a),d=(0,l.sameDay)(a,H),e=N.get(c)??[];return(0,b.jsxs)("div",{className:"relative border-l border-border/20",style:{height:24*D},children:[v.map(c=>(0,b.jsx)("div",{className:"absolute inset-x-0 border-t border-border/15 cursor-pointer hover:bg-accent/30 transition-colors",style:{top:c*D,height:D},onClick:()=>u(a,c)},c)),d&&(0,b.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:P*D},children:[(0,b.jsx)("div",{className:"h-px bg-foreground/40"}),(0,b.jsx)("div",{className:"absolute -left-0.5 -top-0.75 size-1.75 rounded-full bg-foreground/40"})]}),e.map(({event:a,columnIndex:c,columnCount:d})=>{let e,g=(e=new Date(a.scheduled_at)).getHours()+e.getMinutes()/60,h=100/d,i=O.get(a.agent_id),k=new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1});return(0,b.jsxs)("button",{type:"button",role:"button","aria-label":`${a.title} at ${k}${i?` \u2014 ${i}`:""}`,onClick:b=>{b.stopPropagation(),x(a)},className:(0,f.cn)("absolute rounded-sm font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",j?"text-[9px] px-1":"text-[10px] px-1.5",(0,n.agentColor)(a.agent_id)),style:{top:g*D,height:24,left:`${c*h}%`,width:`calc(${h}% - 2px)`,marginLeft:1,lineHeight:"24px"},title:`${a.title}${i?` \u2014 ${i}`:""}`,children:[a.title,null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"ml-0.5 opacity-70",children:["×",a.collapsed_count]})]},`${a.id}@${a.occurrence_at}`)})]},c)})]})})]})]})]})}function x({view:a,onChange:c}){return(0,b.jsx)("div",{role:"radiogroup","aria-label":"Calendar view",className:"inline-flex items-center rounded-md border border-border bg-background p-0.5",children:["month","week","agenda"].map(d=>{let e=a===d;return(0,b.jsx)("button",{type:"button",role:"radio","aria-checked":e,onClick:()=>c(d),className:(0,f.cn)("h-6 px-2.5 rounded text-xs font-medium transition-colors capitalize",e?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:d},d)})})}function y({agents:a,selected:c,onToggle:d}){return(0,b.jsx)("div",{className:"flex min-h-6 items-center gap-1.5 overflow-x-auto flex-nowrap scrollbar-none sm:flex-wrap sm:overflow-x-visible",children:0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-16 rounded-full"})]}):a.map(a=>{let e=c.has(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.id),className:(0,f.cn)("flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[11px] font-medium transition-colors",e?"bg-foreground text-background":"bg-transparent text-muted-foreground border border-border hover:bg-accent"),children:[(0,b.jsx)("span",{className:(0,f.cn)("size-2 rounded-full",(0,n.agentColor)(a.id).split(" ")[0])}),(0,b.jsx)("span",{className:"max-w-[120px] truncate sm:max-w-none",children:a.name})]},a.id)})})}var z=a.i(276163),A=a.i(586220);function B(a,b){let c=(0,l.buildMonthCells)(a,b),d=c[0].date,e=c[c.length-1].date,f=new Date(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0,0),g=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999);return{from:f.toISOString(),to:g.toISOString()}}a.s(["default",0,function(){var a;let{workspaceId:m}=(0,h.useWorkspace)(),{agents:n}=(0,g.useAgentContext)(),o=(0,d.useRouter)(),q=(0,d.usePathname)(),r=(0,d.useSearchParams)(),s=(0,A.useIsMobile)(),v=new Date,C=Number(r.get("y"))||v.getFullYear(),D=r.has("m")?Number(r.get("m")):v.getMonth(),E="week"===(a=r.get("view"))?"week":"agenda"===a?"agenda":"month",[F,G]=(0,c.useState)(C),[H,I]=(0,c.useState)(D),[J,K]=(0,c.useState)(E),[L,M]=(0,c.useState)(()=>{let a=r.get("agents");return a?new Set(a.split(",").filter(Boolean)):new Set}),[N,O]=(0,c.useState)(()=>{let a=new Date;return a.getFullYear()===C&&a.getMonth()===D?a:new Date(C,D,1)}),[P,Q]=(0,c.useState)(()=>"week"===E&&r.has("d")?t(new Date(C,D,Number(r.get("d")))):t(new Date)),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)(),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(null),aj=(0,c.useCallback)((a,b,c,d,e)=>{let f=new URLSearchParams;f.set("y",String(a)),f.set("m",String(b)),c.size>0&&f.set("agents",[...c].join(",")),"month"!==d&&f.set("view",d),"week"===d&&e&&f.set("d",String(e.getDate())),o.replace(`${q}?${f.toString()}`,{scroll:!1})},[q,o]),ak=(0,c.useCallback)(async()=>{let{from:a,to:b}="week"===J?u(P):B(F,H);W(!0);try{let c=await (0,k.listCalendarEvents)(m,{from:a,to:b});U(c)}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load events")}finally{W(!1)}},[m,F,H,J,P]);(0,c.useEffect)(()=>{ak()},[ak]);let al=(0,c.useMemo)(()=>0===L.size?T:T.filter(a=>L.has(a.agent_id)),[T,L]),am=(0,c.useCallback)(()=>{let a=0===H?11:H-1,b=0===H?F-1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),an=(0,c.useCallback)(()=>{let a=11===H?0:H+1,b=11===H?F+1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),ao=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()-7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),ap=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()+7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),aq=a=>{aa(a),ac(!0)},ar=(0,c.useCallback)(a=>{let b=a.getFullYear(),c=a.getMonth();if(G(b),I(c),O(a),"week"===J){let d=t(a);Q(d),aj(b,c,L,J,d)}else aj(b,c,L,J)},[L,J,aj]),as=(0,c.useCallback)(()=>{let a=new Date;if("week"===J){let b=t(a);Q(b),O(a),aj(b.getFullYear(),b.getMonth(),L,"week",b)}else ar(a)},[ar,J,L,aj]),at=(0,c.useCallback)(a=>{if(K(a),"week"===a){let b=t(N);Q(b),aj(F,H,L,a,b)}else if("week"===J){let b=P.getFullYear(),c=P.getMonth();G(b),I(c),aj(b,c,L,a)}else aj(F,H,L,a)},[F,H,L,aj,N,J,P]),au=async a=>{ae(!0);try{let b=await (0,k.createCalendarEvent)(a,m),{from:c,to:d}="week"===J?u(P):B(F,H),f=new Date(b.scheduled_at).getTime();f>=new Date(c).getTime()&&f<=new Date(d).getTime()&&U(a=>[...a,b]),Y(!1),e.toast.success("Event created")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to create event")}finally{ae(!1)}},av=async(a,b)=>{ag(!0);try{await (0,k.updateCalendarEvent)(a.id,b,m),await ak(),ac(!1),aa(null),e.toast.success("Event updated")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to update event")}finally{ag(!1)}},aw=async(a,b)=>{ai(a.id);try{await (0,k.deleteCalendarEvent)(a.id,m,b),b?.scope?await ak():U(b=>b.filter(b=>b.id!==a.id)),ac(!1),aa(null),e.toast.success("Event deleted")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to delete event")}finally{ai(null)}},ax=(0,c.useRef)(X),ay=(0,c.useRef)(ab);(0,c.useEffect)(()=>{ax.current=X},[X]),(0,c.useEffect)(()=>{ay.current=ab},[ab]);let az=(0,c.useCallback)(a=>{let b=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,c=0;for(let a of al){let d=new Date(a.scheduled_at);`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`===b&&c++}return Math.max(0,c-3)},[al]);return(0,c.useEffect)(()=>{let a=a=>{if(ax.current||ay.current||function(a){if(!a||"string"!=typeof a.tagName)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!!a.isContentEditable}(a.target))return;if("t"===a.key){a.preventDefault();let b=new Date;if("week"===J){let a=t(b);Q(a),O(b),aj(a.getFullYear(),a.getMonth(),L,"week",a)}else b.getFullYear()!==F||b.getMonth()!==H?ar(b):O(b);return}if("n"===a.key){a.preventDefault(),$(N),Y(!0);return}if("month"!==J&&"week"!==J)return;if("week"===J){if("ArrowLeft"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()-1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowRight"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()+1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowUp"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()-1),O(b);return}if("ArrowDown"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()+1),O(b)}return}let b=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===a.key){if(!b)return;a.preventDefault(),az(N)>0?S(`${N.getFullYear()}-${String(N.getMonth()+1).padStart(2,"0")}-${String(N.getDate()).padStart(2,"0")}`):($(N),Y(!0));return}if(!b)return;let c=(0,l.stepDate)(N,a.key);c&&(a.preventDefault(),c.getFullYear()===F&&c.getMonth()===H?O(c):ar(c))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[J,F,H,N,ar,az,P,L,aj]),(0,c.useEffect)(()=>{if("month"!==J)return;let a=document.activeElement;if(!a||"gridcell"!==a.getAttribute("role"))return;let b=`[data-date="${(0,l.dateKey)(N)}"]`,c=document.querySelector(b);c?.focus()},[N,J,F,H]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 md:px-5 py-2.5 gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("h1",{className:"text-sm font-medium",children:"Calendar"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground hidden md:block",children:"Schedule recurring and one-time tasks for your agents."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(x,{view:J,onChange:at}),(0,b.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{$(void 0),Y(!0)},disabled:0===n.length,className:"min-w-[44px] min-h-[44px] sm:min-w-0 sm:min-h-0",children:[(0,b.jsx)(j.Plus,{className:"size-3.5"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"New event"})]})]})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-1 flex-col gap-4 px-3 py-3 sm:px-5 sm:py-5","week"===J?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,b.jsx)(y,{agents:n,selected:L,onToggle:a=>{let b=new Set(L);b.has(a)?b.delete(a):b.add(a),M(b),aj(F,H,b,J,"week"===J?P:null)}}),"month"===J&&(0,b.jsx)(l.CalendarMonthGrid,{year:F,month:H,events:al,agents:n,loading:V,focusedDate:N,openPopoverKey:R,onPopoverChange:S,onPrev:am,onNext:an,onJumpToToday:as,onJumpToDate:ar,onSelectDay:a=>{$(a),Y(!0),O(a)},onSelectEvent:aq}),"week"===J&&(0,b.jsx)(w,{weekStart:P,events:al,agents:n,loading:V,focusedDate:N,compact:s,onPrevWeek:ao,onNextWeek:ap,onJumpToToday:as,onJumpToDate:ar,onSelectSlot:(a,b)=>{$(new Date(a.getFullYear(),a.getMonth(),a.getDate(),b)),Y(!0)},onSelectEvent:aq}),"agenda"===J&&(0,b.jsx)(p,{events:al,agents:n,loading:V,onSelectEvent:aq}),("month"===J||"week"===J)&&!V&&T.length>0&&0===al.length&&(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,b.jsx)(z.CalendarEventSheet,{open:X,onOpenChange:Y,agents:n,defaultDate:Z,submitting:ad,onCreate:au}),(0,b.jsx)(z.CalendarEventSheet,{event:_,agents:n,open:ab,onOpenChange:ac,onDelete:aw,onUpdate:av,deleting:ah===_?.id,saving:af})]})}],489351)}];
1
+ module.exports=[489351,a=>{"use strict";var b=a.i(749314),c=a.i(437199),d=a.i(207058),e=a.i(921584),f=a.i(75118),g=a.i(752792),h=a.i(506180),i=a.i(732254),j=a.i(552012),k=a.i(588339),l=a.i(38763),m=a.i(25668),n=a.i(905890),o=a.i(316215);function p({events:a,agents:c,loading:d,onSelectEvent:e}){let g=function(a){let b=new Map;for(let c of a){let a=new Date(c.scheduled_at),d=(0,l.dateKey)(a);if(!b.has(d)){let c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.set(d,{day:c,items:[]})}b.get(d).items.push(c)}let c=[...b.values()].sort((a,b)=>a.day.getTime()-b.day.getTime());for(let a of c)a.items.sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime());return c}(a),h=new Map;for(let a of c)h.set(a.id,a.name);let i=new Date;return d&&0===a.length?(0,b.jsx)("div",{className:"flex flex-col gap-4",children:Array.from({length:4}).map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-8 w-full rounded-md"},c))]},c))}):0===g.length?(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"No events in view."}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"Switch to month view or create a new event above."})]})}):(0,b.jsx)("div",{className:"flex flex-col gap-4","data-testid":"calendar-agenda",children:g.map(a=>{let c=i.getFullYear()===a.day.getFullYear()&&i.getMonth()===a.day.getMonth()&&i.getDate()===a.day.getDate();return(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("h3",{className:(0,f.cn)("sticky top-0 z-10 py-1 text-[11px] font-medium text-muted-foreground",c&&"text-foreground"),children:[a.day.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),c&&(0,b.jsx)("span",{className:"ml-2 rounded-full bg-foreground text-background px-1.5 py-0.5 text-[10px]",children:"Today"})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:a.items.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a),className:"flex w-full items-center gap-3 rounded-md border border-border/50 bg-background px-3 py-2 text-left transition-colors hover:bg-accent",children:[(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground tabular-nums w-16",children:new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,b.jsx)("span",{className:(0,f.cn)("shrink-0 rounded-sm px-1.5 py-0.5 text-[10px] font-medium",(0,n.agentColor)(a.agent_id)),children:h.get(a.agent_id)??a.agent_id}),(0,b.jsx)("span",{className:"flex-1 truncate text-sm",children:a.title}),a.repeat_interval&&(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:(0,o.formatRepeatDisplay)(a.repeat_interval)}),null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:["× ",a.collapsed_count," today"]})]})},`${a.id}@${a.occurrence_at}`))})]},(0,l.dateKey)(a.day))})})}var q=a.i(807018),r=a.i(143984),s=a.i(313404);function t(a){let b=new Date(a.getFullYear(),a.getMonth(),a.getDate());return b.setDate(b.getDate()-b.getDay()),b}function u(a){let b,c=t(a),d=((b=new Date(t(a))).setDate(b.getDate()+6),b.setHours(23,59,59,999),b);return{from:c.toISOString(),to:d.toISOString()}}let v=Array.from({length:24},(a,b)=>b);function w({weekStart:a,events:d,agents:e,loading:g,focusedDate:h,compact:j=!1,onPrevWeek:k,onNextWeek:o,onJumpToToday:p,onJumpToDate:t,onSelectSlot:u,onSelectEvent:x,headerExtras:y}){let z,A,B,C,D=j?36:48,E=j?"2.5rem":"3.5rem",F=(0,c.useRef)(null),G=(0,c.useRef)(!1),H=new Date,I=new Date(a);I.setDate(I.getDate()+6);let J=(z=a.toLocaleDateString("en-US",{month:"short"}),A=I.toLocaleDateString("en-US",{month:"short"}),B=a.getFullYear(),B!==(C=I.getFullYear())?`${z} ${a.getDate()}, ${B}\u2013${A} ${I.getDate()}, ${C}`:z!==A?`${z} ${a.getDate()}\u2013${A} ${I.getDate()}, ${C}`:`${z} ${a.getDate()}\u2013${I.getDate()}, ${B}`),K=H>=a&&H<=new Date(I.getFullYear(),I.getMonth(),I.getDate(),23,59,59,999),L=(0,c.useMemo)(()=>{let b=[];for(let c=0;c<7;c++){let d=new Date(a);d.setDate(a.getDate()+c),b.push(d)}return b},[a]),M=(0,c.useMemo)(()=>{let a=new Map;for(let b of d){let c=(0,l.dateKey)(new Date(b.scheduled_at));a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[d]),N=(0,c.useMemo)(()=>{let a=new Map;for(let[b,c]of M)a.set(b,function(a){if(0===a.length)return[];let b=[...a].sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime()),c=[],d=[b[0]],e=new Date(b[0].scheduled_at).getTime()+18e5;for(let a=1;a<b.length;a++){let f=new Date(b[a].scheduled_at).getTime();if(f<e){d.push(b[a]);let c=f+18e5;c>e&&(e=c)}else c.push(d),d=[b[a]],e=f+18e5}c.push(d);let f=[];for(let a of c){let b=a.length;for(let c=0;c<a.length;c++)f.push({event:a[c],columnIndex:c,columnCount:b})}return f}(c));return a},[M]),O=(0,c.useMemo)(()=>{let a=new Map;for(let b of e)a.set(b.id,b.name);return a},[e]);(0,c.useEffect)(()=>{if(G.current||!F.current)return;let a=Math.max(0,(new Date().getHours()-1)*D);F.current.scrollTop=a,G.current=!0},[D]);let P=(0,c.useMemo)(()=>{let a=new Date;return a.getHours()+a.getMinutes()/60},[]);if(g&&0===d.length){let a=`${E} repeat(7, 1fr)`;return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)(m.Skeleton,{className:"h-5 w-48"}),(0,b.jsx)(m.Skeleton,{className:"h-7 w-32"})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[(0,b.jsxs)("div",{className:"border-b border-border/30 shrink-0",style:{display:"grid",gridTemplateColumns:a},children:[(0,b.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)(m.Skeleton,{className:"h-5 mx-2 my-1.5"},c))]}),(0,b.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:Array.from({length:12}).map((c,d)=>(0,b.jsxs)("div",{className:"border-b border-border/10",style:{display:"grid",gridTemplateColumns:a,height:D},children:[(0,b.jsx)(m.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)("div",{className:"relative",children:d%4==c%3&&(0,b.jsx)(m.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},c))]},d))})]})]})}return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 min-h-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2 shrink-0",children:[(0,b.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:J}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[y,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous week",onClick:k,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(q.ChevronLeft,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:p,disabled:K,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next week",onClick:o,className:"flex size-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:(0,b.jsx)(r.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(s.CalendarDatePicker,{value:h,onChange:t,ariaLabel:"Jump to date"})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col rounded-lg border border-border/50 overflow-hidden",children:[g&&(0,b.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden rounded-t-lg",children:(0,b.jsx)("div",{className:"h-full w-1/3 animate-[calendar-progress_1.2s_ease-in-out_infinite] bg-foreground/40"})}),(0,b.jsxs)("div",{role:"grid","aria-label":`Week of ${J}`,"aria-busy":g||void 0,className:(0,f.cn)("flex flex-1 flex-col min-h-0 transition-opacity",g&&"opacity-70"),children:[(0,b.jsxs)("div",{role:"row",className:"sticky top-0 z-10 border-b border-border/30 bg-background",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"columnheader",className:"h-8"}),L.map(a=>{let c=(0,l.sameDay)(a,H);return(0,b.jsx)("div",{role:"columnheader","aria-current":c?"date":void 0,className:(0,f.cn)("flex items-center justify-center h-8 text-xs font-medium",c?"text-foreground":"text-muted-foreground"),children:(0,b.jsx)("span",{className:(0,f.cn)("px-1.5 py-0.5 rounded-md",c&&"bg-foreground text-background"),children:function(a,b){if(b)return["S","M","T","W","T","F","S"][a.getDay()];let c=a.toLocaleDateString("en-US",{weekday:"short"});return`${c} ${a.getDate()}`}(a,j)})},(0,l.dateKey)(a))})]}),(0,b.jsx)("div",{ref:F,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,b.jsxs)("div",{className:"relative",style:{display:"grid",gridTemplateColumns:`${E} repeat(7, 1fr)`},children:[(0,b.jsx)("div",{role:"rowheader",className:"relative",children:v.map(a=>{var c;return(0,b.jsx)("div",{className:"flex items-start justify-end pr-2 text-[10px] text-muted-foreground tabular-nums",style:{height:D},children:(0,b.jsx)("span",{className:"-mt-1.5",children:0===a?"":(c=a,j?0===c?"12a":c<12?`${c}a`:12===c?"12p":`${c-12}p`:`${String(c).padStart(2,"0")}:00`)})},a)})}),L.map(a=>{let c=(0,l.dateKey)(a),d=(0,l.sameDay)(a,H),e=N.get(c)??[];return(0,b.jsxs)("div",{className:"relative border-l border-border/20",style:{height:24*D},children:[v.map(c=>(0,b.jsx)("div",{className:"absolute inset-x-0 border-t border-border/15 cursor-pointer hover:bg-accent/30 transition-colors",style:{top:c*D,height:D},onClick:()=>u(a,c)},c)),d&&(0,b.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:P*D},children:[(0,b.jsx)("div",{className:"h-px bg-foreground/40"}),(0,b.jsx)("div",{className:"absolute -left-0.5 -top-0.75 size-1.75 rounded-full bg-foreground/40"})]}),e.map(({event:a,columnIndex:c,columnCount:d})=>{let e,g=(e=new Date(a.scheduled_at)).getHours()+e.getMinutes()/60,h=100/d,i=O.get(a.agent_id),k=new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1});return(0,b.jsxs)("button",{type:"button",role:"button","aria-label":`${a.title} at ${k}${i?` \u2014 ${i}`:""}`,onClick:b=>{b.stopPropagation(),x(a)},className:(0,f.cn)("absolute rounded-sm font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",j?"text-[9px] px-1":"text-[10px] px-1.5",(0,n.agentColor)(a.agent_id)),style:{top:g*D,height:24,left:`${c*h}%`,width:`calc(${h}% - 2px)`,marginLeft:1,lineHeight:"24px"},title:`${a.title}${i?` \u2014 ${i}`:""}`,children:[a.title,null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"ml-0.5 opacity-70",children:["×",a.collapsed_count]})]},`${a.id}@${a.occurrence_at}`)})]},c)})]})})]})]})]})}function x({view:a,onChange:c}){return(0,b.jsx)("div",{role:"radiogroup","aria-label":"Calendar view",className:"inline-flex items-center rounded-md border border-border bg-background p-0.5",children:["month","week","agenda"].map(d=>{let e=a===d;return(0,b.jsx)("button",{type:"button",role:"radio","aria-checked":e,onClick:()=>c(d),className:(0,f.cn)("h-6 px-2.5 rounded text-xs font-medium transition-colors capitalize",e?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:d},d)})})}function y({agents:a,selected:c,onToggle:d}){return(0,b.jsx)("div",{className:"flex min-h-6 items-center gap-1.5 overflow-x-auto flex-nowrap scrollbar-none sm:flex-wrap sm:overflow-x-visible",children:0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,b.jsx)(m.Skeleton,{className:"h-6 w-16 rounded-full"})]}):a.map(a=>{let e=c.has(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.id),className:(0,f.cn)("flex h-6 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-[11px] font-medium transition-colors",e?"bg-foreground text-background":"bg-transparent text-muted-foreground border border-border hover:bg-accent"),children:[(0,b.jsx)("span",{className:(0,f.cn)("size-2 rounded-full",(0,n.agentColor)(a.id).split(" ")[0])}),(0,b.jsx)("span",{className:"max-w-30 truncate sm:max-w-none",children:a.name})]},a.id)})})}var z=a.i(276163),A=a.i(586220);function B(a,b){let c=(0,l.buildMonthCells)(a,b),d=c[0].date,e=c[c.length-1].date,f=new Date(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0,0),g=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999);return{from:f.toISOString(),to:g.toISOString()}}a.s(["default",0,function(){var a;let{workspaceId:m}=(0,h.useWorkspace)(),{agents:n}=(0,g.useAgentContext)(),o=(0,d.useRouter)(),q=(0,d.usePathname)(),r=(0,d.useSearchParams)(),s=(0,A.useIsMobile)(),v=new Date,C=Number(r.get("y"))||v.getFullYear(),D=r.has("m")?Number(r.get("m")):v.getMonth(),E="week"===(a=r.get("view"))?"week":"agenda"===a?"agenda":"month",[F,G]=(0,c.useState)(C),[H,I]=(0,c.useState)(D),[J,K]=(0,c.useState)(E),[L,M]=(0,c.useState)(()=>{let a=r.get("agents");return a?new Set(a.split(",").filter(Boolean)):new Set}),[N,O]=(0,c.useState)(()=>{let a=new Date;return a.getFullYear()===C&&a.getMonth()===D?a:new Date(C,D,1)}),[P,Q]=(0,c.useState)(()=>"week"===E&&r.has("d")?t(new Date(C,D,Number(r.get("d")))):t(new Date)),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)(),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(null),aj=(0,c.useCallback)((a,b,c,d,e)=>{let f=new URLSearchParams;f.set("y",String(a)),f.set("m",String(b)),c.size>0&&f.set("agents",[...c].join(",")),"month"!==d&&f.set("view",d),"week"===d&&e&&f.set("d",String(e.getDate())),o.replace(`${q}?${f.toString()}`,{scroll:!1})},[q,o]),ak=(0,c.useCallback)(async()=>{let{from:a,to:b}="week"===J?u(P):B(F,H);W(!0);try{let c=await (0,k.listCalendarEvents)(m,{from:a,to:b});U(c)}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load events")}finally{W(!1)}},[m,F,H,J,P]);(0,c.useEffect)(()=>{ak()},[ak]);let al=(0,c.useMemo)(()=>0===L.size?T:T.filter(a=>L.has(a.agent_id)),[T,L]),am=(0,c.useCallback)(()=>{let a=0===H?11:H-1,b=0===H?F-1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),an=(0,c.useCallback)(()=>{let a=11===H?0:H+1,b=11===H?F+1:F;I(a),G(b),O(new Date(b,a,1)),aj(b,a,L,J)},[H,F,L,J,aj]),ao=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()-7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),ap=(0,c.useCallback)(()=>{let a=new Date(P);a.setDate(a.getDate()+7),Q(a),O(a),aj(a.getFullYear(),a.getMonth(),L,"week",a)},[P,L,aj]),aq=a=>{aa(a),ac(!0)},ar=(0,c.useCallback)(a=>{let b=a.getFullYear(),c=a.getMonth();if(G(b),I(c),O(a),"week"===J){let d=t(a);Q(d),aj(b,c,L,J,d)}else aj(b,c,L,J)},[L,J,aj]),as=(0,c.useCallback)(()=>{let a=new Date;if("week"===J){let b=t(a);Q(b),O(a),aj(b.getFullYear(),b.getMonth(),L,"week",b)}else ar(a)},[ar,J,L,aj]),at=(0,c.useCallback)(a=>{if(K(a),"week"===a){let b=t(N);Q(b),aj(F,H,L,a,b)}else if("week"===J){let b=P.getFullYear(),c=P.getMonth();G(b),I(c),aj(b,c,L,a)}else aj(F,H,L,a)},[F,H,L,aj,N,J,P]),au=async a=>{ae(!0);try{let b=await (0,k.createCalendarEvent)(a,m),{from:c,to:d}="week"===J?u(P):B(F,H),f=new Date(b.scheduled_at).getTime();f>=new Date(c).getTime()&&f<=new Date(d).getTime()&&U(a=>[...a,b]),Y(!1),e.toast.success("Event created")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to create event")}finally{ae(!1)}},av=async(a,b)=>{ag(!0);try{await (0,k.updateCalendarEvent)(a.id,b,m),await ak(),ac(!1),aa(null),e.toast.success("Event updated")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to update event")}finally{ag(!1)}},aw=async(a,b)=>{ai(a.id);try{await (0,k.deleteCalendarEvent)(a.id,m,b),b?.scope?await ak():U(b=>b.filter(b=>b.id!==a.id)),ac(!1),aa(null),e.toast.success("Event deleted")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to delete event")}finally{ai(null)}},ax=(0,c.useRef)(X),ay=(0,c.useRef)(ab);(0,c.useEffect)(()=>{ax.current=X},[X]),(0,c.useEffect)(()=>{ay.current=ab},[ab]);let az=(0,c.useCallback)(a=>{let b=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`,c=0;for(let a of al){let d=new Date(a.scheduled_at);`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`===b&&c++}return Math.max(0,c-3)},[al]);return(0,c.useEffect)(()=>{let a=a=>{if(ax.current||ay.current||function(a){if(!a||"string"!=typeof a.tagName)return!1;let b=a.tagName;return"INPUT"===b||"TEXTAREA"===b||"SELECT"===b||!!a.isContentEditable}(a.target))return;if("t"===a.key){a.preventDefault();let b=new Date;if("week"===J){let a=t(b);Q(a),O(b),aj(a.getFullYear(),a.getMonth(),L,"week",a)}else b.getFullYear()!==F||b.getMonth()!==H?ar(b):O(b);return}if("n"===a.key){a.preventDefault(),$(N),Y(!0);return}if("month"!==J&&"week"!==J)return;if("week"===J){if("ArrowLeft"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()-1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowRight"===a.key){a.preventDefault();let b=new Date(N);b.setDate(b.getDate()+1),O(b);let c=t(b);c.getTime()!==P.getTime()&&(Q(c),aj(c.getFullYear(),c.getMonth(),L,"week",c));return}if("ArrowUp"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()-1),O(b);return}if("ArrowDown"===a.key){a.preventDefault();let b=new Date(N);b.setHours(b.getHours()+1),O(b)}return}let b=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===a.key){if(!b)return;a.preventDefault(),az(N)>0?S(`${N.getFullYear()}-${String(N.getMonth()+1).padStart(2,"0")}-${String(N.getDate()).padStart(2,"0")}`):($(N),Y(!0));return}if(!b)return;let c=(0,l.stepDate)(N,a.key);c&&(a.preventDefault(),c.getFullYear()===F&&c.getMonth()===H?O(c):ar(c))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[J,F,H,N,ar,az,P,L,aj]),(0,c.useEffect)(()=>{if("month"!==J)return;let a=document.activeElement;if(!a||"gridcell"!==a.getAttribute("role"))return;let b=`[data-date="${(0,l.dateKey)(N)}"]`,c=document.querySelector(b);c?.focus()},[N,J,F,H]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-border/50 px-3 md:px-5 py-2.5 gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)("h1",{className:"text-sm font-medium",children:"Calendar"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground hidden md:block",children:"Schedule recurring and one-time tasks for your agents."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(x,{view:J,onChange:at}),(0,b.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{$(void 0),Y(!0)},disabled:0===n.length,className:"min-w-11 min-h-11 sm:min-w-0 sm:min-h-0",children:[(0,b.jsx)(j.Plus,{className:"size-3.5"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"New event"})]})]})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-1 flex-col gap-4 px-3 py-3 sm:px-5 sm:py-5","week"===J?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,b.jsx)(y,{agents:n,selected:L,onToggle:a=>{let b=new Set(L);b.has(a)?b.delete(a):b.add(a),M(b),aj(F,H,b,J,"week"===J?P:null)}}),"month"===J&&(0,b.jsx)(l.CalendarMonthGrid,{year:F,month:H,events:al,agents:n,loading:V,focusedDate:N,openPopoverKey:R,onPopoverChange:S,onPrev:am,onNext:an,onJumpToToday:as,onJumpToDate:ar,onSelectDay:a=>{$(a),Y(!0),O(a)},onSelectEvent:aq}),"week"===J&&(0,b.jsx)(w,{weekStart:P,events:al,agents:n,loading:V,focusedDate:N,compact:s,onPrevWeek:ao,onNextWeek:ap,onJumpToToday:as,onJumpToDate:ar,onSelectSlot:(a,b)=>{$(new Date(a.getFullYear(),a.getMonth(),a.getDate(),b)),Y(!0)},onSelectEvent:aq}),"agenda"===J&&(0,b.jsx)(p,{events:al,agents:n,loading:V,onSelectEvent:aq}),("month"===J||"week"===J)&&!V&&T.length>0&&0===al.length&&(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,b.jsx)(z.CalendarEventSheet,{open:X,onOpenChange:Y,agents:n,defaultDate:Z,submitting:ad,onCreate:au}),(0,b.jsx)(z.CalendarEventSheet,{event:_,agents:n,open:ab,onOpenChange:ac,onDelete:aw,onUpdate:av,deleting:ah===_?.id,saving:af})]})}],489351)}];
2
2
 
3
3
  //# sourceMappingURL=src_web_src_app_%28app%29_w_%5Bslug%5D_calendar_page_tsx_01geiyd._.js.map