@aiquants/daily-report 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -1
- package/README.md +161 -75
- package/dist/client.d.mts +3 -1
- package/dist/client.d.ts +3 -1
- package/dist/client.js +5 -5
- package/dist/client.mjs +5 -5
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/server.d.mts +53 -131
- package/dist/server.d.ts +53 -131
- package/dist/server.js +4 -4
- package/dist/server.mjs +4 -4
- package/dist/styles/daily-report.standalone.css +1 -1
- package/package.json +3 -3
package/dist/client.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import kd from"lucide-react/dist/esm/icons/paperclip.js";var Nd="data-daily-report-row-surface",Pe={[Nd]:""},Ft="data-daily-report-scrolling",Bt=8,ir="h-[calc-size(auto,round(up,size,4px))]",pt="p-[8px]",Ha="pr-[8px]",$r="contain-size contain-layout contain-style",Fa="contain-strict",J="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Ba="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",go="scrollbar-thin [scrollbar-gutter:stable]",Ro=`-m-[4px] overflow-hidden p-[4px] ${go}`,Ua="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",zr="rounded-[calc(var(--radius-2xl)+8px)]",Gr="outline-none [&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-400 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-2 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-blue-500 [&[aria-current=true]>:where([data-daily-report-row-surface])]:shadow-transparent forced-colors:[&[aria-current=true]]:outline-2 forced-colors:[&[aria-current=true]]:outline-solid forced-colors:[&[aria-current=true]]:-outline-offset-8 forced-colors:[&[aria-current=true]]:outline-[Highlight] forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-2 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-solid forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:-outline-offset-8 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-[Highlight]",Va="has-[>[data-daily-report-button]:focus-visible]:outline-2 has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark:has-[>[data-daily-report-button]:focus-visible]:outline-blue-400 has-[>[aria-current=true]]:ring-2 has-[>[aria-current=true]]:ring-blue-500 has-[>[aria-current=true]]:shadow-transparent",Xe="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",Wa=16,Ut="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",jr="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",Yr="motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:-translate-y-[2px] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",De=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${J}`,Ka="-mx-1",$a="flex items-center gap-1",Le="inline-flex h-6 items-center rounded-full px-3",za="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Ga="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",mt="size-4",ge={starOff:`${mt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${mt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${mt} text-blue-600 dark:text-blue-400`,delete:`${mt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${mt} text-red-600 dark:text-red-400`,edit:`${mt} text-slate-500 dark:text-slate-400`},ja="h-6 w-10 border-4 border-solid",Ya="size-4 data-[state=checked]:translate-x-4",qa="data-[state=unchecked]:bg-slate-500 data-[state=checked]:bg-blue-600 dark:data-[state=unchecked]:bg-slate-400 dark:data-[state=checked]:bg-blue-400 forced-colors:border-[ButtonText] forced-colors:data-[state=checked]:bg-[Highlight]",Xa="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var Za="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",Ja="rounded-xl border border-solid p-[3px]",Qa="relative inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 after:pointer-events-none after:absolute after:right-[var(--radius-lg)] after:bottom-0 after:left-[var(--radius-lg)] after:h-[2px] after:rounded-full after:forced-color-adjust-none data-[state=active]:after:bg-blue-600 dark:data-[state=active]:after:bg-blue-400 forced-colors:data-[state=active]:after:bg-[Highlight] disabled:pointer-events-none disabled:opacity-50",Od="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",Md="bg-slate-50 dark:bg-slate-950",Be="flex min-h-0 flex-1 flex-col",sr=`${Be} ${Md}`,lr=`${Be} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${Od}`,dr="text-red-700 dark:text-red-400",ei="bg-white dark:bg-slate-900",qr="flex min-h-0 flex-1 flex-col overflow-clip contain-size",Xr="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",ti="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",ri={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},It="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",st=`m-0 ${It}`,Zr="text-balance [word-break:auto-phrase]",Jr="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as ni,jsxs as Hd}from"react/jsx-runtime";var Pd=2,cr=({id:e,count:t,label:r})=>t<=0?null:Hd("span",{id:e,className:"inline-flex h-6 shrink-0 items-center gap-1 text-slate-500 dark:text-slate-400",title:`${r}: ${t}`,role:"img","aria-label":`${r}: ${t}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":t,children:[ni(kd,{className:mt,"aria-hidden":"true"}),t>=Pd&&ni("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as vf}from"@aiquants/virtualscroll";import{useCallback as Ce,useEffect as Tt,useLayoutEffect as Ef,useMemo as Ea,useRef as Oe,useState as Qn}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},se=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?se(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let l=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),d=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${c}:${d}`}return`${o}-${a}-${i}`};import{useCallback as dc,useEffect as Si,useRef as cc,useState as uc}from"react";var Fd=/^\d{4}-\d{2}-\d{2}$/,Bd=/^\d{4}\/\d{2}\/\d{2}$/,Qr=e=>e<10?`0${e}`:`${e}`,oi=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=Qr(e.getMonth()+1),n=Qr(e.getDate());return`${t}-${r}-${n}`},ho=(e=new Date)=>Number.isNaN(e.getTime())?ho(new Date):`${e.getFullYear()}-${Qr(e.getMonth()+1)}-${Qr(e.getDate())}`,Lt=e=>{if(e==null)return null;if(e instanceof Date)return oi(e);let t=e.trim();if(t==="")return null;if(Fd.test(t))return t;if(Bd.test(t))return t.replaceAll("/","-");let r=new Date(t);return oi(r)};var Vt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as jd}from"@aiquants/virtualscroll";import{createContext as Yd,useContext as qd,useMemo as Xd}from"react";var Ud=e=>typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"||e===null||e===void 0?String(e):Array.isArray(e)?"array":typeof e,Te=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Ud(r)}`),ai=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),en=(e,t,r)=>Te(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Vd,resolveVirtualScrollLocale as Wd,VIRTUAL_SCROLL_LABEL_CATALOGS as ii,VIRTUAL_SCROLL_LABEL_KEYS as Eo}from"@aiquants/virtualscroll";var li=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","attachmentThumbnailUnavailable","tabArticle","tabRelations","reportTabList","relationsEmpty","title","listKeyboardHelp","tabList","tabTree","tabDetailList","viewTabList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","edit","resizeHandle","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],di=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],So=[...Eo,...li,...di];var Kd=Object.freeze({en:"en-US",ja:"ja-JP"}),we=(e,t)=>t.toLocaleString(Kd[e]),$d=Object.freeze({create:"\u65E5\u5831\u306E\u4F5C\u6210",update:"\u65E5\u5831\u306E\u4FDD\u5B58",publish:"\u65E5\u5831\u306E\u516C\u958B",delete:"\u65E5\u5831\u306E\u524A\u9664",addComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u6295\u7A3F",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664",toggleStar:"\u30B9\u30BF\u30FC\u306E\u66F4\u65B0",toggleRead:"\u65E2\u8AAD\u72B6\u614B\u306E\u66F4\u65B0"}),zd=Object.freeze({create:"create the report",update:"save the report",publish:"publish the report",delete:"delete the report",addComment:"post the comment",deleteComment:"delete the comment",toggleStar:"update the star",toggleRead:"update the read state"}),vo=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${we("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${we("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${we("en",e)} / ${we("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${we("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${we("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${we("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${zd[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${we("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} / ${we("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${we("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${$d[e]}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,rowState:({isRead:e,isStarred:t})=>`${e?"\u65E2\u8AAD":"\u672A\u8AAD"}${t?"\u3001\u30B9\u30BF\u30FC\u4ED8\u304D":""}`})}),ci=Object.freeze({en:Object.freeze({...ii.en,...vo.en}),ja:Object.freeze({...ii.ja,...vo.ja})}),Gd=e=>{let t={},r=!1;for(let n of Eo){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},si=(e,t,r)=>{e[t]=r},To=(e,t)=>{let r=Wd(e);if(t===void 0)return ci[r];if(t===null||typeof t!="object")throw Te("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw Te("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!So.includes(i))throw en("labels key",i,So);let a={...Vd(r,Gd(t)),...vo[r]};for(let i of li){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw Te(`labels.${i}`,"a non-blank string",s);si(a,i,s)}}for(let i of di){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw Te(`labels.${i}`,"a function",s);si(a,i,s)}}return Object.freeze(a)},ui=e=>{let t={};for(let r of Eo)t[r]=e[r];return Object.freeze(t)};import{jsx as xo,jsxs as oc}from"react/jsx-runtime";var Zd=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Jd=({title:e,annotation:t})=>oc("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[xo("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?xo("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),ur=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Jd,showDevControls:!1,headingLevel:3}),mi=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Qd=e=>{for(let t of Object.keys(e))if(!mi.includes(t))throw en("config key",t,mi)},ec=[2,3,4,5],tc=e=>{if(e===void 0)return ur.headingLevel;let t=ec.find(r=>r===e);if(t===void 0)throw Te("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},rc=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw Te(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},pi=e=>{Qd(e);let t=e.onSessionExpired;if(t===void 0)throw ai("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw Te("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=jd(e.locale),n=To(r,e.labels),o=ur;return{apiBasePath:e.apiBasePath===void 0?o.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?o.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?o.draftLabelName:e.draftLabelName,locale:r,labels:n,sourceTypeConfigs:e.sourceTypeConfigs===void 0?Zd(n):rc(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:tc(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},nc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},fi=Yd(pi({onSessionExpired:nc})),Co=({config:e,children:t})=>{let r=Xd(()=>pi(e),[e]);return xo(fi.Provider,{value:r,children:t})},H=()=>qd(fi),At=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},tn=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as ic}from"@aiquants/virtualscroll";var ac=4;var Wt=120,bi=1e3,rn=.8,Lo={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},nn=20,yi=6,on={reportHubId:-1,businessDate:null},an=240,sn=15,sc=8,gi=460,Ri=3,hi=352,lc={enabled:!0,renderVisual:ic,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},ln={width:sc,tapScrollCircleOptions:lc,enableArrowButtonTabStops:!1},dn=["pen","touch"];var Ti=Vt(1,"use-daily-report"),xi=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},_o=xi("__DAILY_REPORT_CACHE_TTL__",3e5),mc=xi("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),G={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{G.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=Lt(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Ti.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+mc))}},delete(e,t){this.reports.delete(e);let r=Lt(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),o=n+_o;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let l=this.reports.get(i.reportHubId)?.data,c=this.merge(i,l);return this.set(c,o,!1),c});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},Ci=(e,t,r=!0)=>G.set(e,t,r),Ue=(e,t)=>G.getReport(e,t?.ignoreExpiry),Ve=(e,t)=>G.update(e,t),un=(e,t)=>G.delete(e,t),mr=()=>{G.clear(),cn.clear()},pr=e=>{G.locks.add(e),G.lastMutations.set(e,Date.now())},fr=e=>{G.locks.delete(e),G.lastMutations.set(e,Date.now())},Ii=e=>G.recentDeletes.set(e,Date.now()),Li=(e,t)=>{let r=n=>{n===e&&t()};return G.listeners.add(r),()=>{G.listeners.delete(r)}},_t=(e,t)=>{G.prune(),G.set(t,Date.now()+_o)},Ai=e=>{G.prune();let t=G.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));G.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+_o)},pc=async(e,t)=>{let r=G.getReport(t);if(r)return r;let n=G.pendingReports.get(t);if(n)return n;let o=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let s=i.report;return G.cacheMany([s],null,o)[0]}).finally(()=>G.pendingReports.delete(t));return G.pendingReports.set(t,a),a},cn=new Map,fc=1e4,bc=(e,t)=>{let r=cn.get(t),n=Date.now();if(r&&n-r.at<fc)return r.inFlight;let o=Do(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return cn.set(t,a),o.finally(()=>{cn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Do=async(e,t,r={})=>{let n=r.forceRefresh?null:G.getList(t);if(n)return n;let o=G.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return G.cacheMany(s.reports??[],t,a)}).finally(()=>G.pendingLists.delete(t));return G.pendingLists.set(t,i),i},Ao=(e,t)=>{let r=G.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!G.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=G.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!G.isValid(n.expiresAt)}},vi=(e,t)=>{if(e<=0)return{id:e,report:null,error:e===0?new Error("Invalid ID"):null,isLoading:!1,isRefetching:!1};let{report:r}=Ao(e,Lt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},Kt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Dt=(e,t)=>{let{apiBasePath:r}=H(),[n,o]=uc(()=>vi(e,t)),a=cc(0),i=n;return n.id!==e&&(i=vi(e,t),o(i)),Si(()=>{let s=Lt(t),l=c=>{c===e&&o(Kt(e,{report:Ao(e,s).report}))};return G.listeners.add(l),()=>{G.listeners.delete(l)}},[e,t]),Si(()=>{let s=Lt(t);a.current+=1;let l=a.current,c=()=>{a.current+=1};if(e<=0)return c;let{report:d,isStale:y}=Ao(e,s);if(d&&!y)return o(Kt(e,{report:d,error:null,isLoading:!1,isRefetching:!1})),c;o(Kt(e,{report:d,isLoading:!d,isRefetching:!0}));let g=async()=>{try{let I=null;if(s){let m=G.getList(s)!==null;if(I=(await Do(r,s)).find(b=>b.reportHubId===e)??null,!I&&m){let b=await bc(r,s);b&&(I=b.find(E=>E.reportHubId===e)??null)}}else I=await pc(r,e);a.current===l&&o(Kt(e,{report:I,error:null}))}catch(I){a.current===l&&o(Kt(e,{error:I instanceof Error?I:new Error("Load failed")}))}finally{a.current===l&&o(Kt(e,{isLoading:!1,isRefetching:!1}))}};if(d===null)return g(),c;let x=setTimeout(g,Wt);return()=>{clearTimeout(x),c()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},wo=()=>{let{apiBasePath:e}=H();return dc(t=>{let r=Lt(t);r&&!G.getList(r)&&Do(e,r).catch(n=>Ti.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as yc}from"@aiquants/virtualscroll";import{useRef as gc}from"react";var mn=()=>{let{locale:e,labels:t}=H(),r=ui(t),n=gc(null),o=n.current;return o!==null&&yc.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as Lc,useState as Ac}from"react";import{flushSync as _c}from"react-dom";var wi=Object.freeze({visibilityProperty:!0}),_i=new Set(["auto","scroll"]),Di=new Set(["","true","plaintext-only"]),Ni=e=>{for(let t=e;t!==null;){if(t.hasAttribute("inert"))return!0;let r=t.parentElement;if(r!==null){t=r;continue}let n=t.getRootNode();t=Pi(n)?n.host:null}return!1},Rc=e=>{let t=e.closest("map")?.getAttribute("name");if(t==null||t==="")return!1;let r=e.getRootNode();for(let n of r.querySelectorAll("img[usemap]"))if(n.getAttribute("usemap")===`#${t}`&&n.checkVisibility(wi))return!0;return!1},Oi=e=>e.localName==="area"?Rc(e):e.checkVisibility(wi),hc=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Di.has(t.toLowerCase()))return!1;for(let r=e.parentElement;r!==null;r=r.parentElement){let n=r.getAttribute("contenteditable");if(n===null)continue;let o=n.toLowerCase();if(Di.has(o))return!1;if(o==="false")return!0}return!0},Sc=e=>{if(e.checked||e.name==="")return!0;let t=e.getRootNode(),r=null;for(let n of t.querySelectorAll("input"))if(!(n.type!=="radio"||n.name!==e.name||n.form!==e.form)){if(n.checked)return!1;r===null&&!n.disabled&&Oi(n)&&(r=n)}return r===e},vc=e=>{let t=e.ownerDocument;if(e===t.documentElement||e===t.body)return!1;let r=e.scrollWidth>e.clientWidth,n=e.scrollHeight>e.clientHeight;if(!(r||n))return!1;let o=t.defaultView;if(o===null)return!1;let a=o.getComputedStyle(e);return r&&_i.has(a.overflowX)||n&&_i.has(a.overflowY)},Ec=e=>{switch(e.localName){case"a":case"area":return e.hasAttribute("href");case"button":case"select":case"textarea":case"iframe":case"embed":return!0;case"input":return e.type!=="hidden";case"summary":return e.parentElement?.localName==="details"&&e.parentElement.querySelector(":scope > summary")===e;case"audio":case"video":return e.hasAttribute("controls");case"object":{let t=e.contentWindow;return typeof t=="object"&&t!==null}default:return hc(e)}},Tc=/^[\t\n\f\r ]*[+-]?\d/,xc=e=>{let t=e.getAttribute("tabindex");return t!==null&&Tc.test(t)?e.tabIndex:null},Mi=(e,t)=>{for(let r of Oo(e))if(t(r)||Mi(r,t))return!0;return!1},pn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=Cc(e,t);return t.set(e,n),n},Cc=(e,t)=>{if(!Mo(e))return"none";let r=xc(e),n=r===null&&Ec(e),o=r===null&&!n&&vc(e);return!(r!==null||n||o)||e.matches(":disabled")||Ni(e)||!Oi(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Sc(e)?"sequential":"programmatic":"sequential":Mi(e,a=>pn(a,t)==="sequential")?"none":"sequential"},No=(e,t)=>{for(let r of Oo(e))t(r),No(r,t)},Oo=e=>{if(fe(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var fn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return No(e,l=>{pn(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let d of Oo(l)){let y=d===t;!y&&pn(d,a)==="sequential"&&(c?n.push(d):i?o.push(d):r.push(d)),s(d,c||y),y&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},ki=e=>{let t=[],r=new Map;return No(e,n=>{pn(n,r)==="sequential"&&t.push(n)}),t},fe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Mo=e=>"focus"in e&&"blur"in e,Ic=e=>e.nodeType===e.DOCUMENT_NODE,Pi=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(Pi(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return Ic(t)?t.activeElement:null},bn=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||Ni(t)},Ge=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var yn=e=>{let[t,r]=Ac(null);return Lc(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=l=>{if(l===o)return;let c=o===null;o=l,c?_c(()=>r(l)):r(l)},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)},s=new(Ge(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var Hi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ce=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var gn="data-daily-report-row",Fi=`[role="listitem"][${gn}]`,Dc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',wc=/^[1-9]\d*$/,Bi=e=>{if(e===null||!wc.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},ft=(e,t)=>{if(t===null||!fe(e))return null;let r=e.closest(Fi);return r===null||r===t||!t.contains(r)?null:r},wt=e=>Bi(e.getAttribute(gn)),$t=e=>Bi(e.getAttribute("aria-posinset")),Ui=e=>{let t=e.closest(Fi),r=t===null?null:$t(t);return r===null?null:r-1},br=(e,t)=>{if(e===null)return null;let r=wt(e);if(r===null)return null;let n=$t(e),o=ce(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Vi=(e,t)=>{if(!fe(e))return!1;let r=e.closest(Dc);return r!==null&&r!==t&&t.contains(r)};import{createContext as Wi}from"react";var bt=Wi(0),yt=Wi(-1);import{clsx as Nc}from"clsx";import{twMerge as Oc}from"tailwind-merge";function h(...e){return Oc(Nc(e))}import{useCallback as Ki,useMemo as Mc,useSyncExternalStore as kc}from"react";var $i="(prefers-reduced-motion: reduce)",zi=e=>Ge(e).matchMedia($i).matches?"instant":"smooth",Pc=Object.freeze({...Lo,startVelocityThreshold:Number.POSITIVE_INFINITY}),zt=e=>e?Pc:Lo,Hc=()=>!1,Rn=e=>{let t=Mc(()=>e===null?null:Ge(e).matchMedia($i),[e]),r=Ki(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=Ki(()=>t===null?!1:t.matches,[t]);return kc(r,n,Hc)};import{useSyncExternalStore as Fc}from"react";import{jsx as ko}from"react/jsx-runtime";var hn=()=>{let e={label:"",isWheelScrollActive:!1},t=new Set,r=n=>{e=n;for(let o of[...t])o()};return{getState:()=>e,setLabel:n=>{n!==e.label&&r({...e,label:n})},setWheelScrollActive:n=>{n!==e.isWheelScrollActive&&r({...e,isWheelScrollActive:n})},subscribe:n=>(t.add(n),()=>{t.delete(n)})}},Gi=16,Bc=(e,t)=>e==="vertical"?{top:0,left:-Gi,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-Gi,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},Sn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Fc(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?ko("div",{className:"pointer-events-none absolute flex items-center",style:Bc(e,t),children:ko("div",{className:h(za,"border-slate-200 bg-white text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100"),children:ko("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Pl,useCallback as Jt,useEffect as Ml,useId as Qp,useLayoutEffect as ef,useMemo as Sa,useRef as kr,useState as kl}from"react";import{createContext as Iu,useCallback as dt,useContext as Lu,useEffect as qo,useRef as Ae,useState as Dn}from"react";var ji=e=>{if(typeof e!="object"||e===null)return"unknown";let t=e;return typeof t.kind=="string"?t.kind==="chunk"?"chunk":t.kind==="error"?"error":"unknown":Array.isArray(t.items)?"chunk":typeof t.error=="string"?"error":"unknown"};var vn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Yi=e=>{for(let t=1;t<e.length;t++)if(vn(e[t-1],e[t])>0)return!1;return!0},Po=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;vn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as An}from"@aiquants/sse";import{createBrowserEventSource as mu}from"@aiquants/sse/client";import{useReopeningEventSource as pu}from"@aiquants/sse/react";import{useEffect as Go,useRef as _n,useState as fu}from"react";import{z as A}from"zod";var qi=["auth-required","forbidden","resync-required"],Ho=15e3,Xi="lastEventId",Uc=/^\d{1,15}-\d{1,15}$/,En=e=>Uc.test(e),Vc=A.object({name:A.string().nullish(),affiliation:A.string().nullish()}),Wc=A.object({name:A.string().nullish(),text:A.string().nullish(),color:A.string().nullish()}),Kc=A.object({id:A.number(),name:A.string().nullish(),color:A.string().nullish()}),Zi=A.object({id:A.number(),userId:A.string().nullish(),userName:A.string().nullish(),content:A.string().nullish(),createdAt:A.string().nullish(),isMine:A.boolean()}),$c=A.object({id:A.string(),fileName:A.string(),fileType:A.string().nullable(),fileSize:A.number().nullable(),createdAt:A.string().nullable(),state:A.enum(["present","absent","unknown"]),hasThumbnail:A.boolean().default(!1)}),Fo=A.object({reportHubId:A.number(),date:A.string().nullish(),createdAt:A.string().nullish(),author:A.string().nullish(),userId:A.string().nullish(),sourceType:A.string().nullish(),employeeName:A.string().nullish(),updatedBy:A.string().nullish(),updatedAt:A.string().nullish(),category:A.string().nullish(),creationCategory:A.string().nullish(),visitTimeFrom:A.string().nullish(),visitTimeTo:A.string().nullish(),customerName:A.string().nullish(),interviewers:A.array(Vc),subject:A.string().nullish(),content:A.string().nullish(),externalComments:A.array(Wc),isRead:A.boolean(),isStarred:A.boolean(),labels:A.array(Kc),postedComments:A.array(Zi),attachments:A.array($c).default([])}),zc=A.object({type:A.literal("connected")}),Gc=A.object({type:A.literal("status-update"),reportHubId:A.number(),statusType:A.enum(["star","read"]),value:A.boolean(),clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Bo=A.string().optional(),jc=A.object({type:A.literal("comment-add"),reportHubId:A.number(),comment:Zi,clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Bo}),Yc=A.object({type:A.literal("comment-delete"),reportHubId:A.number(),commentId:A.number(),clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Bo}),qc=A.object({type:A.literal("report-create"),reportHubId:A.number(),report:Fo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Xc=A.object({type:A.literal("report-update"),reportHubId:A.number(),report:Fo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Zc=A.object({type:A.literal("report-publish"),reportHubId:A.number(),report:Fo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Jc=A.object({type:A.literal("report-delete"),reportHubId:A.number(),clientTempId:A.string(),sourceType:Bo}),Ji=A.discriminatedUnion("type",[zc,Gc,jc,Yc,qc,Xc,Zc,Jc]);import{useSyncExternalStore as iu}from"react";var Qi=()=>{let e=new TextDecoder,t=[],r=0,n=o=>{r+=o.length;let a=[],i=0;for(let s=o.indexOf(`
|
|
2
|
-
`);
|
|
3
|
-
`,i)){let l=o.slice(i,s);a.push(t.length===0?l:[...t,l].join("")),t=[],i=s+1}return i<o.length&&t.push(o.slice(i)),a};return{push:o=>n(e.decode(o,{stream:!0})),end:()=>{let o=n(e.decode()),a=t.join("");return t=[],a===""?o:[...o,a]},get scannedCharacters(){return r}}};var Qc=50,eu=1e3,tu=3e4,ru=6,nu=3e4,Tn=Symbol("read-stall"),ou="/daily_report/api",au=/^\d{4}-\d{2}-\d{2}$/,yr=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null};this.streamAnchorRevision=0;this.lastCursor=null;this.lastSnapshot=null;this.consecutiveFailures=0;this.started=!1;this.disposed=!1;this.loopGeneration=0;this.activeAbortController=null;this.activeSeenIds=null;this.externalRemovalTombstones=new Set;this.pendingForceRefresh=!1;this.wakeRetryWait=null;this.handleOnline=()=>this.wakeRetryWait?.();this.publishCoalesceTimer=null;this.lastItemsPublishAt=0;this.apiBasePath=t.apiBasePath??ou,this.fetchFn=t.fetchFn??((r,n)=>fetch(r,n)),this.setTimeoutFn=t.setTimeoutFn??((r,n)=>setTimeout(r,n)),this.clearTimeoutFn=t.clearTimeoutFn??(r=>clearTimeout(r)),this.warn=t.warn??((...r)=>console.warn(...r)),this.readStallTimeoutMs=t.readStallTimeoutMs??nu,this.publishCoalesceMs=t.publishCoalesceMs??Qc,typeof window<"u"&&window.addEventListener("online",this.handleOnline)}getState(){return this.state}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}start(){this.started||this.disposed||(this.started=!0,this.runStreamLoop({revalidate:!1,forceRefresh:!1}))}retry(){this.disposed||this.state.phase!=="failed"||(this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:!1}))}refresh(t={}){if(!this.disposed){if(this.state.phase==="failed"){this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:t.forceRefresh??!1});return}if(this.state.phase==="complete"){if(this.state.isRevalidating){t.forceRefresh&&(this.pendingForceRefresh=!0);return}this.lastCursor=null,this.consecutiveFailures=0,this.runStreamLoop({revalidate:!0,forceRefresh:t.forceRefresh??!1})}}}resync(){if(!this.disposed){if(this.state.phase==="streaming"||this.state.phase==="retrying"){this.pendingForceRefresh=!0;return}this.refresh({forceRefresh:!0})}}applyExternalUpsert(t){if(this.disposed||!t||typeof t.reportHubId!="number")return;this.externalRemovalTombstones.delete(t.reportHubId),this.activeSeenIds?.add(t.reportHubId);let r=this.itemMap.get(t.reportHubId),n={reportHubId:t.reportHubId,businessDate:t.businessDate,sourceType:t.sourceType??r?.sourceType};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=ru){t.revalidate&&this.state.hasCompletedOnce?(this.warn("[DailyReportIdsStream] revalidation gave up:",n.error.message),this.pendingForceRefresh=!1,this.publish({isRevalidating:!1,error:n.error})):this.publish({phase:"failed",isRevalidating:!1,error:n.error});return}this.publish({phase:t.revalidate?this.state.phase:"retrying",error:n.error}),await this.waitBeforeRetry(Math.min(eu*2**(this.consecutiveFailures-1),tu))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(d=>{o=this.setTimeoutFn(()=>d(Tn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Tn)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(a.status===401||a.status===403)return{kind:"auth-required"};if(!(a.ok&&a.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${a.status}`)};let i=a.body.getReader(),s=Qi(),l=!1,c=!1;for(;;){let d=await this.readWithStallGuard(i);if(d===Tn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let y=d.done?s.end():s.push(d.value),g=!1;for(let x of y){if(x.trim()==="")continue;let I;try{I=JSON.parse(x)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let m=ji(I);if(m==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(m==="error"){l=!0;continue}let R=I;g=this.absorbChunkLine(R)||g,typeof R.total=="number"&&Number.isFinite(R.total)&&R.total!==this.state.totalCount&&this.publish({totalCount:R.total}),R.nextCursor&&(R.nextCursor.businessDate===null||au.test(R.nextCursor.businessDate))&&(this.lastCursor=R.nextCursor),R.isLast&&(c=!0)}if(g&&(this.consecutiveFailures=0,this.schedulePublishItems()),d.done)break}return l?{kind:"retryable",error:new Error("Stream interrupted by server error")}:c?{kind:"complete"}:{kind:"retryable",error:new Error("Stream ended before completion")}}catch(n){return n instanceof Error&&n.name==="AbortError"?{kind:"aborted"}:{kind:"retryable",error:n instanceof Error?n:new Error(String(n))}}finally{this.activeAbortController===r&&(this.activeAbortController=null)}}async readWithStallGuard(t){if(this.readStallTimeoutMs<=0)return t.read();let r=null,n=new Promise(o=>{r=this.setTimeoutFn(()=>o(Tn),this.readStallTimeoutMs)});try{return await Promise.race([t.read(),n])}finally{r!==null&&this.clearTimeoutFn(r)}}absorbChunkLine(t){t.restarted===!0&&(this.lastCursor=null,this.lastSnapshot=null,this.activeSeenIds=new Set,this.externalRemovalTombstones.clear()),typeof t.snapshot=="string"&&(this.lastSnapshot=t.snapshot),t.streamAnchor!==void 0&&this.absorbStreamAnchor(t.streamAnchor);let r=t.provisional===!0,n=!1;for(let o of t.items){if(!o||typeof o.reportHubId!="number"||this.externalRemovalTombstones.has(o.reportHubId))continue;r||this.activeSeenIds?.add(o.reportHubId);let a=this.itemMap.get(o.reportHubId);(!a||a.businessDate!==o.businessDate||a.sourceType!==o.sourceType)&&(this.itemMap.set(o.reportHubId,o),n=!0)}return n}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&En(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/ids-stream${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var su=6e4,ne=null,es=!1,Uo=new Set,ts={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},Vo=()=>{for(let e of Uo)e()},Wo=()=>{ne&&(ne.unsubscribe(),ne.client.dispose(),ne=null,Vo())},gr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??ur.apiBasePath;if(ne&&(ne.userKey!==e.userKey||ne.apiBasePath!==t)&&(ne.userKey!==e.userKey&&mr(),Wo()),!ne){let r=new yr({apiBasePath:t});ne={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(Vo)},lu(),r.start(),Vo();return}xn(ne)},xn=e=>{let t=e.client.getState();if(t.phase==="failed"){e.client.retry();return}t.phase==="complete"&&!t.isRevalidating&&t.completedAt!==null&&Date.now()-t.completedAt>su&&e.client.refresh()},lu=()=>{if(es||typeof document>"u"||typeof window>"u")return;es=!0;let e=()=>{ne&&xn(ne)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Ko=e=>{if(!(typeof window>"u")){if(!ne){gr(e);return}if(ne.userKey!==e.userKey){mr(),Wo(),gr(e);return}xn(ne)}},$o=()=>{typeof window>"u"||!ne||xn(ne)},Rr=e=>{ne?.client.applyExternalUpsert(e)},Cn=e=>{ne?.client.applyExternalRemoval(e)},In=()=>{ne?.client.retry()},Ln=()=>{ne?.client.resync()},zo=(e={})=>{ne?.client.refresh(e)},rs=()=>ne?.userKey,du=e=>(Uo.add(e),()=>Uo.delete(e)),cu=()=>ne?.client.getState()??ts,uu=()=>ts,lt=()=>iu(du,cu,uu);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Wo()});var Nt=Vt(1,"daily-report-sse-connection"),bu=Object.freeze({kind:"resyncing"}),ns={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},yu=1,os=Ho*3,gu=os+Ho,jo=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=H(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=lt(),[l,c]=fu({generation:0,minAnchorRevision:1,anchored:!1}),d=l.generation>0&&!l.anchored,y=d&&a==="complete"&&!i?s:null,g=_n(0),x=_n(null),I=_n(n);I.current=n;let m=_n(0);m.current=o===null?0:o.revision,Go(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(x.current=o.lastEventId,g.current=0,c({...l,anchored:!0}))},[l,o]),Go(()=>{if(!e||y===null)return;let{initialDelayMs:b,maxDelayMs:E,multiplier:w}=ns,_=An.random()*Math.min(E,b*w**g.current);Nt.warn(`SSE resync: the ids rescan gave up (${y.message}); rescanning in ${Math.round(_)} ms`);let F=An.setTimer(()=>{g.current+=1,Ln()},_);return()=>An.clearTimer(F)},[e,y]);let{status:R}=pu(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${Xi}=${encodeURIComponent(b)}`,initialLastEventId:x.current,withCredentials:!1,createEventSource:mu,runtime:An,backoff:ns,healthyOpenMs:gu,nativeRetryLimit:yu,giveUpAfterFailures:"never",terminalEvents:qi,heartbeat:{staleAfterMs:os,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(En(b.lastEventId)?x.current=b.lastEventId:Nt.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let E=JSON.parse(b.data),w=Ji.safeParse(E);if(!w.success){Nt.error("SSE Validation Error:",w.error.flatten(),"raw message:",E);return}if(w.data.type==="connected"){Nt.info("SSE Subscribe Ready");return}t(w.data)}catch(E){Nt.error("SSE Parse Error",E)}}}});return Go(()=>{if(R.kind==="faulted"){Nt.error("SSE connection faulted:",R.error);return}if(R.kind==="terminated")switch(R.terminalEvent){case"auth-required":I.current();return;case"forbidden":Nt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=m.current+1;c(E=>({generation:E.generation+1,minAnchorRevision:b,anchored:!1})),Ln();return}}},[R]),e&&d?bu:R};import{createContext as Ru,useCallback as as,useContext as hu,useEffect as Su,useMemo as vu,useRef as is,useState as Eu}from"react";import{jsx as ss,jsxs as ls}from"react/jsx-runtime";var Tu=8e3,xu="fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] items-center gap-2 rounded-lg border border-red-300 border-solid bg-red-600 px-[15px] py-[7px] text-sm text-white shadow-lg motion-safe:fade-in motion-safe:slide-in-from-bottom-2 motion-safe:animate-in motion-safe:duration-200 dark:border-red-500/60 dark:bg-red-700",Cu=h("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",Ua),ds=Ru({notifyError:()=>{}}),cs=()=>hu(ds),Yo=({children:e})=>{let{onError:t,labels:r}=H(),[n,o]=Eu(null),a=is(t);a.current=t;let i=is(null),s=as(d=>{let y=a.current;if(y){y(d);return}o(d)},[]),l=as(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);Su(()=>{if(n)return i.current=setTimeout(()=>o(null),Tu),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=vu(()=>({notifyError:s}),[s]);return ls(ds.Provider,{value:c,children:[e,n&&ls("div",{role:"alert","data-testid":"daily-report-error-banner",className:xu,children:[ss("span",{className:"font-medium",children:n.message}),ss("button",{type:"button","aria-label":r.close,onClick:l,className:Cu,children:"\u2715"})]})]})};import{jsx as _u}from"react/jsx-runtime";var Ze=Vt(1,"daily-report-action-context"),Au=Object.freeze([]),Xo=globalThis.__DailyReportActionContext??Iu(null);globalThis.__DailyReportActionContext=Xo;var _e=()=>{let e=Lu(Xo);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Ot=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},Zo=({children:e,user:t,initialItems:r=Au,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=H(),{notifyError:s}=cs(),l=Ae(s);l.current=s;let c=Ae(new Map),d=Ae(new Map),y=Ae(new Map),g=Ae(new Map),x=Ae(new Map),[I,m]=Dn(0),[R,b]=Dn(r),[E,w]=Dn(!1),_=Ae(!1),F=Ae(new Map),N=Ae(new Set),B=Ae(new Set),M=Ae(new Set),j=lt(),q=Ae(!1);q.current=j.phase==="complete"&&!j.isRevalidating;let z=dt(()=>rs()===(n??null),[n]),Q=dt(async()=>{Ze.info("[DailyReportActionProvider] Refetching data without page reload..."),zo(),m(p=>p+1),G.listeners.forEach(p=>{p(-1)})},[]),U=dt(async()=>{Ze.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),mr(),B.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let u=await fetch(`${o}/action`,{method:"POST",body:p});if(!u.ok){let v=await u.json().catch(()=>null);Ze.warn("[DailyReportActionProvider] Failed to clear server-side cache:",u.status,v)}}catch(p){Ze.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}z()&&(zo({forceRefresh:!0}),m(p=>p+1),G.listeners.forEach(p=>{p(-1)}))},[o,z]),X=Ae(new Map),K=Ae(()=>{}),V=dt((p,u)=>{let v=X.current,T=v.get(p);if(T){T.messages.push(u);return}let L={messages:[u],unsubscribe:()=>{},timer:setTimeout(()=>{let f=v.get(p);f&&(f.unsubscribe(),v.delete(p),Ze.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${f.messages.length} messages`))},3e4)};L.unsubscribe=Li(p,()=>{let f=v.get(p);if(f&&Ue(p,{ignoreExpiry:!0})){f.unsubscribe(),clearTimeout(f.timer),v.delete(p),Ze.info(`[SSE Queue] Replaying ${f.messages.length} messages for reportHubId=${p}`);for(let S of f.messages)K.current(S)}}),v.set(p,L)},[]),re=p=>{M.current.add(p),setTimeout(()=>{M.current.delete(p)},3e4)},ue=dt(p=>!!p&&M.current.has(p),[]),Z=dt((p,u)=>{u!==void 0&&Rr({reportHubId:p,businessDate:u??null}),b(v=>{let T=v.find(f=>f.reportHubId===p),L=u??T?.businessDate??null;return Po(v,{reportHubId:p,businessDate:L,sourceType:T?.sourceType})})},[]),W=()=>{n&&(_.current=!0,w(p=>!p))};qo(()=>{if(!n)return;let p=setTimeout(()=>{_.current||w(!0)},bi);return()=>clearTimeout(p)},[n]);let ie=dt(p=>{z()&&(B.current.add(p),Cn(p),b(u=>u.filter(v=>v.reportHubId!==p)))},[z]),[be,Ee]=Dn(r);if(r!==be){Ee(r);let p=new Map;for(let T of r)B.current.has(T.reportHubId)||p.set(T.reportHubId,T);let u=q.current;for(let T of R)p.has(T.reportHubId)||B.current.has(T.reportHubId)||u&&T.reportHubId>0||p.set(T.reportHubId,T);let v=Array.from(p.values());Yi(v)||v.sort(vn),b(v)}qo(()=>{if(q.current){let p=new Set(r.map(u=>u.reportHubId));for(let u of B.current)p.has(u)||B.current.delete(u)}},[r]);let Re=dt(p=>{if(z()&&!ue(p.clientTempId))switch(p.type){case"comment-add":{let{comment:u,reportHubId:v}=p,T=Ue(v,{ignoreExpiry:!0});if(T){if(T.postedComments.some(O=>O.id===u.id))return;let L=!1,f=c.current.get(v);if(f){for(let[O,P]of f.entries())if(P===u.content){f.delete(O),x.current.set(O,u.id),L=!0;break}}let S={...u,userName:u.userName||(L?Ot(t,i.unknownUser):i.unknownUser),createdAt:u.createdAt||new Date().toISOString(),isMine:L},D={...T,postedComments:[...T.postedComments,S].sort((O,P)=>new Date(O.createdAt||0).getTime()-new Date(P.createdAt||0).getTime())};_t(v,D),pr(v),fr(v),m(O=>O+1)}else V(v,p);break}case"comment-delete":{let{commentId:u,reportHubId:v}=p,T=Ue(v,{ignoreExpiry:!0});if(T){let L={...T,postedComments:T.postedComments.filter(f=>f.id!==u)};_t(v,L),pr(v),fr(v),m(f=>f+1)}else V(v,p);break}case"status-update":{let{statusType:u,value:v,reportHubId:T}=p,L=Ue(T,{ignoreExpiry:!0});if(u==="star")if(y.current.get(T)===v&&y.current.delete(T),L){let f={...L,isStarred:v};_t(T,f),m(S=>S+1)}else V(T,p);else if(u==="read")if(g.current.get(T)===v&&g.current.delete(T),L){let f={...L,isRead:v};_t(T,f),m(S=>S+1)}else V(T,p);break}case"report-delete":{let{reportHubId:u}=p;N.current.delete(u),B.current.add(u),Cn(u);let v=X.current.get(u);v&&(v.unsubscribe(),clearTimeout(v.timer),X.current.delete(u));let T=Ue(u,{ignoreExpiry:!0});T?.date&&(un(u,T.date),m(L=>L+1)),b(L=>L.filter(f=>f.reportHubId!==u));break}case"report-create":case"report-update":case"report-publish":{let{report:u}=p;Ai(u),(p.type==="report-create"||p.type==="report-publish")&&(N.current.add(u.reportHubId),Z(u.reportHubId,u.date)),m(v=>v+1);break}}},[ue,z,Z,t,V,i.unknownUser]);K.current=Re,qo(()=>()=>{for(let p of X.current.values())p.unsubscribe(),clearTimeout(p.timer);X.current.clear()},[]);let he=jo({isSseEnabled:E,onMessage:Re}),ye=async(p,u,v,T,L,f)=>{f?.skipLock||pr(p),L.onOptimistic?.();let S=T.clientTempId||crypto.randomUUID();re(S);let D=new FormData;D.append("intent",u),D.append("reportHubId",String(p)),typeof v=="string"&&D.append("businessDate",v),D.append("operationTimestamp",String(Date.now())),D.append("clientTempId",S);for(let[O,P]of Object.entries(T))O!=="clientTempId"&&D.append(O,P);try{let O=await fetch(`${o}/action`,{method:"POST",body:D,headers:{Accept:"application/json"}});if(!O.ok){let te=new Error(`Failed to ${u}`);throw Object.assign(te,{status:O.status}),te}let P=await O.json();if(P.status!=="OK"||u!=="create"&&String(P.reportHubId)!==String(p))throw new Error(`Invalid response for ${u}`);if(typeof P.clientTempId!="string"||P.clientTempId!==S)throw new Error(`Invalid clientTempId for ${u}`);if(!z())throw Ze.warn(`[executeAction] ${u} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${u}`);return await L.onSuccess?.(P)}catch(O){throw Ze.error(`${u} failed:`,O),z()&&(L.onFailure?.(),l.current({operation:u,message:i.operationFailed(u),cause:O})),O}finally{f?.keepLock||f?.skipLock||fr(p)}},Ke=async(p,u,v)=>{let T=Number(p),L=-1*Date.now(),f=ye(T,"addComment",v,{content:u,clientTempId:String(L)},{onOptimistic:()=>{c.current.has(T)||c.current.set(T,new Map),c.current.get(T)?.set(L,u),m(S=>S+1)},onSuccess:S=>{if(!S.newComment)throw new Error("No new comment returned");let D=S.newComment.id;x.current.set(L,D),c.current.get(T)?.delete(L);let O=Ue(T,{ignoreExpiry:!0});return O&&!O.postedComments.some(P=>P.id===D)&&Ve(T,{postedComments:[...O.postedComments,{...S.newComment,id:D,isMine:!0,userName:Ot(t,i.unknownUser)}],updatedAt:S.updatedAt}),D},onFailure:()=>{c.current.get(T)?.delete(L)}},{skipLock:!0}).finally(()=>F.current.delete(L));F.current.set(L,f),await f},nt=async(p,u,v)=>{let T=Number(p);d.current.has(T)||d.current.set(T,new Set),d.current.get(T)?.add(u),m(f=>f+1);let L=u;if(u<0){let f=x.current.get(u);if(f!==void 0)L=f;else{let S=F.current.get(u);if(!S)return;try{L=await S}catch{return}}}await ye(T,"deleteComment",v,{commentId:String(L)},{onSuccess:f=>{let S=typeof f.deletedCommentId=="string"?Number(f.deletedCommentId):L,D=Ue(T,{ignoreExpiry:!0});D&&(Ve(T,{postedComments:D.postedComments.filter(O=>O.id!==S),updatedAt:f.updatedAt}),Ii(S)),d.current.get(T)?.delete(u)},onFailure:()=>{d.current.get(T)?.delete(u)}},{skipLock:!0})},$e=async(p,u,v)=>{let T=Number(p);await ye(T,"toggleStar",v,{isStarred:String(u)},{onOptimistic:()=>{Ve(T,{isStarred:u}),y.current.set(T,u),m(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isStarred=="boolean"&&Ue(T,{ignoreExpiry:!0})&&(Ve(T,{isStarred:L.updatedStatus.isStarred,updatedAt:L.updatedAt}),m(S=>S+1)),y.current.delete(T)},onFailure:()=>{Ve(T,{isStarred:!u}),y.current.delete(T)}},{skipLock:!0})},ke=async(p,u,v)=>{let T=Number(p);await ye(T,"toggleRead",v,{isRead:String(u)},{onOptimistic:()=>{Ve(T,{isRead:u}),g.current.set(T,u),m(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isRead=="boolean"&&Ue(T,{ignoreExpiry:!0})&&(Ve(T,{isRead:L.updatedStatus.isRead,updatedAt:L.updatedAt}),m(S=>S+1)),g.current.delete(T)},onFailure:()=>{Ve(T,{isRead:!u}),g.current.delete(T)}},{skipLock:!0})},qe=Ae(ke);qe.current=ke;let ot=dt((p,u,v)=>qe.current(p,u,v),[]),Ie=async p=>{let u=-1*Date.now(),v=new Date().toISOString(),T={reportHubId:u,date:p,createdAt:v,author:Ot(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Ot(t,i.unknownUser),updatedBy:Ot(t,i.unknownUser),updatedAt:v,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};Ci(T,Date.now()+3e5,!1),b(L=>[{reportHubId:u,businessDate:p},...L]);try{let L=await ye(0,"create",p,{clientTempId:String(u)},{onSuccess:S=>S});if(L.clientTempId&&L.clientTempId!==String(u))throw Ze.warn(`[createReport] ID mismatch. req=${u}, res=${L.clientTempId}`),new Error("Optimistic ID mismatch");let f=Number(L.reportHubId);return Rr({reportHubId:f,businessDate:p}),pr(f),L.report&&(_t(f,L.report),m(S=>S+1)),b(S=>S.some(D=>D.reportHubId===f)?S.filter(D=>D.reportHubId!==u):S.map(D=>D.reportHubId===u?{...D,reportHubId:f}:D)),setTimeout(()=>fr(f),1e3),f}catch(L){throw Ze.error("[createReport] Failed or mismatched",L),b(f=>f.filter(S=>S.reportHubId!==u)),L}},at=async(p,u,v)=>{let T=Number(p);await ye(T,"update",v,{...u.title&&{title:u.title},...u.content&&{content:u.content}},{onSuccess:()=>{let L=Ue(T,{ignoreExpiry:!0});L&&(Ve(T,{subject:u.title??L.subject,content:u.content??L.content}),m(f=>f+1))}})},it=async(p,u)=>{let v=Number(p),T=Ue(v,{ignoreExpiry:!0}),L=T?.labels||[];await ye(v,"publish",u,{},{onOptimistic:()=>{if(T){let f=T.labels.filter(S=>S.name!==a);Ve(v,{labels:f}),m(S=>S+1)}},onSuccess:f=>{f.report&&(_t(v,f.report),m(S=>S+1)),u!==void 0&&Rr({reportHubId:v,businessDate:u})},onFailure:()=>{Ve(v,{labels:L}),m(f=>f+1)}},{skipLock:!0})},C=async(p,u)=>{let v=Number(p),T=R.find(L=>L.reportHubId===v);B.current.add(v),Cn(v),b(L=>L.filter(f=>f.reportHubId!==v));try{await ye(v,"delete",u,{},{onSuccess:L=>{un(v,u)}})}catch(L){if(L.status===404){un(v,u);return}if(!z())return;B.current.delete(v);let S=T===void 0?u:T.businessDate;S!==void 0&&Rr({reportHubId:v,businessDate:S}),T&&b(D=>D.some(O=>O.reportHubId===v)?D:Po(D,T))}};return _u(Xo.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:d,pendingStarUpdates:y,pendingReadUpdates:g,resolvedIdMap:x,version:I,items:R,isSseEnabled:E,toggleSse:W,sseStatus:he,addComment:Ke,deleteComment:nt,toggleStar:$e,toggleRead:ot,createReport:Ie,updateReport:at,publishReport:it,deleteReport:C,removeStaleItem:ie,refetchData:Q,clearCacheAndRefetch:U},children:e})};import{useCallback as ps,useMemo as Du,useRef as wu,useState as Nu}from"react";var us=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw Te("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},ms=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var hr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=_e(),{labels:c}=H(),d=c.unknownUser,[y,g]=Nu(null),x=ps(b=>e&&l(e.reportHubId,b,e.date),[e,l]),I=ps(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),m=wu([]);return{uiComments:Du(()=>{if(!e)return[];let b=us(e.externalComments,e.postedComments,r,d),E=o.current.get(e.reportHubId);E?.size&&(b=b.filter(_=>!E.has(_.id)));let w=n.current.get(e.reportHubId);if(w?.size&&t){let _=new Set(b.map(N=>N.id)),F=Ot(t,d);for(let[N,B]of w){if(E?.has(N)||_.has(N))continue;let M=a.current.get(N);M&&_.has(M)||b.some(j=>j.isMine&&j.content===B&&typeof j.id=="number"&&j.id>0)||b.push({id:N,authorName:F,content:B,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(m.current)?m.current:(m.current=b,b)},[e,t,r,d,o,n,a,i]),handleAddComment:I,handleDeleteComment:x,pendingDeleteId:y,setPendingDeleteId:g,resolvedIdMap:a.current}};import{jsx as Mu}from"react/jsx-runtime";var Ou={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},gt=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=Ou[e];return Mu(r,{...t})};import{memo as Vs,useId as Im,useMemo as Lm,useRef as Am}from"react";var fs=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var Qo="tile",vr=fs[Qo],ku=2,Sr=16,bs=5,ys=vr.maxWidth/ku,Pu=bs*(ys+Sr)-Sr,gs=e=>{let t=Math.min(bs,1+Math.floor((e+Sr)/(ys+Sr)));return Math.floor((Math.min(e,Pu)-(t-1)*Sr)/t)},Jo=`round(nearest, 100cqi * ${vr.maxHeight} / ${vr.maxWidth}, 1px)`,Rs=Object.freeze({aspectRatio:`${vr.maxWidth} / ${vr.maxHeight}`,height:Jo,contain:"strict"}),hs=Object.freeze({marginBlockEnd:`calc(round(up, ${Jo}, ${4}px) - ${Jo})`});var Hu="download",Fu="thumbnail",Bu="1",Gt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[Hu]:Bu})}`;case"thumbnail":return`${n}?${new URLSearchParams({[Fu]:r.variant})}`}};import{createContext as Uu,useContext as Vu}from"react";var Er=Uu(null),jt=()=>Vu(Er)===!1?-1:void 0,Ss=(e,t)=>{let{before:r,after:n}=fn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Gu,useContext as ju,useLayoutEffect as Yu,useMemo as qu,useState as Xu}from"react";import{flushSync as Zu}from"react-dom";import{flushSync as Wu}from"react-dom";var ea=new WeakMap,vs=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Ku=e=>{e.frame=null;let t=[...e.observations.values()].filter(vs);t.length!==0&&Wu(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},$u=(e,t)=>{for(let r of t){let n=e.observations.get(r.target);if(n===void 0)continue;let o=r.contentBoxSize[0].inlineSize;o!==0&&(n.observedTrackWidth=gs(o))}e.frame!==null||![...e.observations.values()].some(vs)||(e.frame=e.view.requestAnimationFrame(()=>Ku(e)))},zu=e=>{let t=ea.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] An attachment tile grid must belong to a document with a window to be measured");let n={view:r,observer:new r.ResizeObserver(o=>$u(n,o)),observations:new Map,frame:null};return ea.set(e,n),n},Es=(e,t)=>{let r=e.ownerDocument,n=zu(r);if(n.observations.has(e))throw new Error("[daily-report] An attachment tile grid is already observed");let o={onTrackWidth:t,observedTrackWidth:null,handedTrackWidth:null};return n.observations.set(e,o),n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),!(n.observations.size>0)&&(n.frame!==null&&n.view.cancelAnimationFrame(n.frame),n.observer.disconnect(),ea.delete(r)))}};import{jsx as xr,jsxs as Cs}from"react/jsx-runtime";var Tr="\u2026",Ju=Tr.codePointAt(0),wn="data-attachment-file-name",Qu=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,em=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,Is=Gu(null),Ls=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},Ts=(e,t,r,n)=>{let o=Array.from(e),a=0,i=o.length-1;for(;a<i;){let s=Math.ceil((a+i)/2);n(o.slice(0,s).join("")+t)<=r?a=s:i=s-1}return o.slice(0,a).join("")},tm=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=Ls(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${Ts(o,Tr,a,r)}${Tr}`;return r(n+i)<=t?n+i:`${Ts(n,Tr+i,t,r)}${Tr}${i}`},xs=new WeakMap,As=e=>{let t=xs.get(e);if(t!==void 0)return t;let r=e.createElement("canvas").getContext("2d");if(r===null)throw new Error("[daily-report] Attachment file names are fitted with a canvas 2D context, which this document cannot create");let n={context:r,font:"",measures:new Map};return xs.set(e,n),n},rm=(e,t)=>{let r=e.measures.get(t);if(r!==void 0)return r;let n=o=>(e.font!==t&&(e.context.font=t,e.font=t),e.context.measureText(o).width);return e.measures.set(t,n),n},_s=e=>{let t=new Set;for(let r of e.matchAll(Qu)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},nm=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:_s(t.fontFamily),measure:rm(As(e.ownerDocument),r)}},om=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,am=e=>{let t=new Set([Ju]);for(let r of e.querySelectorAll(`[${wn}]`)){let n=r.getAttribute(wn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},im=(e,t)=>{for(let r of e.split(",")){let n=em.exec(r.trim());if(n===null)return!0;let[,o,a]=n,i=Number.parseInt(o.replaceAll("?","0"),16),s=a===void 0?Number.parseInt(o.replaceAll("?","F"),16):Number.parseInt(a,16);for(let l of t)if(l>=i&&l<=s)return!0}return!1},ta=new WeakMap,Ds=e=>{let t=ta.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return ta.set(e,r),r},ws=(e,t)=>{let r=nm(e.container.querySelector(`[${wn}]`));e.fitted={trackWidth:t,nameFont:r};let n=Ds(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=lm(n)),e.applyFit({width:t,measure:r.measure})},sm=(e,t)=>{let r=t.map(o=>({families:_s(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(l=>Array.from(l.families).some(c=>a.nameFont.families.has(c)));if(i.length===0)continue;let s=am(o.container);i.some(l=>im(l.unicodeRange,s))&&(As(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&Zu(()=>{for(let[o,a]of n)ws(o,a)})},lm=e=>{let t=e.document.fonts,r=n=>{sm(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},dm=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Es(e,a=>ws(r,a)),o=Ds(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),ta.delete(o.document))}},Ns=({containerRef:e,children:t})=>{let[r,n]=Xu(null);return Yu(()=>{let o=e.current;return dm(o,i=>{n(s=>om(s,i)?s:i)})},[e]),xr(Is,{value:r,children:t})},Cr=({fileName:e,className:t,testId:r})=>{let n=ju(Is),o=qu(()=>n===null?null:tm(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=Ls(e);return Cs("span",{className:h("block min-w-0",t),title:e,"data-testid":r,[wn]:e,children:[o===null?Cs("span",{"aria-hidden":"true",className:"flex min-w-0",children:[xr("span",{className:"truncate",children:a}),i!==""&&xr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):xr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),xr("span",{className:"sr-only",children:e})]})};import fm from"lucide-react/dist/esm/icons/image-off.js";import{memo as bm,useCallback as oa,useEffect as ym,useLayoutEffect as gm,useRef as aa,useState as Rm}from"react";var Nn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Os=Nn.queueWaitMs+Nn.readMs+Nn.renderMs+Nn.transferMarginMs;var cm=Object.freeze({kind:"loaded"}),Ms=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,d=null,y=null,g=null,x=U=>(U!==null&&n.clearTimeout(U),null),I=()=>{y?.(),y=null},m=()=>{g?.(),g=null},R=U=>U===null||U.kind==="loaded"?0:U.kind==="failing"?U.failedAttempts:i.maxAttempts,b=U=>{s="cooling",d=n.setTimeout(j,U)},E=()=>{o.abortInFlight(),m();let U=R(r.get(t))+1;if(U>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:U,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},w=U=>{if(s==="loading"){if(c=x(c),!U){E();return}s="done",r.set(t,cm),m()}},_=()=>{c=null,w(!1)},F=()=>{s="loading",o.showActivity(!0),I(),c=n.setTimeout(_,i.loadTimeoutMs),o.grant()},N=()=>{l=null,s="queued",g=a.request(F)},B=()=>{l===null&&(l=n.setTimeout(N,i.settleMs))},M=U=>{if(o.showActivity(U),U){s==="watching"&&B();return}if(s==="queued"){m(),s="watching";return}l=x(l)},j=()=>{d=null,s="watching",o.showActivity(!1),y=n.observe(e,M)},q=()=>{let U=s==="loading";s="done",I(),l=x(l),c=x(c),d=x(d),o.showActivity(!1),U&&(o.abortInFlight(),g!==null&&o.reset()),m()},z=r.get(t);if(z?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:w,dispose:q};if(z?.kind==="exhausted"){if(n.now()-z.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:w,dispose:q};r.delete(t)}o.reset();let Q=z?.kind==="failing"?z.retryAt-n.now():0;return Q>0?b(Q):j(),{settle:w,dispose:q}};var um=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},ks=um(2);var mm=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},ra=mm(1024);var na=new WeakMap,pm=e=>{let t=na.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] A thumbnail frame must belong to a document with a window to be observed");let n=new WeakMap,a={observer:new r.IntersectionObserver(i=>{for(let s of i)n.get(s.target)?.onChange(s.isIntersecting)}),observations:n,observed:0};return na.set(e,a),a},Ps=(e,t)=>{let r=e.ownerDocument,n=pm(r);if(n.observations.has(e))throw new Error("[daily-report] A thumbnail frame is already observed");let o={onChange:t};return n.observations.set(e,o),n.observed+=1,n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),n.observed-=1,!(n.observed>0)&&(n.observer.disconnect(),na.delete(r)))}};import{jsx as Ir,jsxs as Cm}from"react/jsx-runtime";var hm={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},Sm="data-thumbnail-active",vm="data-daily-report-attachment-preview",Fs={[vm]:""},Em=Object.freeze({settleMs:250,loadTimeoutMs:Os,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Hs=e=>{let t=ra.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},Tm=()=>({limiter:ks,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:Ps,tuning:Em}),xm=(e,t,r,n)=>({grant:()=>r(o=>o.url!==e||o.status==="granted"||o.status==="loaded"?o:{url:e,status:"granted"}),reset:()=>r(o=>o.url!==e||o.status==="idle"?o:{url:e,status:"idle"}),exhausted:()=>r(o=>o.url!==e||o.status==="failed"?o:{url:e,status:"failed"}),abortInFlight:()=>{let o=n.current;o?.getAttribute("src")===e&&o.removeAttribute("src")},shows:()=>{let o=n.current;return o?.getAttribute("src")===e&&o.complete&&o.naturalWidth>0},showActivity:o=>{t.toggleAttribute(Sm,o)}}),Bs=bm(({thumbnailUrl:e,unavailableLabel:t})=>{let r=aa(null),n=aa(null),o=aa(null),[a,i]=Rm(()=>Hs(e));a.url!==e&&i(Hs(e)),gm(()=>{if(a.status==="failed")return;let d=n.current,y=a.status==="idle"?null:a.url;d.getAttribute("src")!==y&&(y===null?d.removeAttribute("src"):d.setAttribute("src",y))},[a]),ym(()=>{let d=r.current,y=Ms(d,e,ra,Tm(),xm(e,d,i,n));return o.current=y,()=>{o.current=null,y.dispose()}},[e]);let s=oa(d=>{d!==null&&(n.current=d)},[]),l=oa(()=>{i(d=>d.status==="granted"?{url:d.url,status:"loaded"}:d),o.current?.settle(!0)},[]),c=oa(()=>{o.current?.settle(!1)},[]);return Ir("span",{className:"block",children:Ir("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":hm[a.status],style:Rs,className:"relative block w-full",children:Ir("span",{"data-testid":"daily-report-attachment-thumbnail-skin",className:"absolute inset-0 flex items-center justify-center overflow-hidden rounded-lg bg-slate-100 after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-slate-900/10 after:ring-inset dark:bg-slate-800 dark:after:ring-white/10 [[data-daily-report-attachment-preview]:active_&]:after:ring-blue-500 dark:[[data-daily-report-attachment-preview]:active_&]:after:ring-blue-400 motion-safe:[[data-thumbnail-state=pending][data-thumbnail-active]_&]:animate-pulse [[data-thumbnail-state=pending]_&]:bg-slate-200 dark:[[data-thumbnail-state=pending]_&]:bg-slate-700 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-300 dark:[@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-400/60",children:a.status==="failed"?Cm("span",{className:`flex size-full flex-col items-center justify-center gap-1 px-2 text-center text-slate-600 text-xs dark:text-slate-400 ${Zr}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Ir(fm,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Ir("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:l,onError:c,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as me,jsxs as Je}from"react/jsx-runtime";var Us=1024,ia=["B","KB","MB","GB"],Ws="text-slate-500 text-sm line-through dark:text-slate-400",_m=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=Us&&r<ia.length-1;)t/=Us,r+=1;return r===0?`${t} ${ia[r]}`:`${t.toFixed(1)} ${ia[r]}`},Ks=({attachment:e,labels:t,className:r})=>Je("span",{className:r,children:[_m(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),sa=({href:e,children:t,...r})=>{let n=jt();return me("a",{href:e,...r,tabIndex:n,children:t})},$s=({downloadUrl:e,label:t,fileName:r})=>Je(sa,{href:e,className:h("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",J),"data-testid":"daily-report-attachment-download",children:[t," ",me("span",{className:"sr-only",children:r})]}),Dm=Vs(({attachment:e,apiBasePath:t,labels:r})=>{let n=me(Bs,{thumbnailUrl:Gt(t,e.id,{kind:"thumbnail",variant:Qo}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Je("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Je("div",{className:"flex min-w-0 flex-col gap-2",children:[n,me(Cr,{fileName:e.fileName,className:Ws,testId:"daily-report-attachment-name"})]}):Je(sa,{href:Gt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 flex-col gap-2 rounded-lg",J),"data-testid":"daily-report-attachment-link",...Fs,children:[n,me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Je("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:hs,children:[me(Ks,{attachment:e,labels:r,className:"truncate"}),!o&&me($s,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),wm=Vs(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Je("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[Je("div",{className:"flex min-w-0 flex-col",children:[n?me(Cr,{fileName:e.fileName,className:Ws,testId:"daily-report-attachment-name"}):me(sa,{href:Gt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 rounded-sm",J),"data-testid":"daily-report-attachment-link",children:me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),me(Ks,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&me($s,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),Nm=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=Am(null);return me(Ns,{containerRef:o,children:me("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:me("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>me(Dm,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},On=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=H(),o=Im(),{tileAttachments:a,rowAttachments:i}=Lm(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Je("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[me(He,{level:gt[n],id:o,className:h("m-0",It),children:r.attachments}),Je("div",{className:"flex flex-col gap-4",children:[a.length>0&&me(Nm,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&me("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>me(wm,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as jm}from"@aiquants/swipe-overlay";import{useCallback as ca,useEffect as Gs,useId as Ym,useRef as ua,useState as qm}from"react";var Lr=e=>e.isComposing||e.keyCode===229,Mn=e=>({key:e.key,keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,defaultPrevented:e.defaultPrevented,isComposing:e.nativeEvent.isComposing,target:e.target});var Om={kind:"hold"},Mm=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),km=(e,t)=>{let r=e.getAttribute("role");return r!==null&&Mm.has(r)&&e!==t&&e.contains(t)},Ar=e=>e.key==="Escape"&&!e.defaultPrevented&&!Lr(e),zs=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Lr(e))return null;let r=e.target;if(!(fe(r)&&t.contains(r)))return null;let n=ki(t);if(n.length===0)return Om;let{before:o,within:a,after:i}=fn(t,r);return e.shiftKey?o.some(s=>!km(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};import{Fragment as Pm,jsx as Hm}from"react/jsx-runtime";var Se=({render:e})=>{let t=jt();return Hm(Pm,{children:e(t)})};import Fm from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Bm,useId as Um,useRef as Vm,useState as Wm}from"react";import{jsx as Rt,jsxs as kn}from"react/jsx-runtime";var la="data-comment-id",Pn="data-comment-delete-button",Hn="data-comment-delete-slot",Km=h(De,Ka),$m="relative flex h-5 items-center",zm=h(Le,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",J),Gm=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,da=Bm(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,d]=Wm(!1),{labels:y}=H(),g=Um(),x=Vm(null),I=Gm(e.id,o,l),m=()=>{let b=x.current;b!==null&&s(b),a(null),d(!0),typeof e.id=="number"&&n?.(e.id)},R=b=>{if(!I)return;let E=b.relatedTarget;fe(E)&&b.currentTarget.contains(E)||a(null)};return kn("li",{[la]:e.id,"data-deleted":c?"true":void 0,className:h("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",c&&"hidden",I?"z-50":"z-0 hover:z-10"),children:[kn("div",{className:"mb-1 flex items-center justify-between",children:[Rt("div",{className:h("font-semibold text-xs",ms(e.color)),children:le(e.authorName)}),kn("div",{className:"flex items-center gap-2",children:[e.createdAt&&Rt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:se(e.createdAt)}),e.isMine&&!e.isLegacy&&kn("div",{[Hn]:e.id,className:$m,onBlur:R,children:[Rt(Se,{render:b=>Rt("button",{ref:x,type:"button",tabIndex:b,className:Km,title:y.commentDelete,"aria-label":y.commentDelete,"aria-expanded":I,"aria-controls":I?g:void 0,[Pn]:e.id,onClick:()=>i(e.id,I),children:Rt(Fm,{"aria-hidden":"true",className:I?ge.deletePending:ge.delete})})}),I&&Rt(Se,{render:b=>Rt("button",{id:g,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:zm,onClick:m,children:y.commentDeleteConfirm})})]})]})]}),Rt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});da.displayName="DailyReportPostedComment";import{jsx as je,jsxs as qs}from"react/jsx-runtime";var Xm="data-daily-report-comment-section",Zm="data-daily-report-comment-heading",Jm=h(st,J),Ys=(e,t)=>e>0||t,Qm=h("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",J),ep=h("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",J),js=e=>e.querySelector(`[${Pn}][aria-expanded="true"]`),tp=(e,t,r)=>{let n=[...e.querySelectorAll(`[${Pn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${la}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return Ys(i,r)?{kind:"heading"}:{kind:"report"}},rp=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:l,onSectionRemoved:c})=>{let d=ua(null),y=jm(),g=Ym(),x=o!==null,I=ca(()=>{let b=d.current,E=b===null?null:js(b),w=E===null?null:E.closest(`[${Hn}]`),_=b===null?null:Ne(b);a(null),E!==null&&w!==null&&_!==null&&w.contains(_)&&E.focus({preventScroll:!0})},[a]);Gs(()=>{if(x)return y({id:g,onEscape:b=>Ar(b)?(I(),!0):!1})},[x,y,g,I]),Gs(()=>{let b=d.current;if(!x||b===null)return;let E=b.ownerDocument,w=_=>{let F=js(b)?.closest(`[${Hn}]`);F!=null&&fe(_.target)&&F.contains(_.target)||a(null)};return E.addEventListener("pointerdown",w,!0),()=>E.removeEventListener("pointerdown",w,!0)},[x,a]);let m=ca((b,E)=>{E?I():a(b)},[I,a]),R=ca(b=>{let E=d.current;if(E===null)return;let w=tp(E,b,s);if(w.kind==="report"){c();return}let _=w.kind==="trash"?w.button:l.current;if(_===null)throw new Error("[daily-report] the comment section's heading is not attached");_.focus({preventScroll:!0})},[s,l,c]);return e.length===0?null:je("ul",{ref:d,className:"space-y-2",children:e.map(b=>je(da,{comment:b,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:m,onBeforeHide:R,resolvedIdMap:i},b.id))})},Fn=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=H(),a=ua(null);return Ys(r.comments.length,r.canComment)?qs("div",{[Xm]:"",className:h("flex flex-col gap-2",e),children:[je(He,{ref:a,level:gt[o],tabIndex:-1,[Zm]:"",className:Jm,children:n.comments}),je(rp,{...r,headingRef:a}),t]}):null},Bn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=qm(!1),a=ua(null),{labels:i}=H();return qs("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let d=new FormData(l.currentTarget).get("content")?.trim();if(d&&r){o(!0),a.current?.reset();try{await r(d)}catch{if(a.current){let y=a.current.elements.namedItem("content");y&&(y.value=d)}}finally{o(!1)}}},children:[je("input",{type:"hidden",name:"intent",value:"addComment"}),je("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&je("input",{type:"hidden",name:"businessDate",value:t}),je(Se,{render:l=>je("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:Qm,autoComplete:"off"})}),je(Se,{render:l=>je("button",{type:"submit",tabIndex:l,className:ep,disabled:n,children:i.commentSend})})]})};import{useEffect as cp,useRef as up,useState as ma}from"react";import{Slot as np}from"@radix-ui/react-slot";import{cva as op}from"class-variance-authority";import*as Xs from"react";import{jsx as ip}from"react/jsx-runtime";var ap=op(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${J}`,{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-solid border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ct=Xs.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>ip(n?np:"button",{className:h(ap({variant:t,size:r,className:e})),ref:a,...o}));ct.displayName="Button";import{jsx as sp}from"react/jsx-runtime";function Zs({className:e,type:t,...r}){return sp("input",{type:t,"data-slot":"input",className:h(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...r})}import*as Js from"@radix-ui/react-label";import{jsx as lp}from"react/jsx-runtime";function _r({className:e,...t}){return lp(Js.Root,{"data-slot":"label",className:h("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as dp}from"react/jsx-runtime";function Qs({className:e,...t}){return dp("textarea",{"data-slot":"textarea",className:h(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...t})}import{jsx as We,jsxs as Un}from"react/jsx-runtime";var mp=e=>{e.preventDefault()},Vn=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=_e(),{labels:i}=H(),[s,l]=ma(e.subject??""),[c,d]=ma(e.content??""),[y,g]=ma(!1),x=up(e.reportHubId);cp(()=>{e.reportHubId!==x.current&&(l(e.subject??""),d(e.content??""),x.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let I=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{g(!1)}},m=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{g(!1)}},R=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return Un("form",{className:"space-y-4 p-1",onSubmit:mp,children:[Un("div",{className:"space-y-2",children:[We(_r,{htmlFor:R,children:i.formTitle}),We(Se,{render:E=>We(Zs,{ref:n,id:R,value:s,onChange:w=>l(w.target.value),placeholder:i.formTitlePlaceholder,disabled:y,tabIndex:E})})]}),Un("div",{className:"space-y-2",children:[We(_r,{htmlFor:b,children:i.formContent}),We(Se,{render:E=>We(Qs,{id:b,value:c,onChange:w=>d(w.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:y,tabIndex:E})})]}),Un("div",{className:"flex justify-end gap-2",children:[t&&We(Se,{render:E=>We(ct,{type:"button",variant:"outline",onClick:t,disabled:y,tabIndex:E,children:i.formCancel})}),We(Se,{render:E=>We(ct,{type:"button",variant:"secondary",onClick:I,disabled:y,tabIndex:E,children:i.formSave})}),We(Se,{render:E=>We(ct,{type:"button",onClick:m,disabled:y,tabIndex:E,children:i.formPublish})})]})]})};import Sp from"lucide-react/dist/esm/icons/check.js";import vp from"lucide-react/dist/esm/icons/pencil.js";import Ep from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as el}from"react/jsx-runtime";var Kn=24,tl=2,pp=20,Wn=5,fp=3,bp=()=>{let e=Math.cos(2*Math.PI/Wn)/Math.cos(Math.PI/Wn),t=Array.from({length:2*Wn},(g,x)=>{let I=-Math.PI/2+x*Math.PI/Wn,m=x%2===0?1:e;return{x:m*Math.cos(I),y:m*Math.sin(I)}}),r=t.map(g=>g.x),n=t.map(g=>g.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(pp-tl)/(a-o),c=Kn/2-l*(o+a)/2,d=Kn/2-l*(i+s)/2,y=g=>String(Number(g.toFixed(fp)));return t.map(g=>`${y(c+l*g.x)},${y(d+l*g.y)}`).join(" ")},yp=bp(),Yt=({filled:e})=>el("svg",{viewBox:`0 0 ${Kn} ${Kn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:tl,strokeLinejoin:"round",className:e?ge.starOn:ge.starOff,children:el("polygon",{points:yp})});import{Fragment as gp,jsx as $n,jsxs as Rp}from"react/jsx-runtime";var qt=({config:e,id:t,className:r})=>$n("span",{id:t,className:h(Ga,e.badgeClassName,r),children:e.name===void 0?e.label:Rp(gp,{children:[$n("span",{"aria-hidden":"true",children:$n("abbr",{title:e.name,children:e.label})}),$n("span",{className:"sr-only",children:e.name})]})});import{jsx as rl}from"react/jsx-runtime";var zn=24,hp=6,Xt=({className:e})=>rl("svg",{viewBox:`0 0 ${zn} ${zn}`,"aria-hidden":"true",className:h(ge.read,e),children:rl("circle",{cx:zn/2,cy:zn/2,r:hp,fill:"currentColor"})});import{jsx as Qe,jsxs as ol}from"react/jsx-runtime";var de=({label:e,classNames:t,valueId:r,children:n})=>ol("div",{className:t.field,children:[Qe("dt",{className:t.label,children:e}),Qe("dd",{id:r,className:h("m-0",t.value),children:n})]}),ht={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},nl=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return ol("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Qe(de,{label:r.author,classNames:ht,children:le(e.author)}),Qe(de,{label:r.createdAt,classNames:ht,children:se(e.createdAt)}),Qe(de,{label:r.updatedBy,classNames:ht,children:le(e.updatedBy)}),Qe(de,{label:r.updatedAt,classNames:ht,children:se(e.updatedAt)}),Qe(de,{label:r.businessDate,classNames:ht,children:se(e.date)}),t!==null&&Qe(de,{label:r.visitTime,classNames:ht,children:t}),n&&Qe(de,{label:r.category,classNames:ht,children:n}),o&&Qe(de,{label:r.creationCategory,classNames:ht,children:o})]})};import{jsx as oe,jsxs as sl}from"react/jsx-runtime";var Gn={field:h(Le,"gap-1 whitespace-nowrap bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-100"),label:"text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:""},Tp={field:h(Le,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},al={field:h(Le,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},xp=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,il=({text:e})=>xp.test(e)?oe("time",{dateTime:e,children:e}):e,ll=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:d,markerIds:y,labels:g})=>{let x=r?g.starRemove:g.starAdd,I=t?g.markUnread:g.markRead,m=e.category?.trim(),R=e.creationCategory?.trim();return sl("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[oe(cr,{id:y.attachments,count:e.attachments.length,label:g.attachments}),c?oe(qt,{id:y.source,config:c}):null,oe(Se,{render:b=>oe("button",{type:"button",onClick:a,tabIndex:b,className:De,title:x,"aria-label":x,"data-detail-star-button":e.reportHubId,children:oe(Yt,{filled:r})})}),oe(Se,{render:b=>oe("button",{type:"button",onClick:o,tabIndex:b,className:De,title:I,"aria-label":I,"data-detail-read-button":e.reportHubId,children:t?oe(Sp,{className:ge.read}):oe(Xt,{})})}),i&&oe(Se,{render:b=>oe("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:De,title:g.edit,"aria-label":g.edit,children:oe(vp,{className:ge.edit})})}),n&&oe(Se,{render:b=>oe("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:De,title:g.deleteReport,"aria-label":g.deleteReport,children:oe(Ep,{className:ge.delete})})}),sl("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[oe(de,{label:g.id,classNames:Tp,children:e.reportHubId}),oe(de,{label:g.businessDate,classNames:Gn,children:oe(il,{text:se(e.date)})}),oe(de,{label:g.author,classNames:Gn,children:le(e.employeeName)}),oe(de,{label:g.visitTime,classNames:Gn,children:le(d)}),oe(de,{label:g.updatedAt,classNames:Gn,children:oe(il,{text:se(e.updatedAt)})}),m&&oe(de,{label:g.category,classNames:al,children:m}),R&&oe(de,{label:g.creationCategory,classNames:al,children:R})]})]})};import{useCallback as Xp,useContext as wl,useLayoutEffect as Ra,useRef as Nl}from"react";import{startTransition as Vp,useCallback as ee,useLayoutEffect as Mt,useMemo as Al,useRef as Et,useState as Mr,useSyncExternalStore as Wp}from"react";import{flushSync as _l}from"react-dom";var Zt=e=>({owner:e,focusIndex:null}),pa=Object.freeze({owner:null,focusIndex:null}),dl=(e,t)=>{if(e.length===0)return pa;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},cl=(e,t)=>{switch(t.kind){case"focusIn":return Zt(t.row);case"focusOut":return t.to==="outside"?pa:Zt(e);case"pointerPress":return t.at==="outside"?pa:Zt(e);case"listChanged":{if(e===null)return Zt(e);let r=ce(t.items,e.reportHubId,e.index);return r===-1?dl(t.items,e.index):Zt(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?Zt(e):dl(t.items,t.selection.index)}};var jn=e=>e.matches(":focus-visible");var Cp="data-daily-report-keyboard-focus",St={capture:!0},ul=e=>{let t=i=>{e.toggleAttribute(Cp,fe(i)&&jn(i))},r=i=>t(i.target),n=i=>{fe(i.relatedTarget)&&e.contains(i.relatedTarget)||t(null)},o=()=>t(null);e.addEventListener("focusin",r,St),e.addEventListener("keydown",r,St),e.addEventListener("focusout",n,St),e.addEventListener("pointerdown",o,St);let a=Ne(e);return t(a!==null&&e.contains(a)?a:null),()=>{e.removeEventListener("focusin",r,St),e.removeEventListener("keydown",r,St),e.removeEventListener("focusout",n,St),e.removeEventListener("pointerdown",o,St),t(null)}};var Ip='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Lp=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Ap=Lp.map(e=>`[role="${e}"]`).join(", "),_p=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Dp=new Set(["Enter"," "]),wp=new Map([["Home","exitBefore"],["End","exitAfter"]]),fa=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return wp.get(e.key)??null;let r=_p.get(e.key);return r!==void 0?r:Dp.has(e.key)&&t.rowActivation?"activate":null},ml=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},pl=(e,t,r)=>{let n=fa(e,r);if(n===null||e.defaultPrevented||Lr(e)||t===null||!fe(e.target)||!t.contains(e.target))return null;let o=ft(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:ml(e.target,Ip,t)||ml(e.target,Ap,t)?null:n};var Yn={kind:"stay"},qn=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},fl=e=>Math.floor(.875*e),vt=(e,t)=>({kind:"move",index:e,align:t}),Dr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Np=({index:e,count:t,viewport:r,focusedRowTop:n,heightOf:o})=>{let a=o(e),i=n+a,s={index:e+1,top:i};for(let l=e+1;l<t;l++){let c=o(l);if(a+=c,a>r)break;s={index:l,top:i},i+=c}return s},Op=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>{let o=n(e),a=r,i={index:e-1,top:r-n(e-1)};for(let s=e-1;s>=0;s--){let l=n(s);if(a-=l,o+=l,o>t)break;i={index:s,top:a}}return i},Mp=(e,t,r)=>{let{index:n,count:o,viewport:a,focusedRowTop:i,heightOf:s}=t,l=i+s(n);switch(e){case"previous":{if(n===0)return Yn;if(r==="top")return vt(n-1,"top");let c=s(n-1);return vt(n-1,Dr(i-c,c,a,-1))}case"next":return n===o-1?Yn:r==="top"?vt(n+1,"top"):vt(n+1,Dr(l,s(n+1),a,1));case"first":return vt(0,"top");case"last":return vt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,fl(a))};if(n===o-1)return Yn;let c=Np(t);return vt(c.index,Dr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,fl(a))};if(n===0)return Yn;let c=Op(t);return vt(c.index,Dr(c.top,s(c.index),a,-1))}}},kp=({index:e,focusedRowTop:t,heightOf:r},n)=>hl(n,{index:e,offsetPx:-t},r),gl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=Mp(e,o,n);if(l.kind==="stay")break;l.kind==="reveal"?(i+=l.delta,o={...o,focusedRowTop:o.focusedRowTop-l.delta}):l.align==="none"?o={...o,index:l.index,focusedRowTop:kp(o,l.index)}:(a={index:l.index,align:l.align},i=0,o={...o,index:l.index,focusedRowTop:l.align==="top"?0:o.viewport-o.heightOf(l.index)})}return{index:o.index,alignment:a,scrollDelta:i}},Rl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Dr(r,n(e),t,1),hl=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},wr=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=qn(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:hl(t,s,i),heightOf:i}},bl=1,Sl=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Nr(o,n,t,r);return{start:Math.max(0,o.index-bl),end:Math.min(t-1,a+bl)}},Nr=(e,t,r,n)=>{let o=qn(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},vl=(e,t)=>e.top<t.top?e.top-t.top:e.bottom>t.bottom?Math.min(e.bottom-t.bottom,e.top-t.top):0,yl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),El=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(yl(t,n,o))return t.reportHubId;if(yl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var ya=1,Or=2,ba=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?ya:0)|(n===t||n===r?Or:0),Pp=e=>{if(bn(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},Hp=(e,t)=>{let r=e.closest(`[${gn}]`);return r!==null&&r!==e&&wt(r)===t&&Ne(e)===r},Tl=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=!1,a=null,i=new Map,s=new Map,l=null,c=new Map,d=m=>ba(r,m),y=m=>{let R=s.get(m);if(R===void 0)return;let b=(d(m)&Or)!==0?"0":"-1";R.getAttribute("tabindex")!==b&&R.setAttribute("tabindex",b)},g=m=>{let R={...r};m(r);let b=r,E=new Set([R.selectedId,R.tabStopId,R.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let w of E){if(w===null)continue;let _=ba(R,w),F=ba(b,w);if(_===F)continue;((_^F)&Or)!==0&&y(w);let N=i.get(w);if(N!==void 0)for(let B of[...N])B()}},x=m=>{o=!0;try{m.focus({preventScroll:!0})}finally{o=!1}},I=m=>{let R=e();R!==null&&(n=null,Pp(R)&&x(m))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:d,setTabStopId:m=>{g(R=>{R.tabStopId=m})},settleSelection:(m,R)=>{g(b=>{b.selectedId=m,b.tabStopId=R,b.arrivingId=null})},arrive:m=>{g(R=>{R.arrivingId=m})},subscribe:(m,R)=>{let b=i.get(m)??new Set;return b.add(R),i.set(m,b),()=>{b.delete(R),b.size===0&&i.get(m)===b&&i.delete(m)}},registerFocusTarget:(m,R)=>{if(s.set(m,R),y(m),n===m){I(R);return}a===null||a.reportHubId!==m||(bn(R)||Hp(R,m))&&x(R)},unregisterFocusTarget:(m,R)=>{s.get(m)===R&&s.delete(m)},requestFocus:m=>{n=m;let R=s.get(m);R!==void 0&&I(R)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:m=>{a=m},restoreFocus:m=>{if(a===null||a.reportHubId!==m)return;let R=s.get(m);R===void 0||!bn(R)||x(R)},holdBodiesOutside:m=>{l=m},isBodyHeldAt:m=>l!==null&&(m<l.start||m>l.end),registerHeldBody:(m,R,b)=>{let E={indexHint:R,release:b};return c.set(m,E),()=>{c.get(m)===E&&c.delete(m)}},releaseHeldBodiesWithin:(m,R)=>{if(m!==null)for(let[b,{indexHint:E,release:w}]of[...c]){let _=R(b,E);_>=m.start&&_<=m.end&&w()}}}};var Ye={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},ga=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),Fp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),xl=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Bp=new Map(Object.values(Ye).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),Cl=e=>{let t=Bp.get(e);if(t===void 0)throw new Error(`[daily-report] a repeat step must be one of REPEAT_STEPS; got the ${e.axis} axis with ${e.amount}`);return t},Up=(e,t,r)=>e==="row"||e==="page"?t+r:r,Il=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:Cl(e)}),Ll=(e,t)=>{switch(t.kind){case"repeat":{let{step:r}=t;if(e.axis!==r.axis)throw new Error(`[daily-report] a ${r.axis} repeat cannot continue a ${e.axis} stream`);return e.fence==="open"?(e.fence="immediate",Cl(r)):(e.pending=Up(e.axis,e.pending,r.amount),ga)}case"frame":{if(e.fence==="open")return ga;if(e.fence==="immediate")return e.fence="flush",Fp;if(e.pending===0)return e.fence="open",ga;let r=e.pending;return e.pending=0,{apply:{axis:e.axis,amount:r},flush:!0,requestFrame:!0,ended:!1}}case"keyup":return e.pending===0?xl:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return xl}};var Kp=Object.freeze({kind:"frame"}),$p=Object.freeze({kind:"keyup"}),zp=Object.freeze({kind:"cancel"}),Gp=Object.freeze({previous:Object.freeze({kind:"repeat",step:Ye.previous}),next:Object.freeze({kind:"repeat",step:Ye.next}),pageBackward:Object.freeze({kind:"repeat",step:Ye.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:Ye.pageForward}),first:Object.freeze({kind:"repeat",step:Ye.first}),last:Object.freeze({kind:"repeat",step:Ye.last}),activate:Object.freeze({kind:"repeat",step:Ye.activate})}),jp=(e,t)=>{if(e==="first"||e==="last")return{command:e,count:1};let r=Math.abs(t);return e==="row"?{command:t>0?"next":"previous",count:r}:{command:t>0?"pageForward":"pageBackward",count:r}},Yp=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),qp=e=>{let t=wt(e),r=$t(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},Xn=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Wp(r,n,n);return{isCurrent:(o&ya)!==0,isTabStop:(o&Or)!==0}},Zn=(e,t,r)=>{let[n,o]=Mr(()=>!e.isBodyHeldAt(r));return Mt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Vp(a),i},[e,t,r,n]),n},Dl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:l,rowActivation:c})=>{let[d]=Mr(()=>Tl({getContainer:()=>n.current,initialSelectedId:t})),y=Et({items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c}),g=Et(null),x=Et(null),[I,m]=Mr(null),R=Et(null),b=Et(null),[E,w]=Mr(null),_=Et(!1),F=Et(null),[N,B]=Mr(0),M=Al(()=>({id:t,indexHint:t===null?null:Hi(I,t)}),[t,I]),j=Et(M);Mt(()=>{y.current={items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c},j.current=M},[e,r,s,l,c,M]);let q=ee((C,p)=>{let u=x.current;if(u!==null&&u.items===C&&u.reportHubId===p)return u.index;let v=ce(C,p,u!==null&&u.reportHubId===p?u.index:null);return v!==-1&&(x.current={items:C,reportHubId:p,index:v}),v},[]),z=ee((C,p)=>{x.current={items:y.current.items,reportHubId:C,index:p},m(u=>u!==null&&u.reportHubId===C&&u.index===p?u:{reportHubId:C,index:p})},[]),Q=ee(C=>{let p=d.getFocusOwner();if(p===null)return null;let u=ce(C,p.reportHubId,p.index);return u===-1?null:{reportHubId:p.reportHubId,index:u}},[d]),U=ee(C=>{let p=y.current.items,u=C===null?null:{reportHubId:C,index:q(p,C)};return El(p,Q(p),u,g.current,F.current)},[q,Q]),X=ee(()=>{d.setTabStopId(U(d.getSelectedId()))},[d,U]),K=ee(C=>{let p=d.getFocusOwner();p===C||p!==null&&C!==null&&p.reportHubId===C.reportHubId&&p.index===C.index||(d.setFocusOwner(C),_.current||X())},[d,X]),V=ee(C=>{let p=cl(d.getFocusOwner(),C);K(p.owner),p.focusIndex!==null&&(R.current=p.focusIndex,d.requestFocus(p.owner.reportHubId))},[d,K]);Mt(()=>{d.settleSelection(t,U(t))},[d,t,e,N,U]),Mt(()=>{let C=o.current;if(C!==null)return ul(C)},[o]),Mt(()=>{let C=n.current;if(C===null)return;let p=C.ownerDocument,u=v=>{let T=n.current,L=v.target;V({kind:"pointerPress",at:T!==null&&fe(L)&&T.contains(L)?"inside":"outside"})};return p.addEventListener("pointerdown",u,{capture:!0}),()=>p.removeEventListener("pointerdown",u,{capture:!0})},[n,V]),Mt(()=>{let C=d.pendingFocusId();C!==null&&ce(e,C,R.current)===-1&&d.cancelFocusRequest(),V({kind:"listChanged",items:e})},[d,e,V]);let re=ee(C=>{V({kind:"removed",reportHubId:C,selection:x.current,items:y.current.items})},[V]),ue=ee((C,p,u)=>{let{items:v,onSelect:T,rowSizing:L,arrowAlign:f}=y.current,S=a.current;if(T===null||S===null)return null;let D=ce(v,u.reportHubId,u.index);if(D===-1)return null;let O=wr(S,D,v.length,L);if(O===null)return null;let P=gl(C,p,O,f),te=v[P.index],ze=P.index!==D;if(ze){d.arrive(te.reportHubId),F.current=te.reportHubId,R.current=P.index,_.current=!0;try{d.requestFocus(te.reportHubId)}finally{_.current=!1}}try{_l(()=>{ze&&(d.pendingFocusId()===null&&d.settleSelection(te.reportHubId,te.reportHubId),T(te.reportHubId,P.index)),P.alignment!==null&&i.toIndex(P.alignment.index,{align:P.alignment.align}),P.scrollDelta!==0&&i.by(P.scrollDelta),ze&&(z(te.reportHubId,P.index),B(yo=>yo+1));let ar=Sl(S,v.length,L);d.holdBodiesOutside(ar),d.releaseHeldBodiesWithin(ar,(yo,wd)=>ce(v,yo,wd))})}finally{d.holdBodiesOutside(null)}return ze?{reportHubId:te.reportHubId,index:P.index}:{reportHubId:u.reportHubId,index:D}},[d,a,i,z]),Z=ee(C=>{let{items:p,onSelect:u}=y.current;if(u===null)return;let v=ce(p,C.reportHubId,C.index);v!==-1&&(u(C.reportHubId,v),z(C.reportHubId,v))},[z]),W=ee(C=>{let p=n.current,u=p===null?null:Ne(p),v=p!==null&&u!==null&&p.contains(u)?br(ft(u,p),y.current.items):null;return v===null?C.origin:v},[n]),ie=ee((C,p)=>{let u=W(C);if(p.axis==="activate"){Z(u);return}let v=jp(p.axis,p.amount),T=ue(v.command,v.count,u);T!==null&&(C.origin=T)},[W,Z,ue]),be=ee(C=>{b.current=null,C.frame!==0&&C.view.cancelAnimationFrame(C.frame),w(null)},[]),Ee=ee((C,p,u)=>{let{apply:v}=p;v!==null&&(p.flush?_l(()=>ie(C,v)):ie(C,v)),b.current===C&&(p.ended?be(C):p.requestFrame&&(C.frame=C.view.requestAnimationFrame(u)))},[ie,be]),Re=ee((C,p,u)=>{Ee(C,Ll(C.state,p),u)},[Ee]),he=ee(()=>{let C=b.current;C!==null&&(C.frame=0,Re(C,Kp,he))},[Re]),ye=ee(()=>{let C=b.current;C!==null&&Re(C,$p,he)},[Re,he]),Ke=ee(()=>{let C=b.current;C!==null&&Re(C,zp,he)},[Re,he]),nt=ee((C,p,u)=>{w(j.current);let{state:v,effects:T}=Il(Ye[C]),L={state:v,origin:p,view:u,frame:0};b.current=L,Ee(L,T,he)},[Ee,he]);Mt(()=>()=>{let C=b.current;b.current=null,C!==null&&C.frame!==0&&C.view.cancelAnimationFrame(C.frame)},[]);let $e=ee(C=>{let p=b.current,u=p!==null&&C.repeat?fa(C,y.current):null;if(p!==null&&u!==null&&u!=="exitBefore"&&u!=="exitAfter"&&Ye[u].axis===p.state.axis){C.preventDefault(),Re(p,Gp[u],he);return}let{items:v,onSelect:T,rowSizing:L,rowActivation:f}=y.current,S=n.current,D=T===null?null:pl(Mn(C),S,{rowActivation:f});if(d.cancelFocusRequest(),ye(),D===null||S===null)return;if(D==="exitBefore"||D==="exitAfter"){let te=Ss(S,D==="exitBefore"?"before":"after");if(te===null)return;C.preventDefault(),te.focus();return}let O=Ne(S),P=br(ft(O!==null&&S.contains(O)?O:C.target,S),v);if(P!==null){if(D!=="activate"){let te=a.current;if(te===null||wr(te,P.index,v.length,L)===null)return}if(C.preventDefault(),C.repeat){nt(D,P,Ge(S));return}D==="activate"?Z(P):ue(D,1,P)}},[d,n,a,he,Re,ye,nt,Z,ue]),ke=ee(()=>{ye()},[ye]),qe=ee(C=>{let p=n.current,u=C.target,v=ft(u,p);if(V({kind:"focusIn",row:v===null?null:qp(v)}),d.isMovingFocus())return;let T=a.current;if(p===null||T===null||!fe(u)||!jn(u))return;let L=v===null?null:v.closest('[role="list"]');if(v===null||L===null)return;let f=L.getBoundingClientRect(),S=v.getBoundingClientRect(),D=S.height<=f.height?S:Yp(u.getBoundingClientRect(),Bt),O=vl(D,f),P=T.getViewportSize();O===0||!(P>0&&f.height>0)||i.by(O*P/f.height)},[d,n,a,i,V]),ot=ee(C=>{let p=n.current,u=C.relatedTarget,v=fe(u)?p?.contains(u)?"view":"outside":"nowhere";v!=="view"&&Ke(),V({kind:"focusOut",to:v})},[n,Ke,V]),Ie=ee(()=>{d.cancelFocusRequest(),Ke()},[d,Ke]),at=ee(C=>{g.current={visibleStartIndex:C.visibleStartIndex,visibleEndIndex:C.visibleEndIndex},F.current=null,X()},[X]),it=Al(()=>({onKeyDown:$e,onKeyUp:ke,onPointerDownCapture:Ie,onWheelCapture:Ie,onTouchStartCapture:Ie,onFocus:qe,onBlur:ot}),[$e,ke,Ie,qe,ot]);return{cursor:d,containerProps:it,handleRangeChange:at,selection:M,settledSelection:E===null?M:E,resolveSelectedIndex:q,rememberSelection:z,focusAfterRemoval:re}};import{jsx as ha}from"react/jsx-runtime";var Zp=h(pt,zr,Gr,$r,"h-full"),Jp="h-full w-full",Ol=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=Xn(a,e),c=wl(yt),d=wl(bt),y=Zn(a,e,c),g=Nl(null),x=Nl(null),I=Xp(m=>(g.current=m,a.registerFocusTarget(e,m),()=>{g.current=null,a.unregisterFocusTarget(e,m)}),[a,e]);return Ra(()=>{let m=g.current,R=m===null||!y?null:m.firstElementChild,b=R instanceof HTMLElement?R:null,E=x.current;E!==null&&E.body===b||(E!==null&&E.stop(),x.current=b===null?null:{body:b,stop:o(b)})}),Ra(()=>()=>{x.current?.stop(),x.current=null},[]),Ra(()=>{a.restoreFocus(e)},[a,e,n]),ha(Er.Provider,{value:l,children:ha("div",{ref:I,className:Zp,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":d,"aria-labelledby":y&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":y&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!y?!0:void 0,"aria-current":s?"true":void 0,children:y?i:ha("div",{...Pe,className:Jp})})})};import{jsx as $,jsxs as ve}from"react/jsx-runtime";var tf=h("flex w-full flex-col",Xe,Yr,ir),rf=h(Xe,ir),nf=h("rounded-2xl",ir),of=h("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",ir),xe="bg-slate-200 dark:bg-slate-700",af=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},sf=()=>ve("div",{...Pe,className:rf,children:[ve("div",{className:"mb-4 flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-20 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-28 rounded-full",xe)})]}),ve("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"space-y-4",children:[$("div",{className:h("h-5 w-40 rounded",xe)}),$("div",{className:h("h-5 w-56 rounded",xe)}),$("div",{className:h("h-24 rounded-xl",xe)})]}),ve("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[$("div",{className:h("mb-2 h-4 w-24 rounded",xe)}),$("div",{className:h("mb-2 h-4 w-28 rounded",xe)}),$("div",{className:h("h-4 w-32 rounded",xe)})]})]}),ve("div",{className:"space-y-4",children:[$("div",{className:h("h-4 w-24 rounded",xe)}),ve("div",{className:"flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)})]}),ve("div",{className:"space-y-2",children:[$("div",{className:h("h-16 rounded-xl",xe)}),$("div",{className:h("h-16 rounded-xl",xe)})]})]})]}),lf=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=Dt(e.reportHubId,e.businessDate),{removeStaleItem:c}=_e(),{draftLabelName:d,sourceTypeConfigs:y}=H(),[g,x]=kl(!1),[I,m]=kl(!1),R=kr(!1),b=kr(!1),E=kr(!1),w=kr(!1);Ml(()=>{if(l){w.current=!0;return}!(a||s||i)&&w.current&&e.reportHubId>0&&c(e.reportHubId)},[a,s,l,i,e.reportHubId,c]);let _=a?.labels.some(W=>W.name===d),F=n&&a?.userId===n,N=Jt(()=>{b.current=!0,R.current=!1,x(!0)},[]),B=Jt(()=>{E.current=!0,x(!1),m(!0)},[]),M=Jt(()=>{E.current=!0,x(!1)},[]),j=Jt(W=>{W===null||!b.current||(b.current=!1,W.focus())},[]),q=Jt(W=>{W===null||!E.current||(E.current=!1,W.focus())},[]);ef(()=>{g||(E.current=!1)},[g]),Ml(()=>{a&&F&&_&&!g&&!I?(x(!0),R.current=!0):a&&!_&&g&&R.current&&(x(!1),R.current=!1)},[a,F,_,g,I]);let z=Jt(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),Q=Qp(),U=Sa(()=>({heading:`${Q}-heading`,state:`${Q}-state`,attachments:`${Q}-attachments`,source:`${Q}-source`}),[Q]),X=a!==null&&a.attachments.length>0,K=a===null?void 0:At(a.sourceType,y),V=[U.state,...X?[U.attachments]:[],...K!==void 0?[U.source]:[]].join(" "),re=!i&&a!==null&&!g?{kind:"card",ids:U,describedBy:V}:{kind:"label",label:se(e.businessDate)},ue=!i&&a===null&&s,Z=i?"error":a===null?s?"loading":"missing":g?"editing":"resolved";return $(Ol,{itemId:e.reportHubId,name:re,isBusy:ue,bodyKind:Z,observeRowHeight:t,cursor:o,children:i?$(df,{itemId:e.reportHubId}):a?g?$("div",{...Pe,className:nf,children:$(Vn,{report:a,onCancel:B,onPublishSuccess:M,titleInputRef:j})}):$(Fl,{item:e,report:a,sourceConfig:K,textIds:U,onCommentAdded:r,userId:n,onEdit:F?N:void 0,editButtonRef:q,onCommentSectionRemoved:z}):$(sf,{})})},Hl=Pl(lf),Fl=Pl(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:l})=>{let c=kr(null),{toggleStar:d,toggleRead:y,pendingStarUpdates:g,pendingReadUpdates:x,deleteReport:I,user:m}=_e(),{uiComments:R,handleAddComment:b,handleDeleteComment:E,pendingDeleteId:w,setPendingDeleteId:_,resolvedIdMap:F}=hr(t,m,a),{labels:N,headingLevel:B}=H(),M=gt[B],j=tn(t.sourceType,r),q=async ie=>{await b(ie),o?.(e.reportHubId)},z=g.current.get(t.reportHubId),Q=z===void 0?t.isStarred:z,U=x.current.get(t.reportHubId),X=U===void 0?t.isRead:U,K=!!(a&&t.userId===a),V=async()=>{try{await y(t.reportHubId,!X,t.date)}catch{}},re=async()=>{try{await d(t.reportHubId,!Q,t.date)}catch{}},ue=async()=>{confirm(N.confirmDelete)&&await I(t.reportHubId,t.date)},Z=Sa(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
-
`).trim():"",[t.content]),W=Sa(()=>{let ie=t.visitTimeFrom?.trim(),be=t.visitTimeTo?.trim();return ie&&be?`${ie} - ${be}`:ie||be||null},[t.visitTimeFrom,t.visitTimeTo]);return ve("div",{...Pe,onDoubleClick:i,className:tf,children:[$(He,{level:B,id:n.heading,className:"sr-only",children:`${se(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),$("span",{id:n.state,className:"sr-only",children:N.rowState({isRead:X,isStarred:Q})}),ve("div",{className:"flex flex-col gap-4",children:[$(ll,{report:t,sourceConfig:r,isRead:X,isStarred:Q,isMine:K,onToggleRead:V,onToggleStar:re,onEdit:i,editButtonRef:s,onDelete:ue,visitTimeDisplay:W,markerIds:n,labels:N}),ve("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"flex flex-col gap-4",children:[ve("div",{className:"grid gap-4 sm:grid-cols-2",children:[ve("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.customer}),$("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),ve("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.subject}),$("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),Z&&ve("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.content}),$("div",{className:h("whitespace-pre-wrap",jr),children:Z})]}),t.interviewers.length>0&&ve("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.interviewers}),$("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ie=>$("li",{className:h(Le,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:af(ie,N)},JSON.stringify([ie.name,ie.affiliation])))})]}),$(On,{attachments:t.attachments}),$(Fn,{comments:R,canComment:j,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:E,pendingDeleteId:w,onPendingDeleteIdChange:_,resolvedIdMap:F,onSectionRemoved:l}),j&&$("div",{className:"mt-auto",ref:c,children:$(Bn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:q})})]}),$(nl,{report:t,visitTimeDisplay:W,labels:N})]})]})]})});Fl.displayName="DailyReportResolvedItem";var df=({itemId:e})=>{let{labels:t}=H();return $("div",{...Pe,className:of,children:$("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Kl,useId as Rf,useMemo as $l,useRef as hf}from"react";import{useCallback as cf,useLayoutEffect as Bl,useMemo as Ul,useRef as va}from"react";var uf=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},mf=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},pf=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},ff=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?mf(e.index,a,n.rowHeight,r.length):pf(e.index,a,qn(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Nr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},bf=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ce(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Vl=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=va(null),a=va(e),i=va(r),s=cf(()=>{let c=t.current,d=c===null?-1:c.getScrollPosition(),y=c===null||!(d>0)?null:c.getScrollAnchor(),g=a.current,x=y===null?void 0:g[y.index],I=c===null?0:c.getViewportSize();o.current=y===null||x===void 0||!(I>0)?null:{reportHubId:x.reportHubId,index:y.index,offsetPx:y.offsetPx,lastVisibleIndex:Nr(y,I,g.length,i.current),recordedAt:d}},[t]),l=Ul(()=>({toIndex:(c,d)=>{let y=t.current;y!==null&&(y.scrollToIndex(c,d),s())},by:c=>{let d=t.current;d!==null&&(d.scrollBy(c),s())},resizeRow:(c,d)=>{let y=t.current;y!==null&&(y.updateItemSize(c,d),s())}}),[t,s]);return Bl(()=>{let c=a.current;a.current=e;let d=o.current,y=t.current;if(c===e||d===null||y===null||n())return;let g=ff(d,y.getScrollPosition(),c,i.current,y.getViewportSize());if(g===null){o.current=null;return}let x=ce(e,g.reportHubId,g.index),I=x===-1?bf(c,e,g):x;if(I===-1){o.current=null;return}if(I===g.index&&!uf(c,e,g.index,g.lastVisibleIndex)){o.current=g;return}y.scrollToIndex(I,{align:"top",offset:-g.offsetPx}),o.current={reportHubId:e[I].reportHubId,index:I,offsetPx:g.offsetPx,lastVisibleIndex:Nr({index:I,offsetPx:g.offsetPx},y.getViewportSize(),e.length,r),recordedAt:y.getScrollPosition()}},[e,t,r,n]),Bl(()=>{i.current=r},[r]),Ul(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:l}),[s,l])};import{useCallback as yf}from"react";var gf=20,Wl=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>yf(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:l=>o.current.findIndex(c=>c.reportHubId===l),getReportItem:l=>o.current[l],getReportIds:(l=gf)=>o.current.slice(0,l).map(c=>c.reportHubId),revealIndex:(l,c)=>n.toIndex(l,c)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as Sf}from"react/jsx-runtime";var Jn=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=hf(null),s=Kl(_=>(i.current=_,()=>{i.current=null}),[]),{handleRangeChange:l,handleScrollAdjust:c,scroller:d}=Vl({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:y,...g}=Dl({...a,containerRef:e,handleRef:i,scroller:d}),x=Wl({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:d,itemsRef:r}),{labels:I}=H(),m=Rf(),R=a.onSelect!==null,b=Kl(_=>{y(_),l(),o(_)},[y,l,o]),E=$l(()=>({role:"list","aria-label":I.title,"aria-describedby":R?m:void 0}),[I.title,R,m]),w=$l(()=>R?Sf("span",{id:m,className:"sr-only",children:I.listKeyboardHelp}):null,[R,m,I.listKeyboardHelp]);return{...g,handleRangeChange:b,handleScrollAdjust:c,attachVirtualScroll:s,handleRef:i,scroller:d,attachScrollContainer:x,contentProps:E,keyboardHelp:w}};import{Fragment as _f,jsx as xt,jsxs as Af}from"react/jsx-runtime";var Gl={pointerDragInputs:dn,wheelSpeedMultiplier:rn,inertiaOptions:zt(!1),enableKeyboardNavigation:!1},Tf={...Gl,inertiaOptions:zt(!0)},zl="daily-report-detail-list",xf=h("relative w-full",Jr,Xr),Cf=h(Be,"relative"),If=300,Ta=e=>{let t=Oe(null),[r,n]=Qn(null),o=yn(t),a=Rn(r),i=Ce(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return xt("div",{ref:i,className:qr,children:o===null?null:xt(Lf,{...e,viewportHeight:o,reducedMotion:a})})},Lf=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=Qn(()=>{let f=o?.current;if(!f||f.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!f.topItem)return{initialScrollAnchor:void 0,restored:!0};let S=e.findIndex(D=>D.reportHubId===f.topItem?.reportHubId);return S!==-1?{initialScrollAnchor:{index:S,offsetPx:f.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:f.topItem.index,offsetPx:0},restored:!0}}),c=Oe(l),d=Oe(r??null),y=Oe(o?.current.measuredHeights??new Map),g=Oe(null),x=mn(),I=wo(),[m]=Qn(hn),R=Oe(null),b=Oe(null),E=Oe(e),w=Oe(n);Ef(()=>{E.current=e,w.current=n},[e,n]);let _=Oe(null),[F,N]=Qn(0),B=Oe(null),M=e.length,j=Ce(f=>f>=M?on:e[f],[e,M]),q=Ce(f=>{let S=y.current.get(j(f).reportHubId);return S===void 0?hi:S},[j]),z=Ce(f=>j(f).reportHubId,[j]),Q=Ea(()=>({kind:"measured",heightOf:q}),[q]),U=Ce((f,S)=>{_.current={reportHubId:f,index:S},N(D=>D+1),w.current?.(f)},[]),X=Ce((f,S)=>{if(M===0)return;let D=Math.max(0,f),O=Math.min(M-1,S);if(D>O)return;let P=new Set;for(let te=D;te<=O;te++){let ze=j(te);if(ze.businessDate&&P.add(ze.businessDate),P.size>=yi)break}P.forEach(te=>{I(te)})},[j,M,I]),K=Ce(f=>{if(M===0)return;let{renderingStartIndex:S,renderingEndIndex:D,visibleStartIndex:O}=f,P=j(O);P.businessDate&&m.setLabel(se(P.businessDate)),X(S,D),X(D+1,D+nn),X(S-nn,S-1)},[j,M,X,m]),V=Ce(()=>B.current!==null,[]),{cursor:re,containerProps:ue,handleRangeChange:Z,handleScrollAdjust:W,attachVirtualScroll:ie,handleRef:be,scroller:Ee,attachScrollContainer:Re,contentProps:he,keyboardHelp:ye,resolveSelectedIndex:Ke,rememberSelection:nt}=Jn({items:e,selectedId:r??null,onSelect:n===void 0?null:U,containerRef:g,rootRef:g,testId:zl,itemsRef:E,rowSizing:Q,arrowAlign:"top",rowActivation:!0,isViewRevealPending:V,onRangeChange:K}),$e=Ce((f,S)=>{if(be.current===null)return!1;let D=E.current,O=S!==null&&S.reportHubId===f?ce(D,f,S.index):Ke(D,f);return O===-1?!1:(c.current&&(c.current=!1,f===d.current)||S!==null&&S.reportHubId===f&&S.index===O||Ee.toIndex(O,{align:"top"}),!0)},[be,Ke,Ee]);Tt(()=>{let f=_.current;_.current=null,B.current=null,r!=null&&($e(r,f)||(B.current=r))},[r,$e]),Tt(()=>{let f=B.current;f!==null&&$e(f,null)&&(B.current=null)},[e,$e]),Tt(()=>{let f=o?.current;f&&(f.anchorReportHubId=r??null)},[r,o]),Tt(()=>{_.current=null},[F]);let ke=Oe(null),qe=Ce(()=>{be.current&&(ke.current=be.current);let f=o?.current,S=ke.current;if(f&&S){let O=S.getScrollAnchor(),P=O?E.current[O.index]:void 0;O&&P&&(f.topItem={reportHubId:P.reportHubId,index:O.index,offsetPx:O.offsetPx})}let D=g.current;D&&(D.toggleAttribute(Ft,!0),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{D.toggleAttribute(Ft,!1),b.current=null},150))},[be,o]),ot=Ce(f=>xt(Sn,{...f,store:m}),[m]);Tt(()=>{let f=g.current;if(!f)return;let S=()=>{m.setWheelScrollActive(!0),R.current&&clearTimeout(R.current),R.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),R.current=null},an)};return f.addEventListener("wheel",S,{passive:!0}),()=>{f.removeEventListener("wheel",S),R.current&&clearTimeout(R.current)}},[m]);let Ie=Oe(null),at=Ce(f=>{for(let S of f){let D=S.target.parentElement,O=D===null?null:wt(D),P=D===null?null:$t(D),te=S.borderBoxSize[0];if(O===null||P===null||te===void 0)continue;let ze=te.blockSize+2*Bt;if(y.current.get(O)===ze)continue;let ar=ce(E.current,O,P-1);ar!==-1&&(y.current.set(O,ze),Ee.resizeRow(ar,ze))}},[Ee]),it=Ce(f=>{Ie.current===null&&(Ie.current=new ResizeObserver(at));let S=Ie.current;return S.observe(f),()=>S.unobserve(f)},[at]);Tt(()=>()=>{Ie.current?.disconnect(),Ie.current=null},[]),Tt(()=>{M!==0&&X(0,Math.min(M-1,nn))},[M,X]);let C=Oe(null),p=Ce(f=>{let S=ce(E.current,f,null);S!==-1&&(C.current!==null&&clearTimeout(C.current),C.current=setTimeout(()=>{C.current=null;let D=ce(E.current,f,S);D!==-1&&Ee.toIndex(D,{align:"bottom"})},If))},[Ee]);Tt(()=>()=>{C.current!==null&&clearTimeout(C.current)},[]);let u=Ce(f=>{if(!w.current)return;let S=ft(f.target,g.current);if(S===null||Vi(f.target,S))return;let D=br(S,E.current);D!==null&&(nt(D.reportHubId,D.index),U(D.reportHubId,D.index))},[U,nt]),v=Ce((f,S)=>xt(yt.Provider,{value:S,children:xt(Hl,{item:f,observeRowHeight:it,onCommentAdded:p,userId:t,cursor:re})},f.reportHubId),[it,p,t,re]),T=Ea(()=>({...ln,renderThumbOverlay:ot}),[ot]),L=Ea(()=>xt(bt.Provider,{value:M,children:xt(vf,{ref:ie,itemCount:M,getItem:j,getItemKey:z,getItemHeight:q,viewportSize:a,initialScrollAnchor:s,overscanCount:sn,scrollBarOptions:T,behaviorOptions:i?Tf:Gl,onRangeChange:Z,onScrollAdjust:W,onScroll:qe,testId:zl,className:xf,locale:x.locale,labels:x.labels,contentProps:he,children:v})}),[ie,M,j,z,q,a,i,s,T,Z,W,qe,x.locale,x.labels,he,v]);return xt(_f,{children:Af("div",{ref:Re,className:Cf,...ue,onClick:u,children:[ye,L]})})};import Yl from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as Df,useRef as jl,useState as wf}from"react";var Pr=(e,t=250)=>{let[r,n]=wf(e),o=jl(e),a=jl(!0);return Df(()=>{if(a.current){a.current=!1,o.current=e,n(e);return}let i=o.current;if(i===e)return;let s=null,l=null,c=d=>{l===null&&(l=d);let y=Math.min(1,Math.max(0,(d-l)/t)),g=1-(1-y)**3,x=Math.round(i+(e-i)*g);o.current=x,n(x),y<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as eo,jsxs as to}from"react/jsx-runtime";var Hr=()=>{let e=lt(),{labels:t}=H(),r=Pr(e.loadedCount),n=Pr(e.totalCount??0);if(e.phase==="streaming"){let o=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return to("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:h(Le,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[eo("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),o!==null?t.streamProgressRatio(r,n,o):t.streamProgressCount(r)]})}return e.phase==="retrying"?to("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:h(Le,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[eo(Yl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?to("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:h(Le,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,eo("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>In(),className:h("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",J),children:t.streamRetry})]}):e.isRevalidating?to("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-500 text-xs dark:text-slate-400",children:[eo(Yl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as hd,PanelGroup as Yb,PanelResizeHandle as qb}from"@aiquants/resize-panels";import{VirtualScroll as Xb}from"@aiquants/virtualscroll";import{useCallback as rt,useEffect as co,useLayoutEffect as wa,useMemo as uo,useRef as or,useState as po}from"react";import{useSyncExternalStore as Nf}from"react";var ql="(max-width: 639px)",Of=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(ql);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},Mf=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(ql).matches:!1,kf=()=>!1,Xl=()=>Nf(Of,Mf,kf);import{SwipeCloseGuardContext as nb,useOverlayEscapeStack as ob,useSwipeGuardState as ab,useSwipeToDismissOverlay as ib,useTapClick as sb,useTransitionDisplay as lb}from"@aiquants/swipe-overlay";import{useCallback as oo,useEffect as tr,useId as _a,useLayoutEffect as sd,useRef as tt,useState as ao}from"react";import{createContext as Pf,useMemo as Hf}from"react";var Zl=Object.freeze({id:null,indexHint:null}),ro=Pf(Object.freeze({selected:Zl,settled:Zl})),Fr=(e,t)=>{let{id:r,indexHint:n}=t;return Hf(()=>{if(r===null)return null;let o=ce(e,r,n);return o===-1?null:e[o]},[e,r,n])};import Ff from"lucide-react/dist/esm/icons/check.js";import Bf from"lucide-react/dist/esm/icons/pencil.js";import Uf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Vf,useCallback as kt,useContext as Wf,useDeferredValue as Kf,useEffect as xa,useId as rd,useLayoutEffect as Ia,useMemo as $f,useRef as Pt,useState as Ca}from"react";import*as ut from"@radix-ui/react-tabs";import*as Fe from"react";import{jsx as Br}from"react/jsx-runtime";var Jl=Fe.createContext(null),Ql=e=>{let t=Fe.useContext(Jl);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},ed=(e,t)=>`${e}-trigger-${t}`,td=(e,t)=>`${e}-panel-${t}`,Ur=Fe.forwardRef(({value:e,children:t,...r},n)=>{let o=Fe.useId(),a=Fe.useMemo(()=>({baseId:o,value:e}),[o,e]);return Br(ut.Root,{ref:n,value:e,...r,children:Br(Jl,{value:a,children:t})})});Ur.displayName=ut.Root.displayName;var Vr=Fe.forwardRef(({className:e,...t},r)=>Br(ut.List,{ref:r,className:h("inline-flex",e),...t}));Vr.displayName=ut.List.displayName;var Wr=Fe.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Ql("TabsTrigger");return Br(ut.Trigger,{ref:n,value:t,...r,id:ed(o,t),"aria-controls":td(o,t),className:h(`${Qa} ${J}`,e)})});Wr.displayName=ut.Trigger.displayName;var Qt=Fe.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Ql("TabsContent"),s=t===i;return Br("div",{ref:o,role:"tabpanel",id:td(a,t),"aria-labelledby":ed(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:h(`mt-2 data-[state=inactive]:hidden ${J}`,e),children:s?r:null})});Qt.displayName="TabsContent";import{Fragment as rb,jsx as k,jsxs as et}from"react/jsx-runtime";var ad=h(It,"w-24 shrink-0"),nd={field:"flex items-baseline",label:ad,value:"flex-1"},zf={field:"flex min-w-0 flex-1 items-baseline",label:ad,value:"wrap-break-word min-w-0 flex-1"},Gf={field:"flex flex-col gap-1",label:It,value:""},jf={field:"flex items-center gap-1",label:It,value:""},od=h("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",go,Ba,Fa),Yf=h("flex flex-col gap-1",Ro),qf=h("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",J),Xf=500,La=e=>{let t=e,r=new Set;return{isDwelling:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Zf=(e,t,r,n,o,a)=>{let i=Pt(null),s=e?.reportHubId;Ia(()=>{i.current=null},[s]),xa(()=>{n||(i.current=null)},[n]);let l=kt(async(c,d)=>{d||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return xa(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let c=null,d=()=>{c!==null&&clearTimeout(c),c=o.isDwelling()?setTimeout(()=>l(e,!0),Xf):null};d();let y=o.subscribe(d);return()=>{y(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},Aa="article",Jf=["article","relations"],Qf=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},eb=h("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",Xe),id=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=H(),a=rd(),i=rd(),[s,l]=Ca(Aa),{selected:c,settled:d}=Wf(ro),y=Fr(e,c),g=Fr(e,Kf(d)),x=y===null?null:y.reportHubId,m=(g===null?null:g.reportHubId)===x,[R]=Ca(()=>La(m));return Ia(()=>{R.set(m)},[R,m]),k("aside",{"data-testid":"daily-report-side-pane","data-report-id":y?.reportHubId,"data-displayed-report-id":g?.reportHubId,"aria-busy":m?void 0:!0,className:eb,children:g===null?k("div",{className:h("flex h-full flex-1 items-center justify-center text-center",Ut),children:k("p",{className:Zr,children:o.selectPrompt})}):k(no,{item:g,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:R,userId:r,onReportDeleted:n},g.reportHubId)})},no=Vf(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[d,y]=Ca(!1),{draftLabelName:g,labels:x,sourceTypeConfigs:I,headingLevel:m}=H(),{report:R,error:b,isLoading:E}=Dt(e.reportHubId,e.businessDate),w=Pt(null),_=Pt(null),F=Pt(null),N=Pt(!1),B=Pt(!1),M=Pt(!1);xa(()=>{if(!R)return;let W=R.labels.some(ie=>ie.name===g);R.reportHubId!==F.current?(F.current=R.reportHubId,W?(y(!0),N.current=!0):(y(!1),N.current=!1)):!W&&d&&N.current&&(y(!1),N.current=!1)},[R,d,g]);let j=!!(l&&R?.userId===l),q=kt(()=>{B.current=!0,N.current=!1,y(!0)},[]),z=kt(()=>{M.current=!0,y(!1)},[]),Q=kt(W=>{W===null||!B.current||(B.current=!1,W.focus())},[]),U=kt(W=>{W===null||!M.current||(M.current=!1,W.focus())},[]),X=kt(()=>{_.current?.focus({preventScroll:!0})},[]);Ia(()=>{d||!M.current||(M.current=!1,_.current?.focus())},[d]);let K=kt(()=>{setTimeout(()=>{let W=w.current;W!==null&&W.scrollTo({top:W.scrollHeight,behavior:zi(W)})},100)},[]),V=se(e.businessDate),re=R===null?null:le(R.employeeName),ue=E||!R,Z=R===null?void 0:At(R.sourceType,I);return et(rb,{children:[et("div",{className:Yf,children:[k("dl",{className:"m-0",children:k(de,{label:x.businessDate,classNames:Gf,children:k(He,{ref:_,level:m,id:t,tabIndex:-1,className:qf,children:V})})}),et("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[k("dl",{className:"m-0",children:k(de,{label:x.author,classNames:jf,valueId:r,children:ue?k("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),Z?k(qt,{config:Z,className:"ml-2"}):null]})]}),et(Ur,{value:n,onValueChange:W=>o(Qf(W)),className:"flex min-h-0 flex-1 flex-col",children:[k("div",{className:Ro,children:k(Vr,{"aria-label":x.reportTabList,className:h(Za,"grid grid-cols-2 gap-1"),children:Jf.map(W=>k(Wr,{value:W,children:W==="article"?x.tabArticle:x.tabRelations},W))})}),k(Qt,{ref:w,value:"article",className:od,children:d?R?k(Vn,{report:R,onCancel:z,onPublishSuccess:z,titleInputRef:Q}):k("p",{className:Ut,children:x.loading}):k(tb,{report:R,sourceConfig:Z,isLoading:E,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:K,userId:l,onEdit:j?q:void 0,editButtonRef:U,onReportDeleted:c,onCommentSectionRemoved:X})}),k(Qt,{value:"relations",className:od,children:k("p",{className:Ut,children:x.relationsEmpty})})]})]})});no.displayName="DailyReportSidePaneContent";var er=({className:e="w-32"})=>k("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),tb=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:c,onEdit:d,editButtonRef:y,onReportDeleted:g,onCommentSectionRemoved:x})=>{let{toggleStar:I,toggleRead:m,deleteReport:R,user:b}=_e(),{labels:E,headingLevel:w}=H(),_=gt[w],{uiComments:F,handleAddComment:N,handleDeleteComment:B,pendingDeleteId:M,setPendingDeleteId:j,resolvedIdMap:q}=hr(e,b,c),{handleToggleRead:z}=Zf(e,r,a,i,s,m),Q=e!==null&&tn(e.sourceType,t),U=async Z=>{await N(Z),l?.()},X=$f(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
|
|
1
|
+
import Kd from"lucide-react/dist/esm/icons/paperclip.js";var Ud="data-daily-report-row-surface",Pe={[Ud]:""},Ut="data-daily-report-scrolling",yt=8,lr="h-[calc-size(auto,round(up,size,4px))]",gt="p-[8px]",Va="pr-[8px]",qr="contain-size contain-layout contain-style",Wa="contain-strict",J="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Ka="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",vo="scrollbar-thin [scrollbar-gutter:stable]",To=`-m-[4px] overflow-hidden p-[4px] ${vo}`,$a="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",Xr="rounded-[calc(var(--radius-2xl)+8px)]",Zr="outline-none [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-400 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-2 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-blue-500 [&[aria-current=true]>:where([data-daily-report-row-surface])]:shadow-transparent forced-colors:[&[aria-current=true]]:outline-2 forced-colors:[&[aria-current=true]]:outline-solid forced-colors:[&[aria-current=true]]:-outline-offset-8 forced-colors:[&[aria-current=true]]:outline-[Highlight] forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-2 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-solid forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:-outline-offset-8 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-[Highlight]",za="[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-2 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 [:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark:[:where([data-daily-report-keyboard-focus])_&]:has-[>[data-daily-report-button]:focus-visible]:outline-blue-400 has-[>[aria-current=true]]:ring-2 has-[>[aria-current=true]]:ring-blue-500 has-[>[aria-current=true]]:shadow-transparent",Ze="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",Jr=16,Vt="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",Ga=12,Qr="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",en="[--aqdr-hover-lift:2px] [@media(resolution:1.25dppx)]:[--aqdr-hover-lift:calc(2px/1.25)] [@media(resolution:1.75dppx)]:[--aqdr-hover-lift:calc(3px/1.75)] motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:translate-y-[calc(-1*var(--aqdr-hover-lift))] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",we=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${J}`,ja="-mx-1",Ya="flex items-center gap-1",Ae="inline-flex h-6 items-center rounded-full px-3",qa="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Xa="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",bt="size-4",ge={starOff:`${bt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${bt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${bt} text-blue-600 dark:text-blue-400`,delete:`${bt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${bt} text-red-600 dark:text-red-400`,edit:`${bt} text-slate-500 dark:text-slate-400`},Za="h-6 w-10 border-4 border-solid",Ja="size-4 data-[state=checked]:translate-x-4",Qa="data-[state=unchecked]:bg-slate-500 data-[state=checked]:bg-blue-600 dark:data-[state=unchecked]:bg-slate-400 dark:data-[state=checked]:bg-blue-400 forced-colors:border-[ButtonText] forced-colors:data-[state=checked]:bg-[Highlight]",ei="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var ti="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",ri="rounded-xl border border-solid p-[3px]",ni="relative inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 after:pointer-events-none after:absolute after:right-[var(--radius-lg)] after:bottom-0 after:left-[var(--radius-lg)] after:h-[2px] after:rounded-full after:forced-color-adjust-none data-[state=active]:after:bg-blue-600 dark:data-[state=active]:after:bg-blue-400 forced-colors:data-[state=active]:after:bg-[Highlight] disabled:pointer-events-none disabled:opacity-50",Vd="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",Wd="bg-slate-50 dark:bg-slate-950",Ue="flex min-h-0 flex-1 flex-col",dr=`${Ue} ${Wd}`,cr=`${Ue} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${Vd}`,ur="text-red-700 dark:text-red-400",oi="bg-white dark:bg-slate-900",tn="flex min-h-0 flex-1 flex-col overflow-clip contain-size",rn="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",ai="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",ii={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},Ct="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",st=`m-0 ${Ct}`,nn="text-balance wrap-anywhere [word-break:auto-phrase]",on="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as si,jsxs as zd}from"react/jsx-runtime";var $d=2,mr=({id:e,count:t,label:r})=>t<=0?null:zd("span",{id:e,className:"inline-flex h-6 shrink-0 items-center gap-1 text-slate-500 dark:text-slate-400",title:`${r}: ${t}`,role:"img","aria-label":`${r}: ${t}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":t,children:[si(Kd,{className:bt,"aria-hidden":"true"}),t>=$d&&si("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as Nf}from"@aiquants/virtualscroll";import{useCallback as Le,useEffect as It,useLayoutEffect as Of,useMemo as La,useRef as Oe,useState as io}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},se=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?se(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let l=String(n.getHours()).padStart(2,"0"),u=String(n.getMinutes()).padStart(2,"0"),c=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${u}:${c}`}return`${o}-${a}-${i}`};import{useCallback as gc,useEffect as xi,useRef as Rc,useState as hc}from"react";var Gd=/^\d{4}-\d{2}-\d{2}$/,jd=/^\d{4}\/\d{2}\/\d{2}$/,an=e=>e<10?`0${e}`:`${e}`,li=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=an(e.getMonth()+1),n=an(e.getDate());return`${t}-${r}-${n}`},xo=(e=new Date)=>Number.isNaN(e.getTime())?xo(new Date):`${e.getFullYear()}-${an(e.getMonth()+1)}-${an(e.getDate())}`,At=e=>{if(e==null)return null;if(e instanceof Date)return li(e);let t=e.trim();if(t==="")return null;if(Gd.test(t))return t;if(jd.test(t))return t.replaceAll("/","-");let r=new Date(t);return li(r)};var Wt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as tc}from"@aiquants/virtualscroll";import{createContext as rc,useContext as nc,useMemo as oc}from"react";var Yd=e=>typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"||e===null||e===void 0?String(e):Array.isArray(e)?"array":typeof e,xe=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Yd(r)}`),di=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),sn=(e,t,r)=>xe(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as qd,resolveVirtualScrollLocale as Xd,VIRTUAL_SCROLL_LABEL_CATALOGS as ci,VIRTUAL_SCROLL_LABEL_KEYS as Co}from"@aiquants/virtualscroll";var mi=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","attachmentThumbnailUnavailable","tabArticle","tabRelations","reportTabList","relationsEmpty","title","listKeyboardHelp","tabList","tabTree","tabDetailList","viewTabList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","edit","resizeHandle","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],pi=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState","listRowPosition"],Io=[...Co,...mi,...pi];var Zd=Object.freeze({en:"en-US",ja:"ja-JP"}),Re=(e,t)=>t.toLocaleString(Zd[e]),Jd=Object.freeze({create:"\u65E5\u5831\u306E\u4F5C\u6210",update:"\u65E5\u5831\u306E\u4FDD\u5B58",publish:"\u65E5\u5831\u306E\u516C\u958B",delete:"\u65E5\u5831\u306E\u524A\u9664",addComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u6295\u7A3F",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664",toggleStar:"\u30B9\u30BF\u30FC\u306E\u66F4\u65B0",toggleRead:"\u65E2\u8AAD\u72B6\u614B\u306E\u66F4\u65B0"}),Qd=Object.freeze({create:"create the report",update:"save the report",publish:"publish the report",delete:"delete the report",addComment:"post the comment",deleteComment:"delete the comment",toggleStar:"update the star",toggleRead:"update the read state"}),Lo=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${Re("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${Re("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${Re("en",e)} / ${Re("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${Re("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${Re("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${Re("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${Qd[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`,listRowPosition:(e,t)=>`${Re("en",e)} of ${Re("en",t)}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${Re("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${Re("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${Re("ja",e)} / ${Re("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${Re("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${Re("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${Re("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Jd[e]}\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002`,rowState:({isRead:e,isStarred:t})=>`${e?"\u65E2\u8AAD":"\u672A\u8AAD"}${t?"\u3001\u30B9\u30BF\u30FC\u4ED8\u304D":""}`,listRowPosition:(e,t)=>`\u5168 ${Re("ja",t)} \u4EF6\u4E2D ${Re("ja",e)} \u4EF6\u76EE`})}),fi=Object.freeze({en:Object.freeze({...ci.en,...Lo.en}),ja:Object.freeze({...ci.ja,...Lo.ja})}),ec=e=>{let t={},r=!1;for(let n of Co){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},ui=(e,t,r)=>{e[t]=r},Ao=(e,t)=>{let r=Xd(e);if(t===void 0)return fi[r];if(t===null||typeof t!="object")throw xe("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw xe("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!Io.includes(i))throw sn("labels key",i,Io);let a={...qd(r,ec(t)),...Lo[r]};for(let i of mi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw xe(`labels.${i}`,"a non-blank string",s);ui(a,i,s)}}for(let i of pi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw xe(`labels.${i}`,"a function",s);ui(a,i,s)}}return Object.freeze(a)},bi=e=>{let t={};for(let r of Co)t[r]=e[r];return Object.freeze(t)};import{jsx as _o,jsxs as mc}from"react/jsx-runtime";var ac=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),ic=({title:e,annotation:t})=>mc("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[_o("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?_o("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),pr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:ic,showDevControls:!1,headingLevel:3}),yi=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var sc=e=>{for(let t of Object.keys(e))if(!yi.includes(t))throw sn("config key",t,yi)},lc=[2,3,4,5],dc=e=>{if(e===void 0)return pr.headingLevel;let t=lc.find(r=>r===e);if(t===void 0)throw xe("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},cc=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw xe(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},gi=e=>{sc(e);let t=e.onSessionExpired;if(t===void 0)throw di("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw xe("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=tc(e.locale),n=Ao(r,e.labels),o=pr;return{apiBasePath:e.apiBasePath===void 0?o.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?o.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?o.draftLabelName:e.draftLabelName,locale:r,labels:n,sourceTypeConfigs:e.sourceTypeConfigs===void 0?ac(n):cc(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:dc(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},uc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},Ri=rc(gi({onSessionExpired:uc})),Do=({config:e,children:t})=>{let r=oc(()=>gi(e),[e]);return _o(Ri.Provider,{value:r,children:t})},F=()=>nc(Ri),_t=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},ln=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as fc}from"@aiquants/virtualscroll";var pc=4;var Kt=120,hi=1e3,dn=.8,wo={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},cn=20,Si=6,un={reportHubId:-1,businessDate:null},mn=240,pn=15,bc=8,Ei=460,vi=3,Ti=352,yc={enabled:!0,renderVisual:fc,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},fn={width:bc,tapScrollCircleOptions:yc,enableArrowButtonTabStops:!1},bn=["pen","touch"];var Ci=Wt(1,"use-daily-report"),Ai=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Oo=Ai("__DAILY_REPORT_CACHE_TTL__",3e5),Sc=Ai("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),j={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{j.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=At(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Ci.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Sc))}},delete(e,t){this.reports.delete(e);let r=At(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),o=n+Oo;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let l=this.reports.get(i.reportHubId)?.data,u=this.merge(i,l);return this.set(u,o,!1),u});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},_i=(e,t,r=!0)=>j.set(e,t,r),Ve=(e,t)=>j.getReport(e,t?.ignoreExpiry),We=(e,t)=>j.update(e,t),gn=(e,t)=>j.delete(e,t),br=()=>{j.clear(),yn.clear()},yr=e=>{j.locks.add(e),j.lastMutations.set(e,Date.now())},gr=e=>{j.locks.delete(e),j.lastMutations.set(e,Date.now())},Di=e=>j.recentDeletes.set(e,Date.now()),wi=(e,t)=>{let r=n=>{n===e&&t()};return j.listeners.add(r),()=>{j.listeners.delete(r)}},Dt=(e,t)=>{j.prune(),j.set(t,Date.now()+Oo)},Ni=e=>{j.prune();let t=j.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));j.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Oo)},Ec=async(e,t)=>{let r=j.getReport(t);if(r)return r;let n=j.pendingReports.get(t);if(n)return n;let o=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let s=i.report;return j.cacheMany([s],null,o)[0]}).finally(()=>j.pendingReports.delete(t));return j.pendingReports.set(t,a),a},yn=new Map,vc=1e4,Tc=(e,t)=>{let r=yn.get(t),n=Date.now();if(r&&n-r.at<vc)return r.inFlight;let o=Mo(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return yn.set(t,a),o.finally(()=>{yn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Mo=async(e,t,r={})=>{let n=r.forceRefresh?null:j.getList(t);if(n)return n;let o=j.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return j.cacheMany(s.reports??[],t,a)}).finally(()=>j.pendingLists.delete(t));return j.pendingLists.set(t,i),i},No=(e,t)=>{let r=j.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!j.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=j.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!j.isValid(n.expiresAt)}},Ii=(e,t)=>{if(e<=0)return{id:e,report:null,error:e===0?new Error("Invalid ID"):null,isLoading:!1,isRefetching:!1};let{report:r}=No(e,At(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},$t=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,wt=(e,t)=>{let{apiBasePath:r}=F(),[n,o]=hc(()=>Ii(e,t)),a=Rc(0),i=n;return n.id!==e&&(i=Ii(e,t),o(i)),xi(()=>{let s=At(t),l=u=>{u===e&&o($t(e,{report:No(e,s).report}))};return j.listeners.add(l),()=>{j.listeners.delete(l)}},[e,t]),xi(()=>{let s=At(t);a.current+=1;let l=a.current,u=()=>{a.current+=1};if(e<=0)return u;let{report:c,isStale:y}=No(e,s);if(c&&!y)return o($t(e,{report:c,error:null,isLoading:!1,isRefetching:!1})),u;o($t(e,{report:c,isLoading:!c,isRefetching:!0}));let g=async()=>{try{let I=null;if(s){let T=j.getList(s)!==null;if(I=(await Mo(r,s)).find(d=>d.reportHubId===e)??null,!I&&T){let d=await Tc(r,s);d&&(I=d.find(b=>b.reportHubId===e)??null)}}else I=await Ec(r,e);a.current===l&&o($t(e,{report:I,error:null}))}catch(I){a.current===l&&o($t(e,{error:I instanceof Error?I:new Error("Load failed")}))}finally{a.current===l&&o($t(e,{isLoading:!1,isRefetching:!1}))}};if(c===null)return g(),u;let E=setTimeout(g,Kt);return()=>{clearTimeout(E),u()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},ko=()=>{let{apiBasePath:e}=F();return gc(t=>{let r=At(t);r&&!j.getList(r)&&Mo(e,r).catch(n=>Ci.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as xc}from"@aiquants/virtualscroll";import{useRef as Ic}from"react";var Rn=()=>{let{locale:e,labels:t}=F(),r=bi(t),n=Ic(null),o=n.current;return o!==null&&xc.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as kc,useState as Pc}from"react";import{flushSync as Hc}from"react-dom";var ki=Object.freeze({visibilityProperty:!0}),Oi=new Set(["auto","scroll"]),Mi=new Set(["","true","plaintext-only"]),Pi=e=>{for(let t=e;t!==null;){if(t.hasAttribute("inert"))return!0;let r=t.parentElement;if(r!==null){t=r;continue}let n=t.getRootNode();t=Ui(n)?n.host:null}return!1},Lc=e=>{let t=e.closest("map")?.getAttribute("name");if(t==null||t==="")return!1;let r=e.getRootNode();for(let n of r.querySelectorAll("img[usemap]"))if(n.getAttribute("usemap")===`#${t}`&&n.checkVisibility(ki))return!0;return!1},Hi=e=>e.localName==="area"?Lc(e):e.checkVisibility(ki),Cc=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Mi.has(t.toLowerCase()))return!1;for(let r=e.parentElement;r!==null;r=r.parentElement){let n=r.getAttribute("contenteditable");if(n===null)continue;let o=n.toLowerCase();if(Mi.has(o))return!1;if(o==="false")return!0}return!0},Ac=e=>{if(e.checked||e.name==="")return!0;let t=e.getRootNode(),r=null;for(let n of t.querySelectorAll("input"))if(!(n.type!=="radio"||n.name!==e.name||n.form!==e.form)){if(n.checked)return!1;r===null&&!n.disabled&&Hi(n)&&(r=n)}return r===e},_c=e=>{let t=e.ownerDocument;if(e===t.documentElement||e===t.body)return!1;let r=e.scrollWidth>e.clientWidth,n=e.scrollHeight>e.clientHeight;if(!(r||n))return!1;let o=t.defaultView;if(o===null)return!1;let a=o.getComputedStyle(e);return r&&Oi.has(a.overflowX)||n&&Oi.has(a.overflowY)},Dc=e=>{switch(e.localName){case"a":case"area":return e.hasAttribute("href");case"button":case"select":case"textarea":case"iframe":case"embed":return!0;case"input":return e.type!=="hidden";case"summary":return e.parentElement?.localName==="details"&&e.parentElement.querySelector(":scope > summary")===e;case"audio":case"video":return e.hasAttribute("controls");case"object":{let t=e.contentWindow;return typeof t=="object"&&t!==null}default:return Cc(e)}},wc=/^[\t\n\f\r ]*[+-]?\d/,Nc=e=>{let t=e.getAttribute("tabindex");return t!==null&&wc.test(t)?e.tabIndex:null},Fi=(e,t)=>{for(let r of Ho(e))if(t(r)||Fi(r,t))return!0;return!1},hn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=Oc(e,t);return t.set(e,n),n},Oc=(e,t)=>{if(!Fo(e))return"none";let r=Nc(e),n=r===null&&Dc(e),o=r===null&&!n&&_c(e);return!(r!==null||n||o)||e.matches(":disabled")||Pi(e)||!Hi(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Ac(e)?"sequential":"programmatic":"sequential":Fi(e,a=>hn(a,t)==="sequential")?"none":"sequential"},Po=(e,t)=>{for(let r of Ho(e))t(r),Po(r,t)},Ho=e=>{if(fe(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var Sn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return Po(e,l=>{hn(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,u)=>{for(let c of Ho(l)){let y=c===t;!y&&hn(c,a)==="sequential"&&(u?n.push(c):i?o.push(c):r.push(c)),s(c,u||y),y&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Bi=e=>{let t=[],r=new Map;return Po(e,n=>{hn(n,r)==="sequential"&&t.push(n)}),t},fe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Fo=e=>"focus"in e&&"blur"in e,Mc=e=>e.nodeType===e.DOCUMENT_NODE,Ui=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(Ui(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return Mc(t)?t.activeElement:null},Rr=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||Pi(t)},je=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var En=e=>{let[t,r]=Pc(null);return kc(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=l=>{if(l===o)return;let u=o===null;o=l,u?Hc(()=>r(l)):r(l)},i=l=>{for(let u of l)a(u.borderBoxSize[0].blockSize)},s=new(je(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var Vi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ce=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var vn="data-daily-report-row",Wi=`[role="listitem"][${vn}]`,Fc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Bc=/^[1-9]\d*$/,Ki=e=>{if(e===null||!Bc.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},Rt=(e,t)=>{if(t===null||!fe(e))return null;let r=e.closest(Wi);return r===null||r===t||!t.contains(r)?null:r},Nt=e=>Ki(e.getAttribute(vn)),zt=e=>Ki(e.getAttribute("aria-posinset")),$i=e=>{let t=e.closest(Wi),r=t===null?null:zt(t);return r===null?null:r-1},hr=(e,t)=>{if(e===null)return null;let r=Nt(e);if(r===null)return null;let n=zt(e),o=ce(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},zi=(e,t)=>{if(!fe(e))return!1;let r=e.closest(Fc);return r!==null&&r!==t&&t.contains(r)};import{createContext as Gi}from"react";var lt=Gi(0),dt=Gi(-1);import{clsx as Uc}from"clsx";import{twMerge as Vc}from"tailwind-merge";function R(...e){return Vc(Uc(e))}import{useCallback as ji,useMemo as Wc,useSyncExternalStore as Kc}from"react";var Yi="(prefers-reduced-motion: reduce)",qi=e=>je(e).matchMedia(Yi).matches?"instant":"smooth",$c=Object.freeze({...wo,startVelocityThreshold:Number.POSITIVE_INFINITY}),Gt=e=>e?$c:wo,zc=()=>!1,Tn=e=>{let t=Wc(()=>e===null?null:je(e).matchMedia(Yi),[e]),r=ji(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=ji(()=>t===null?!1:t.matches,[t]);return Kc(r,n,zc)};import{useSyncExternalStore as Gc}from"react";import{jsx as Bo}from"react/jsx-runtime";var xn=()=>{let e={label:"",isWheelScrollActive:!1},t=new Set,r=n=>{e=n;for(let o of[...t])o()};return{getState:()=>e,setLabel:n=>{n!==e.label&&r({...e,label:n})},setWheelScrollActive:n=>{n!==e.isWheelScrollActive&&r({...e,isWheelScrollActive:n})},subscribe:n=>(t.add(n),()=>{t.delete(n)})}},Xi=16,jc=(e,t)=>e==="vertical"?{top:0,left:-Xi,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-Xi,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},In=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Gc(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Bo("div",{className:"pointer-events-none absolute flex items-center",style:jc(e,t),children:Bo("div",{className:R(qa,"border-slate-200 bg-white text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100"),children:Bo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Kl,useCallback as Qt,useEffect as Vl,useId as uf,useLayoutEffect as mf,useMemo as xa,useRef as Br,useState as Wl}from"react";import{createContext as Mu,useCallback as ut,useContext as ku,useEffect as Qo,useRef as _e,useState as kn}from"react";var Zi="ids-stream",Ji=e=>{if(typeof e!="object"||e===null)return"unknown";let t=e;return typeof t.kind=="string"?t.kind==="chunk"?"chunk":t.kind==="error"?"error":"unknown":Array.isArray(t.items)?"chunk":typeof t.error=="string"?"error":"unknown"};var Ln=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Qi=e=>{for(let t=1;t<e.length;t++)if(Ln(e[t-1],e[t])>0)return!1;return!0},Uo=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;Ln(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as On}from"@aiquants/sse";import{createBrowserEventSource as Su}from"@aiquants/sse/client";import{useReopeningEventSource as Eu}from"@aiquants/sse/react";import{useEffect as Xo,useRef as Mn,useState as vu}from"react";import{z as _}from"zod";var es=["auth-required","forbidden","resync-required"],Vo=15e3,ts="lastEventId",Yc=/^\d{1,15}-\d{1,15}$/,Cn=e=>Yc.test(e),qc=_.object({name:_.string().nullish(),affiliation:_.string().nullish()}),Xc=_.object({name:_.string().nullish(),text:_.string().nullish(),color:_.string().nullish()}),Zc=_.object({id:_.number(),name:_.string().nullish(),color:_.string().nullish()}),rs=_.object({id:_.number(),userId:_.string().nullish(),userName:_.string().nullish(),content:_.string().nullish(),createdAt:_.string().nullish(),isMine:_.boolean()}),Jc=_.object({id:_.string(),fileName:_.string(),fileType:_.string().nullable(),fileSize:_.number().nullable(),createdAt:_.string().nullable(),state:_.enum(["present","absent","unknown"]),hasThumbnail:_.boolean().default(!1)}),Wo=_.object({reportHubId:_.number(),date:_.string().nullish(),createdAt:_.string().nullish(),author:_.string().nullish(),userId:_.string().nullish(),sourceType:_.string().nullish(),employeeName:_.string().nullish(),updatedBy:_.string().nullish(),updatedAt:_.string().nullish(),category:_.string().nullish(),creationCategory:_.string().nullish(),visitTimeFrom:_.string().nullish(),visitTimeTo:_.string().nullish(),customerName:_.string().nullish(),interviewers:_.array(qc),subject:_.string().nullish(),content:_.string().nullish(),externalComments:_.array(Xc),isRead:_.boolean(),isStarred:_.boolean(),labels:_.array(Zc),postedComments:_.array(rs),attachments:_.array(Jc).default([])}),Qc=_.object({type:_.literal("connected")}),eu=_.object({type:_.literal("status-update"),reportHubId:_.number(),statusType:_.enum(["star","read"]),value:_.boolean(),clientTempId:_.string(),recipientRawUserId:_.number().optional()}),Ko=_.string().optional(),tu=_.object({type:_.literal("comment-add"),reportHubId:_.number(),comment:rs,clientTempId:_.string(),recipientRawUserId:_.number().optional(),sourceType:Ko}),ru=_.object({type:_.literal("comment-delete"),reportHubId:_.number(),commentId:_.number(),clientTempId:_.string(),recipientRawUserId:_.number().optional(),sourceType:Ko}),nu=_.object({type:_.literal("report-create"),reportHubId:_.number(),report:Wo,clientTempId:_.string(),recipientRawUserId:_.number().optional()}),ou=_.object({type:_.literal("report-update"),reportHubId:_.number(),report:Wo,clientTempId:_.string(),recipientRawUserId:_.number().optional()}),au=_.object({type:_.literal("report-publish"),reportHubId:_.number(),report:Wo,clientTempId:_.string(),recipientRawUserId:_.number().optional()}),iu=_.object({type:_.literal("report-delete"),reportHubId:_.number(),clientTempId:_.string(),sourceType:Ko}),ns=_.discriminatedUnion("type",[Qc,eu,tu,ru,nu,ou,au,iu]);import{useSyncExternalStore as fu}from"react";var os=()=>{let e=new TextDecoder,t=[],r=n=>{let o=[],a=0;for(let i=n.indexOf(`
|
|
2
|
+
`);i!==-1;i=n.indexOf(`
|
|
3
|
+
`,a)){let s=n.slice(a,i);o.push(t.length===0?s:[...t,s].join("")),t=[],a=i+1}return a<n.length&&t.push(n.slice(a)),o};return{push:n=>r(e.decode(n,{stream:!0})),end:()=>{let n=r(e.decode()),o=t.join("");return t=[],o===""?n:[...n,o]}}};var su=50,lu=1e3,du=3e4,cu=6,uu=3e4,An=Symbol("read-stall"),mu="/daily_report/api",pu=/^\d{4}-\d{2}-\d{2}$/,Sr=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null};this.streamAnchorRevision=0;this.lastCursor=null;this.lastSnapshot=null;this.consecutiveFailures=0;this.started=!1;this.disposed=!1;this.loopGeneration=0;this.activeAbortController=null;this.activeSeenIds=null;this.externalRemovalTombstones=new Set;this.pendingForceRefresh=!1;this.wakeRetryWait=null;this.handleOnline=()=>this.wakeRetryWait?.();this.publishCoalesceTimer=null;this.lastItemsPublishAt=0;this.apiBasePath=t.apiBasePath??mu,this.fetchFn=t.fetchFn??((r,n)=>fetch(r,n)),this.setTimeoutFn=t.setTimeoutFn??((r,n)=>setTimeout(r,n)),this.clearTimeoutFn=t.clearTimeoutFn??(r=>clearTimeout(r)),this.warn=t.warn??((...r)=>console.warn(...r)),this.readStallTimeoutMs=t.readStallTimeoutMs??uu,this.publishCoalesceMs=t.publishCoalesceMs??su,typeof window<"u"&&window.addEventListener("online",this.handleOnline)}getState(){return this.state}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}start(){this.started||this.disposed||(this.started=!0,this.runStreamLoop({revalidate:!1,forceRefresh:!1}))}retry(){this.disposed||this.state.phase!=="failed"||(this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:!1}))}refresh(t={}){if(!this.disposed){if(this.state.phase==="failed"){this.consecutiveFailures=0,this.runStreamLoop({revalidate:this.state.hasCompletedOnce,forceRefresh:t.forceRefresh??!1});return}if(this.state.phase==="complete"){if(this.state.isRevalidating){t.forceRefresh&&(this.pendingForceRefresh=!0);return}this.lastCursor=null,this.consecutiveFailures=0,this.runStreamLoop({revalidate:!0,forceRefresh:t.forceRefresh??!1})}}}resync(){if(!this.disposed){if(this.state.phase==="streaming"||this.state.phase==="retrying"){this.pendingForceRefresh=!0;return}this.refresh({forceRefresh:!0})}}applyExternalUpsert(t){if(this.disposed||!t||typeof t.reportHubId!="number")return;this.externalRemovalTombstones.delete(t.reportHubId),this.activeSeenIds?.add(t.reportHubId);let r=this.itemMap.get(t.reportHubId),n={reportHubId:t.reportHubId,businessDate:t.businessDate,sourceType:t.sourceType??r?.sourceType};(!r||r.businessDate!==n.businessDate||r.sourceType!==n.sourceType)&&(this.itemMap.set(t.reportHubId,n),this.publishItems())}applyExternalRemoval(t){this.disposed||(this.activeSeenIds?.delete(t),this.externalRemovalTombstones.add(t),this.itemMap.delete(t)&&this.publishItems())}dispose(){this.disposed=!0,this.loopGeneration+=1,this.activeAbortController?.abort(),this.cancelScheduledPublishItems(),this.wakeRetryWait?.(),typeof window<"u"&&window.removeEventListener("online",this.handleOnline),this.listeners.clear()}async runStreamLoop(t){let r=++this.loopGeneration;for(this.activeAbortController?.abort(),this.wakeRetryWait?.(),this.lastCursor===null&&(this.activeSeenIds=new Set,this.externalRemovalTombstones.clear(),this.lastSnapshot=null),t.forceRefresh&&(this.pendingForceRefresh=!1),this.publish({phase:t.revalidate?this.state.phase:"streaming",isRevalidating:t.revalidate,error:null});!this.disposed&&r===this.loopGeneration;){let n=await this.streamOnce(t.forceRefresh);if(this.disposed||r!==this.loopGeneration)return;if(n.kind==="complete"){this.pruneUnseenItems(),this.consecutiveFailures=0,this.cancelScheduledPublishItems(),this.lastItemsPublishAt=Date.now(),this.publish({phase:"complete",isRevalidating:!1,hasCompletedOnce:!0,completedAt:Date.now(),error:null,items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size}),this.pendingForceRefresh&&!this.disposed&&(this.pendingForceRefresh=!1,this.lastCursor=null,this.runStreamLoop({revalidate:!0,forceRefresh:!0}));return}if(n.kind==="aborted")return;if(n.kind==="auth-required"){this.publish({phase:"auth-required",isRevalidating:!1});return}if(this.consecutiveFailures+=1,this.consecutiveFailures>=cu){t.revalidate&&this.state.hasCompletedOnce?(this.warn("[DailyReportIdsStream] revalidation gave up:",n.error.message),this.pendingForceRefresh=!1,this.publish({isRevalidating:!1,error:n.error})):this.publish({phase:"failed",isRevalidating:!1,error:n.error});return}this.publish({phase:t.revalidate?this.state.phase:"retrying",error:n.error}),await this.waitBeforeRetry(Math.min(lu*2**(this.consecutiveFailures-1),du))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(c=>{o=this.setTimeoutFn(()=>c(An),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===An)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(a.status===401||a.status===403)return{kind:"auth-required"};if(!(a.ok&&a.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${a.status}`)};let i=a.body.getReader(),s=os(),l=!1,u=!1;for(;;){let c=await this.readWithStallGuard(i);if(c===An)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let y=c.done?s.end():s.push(c.value),g=!1;for(let E of y){if(E.trim()==="")continue;let I;try{I=JSON.parse(E)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let T=Ji(I);if(T==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(T==="error"){l=!0;continue}let L=I;g=this.absorbChunkLine(L)||g,typeof L.total=="number"&&Number.isFinite(L.total)&&L.total!==this.state.totalCount&&this.publish({totalCount:L.total}),L.nextCursor&&(L.nextCursor.businessDate===null||pu.test(L.nextCursor.businessDate))&&(this.lastCursor=L.nextCursor),L.isLast&&(u=!0)}if(g&&(this.consecutiveFailures=0,this.schedulePublishItems()),c.done)break}return l?{kind:"retryable",error:new Error("Stream interrupted by server error")}:u?{kind:"complete"}:{kind:"retryable",error:new Error("Stream ended before completion")}}catch(n){return n instanceof Error&&n.name==="AbortError"?{kind:"aborted"}:{kind:"retryable",error:n instanceof Error?n:new Error(String(n))}}finally{this.activeAbortController===r&&(this.activeAbortController=null)}}async readWithStallGuard(t){if(this.readStallTimeoutMs<=0)return t.read();let r=null,n=new Promise(o=>{r=this.setTimeoutFn(()=>o(An),this.readStallTimeoutMs)});try{return await Promise.race([t.read(),n])}finally{r!==null&&this.clearTimeoutFn(r)}}absorbChunkLine(t){t.restarted===!0&&(this.lastCursor=null,this.lastSnapshot=null,this.activeSeenIds=new Set,this.externalRemovalTombstones.clear()),typeof t.snapshot=="string"&&(this.lastSnapshot=t.snapshot),t.streamAnchor!==void 0&&this.absorbStreamAnchor(t.streamAnchor);let r=t.provisional===!0,n=!1;for(let o of t.items){if(!o||typeof o.reportHubId!="number"||this.externalRemovalTombstones.has(o.reportHubId))continue;r||this.activeSeenIds?.add(o.reportHubId);let a=this.itemMap.get(o.reportHubId);(!a||a.businessDate!==o.businessDate||a.sourceType!==o.sourceType)&&(this.itemMap.set(o.reportHubId,o),n=!0)}return n}absorbStreamAnchor(t){if(t!==null&&!(typeof t=="string"&&Cn(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/${Zi}${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var bu=6e4,ne=null,as=!1,$o=new Set,is={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},zo=()=>{for(let e of $o)e()},Go=()=>{ne&&(ne.unsubscribe(),ne.client.dispose(),ne=null,zo())},Er=e=>{if(typeof window>"u")return;let t=e.apiBasePath??pr.apiBasePath;if(ne&&(ne.userKey!==e.userKey||ne.apiBasePath!==t)&&(ne.userKey!==e.userKey&&br(),Go()),!ne){let r=new Sr({apiBasePath:t});ne={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(zo)},yu(),r.start(),zo();return}_n(ne)},_n=e=>{let t=e.client.getState();if(t.phase==="failed"){e.client.retry();return}t.phase==="complete"&&!t.isRevalidating&&t.completedAt!==null&&Date.now()-t.completedAt>bu&&e.client.refresh()},yu=()=>{if(as||typeof document>"u"||typeof window>"u")return;as=!0;let e=()=>{ne&&_n(ne)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},jo=e=>{if(!(typeof window>"u")){if(!ne){Er(e);return}if(ne.userKey!==e.userKey){br(),Go(),Er(e);return}_n(ne)}},Yo=()=>{typeof window>"u"||!ne||_n(ne)},vr=e=>{ne?.client.applyExternalUpsert(e)},Dn=e=>{ne?.client.applyExternalRemoval(e)},wn=()=>{ne?.client.retry()},Nn=()=>{ne?.client.resync()},qo=(e={})=>{ne?.client.refresh(e)},ss=()=>ne?.userKey,gu=e=>($o.add(e),()=>$o.delete(e)),Ru=()=>ne?.client.getState()??is,hu=()=>is,ct=()=>fu(gu,Ru,hu);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Go()});var Ot=Wt(1,"daily-report-sse-connection"),Tu=Object.freeze({kind:"resyncing"}),ls={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},xu=1,ds=Vo*3,Iu=ds+Vo,Zo=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=F(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=ct(),[l,u]=vu({generation:0,minAnchorRevision:1,anchored:!1}),c=l.generation>0&&!l.anchored,y=c&&a==="complete"&&!i?s:null,g=Mn(0),E=Mn(null),I=Mn(n);I.current=n;let T=Mn(0);T.current=o===null?0:o.revision,Xo(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(E.current=o.lastEventId,g.current=0,u({...l,anchored:!0}))},[l,o]),Xo(()=>{if(!e||y===null)return;let{initialDelayMs:d,maxDelayMs:b,multiplier:C}=ls,D=On.random()*Math.min(b,d*C**g.current);Ot.warn(`SSE resync: the ids rescan gave up (${y.message}); rescanning in ${Math.round(D)} ms`);let k=On.setTimer(()=>{g.current+=1,Nn()},D);return()=>On.clearTimer(k)},[e,y]);let{status:L}=Eu(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:d})=>d===null?r:`${r}?${ts}=${encodeURIComponent(d)}`,initialLastEventId:E.current,withCredentials:!1,createEventSource:Su,runtime:On,backoff:ls,healthyOpenMs:Iu,nativeRetryLimit:xu,giveUpAfterFailures:"never",terminalEvents:es,heartbeat:{staleAfterMs:ds,onHeartbeat:null},events:{message:d=>{d.lastEventId!==""&&(Cn(d.lastEventId)?E.current=d.lastEventId:Ot.warn("SSE event carried a malformed id; keeping the previous cursor:",d.lastEventId));try{let b=JSON.parse(d.data),C=ns.safeParse(b);if(!C.success){Ot.error("SSE Validation Error:",C.error.flatten(),"raw message:",b);return}if(C.data.type==="connected"){Ot.info("SSE Subscribe Ready");return}t(C.data)}catch(b){Ot.error("SSE Parse Error",b)}}}});return Xo(()=>{if(L.kind==="faulted"){Ot.error("SSE connection faulted:",L.error);return}if(L.kind==="terminated")switch(L.terminalEvent){case"auth-required":I.current();return;case"forbidden":Ot.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let d=T.current+1;u(b=>({generation:b.generation+1,minAnchorRevision:d,anchored:!1})),Nn();return}}},[L]),e&&c?Tu:L};import{createContext as Lu,useCallback as cs,useContext as Cu,useEffect as Au,useMemo as _u,useRef as us,useState as Du}from"react";import{jsx as ms,jsxs as ps}from"react/jsx-runtime";var wu=8e3,Nu="fixed inset-x-0 bottom-4 z-[100] mx-auto flex w-fit max-w-[92vw] items-center gap-2 rounded-lg border border-red-300 border-solid bg-red-600 px-[15px] py-[7px] text-sm text-white shadow-lg motion-safe:fade-in motion-safe:slide-in-from-bottom-2 motion-safe:animate-in motion-safe:duration-200 dark:border-red-500/60 dark:bg-red-700",Ou=R("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",$a),fs=Lu({notifyError:()=>{}}),bs=()=>Cu(fs),Jo=({children:e})=>{let{onError:t,labels:r}=F(),[n,o]=Du(null),a=us(t);a.current=t;let i=us(null),s=cs(c=>{let y=a.current;if(y){y(c);return}o(c)},[]),l=cs(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);Au(()=>{if(n)return i.current=setTimeout(()=>o(null),wu),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let u=_u(()=>({notifyError:s}),[s]);return ps(fs.Provider,{value:u,children:[e,n&&ps("div",{role:"alert","data-testid":"daily-report-error-banner",className:Nu,children:[ms("span",{className:"font-medium",children:n.message}),ms("button",{type:"button","aria-label":r.close,onClick:l,className:Ou,children:"\u2715"})]})]})};import{jsx as Hu}from"react/jsx-runtime";var Je=Wt(1,"daily-report-action-context"),Pu=Object.freeze([]),ea=globalThis.__DailyReportActionContext??Mu(null);globalThis.__DailyReportActionContext=ea;var De=()=>{let e=ku(ea);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Mt=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},ta=({children:e,user:t,initialItems:r=Pu,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=F(),{notifyError:s}=bs(),l=_e(s);l.current=s;let u=_e(new Map),c=_e(new Map),y=_e(new Map),g=_e(new Map),E=_e(new Map),[I,T]=kn(0),[L,d]=kn(r),[b,C]=kn(!1),D=_e(!1),k=_e(new Map),O=_e(new Set),H=_e(new Set),N=_e(new Set),K=ct(),q=_e(!1);q.current=K.phase==="complete"&&!K.isRevalidating;let G=ut(()=>ss()===(n??null),[n]),Q=ut(async()=>{Je.info("[DailyReportActionProvider] Refetching data without page reload..."),qo(),T(p=>p+1),j.listeners.forEach(p=>{p(-1)})},[]),U=ut(async()=>{Je.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),br(),H.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let m=await fetch(`${o}/action`,{method:"POST",body:p});if(!m.ok){let S=await m.json().catch(()=>null);Je.warn("[DailyReportActionProvider] Failed to clear server-side cache:",m.status,S)}}catch(p){Je.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}G()&&(qo({forceRefresh:!0}),T(p=>p+1),j.listeners.forEach(p=>{p(-1)}))},[o,G]),X=_e(new Map),$=_e(()=>{}),V=ut((p,m)=>{let S=X.current,v=S.get(p);if(v){v.messages.push(m);return}let A={messages:[m],unsubscribe:()=>{},timer:setTimeout(()=>{let f=S.get(p);f&&(f.unsubscribe(),S.delete(p),Je.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${f.messages.length} messages`))},3e4)};A.unsubscribe=wi(p,()=>{let f=S.get(p);if(f&&Ve(p,{ignoreExpiry:!0})){f.unsubscribe(),clearTimeout(f.timer),S.delete(p),Je.info(`[SSE Queue] Replaying ${f.messages.length} messages for reportHubId=${p}`);for(let h of f.messages)$.current(h)}}),S.set(p,A)},[]),re=p=>{N.current.add(p),setTimeout(()=>{N.current.delete(p)},3e4)},ue=ut(p=>!!p&&N.current.has(p),[]),Z=ut((p,m)=>{m!==void 0&&vr({reportHubId:p,businessDate:m??null}),d(S=>{let v=S.find(f=>f.reportHubId===p),A=m??v?.businessDate??null;return Uo(S,{reportHubId:p,businessDate:A,sourceType:v?.sourceType})})},[]),W=()=>{n&&(D.current=!0,C(p=>!p))};Qo(()=>{if(!n)return;let p=setTimeout(()=>{D.current||C(!0)},hi);return()=>clearTimeout(p)},[n]);let ae=ut(p=>{G()&&(H.current.add(p),Dn(p),d(m=>m.filter(S=>S.reportHubId!==p)))},[G]),[be,Te]=kn(r);if(r!==be){Te(r);let p=new Map;for(let v of r)H.current.has(v.reportHubId)||p.set(v.reportHubId,v);let m=q.current;for(let v of L)p.has(v.reportHubId)||H.current.has(v.reportHubId)||m&&v.reportHubId>0||p.set(v.reportHubId,v);let S=Array.from(p.values());Qi(S)||S.sort(Ln),d(S)}Qo(()=>{if(q.current){let p=new Set(r.map(m=>m.reportHubId));for(let m of H.current)p.has(m)||H.current.delete(m)}},[r]);let he=ut(p=>{if(G()&&!ue(p.clientTempId))switch(p.type){case"comment-add":{let{comment:m,reportHubId:S}=p,v=Ve(S,{ignoreExpiry:!0});if(v){if(v.postedComments.some(M=>M.id===m.id))return;let A=!1,f=u.current.get(S);if(f){for(let[M,B]of f.entries())if(B===m.content){f.delete(M),E.current.set(M,m.id),A=!0;break}}let h={...m,userName:m.userName||(A?Mt(t,i.unknownUser):i.unknownUser),createdAt:m.createdAt||new Date().toISOString(),isMine:A},w={...v,postedComments:[...v.postedComments,h].sort((M,B)=>new Date(M.createdAt||0).getTime()-new Date(B.createdAt||0).getTime())};Dt(S,w),yr(S),gr(S),T(M=>M+1)}else V(S,p);break}case"comment-delete":{let{commentId:m,reportHubId:S}=p,v=Ve(S,{ignoreExpiry:!0});if(v){let A={...v,postedComments:v.postedComments.filter(f=>f.id!==m)};Dt(S,A),yr(S),gr(S),T(f=>f+1)}else V(S,p);break}case"status-update":{let{statusType:m,value:S,reportHubId:v}=p,A=Ve(v,{ignoreExpiry:!0});if(m==="star")if(y.current.get(v)===S&&y.current.delete(v),A){let f={...A,isStarred:S};Dt(v,f),T(h=>h+1)}else V(v,p);else if(m==="read")if(g.current.get(v)===S&&g.current.delete(v),A){let f={...A,isRead:S};Dt(v,f),T(h=>h+1)}else V(v,p);break}case"report-delete":{let{reportHubId:m}=p;O.current.delete(m),H.current.add(m),Dn(m);let S=X.current.get(m);S&&(S.unsubscribe(),clearTimeout(S.timer),X.current.delete(m));let v=Ve(m,{ignoreExpiry:!0});v?.date&&(gn(m,v.date),T(A=>A+1)),d(A=>A.filter(f=>f.reportHubId!==m));break}case"report-create":case"report-update":case"report-publish":{let{report:m}=p;Ni(m),(p.type==="report-create"||p.type==="report-publish")&&(O.current.add(m.reportHubId),Z(m.reportHubId,m.date)),T(S=>S+1);break}}},[ue,G,Z,t,V,i.unknownUser]);$.current=he,Qo(()=>()=>{for(let p of X.current.values())p.unsubscribe(),clearTimeout(p.timer);X.current.clear()},[]);let Se=Zo({isSseEnabled:b,onMessage:he}),ye=async(p,m,S,v,A,f)=>{f?.skipLock||yr(p),A.onOptimistic?.();let h=v.clientTempId||crypto.randomUUID();re(h);let w=new FormData;w.append("intent",m),w.append("reportHubId",String(p)),typeof S=="string"&&w.append("businessDate",S),w.append("operationTimestamp",String(Date.now())),w.append("clientTempId",h);for(let[M,B]of Object.entries(v))M!=="clientTempId"&&w.append(M,B);try{let M=await fetch(`${o}/action`,{method:"POST",body:w,headers:{Accept:"application/json"}});if(!M.ok){let te=new Error(`Failed to ${m}`);throw Object.assign(te,{status:M.status}),te}let B=await M.json();if(B.status!=="OK"||m!=="create"&&String(B.reportHubId)!==String(p))throw new Error(`Invalid response for ${m}`);if(typeof B.clientTempId!="string"||B.clientTempId!==h)throw new Error(`Invalid clientTempId for ${m}`);if(!G())throw Je.warn(`[executeAction] ${m} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${m}`);return await A.onSuccess?.(B)}catch(M){throw Je.error(`${m} failed:`,M),G()&&(A.onFailure?.(),l.current({operation:m,message:i.operationFailed(m),cause:M})),M}finally{f?.keepLock||f?.skipLock||gr(p)}},$e=async(p,m,S)=>{let v=Number(p),A=-1*Date.now(),f=ye(v,"addComment",S,{content:m,clientTempId:String(A)},{onOptimistic:()=>{u.current.has(v)||u.current.set(v,new Map),u.current.get(v)?.set(A,m),T(h=>h+1)},onSuccess:h=>{if(!h.newComment)throw new Error("No new comment returned");let w=h.newComment.id;E.current.set(A,w),u.current.get(v)?.delete(A);let M=Ve(v,{ignoreExpiry:!0});return M&&!M.postedComments.some(B=>B.id===w)&&We(v,{postedComments:[...M.postedComments,{...h.newComment,id:w,isMine:!0,userName:Mt(t,i.unknownUser)}],updatedAt:h.updatedAt}),w},onFailure:()=>{u.current.get(v)?.delete(A)}},{skipLock:!0}).finally(()=>k.current.delete(A));k.current.set(A,f),await f},nt=async(p,m,S)=>{let v=Number(p);c.current.has(v)||c.current.set(v,new Set),c.current.get(v)?.add(m),T(f=>f+1);let A=m;if(m<0){let f=E.current.get(m);if(f!==void 0)A=f;else{let h=k.current.get(m);if(!h)return;try{A=await h}catch{return}}}await ye(v,"deleteComment",S,{commentId:String(A)},{onSuccess:f=>{let h=typeof f.deletedCommentId=="string"?Number(f.deletedCommentId):A,w=Ve(v,{ignoreExpiry:!0});w&&(We(v,{postedComments:w.postedComments.filter(M=>M.id!==h),updatedAt:f.updatedAt}),Di(h)),c.current.get(v)?.delete(m)},onFailure:()=>{c.current.get(v)?.delete(m)}},{skipLock:!0})},ze=async(p,m,S)=>{let v=Number(p);await ye(v,"toggleStar",S,{isStarred:String(m)},{onOptimistic:()=>{We(v,{isStarred:m}),y.current.set(v,m),T(A=>A+1)},onSuccess:A=>{A.updatedStatus&&typeof A.updatedStatus.isStarred=="boolean"&&Ve(v,{ignoreExpiry:!0})&&(We(v,{isStarred:A.updatedStatus.isStarred,updatedAt:A.updatedAt}),T(h=>h+1)),y.current.delete(v)},onFailure:()=>{We(v,{isStarred:!m}),y.current.delete(v)}},{skipLock:!0})},ke=async(p,m,S)=>{let v=Number(p);await ye(v,"toggleRead",S,{isRead:String(m)},{onOptimistic:()=>{We(v,{isRead:m}),g.current.set(v,m),T(A=>A+1)},onSuccess:A=>{A.updatedStatus&&typeof A.updatedStatus.isRead=="boolean"&&Ve(v,{ignoreExpiry:!0})&&(We(v,{isRead:A.updatedStatus.isRead,updatedAt:A.updatedAt}),T(h=>h+1)),g.current.delete(v)},onFailure:()=>{We(v,{isRead:!m}),g.current.delete(v)}},{skipLock:!0})},Xe=_e(ke);Xe.current=ke;let ot=ut((p,m,S)=>Xe.current(p,m,S),[]),Ce=async p=>{let m=-1*Date.now(),S=new Date().toISOString(),v={reportHubId:m,date:p,createdAt:S,author:Mt(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Mt(t,i.unknownUser),updatedBy:Mt(t,i.unknownUser),updatedAt:S,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};_i(v,Date.now()+3e5,!1),d(A=>[{reportHubId:m,businessDate:p},...A]);try{let A=await ye(0,"create",p,{clientTempId:String(m)},{onSuccess:h=>h});if(A.clientTempId&&A.clientTempId!==String(m))throw Je.warn(`[createReport] ID mismatch. req=${m}, res=${A.clientTempId}`),new Error("Optimistic ID mismatch");let f=Number(A.reportHubId);return vr({reportHubId:f,businessDate:p}),yr(f),A.report&&(Dt(f,A.report),T(h=>h+1)),d(h=>h.some(w=>w.reportHubId===f)?h.filter(w=>w.reportHubId!==m):h.map(w=>w.reportHubId===m?{...w,reportHubId:f}:w)),setTimeout(()=>gr(f),1e3),f}catch(A){throw Je.error("[createReport] Failed or mismatched",A),d(f=>f.filter(h=>h.reportHubId!==m)),A}},at=async(p,m,S)=>{let v=Number(p);await ye(v,"update",S,{...m.title&&{title:m.title},...m.content&&{content:m.content}},{onSuccess:()=>{let A=Ve(v,{ignoreExpiry:!0});A&&(We(v,{subject:m.title??A.subject,content:m.content??A.content}),T(f=>f+1))}})},it=async(p,m)=>{let S=Number(p),v=Ve(S,{ignoreExpiry:!0}),A=v?.labels||[];await ye(S,"publish",m,{},{onOptimistic:()=>{if(v){let f=v.labels.filter(h=>h.name!==a);We(S,{labels:f}),T(h=>h+1)}},onSuccess:f=>{f.report&&(Dt(S,f.report),T(h=>h+1)),m!==void 0&&vr({reportHubId:S,businessDate:m})},onFailure:()=>{We(S,{labels:A}),T(f=>f+1)}},{skipLock:!0})},x=async(p,m)=>{let S=Number(p),v=L.find(A=>A.reportHubId===S);H.current.add(S),Dn(S),d(A=>A.filter(f=>f.reportHubId!==S));try{await ye(S,"delete",m,{},{onSuccess:A=>{gn(S,m)}})}catch(A){if(A.status===404){gn(S,m);return}if(!G())return;H.current.delete(S);let h=v===void 0?m:v.businessDate;h!==void 0&&vr({reportHubId:S,businessDate:h}),v&&d(w=>w.some(M=>M.reportHubId===S)?w:Uo(w,v))}};return Hu(ea.Provider,{value:{user:t,pendingAddCommentIds:u,pendingDeleteCommentIds:c,pendingStarUpdates:y,pendingReadUpdates:g,resolvedIdMap:E,version:I,items:L,isSseEnabled:b,toggleSse:W,sseStatus:Se,addComment:$e,deleteComment:nt,toggleStar:ze,toggleRead:ot,createReport:Ce,updateReport:at,publishReport:it,deleteReport:x,removeStaleItem:ae,refetchData:Q,clearCacheAndRefetch:U},children:e})};import{useCallback as Rs,useMemo as Fu,useRef as Bu,useState as Uu}from"react";var ys=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw xe("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},gs=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var Tr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=De(),{labels:u}=F(),c=u.unknownUser,[y,g]=Uu(null),E=Rs(d=>e&&l(e.reportHubId,d,e.date),[e,l]),I=Rs(d=>e&&t?s(e.reportHubId,d,e.date):Promise.resolve(),[e,t,s]),T=Bu([]);return{uiComments:Fu(()=>{if(!e)return[];let d=ys(e.externalComments,e.postedComments,r,c),b=o.current.get(e.reportHubId);b?.size&&(d=d.filter(D=>!b.has(D.id)));let C=n.current.get(e.reportHubId);if(C?.size&&t){let D=new Set(d.map(O=>O.id)),k=Mt(t,c);for(let[O,H]of C){if(b?.has(O)||D.has(O))continue;let N=a.current.get(O);N&&D.has(N)||d.some(K=>K.isMine&&K.content===H&&typeof K.id=="number"&&K.id>0)||d.push({id:O,authorName:k,content:H,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(d)===JSON.stringify(T.current)?T.current:(T.current=d,d)},[e,t,r,c,o,n,a,i]),handleAddComment:I,handleDeleteComment:E,pendingDeleteId:y,setPendingDeleteId:g,resolvedIdMap:a.current}};import{jsx as Wu}from"react/jsx-runtime";var Vu={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},ht=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=Vu[e];return Wu(r,{...t})};import{memo as Gs,useId as Mm,useMemo as km,useRef as Pm}from"react";var hs=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var na="tile",Ir=hs[na],Ku=2,xr=16,Ss=5,Es=Ir.maxWidth/Ku,$u=Ss*(Es+xr)-xr,vs=e=>{let t=Math.min(Ss,1+Math.floor((e+xr)/(Es+xr)));return Math.floor((Math.min(e,$u)-(t-1)*xr)/t)},ra=`round(nearest, 100cqi * ${Ir.maxHeight} / ${Ir.maxWidth}, 1px)`,Ts=Object.freeze({aspectRatio:`${Ir.maxWidth} / ${Ir.maxHeight}`,height:ra,contain:"strict"}),xs=Object.freeze({marginBlockEnd:`calc(round(up, ${ra}, ${4}px) - ${ra})`});var zu="download",Gu="thumbnail",ju="1",jt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[zu]:ju})}`;case"thumbnail":return`${n}?${new URLSearchParams({[Gu]:r.variant})}`}};import{createContext as Yu,useContext as qu}from"react";var Lr=Yu(null),Yt=()=>qu(Lr)===!1?-1:void 0,Is=(e,t)=>{let{before:r,after:n}=Sn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as em,useContext as tm,useLayoutEffect as rm,useMemo as nm,useState as om}from"react";import{flushSync as am}from"react-dom";import{flushSync as Xu}from"react-dom";var oa=new WeakMap,Ls=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Zu=e=>{e.frame=null;let t=[...e.observations.values()].filter(Ls);t.length!==0&&Xu(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Ju=(e,t)=>{for(let r of t){let n=e.observations.get(r.target);if(n===void 0)continue;let o=r.contentBoxSize[0].inlineSize;o!==0&&(n.observedTrackWidth=vs(o))}e.frame!==null||![...e.observations.values()].some(Ls)||(e.frame=e.view.requestAnimationFrame(()=>Zu(e)))},Qu=e=>{let t=oa.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] An attachment tile grid must belong to a document with a window to be measured");let n={view:r,observer:new r.ResizeObserver(o=>Ju(n,o)),observations:new Map,frame:null};return oa.set(e,n),n},Cs=(e,t)=>{let r=e.ownerDocument,n=Qu(r);if(n.observations.has(e))throw new Error("[daily-report] An attachment tile grid is already observed");let o={onTrackWidth:t,observedTrackWidth:null,handedTrackWidth:null};return n.observations.set(e,o),n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),!(n.observations.size>0)&&(n.frame!==null&&n.view.cancelAnimationFrame(n.frame),n.observer.disconnect(),oa.delete(r)))}};import{jsx as Ar,jsxs as Ds}from"react/jsx-runtime";var Cr="\u2026",im=Cr.codePointAt(0),Pn="data-attachment-file-name",sm=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,lm=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,ws=em(null),Ns=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},As=(e,t,r,n)=>{let o=Array.from(e),a=0,i=o.length-1;for(;a<i;){let s=Math.ceil((a+i)/2);n(o.slice(0,s).join("")+t)<=r?a=s:i=s-1}return o.slice(0,a).join("")},dm=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=Ns(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${As(o,Cr,a,r)}${Cr}`;return r(n+i)<=t?n+i:`${As(n,Cr+i,t,r)}${Cr}${i}`},_s=new WeakMap,Os=e=>{let t=_s.get(e);if(t!==void 0)return t;let r=e.createElement("canvas").getContext("2d");if(r===null)throw new Error("[daily-report] Attachment file names are fitted with a canvas 2D context, which this document cannot create");let n={context:r,font:"",measures:new Map};return _s.set(e,n),n},cm=(e,t)=>{let r=e.measures.get(t);if(r!==void 0)return r;let n=o=>(e.font!==t&&(e.context.font=t,e.font=t),e.context.measureText(o).width);return e.measures.set(t,n),n},Ms=e=>{let t=new Set;for(let r of e.matchAll(sm)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},um=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:Ms(t.fontFamily),measure:cm(Os(e.ownerDocument),r)}},mm=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,pm=e=>{let t=new Set([im]);for(let r of e.querySelectorAll(`[${Pn}]`)){let n=r.getAttribute(Pn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},fm=(e,t)=>{for(let r of e.split(",")){let n=lm.exec(r.trim());if(n===null)return!0;let[,o,a]=n,i=Number.parseInt(o.replaceAll("?","0"),16),s=a===void 0?Number.parseInt(o.replaceAll("?","F"),16):Number.parseInt(a,16);for(let l of t)if(l>=i&&l<=s)return!0}return!1},aa=new WeakMap,ks=e=>{let t=aa.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return aa.set(e,r),r},Ps=(e,t)=>{let r=um(e.container.querySelector(`[${Pn}]`));e.fitted={trackWidth:t,nameFont:r};let n=ks(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=ym(n)),e.applyFit({width:t,measure:r.measure})},bm=(e,t)=>{let r=t.map(o=>({families:Ms(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(l=>Array.from(l.families).some(u=>a.nameFont.families.has(u)));if(i.length===0)continue;let s=pm(o.container);i.some(l=>fm(l.unicodeRange,s))&&(Os(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&am(()=>{for(let[o,a]of n)Ps(o,a)})},ym=e=>{let t=e.document.fonts,r=n=>{bm(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},gm=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Cs(e,a=>Ps(r,a)),o=ks(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),aa.delete(o.document))}},Hs=({containerRef:e,children:t})=>{let[r,n]=om(null);return rm(()=>{let o=e.current;return gm(o,i=>{n(s=>mm(s,i)?s:i)})},[e]),Ar(ws,{value:r,children:t})},_r=({fileName:e,className:t,testId:r})=>{let n=tm(ws),o=nm(()=>n===null?null:dm(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=Ns(e);return Ds("span",{className:R("block min-w-0",t),title:e,"data-testid":r,[Pn]:e,children:[o===null?Ds("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Ar("span",{className:"truncate",children:a}),i!==""&&Ar("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Ar("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Ar("span",{className:"sr-only",children:e})]})};import vm from"lucide-react/dist/esm/icons/image-off.js";import{memo as Tm,useCallback as la,useEffect as xm,useLayoutEffect as Im,useRef as da,useState as Lm}from"react";var Hn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Fs=Hn.queueWaitMs+Hn.readMs+Hn.renderMs+Hn.transferMarginMs;var Rm=Object.freeze({kind:"loaded"}),Bs=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,u=null,c=null,y=null,g=null,E=U=>(U!==null&&n.clearTimeout(U),null),I=()=>{y?.(),y=null},T=()=>{g?.(),g=null},L=U=>U===null||U.kind==="loaded"?0:U.kind==="failing"?U.failedAttempts:i.maxAttempts,d=U=>{s="cooling",c=n.setTimeout(K,U)},b=()=>{o.abortInFlight(),T();let U=L(r.get(t))+1;if(U>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:U,retryAt:n.now()+i.retryDelayMs}),o.reset(),d(i.retryDelayMs)},C=U=>{if(s==="loading"){if(u=E(u),!U){b();return}s="done",r.set(t,Rm),T()}},D=()=>{u=null,C(!1)},k=()=>{s="loading",o.showActivity(!0),I(),u=n.setTimeout(D,i.loadTimeoutMs),o.grant()},O=()=>{l=null,s="queued",g=a.request(k)},H=()=>{l===null&&(l=n.setTimeout(O,i.settleMs))},N=U=>{if(o.showActivity(U),U){s==="watching"&&H();return}if(s==="queued"){T(),s="watching";return}l=E(l)},K=()=>{c=null,s="watching",o.showActivity(!1),y=n.observe(e,N)},q=()=>{let U=s==="loading";s="done",I(),l=E(l),u=E(u),c=E(c),o.showActivity(!1),U&&(o.abortInFlight(),g!==null&&o.reset()),T()},G=r.get(t);if(G?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:C,dispose:q};if(G?.kind==="exhausted"){if(n.now()-G.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:C,dispose:q};r.delete(t)}o.reset();let Q=G?.kind==="failing"?G.retryAt-n.now():0;return Q>0?d(Q):K(),{settle:C,dispose:q}};var hm=e=>{if(!Number.isInteger(e)||e<=0)throw xe("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},Us=hm(2);var Sm=e=>{if(!Number.isInteger(e)||e<=0)throw xe("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},ia=Sm(1024);var sa=new WeakMap,Em=e=>{let t=sa.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] A thumbnail frame must belong to a document with a window to be observed");let n=new WeakMap,a={observer:new r.IntersectionObserver(i=>{for(let s of i)n.get(s.target)?.onChange(s.isIntersecting)}),observations:n,observed:0};return sa.set(e,a),a},Vs=(e,t)=>{let r=e.ownerDocument,n=Em(r);if(n.observations.has(e))throw new Error("[daily-report] A thumbnail frame is already observed");let o={onChange:t};return n.observations.set(e,o),n.observed+=1,n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),n.observed-=1,!(n.observed>0)&&(n.observer.disconnect(),sa.delete(r)))}};import{jsx as Dr,jsxs as Om}from"react/jsx-runtime";var Cm={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},Am="data-thumbnail-active",_m="data-daily-report-attachment-preview",Ks={[_m]:""},Dm=Object.freeze({settleMs:250,loadTimeoutMs:Fs,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Ws=e=>{let t=ia.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},wm=()=>({limiter:Us,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:Vs,tuning:Dm}),Nm=(e,t,r,n)=>({grant:()=>r(o=>o.url!==e||o.status==="granted"||o.status==="loaded"?o:{url:e,status:"granted"}),reset:()=>r(o=>o.url!==e||o.status==="idle"?o:{url:e,status:"idle"}),exhausted:()=>r(o=>o.url!==e||o.status==="failed"?o:{url:e,status:"failed"}),abortInFlight:()=>{let o=n.current;o?.getAttribute("src")===e&&o.removeAttribute("src")},shows:()=>{let o=n.current;return o?.getAttribute("src")===e&&o.complete&&o.naturalWidth>0},showActivity:o=>{t.toggleAttribute(Am,o)}}),$s=Tm(({thumbnailUrl:e,unavailableLabel:t})=>{let r=da(null),n=da(null),o=da(null),[a,i]=Lm(()=>Ws(e));a.url!==e&&i(Ws(e)),Im(()=>{if(a.status==="failed")return;let c=n.current,y=a.status==="idle"?null:a.url;c.getAttribute("src")!==y&&(y===null?c.removeAttribute("src"):c.setAttribute("src",y))},[a]),xm(()=>{let c=r.current,y=Bs(c,e,ia,wm(),Nm(e,c,i,n));return o.current=y,()=>{o.current=null,y.dispose()}},[e]);let s=la(c=>{c!==null&&(n.current=c)},[]),l=la(()=>{i(c=>c.status==="granted"?{url:c.url,status:"loaded"}:c),o.current?.settle(!0)},[]),u=la(()=>{o.current?.settle(!1)},[]);return Dr("span",{className:"block",children:Dr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":Cm[a.status],style:Ts,className:"relative block w-full",children:Dr("span",{"data-testid":"daily-report-attachment-thumbnail-skin",className:"absolute inset-0 flex items-center justify-center overflow-hidden rounded-lg bg-slate-100 after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-slate-900/10 after:ring-inset dark:bg-slate-800 dark:after:ring-white/10 [[data-daily-report-attachment-preview]:active_&]:after:ring-blue-500 dark:[[data-daily-report-attachment-preview]:active_&]:after:ring-blue-400 motion-safe:[[data-thumbnail-state=pending][data-thumbnail-active]_&]:animate-pulse [[data-thumbnail-state=pending]_&]:bg-slate-200 dark:[[data-thumbnail-state=pending]_&]:bg-slate-700 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-300 dark:[@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-400/60",children:a.status==="failed"?Om("span",{className:`flex size-full flex-col items-center justify-center gap-1 px-2 text-center text-slate-600 text-xs dark:text-slate-400 ${nn}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Dr(vm,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Dr("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:l,onError:u,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as me,jsxs as Qe}from"react/jsx-runtime";var zs=1024,ca=["B","KB","MB","GB"],js="text-slate-500 text-sm line-through dark:text-slate-400",Hm=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=zs&&r<ca.length-1;)t/=zs,r+=1;return r===0?`${t} ${ca[r]}`:`${t.toFixed(1)} ${ca[r]}`},Ys=({attachment:e,labels:t,className:r})=>Qe("span",{className:r,children:[Hm(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ua=({href:e,children:t,...r})=>{let n=Yt();return me("a",{href:e,...r,tabIndex:n,children:t})},qs=({downloadUrl:e,label:t,fileName:r})=>Qe(ua,{href:e,className:R("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",J),"data-testid":"daily-report-attachment-download",children:[t," ",me("span",{className:"sr-only",children:r})]}),Fm=Gs(({attachment:e,apiBasePath:t,labels:r})=>{let n=me($s,{thumbnailUrl:jt(t,e.id,{kind:"thumbnail",variant:na}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Qe("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Qe("div",{className:"flex min-w-0 flex-col gap-2",children:[n,me(_r,{fileName:e.fileName,className:js,testId:"daily-report-attachment-name"})]}):Qe(ua,{href:jt(t,e.id,{kind:"inline"}),className:R("flex min-w-0 flex-col gap-2 rounded-lg",J),"data-testid":"daily-report-attachment-link",...Ks,children:[n,me(_r,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Qe("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:xs,children:[me(Ys,{attachment:e,labels:r,className:"truncate"}),!o&&me(qs,{downloadUrl:jt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),Bm=Gs(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Qe("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[Qe("div",{className:"flex min-w-0 flex-col",children:[n?me(_r,{fileName:e.fileName,className:js,testId:"daily-report-attachment-name"}):me(ua,{href:jt(t,e.id,{kind:"inline"}),className:R("flex min-w-0 rounded-sm",J),"data-testid":"daily-report-attachment-link",children:me(_r,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),me(Ys,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&me(qs,{downloadUrl:jt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),Um=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=Pm(null);return me(Hs,{containerRef:o,children:me("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:me("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>me(Fm,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},Fn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=F(),o=Mm(),{tileAttachments:a,rowAttachments:i}=km(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Qe("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[me(He,{level:ht[n],id:o,className:R("m-0",Ct),children:r.attachments}),Qe("div",{className:"flex flex-col gap-4",children:[a.length>0&&me(Um,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&me("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>me(Bm,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as tp}from"@aiquants/swipe-overlay";import{useCallback as fa,useEffect as Zs,useId as rp,useRef as ba,useState as np}from"react";var wr=e=>e.isComposing||e.keyCode===229,Bn=e=>({key:e.key,keyCode:e.keyCode,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey,defaultPrevented:e.defaultPrevented,isComposing:e.nativeEvent.isComposing,target:e.target});var Vm={kind:"hold"},Wm=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),Km=(e,t)=>{let r=e.getAttribute("role");return r!==null&&Wm.has(r)&&e!==t&&e.contains(t)},Nr=e=>e.key==="Escape"&&!e.defaultPrevented&&!wr(e),Xs=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||wr(e))return null;let r=e.target;if(!(fe(r)&&t.contains(r)))return null;let n=Bi(t);if(n.length===0)return Vm;let{before:o,within:a,after:i}=Sn(t,r);return e.shiftKey?o.some(s=>!Km(s,r))?null:{kind:"wrap",element:n[n.length-1]}:a.length>0||i.length>0?null:{kind:"wrap",element:n[0]}};import{Fragment as $m,jsx as zm}from"react/jsx-runtime";var Ee=({render:e})=>{let t=Yt();return zm($m,{children:e(t)})};import Gm from"@heroicons/react/24/outline/TrashIcon.js";import{memo as jm,useId as Ym,useRef as qm,useState as Xm}from"react";import{jsx as St,jsxs as Un}from"react/jsx-runtime";var ma="data-comment-id",Vn="data-comment-delete-button",Wn="data-comment-delete-slot",Zm=R(we,ja),Jm="relative flex h-5 items-center",Qm=R(Ae,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",J),ep=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,pa=jm(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[u,c]=Xm(!1),{labels:y}=F(),g=Ym(),E=qm(null),I=ep(e.id,o,l),T=()=>{let d=E.current;d!==null&&s(d),a(null),c(!0),typeof e.id=="number"&&n?.(e.id)},L=d=>{if(!I)return;let b=d.relatedTarget;fe(b)&&d.currentTarget.contains(b)||a(null)};return Un("li",{[ma]:e.id,"data-deleted":u?"true":void 0,className:R("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",u&&"hidden",I?"z-50":"z-0 hover:z-10"),children:[Un("div",{className:"mb-1 flex items-center justify-between",children:[St("div",{className:R("font-semibold text-xs",gs(e.color)),children:le(e.authorName)}),Un("div",{className:"flex items-center gap-2",children:[e.createdAt&&St("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:se(e.createdAt)}),e.isMine&&!e.isLegacy&&Un("div",{[Wn]:e.id,className:Jm,onBlur:L,children:[St(Ee,{render:d=>St("button",{ref:E,type:"button",tabIndex:d,className:Zm,title:y.commentDelete,"aria-label":y.commentDelete,"aria-expanded":I,"aria-controls":I?g:void 0,[Vn]:e.id,onClick:()=>i(e.id,I),children:St(Gm,{"aria-hidden":"true",className:I?ge.deletePending:ge.delete})})}),I&&St(Ee,{render:d=>St("button",{id:g,type:"button",tabIndex:d,"data-delete-confirmation":!0,className:Qm,onClick:T,children:y.commentDeleteConfirm})})]})]})]}),St("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});pa.displayName="DailyReportPostedComment";import{jsx as Ye,jsxs as el}from"react/jsx-runtime";var op="data-daily-report-comment-section",ap="data-daily-report-comment-heading",ip=R(st,J),Qs=(e,t)=>e>0||t,sp=R("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",J),lp=R("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",J),Js=e=>e.querySelector(`[${Vn}][aria-expanded="true"]`),dp=(e,t,r)=>{let n=[...e.querySelectorAll(`[${Vn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${ma}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return Qs(i,r)?{kind:"heading"}:{kind:"report"}},cp=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:l,onSectionRemoved:u})=>{let c=ba(null),y=tp(),g=rp(),E=o!==null,I=fa(()=>{let d=c.current,b=d===null?null:Js(d),C=b===null?null:b.closest(`[${Wn}]`),D=d===null?null:Ne(d);a(null),b!==null&&C!==null&&D!==null&&C.contains(D)&&b.focus({preventScroll:!0})},[a]);Zs(()=>{if(E)return y({id:g,onEscape:d=>Nr(d)?(I(),!0):!1})},[E,y,g,I]),Zs(()=>{let d=c.current;if(!E||d===null)return;let b=d.ownerDocument,C=D=>{let k=Js(d)?.closest(`[${Wn}]`);k!=null&&fe(D.target)&&k.contains(D.target)||a(null)};return b.addEventListener("pointerdown",C,!0),()=>b.removeEventListener("pointerdown",C,!0)},[E,a]);let T=fa((d,b)=>{b?I():a(d)},[I,a]),L=fa(d=>{let b=c.current;if(b===null)return;let C=dp(b,d,s);if(C.kind==="report"){u();return}let D=C.kind==="trash"?C.button:l.current;if(D===null)throw new Error("[daily-report] the comment section's heading is not attached");D.focus({preventScroll:!0})},[s,l,u]);return e.length===0?null:Ye("ul",{ref:c,className:"space-y-2",children:e.map(d=>Ye(pa,{comment:d,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:T,onBeforeHide:L,resolvedIdMap:i},d.id))})},Kn=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=F(),a=ba(null);return Qs(r.comments.length,r.canComment)?el("div",{[op]:"",className:R("flex flex-col gap-2",e),children:[Ye(He,{ref:a,level:ht[o],tabIndex:-1,[ap]:"",className:ip,children:n.comments}),Ye(cp,{...r,headingRef:a}),t]}):null},$n=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=np(!1),a=ba(null),{labels:i}=F();return el("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let c=new FormData(l.currentTarget).get("content")?.trim();if(c&&r){o(!0),a.current?.reset();try{await r(c)}catch{if(a.current){let y=a.current.elements.namedItem("content");y&&(y.value=c)}}finally{o(!1)}}},children:[Ye("input",{type:"hidden",name:"intent",value:"addComment"}),Ye("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&Ye("input",{type:"hidden",name:"businessDate",value:t}),Ye(Ee,{render:l=>Ye("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:sp,autoComplete:"off"})}),Ye(Ee,{render:l=>Ye("button",{type:"submit",tabIndex:l,className:lp,disabled:n,children:i.commentSend})})]})};import{useEffect as Rp,useRef as hp,useState as ya}from"react";import{Slot as up}from"@radix-ui/react-slot";import{cva as mp}from"class-variance-authority";import*as tl from"react";import{jsx as fp}from"react/jsx-runtime";var pp=mp(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${J}`,{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-solid border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),mt=tl.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>fp(n?up:"button",{className:R(pp({variant:t,size:r,className:e})),ref:a,...o}));mt.displayName="Button";import{jsx as bp}from"react/jsx-runtime";function rl({className:e,type:t,...r}){return bp("input",{type:t,"data-slot":"input",className:R(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...r})}import*as nl from"@radix-ui/react-label";import{jsx as yp}from"react/jsx-runtime";function Or({className:e,...t}){return yp(nl.Root,{"data-slot":"label",className:R("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as gp}from"react/jsx-runtime";function ol({className:e,...t}){return gp("textarea",{"data-slot":"textarea",className:R(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...t})}import{jsx as Ke,jsxs as zn}from"react/jsx-runtime";var Sp=e=>{e.preventDefault()},Gn=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=De(),{labels:i}=F(),[s,l]=ya(e.subject??""),[u,c]=ya(e.content??""),[y,g]=ya(!1),E=hp(e.reportHubId);Rp(()=>{e.reportHubId!==E.current&&(l(e.subject??""),c(e.content??""),E.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let I=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:u},e.date)}catch{}finally{g(!1)}},T=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:u},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{g(!1)}},L=`report-title-${e.reportHubId}`,d=`report-content-${e.reportHubId}`;return zn("form",{className:"space-y-4 p-1",onSubmit:Sp,children:[zn("div",{className:"space-y-2",children:[Ke(Or,{htmlFor:L,children:i.formTitle}),Ke(Ee,{render:b=>Ke(rl,{ref:n,id:L,value:s,onChange:C=>l(C.target.value),placeholder:i.formTitlePlaceholder,disabled:y,tabIndex:b})})]}),zn("div",{className:"space-y-2",children:[Ke(Or,{htmlFor:d,children:i.formContent}),Ke(Ee,{render:b=>Ke(ol,{id:d,value:u,onChange:C=>c(C.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:y,tabIndex:b})})]}),zn("div",{className:"flex justify-end gap-2",children:[t&&Ke(Ee,{render:b=>Ke(mt,{type:"button",variant:"outline",onClick:t,disabled:y,tabIndex:b,children:i.formCancel})}),Ke(Ee,{render:b=>Ke(mt,{type:"button",variant:"secondary",onClick:I,disabled:y,tabIndex:b,children:i.formSave})}),Ke(Ee,{render:b=>Ke(mt,{type:"button",onClick:T,disabled:y,tabIndex:b,children:i.formPublish})})]})]})};import Dp from"lucide-react/dist/esm/icons/check.js";import wp from"lucide-react/dist/esm/icons/pencil.js";import Np from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as al}from"react/jsx-runtime";var Yn=24,il=2,Ep=20,jn=5,vp=3,Tp=()=>{let e=Math.cos(2*Math.PI/jn)/Math.cos(Math.PI/jn),t=Array.from({length:2*jn},(g,E)=>{let I=-Math.PI/2+E*Math.PI/jn,T=E%2===0?1:e;return{x:T*Math.cos(I),y:T*Math.sin(I)}}),r=t.map(g=>g.x),n=t.map(g=>g.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(Ep-il)/(a-o),u=Yn/2-l*(o+a)/2,c=Yn/2-l*(i+s)/2,y=g=>String(Number(g.toFixed(vp)));return t.map(g=>`${y(u+l*g.x)},${y(c+l*g.y)}`).join(" ")},xp=Tp(),qt=({filled:e})=>al("svg",{viewBox:`0 0 ${Yn} ${Yn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:il,strokeLinejoin:"round",className:e?ge.starOn:ge.starOff,children:al("polygon",{points:xp})});import{Fragment as Ip,jsx as qn,jsxs as Lp}from"react/jsx-runtime";var Xt=({config:e,id:t,className:r})=>qn("span",{id:t,className:R(Xa,e.badgeClassName,r),children:e.name===void 0?e.label:Lp(Ip,{children:[qn("span",{"aria-hidden":"true",children:qn("abbr",{title:e.name,children:e.label})}),qn("span",{className:"sr-only",children:e.name})]})});import{jsx as sl}from"react/jsx-runtime";var Xn=24,Cp=6,Zt=({className:e})=>sl("svg",{viewBox:`0 0 ${Xn} ${Xn}`,"aria-hidden":"true",className:R(ge.read,e),children:sl("circle",{cx:Xn/2,cy:Xn/2,r:Cp,fill:"currentColor"})});import{jsx as _p}from"react/jsx-runtime";var Ap=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,kt=({text:e})=>Ap.test(e)?_p("time",{dateTime:e,children:e}):e;import{jsx as Fe,jsxs as dl}from"react/jsx-runtime";var de=({label:e,classNames:t,valueId:r,children:n})=>dl("div",{className:t.field,children:[Fe("dt",{className:t.label,children:e}),Fe("dd",{id:r,className:R("m-0",t.value),children:n})]}),Et={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},ll=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return dl("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Fe(de,{label:r.author,classNames:Et,children:le(e.author)}),Fe(de,{label:r.createdAt,classNames:Et,children:Fe(kt,{text:se(e.createdAt)})}),Fe(de,{label:r.updatedBy,classNames:Et,children:le(e.updatedBy)}),Fe(de,{label:r.updatedAt,classNames:Et,children:Fe(kt,{text:se(e.updatedAt)})}),Fe(de,{label:r.businessDate,classNames:Et,children:Fe(kt,{text:se(e.date)})}),t!==null&&Fe(de,{label:r.visitTime,classNames:Et,children:t}),n&&Fe(de,{label:r.category,classNames:Et,children:n}),o&&Fe(de,{label:r.creationCategory,classNames:Et,children:o})]})};import{jsx as ie,jsxs as ul}from"react/jsx-runtime";var Zn={field:R(Ae,"gap-1 whitespace-nowrap bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-100"),label:"text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:""},Op={field:R(Ae,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},cl={field:R(Ae,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},ml=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:u,visitTimeDisplay:c,markerIds:y,labels:g})=>{let E=r?g.starRemove:g.starAdd,I=t?g.markUnread:g.markRead,T=e.category?.trim(),L=e.creationCategory?.trim();return ul("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ie(mr,{id:y.attachments,count:e.attachments.length,label:g.attachments}),u?ie(Xt,{id:y.source,config:u}):null,ie(Ee,{render:d=>ie("button",{type:"button",onClick:a,tabIndex:d,className:we,title:E,"aria-label":E,"data-detail-star-button":e.reportHubId,children:ie(qt,{filled:r})})}),ie(Ee,{render:d=>ie("button",{type:"button",onClick:o,tabIndex:d,className:we,title:I,"aria-label":I,"data-detail-read-button":e.reportHubId,children:t?ie(Dp,{className:ge.read}):ie(Zt,{})})}),i&&ie(Ee,{render:d=>ie("button",{ref:s,type:"button",onClick:i,tabIndex:d,"data-detail-edit-button":e.reportHubId,className:we,title:g.edit,"aria-label":g.edit,children:ie(wp,{className:ge.edit})})}),n&&ie(Ee,{render:d=>ie("button",{type:"button",onClick:l,tabIndex:d,"data-detail-delete-button":e.reportHubId,className:we,title:g.deleteReport,"aria-label":g.deleteReport,children:ie(Np,{className:ge.delete})})}),ul("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ie(de,{label:g.id,classNames:Op,children:e.reportHubId}),ie(de,{label:g.businessDate,classNames:Zn,children:ie(kt,{text:se(e.date)})}),ie(de,{label:g.author,classNames:Zn,children:le(e.employeeName)}),ie(de,{label:g.visitTime,classNames:Zn,children:le(c)}),ie(de,{label:g.updatedAt,classNames:Zn,children:ie(kt,{text:se(e.updatedAt)})}),T&&ie(de,{label:g.category,classNames:cl,children:T}),L&&ie(de,{label:g.creationCategory,classNames:cl,children:L})]})]})};import{useCallback as lf,useContext as Fl,useLayoutEffect as va,useRef as Bl}from"react";import{startTransition as Jp,useCallback as ee,useLayoutEffect as Pt,useMemo as kl,useRef as xt,useState as Fr,useSyncExternalStore as Qp}from"react";import{flushSync as Pl}from"react-dom";var Jt=e=>({owner:e,focusIndex:null}),ga=Object.freeze({owner:null,focusIndex:null}),pl=(e,t)=>{if(e.length===0)return ga;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},fl=(e,t)=>{switch(t.kind){case"focusIn":return Jt(t.row);case"focusOut":return t.to==="outside"?ga:Jt(e);case"pointerPress":return t.at==="outside"?ga:Jt(e);case"listChanged":{if(e===null)return Jt(e);let r=ce(t.items,e.reportHubId,e.index);return r===-1?pl(t.items,e.index):Jt(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?Jt(e):pl(t.items,t.selection.index)}};var Mp=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),Jn={capture:!0},Qn=new WeakMap,kp=e=>{let t=o=>{Mp.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,Jn),e.removeEventListener("pointerdown",r,Jn)}};return e.addEventListener("keydown",t,Jn),e.addEventListener("pointerdown",r,Jn),n},bl=e=>{let t=Qn.get(e),r=t===void 0?kp(e):t;t===void 0&&Qn.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),Qn.delete(e)))}},yl=e=>{let t=Qn.get(e);return t===void 0?null:t.last};var eo=e=>e.matches(":focus-visible")&&yl(e.ownerDocument)!=="pointer";var Pp="data-daily-report-keyboard-focus",vt={capture:!0},gl=e=>{let t=bl(e.ownerDocument),r=s=>{e.toggleAttribute(Pp,fe(s)&&eo(s))},n=s=>r(s.target),o=s=>{fe(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,vt),e.addEventListener("keydown",n,vt),e.addEventListener("focusout",o,vt),e.addEventListener("pointerdown",a,vt);let i=Ne(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,vt),e.removeEventListener("keydown",n,vt),e.removeEventListener("focusout",o,vt),e.removeEventListener("pointerdown",a,vt),r(null),t()}};var Hp='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Fp=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Bp=Fp.map(e=>`[role="${e}"]`).join(", "),Up=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Vp=new Set(["Enter"," "]),Wp=new Map([["Home","exitBefore"],["End","exitAfter"]]),Ra=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return Wp.get(e.key)??null;let r=Up.get(e.key);return r!==void 0?r:Vp.has(e.key)&&t.rowActivation?"activate":null},Rl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},hl=(e,t,r)=>{let n=Ra(e,r);if(n===null||e.defaultPrevented||wr(e)||t===null||!fe(e.target)||!t.contains(e.target))return null;let o=Rt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Rl(e.target,Hp,t)||Rl(e.target,Bp,t)?null:n};var to={kind:"stay"},ro=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},Sl=e=>Math.floor(.875*e),Tt=(e,t)=>({kind:"move",index:e,align:t}),Mr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Kp=({index:e,count:t,viewport:r,focusedRowTop:n,heightOf:o})=>{let a=o(e),i=n+a,s={index:e+1,top:i};for(let l=e+1;l<t;l++){let u=o(l);if(a+=u,a>r)break;s={index:l,top:i},i+=u}return s},$p=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>{let o=n(e),a=r,i={index:e-1,top:r-n(e-1)};for(let s=e-1;s>=0;s--){let l=n(s);if(a-=l,o+=l,o>t)break;i={index:s,top:a}}return i},zp=(e,t,r)=>{let{index:n,count:o,viewport:a,focusedRowTop:i,heightOf:s}=t,l=i+s(n);switch(e){case"previous":{if(n===0)return to;if(r==="top")return Tt(n-1,"top");let u=s(n-1);return Tt(n-1,Mr(i-u,u,a,-1))}case"next":return n===o-1?to:r==="top"?Tt(n+1,"top"):Tt(n+1,Mr(l,s(n+1),a,1));case"first":return Tt(0,"top");case"last":return Tt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,Sl(a))};if(n===o-1)return to;let u=Kp(t);return Tt(u.index,Mr(u.top,s(u.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,Sl(a))};if(n===0)return to;let u=$p(t);return Tt(u.index,Mr(u.top,s(u.index),a,-1))}}},Gp=({index:e,focusedRowTop:t,heightOf:r},n)=>Il(n,{index:e,offsetPx:-t},r),Tl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=zp(e,o,n);if(l.kind==="stay")break;l.kind==="reveal"?(i+=l.delta,o={...o,focusedRowTop:o.focusedRowTop-l.delta}):l.align==="none"?o={...o,index:l.index,focusedRowTop:Gp(o,l.index)}:(a={index:l.index,align:l.align},i=0,o={...o,index:l.index,focusedRowTop:l.align==="top"?0:o.viewport-o.heightOf(l.index)})}return{index:o.index,alignment:a,scrollDelta:i}},xl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Mr(r,n(e),t,1),Il=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},kr=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=ro(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:Il(t,s,i),heightOf:i}},El=1,Ll=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Pr(o,n,t,r);return{start:Math.max(0,o.index-El),end:Math.min(t-1,a+El)}},Pr=(e,t,r,n)=>{let o=ro(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},Cl=(e,t)=>e.top<t.top?e.top-t.top:e.bottom>t.bottom?Math.min(e.bottom-t.bottom,e.top-t.top):0,vl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),Al=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(vl(t,n,o))return t.reportHubId;if(vl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var Sa=1,Hr=2,ha=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?Sa:0)|(n===t||n===r?Hr:0),jp=e=>{if(Rr(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},Yp=(e,t)=>{let r=e.closest(`[${vn}]`);return r!==null&&r!==e&&Nt(r)===t&&Ne(e)===r},_l={capture:!0},Dl=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=null,a=!1,i=null,s=new Map,l=new Map,u=null,c=new Map,y=d=>ha(r,d),g=d=>{let b=l.get(d);if(b===void 0)return;let C=(y(d)&Hr)!==0?"0":"-1";b.getAttribute("tabindex")!==C&&b.setAttribute("tabindex",C)},E=()=>{if(n===null)return;let d=n;n=null,g(d)},I=(d,b)=>{E();let C={...r};d(r);let D=r,k=new Set([C.selectedId,C.tabStopId,C.arrivingId,D.selectedId,D.tabStopId,D.arrivingId]);for(let O of k){if(O===null)continue;let H=ha(C,O),N=ha(D,O);if(H===N)continue;((H^N)&Hr)!==0&&(O===b?n=O:g(O));let K=s.get(O);if(K!==void 0)for(let q of[...K])q()}},T=d=>{let b=d.ownerDocument,C=n!==null&&!Rr(d);C?b.addEventListener("focusout",E,_l):E(),a=!0;try{d.focus({preventScroll:!0})}finally{a=!1,C&&b.removeEventListener("focusout",E,_l),E()}},L=d=>{let b=e();b!==null&&(o=null,jp(b)&&T(d))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:y,setTabStopId:d=>{I(b=>{b.tabStopId=d},null)},settleSelection:(d,b)=>{I(C=>{C.selectedId=d,C.tabStopId=b,C.arrivingId=null},null)},arrive:d=>{I(b=>{b.arrivingId=d},d)},subscribe:(d,b)=>{let C=s.get(d)??new Set;return C.add(b),s.set(d,C),()=>{C.delete(b),C.size===0&&s.get(d)===C&&s.delete(d)}},registerFocusTarget:(d,b)=>{if(l.set(d,b),g(d),o===d){L(b);return}i===null||i.reportHubId!==d||(Rr(b)||Yp(b,d))&&T(b)},unregisterFocusTarget:(d,b)=>{l.get(d)===b&&l.delete(d)},requestFocus:d=>{o=d;let b=l.get(d);b!==void 0&&L(b)},cancelFocusRequest:()=>{o=null},pendingFocusId:()=>o,isMovingFocus:()=>a,getFocusOwner:()=>i,setFocusOwner:d=>{i=d},restoreFocus:d=>{if(i===null||i.reportHubId!==d)return;let b=l.get(d);b===void 0||!Rr(b)||T(b)},holdBodiesOutside:d=>{u=d},isBodyHeldAt:d=>u!==null&&(d<u.start||d>u.end),registerHeldBody:(d,b,C)=>{let D={indexHint:b,release:C};return c.set(d,D),()=>{c.get(d)===D&&c.delete(d)}},releaseHeldBodiesWithin:(d,b)=>{if(d!==null)for(let[C,{indexHint:D,release:k}]of[...c]){let O=b(C,D);O>=d.start&&O<=d.end&&k()}}}};var qe={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},Ea=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),qp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),wl=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Xp=new Map(Object.values(qe).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),Nl=e=>{let t=Xp.get(e);if(t===void 0)throw new Error(`[daily-report] a repeat step must be one of REPEAT_STEPS; got the ${e.axis} axis with ${e.amount}`);return t},Zp=(e,t,r)=>e==="row"||e==="page"?t+r:r,Ol=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:Nl(e)}),Ml=(e,t)=>{switch(t.kind){case"repeat":{let{step:r}=t;if(e.axis!==r.axis)throw new Error(`[daily-report] a ${r.axis} repeat cannot continue a ${e.axis} stream`);return e.fence==="open"?(e.fence="immediate",Nl(r)):(e.pending=Zp(e.axis,e.pending,r.amount),Ea)}case"frame":{if(e.fence==="open")return Ea;if(e.fence==="immediate")return e.fence="flush",qp;if(e.pending===0)return e.fence="open",Ea;let r=e.pending;return e.pending=0,{apply:{axis:e.axis,amount:r},flush:!0,requestFrame:!0,ended:!1}}case"keyup":return e.pending===0?wl:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return wl}};var ef=Object.freeze({kind:"frame"}),tf=Object.freeze({kind:"keyup"}),rf=Object.freeze({kind:"cancel"}),nf=Object.freeze({previous:Object.freeze({kind:"repeat",step:qe.previous}),next:Object.freeze({kind:"repeat",step:qe.next}),pageBackward:Object.freeze({kind:"repeat",step:qe.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:qe.pageForward}),first:Object.freeze({kind:"repeat",step:qe.first}),last:Object.freeze({kind:"repeat",step:qe.last}),activate:Object.freeze({kind:"repeat",step:qe.activate})}),of=(e,t)=>{if(e==="first"||e==="last")return{command:e,count:1};let r=Math.abs(t);return e==="row"?{command:t>0?"next":"previous",count:r}:{command:t>0?"pageForward":"pageBackward",count:r}},af=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),sf=e=>{let t=Nt(e),r=zt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},no=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Qp(r,n,n);return{isCurrent:(o&Sa)!==0,isTabStop:(o&Hr)!==0}},oo=(e,t,r)=>{let[n,o]=Fr(()=>!e.isBodyHeldAt(r));return Pt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Jp(a),i},[e,t,r,n]),n},Hl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:l,rowActivation:u})=>{let[c]=Fr(()=>Dl({getContainer:()=>n.current,initialSelectedId:t})),y=xt({items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:u}),g=xt(null),E=xt(null),[I,T]=Fr(null),L=xt(null),d=xt(null),[b,C]=Fr(null),D=xt(!1),k=xt(null),[O,H]=Fr(0),N=kl(()=>({id:t,indexHint:t===null?null:Vi(I,t)}),[t,I]),K=xt(N);Pt(()=>{y.current={items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:u},K.current=N},[e,r,s,l,u,N]);let q=ee((x,p)=>{let m=E.current;if(m!==null&&m.items===x&&m.reportHubId===p)return m.index;let S=ce(x,p,m!==null&&m.reportHubId===p?m.index:null);return S!==-1&&(E.current={items:x,reportHubId:p,index:S}),S},[]),G=ee((x,p)=>{E.current={items:y.current.items,reportHubId:x,index:p},T(m=>m!==null&&m.reportHubId===x&&m.index===p?m:{reportHubId:x,index:p})},[]),Q=ee(x=>{let p=c.getFocusOwner();if(p===null)return null;let m=ce(x,p.reportHubId,p.index);return m===-1?null:{reportHubId:p.reportHubId,index:m}},[c]),U=ee(x=>{let p=y.current.items,m=x===null?null:{reportHubId:x,index:q(p,x)};return Al(p,Q(p),m,g.current,k.current)},[q,Q]),X=ee(()=>{c.setTabStopId(U(c.getSelectedId()))},[c,U]),$=ee(x=>{let p=c.getFocusOwner();p===x||p!==null&&x!==null&&p.reportHubId===x.reportHubId&&p.index===x.index||(c.setFocusOwner(x),D.current||X())},[c,X]),V=ee(x=>{let p=fl(c.getFocusOwner(),x);$(p.owner),p.focusIndex!==null&&(L.current=p.focusIndex,c.requestFocus(p.owner.reportHubId))},[c,$]);Pt(()=>{c.settleSelection(t,U(t))},[c,t,e,O,U]),Pt(()=>{let x=o.current;if(x!==null)return gl(x)},[o]),Pt(()=>{let x=n.current;if(x===null)return;let p=x.ownerDocument,m=S=>{let v=n.current,A=S.target;V({kind:"pointerPress",at:v!==null&&fe(A)&&v.contains(A)?"inside":"outside"})};return p.addEventListener("pointerdown",m,{capture:!0}),()=>p.removeEventListener("pointerdown",m,{capture:!0})},[n,V]),Pt(()=>{let x=c.pendingFocusId();x!==null&&ce(e,x,L.current)===-1&&c.cancelFocusRequest(),V({kind:"listChanged",items:e})},[c,e,V]);let re=ee(x=>{V({kind:"removed",reportHubId:x,selection:E.current,items:y.current.items})},[V]),ue=ee((x,p,m)=>{let{items:S,onSelect:v,rowSizing:A,arrowAlign:f}=y.current,h=a.current;if(v===null||h===null)return null;let w=ce(S,m.reportHubId,m.index);if(w===-1)return null;let M=kr(h,w,S.length,A);if(M===null)return null;let B=Tl(x,p,M,f),te=S[B.index],Ge=B.index!==w;if(Ge){c.arrive(te.reportHubId),k.current=te.reportHubId,L.current=B.index,D.current=!0;try{c.requestFocus(te.reportHubId)}finally{D.current=!1}}try{Pl(()=>{Ge&&(c.pendingFocusId()===null&&c.settleSelection(te.reportHubId,te.reportHubId),v(te.reportHubId,B.index)),B.alignment!==null&&i.toIndex(B.alignment.index,{align:B.alignment.align}),B.scrollDelta!==0&&i.by(B.scrollDelta),Ge&&(G(te.reportHubId,B.index),H(Eo=>Eo+1));let sr=Ll(h,S.length,A);c.holdBodiesOutside(sr),c.releaseHeldBodiesWithin(sr,(Eo,Bd)=>ce(S,Eo,Bd))})}finally{c.holdBodiesOutside(null)}return Ge?{reportHubId:te.reportHubId,index:B.index}:{reportHubId:m.reportHubId,index:w}},[c,a,i,G]),Z=ee(x=>{let{items:p,onSelect:m}=y.current;if(m===null)return;let S=ce(p,x.reportHubId,x.index);S!==-1&&(m(x.reportHubId,S),G(x.reportHubId,S))},[G]),W=ee(x=>{let p=n.current,m=p===null?null:Ne(p),S=p!==null&&m!==null&&p.contains(m)?hr(Rt(m,p),y.current.items):null;return S===null?x.origin:S},[n]),ae=ee((x,p)=>{let m=W(x);if(p.axis==="activate"){Z(m);return}let S=of(p.axis,p.amount),v=ue(S.command,S.count,m);v!==null&&(x.origin=v)},[W,Z,ue]),be=ee(x=>{d.current=null,x.frame!==0&&x.view.cancelAnimationFrame(x.frame),C(null)},[]),Te=ee((x,p,m)=>{let{apply:S}=p;S!==null&&(p.flush?Pl(()=>ae(x,S)):ae(x,S)),d.current===x&&(p.ended?be(x):p.requestFrame&&(x.frame=x.view.requestAnimationFrame(m)))},[ae,be]),he=ee((x,p,m)=>{Te(x,Ml(x.state,p),m)},[Te]),Se=ee(()=>{let x=d.current;x!==null&&(x.frame=0,he(x,ef,Se))},[he]),ye=ee(()=>{let x=d.current;x!==null&&he(x,tf,Se)},[he,Se]),$e=ee(()=>{let x=d.current;x!==null&&he(x,rf,Se)},[he,Se]),nt=ee((x,p,m)=>{C(K.current);let{state:S,effects:v}=Ol(qe[x]),A={state:S,origin:p,view:m,frame:0};d.current=A,Te(A,v,Se)},[Te,Se]);Pt(()=>()=>{let x=d.current;d.current=null,x!==null&&x.frame!==0&&x.view.cancelAnimationFrame(x.frame)},[]);let ze=ee(x=>{let p=d.current,m=p!==null&&x.repeat?Ra(x,y.current):null;if(p!==null&&m!==null&&m!=="exitBefore"&&m!=="exitAfter"&&qe[m].axis===p.state.axis){x.preventDefault(),he(p,nf[m],Se);return}let{items:S,onSelect:v,rowSizing:A,rowActivation:f}=y.current,h=n.current,w=v===null?null:hl(Bn(x),h,{rowActivation:f});if(c.cancelFocusRequest(),ye(),w===null||h===null)return;if(w==="exitBefore"||w==="exitAfter"){let te=Is(h,w==="exitBefore"?"before":"after");if(te===null)return;x.preventDefault(),te.focus();return}let M=Ne(h),B=hr(Rt(M!==null&&h.contains(M)?M:x.target,h),S);if(B!==null){if(w!=="activate"){let te=a.current;if(te===null||kr(te,B.index,S.length,A)===null)return}if(x.preventDefault(),x.repeat){nt(w,B,je(h));return}w==="activate"?Z(B):ue(w,1,B)}},[c,n,a,Se,he,ye,nt,Z,ue]),ke=ee(()=>{ye()},[ye]),Xe=ee(x=>{let p=n.current,m=x.target,S=Rt(m,p);if(V({kind:"focusIn",row:S===null?null:sf(S)}),c.isMovingFocus())return;let v=a.current;if(p===null||v===null||!fe(m)||!eo(m))return;let A=S===null?null:S.closest('[role="list"]');if(S===null||A===null)return;let f=A.getBoundingClientRect(),h=S.getBoundingClientRect(),w=h.height<=f.height?h:af(m.getBoundingClientRect(),yt),M=Cl(w,f),B=v.getViewportSize();M===0||!(B>0&&f.height>0)||i.by(M*B/f.height)},[c,n,a,i,V]),ot=ee(x=>{let p=n.current,m=x.relatedTarget,S=fe(m)?p?.contains(m)?"view":"outside":"nowhere";S!=="view"&&$e(),V({kind:"focusOut",to:S})},[n,$e,V]),Ce=ee(()=>{c.cancelFocusRequest(),$e()},[c,$e]),at=ee(x=>{g.current={visibleStartIndex:x.visibleStartIndex,visibleEndIndex:x.visibleEndIndex},k.current=null,X()},[X]),it=kl(()=>({onKeyDown:ze,onKeyUp:ke,onPointerDownCapture:Ce,onWheelCapture:Ce,onTouchStartCapture:Ce,onFocus:Xe,onBlur:ot}),[ze,ke,Ce,Xe,ot]);return{cursor:c,containerProps:it,handleRangeChange:at,selection:N,settledSelection:b===null?N:b,resolveSelectedIndex:q,rememberSelection:G,focusAfterRemoval:re}};import{jsx as Ta}from"react/jsx-runtime";var df=R(gt,Xr,Zr,qr,"h-full"),cf="h-full w-full",Ul=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=no(a,e),u=Fl(dt),c=Fl(lt),y=oo(a,e,u),g=Bl(null),E=Bl(null),I=lf(T=>(g.current=T,a.registerFocusTarget(e,T),()=>{g.current=null,a.unregisterFocusTarget(e,T)}),[a,e]);return va(()=>{let T=g.current,L=T===null||!y?null:T.firstElementChild,d=L instanceof HTMLElement?L:null,b=E.current;b!==null&&b.body===d||(b!==null&&b.stop(),E.current=d===null?null:{body:d,stop:o(d)})}),va(()=>()=>{E.current?.stop(),E.current=null},[]),va(()=>{a.restoreFocus(e)},[a,e,n]),Ta(Lr.Provider,{value:l,children:Ta("div",{ref:I,className:df,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":u+1,"aria-setsize":c,"aria-labelledby":y&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":y&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!y?!0:void 0,"aria-current":s?"true":void 0,children:y?i:Ta("div",{...Pe,className:cf})})})};import{jsx as z,jsxs as ve}from"react/jsx-runtime";var pf=R("flex w-full flex-col",Ze,en,lr),ff=R(Ze,lr),bf=R("rounded-2xl",lr),yf=R("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",lr),Ie="bg-slate-200 dark:bg-slate-700",gf=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},Rf=()=>ve("div",{...Pe,className:ff,children:[ve("div",{className:"mb-4 flex flex-wrap gap-2",children:[z("div",{className:R("h-6 w-20 rounded-full",Ie)}),z("div",{className:R("h-6 w-24 rounded-full",Ie)}),z("div",{className:R("h-6 w-24 rounded-full",Ie)}),z("div",{className:R("h-6 w-28 rounded-full",Ie)})]}),ve("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"space-y-4",children:[z("div",{className:R("h-5 w-40 rounded",Ie)}),z("div",{className:R("h-5 w-56 rounded",Ie)}),z("div",{className:R("h-24 rounded-xl",Ie)})]}),ve("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[z("div",{className:R("mb-2 h-4 w-24 rounded",Ie)}),z("div",{className:R("mb-2 h-4 w-28 rounded",Ie)}),z("div",{className:R("h-4 w-32 rounded",Ie)})]})]}),ve("div",{className:"space-y-4",children:[z("div",{className:R("h-4 w-24 rounded",Ie)}),ve("div",{className:"flex flex-wrap gap-2",children:[z("div",{className:R("h-6 w-16 rounded-full",Ie)}),z("div",{className:R("h-6 w-16 rounded-full",Ie)}),z("div",{className:R("h-6 w-16 rounded-full",Ie)})]}),ve("div",{className:"space-y-2",children:[z("div",{className:R("h-16 rounded-xl",Ie)}),z("div",{className:R("h-16 rounded-xl",Ie)})]})]})]}),hf=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=wt(e.reportHubId,e.businessDate),{removeStaleItem:u}=De(),{draftLabelName:c,sourceTypeConfigs:y}=F(),[g,E]=Wl(!1),[I,T]=Wl(!1),L=Br(!1),d=Br(!1),b=Br(!1),C=Br(!1);Vl(()=>{if(l){C.current=!0;return}!(a||s||i)&&C.current&&e.reportHubId>0&&u(e.reportHubId)},[a,s,l,i,e.reportHubId,u]);let D=a?.labels.some(W=>W.name===c),k=n&&a?.userId===n,O=Qt(()=>{d.current=!0,L.current=!1,E(!0)},[]),H=Qt(()=>{b.current=!0,E(!1),T(!0)},[]),N=Qt(()=>{b.current=!0,E(!1)},[]),K=Qt(W=>{W===null||!d.current||(d.current=!1,W.focus())},[]),q=Qt(W=>{W===null||!b.current||(b.current=!1,W.focus())},[]);mf(()=>{g||(b.current=!1)},[g]),Vl(()=>{a&&k&&D&&!g&&!I?(E(!0),L.current=!0):a&&!D&&g&&L.current&&(E(!1),L.current=!1)},[a,k,D,g,I]);let G=Qt(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),Q=uf(),U=xa(()=>({heading:`${Q}-heading`,state:`${Q}-state`,attachments:`${Q}-attachments`,source:`${Q}-source`}),[Q]),X=a!==null&&a.attachments.length>0,$=a===null?void 0:_t(a.sourceType,y),V=[U.state,...X?[U.attachments]:[],...$!==void 0?[U.source]:[]].join(" "),re=!i&&a!==null&&!g?{kind:"card",ids:U,describedBy:V}:{kind:"label",label:se(e.businessDate)},ue=!i&&a===null&&s,Z=i?"error":a===null?s?"loading":"missing":g?"editing":"resolved";return z(Ul,{itemId:e.reportHubId,name:re,isBusy:ue,bodyKind:Z,observeRowHeight:t,cursor:o,children:i?z(Sf,{itemId:e.reportHubId}):a?g?z("div",{...Pe,className:bf,children:z(Gn,{report:a,onCancel:H,onPublishSuccess:N,titleInputRef:K})}):z(zl,{item:e,report:a,sourceConfig:$,textIds:U,onCommentAdded:r,userId:n,onEdit:k?O:void 0,editButtonRef:q,onCommentSectionRemoved:G}):z(Rf,{})})},$l=Kl(hf),zl=Kl(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:l})=>{let u=Br(null),{toggleStar:c,toggleRead:y,pendingStarUpdates:g,pendingReadUpdates:E,deleteReport:I,user:T}=De(),{uiComments:L,handleAddComment:d,handleDeleteComment:b,pendingDeleteId:C,setPendingDeleteId:D,resolvedIdMap:k}=Tr(t,T,a),{labels:O,headingLevel:H}=F(),N=ht[H],K=ln(t.sourceType,r),q=async ae=>{await d(ae),o?.(e.reportHubId)},G=g.current.get(t.reportHubId),Q=G===void 0?t.isStarred:G,U=E.current.get(t.reportHubId),X=U===void 0?t.isRead:U,$=!!(a&&t.userId===a),V=async()=>{try{await y(t.reportHubId,!X,t.date)}catch{}},re=async()=>{try{await c(t.reportHubId,!Q,t.date)}catch{}},ue=async()=>{confirm(O.confirmDelete)&&await I(t.reportHubId,t.date)},Z=xa(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
|
|
4
|
+
`).trim():"",[t.content]),W=xa(()=>{let ae=t.visitTimeFrom?.trim(),be=t.visitTimeTo?.trim();return ae&&be?`${ae} - ${be}`:ae||be||null},[t.visitTimeFrom,t.visitTimeTo]);return ve("div",{...Pe,onDoubleClick:i,className:pf,children:[z(He,{level:H,id:n.heading,className:"sr-only",children:`${se(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),z("span",{id:n.state,className:"sr-only",children:O.rowState({isRead:X,isStarred:Q})}),ve("div",{className:"flex flex-col gap-4",children:[z(ml,{report:t,sourceConfig:r,isRead:X,isStarred:Q,isMine:$,onToggleRead:V,onToggleStar:re,onEdit:i,editButtonRef:s,onDelete:ue,visitTimeDisplay:W,markerIds:n,labels:O}),ve("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"flex flex-col gap-4",children:[ve("div",{className:"grid gap-4 sm:grid-cols-2",children:[ve("div",{className:"flex flex-col gap-1",children:[z(He,{level:N,className:st,children:O.customer}),z("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),ve("div",{className:"flex flex-col gap-1",children:[z(He,{level:N,className:st,children:O.subject}),z("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),Z&&ve("div",{className:"flex flex-col gap-2",children:[z(He,{level:N,className:st,children:O.content}),z("div",{className:R("whitespace-pre-wrap",Qr),children:Z})]}),t.interviewers.length>0&&ve("div",{className:"flex flex-col gap-2",children:[z(He,{level:N,className:st,children:O.interviewers}),z("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ae=>z("li",{className:R(Ae,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:gf(ae,O)},JSON.stringify([ae.name,ae.affiliation])))})]}),z(Fn,{attachments:t.attachments}),z(Kn,{comments:L,canComment:K,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:b,pendingDeleteId:C,onPendingDeleteIdChange:D,resolvedIdMap:k,onSectionRemoved:l}),K&&z("div",{className:"mt-auto",ref:u,children:z($n,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:q})})]}),z(ll,{report:t,visitTimeDisplay:W,labels:O})]})]})]})});zl.displayName="DailyReportResolvedItem";var Sf=({itemId:e})=>{let{labels:t}=F();return z("div",{...Pe,className:yf,children:z("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Xl,useId as _f,useMemo as Zl,useRef as Df}from"react";import{useCallback as Ef,useLayoutEffect as Gl,useMemo as jl,useRef as Ia}from"react";var vf=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},Tf=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},xf=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},If=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?Tf(e.index,a,n.rowHeight,r.length):xf(e.index,a,ro(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Pr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},Lf=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ce(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Yl=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=Ia(null),a=Ia(e),i=Ia(r),s=Ef(()=>{let u=t.current,c=u===null?-1:u.getScrollPosition(),y=u===null||!(c>0)?null:u.getScrollAnchor(),g=a.current,E=y===null?void 0:g[y.index],I=u===null?0:u.getViewportSize();o.current=y===null||E===void 0||!(I>0)?null:{reportHubId:E.reportHubId,index:y.index,offsetPx:y.offsetPx,lastVisibleIndex:Pr(y,I,g.length,i.current),recordedAt:c}},[t]),l=jl(()=>({toIndex:(u,c)=>{let y=t.current;y!==null&&(y.scrollToIndex(u,c),s())},by:u=>{let c=t.current;c!==null&&(c.scrollBy(u),s())},resizeRow:(u,c)=>{let y=t.current;y!==null&&(y.updateItemSize(u,c),s())}}),[t,s]);return Gl(()=>{let u=a.current;a.current=e;let c=o.current,y=t.current;if(u===e||c===null||y===null||n())return;let g=If(c,y.getScrollPosition(),u,i.current,y.getViewportSize());if(g===null){o.current=null;return}let E=ce(e,g.reportHubId,g.index),I=E===-1?Lf(u,e,g):E;if(I===-1){o.current=null;return}if(I===g.index&&!vf(u,e,g.index,g.lastVisibleIndex)){o.current=g;return}y.scrollToIndex(I,{align:"top",offset:-g.offsetPx}),o.current={reportHubId:e[I].reportHubId,index:I,offsetPx:g.offsetPx,lastVisibleIndex:Pr({index:I,offsetPx:g.offsetPx},y.getViewportSize(),e.length,r),recordedAt:y.getScrollPosition()}},[e,t,r,n]),Gl(()=>{i.current=r},[r]),jl(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:l}),[s,l])};import{useCallback as Cf}from"react";var Af=20,ql=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>Cf(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:l=>o.current.findIndex(u=>u.reportHubId===l),getReportItem:l=>o.current[l],getReportIds:(l=Af)=>o.current.slice(0,l).map(u=>u.reportHubId),revealIndex:(l,u)=>n.toIndex(l,u)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as wf}from"react/jsx-runtime";var ao=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=Df(null),s=Xl(D=>(i.current=D,()=>{i.current=null}),[]),{handleRangeChange:l,handleScrollAdjust:u,scroller:c}=Yl({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:y,...g}=Hl({...a,containerRef:e,handleRef:i,scroller:c}),E=ql({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:c,itemsRef:r}),{labels:I}=F(),T=_f(),L=a.onSelect!==null,d=Xl(D=>{y(D),l(),o(D)},[y,l,o]),b=Zl(()=>({role:"list","aria-label":I.title,"aria-describedby":L?T:void 0}),[I.title,L,T]),C=Zl(()=>L?wf("span",{id:T,className:"sr-only",children:I.listKeyboardHelp}):null,[L,T,I.listKeyboardHelp]);return{...g,handleRangeChange:d,handleScrollAdjust:u,attachVirtualScroll:s,handleRef:i,scroller:c,attachScrollContainer:E,contentProps:b,keyboardHelp:C}};import{Fragment as Uf,jsx as Lt,jsxs as Bf}from"react/jsx-runtime";var Ql={pointerDragInputs:bn,wheelSpeedMultiplier:dn,inertiaOptions:Gt(!1),enableKeyboardNavigation:!1},Mf={...Ql,inertiaOptions:Gt(!0)},Jl="daily-report-detail-list",kf=R("relative w-full",on,rn),Pf=R(Ue,"relative"),Hf=300,Ca=e=>{let t=Oe(null),[r,n]=io(null),o=En(t),a=Tn(r),i=Le(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return Lt("div",{ref:i,className:tn,children:o===null?null:Lt(Ff,{...e,viewportHeight:o,reducedMotion:a})})},Ff=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=io(()=>{let f=o?.current;if(!f||f.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!f.topItem)return{initialScrollAnchor:void 0,restored:!0};let h=e.findIndex(w=>w.reportHubId===f.topItem?.reportHubId);return h!==-1?{initialScrollAnchor:{index:h,offsetPx:f.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:f.topItem.index,offsetPx:0},restored:!0}}),u=Oe(l),c=Oe(r??null),y=Oe(o?.current.measuredHeights??new Map),g=Oe(null),E=Rn(),I=ko(),[T]=io(xn),L=Oe(null),d=Oe(null),b=Oe(e),C=Oe(n);Of(()=>{b.current=e,C.current=n},[e,n]);let D=Oe(null),[k,O]=io(0),H=Oe(null),N=e.length,K=Le(f=>f>=N?un:e[f],[e,N]),q=Le(f=>{let h=y.current.get(K(f).reportHubId);return h===void 0?Ti:h},[K]),G=Le(f=>K(f).reportHubId,[K]),Q=La(()=>({kind:"measured",heightOf:q}),[q]),U=Le((f,h)=>{D.current={reportHubId:f,index:h},O(w=>w+1),C.current?.(f)},[]),X=Le((f,h)=>{if(N===0)return;let w=Math.max(0,f),M=Math.min(N-1,h);if(w>M)return;let B=new Set;for(let te=w;te<=M;te++){let Ge=K(te);if(Ge.businessDate&&B.add(Ge.businessDate),B.size>=Si)break}B.forEach(te=>{I(te)})},[K,N,I]),$=Le(f=>{if(N===0)return;let{renderingStartIndex:h,renderingEndIndex:w,visibleStartIndex:M}=f,B=K(M);B.businessDate&&T.setLabel(se(B.businessDate)),X(h,w),X(w+1,w+cn),X(h-cn,h-1)},[K,N,X,T]),V=Le(()=>H.current!==null,[]),{cursor:re,containerProps:ue,handleRangeChange:Z,handleScrollAdjust:W,attachVirtualScroll:ae,handleRef:be,scroller:Te,attachScrollContainer:he,contentProps:Se,keyboardHelp:ye,resolveSelectedIndex:$e,rememberSelection:nt}=ao({items:e,selectedId:r??null,onSelect:n===void 0?null:U,containerRef:g,rootRef:g,testId:Jl,itemsRef:b,rowSizing:Q,arrowAlign:"top",rowActivation:!0,isViewRevealPending:V,onRangeChange:$}),ze=Le((f,h)=>{if(be.current===null)return!1;let w=b.current,M=h!==null&&h.reportHubId===f?ce(w,f,h.index):$e(w,f);return M===-1?!1:(u.current&&(u.current=!1,f===c.current)||h!==null&&h.reportHubId===f&&h.index===M||Te.toIndex(M,{align:"top"}),!0)},[be,$e,Te]);It(()=>{let f=D.current;D.current=null,H.current=null,r!=null&&(ze(r,f)||(H.current=r))},[r,ze]),It(()=>{let f=H.current;f!==null&&ze(f,null)&&(H.current=null)},[e,ze]),It(()=>{let f=o?.current;f&&(f.anchorReportHubId=r??null)},[r,o]),It(()=>{D.current=null},[k]);let ke=Oe(null),Xe=Le(()=>{be.current&&(ke.current=be.current);let f=o?.current,h=ke.current;if(f&&h){let M=h.getScrollAnchor(),B=M?b.current[M.index]:void 0;M&&B&&(f.topItem={reportHubId:B.reportHubId,index:M.index,offsetPx:M.offsetPx})}let w=g.current;w&&(w.toggleAttribute(Ut,!0),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{w.toggleAttribute(Ut,!1),d.current=null},150))},[be,o]),ot=Le(f=>Lt(In,{...f,store:T}),[T]);It(()=>{let f=g.current;if(!f)return;let h=()=>{T.setWheelScrollActive(!0),L.current&&clearTimeout(L.current),L.current=window.setTimeout(()=>{T.setWheelScrollActive(!1),L.current=null},mn)};return f.addEventListener("wheel",h,{passive:!0}),()=>{f.removeEventListener("wheel",h),L.current&&clearTimeout(L.current)}},[T]);let Ce=Oe(null),at=Le(f=>{for(let h of f){let w=h.target.parentElement,M=w===null?null:Nt(w),B=w===null?null:zt(w),te=h.borderBoxSize[0];if(M===null||B===null||te===void 0)continue;let Ge=te.blockSize+2*yt;if(y.current.get(M)===Ge)continue;let sr=ce(b.current,M,B-1);sr!==-1&&(y.current.set(M,Ge),Te.resizeRow(sr,Ge))}},[Te]),it=Le(f=>{Ce.current===null&&(Ce.current=new ResizeObserver(at));let h=Ce.current;return h.observe(f),()=>h.unobserve(f)},[at]);It(()=>()=>{Ce.current?.disconnect(),Ce.current=null},[]),It(()=>{N!==0&&X(0,Math.min(N-1,cn))},[N,X]);let x=Oe(null),p=Le(f=>{let h=ce(b.current,f,null);h!==-1&&(x.current!==null&&clearTimeout(x.current),x.current=setTimeout(()=>{x.current=null;let w=ce(b.current,f,h);w!==-1&&Te.toIndex(w,{align:"bottom"})},Hf))},[Te]);It(()=>()=>{x.current!==null&&clearTimeout(x.current)},[]);let m=Le(f=>{if(!C.current)return;let h=Rt(f.target,g.current);if(h===null||zi(f.target,h))return;let w=hr(h,b.current);w!==null&&(nt(w.reportHubId,w.index),U(w.reportHubId,w.index))},[U,nt]),S=Le((f,h)=>Lt(dt.Provider,{value:h,children:Lt($l,{item:f,observeRowHeight:it,onCommentAdded:p,userId:t,cursor:re})},f.reportHubId),[it,p,t,re]),v=La(()=>({...fn,renderThumbOverlay:ot}),[ot]),A=La(()=>Lt(lt.Provider,{value:N,children:Lt(Nf,{ref:ae,itemCount:N,getItem:K,getItemKey:G,getItemHeight:q,viewportSize:a,initialScrollAnchor:s,overscanCount:pn,scrollBarOptions:v,behaviorOptions:i?Mf:Ql,onRangeChange:Z,onScrollAdjust:W,onScroll:Xe,testId:Jl,className:kf,locale:E.locale,labels:E.labels,contentProps:Se,children:S})}),[ae,N,K,G,q,a,i,s,v,Z,W,Xe,E.locale,E.labels,Se,S]);return Lt(Uf,{children:Bf("div",{ref:he,className:Pf,...ue,onClick:m,children:[ye,A]})})};import td from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as Vf,useRef as ed,useState as Wf}from"react";var Ur=(e,t=250)=>{let[r,n]=Wf(e),o=ed(e),a=ed(!0);return Vf(()=>{if(a.current){a.current=!1,o.current=e,n(e);return}let i=o.current;if(i===e)return;let s=null,l=null,u=c=>{l===null&&(l=c);let y=Math.min(1,Math.max(0,(c-l)/t)),g=1-(1-y)**3,E=Math.round(i+(e-i)*g);o.current=E,n(E),y<1&&(s=requestAnimationFrame(u))};return s=requestAnimationFrame(u),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as so,jsxs as lo}from"react/jsx-runtime";var Vr=()=>{let e=ct(),{labels:t}=F(),r=Ur(e.loadedCount),n=Ur(e.totalCount??0);if(e.phase==="streaming"){let o=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return lo("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:R(Ae,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[so("span",{"aria-hidden":"true",className:"size-2 rounded-full bg-blue-500 motion-safe:animate-pulse dark:bg-blue-400"}),o!==null?t.streamProgressRatio(r,n,o):t.streamProgressCount(r)]})}return e.phase==="retrying"?lo("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:R(Ae,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[so(td,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?lo("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:R(Ae,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,so("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>wn(),className:R("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",J),children:t.streamRetry})]}):e.isRevalidating?lo("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"revalidating",className:"inline-flex items-center gap-1 text-slate-500 text-xs dark:text-slate-400",children:[so(td,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as Cd,PanelGroup as dy,PanelResizeHandle as cy}from"@aiquants/resize-panels";import{VirtualScroll as uy}from"@aiquants/virtualscroll";import{useCallback as rt,useEffect as bo,useLayoutEffect as ka,useMemo as yo,useRef as ir,useState as Ro}from"react";import{useSyncExternalStore as Kf}from"react";var rd="(max-width: 639px)",$f=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(rd);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},zf=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(rd).matches:!1,Gf=()=>!1,nd=()=>Kf($f,zf,Gf);import{SwipeCloseGuardContext as gb,useOverlayEscapeStack as Rb,useSwipeGuardState as hb,useSwipeToDismissOverlay as Sb,useTapClick as Eb,useTransitionDisplay as vb}from"@aiquants/swipe-overlay";import{useCallback as mo,useEffect as rr,useId as Oa,useLayoutEffect as bd,useRef as tt,useState as po}from"react";import{createContext as jf,useMemo as Yf}from"react";var od=Object.freeze({id:null,indexHint:null}),co=jf(Object.freeze({selected:od,settled:od})),Wr=(e,t)=>{let{id:r,indexHint:n}=t;return Yf(()=>{if(r===null)return null;let o=ce(e,r,n);return o===-1?null:e[o]},[e,r,n])};import qf from"lucide-react/dist/esm/icons/check.js";import Xf from"lucide-react/dist/esm/icons/pencil.js";import Zf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Jf,useCallback as Ht,useContext as Qf,useDeferredValue as eb,useEffect as Aa,useId as dd,useLayoutEffect as Da,useMemo as tb,useRef as Ft,useState as _a}from"react";import*as pt from"@radix-ui/react-tabs";import*as Be from"react";import{jsx as Kr}from"react/jsx-runtime";var ad=Be.createContext(null),id=e=>{let t=Be.useContext(ad);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},sd=(e,t)=>`${e}-trigger-${t}`,ld=(e,t)=>`${e}-panel-${t}`,$r=Be.forwardRef(({value:e,children:t,...r},n)=>{let o=Be.useId(),a=Be.useMemo(()=>({baseId:o,value:e}),[o,e]);return Kr(pt.Root,{ref:n,value:e,...r,children:Kr(ad,{value:a,children:t})})});$r.displayName=pt.Root.displayName;var zr=Be.forwardRef(({className:e,...t},r)=>Kr(pt.List,{ref:r,className:R("inline-flex",e),...t}));zr.displayName=pt.List.displayName;var Gr=Be.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=id("TabsTrigger");return Kr(pt.Trigger,{ref:n,value:t,...r,id:sd(o,t),"aria-controls":ld(o,t),className:R(`${ni} ${J}`,e)})});Gr.displayName=pt.Trigger.displayName;var er=Be.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=id("TabsContent"),s=t===i;return Kr("div",{ref:o,role:"tabpanel",id:ld(a,t),"aria-labelledby":sd(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:R(`mt-2 data-[state=inactive]:hidden ${J}`,e),children:s?r:null})});er.displayName="TabsContent";import{Fragment as yb,jsx as P,jsxs as et}from"react/jsx-runtime";var md=R(Ct,"w-24 shrink-0"),cd={field:"flex items-baseline",label:md,value:"flex-1"},rb={field:"flex min-w-0 flex-1 items-baseline",label:md,value:"wrap-break-word min-w-0 flex-1"},nb={field:"flex flex-col gap-1",label:Ct,value:""},ob={field:"flex items-center gap-1",label:Ct,value:""},ud=R("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",vo,Ka,Wa),ab=R("flex flex-col gap-1",To),ib=R("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",J),sb=500,wa=e=>{let t=e,r=new Set;return{isDwelling:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},lb=(e,t,r,n,o,a)=>{let i=Ft(null),s=e?.reportHubId;Da(()=>{i.current=null},[s]),Aa(()=>{n||(i.current=null)},[n]);let l=Ht(async(u,c)=>{c||(i.current=u.reportHubId);try{await a(u.reportHubId,!u.isRead,u.date)}catch{}},[a]);return Aa(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let u=null,c=()=>{u!==null&&clearTimeout(u),u=o.isDwelling()?setTimeout(()=>l(e,!0),sb):null};c();let y=o.subscribe(c);return()=>{y(),u!==null&&clearTimeout(u)}},[e,t,r,l,o]),{handleToggleRead:l}},Na="article",db=["article","relations"],cb=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},ub=R("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",Ze),mb=9,pb=.875,fb=16,pd=4*Math.ceil((2*yt+2*Jr+2*Ga+mb*pb*fb)/4),fd=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=F(),a=dd(),i=dd(),[s,l]=_a(Na),{selected:u,settled:c}=Qf(co),y=Wr(e,u),g=Wr(e,eb(c)),E=y===null?null:y.reportHubId,T=(g===null?null:g.reportHubId)===E,[L]=_a(()=>wa(T));return Da(()=>{L.set(T)},[L,T]),P("aside",{"data-testid":"daily-report-side-pane","data-report-id":y?.reportHubId,"data-displayed-report-id":g?.reportHubId,"aria-busy":T?void 0:!0,className:ub,children:g===null?P("div",{className:R("flex h-full flex-1 items-center justify-center text-center",Vt),children:P("p",{className:nn,children:o.selectPrompt})}):P(uo,{item:g,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:L,userId:r,onReportDeleted:n},g.reportHubId)})},uo=Jf(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:u})=>{let[c,y]=_a(!1),{draftLabelName:g,labels:E,sourceTypeConfigs:I,headingLevel:T}=F(),{report:L,error:d,isLoading:b}=wt(e.reportHubId,e.businessDate),C=Ft(null),D=Ft(null),k=Ft(null),O=Ft(!1),H=Ft(!1),N=Ft(!1);Aa(()=>{if(!L)return;let W=L.labels.some(ae=>ae.name===g);L.reportHubId!==k.current?(k.current=L.reportHubId,W?(y(!0),O.current=!0):(y(!1),O.current=!1)):!W&&c&&O.current&&(y(!1),O.current=!1)},[L,c,g]);let K=!!(l&&L?.userId===l),q=Ht(()=>{H.current=!0,O.current=!1,y(!0)},[]),G=Ht(()=>{N.current=!0,y(!1)},[]),Q=Ht(W=>{W===null||!H.current||(H.current=!1,W.focus())},[]),U=Ht(W=>{W===null||!N.current||(N.current=!1,W.focus())},[]),X=Ht(()=>{D.current?.focus({preventScroll:!0})},[]);Da(()=>{c||!N.current||(N.current=!1,D.current?.focus())},[c]);let $=Ht(()=>{setTimeout(()=>{let W=C.current;W!==null&&W.scrollTo({top:W.scrollHeight,behavior:qi(W)})},100)},[]),V=se(e.businessDate),re=L===null?null:le(L.employeeName),ue=b||!L,Z=L===null?void 0:_t(L.sourceType,I);return et(yb,{children:[et("div",{className:ab,children:[P("dl",{className:"m-0",children:P(de,{label:E.businessDate,classNames:nb,children:P(He,{ref:D,level:T,id:t,tabIndex:-1,className:ib,children:V})})}),et("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[P("dl",{className:"m-0",children:P(de,{label:E.author,classNames:ob,valueId:r,children:ue?P("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),Z?P(Xt,{config:Z,className:"ml-2"}):null]})]}),et($r,{value:n,onValueChange:W=>o(cb(W)),className:"flex min-h-0 flex-1 flex-col",children:[P("div",{className:To,children:P(zr,{"aria-label":E.reportTabList,className:R(ti,"grid grid-cols-2 gap-1"),children:db.map(W=>P(Gr,{value:W,children:W==="article"?E.tabArticle:E.tabRelations},W))})}),P(er,{ref:C,value:"article",className:ud,children:c?L?P(Gn,{report:L,onCancel:G,onPublishSuccess:G,titleInputRef:Q}):P("p",{className:Vt,children:E.loading}):P(bb,{report:L,sourceConfig:Z,isLoading:b,error:d,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:$,userId:l,onEdit:K?q:void 0,editButtonRef:U,onReportDeleted:u,onCommentSectionRemoved:X})}),P(er,{value:"relations",className:ud,children:P("p",{className:Vt,children:E.relationsEmpty})})]})]})});uo.displayName="DailyReportSidePaneContent";var tr=({className:e="w-32"})=>P("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),bb=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:u,onEdit:c,editButtonRef:y,onReportDeleted:g,onCommentSectionRemoved:E})=>{let{toggleStar:I,toggleRead:T,deleteReport:L,user:d}=De(),{labels:b,headingLevel:C}=F(),D=ht[C],{uiComments:k,handleAddComment:O,handleDeleteComment:H,pendingDeleteId:N,setPendingDeleteId:K,resolvedIdMap:q}=Tr(e,d,u),{handleToggleRead:G}=lb(e,r,a,i,s,T),Q=e!==null&&ln(e.sourceType,t),U=async Z=>{await O(Z),l?.()},X=tb(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
|
|
5
5
|
`).replace(/<\/p>/gi,`
|
|
6
|
-
`).replace(/<[^>]+>/g,""):null,[e]),K=async Z=>{try{await I(Z.reportHubId,!Z.isStarred,Z.date)}catch{}},V=async Z=>{if(confirm(E.confirmDelete)){try{await R(Z.reportHubId,Z.date)}catch{alert(E.deleteFailed);return}g(Z.reportHubId)}};if(n)return k("p",{className:dr,children:E.reportLoadFailed(o.reportHubId)});let re=!e,ue=!!(c&&e?.userId===c);return et("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:d,children:[et("div",{className:"flex items-start gap-2",children:[k("dl",{className:"m-0 flex min-w-0 flex-1",children:k(de,{label:E.subject,classNames:zf,children:re?k(er,{className:"w-3/4"}):k("span",{className:"text-sm",children:le(e?.subject)})})}),!re&&e&&et("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[k("button",{type:"button",onClick:()=>K(e),className:De,title:e.isStarred?E.starRemove:E.starAdd,"aria-label":e.isStarred?E.starRemove:E.starAdd,"data-detail-star-button":e.reportHubId,children:k(Yt,{filled:e.isStarred})}),k("button",{type:"button",onClick:()=>z(e,!1),className:De,title:e.isRead?E.markUnread:E.markRead,"aria-label":e.isRead?E.markUnread:E.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?k(Ff,{className:ge.read}):k(Xt,{})}),d&&k("button",{ref:y,type:"button",onClick:d,"data-detail-edit-button":e.reportHubId,className:De,title:E.edit,"aria-label":E.edit,children:k(Bf,{className:ge.edit})}),ue&&k("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:De,title:E.deleteReport,"aria-label":E.deleteReport,children:k(Uf,{className:ge.delete})})]})]}),k("dl",{className:"m-0",children:k(de,{label:E.customer,classNames:nd,children:re?k(er,{className:"w-1/2"}):k("span",{className:"text-sm",children:le(e?.customerName)})})}),et("div",{className:"flex flex-col gap-2",children:[k(He,{level:_,className:st,children:E.content}),k("div",{className:h("min-h-22",jr),children:re?et("div",{className:"space-y-2",children:[k(er,{className:"w-full"}),k(er,{className:"w-11/12"}),k(er,{className:"w-4/5"})]}):X?k("div",{className:"whitespace-pre-wrap",children:X}):k("p",{className:"text-slate-500 dark:text-slate-400",children:E.contentEmpty})})]}),k("dl",{className:"m-0",children:k(de,{label:E.visitTime,classNames:nd,children:re?k(er,{className:"w-1/3"}):et("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&k(On,{attachments:e.attachments}),e&&k(Fn,{comments:F,canComment:Q,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:B,pendingDeleteId:M,onPendingDeleteIdChange:j,resolvedIdMap:q,onSectionRemoved:x,className:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:Q&&k(Bn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:U})})]})};import{jsx as Ht,jsxs as ld}from"react/jsx-runtime";var db="fixed inset-y-0 left-0 m-0 flex h-auto max-h-none w-auto max-w-none touch-manipulation overflow-hidden border-0 bg-transparent p-0 text-inherit outline-none backdrop:bg-transparent motion-safe:transition-[right] motion-safe:duration-500 motion-safe:ease-[ease]",cb={right:"var(--aqdr-overlay-right, 0px)"},ub="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",mb=h("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",ei),pb=h("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",J),fb=50,dd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=ao(!1),[l,c]=ao(!1),d=tt(null),y=tt(null),g=tt(null),x=tt(e),I=tt(!0),m=Fr(r,t),R=oo(()=>{let _=o.current;if(_===null)return;let F=_.ownerDocument.body;g.current={body:F,overflow:F.style.overflow},F.style.overflow="hidden"},[o]),b=oo(()=>{let _=g.current;_!==null&&(_.body.style.overflow=_.overflow,g.current=null)},[]);tr(()=>{if(I.current){I.current=!1,x.current=e;return}let _=!x.current;x.current=e,_&&e&&a!==null?s(!0):!e&&i&&(y.current=a,s(!1),b())},[e,a,i,b]);let E=e&&i&&m!==null;tr(()=>{if(E)c(!0);else{let _=setTimeout(()=>c(!1),300);return()=>clearTimeout(_)}},[E]),tr(()=>{if(e&&i&&a!==null&&!d.current){let _=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:_},"",window.location.href),d.current=_}else!(e&&i)&&d.current&&(d.current=null);return e&&i?R():b(),b},[e,i,a,R,b]),tr(()=>{let _=()=>{d.current&&(y.current=a,d.current=null,s(!1),n(null))};return window.addEventListener("popstate",_),()=>window.removeEventListener("popstate",_)},[a,n]);let w=oo(()=>{e&&(y.current=a,s(!1),n(null),d.current&&(d.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:E,handleOverlayClose:w,lastClosedItemIdRef:y,selectedItem:m}},cd=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=H(),s=tt(null),l=_a(),c=_a(),[d,y]=ao(Aa),g=ob(),x=_a(),I=tt(!1),m=tt(e),R=tt(null),[b]=ao(()=>La(e)),{isBlocked:E,requestBlock:w,reset:_}=ab(),F=lb(e,t),{overlayRef:N,overlayStyle:B,attemptClose:M,isSwiping:j}=ib({isOpen:e,onClose:r,isCloseBlocked:oo(()=>E,[E]),skipWhenTextSelected:!0}),q=tt(M);sd(()=>{q.current=M,m.current=e,b.set(e)},[M,e,b]),tr(()=>{if(e)return g({id:x,onEscape:K=>Ar(K)&&q.current()})},[e,g,x]),sd(()=>{let K=s.current;if(K===null)return;if(e){if(I.current)return;K.showModal(),I.current=!0,K.ownerDocument.getElementById(l)?.focus();return}if(!I.current)return;I.current=!1;let V=Ne(K);V!==null&&K.contains(V)&&Mo(V)&&V.blur(),K.close()},[e,l]),tr(()=>{e||_()},[e,_]);let z=sb(()=>M()),Q=K=>{let V=Mn(K);if(Ar(V)){M()&&K.preventDefault();return}if(V.key==="Escape"){R.current=K.timeStamp;return}let re=zs(V,K.currentTarget);re!==null&&(K.preventDefault(),re.kind==="wrap"&&re.element.focus())},U=K=>{K.preventDefault();let V=R.current;R.current=null,!(V!==null&&K.timeStamp-V<=fb)&&q.current()},X=K=>{let V=K.currentTarget;V.open||!m.current||(I.current=!1,!q.current()&&(V.showModal(),I.current=!0))};return F?ld("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:h(db,e&&!j?"pointer-events-auto":"pointer-events-none"),style:cb,inert:!e,onKeyDown:Q,onCancel:U,onClose:X,children:[Ht("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:h(ub,e?"opacity-100":"opacity-0"),...z}),Ht("div",{ref:N,"data-daily-report-overlay-panel":"",className:h(mb,e?"pointer-events-auto":"pointer-events-none"),style:B,children:ld("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Ht(nb.Provider,{value:{isBlocked:E,requestBlock:w},children:Ht("div",{"data-testid":"daily-report-side-pane","data-report-id":F.reportHubId,"data-displayed-report-id":F.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Ht(no,{item:F,headingId:l,authorId:c,activeTab:d,onActiveTabChange:y,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},F.reportHubId)})}),Ht("div",{className:"flex justify-start",children:Ht("button",{type:"button","data-overlay-interactive":"true",className:pb,onClick:()=>M(),children:i.close})})]})})]}):null};import Ab from"lucide-react/dist/esm/icons/check.js";import{createContext as _b,memo as bd,useCallback as Db,useContext as lo,useEffect as wb,useId as so,useMemo as yd,useRef as Nb}from"react";import{createContext as bb,createElement as yb,useLayoutEffect as gb,useMemo as Rb,useRef as hb,useState as Sb}from"react";var vb=6.75,Eb=4,Tb=1e-6,xb=e=>4*Math.ceil((2*Bt+2*Wa+Eb+vb*e-Tb)/4),io=bb(null),Cb="data-daily-report-root-font-size-probe",Ib={position:"fixed",insetBlockStart:0,insetInlineStart:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden",writingMode:"horizontal-tb",boxSizing:"content-box",padding:0,border:0,margin:0,blockSize:"1rem",inlineSize:0},Lb=e=>{let t=Ge(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},ud=()=>{let e=hb(null),[t,r]=Sb(null);gb(()=>{let o=e.current;if(o===null)throw new Error("[daily-report] useListRowSlotHeight needs the List to render remProbe");let a=null,i=()=>{let l=xb(Lb(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Rb(()=>yb("div",{ref:e,"aria-hidden":!0,[Cb]:"",style:Ib}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as nr}from"react/jsx-runtime";var Ob=h(pt,zr,Gr,$r),Mb=h("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",Xe,Yr,Va),kb="min-w-24",Pb="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Hb={touchAction:"manipulation"},Fb=h("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",kb),Bb=h("relative z-10",De),Ub=h("flex h-full",Xe),Vb="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",rr="h-4 rounded bg-slate-200 dark:bg-slate-700",Wb=()=>Y("div",{"data-skeleton":!0,...Pe,className:Ub,children:nr("div",{className:Vb,children:[nr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:h(rr,"w-24")}),Y("div",{className:h(rr,"w-24")}),Y("div",{className:h(rr,"w-24")})]}),nr("div",{className:"space-y-2",children:[Y("div",{className:h(rr,"w-full")}),Y("div",{className:h(rr,"w-11/12")}),Y("div",{className:h(rr,"w-5/6")})]})]})}),Kb=e=>{e.target===e.currentTarget&&e.preventDefault()},$b="h-full w-full",gd=_b(!1),md=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=lo(yt),a=lo(bt),i=lo(io);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=yd(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=Xn(t,e),d=Zn(t,e,o);return Y(Er.Provider,{value:c,children:Y(gd.Provider,{value:l,children:Y("div",{ref:r?.focusTargetRef,role:"listitem","data-daily-report-row":e,"aria-posinset":o+1,"aria-setsize":a,"aria-label":r?.label,"aria-busy":r?.isBusy||!d?!0:void 0,"aria-current":r!==null&&l?"true":void 0,tabIndex:r===null?-1:void 0,className:Ob,style:s,onMouseDown:Kb,children:d?n:Y("div",{...Pe,className:$b})})})})},zb=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,Gb=e=>{if(!e)return[];let t=[],r="",n=0,o=()=>{let a=r.replace(/\u3000/g," ").trim();a.length>0&&t.push(a),r=""};for(let a of e.matchAll(zb))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===Ri))return t;return r+=e.slice(n),o(),t},jb=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=lo(gd);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:Fb,children:o})},pd=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=jt();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Bb,children:n})},Rd=bd(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=H(),{toggleStar:i,toggleRead:s}=_e(),l=so(),c=so(),d=so(),y=so(),g=yd(()=>Gb(t.content??null),[t.content]),x=le(t.employeeName),I=se(e.businessDate),m=N=>{N.currentTarget.focus({preventScroll:!0});let B=Ui(N.currentTarget);B!==null&&r(e.reportHubId,B)},R=async()=>{let N=!t.isStarred;try{await i(t.reportHubId,N,t.date)}catch{}},b=async()=>{let N=!t.isRead;try{await s(t.reportHubId,N,t.date)}catch{}},E=t.isStarred?o.starRemove:o.starAdd,w=t.isRead?o.markUnread:o.markRead,_=At(t.sourceType,a),F=[c,...t.attachments.length>0?[d]:[],..._===void 0?[]:[y],l].join(" ");return nr("div",{"data-daily-report-card":!0,...Pe,style:Hb,className:Mb,children:[Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),nr(jb,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:F,onClick:m,children:[Y("span",{className:h(Le,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:I})})," ",Y("span",{className:h(Le,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:x})})]}),nr("div",{className:h($a,"ml-auto"),children:[Y(cr,{id:d,count:t.attachments.length,label:o.attachments}),_?Y(qt,{id:y,config:_}):null,Y(pd,{label:E,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:R,children:Y(Yt,{filled:t.isStarred})}),Y(pd,{label:w,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(Ab,{className:ge.read}):Y(Xt,{})})]}),Y("div",{id:l,className:Pb,children:g.length>0?g.map((N,B)=>Y("p",{className:"wrap-break-word line-clamp-1",children:N},B)):Y("p",{children:o.contentEmptyPreview})})]})});Rd.displayName="ListReportCard";var fd=(e,t)=>Db(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Da=bd(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=H(),{removeStaleItem:o}=_e(),{report:a,error:i,isLoading:s,isRefetching:l}=Dt(e.reportHubId,e.businessDate),c=Nb(!1);wb(()=>{if(l){c.current=!0;return}!(a||s||i)&&c.current&&e.reportHubId>0&&o(e.reportHubId)},[a,s,l,i,e.reportHubId,o]);let d=fd(r,e.reportHubId),y=fd(r,e.reportHubId),g=(x,I)=>Y(md,{reportHubId:e.reportHubId,cursor:r,cardless:{label:se(e.businessDate),isBusy:I,focusTargetRef:d},children:x});return i?g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:Y("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?g(Y(Wb,{}),!0):a?Y(md,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(Rd,{item:e,report:a,onSelect:t,focusTargetRef:y})}):g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:Y("p",{children:n.reportNotFound})}),!1)});Da.displayName="ListReportItem";import{Fragment as dy,jsx as Me,jsxs as mo}from"react/jsx-runtime";var Ed={pointerDragInputs:dn,inertiaOptions:zt(!1),wheelSpeedMultiplier:rn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Zb={...Ed,inertiaOptions:zt(!0)},Jb=Object.freeze({value:360,unit:"pixels"}),Sd=Object.freeze({value:160,unit:"pixels"}),Qb=Object.freeze({value:520,unit:"pixels"}),ey=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),ty=h("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",J),ry=h("relative w-full",Jr,Xr),ny=h(Be,"relative isolate overflow-hidden"),vd="daily-report-list",oy=()=>!1,ay=e=>{let[t,r]=po(!1);return wa(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<gi)},a=new(Ge(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Na=e=>{let t=or(null),[r,n]=po(null),o=yn(t),a=ay(t),{rowSlotHeight:i,remProbe:s}=ud(),l=Rn(r),c=rt(d=>(t.current=d,n(d),()=>{t.current=null,n(null)}),[]);return mo("div",{ref:c,className:qr,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Me(iy,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:l})]})},iy=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,isContainerNarrow:c,reducedMotion:d})=>{let[y]=po(()=>a?.current??0),g=or(null),{labels:x}=H(),I=mn(),[m]=po(hn),b=Xl()||c,E=or(null),w=e.length,_=or(null),F=rt(f=>n(f),[n]),N=rt(f=>f<w?e[f]:on,[e,w]),B=rt(f=>{let S=N(f.visibleStartIndex);S.reportHubId>0&&m.setLabel(se(S.businessDate))},[N,m]),M=uo(()=>({kind:"uniform",rowHeight:l}),[l]),j=or(e);wa(()=>{j.current=e},[e]);let{cursor:q,containerProps:z,handleRangeChange:Q,handleScrollAdjust:U,attachVirtualScroll:X,handleRef:K,scroller:V,attachScrollContainer:re,contentProps:ue,keyboardHelp:Z,selection:W,settledSelection:ie,resolveSelectedIndex:be,rememberSelection:Ee,focusAfterRemoval:Re}=Jn({items:e,selectedId:r,onSelect:F,containerRef:g,rootRef:i,testId:vd,itemsRef:j,rowSizing:M,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:oy,onRangeChange:B}),{isMobileDetailOpen:he,setIsMobileDetailOpen:ye,isOverlayMounted:Ke,shouldShowOverlay:nt,handleOverlayClose:$e,lastClosedItemIdRef:ke,selectedItem:qe}=dd({isMobileLayout:b,selection:W,dailyReportItems:e,onSelectItem:n,rootRef:i}),ot=uo(()=>({selected:W,settled:ie}),[W,ie]);co(()=>{let f=g.current,S=()=>{m.setWheelScrollActive(!0),E.current&&clearTimeout(E.current),E.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),E.current=null},an)};return f?.addEventListener("wheel",S,{passive:!0}),()=>{f?.removeEventListener("wheel",S),E.current&&clearTimeout(E.current)}},[m]),co(()=>{!w&&r!==null&&n(null)},[w,r,n]),co(()=>{if(he||ke.current===null)return;let f=ke.current;ke.current=null;let S=be(e,f);if(S===-1)return;let D=K.current;if(D!==null){let O=wr(D,S,e.length,M),P=O===null?"none":Rl(O);P!=="none"&&V.toIndex(S,{align:P})}q.requestFocus(f)},[he,e,ke,q,be,K,M,V]),co(()=>{w>0&&m.setLabel(se(e[0].businessDate))},[e,w,m]);let Ie=rt((f,S)=>{f<=0||(Ee(f,S),n(f),b&&ye(!0))},[b,n,ye,Ee]),at=rt(()=>l,[l]),it=or(l);wa(()=>{let f=it.current;it.current=l;let S=K.current;if(f===l||S===null)return;let D=S.getScrollPosition();D>0&&V.by(D*l/f-D)},[K,l,V]);let C=rt(f=>N(f).reportHubId,[N]),p=rt((f,S)=>Me(yt.Provider,{value:S,children:Me(Da,{item:f,onSelect:Ie,cursor:q})},f.reportHubId),[Ie,q]),u=rt(f=>{a&&(a.current=f);let S=g.current;S&&(S.toggleAttribute(Ft,!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{S.toggleAttribute(Ft,!1),_.current=null},150))},[a]),v=rt(f=>Me(Sn,{...f,store:m}),[m]),T=uo(()=>mo("div",{ref:re,className:ny,...z,children:[Z,Me(bt.Provider,{value:w,children:Me(io.Provider,{value:l,children:Me(Xb,{ref:X,itemCount:w,getItem:N,getItemKey:C,getItemHeight:at,viewportSize:s,initialScrollOffset:y,overscanCount:sn,scrollBarOptions:{...ln,renderThumbOverlay:v},behaviorOptions:d?Zb:Ed,onRangeChange:Q,onScrollAdjust:U,onScroll:u,testId:vd,className:ry,locale:I.locale,labels:I.labels,contentProps:ue,children:p})})})]}),[re,X,z,w,N,C,at,s,l,d,y,v,Q,U,u,Z,ue,I.locale,I.labels,p]),L=uo(()=>mo(Yb,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Me(hd,{id:"daily-report-list-panel",defaultSize:Jb,minSize:Sd,maxSize:Qb,contentOverflow:"hidden",className:sy,children:T}),Me(qb,{id:"daily-report-list-handle",thickness:10,indicator:ey,className:ty,"aria-label":x.resizeHandle}),Me(hd,{id:"daily-report-detail-panel",minSize:Sd,contentOverflow:"hidden",className:ly,children:Me(id,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:Re})})]}),[T,x.resizeHandle,e,t,o,Re]);return mo(dy,{children:[b?Me("div",{className:Be,children:T}):Me(ro.Provider,{value:ot,children:L}),Ke&&Me(cd,{isOpen:nt,selectedItem:qe,onClose:$e,autoMarkRead:b&&t,userId:o,onReportDeleted:Re})]})},sy=h("flex min-h-0",Ha),ly=h("flex min-h-0 flex-1",pt);import{useEffect as Ld,useRef as xy}from"react";import uy from"lucide-react/dist/esm/icons/plus.js";import my from"lucide-react/dist/esm/icons/refresh-cw.js";import py from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as Id,useMemo as fy,useRef as Ma,useState as ka}from"react";import{useSearchParams as by}from"react-router";import*as Kr from"@radix-ui/react-switch";import*as xd from"react";import{jsx as Td}from"react/jsx-runtime";var fo=xd.forwardRef(({className:e,...t},r)=>Td(Kr.Root,{className:h(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${ja} ${qa} ${J}`,e),...t,ref:r,children:Td(Kr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Ya} ${Xa}`})}));fo.displayName=Kr.Root.displayName;import{useSyncExternalStore as cy}from"react";var Cd=e=>{let t=e,r=new Set;return{get:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Oa=e=>cy(e.subscribe,e.get,e.get);import{Fragment as Ty,jsx as ae,jsxs as Ct}from"react/jsx-runtime";var yy="list",gy=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},Ry=h(Ja,ti,"ml-[8px] flex flex-wrap items-center gap-2"),hy=({count:e})=>{let{labels:t}=H(),r=Pr(e);return ae("span",{className:"tabular-nums",children:t.totalCount(r)})},Sy=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=Oa(e);return ae(Na,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},vy=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=Oa(e);return ae(Ta,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},Ey=({tabItems:e,actions:t})=>{let[r,n]=ka(yy),{labels:o}=H();return Ct(Ur,{value:r,onValueChange:a=>n(gy(a)),className:h("@container/views",Be),children:[Ct("div",{className:h(Ry,ri[r]),children:[ae(Vr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>ae(Wr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>ae(Qt,{value:a,className:h("mt-0",Be),children:i},a))]})},Pa=({userId:e})=>{let[t,r]=ka(!1),{labels:n,renderHeader:o,showDevControls:a}=H(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:d,clearCacheAndRefetch:y}=_e(),[g]=by(),x=Ma(0),I=Ma({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[m]=ka(()=>Cd(c.length===0?null:c[0].reportHubId)),R=Ma(!1);Id(()=>{!R.current&&c.length>0&&(R.current=!0,m.get()===null&&m.set(c[0].reportHubId))},[c,m]);let b=async()=>{await d()},E=async()=>{await y()},w=async()=>{let B=g.get("businessDate")||ho(),M=await l(B);m.set(M)};Id(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let _=N=>{r(N),localStorage.setItem("daily-report-auto-read",String(N))},F=fy(()=>[{value:"list",label:n.tabList,content:ae(Sy,{selectionStore:m,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:x})},{value:"tree",label:n.tabTree,content:ae("div",{className:h("flex flex-1 items-center justify-center",Ut),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:ae(vy,{selectionStore:m,dailyReportItems:c,userId:e,scrollRestoreRef:I})}],[c,t,e,n,m]);return Ct(Ty,{children:[o({title:n.title,annotation:Ct("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[ae(Hr,{}),ae(hy,{count:c.length}),ae("span",{children:n.debounce(Wt)})]})}),ae("div",{className:sr,children:ae("div",{className:lr,children:ae(Ey,{tabItems:F,actions:Ct("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[Ct(ct,{size:"sm",onClick:w,className:"flex h-6 items-center gap-1 rounded-lg bg-amber-700 px-2 font-medium text-white text-xs shadow-xs hover:bg-amber-800 dark:bg-amber-700 dark:hover:bg-amber-800",title:n.createReportTitle,children:[ae(uy,{className:"h-3 w-3"}),ae("span",{children:n.createReport})]}),a&&Ct("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[ae("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),ae(fo,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:i,onCheckedChange:s}),ae(ct,{variant:"ghost",size:"icon",onClick:b,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:n.devReload,"data-testid":"dev-reload-btn",children:ae(py,{className:"size-3"})}),ae(ct,{variant:"ghost",size:"icon",onClick:E,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:ae(my,{className:"size-3"})})]}),Ct("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[ae(fo,{id:"auto-read-mode",checked:t,onCheckedChange:_}),ae(_r,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as Dd,jsx as pe,jsxs as bo}from"react/jsx-runtime";var Ad=h(Be,pt),_d=h("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",Xe),Cy=()=>{let{labels:e,renderHeader:t}=H();return bo(Dd,{children:[t({title:e.title,annotation:pe("span",{className:h("font-bold",dr),children:e.loadErrorBadge})}),pe("div",{className:sr,children:pe("div",{className:lr,children:pe("div",{className:Ad,children:bo("div",{className:h(_d,"border-red-200 dark:border-red-900"),children:[pe("p",{className:h("font-medium",dr),children:e.loadError}),pe("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>In(),className:h("rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",J),children:e.reload})]})})})})]})},Iy=()=>{let{labels:e,renderHeader:t}=H();return bo(Dd,{children:[t({title:e.title,annotation:bo("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[pe(Hr,{}),pe("span",{children:e.totalCountLoading}),pe("span",{children:e.debounce(Wt)})]})}),pe("div",{className:sr,children:pe("div",{className:lr,children:pe("div",{className:Ad,children:pe("div",{className:_d,children:e.loadingIds})})})})]})},Ly=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=H(),o=lt(),a=xy(n);a.current=n,Ld(()=>{gr({apiBasePath:r,userKey:t??null})},[r,t]),Ld(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return pe(Yo,{children:pe(Zo,{user:e,initialItems:o.items,userId:t,children:i?pe(Pa,{userId:t}):o.phase==="failed"?pe(Cy,{}):pe(Iy,{})},t??"anonymous")})},Ay=({config:e,...t})=>pe(Co,{config:e,children:pe(Ly,{...t})});var _y=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:l,nextUrl:c,text:d})=>{if(!n)return!1;if(!(r.pathname===c.pathname&&r.search===c.search&&r.hash===c.hash))return n;if(a){let x=a.get("intent");if(x==="toggleRead"||x==="toggleStar"||x==="addComment"||x==="deleteComment"||x==="create"||x==="update"||x==="publish"||x==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||l!==void 0||d!==void 0?n:!1},Dy=e=>{let t=async r=>{$o();let n=await r.serverLoader(),o=n.userId;return Ko({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{ci as DAILY_REPORT_LABEL_CATALOGS,So as DAILY_REPORT_LABEL_KEYS,ac as DAILY_REPORT_LAYOUT_LATTICE_PX,Zo as DailyReportActionProvider,cr as DailyReportAttachmentIndicator,Co as DailyReportConfigProvider,Ta as DailyReportDetailList,Yo as DailyReportErrorProvider,yr as DailyReportIdsStreamClient,Hr as DailyReportIdsStreamStatus,Na as DailyReportList,Ay as DailyReportPage,Pa as DailyReportResolvedContent,Ko as bootstrapDailyReportIdsStreamSession,Dy as createDailyReportClientLoader,_y as dailyReportShouldRevalidate,ur as defaultDailyReportClientConfig,gr as ensureDailyReportIdsStreamSession,$o as primeDailyReportIdsStreamSession,To as resolveDailyReportLabels,At as resolveSourceTypeConfig,Ln as resyncDailyReportIdsStream,_e as useDailyReportActionContext,hr as useDailyReportComments,H as useDailyReportConfig,Dt as useDailyReportDetail,lt as useDailyReportIdsStream,wo as useDailyReportPrefetch,jo as useDailyReportSseConnection};
|
|
6
|
+
`).replace(/<[^>]+>/g,""):null,[e]),$=async Z=>{try{await I(Z.reportHubId,!Z.isStarred,Z.date)}catch{}},V=async Z=>{if(confirm(b.confirmDelete)){try{await L(Z.reportHubId,Z.date)}catch{alert(b.deleteFailed);return}g(Z.reportHubId)}};if(n)return P("p",{className:ur,children:b.reportLoadFailed(o.reportHubId)});let re=!e,ue=!!(u&&e?.userId===u);return et("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:c,children:[et("div",{className:"flex items-start gap-2",children:[P("dl",{className:"m-0 flex min-w-0 flex-1",children:P(de,{label:b.subject,classNames:rb,children:re?P(tr,{className:"w-3/4"}):P("span",{className:"text-sm",children:le(e?.subject)})})}),!re&&e&&et("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[P("button",{type:"button",onClick:()=>$(e),className:we,title:e.isStarred?b.starRemove:b.starAdd,"aria-label":e.isStarred?b.starRemove:b.starAdd,"data-detail-star-button":e.reportHubId,children:P(qt,{filled:e.isStarred})}),P("button",{type:"button",onClick:()=>G(e,!1),className:we,title:e.isRead?b.markUnread:b.markRead,"aria-label":e.isRead?b.markUnread:b.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?P(qf,{className:ge.read}):P(Zt,{})}),c&&P("button",{ref:y,type:"button",onClick:c,"data-detail-edit-button":e.reportHubId,className:we,title:b.edit,"aria-label":b.edit,children:P(Xf,{className:ge.edit})}),ue&&P("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:we,title:b.deleteReport,"aria-label":b.deleteReport,children:P(Zf,{className:ge.delete})})]})]}),P("dl",{className:"m-0",children:P(de,{label:b.customer,classNames:cd,children:re?P(tr,{className:"w-1/2"}):P("span",{className:"text-sm",children:le(e?.customerName)})})}),et("div",{className:"flex flex-col gap-2",children:[P(He,{level:D,className:st,children:b.content}),P("div",{className:R("min-h-22",Qr),children:re?et("div",{className:"space-y-2",children:[P(tr,{className:"w-full"}),P(tr,{className:"w-11/12"}),P(tr,{className:"w-4/5"})]}):X?P("div",{className:"whitespace-pre-wrap",children:X}):P("p",{className:"text-slate-500 dark:text-slate-400",children:b.contentEmpty})})]}),P("dl",{className:"m-0",children:P(de,{label:b.visitTime,classNames:cd,children:re?P(tr,{className:"w-1/3"}):et("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&P(Fn,{attachments:e.attachments}),e&&P(Kn,{comments:k,canComment:Q,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:H,pendingDeleteId:N,onPendingDeleteIdChange:K,resolvedIdMap:q,onSectionRemoved:E,className:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:Q&&P($n,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:U})})]})};import{jsx as Bt,jsxs as yd}from"react/jsx-runtime";var Tb="fixed inset-y-0 left-0 m-0 flex h-auto max-h-none w-auto max-w-none touch-manipulation overflow-hidden border-0 bg-transparent p-0 text-inherit outline-none backdrop:bg-transparent motion-safe:transition-[right] motion-safe:duration-500 motion-safe:ease-[ease]",xb={right:"var(--aqdr-overlay-right, 0px)"},Ib="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",Lb=R("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",oi),Cb=R("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",J),Ab=50,gd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=po(!1),[l,u]=po(!1),c=tt(null),y=tt(null),g=tt(null),E=tt(e),I=tt(!0),T=Wr(r,t),L=mo(()=>{let D=o.current;if(D===null)return;let k=D.ownerDocument.body;g.current={body:k,overflow:k.style.overflow},k.style.overflow="hidden"},[o]),d=mo(()=>{let D=g.current;D!==null&&(D.body.style.overflow=D.overflow,g.current=null)},[]);rr(()=>{if(I.current){I.current=!1,E.current=e;return}let D=!E.current;E.current=e,D&&e&&a!==null?s(!0):!e&&i&&(y.current=a,s(!1),d())},[e,a,i,d]);let b=e&&i&&T!==null;rr(()=>{if(b)u(!0);else{let D=setTimeout(()=>u(!1),300);return()=>clearTimeout(D)}},[b]),rr(()=>{if(e&&i&&a!==null&&!c.current){let D=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:D},"",window.location.href),c.current=D}else!(e&&i)&&c.current&&(c.current=null);return e&&i?L():d(),d},[e,i,a,L,d]),rr(()=>{let D=()=>{c.current&&(y.current=a,c.current=null,s(!1),n(null))};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[a,n]);let C=mo(()=>{e&&(y.current=a,s(!1),n(null),c.current&&(c.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:b,handleOverlayClose:C,lastClosedItemIdRef:y,selectedItem:T}},Rd=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=F(),s=tt(null),l=Oa(),u=Oa(),[c,y]=po(Na),g=Rb(),E=Oa(),I=tt(!1),T=tt(e),L=tt(null),[d]=po(()=>wa(e)),{isBlocked:b,requestBlock:C,reset:D}=hb(),k=vb(e,t),{overlayRef:O,overlayStyle:H,attemptClose:N,isSwiping:K}=Sb({isOpen:e,onClose:r,isCloseBlocked:mo(()=>b,[b]),skipWhenTextSelected:!0}),q=tt(N);bd(()=>{q.current=N,T.current=e,d.set(e)},[N,e,d]),rr(()=>{if(e)return g({id:E,onEscape:$=>Nr($)&&q.current()})},[e,g,E]),bd(()=>{let $=s.current;if($===null)return;if(e){if(I.current)return;$.showModal(),I.current=!0,$.ownerDocument.getElementById(l)?.focus();return}if(!I.current)return;I.current=!1;let V=Ne($);V!==null&&$.contains(V)&&Fo(V)&&V.blur(),$.close()},[e,l]),rr(()=>{e||D()},[e,D]);let G=Eb(()=>N()),Q=$=>{let V=Bn($);if(Nr(V)){N()&&$.preventDefault();return}if(V.key==="Escape"){L.current=$.timeStamp;return}let re=Xs(V,$.currentTarget);re!==null&&($.preventDefault(),re.kind==="wrap"&&re.element.focus())},U=$=>{$.preventDefault();let V=L.current;L.current=null,!(V!==null&&$.timeStamp-V<=Ab)&&q.current()},X=$=>{let V=$.currentTarget;V.open||!T.current||(I.current=!1,!q.current()&&(V.showModal(),I.current=!0))};return k?yd("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${u}`,tabIndex:-1,className:R(Tb,e&&!K?"pointer-events-auto":"pointer-events-none"),style:xb,inert:!e,onKeyDown:Q,onCancel:U,onClose:X,children:[Bt("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:R(Ib,e?"opacity-100":"opacity-0"),...G}),Bt("div",{ref:O,"data-daily-report-overlay-panel":"",className:R(Lb,e?"pointer-events-auto":"pointer-events-none"),style:H,children:yd("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Bt(gb.Provider,{value:{isBlocked:b,requestBlock:C},children:Bt("div",{"data-testid":"daily-report-side-pane","data-report-id":k.reportHubId,"data-displayed-report-id":k.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Bt(uo,{item:k,headingId:l,authorId:u,activeTab:c,onActiveTabChange:y,autoMarkRead:n,isActive:e,dwell:d,userId:o,onReportDeleted:a},k.reportHubId)})}),Bt("div",{className:"flex justify-start",children:Bt("button",{type:"button","data-overlay-interactive":"true",className:Cb,onClick:()=>N(),children:i.close})})]})})]}):null};import Wb from"lucide-react/dist/esm/icons/check.js";import{createContext as Kb,memo as Td,useCallback as $b,useContext as or,useEffect as zb,useId as jr,useMemo as xd,useRef as Gb}from"react";import{createContext as _b,createElement as Db,useLayoutEffect as wb,useMemo as Nb,useRef as Ob,useState as Mb}from"react";var kb=6.75,Pb=4,Hb=1e-6,Fb=e=>4*Math.ceil((2*yt+2*Jr+Pb+kb*e-Hb)/4),fo=_b(null),Bb="data-daily-report-root-font-size-probe",Ub={position:"fixed",insetBlockStart:0,insetInlineStart:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden",writingMode:"horizontal-tb",boxSizing:"content-box",padding:0,border:0,margin:0,blockSize:"1rem",inlineSize:0},Vb=e=>{let t=je(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},hd=()=>{let e=Ob(null),[t,r]=Mb(null);wb(()=>{let o=e.current;if(o===null)throw new Error("[daily-report] useListRowSlotHeight needs the List to render remProbe");let a=null,i=()=>{let l=Fb(Vb(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Nb(()=>Db("div",{ref:e,"aria-hidden":!0,[Bb]:"",style:Ub}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as ar}from"react/jsx-runtime";var jb=R(gt,Xr,Zr,qr),Yb=R("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",Ze,en,za),qb="min-w-24",Xb="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Zb={touchAction:"manipulation"},Jb=R("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",qb),Qb=R("relative z-10",we),ey=R("flex h-full",Ze),ty="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",nr="h-4 rounded bg-slate-200 dark:bg-slate-700",ry=()=>Y("div",{"data-skeleton":!0,...Pe,className:ey,children:ar("div",{className:ty,children:[ar("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:R(nr,"w-24")}),Y("div",{className:R(nr,"w-24")}),Y("div",{className:R(nr,"w-24")})]}),ar("div",{className:"space-y-2",children:[Y("div",{className:R(nr,"w-full")}),Y("div",{className:R(nr,"w-11/12")}),Y("div",{className:R(nr,"w-5/6")})]})]})}),ny=e=>{e.target===e.currentTarget&&e.preventDefault()},oy="h-full w-full",Id=Kb(!1),Sd=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=or(dt),a=or(lt),i=or(fo);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=xd(()=>({height:i}),[i]),{isCurrent:l,isTabStop:u}=no(t,e),c=oo(t,e,o);return Y(Lr.Provider,{value:u,children:Y(Id.Provider,{value:l,children:Y("div",{ref:r?.focusTargetRef,role:"listitem","data-daily-report-row":e,"aria-posinset":o+1,"aria-setsize":a,"aria-label":r?.label,"aria-busy":r?.isBusy||!c?!0:void 0,"aria-current":r!==null&&l?"true":void 0,tabIndex:r===null?-1:void 0,className:jb,style:s,onMouseDown:ny,children:c?n:Y("div",{...Pe,className:oy})})})})},ay=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,iy=e=>{if(!e)return[];let t=[],r="",n=0,o=()=>{let a=r.replace(/\u3000/g," ").trim();a.length>0&&t.push(a),r=""};for(let a of e.matchAll(ay))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===vi))return t;return r+=e.slice(n),o(),t},sy=({id:e})=>{let{labels:t}=F(),r=or(dt),n=or(lt);return Y("span",{id:e,hidden:!0,children:t.listRowPosition(r+1,n)})},ly=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=or(Id);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:Jb,children:o})},Ed=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=Yt();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Qb,children:n})},Ld=Td(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=F(),{toggleStar:i,toggleRead:s}=De(),l=jr(),u=jr(),c=jr(),y=jr(),g=jr(),E=xd(()=>iy(t.content??null),[t.content]),I=le(t.employeeName),T=se(e.businessDate),L=H=>{H.currentTarget.focus({preventScroll:!0});let N=$i(H.currentTarget);N!==null&&r(e.reportHubId,N)},d=async()=>{let H=!t.isStarred;try{await i(t.reportHubId,H,t.date)}catch{}},b=async()=>{let H=!t.isRead;try{await s(t.reportHubId,H,t.date)}catch{}},C=t.isStarred?o.starRemove:o.starAdd,D=t.isRead?o.markUnread:o.markRead,k=_t(t.sourceType,a),O=[l,c,...t.attachments.length>0?[y]:[],...k===void 0?[]:[g],u].join(" ");return ar("div",{"data-daily-report-card":!0,...Pe,style:Zb,className:Yb,children:[Y(sy,{id:l}),Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),ar(ly,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:O,onClick:L,children:[Y("span",{className:R(Ae,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:T})})," ",Y("span",{className:R(Ae,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:I})})]}),ar("div",{className:R(Ya,"ml-auto"),children:[Y(mr,{id:y,count:t.attachments.length,label:o.attachments}),k?Y(Xt,{id:g,config:k}):null,Y(Ed,{label:C,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:d,children:Y(qt,{filled:t.isStarred})}),Y(Ed,{label:D,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(Wb,{className:ge.read}):Y(Zt,{})})]}),Y("div",{id:u,className:Xb,children:E.length>0?E.map((H,N)=>Y("p",{className:"wrap-break-word line-clamp-1",children:H},N)):Y("p",{children:o.contentEmptyPreview})})]})});Ld.displayName="ListReportCard";var vd=(e,t)=>$b(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Ma=Td(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=F(),{removeStaleItem:o}=De(),{report:a,error:i,isLoading:s,isRefetching:l}=wt(e.reportHubId,e.businessDate),u=Gb(!1);zb(()=>{if(l){u.current=!0;return}!(a||s||i)&&u.current&&e.reportHubId>0&&o(e.reportHubId)},[a,s,l,i,e.reportHubId,o]);let c=vd(r,e.reportHubId),y=vd(r,e.reportHubId),g=(E,I)=>Y(Sd,{reportHubId:e.reportHubId,cursor:r,cardless:{label:se(e.businessDate),isBusy:I,focusTargetRef:c},children:E});return i?g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:Y("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?g(Y(ry,{}),!0):a?Y(Sd,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(Ld,{item:e,report:a,onSelect:t,focusTargetRef:y})}):g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:Y("p",{children:n.reportNotFound})}),!1)});Ma.displayName="ListReportItem";import{Fragment as Ly,jsx as Me,jsxs as go}from"react/jsx-runtime";var _d={pointerDragInputs:bn,inertiaOptions:Gt(!1),wheelSpeedMultiplier:dn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},my={..._d,inertiaOptions:Gt(!0)},py=Object.freeze({value:360,unit:"pixels"}),fy=Object.freeze({value:160,unit:"pixels"}),by=Object.freeze({value:pd,unit:"pixels"}),yy=Object.freeze({value:520,unit:"pixels"}),gy=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Ry=R("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",J),hy=R("relative w-full",on,rn),Sy=R(Ue,"relative isolate overflow-hidden"),Ad="daily-report-list",Ey=()=>!1,vy=e=>{let[t,r]=Ro(!1);return ka(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<Ei)},a=new(je(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Pa=e=>{let t=ir(null),[r,n]=Ro(null),o=En(t),a=vy(t),{rowSlotHeight:i,remProbe:s}=hd(),l=Tn(r),u=rt(c=>(t.current=c,n(c),()=>{t.current=null,n(null)}),[]);return go("div",{ref:u,className:tn,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Me(Ty,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:l})]})},Ty=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,isContainerNarrow:u,reducedMotion:c})=>{let[y]=Ro(()=>a?.current??0),g=ir(null),{labels:E}=F(),I=Rn(),[T]=Ro(xn),d=nd()||u,b=ir(null),C=e.length,D=ir(null),k=rt(f=>n(f),[n]),O=rt(f=>f<C?e[f]:un,[e,C]),H=rt(f=>{let h=O(f.visibleStartIndex);h.reportHubId>0&&T.setLabel(se(h.businessDate))},[O,T]),N=yo(()=>({kind:"uniform",rowHeight:l}),[l]),K=ir(e);ka(()=>{K.current=e},[e]);let{cursor:q,containerProps:G,handleRangeChange:Q,handleScrollAdjust:U,attachVirtualScroll:X,handleRef:$,scroller:V,attachScrollContainer:re,contentProps:ue,keyboardHelp:Z,selection:W,settledSelection:ae,resolveSelectedIndex:be,rememberSelection:Te,focusAfterRemoval:he}=ao({items:e,selectedId:r,onSelect:k,containerRef:g,rootRef:i,testId:Ad,itemsRef:K,rowSizing:N,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:Ey,onRangeChange:H}),{isMobileDetailOpen:Se,setIsMobileDetailOpen:ye,isOverlayMounted:$e,shouldShowOverlay:nt,handleOverlayClose:ze,lastClosedItemIdRef:ke,selectedItem:Xe}=gd({isMobileLayout:d,selection:W,dailyReportItems:e,onSelectItem:n,rootRef:i}),ot=yo(()=>({selected:W,settled:ae}),[W,ae]);bo(()=>{let f=g.current,h=()=>{T.setWheelScrollActive(!0),b.current&&clearTimeout(b.current),b.current=window.setTimeout(()=>{T.setWheelScrollActive(!1),b.current=null},mn)};return f?.addEventListener("wheel",h,{passive:!0}),()=>{f?.removeEventListener("wheel",h),b.current&&clearTimeout(b.current)}},[T]),bo(()=>{!C&&r!==null&&n(null)},[C,r,n]),bo(()=>{if(Se||ke.current===null)return;let f=ke.current;ke.current=null;let h=be(e,f);if(h===-1)return;let w=$.current;if(w!==null){let M=kr(w,h,e.length,N),B=M===null?"none":xl(M);B!=="none"&&V.toIndex(h,{align:B})}q.requestFocus(f)},[Se,e,ke,q,be,$,N,V]),bo(()=>{C>0&&T.setLabel(se(e[0].businessDate))},[e,C,T]);let Ce=rt((f,h)=>{f<=0||(Te(f,h),n(f),d&&ye(!0))},[d,n,ye,Te]),at=rt(()=>l,[l]),it=ir(l);ka(()=>{let f=it.current;it.current=l;let h=$.current;if(f===l||h===null)return;let w=h.getScrollPosition();w>0&&V.by(w*l/f-w)},[$,l,V]);let x=rt(f=>O(f).reportHubId,[O]),p=rt((f,h)=>Me(dt.Provider,{value:h,children:Me(Ma,{item:f,onSelect:Ce,cursor:q})},f.reportHubId),[Ce,q]),m=rt(f=>{a&&(a.current=f);let h=g.current;h&&(h.toggleAttribute(Ut,!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{h.toggleAttribute(Ut,!1),D.current=null},150))},[a]),S=rt(f=>Me(In,{...f,store:T}),[T]),v=yo(()=>go("div",{ref:re,className:Sy,...G,children:[Z,Me(lt.Provider,{value:C,children:Me(fo.Provider,{value:l,children:Me(uy,{ref:X,itemCount:C,getItem:O,getItemKey:x,getItemHeight:at,viewportSize:s,initialScrollOffset:y,overscanCount:pn,scrollBarOptions:{...fn,renderThumbOverlay:S},behaviorOptions:c?my:_d,onRangeChange:Q,onScrollAdjust:U,onScroll:m,testId:Ad,className:hy,locale:I.locale,labels:I.labels,contentProps:ue,children:p})})})]}),[re,X,G,C,O,x,at,s,l,c,y,S,Q,U,m,Z,ue,I.locale,I.labels,p]),A=yo(()=>go(dy,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Me(Cd,{id:"daily-report-list-panel",defaultSize:py,minSize:fy,maxSize:yy,contentOverflow:"hidden",className:xy,children:v}),Me(cy,{id:"daily-report-list-handle",thickness:10,indicator:gy,className:Ry,"aria-label":E.resizeHandle}),Me(Cd,{id:"daily-report-detail-panel",minSize:by,contentOverflow:"hidden",className:Iy,children:Me(fd,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:he})})]}),[v,E.resizeHandle,e,t,o,he]);return go(Ly,{children:[d?Me("div",{className:Ue,children:v}):Me(co.Provider,{value:ot,children:A}),$e&&Me(Rd,{isOpen:nt,selectedItem:Xe,onClose:ze,autoMarkRead:d&&t,userId:o,onReportDeleted:he})]})},xy=R("flex min-h-0",Va),Iy=R("flex min-h-0 flex-1",gt);import{useEffect as kd,useRef as Wy}from"react";import Ay from"lucide-react/dist/esm/icons/plus.js";import _y from"lucide-react/dist/esm/icons/refresh-cw.js";import Dy from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as Od,useMemo as wy,useRef as Fa,useState as Ba}from"react";import{useSearchParams as Ny}from"react-router";import*as Yr from"@radix-ui/react-switch";import*as wd from"react";import{jsx as Dd}from"react/jsx-runtime";var ho=wd.forwardRef(({className:e,...t},r)=>Dd(Yr.Root,{className:R(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${Za} ${Qa} ${J}`,e),...t,ref:r,children:Dd(Yr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Ja} ${ei}`})}));ho.displayName=Yr.Root.displayName;import{useSyncExternalStore as Cy}from"react";var Nd=e=>{let t=e,r=new Set;return{get:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},Ha=e=>Cy(e.subscribe,e.get,e.get);import{Fragment as Vy,jsx as oe,jsxs as ft}from"react/jsx-runtime";var Oy="list",My=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},ky=R(ri,ai,"ml-[8px] flex flex-wrap items-center gap-2"),Md="relative h-4 w-4 p-0 after:absolute after:-inset-1",Py="flex items-center gap-2",Hy=({count:e})=>{let{labels:t}=F(),r=Ur(e);return oe("span",{className:"tabular-nums",children:t.totalCount(r)})},Fy=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=Ha(e);return oe(Pa,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},By=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=Ha(e);return oe(Ca,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},Uy=({tabItems:e,actions:t})=>{let[r,n]=Ba(Oy),{labels:o}=F();return ft($r,{value:r,onValueChange:a=>n(My(a)),className:R("@container/views",Ue),children:[ft("div",{className:R(ky,ii[r]),children:[oe(zr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>oe(Gr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>oe(er,{value:a,className:R("mt-0",Ue),children:i},a))]})},Ua=({userId:e})=>{let[t,r]=Ba(!1),{labels:n,renderHeader:o,showDevControls:a}=F(),{isSseEnabled:i,toggleSse:s,createReport:l,items:u,refetchData:c,clearCacheAndRefetch:y}=De(),[g]=Ny(),E=Fa(0),I=Fa({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[T]=Ba(()=>Nd(u.length===0?null:u[0].reportHubId)),L=Fa(!1);Od(()=>{!L.current&&u.length>0&&(L.current=!0,T.get()===null&&T.set(u[0].reportHubId))},[u,T]);let d=async()=>{await c()},b=async()=>{await y()},C=async()=>{let H=g.get("businessDate")||xo(),N=await l(H);T.set(N)};Od(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let D=O=>{r(O),localStorage.setItem("daily-report-auto-read",String(O))},k=wy(()=>[{value:"list",label:n.tabList,content:oe(Fy,{selectionStore:T,dailyReportItems:u,autoMarkRead:t,userId:e,scrollOffsetRef:E})},{value:"tree",label:n.tabTree,content:oe("div",{className:R("flex flex-1 items-center justify-center",Vt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:oe(By,{selectionStore:T,dailyReportItems:u,userId:e,scrollRestoreRef:I})}],[u,t,e,n,T]);return ft(Vy,{children:[o({title:n.title,annotation:ft("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[oe(Vr,{}),oe(Hy,{count:u.length}),oe("span",{children:n.debounce(Kt)})]})}),oe("div",{className:dr,children:oe("div",{className:cr,children:oe(Uy,{tabItems:k,actions:ft("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[ft(mt,{size:"sm",onClick:C,className:"flex h-6 items-center gap-1 rounded-lg bg-amber-700 px-2 font-medium text-white text-xs shadow-xs hover:bg-amber-800 dark:bg-amber-700 dark:hover:bg-amber-800",title:n.createReportTitle,children:[oe(Ay,{className:"h-3 w-3"}),oe("span",{children:n.createReport})]}),a&&ft("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[oe("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),oe(ho,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:i,onCheckedChange:s}),ft("div",{className:Py,"data-testid":"dev-icon-buttons",children:[oe(mt,{variant:"ghost",size:"icon",onClick:d,className:R(Md,"text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100"),title:n.devReload,"data-testid":"dev-reload-btn",children:oe(Dy,{className:"size-3"})}),oe(mt,{variant:"ghost",size:"icon",onClick:b,className:R(Md,"text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100"),title:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:oe(_y,{className:"size-3"})})]})]}),ft("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[oe(ho,{id:"auto-read-mode",checked:t,onCheckedChange:D}),oe(Or,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as Fd,jsx as pe,jsxs as So}from"react/jsx-runtime";var Pd=R(Ue,gt),Hd=R("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",Ze),Ky=()=>{let{labels:e,renderHeader:t}=F();return So(Fd,{children:[t({title:e.title,annotation:pe("span",{className:R("font-bold",ur),children:e.loadErrorBadge})}),pe("div",{className:dr,children:pe("div",{className:cr,children:pe("div",{className:Pd,children:So("div",{className:R(Hd,"border-red-200 dark:border-red-900"),children:[pe("p",{className:R("font-medium",ur),children:e.loadError}),pe("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>wn(),className:R("rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",J),children:e.reload})]})})})})]})},$y=()=>{let{labels:e,renderHeader:t}=F();return So(Fd,{children:[t({title:e.title,annotation:So("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[pe(Vr,{}),pe("span",{children:e.totalCountLoading}),pe("span",{children:e.debounce(Kt)})]})}),pe("div",{className:dr,children:pe("div",{className:cr,children:pe("div",{className:Pd,children:pe("div",{className:Hd,children:e.loadingIds})})})})]})},zy=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=F(),o=ct(),a=Wy(n);a.current=n,kd(()=>{Er({apiBasePath:r,userKey:t??null})},[r,t]),kd(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return pe(Jo,{children:pe(ta,{user:e,initialItems:o.items,userId:t,children:i?pe(Ua,{userId:t}):o.phase==="failed"?pe(Ky,{}):pe($y,{})},t??"anonymous")})},Gy=({config:e,...t})=>pe(Do,{config:e,children:pe(zy,{...t})});var jy=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:l,nextUrl:u,text:c})=>{if(!n)return!1;if(!(r.pathname===u.pathname&&r.search===u.search&&r.hash===u.hash))return n;if(a){let E=a.get("intent");if(E==="toggleRead"||E==="toggleStar"||E==="addComment"||E==="deleteComment"||E==="create"||E==="update"||E==="publish"||E==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||l!==void 0||c!==void 0?n:!1},Yy=e=>{let t=async r=>{Yo();let n=await r.serverLoader(),o=n.userId;return jo({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{fi as DAILY_REPORT_LABEL_CATALOGS,Io as DAILY_REPORT_LABEL_KEYS,pc as DAILY_REPORT_LAYOUT_LATTICE_PX,ta as DailyReportActionProvider,mr as DailyReportAttachmentIndicator,Do as DailyReportConfigProvider,Ca as DailyReportDetailList,Jo as DailyReportErrorProvider,Sr as DailyReportIdsStreamClient,Vr as DailyReportIdsStreamStatus,Pa as DailyReportList,Gy as DailyReportPage,Ua as DailyReportResolvedContent,jo as bootstrapDailyReportIdsStreamSession,Yy as createDailyReportClientLoader,jy as dailyReportShouldRevalidate,pr as defaultDailyReportClientConfig,Er as ensureDailyReportIdsStreamSession,Yo as primeDailyReportIdsStreamSession,Ao as resolveDailyReportLabels,_t as resolveSourceTypeConfig,Nn as resyncDailyReportIdsStream,De as useDailyReportActionContext,Tr as useDailyReportComments,F as useDailyReportConfig,wt as useDailyReportDetail,ct as useDailyReportIdsStream,ko as useDailyReportPrefetch,Zo as useDailyReportSseConnection};
|