@alook/app 0.0.84 → 0.0.85

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 (132) hide show
  1. package/bundled/email-worker/index.js +6 -0
  2. package/bundled/email-worker/wrangler.toml +3 -0
  3. package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
  4. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  5. package/bundled/web/.open-next/assets/_next/static/chunks/0-iq3n0xk3eip.js +3 -0
  6. package/bundled/web/.open-next/assets/_next/static/chunks/0d..9l~-zlc8y.js +60 -0
  7. package/bundled/web/.open-next/assets/_next/static/chunks/0dws~l.0e81v2.css +1 -0
  8. package/bundled/web/.open-next/assets/_next/static/chunks/{0~xam~jpkm~vn.js → 0h4ll.t5at.ac.js} +1 -1
  9. package/bundled/web/.open-next/assets/_next/static/chunks/0h5tl-yh9wijv.js +1 -0
  10. package/bundled/web/.open-next/assets/_next/static/chunks/0ku92fo7c687y.js +3 -0
  11. package/bundled/web/.open-next/assets/_next/static/chunks/0madzro0r0v7m.js +1 -0
  12. package/bundled/web/.open-next/assets/_next/static/chunks/0tvembqw.e82g.js +1 -0
  13. package/bundled/web/.open-next/assets/_next/static/chunks/0yhw7i91nm01l.js +1 -0
  14. package/bundled/web/.open-next/assets/_next/static/chunks/0zz2mxapzj90g.js +63 -0
  15. package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_global-error.cache +1 -1
  16. package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_not-found.cache +1 -1
  17. package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/sitemap.xml.cache +1 -1
  18. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  19. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  20. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  21. package/bundled/web/.open-next/middleware/handler.mjs +4 -4
  22. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  23. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  24. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  25. package/bundled/web/.open-next/server-functions/default/src/web/.next/required-server-files.json +1 -1
  26. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  39. 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
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  44. 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
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/[id]/route.js +2 -2
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/calendar/route.js +4 -4
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0.1vmoe._.js +5 -5
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__00_g5g4._.js +1 -1
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__027mioa._.js +6 -6
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__02_0idg._.js +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0grx101._.js +1 -1
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0kc1f.6._.js +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0m_ya4f._.js +1 -1
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0niqi98._.js +5 -5
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +8 -8
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0-7a9se._.js +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_007pf4f._.js +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0266t8u._.js +2 -2
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_037ndoa._.js +1 -1
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_04gp_km._.js +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_05zp0zn._.js +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_091mubc._.js +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09j_99x._.js +2 -2
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0aveiot._.js +2 -2
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0cji8yc._.js +1 -1
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0drn_ol._.js +1 -1
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0exm5_w._.js +2 -2
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0f.tk9k._.js +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0g1_3hn._.js +1 -1
  78. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h3guve._.js +1 -1
  79. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0h_dgb9._.js +1 -1
  80. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0hxvvdy._.js +1 -1
  81. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ke5r~m._.js +1 -1
  82. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l0biq~._.js +1 -1
  83. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0oyl16-._.js +1 -1
  84. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0pt9vvp._.js +1 -1
  85. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0w6dw.t._.js +2 -2
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_12gxjds._.js +1 -1
  87. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_13hlohp._.js +1 -1
  88. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_0mko5ir._.js +1 -1
  89. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__03yopx2._.js +3 -0
  90. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +8 -8
  91. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_015fu61._.js +3 -0
  92. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0tu039y._.js → _01opi~8._.js} +1 -1
  93. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_11h_8jo._.js → _02ui5fr._.js} +1 -1
  94. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_063q-hj._.js +2 -2
  95. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0ktjqeo._.js +3 -0
  96. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0sh5zo0._.js +3 -0
  97. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0t5o.14._.js +65 -0
  98. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_12e18r-._.js +2 -2
  99. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  100. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_agents_[id]_meetings_page_tsx_073~u~-._.js +3 -0
  101. 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
  102. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  103. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  104. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  105. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  106. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +69 -69
  107. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +202 -202
  108. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +4 -4
  109. package/bundled/ws-do/index.js +6 -0
  110. package/dist/cli/index.js +11 -0
  111. package/dist/cli/session-runner.js +11 -0
  112. package/dist/index.js +14 -2
  113. package/package.json +1 -1
  114. package/bundled/web/.open-next/assets/_next/static/chunks/03s92jcv9_0ve.css +0 -1
  115. package/bundled/web/.open-next/assets/_next/static/chunks/0aedy~23652fn.js +0 -63
  116. package/bundled/web/.open-next/assets/_next/static/chunks/0dbw1te5ym2kd.js +0 -2
  117. package/bundled/web/.open-next/assets/_next/static/chunks/0e32q02m3ewux.js +0 -3
  118. package/bundled/web/.open-next/assets/_next/static/chunks/0e3fj46r9j0os.js +0 -1
  119. package/bundled/web/.open-next/assets/_next/static/chunks/0j2~fioc-ekva.js +0 -59
  120. package/bundled/web/.open-next/assets/_next/static/chunks/0jahw0dpk9vgc.js +0 -3
  121. package/bundled/web/.open-next/assets/_next/static/chunks/10y9irnmfgbfy.js +0 -1
  122. package/bundled/web/.open-next/assets/_next/static/chunks/15lauqmpngfj2.js +0 -1
  123. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/01k0_lucide-react_dist_esm_icons_clock_mjs_05q1~5y._.js +0 -3
  124. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0esiqa8._.js +0 -3
  125. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0st8pau._.js +0 -3
  126. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0xg~7mg._.js +0 -3
  127. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0y3mwm6._.js +0 -65
  128. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_11~t2ti._.js +0 -3
  129. /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_buildManifest.js +0 -0
  130. /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_clientMiddlewareManifest.js +0 -0
  131. /package/bundled/web/.open-next/assets/_next/static/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/_ssgManifest.js +0 -0
  132. /package/bundled/web/.open-next/cache/{uqh7k2CfR4q4Ho7LkspzI → B9spjQ7Fv9GOPnAmBxyfG}/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(647651);let m=(0,l.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var n=a.i(143984);let o=(0,l.default)("repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);var p=a.i(722393);function q(a){let b=["bg-[oklch(0.78_0.08_60)] text-[oklch(0.25_0.05_60)]","bg-[oklch(0.80_0.07_120)] text-[oklch(0.25_0.05_120)]","bg-[oklch(0.80_0.06_220)] text-[oklch(0.25_0.05_220)]","bg-[oklch(0.80_0.07_30)] text-[oklch(0.25_0.05_30)]","bg-[oklch(0.80_0.06_280)] text-[oklch(0.25_0.05_280)]","bg-[oklch(0.80_0.07_160)] text-[oklch(0.25_0.05_160)]"],c=0;for(let b=0;b<a.length;b++)c=31*c+a.charCodeAt(b)|0;return b[Math.abs(c)%b.length]}function r(a){let b=["bg-[oklch(0.62_0.13_60)] dark:bg-[oklch(0.72_0.11_60)]","bg-[oklch(0.62_0.12_120)] dark:bg-[oklch(0.72_0.10_120)]","bg-[oklch(0.62_0.12_220)] dark:bg-[oklch(0.72_0.10_220)]","bg-[oklch(0.62_0.13_30)] dark:bg-[oklch(0.72_0.11_30)]","bg-[oklch(0.62_0.12_280)] dark:bg-[oklch(0.72_0.10_280)]","bg-[oklch(0.62_0.12_160)] dark:bg-[oklch(0.72_0.10_160)]"],c=0;for(let b=0;b<a.length;b++)c=31*c+a.charCodeAt(b)|0;return b[Math.abs(c)%b.length]}function s(a){let b=["text-[oklch(0.52_0.14_60)] dark:text-[oklch(0.78_0.11_60)]","text-[oklch(0.52_0.13_120)] dark:text-[oklch(0.78_0.10_120)]","text-[oklch(0.52_0.13_220)] dark:text-[oklch(0.78_0.10_220)]","text-[oklch(0.52_0.14_30)] dark:text-[oklch(0.78_0.11_30)]","text-[oklch(0.52_0.13_280)] dark:text-[oklch(0.78_0.10_280)]","text-[oklch(0.52_0.13_160)] dark:text-[oklch(0.78_0.10_160)]"],c=0;for(let b=0;b<a.length;b++)c=31*c+a.charCodeAt(b)|0;return b[Math.abs(c)%b.length]}function t({events:a,agents:c,date:d,hiddenCount:e,open:g,onOpenChange:h,onSelectEvent:i}){let j=new Map;for(let a of c)j.set(a.id,a.name);let k=[...a].sort((a,b)=>new Date(a.scheduled_at).getTime()-new Date(b.scheduled_at).getTime()),l=d.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"});return(0,b.jsxs)(p.Popover,{open:g,onOpenChange:h,children:[(0,b.jsxs)(p.PopoverTrigger,{"aria-label":`${e} more event${1===e?"":"s"}`,onClick:a=>a.stopPropagation(),className:"w-full truncate rounded-sm px-1.5 py-0.5 text-left text-[10px] text-muted-foreground hover:bg-accent hover:text-foreground transition-colors",children:["+",e," more"]}),(0,b.jsx)(p.PopoverContent,{className:"w-64",align:"start",children:(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:"px-1 pb-1 text-[11px] font-medium text-muted-foreground",children:l}),(0,b.jsx)("div",{className:"flex flex-col gap-1",children:k.map(a=>{let c=!!a.repeat_interval;return(0,b.jsxs)("button",{type:"button",onClick:()=>{h(!1),i(a)},className:"flex items-center gap-2 rounded-sm px-1.5 py-1 text-left text-[11px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors",title:`${c?"Recurring · ":""}${a.title}${j.get(a.agent_id)?` — ${j.get(a.agent_id)}`:""}`,children:[c?(0,b.jsx)(o,{"aria-hidden":!0,className:(0,f.cn)("size-3 shrink-0",s(a.agent_id))}):(0,b.jsx)("span",{"aria-hidden":!0,className:(0,f.cn)("size-1.5 shrink-0 rounded-full",r(a.agent_id))}),(0,b.jsx)("span",{className:"shrink-0 text-[10px] text-muted-foreground tabular-nums",children:new Date(a.scheduled_at).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}),(0,b.jsx)("span",{className:"truncate",children:a.title})]},`${a.id}@${a.occurrence_at}`)})})]})})]})}var u=a.i(566825);function v({value:a,onChange:d,placeholder:e="Jump to date",min:g,className:h,ariaLabel:i="Pick a date",hideIcon:j=!1,onClear:k}){let[l,o]=(0,c.useState)(!1),q=a??new Date,[r,s]=(0,c.useState)(q.getFullYear()),[t,y]=(0,c.useState)(q.getMonth()),A=x(r,t),B=new Date,C=a=>{g&&a<w(g)||(d(a),o(!1))},D=a?a.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):e;return(0,b.jsxs)(p.Popover,{open:l,onOpenChange:b=>{if(o(b),b){let b=a??new Date;s(b.getFullYear()),y(b.getMonth())}},children:[(0,b.jsxs)(p.PopoverTrigger,{"aria-label":i,className:(0,f.cn)("flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs outline-none transition-colors","hover:bg-accent hover:text-foreground","focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",a?"text-foreground":"text-muted-foreground",h),children:[!j&&(0,b.jsx)(u.CalendarDays,{className:"size-3.5 opacity-70"}),(0,b.jsx)("span",{className:"tabular-nums",children:D})]}),(0,b.jsxs)(p.PopoverContent,{align:"end",className:"w-64 p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous month",onClick:()=>{y(a=>0===a?11:a-1),0===t&&s(a=>a-1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,b.jsx)(m,{className:"size-3.5"})}),(0,b.jsx)("span",{className:"text-xs font-medium tabular-nums",children:new Date(r,t,1).toLocaleDateString(void 0,{month:"long",year:"numeric"})}),(0,b.jsx)("button",{type:"button","aria-label":"Next month",onClick:()=>{y(a=>11===a?0:a+1),11===t&&s(a=>a+1)},className:"flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,b.jsx)(n.ChevronRight,{className:"size-3.5"})})]}),(0,b.jsx)("div",{className:"grid grid-cols-7 pb-1 text-[10px] text-muted-foreground",children:["S","M","T","W","T","F","S"].map((a,c)=>(0,b.jsx)("div",{className:"flex h-6 items-center justify-center font-medium",children:a},c))}),(0,b.jsx)("div",{className:"grid grid-cols-7 gap-0.5",children:A.map((c,d)=>{let e=z(B,c.date),h=!!a&&z(a,c.date),i=!!g&&c.date<w(g);return(0,b.jsx)("button",{type:"button",disabled:i,onClick:()=>C(c.date),"aria-pressed":h,className:(0,f.cn)("flex h-7 w-full items-center justify-center rounded text-[11px] tabular-nums transition-colors outline-none","focus-visible:ring-2 focus-visible:ring-ring/60",!c.inMonth&&"text-muted-foreground/50",c.inMonth&&!h&&"hover:bg-accent",e&&!h&&"text-foreground font-medium ring-1 ring-inset ring-border",h&&"bg-foreground text-background font-medium",i&&"opacity-30 cursor-not-allowed hover:bg-transparent"),children:c.date.getDate()},d)})}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 pt-2 mt-1 border-t border-border/50",children:[k&&a?(0,b.jsx)("button",{type:"button",onClick:()=>{k(),o(!1)},className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Clear"}):(0,b.jsx)("span",{"aria-hidden":!0}),(0,b.jsx)("button",{type:"button",onClick:()=>C(new Date),className:"text-[11px] text-muted-foreground hover:text-foreground transition-colors",children:"Today"})]})]})]})}function w(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())}function x(a,b){let c=new Date(a,b,1).getDay(),d=[];for(let e=0;e<42;e++){let f=new Date(a,b,1-c+e);d.push({date:f,inMonth:f.getMonth()===b})}return d}function y(a){let b=a.getFullYear(),c=String(a.getMonth()+1).padStart(2,"0"),d=String(a.getDate()).padStart(2,"0");return`${b}-${c}-${d}`}function z(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}function A({year:a,month:c,events:d,agents:e,loading:g,focusedDate:h,openPopoverKey:j,onPopoverChange:k,onPrev:l,onNext:p,onJumpToToday:q,onJumpToDate:u,onSelectDay:w,onSelectEvent:B,headerExtras:C}){let D=x(a,c),E=new Date(a,c,1).toLocaleDateString(void 0,{month:"long",year:"numeric"}),F=new Map;for(let a of d){let b=y(new Date(a.scheduled_at));F.has(b)||F.set(b,[]),F.get(b).push(a)}let G=new Map;for(let a of e)G.set(a.id,a.name);let H=new Date,I=function(a,b,c=new Date){return c.getFullYear()===a&&c.getMonth()===b}(a,c,H);return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("h2",{className:"text-sm font-medium tabular-nums",children:E})}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[C,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous month",onClick:l,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)(m,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:q,disabled:I,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next month",onClick:p,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)(n.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(v,{value:h,onChange:u,ariaLabel:"Jump to date"})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-7 text-[11px] text-muted-foreground",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(a=>(0,b.jsx)("div",{className:"px-2 py-1 font-medium",children:a},a))}),(0,b.jsxs)("div",{className:"relative",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.jsx)("div",{role:"grid","aria-label":`Calendar ${E}`,"aria-busy":g||void 0,className:(0,f.cn)("grid grid-cols-7 gap-px rounded-lg border border-border/50 bg-border/40 overflow-hidden transition-opacity",g&&"opacity-70"),"data-testid":"calendar-month-grid",children:D.map((a,c)=>{let d=y(a.date),g=F.get(d)??[],i=z(H,a.date),l=z(h,a.date),m=Math.max(0,g.length-3);return(0,b.jsxs)("div",{role:"gridcell","data-date":d,"data-focused":l?"true":void 0,"aria-current":i?"date":void 0,tabIndex:l?0:-1,onClick:()=>w(a.date),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&b.target===b.currentTarget&&(b.preventDefault(),w(a.date))},className:(0,f.cn)("group flex min-h-24 flex-col gap-1 p-2 text-left transition-colors bg-background outline-none cursor-pointer",!a.inMonth&&"bg-muted/40 text-muted-foreground",l&&"ring-2 ring-inset ring-ring/60 relative z-10"),children:[(0,b.jsx)("div",{className:"flex items-center justify-between",children:(0,b.jsx)("span",{className:(0,f.cn)("text-[11px] tabular-nums",i&&"flex size-5 items-center justify-center rounded-full bg-foreground text-background font-medium"),children:a.date.getDate()})}),(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[g.slice(0,3).map(a=>{let c=!!a.repeat_interval;return(0,b.jsxs)("span",{role:"button",tabIndex:-1,onClick:b=>{b.stopPropagation(),B(a)},onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.stopPropagation(),B(a))},className:"flex items-center gap-1.5 rounded-sm px-1 py-0.5 text-[10px] font-medium text-foreground/85 hover:bg-accent/60 transition-colors cursor-pointer",title:`${c?"Recurring · ":""}${a.title}${G.get(a.agent_id)?` — ${G.get(a.agent_id)}`:""}`,children:[c?(0,b.jsx)(o,{"aria-hidden":!0,className:(0,f.cn)("size-2.5 shrink-0",s(a.agent_id))}):(0,b.jsx)("span",{"aria-hidden":!0,className:(0,f.cn)("size-1.5 shrink-0 rounded-full",r(a.agent_id))}),(0,b.jsx)("span",{className:"truncate",children:a.title}),null!=a.collapsed_count&&a.collapsed_count>1&&(0,b.jsxs)("span",{className:"shrink-0 text-[9px] text-muted-foreground",children:["×",a.collapsed_count]})]},`${a.id}@${a.occurrence_at}`)}),m>0&&(0,b.jsx)(t,{date:a.date,hiddenCount:m,events:g,agents:e,open:j===d,onOpenChange:a=>k(a?d:null),onSelectEvent:B})]})]},c)})})]})]})}var B=a.i(25668);let C=/^(\d+)(min|hour|day|week|month)$/;function D(a){let b=C.exec(a);if(!b)return null;let c=parseInt(b[1],10);return c<1?null:{count:c,unit:b[2]}}let E={min:["minute","minutes"],hour:["hour","hours"],day:["day","days"],week:["week","weeks"],month:["month","months"]},F=new Set(["min","hour","day","week","month"]),G=["min","hour","day","week","month"],H=[{value:"1hour",label:"Every hour"},{value:"1day",label:"Every day"},{value:"1week",label:"Every week"},{value:"1month",label:"Every month"}];function I({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=y(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)(B.Skeleton,{className:"h-3 w-24"}),Array.from({length:2}).map((a,c)=>(0,b.jsx)(B.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",q(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:function(a){let b=D(a);if(!b)return a;let{count:c,unit:d}=b;return 1===c?`Every ${E[d][0]}`:`Every ${c} ${E[d][1]}`}(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}`))})]},y(a.day))})})}function J(a){let b=new Date(a.getFullYear(),a.getMonth(),a.getDate());return b.setDate(b.getDate()-b.getDay()),b}function K(a){let b,c=J(a),d=((b=new Date(J(a))).setDate(b.getDate()+6),b.setHours(23,59,59,999),b);return{from:c.toISOString(),to:d.toISOString()}}let L=Array.from({length:24},(a,b)=>b);function M({weekStart:a,events:d,agents:e,loading:g,focusedDate:h,onPrevWeek:j,onNextWeek:k,onJumpToToday:l,onJumpToDate:o,onSelectSlot:p,onSelectEvent:r,headerExtras:s}){let t,u,w,x,A=(0,c.useRef)(null),C=(0,c.useRef)(!1),D=new Date,E=new Date(a);E.setDate(E.getDate()+6);let F=(t=a.toLocaleDateString("en-US",{month:"short"}),u=E.toLocaleDateString("en-US",{month:"short"}),w=a.getFullYear(),w!==(x=E.getFullYear())?`${t} ${a.getDate()}, ${w}\u2013${u} ${E.getDate()}, ${x}`:t!==u?`${t} ${a.getDate()}\u2013${u} ${E.getDate()}, ${x}`:`${t} ${a.getDate()}\u2013${E.getDate()}, ${w}`),G=D>=a&&D<=new Date(E.getFullYear(),E.getMonth(),E.getDate(),23,59,59,999),H=(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]),I=(0,c.useMemo)(()=>{let a=new Map;for(let b of d){let c=y(new Date(b.scheduled_at));a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[d]),J=(0,c.useMemo)(()=>{let a=new Map;for(let[b,c]of I)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},[I]),K=(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(C.current||!A.current)return;let a=Math.max(0,(new Date().getHours()-1)*48);A.current.scrollTop=a,C.current=!0},[]);let N=(0,c.useMemo)(()=>{let a=new Date;return a.getHours()+a.getMinutes()/60},[]);return g&&0===d.length?(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)(B.Skeleton,{className:"h-5 w-48"}),(0,b.jsx)(B.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:"grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/30 shrink-0",children:[(0,b.jsx)("div",{className:"h-8"}),Array.from({length:7}).map((a,c)=>(0,b.jsx)(B.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((a,c)=>(0,b.jsxs)("div",{className:"grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/10",style:{height:48},children:[(0,b.jsx)(B.Skeleton,{className:"h-3 w-8 mx-1 my-2"}),Array.from({length:7}).map((a,d)=>(0,b.jsx)("div",{className:"relative",children:c%4==d%3&&(0,b.jsx)(B.Skeleton,{className:"absolute left-1 right-1 top-2 rounded-sm",style:{height:24}})},d))]},c))})]})]}):(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:F}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[s,(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous week",onClick:j,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)(m,{className:"size-4"})}),(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:l,disabled:G,className:"h-7 px-2.5 text-xs",children:"Today"}),(0,b.jsx)("button",{type:"button","aria-label":"Next 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)(n.ChevronRight,{className:"size-4"})})]}),(0,b.jsx)(v,{value:h,onChange:o,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 ${F}`,"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 grid grid-cols-[3.5rem_repeat(7,1fr)] border-b border-border/30 bg-background",children:[(0,b.jsx)("div",{role:"columnheader",className:"h-8"}),H.map(a=>{let c=z(a,D);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,!1)})},y(a))})]}),(0,b.jsx)("div",{ref:A,className:"flex-1 min-h-0 overflow-y-auto thin-scrollbar",children:(0,b.jsxs)("div",{className:"relative grid grid-cols-[3.5rem_repeat(7,1fr)]",children:[(0,b.jsx)("div",{role:"rowheader",className:"relative",children:L.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:48},children:(0,b.jsx)("span",{className:"-mt-1.5",children:0===a?"":(c=a,`${String(c).padStart(2,"0")}:00`)})},a)})}),H.map(a=>{let c=y(a),d=z(a,D),e=J.get(c)??[];return(0,b.jsxs)("div",{className:"relative border-l border-border/20",style:{height:1152},children:[L.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:48*c,height:48},onClick:()=>p(a,c)},c)),d&&(0,b.jsxs)("div",{className:"absolute inset-x-0 z-10 pointer-events-none",style:{top:48*N},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=K.get(a.agent_id),j=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 ${j}${i?` \u2014 ${i}`:""}`,onClick:b=>{b.stopPropagation(),r(a)},className:(0,f.cn)("absolute rounded-sm px-1.5 text-[10px] font-medium truncate text-left transition-colors hover:opacity-80 cursor-pointer",q(a.agent_id)),style:{top:48*g,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 N({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 O({agents:a,selected:c,onToggle:d}){return(0,b.jsx)("div",{className:"flex min-h-6 flex-wrap items-center gap-1.5",children:0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(B.Skeleton,{className:"h-6 w-20 rounded-full"}),(0,b.jsx)(B.Skeleton,{className:"h-6 w-24 rounded-full"}),(0,b.jsx)(B.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 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",q(a.id).split(" ")[0])}),a.name]},a.id)})})}var P=a.i(7455),Q=a.i(432340),R=a.i(889624);let S=(0,l.default)("calendar-off",[["path",{d:"M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18",key:"16swn3"}],["path",{d:"M21 15.5V6a2 2 0 0 0-2-2H9.5",key:"yhw86o"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M3 10h7",key:"1wap6i"}],["path",{d:"M21 10h-5.5",key:"quycpq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var T=a.i(463295),U=a.i(518828),V=a.i(619618);function W(a){return String(a).padStart(2,"0")}function X(a){let b=/^(\d{2}):(\d{2})$/.exec(a);return b?`${b[1]}:${b[2]}`:a}function Y({value:a,onChange:d,className:e,ariaLabel:g="Pick a time",step:h=30,iconOnly:i=!1}){let[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null),m=function(a){let b=[];for(let c=0;c<1440;c+=a)b.push(`${W(Math.floor(c/60))}:${W(c%60)}`);return b}(h);return(0,c.useEffect)(()=>{if(!j)return;let a=setTimeout(()=>{let a=l.current?.querySelector('[data-selected="true"]');a?.scrollIntoView({block:"center"})},0);return()=>clearTimeout(a)},[j]),(0,b.jsxs)(p.Popover,{open:j,onOpenChange:k,children:[(0,b.jsxs)(p.PopoverTrigger,{"aria-label":g,className:(0,f.cn)(i?"inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-input bg-transparent text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50":"flex h-7 items-center gap-1.5 rounded-md border border-input bg-transparent px-2 text-xs text-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50",e),children:[(0,b.jsx)(V.Clock,{className:i?"size-3.5":"size-3.5 opacity-70"}),!i&&(0,b.jsx)("span",{className:"tabular-nums",children:X(a)})]}),(0,b.jsx)(p.PopoverContent,{align:"start",className:"w-36 p-1",children:(0,b.jsx)("div",{ref:l,className:"flex max-h-60 flex-col overflow-y-auto scrollbar-none",role:"listbox",children:m.map(c=>{let e=c===a;return(0,b.jsx)("button",{type:"button",role:"option","aria-selected":e,"data-selected":e,onClick:()=>{d(c),k(!1)},className:(0,f.cn)("flex h-7 shrink-0 items-center rounded px-2 text-[11px] tabular-nums transition-colors outline-none","focus-visible:bg-accent",e?"bg-foreground text-background font-medium":"text-foreground hover:bg-accent"),children:X(c)},c)})})})]})}function Z(a){return String(a).padStart(2,"0")}function $(a,b){let c=/^(\d{2}):(\d{2})$/.exec(b),d=c?Number(c[1]):a.getHours(),e=c?Number(c[2]):a.getMinutes(),f=new Date(a);return f.setHours(d,e,0,0),f}function _(a){return`${a.getFullYear()}-${Z(a.getMonth()+1)}-${Z(a.getDate())}`}function aa(a){return`${Z(a.getHours())}:${Z(a.getMinutes())}`}function ab(a){return a?.trim()||""}let ac="h-7 border-0 bg-transparent px-1.5 text-sm text-foreground hover:bg-accent transition-colors -ml-1.5",ad=(0,f.cn)(ac,"rounded-md outline-none focus-visible:bg-accent focus-visible:ring-0 appearance-none pr-6");function ae({icon:a,children:c}){return(0,b.jsxs)("div",{className:"group flex items-center gap-2",children:[(0,b.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1",children:c})]})}function af({open:a,onOpenChange:d,onConfirm:e,loading:g,title:h,description:j,confirmLabel:k,loadingLabel:l,confirmVariant:m="default"}){let[n,o]=(0,c.useState)("this");return(0,c.useEffect)(()=>{a&&o("this")},[a]),(0,b.jsx)(Q.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(Q.DialogContent,{showCloseButton:!1,children:[(0,b.jsxs)(Q.DialogHeader,{children:[(0,b.jsx)(Q.DialogTitle,{children:h}),(0,b.jsx)(Q.DialogDescription,{children:j})]}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5 py-1",children:[{value:"this",label:"This event only"},{value:"following",label:"This and following events"}].map(a=>{let c=n===a.value;return(0,b.jsxs)("button",{type:"button",onClick:()=>o(a.value),className:(0,f.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-left text-sm transition-colors",c?"border-ring bg-accent/40":"border-border/60 hover:bg-accent/30"),children:[(0,b.jsx)("span",{className:(0,f.cn)("inline-flex size-4 items-center justify-center rounded-full border",c?"border-foreground":"border-border"),"aria-hidden":!0,children:c&&(0,b.jsx)("span",{className:"size-2 rounded-full bg-foreground"})}),(0,b.jsx)("span",{children:a.label})]},a.value)})}),(0,b.jsxs)(Q.DialogFooter,{children:[(0,b.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>d(!1),disabled:g,children:"Cancel"}),(0,b.jsx)(i.Button,{size:"sm",variant:m,onClick:()=>e(n),disabled:g,children:g?l:k})]})]})})}function ag({open:a,onOpenChange:d,agents:g,event:h,defaultDate:j,defaultAgentId:k,submitting:l,saving:m,deleting:n,onCreate:p,onUpdate:q,onDelete:r}){let s=h?"edit":"create",[t,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(new Date),[I,J]=(0,c.useState)("09:00"),[K,L]=(0,c.useState)(!1),[M,N]=(0,c.useState)("1"),[O,Q]=(0,c.useState)("day"),V=(0,c.useMemo)(()=>{if(!K)return"";let a=parseInt(M,10);return!a||a<1?"":`${a}${O}`},[K,M,O]),[W,X]=(0,c.useState)(null),[ah,ai]=(0,c.useState)(!1),[aj,ak]=(0,c.useState)(!1),al=(0,c.useRef)(null),am=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(a)if(h){let a=new Date(h.scheduled_at);w(h.agent_id),y(h.title),A(h.description??""),C(a),J(aa(a));let b=D(h.repeat_interval??"");b?(L(!0),N(String(b.count)),Q(b.unit)):(L(!1),N("1"),Q("day")),X(h.repeat_stop_at?new Date(h.repeat_stop_at):null)}else w(k||g[0]?.id||""),y(""),A(""),C(j??new Date),J(function(a,b=30){let c=Math.ceil((60*a.getHours()+a.getMinutes()+1)/b)*b,d=Math.floor(c/60)%24;return`${Z(d)}:${Z(c%60)}`}(new Date)),L(!1),N("1"),Q("day"),X(null)},[a,h?.id]);let an=(0,c.useMemo)(()=>{if(!h)return!0;let a=new Date(h.scheduled_at);return x.trim()!==h.title||ab(z)!==ab(h.description)||t!==h.agent_id||B.getFullYear()!==a.getFullYear()||B.getMonth()!==a.getMonth()||B.getDate()!==a.getDate()||I!==aa(a)||V!==(h.repeat_interval??"")||(W?_(W):null)!==(h.repeat_stop_at?_(new Date(h.repeat_stop_at)):null)},[t,x,z,B,I,V,W,h]);function ao(){if(!t)return"Select an agent";if(!x.trim())return"Title is required";if(!/^([01]\d|2[0-3]):[0-5]\d$/.test(I))return"Time must be HH:MM in 24-hour format";if(K){let a=parseInt(M,10);if(!a||a<1)return"Repeat count must be a positive number"}if(W&&!V)return"Stop date requires a repeat interval";let a=$(B,I);if(W){let b=new Date(W);if(b.setHours(23,59,59,999),b<a)return"Stop date must be on or after the first occurrence"}return null}let ap=async a=>{a.preventDefault();let b=ao();if(b)return e.toast.error(b);let c=$(B,I),d=z?.trim()||void 0;await p?.({agent_id:t,title:x.trim(),description:d,scheduled_at:c.toISOString(),repeat_interval:V||void 0,repeat_stop_date:W?_(W):void 0})};function aq(){if(!h)return null;let a={},b=$(B,I).toISOString(),c=x.trim();c!==h.title&&(a.title=c);let d=ab(z);d!==ab(h.description)&&(a.description=""===d?null:d),t!==h.agent_id&&(a.agent_id=t),b!==new Date(h.scheduled_at).toISOString()&&(a.scheduled_at=b),V!==(h.repeat_interval??"")&&(a.repeat_interval=""===V?null:V);let e=W?_(W):null;return(e!==(h.repeat_stop_at?_(new Date(h.repeat_stop_at)):null)&&(a.repeat_stop_date=e),void 0===a.title&&void 0===a.description&&void 0===a.agent_id&&void 0===a.scheduled_at&&void 0===a.repeat_interval&&void 0===a.repeat_stop_date)?null:a}let ar=async a=>{h&&await q?.(h,a)},as=async()=>{if(!h)return;let a=ao();if(a)return e.toast.error(a);let b=aq();if(b){if(h.repeat_interval)return void ai(!0);await ar(b)}},at=async a=>{let b=aq();b&&(b.scope=a,"this"===a&&h?.occurrence_at&&(b.occurrence_at=h.occurrence_at),await ar(b)),ai(!1)},au=a=>{"Enter"===a.key&&a.shiftKey&&(a.preventDefault(),a.stopPropagation(),"create"===s?am.current?.requestSubmit():as())},av=(0,b.jsxs)("kbd",{"aria-hidden":!0,className:"mr-1 hidden sm:inline-flex items-center gap-0.5 font-sans font-medium leading-none opacity-60",children:[(0,b.jsx)("span",{children:"⇧"}),(0,b.jsx)("span",{children:"+"}),(0,b.jsx)("span",{children:"⏎"})]}),aw="edit"===s?x.trim()||"Untitled event":x.trim()||"New calendar event",ax=(0,c.useRef)(null),ay=a=>{a&&(a.style.height="auto",a.style.height=`${a.scrollHeight}px`)};(0,c.useEffect)(()=>{ay(ax.current)},[x]);let az=(0,b.jsx)("textarea",{ref:a=>{ax.current=a,ay(a)},"aria-label":"Event title",value:x,onChange:a=>{y(a.target.value),ay(a.target)},onKeyDown:a=>{if("Enter"===a.key&&!a.shiftKey){let b;a.preventDefault(),b=al.current?.querySelector('[contenteditable="true"]'),b?.focus()}},placeholder:"edit"===s?"Untitled event":"New event",autoFocus:"create"===s,rows:1,className:(0,f.cn)("w-full resize-none overflow-hidden rounded-none border-0 bg-transparent px-0 py-1 font-news text-2xl md:text-3xl font-medium leading-[1.2] tracking-tight","shadow-none outline-none focus-visible:border-0 focus-visible:ring-0 focus-visible:ring-offset-0","placeholder:text-muted-foreground/40 placeholder:font-normal")}),aA=(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(ae,{icon:(0,b.jsx)(T.User,{className:"size-3.5"}),children:(0,b.jsxs)("select",{"aria-label":"Agent",value:t,onChange:a=>w(a.target.value),className:ad,children:[0===g.length&&(0,b.jsx)("option",{value:"",children:"No agents"}),g.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]})}),(0,b.jsx)(ae,{icon:(0,b.jsx)(u.CalendarDays,{className:"size-3.5"}),children:(0,b.jsx)(v,{value:B,onChange:a=>C(a),ariaLabel:"Event date",hideIcon:!0,className:ac})}),(0,b.jsx)(ae,{icon:(0,b.jsx)(Y,{value:I,onChange:J,iconOnly:!0,ariaLabel:"Pick time slot",className:"inline-flex size-6 items-center justify-center rounded-md border-0 bg-transparent p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground group-hover:bg-accent group-hover:text-foreground"}),children:(0,b.jsx)("input",{type:"text",inputMode:"numeric",pattern:"([01]\\d|2[0-3]):[0-5]\\d",maxLength:5,value:I,onChange:a=>J(a.target.value),placeholder:"HH:MM","aria-label":"Event time (24-hour)",className:"h-7 w-12 border-0 bg-transparent px-0.5 text-sm tabular-nums text-foreground rounded-md outline-none focus-visible:ring-0"})}),(0,b.jsx)(ae,{icon:(0,b.jsx)(o,{className:"size-3.5"}),children:K?(0,b.jsxs)("div",{className:"-ml-1.5 flex items-center gap-0.5",children:[(0,b.jsx)("span",{className:"px-1 text-sm text-foreground",children:"Every"}),(0,b.jsx)("input",{type:"text",inputMode:"numeric","aria-label":"Repeat count",value:M,onChange:a=>{N(a.target.value.replace(/[^\d]/g,""))},onBlur:()=>{let a=parseInt(M,10);(!a||a<1)&&N("1")},maxLength:4,style:{width:`${Math.max(1,M.length)+1.5}ch`},className:"h-7 shrink-0 border-0 bg-transparent px-0 text-center text-sm tabular-nums text-foreground rounded-md outline-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors"}),(0,b.jsx)("select",{"aria-label":"Repeat unit",value:O,onChange:a=>{var b;b=a.target.value,F.has(b)&&Q(a.target.value)},className:"h-7 border-0 bg-transparent px-1 text-center text-sm text-foreground rounded-md outline-none appearance-none hover:bg-accent focus-visible:bg-accent focus-visible:ring-0 transition-colors",children:G.map(a=>(0,b.jsx)("option",{value:a,children:1===(parseInt(M,10)||1)?E[a][0]:E[a][1]},a))}),(0,b.jsx)("button",{type:"button","aria-label":"Remove repeat",onClick:()=>{L(!1),N("1"),Q("day"),X(null)},className:"inline-flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,b.jsx)(U.X,{className:"size-3"})})]}):(0,b.jsxs)("select",{"aria-label":"Repeat",value:"",onChange:a=>{let b=a.target.value;if(b)if("__custom__"===b)L(!0),N("1"),Q("day");else{let a=D(b);a&&(L(!0),N(String(a.count)),Q(a.unit))}},className:ad,children:[(0,b.jsx)("option",{value:"",children:"Does not repeat"}),H.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value)),(0,b.jsx)("option",{value:"__custom__",children:"Custom…"})]})}),V&&(0,b.jsx)(ae,{icon:(0,b.jsx)(S,{className:"size-3.5"}),children:(0,b.jsx)(v,{value:W,onChange:a=>X(a),onClear:()=>X(null),placeholder:"No end date",min:B,ariaLabel:"Stop date",hideIcon:!0,className:ac})})]}),aB=(0,b.jsx)("div",{ref:al,children:(0,b.jsx)(R.MarkdownEditor,{contentType:"markdown",value:z,onChange:A,placeholder:"Add a description…",className:"markdown",minHeight:"edit"===s?"10rem":"8rem",variant:"seamless",agents:g},h?.id??"new")});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(P.Sheet,{open:a,onOpenChange:d,children:(0,b.jsxs)(P.SheetContent,{className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,b.jsx)(P.SheetTitle,{className:"sr-only",children:aw}),"create"===s?(0,b.jsxs)("form",{ref:am,onSubmit:ap,onKeyDownCapture:au,className:"flex flex-1 flex-col min-h-0",children:[(0,b.jsxs)(P.SheetBody,{className:"flex flex-col gap-6 px-8 pt-10 pb-6",children:[az,aA,aB]}),(0,b.jsxs)(P.SheetFooter,{children:[(0,b.jsx)(i.Button,{type:"button",variant:"outline",onClick:()=>d(!1),children:"Cancel"}),(0,b.jsx)(i.Button,{type:"submit",disabled:l||!g.length,children:l?"Creating...":(0,b.jsxs)(b.Fragment,{children:[av,"Create event"]})})]})]}):(0,b.jsxs)("div",{onKeyDownCapture:au,className:"flex flex-1 flex-col min-h-0",children:[(0,b.jsxs)(P.SheetBody,{className:"flex flex-col gap-6 px-8 pt-10 pb-6",children:[az,aA,aB]}),(0,b.jsxs)(P.SheetFooter,{className:"sm:justify-between",children:[(0,b.jsx)(i.Button,{variant:"destructive",onClick:()=>{if(h){if(h.repeat_interval)return void ak(!0);r?.(h)}},disabled:n||m,children:n?"Deleting...":"Delete"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:justify-end",children:[(0,b.jsx)(i.Button,{variant:"outline",onClick:()=>d(!1),disabled:m,children:"Cancel"}),(0,b.jsx)(i.Button,{onClick:as,disabled:m||!an,children:m?"Saving...":(0,b.jsxs)(b.Fragment,{children:[av,"Save"]})})]})]})]})]})}),(0,b.jsx)(af,{open:ah,onOpenChange:ai,onConfirm:at,loading:m,title:"Update recurring event",description:"How should this change apply?",confirmLabel:"Update",loadingLabel:"Saving..."}),(0,b.jsx)(af,{open:aj,onOpenChange:ak,onConfirm:a=>{h&&(r?.(h,{scope:a,occurrence_at:h.occurrence_at??void 0}),ak(!1))},loading:n,title:"Delete recurring event",description:"How much of the series should be removed?",confirmLabel:"Delete",loadingLabel:"Deleting...",confirmVariant:"destructive"})]})}function ah(a,b){let c=x(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:l}=(0,h.useWorkspace)(),{agents:m}=(0,g.useAgentContext)(),n=(0,d.useRouter)(),o=(0,d.usePathname)(),p=(0,d.useSearchParams)(),q=new Date,r=Number(p.get("y"))||q.getFullYear(),s=p.has("m")?Number(p.get("m")):q.getMonth(),t="week"===(a=p.get("view"))?"week":"agenda"===a?"agenda":"month",[u,v]=(0,c.useState)(r),[w,x]=(0,c.useState)(s),[z,B]=(0,c.useState)(t),[C,D]=(0,c.useState)(()=>{let a=p.get("agents");return a?new Set(a.split(",").filter(Boolean)):new Set}),[E,F]=(0,c.useState)(()=>{let a=new Date;return a.getFullYear()===r&&a.getMonth()===s?a:new Date(r,s,1)}),[G,H]=(0,c.useState)(()=>"week"===t&&p.has("d")?J(new Date(r,s,Number(p.get("d")))):J(new Date)),[L,P]=(0,c.useState)(null),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)(!0),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)(),[Y,Z]=(0,c.useState)(null),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(!1),[ac,ad]=(0,c.useState)(!1),[ae,af]=(0,c.useState)(null),ai=(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())),n.replace(`${o}?${f.toString()}`,{scroll:!1})},[o,n]),aj=(0,c.useCallback)(async()=>{let{from:a,to:b}="week"===z?K(G):ah(u,w);T(!0);try{let c=await (0,k.listCalendarEvents)(l,{from:a,to:b});R(c)}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to load events")}finally{T(!1)}},[l,u,w,z,G]);(0,c.useEffect)(()=>{aj()},[aj]);let ak=(0,c.useMemo)(()=>0===C.size?Q:Q.filter(a=>C.has(a.agent_id)),[Q,C]),al=(0,c.useCallback)(()=>{let a=0===w?11:w-1,b=0===w?u-1:u;x(a),v(b),F(new Date(b,a,1)),ai(b,a,C,z)},[w,u,C,z,ai]),am=(0,c.useCallback)(()=>{let a=11===w?0:w+1,b=11===w?u+1:u;x(a),v(b),F(new Date(b,a,1)),ai(b,a,C,z)},[w,u,C,z,ai]),an=(0,c.useCallback)(()=>{let a=new Date(G);a.setDate(a.getDate()-7),H(a),F(a),ai(a.getFullYear(),a.getMonth(),C,"week",a)},[G,C,ai]),ao=(0,c.useCallback)(()=>{let a=new Date(G);a.setDate(a.getDate()+7),H(a),F(a),ai(a.getFullYear(),a.getMonth(),C,"week",a)},[G,C,ai]),ap=a=>{Z(a),_(!0)},aq=(0,c.useCallback)(a=>{let b=a.getFullYear(),c=a.getMonth();if(v(b),x(c),F(a),"week"===z){let d=J(a);H(d),ai(b,c,C,z,d)}else ai(b,c,C,z)},[C,z,ai]),ar=(0,c.useCallback)(()=>{let a=new Date;if("week"===z){let b=J(a);H(b),F(a),ai(b.getFullYear(),b.getMonth(),C,"week",b)}else aq(a)},[aq,z,C,ai]),as=(0,c.useCallback)(a=>{if(B(a),"week"===a){let b=J(E);H(b),ai(u,w,C,a,b)}else if("week"===z){let b=G.getFullYear(),c=G.getMonth();v(b),x(c),ai(b,c,C,a)}else ai(u,w,C,a)},[u,w,C,ai,E,z,G]),at=async a=>{ab(!0);try{let b=await (0,k.createCalendarEvent)(a,l),{from:c,to:d}="week"===z?K(G):ah(u,w),f=new Date(b.scheduled_at).getTime();f>=new Date(c).getTime()&&f<=new Date(d).getTime()&&R(a=>[...a,b]),V(!1),e.toast.success("Event created")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to create event")}finally{ab(!1)}},au=async(a,b)=>{ad(!0);try{await (0,k.updateCalendarEvent)(a.id,b,l),await aj(),_(!1),Z(null),e.toast.success("Event updated")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to update event")}finally{ad(!1)}},av=async(a,b)=>{af(a.id);try{await (0,k.deleteCalendarEvent)(a.id,l,b),b?.scope?await aj():R(b=>b.filter(b=>b.id!==a.id)),_(!1),Z(null),e.toast.success("Event deleted")}catch(a){e.toast.error(a instanceof Error?a.message:"Failed to delete event")}finally{af(null)}},aw=(0,c.useRef)(U),ax=(0,c.useRef)($);(0,c.useEffect)(()=>{aw.current=U},[U]),(0,c.useEffect)(()=>{ax.current=$},[$]);let ay=(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 ak){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)},[ak]);return(0,c.useEffect)(()=>{let a=a=>{if(aw.current||ax.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"===z){let a=J(b);H(a),F(b),ai(a.getFullYear(),a.getMonth(),C,"week",a)}else b.getFullYear()!==u||b.getMonth()!==w?aq(b):F(b);return}if("n"===a.key){a.preventDefault(),X(E),V(!0);return}if("month"!==z&&"week"!==z)return;if("week"===z){if("ArrowLeft"===a.key){a.preventDefault();let b=new Date(E);b.setDate(b.getDate()-1),F(b);let c=J(b);c.getTime()!==G.getTime()&&(H(c),ai(c.getFullYear(),c.getMonth(),C,"week",c));return}if("ArrowRight"===a.key){a.preventDefault();let b=new Date(E);b.setDate(b.getDate()+1),F(b);let c=J(b);c.getTime()!==G.getTime()&&(H(c),ai(c.getFullYear(),c.getMonth(),C,"week",c));return}if("ArrowUp"===a.key){a.preventDefault();let b=new Date(E);b.setHours(b.getHours()-1),F(b);return}if("ArrowDown"===a.key){a.preventDefault();let b=new Date(E);b.setHours(b.getHours()+1),F(b)}return}let b=document.activeElement?.getAttribute("role")==="gridcell";if("Enter"===a.key){if(!b)return;a.preventDefault(),ay(E)>0?P(`${E.getFullYear()}-${String(E.getMonth()+1).padStart(2,"0")}-${String(E.getDate()).padStart(2,"0")}`):(X(E),V(!0));return}if(!b)return;let c=function(a,b){let c=new Date(a.getFullYear(),a.getMonth(),a.getDate());switch(b){case"ArrowLeft":return c.setDate(c.getDate()-1),c;case"ArrowRight":return c.setDate(c.getDate()+1),c;case"ArrowUp":return c.setDate(c.getDate()-7),c;case"ArrowDown":return c.setDate(c.getDate()+7),c;case"Home":return c.setDate(c.getDate()-c.getDay()),c;case"End":return c.setDate(c.getDate()+(6-c.getDay())),c;case"PageUp":{let a=0===c.getMonth()?c.getFullYear()-1:c.getFullYear(),b=(c.getMonth()-1+12)%12,d=new Date(a,b+1,0).getDate();return c.setFullYear(a,b,Math.min(c.getDate(),d)),c}case"PageDown":{let a=11===c.getMonth()?c.getFullYear()+1:c.getFullYear(),b=(c.getMonth()+1)%12,d=new Date(a,b+1,0).getDate();return c.setFullYear(a,b,Math.min(c.getDate(),d)),c}default:return null}}(E,a.key);c&&(a.preventDefault(),c.getFullYear()===u&&c.getMonth()===w?F(c):aq(c))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[z,u,w,E,aq,ay,G,C,ai]),(0,c.useEffect)(()=>{if("month"!==z)return;let a=document.activeElement;if(!a||"gridcell"!==a.getAttribute("role"))return;let b=`[data-date="${y(E)}"]`,c=document.querySelector(b);c?.focus()},[E,z,u,w]),(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)(N,{view:z,onChange:as}),(0,b.jsxs)(i.Button,{size:"sm",variant:"outline",onClick:()=>{X(void 0),V(!0)},disabled:0===m.length,children:[(0,b.jsx)(j.Plus,{className:"size-3.5"}),"New event"]})]})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-1 flex-col gap-4 px-5 py-5","week"===z?"min-h-0 overflow-hidden":"overflow-y-auto"),children:[(0,b.jsx)(O,{agents:m,selected:C,onToggle:a=>{let b=new Set(C);b.has(a)?b.delete(a):b.add(a),D(b),ai(u,w,b,z,"week"===z?G:null)}}),"month"===z&&(0,b.jsx)(A,{year:u,month:w,events:ak,agents:m,loading:S,focusedDate:E,openPopoverKey:L,onPopoverChange:P,onPrev:al,onNext:am,onJumpToToday:ar,onJumpToDate:aq,onSelectDay:a=>{X(a),V(!0),F(a)},onSelectEvent:ap}),"week"===z&&(0,b.jsx)(M,{weekStart:G,events:ak,agents:m,loading:S,focusedDate:E,onPrevWeek:an,onNextWeek:ao,onJumpToToday:ar,onJumpToDate:aq,onSelectSlot:(a,b)=>{X(new Date(a.getFullYear(),a.getMonth(),a.getDate(),b)),V(!0)},onSelectEvent:ap}),"agenda"===z&&(0,b.jsx)(I,{events:ak,agents:m,loading:S,onSelectEvent:ap}),("month"===z||"week"===z)&&!S&&Q.length>0&&0===ak.length&&(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground py-4",children:"No events for selected agents."})]}),(0,b.jsx)(ag,{open:U,onOpenChange:V,agents:m,defaultDate:W,submitting:aa,onCreate:at}),(0,b.jsx)(ag,{event:Y,agents:m,open:$,onOpenChange:_,onDelete:av,onUpdate:au,deleting:ae===Y?.id,saving:ac})]})}],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-[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)}];
2
2
 
3
3
  //# sourceMappingURL=src_web_src_app_%28app%29_w_%5Bslug%5D_calendar_page_tsx_01geiyd._.js.map
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/uqh7k2CfR4q4Ho7LkspzI/_buildManifest.js",
11
- "static/uqh7k2CfR4q4Ho7LkspzI/_ssgManifest.js",
12
- "static/uqh7k2CfR4q4Ho7LkspzI/_clientMiddlewareManifest.js"
10
+ "static/B9spjQ7Fv9GOPnAmBxyfG/_buildManifest.js",
11
+ "static/B9spjQ7Fv9GOPnAmBxyfG/_ssgManifest.js",
12
+ "static/B9spjQ7Fv9GOPnAmBxyfG/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0fus_woghk6f3.js",
@@ -25,11 +25,11 @@
25
25
  "wasm": [],
26
26
  "assets": [],
27
27
  "env": {
28
- "__NEXT_BUILD_ID": "uqh7k2CfR4q4Ho7LkspzI",
29
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "ODSItCbBWqYSTz9MK0xErid5D79x2drwQLGP1zkZnzk=",
30
- "__NEXT_PREVIEW_MODE_ID": "747e1ac1dedb93586066da215259bb6e",
31
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "f169e4fdcb4933866cb621cffbc7f61893ec69f5a1e9194dabd701bf05840e93",
32
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "798c0d30e1274f5093714e348d9f205b20a1fc09f67f356af18b8b3b76ddc632"
28
+ "__NEXT_BUILD_ID": "B9spjQ7Fv9GOPnAmBxyfG",
29
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "tC+Q84Md+UtuKdUaEkJDCETxdFFYlPRp03PGLz/mJbM=",
30
+ "__NEXT_PREVIEW_MODE_ID": "4422a8b0b1fd728422d34cfe4a27f6e6",
31
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "b6bdf04db67c523e96c54b849de50efa39efa63ef39892c4319b6bab64c93787",
32
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "3e8aa0fc43a39c290c360d5977042f0d5017b710e98616f4427a18d9304eab18"
33
33
  }
34
34
  }
35
35
  },
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"ODSItCbBWqYSTz9MK0xErid5D79x2drwQLGP1zkZnzk=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"tC+Q84Md+UtuKdUaEkJDCETxdFFYlPRp03PGLz/mJbM=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "ODSItCbBWqYSTz9MK0xErid5D79x2drwQLGP1zkZnzk="
4
+ "encryptionKey": "tC+Q84Md+UtuKdUaEkJDCETxdFFYlPRp03PGLz/mJbM="
5
5
  }