@aiquants/daily-report 0.24.0 → 0.25.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/dist/client.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import fd from"lucide-react/dist/esm/icons/paperclip.js";var pd="data-daily-report-row-surface",Me={[pd]:""},kt="data-daily-report-scrolling",Hr=8,Pt="p-[8px]",xa="contain-size contain-layout contain-style",Ia="contain-layout contain-style",Ca="contain-strict",Z="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",La="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",Aa="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",Fr="rounded-[calc(var(--radius-2xl)+8px)]",Br="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]",Da="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",ut="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",_a=16,Ht="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",Ur="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",Vr="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",_e=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${Z}`,wa="-mx-1",Na="flex items-center gap-1",Ee="inline-flex h-6 items-center rounded-full px-3",Oa="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Ma="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",ct="size-4",fe={starOff:`${ct} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${ct} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${ct} text-blue-600 dark:text-blue-400`,delete:`${ct} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${ct} text-red-600 dark:text-red-400`,edit:`${ct} text-slate-500 dark:text-slate-400`},ka="h-6 w-10 border-4 border-solid",Pa="size-4 data-[state=checked]:translate-x-4",Ha="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]",Fa="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var Ba="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",Ua="rounded-xl border border-solid p-[3px]",Va="inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg border-b-2 border-solid border-transparent px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:border-blue-600 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:border-blue-400 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 forced-colors:data-[state=active]:border-[Highlight] disabled:pointer-events-none disabled:opacity-50",Wa="bg-slate-50 dark:bg-slate-950",Ye="flex min-h-0 flex-1 flex-col",Wr="flex min-h-0 flex-1 flex-col overflow-clip contain-size",Kr="pointer-events-none absolute inset-x-0 top-0 py-4 text-center text-slate-500",Ka="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",$a={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},Tt="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",rt=`m-0 ${Tt}`,$r="[&_.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";import{jsx as za,jsxs as yd}from"react/jsx-runtime";var bd=2,rr=({id:e,count:t,label:r})=>t<=0?null:yd("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:[za(fd,{className:ct,"aria-hidden":"true"}),t>=bd&&za("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as zp}from"@aiquants/virtualscroll";import{useCallback as ve,useEffect as St,useLayoutEffect as Gp,useMemo as da,useRef as Ce,useState as Yn}from"react";var de=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},le=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?le(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"),y=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${c}:${y}`}return`${o}-${a}-${i}`};import{resolveVirtualScrollLocale as xd}from"@aiquants/virtualscroll";import{createContext as Id,useContext as Cd,useMemo as Ld}from"react";var gd=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,he=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${gd(r)}`),Ga=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),zr=(e,t,r)=>he(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Rd,resolveVirtualScrollLocale as hd,VIRTUAL_SCROLL_LABEL_CATALOGS as ja,VIRTUAL_SCROLL_LABEL_KEYS as po}from"@aiquants/virtualscroll";var qa=["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","listEmpty","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"],Xa=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],uo=[...po,...qa,...Xa];var Sd=Object.freeze({en:"en-US",ja:"ja-JP"}),we=(e,t)=>t.toLocaleString(Sd[e]),vd=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"}),Td=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"}),mo=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",listEmpty:"No data",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 ${Td[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",listEmpty:"\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",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=>`${vd[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":""}`})}),Ja=Object.freeze({en:Object.freeze({...ja.en,...mo.en}),ja:Object.freeze({...ja.ja,...mo.ja})}),Ed=e=>{let t={},r=!1;for(let n of po){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},Ya=(e,t,r)=>{e[t]=r},fo=(e,t)=>{let r=hd(e);if(t===void 0)return Ja[r];if(t===null||typeof t!="object")throw he("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw he("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!uo.includes(i))throw zr("labels key",i,uo);let a={...Rd(r,Ed(t)),...mo[r]};for(let i of qa){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw he(`labels.${i}`,"a non-blank string",s);Ya(a,i,s)}}for(let i of Xa){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw he(`labels.${i}`,"a function",s);Ya(a,i,s)}}return Object.freeze(a)},Za=e=>{let t={};for(let r of po)t[r]=e[r];return Object.freeze(t)};import{jsx as bo,jsxs as kd}from"react/jsx-runtime";var Ad=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Dd=({title:e,annotation:t})=>kd("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[bo("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?bo("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),nr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Dd,showDevControls:!1,headingLevel:3}),Qa=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var _d=e=>{for(let t of Object.keys(e))if(!Qa.includes(t))throw zr("config key",t,Qa)},wd=[2,3,4,5],Nd=e=>{if(e===void 0)return nr.headingLevel;let t=wd.find(r=>r===e);if(t===void 0)throw he("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},Od=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw he(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},ei=e=>{_d(e);let t=e.onSessionExpired;if(t===void 0)throw Ga("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw he("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=xd(e.locale),n=fo(r,e.labels),o=nr;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?Ad(n):Od(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Nd(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Md=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},ti=Id(ei({onSessionExpired:Md})),yo=({config:e,children:t})=>{let r=Ld(()=>ei(e),[e]);return bo(ti.Provider,{value:r,children:t})},U=()=>Cd(ti),Et=(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},Gr=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{useCallback as Vd,useEffect as li,useRef as Wd,useState as Kd}from"react";var Pd=/^\d{4}-\d{2}-\d{2}$/,Hd=/^\d{4}\/\d{2}\/\d{2}$/,jr=e=>e<10?`0${e}`:`${e}`,ri=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=jr(e.getMonth()+1),n=jr(e.getDate());return`${t}-${r}-${n}`},go=(e=new Date)=>Number.isNaN(e.getTime())?go(new Date):`${e.getFullYear()}-${jr(e.getMonth()+1)}-${jr(e.getDate())}`,xt=e=>{if(e==null)return null;if(e instanceof Date)return ri(e);let t=e.trim();if(t==="")return null;if(Pd.test(t))return t;if(Hd.test(t))return t.replaceAll("/","-");let r=new Date(t);return ri(r)};var Ft=(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{tapScrollCircleSampleVisual as Fd}from"@aiquants/virtualscroll";var Bt=120,ni=1e3,Bd=160,Yr=.8,Ro={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},qr=20,oi=6,Xr={reportHubId:-1,businessDate:null};var Jr=240,Zr=15,Ud=8,ai=460,ii=3,si={enabled:!0,renderVisual:Fd,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},Qr={width:Ud,tapScrollCircleOptions:si,enableArrowButtonTabStops:!1},en=["pen","touch"];var ui=Ft(1,"use-daily-report"),mi=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},So=mi("__DAILY_REPORT_CACHE_TTL__",3e5),$d=mi("__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=xt(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()){ui.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+$d))}},delete(e,t){this.reports.delete(e);let r=xt(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+So;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}},pi=(e,t,r=!0)=>j.set(e,t,r),Be=(e,t)=>j.getReport(e,t?.ignoreExpiry),Ue=(e,t)=>j.update(e,t),rn=(e,t)=>j.delete(e,t),or=()=>{j.clear(),tn.clear()},ar=e=>{j.locks.add(e),j.lastMutations.set(e,Date.now())},ir=e=>{j.locks.delete(e),j.lastMutations.set(e,Date.now())},fi=e=>j.recentDeletes.set(e,Date.now()),bi=(e,t)=>{let r=n=>{n===e&&t()};return j.listeners.add(r),()=>{j.listeners.delete(r)}},It=(e,t)=>{j.prune(),j.set(t,Date.now()+So)},yi=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()+So)},zd=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},tn=new Map,Gd=1e4,jd=(e,t)=>{let r=tn.get(t),n=Date.now();if(r&&n-r.at<Gd)return r.inFlight;let o=vo(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return tn.set(t,a),o.finally(()=>{tn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},vo=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},ho=(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)}},di=(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}=ho(e,xt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},Ut=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Ct=(e,t)=>{let{apiBasePath:r}=U(),[n,o]=Kd(()=>di(e,t)),a=Wd({id:e,token:0}),i=n;return n.id!==e&&(i=di(e,t),o(i)),li(()=>{let s=xt(t),l=c=>{c===e&&o(Ut(e,{report:ho(e,s).report}))};return j.listeners.add(l),()=>{j.listeners.delete(l)}},[e,t]),li(()=>{let s=xt(t),l=(a.current.token||0)+1;if(a.current={id:e,token:l},e<=0)return;let{report:c,isStale:y}=ho(e,s);if(c&&!y){o(Ut(e,{report:c,error:null,isLoading:!1,isRefetching:!1}));return}o(Ut(e,{report:c,isLoading:!c,isRefetching:!0}));let R=setTimeout(async()=>{if(a.current.token===l)try{let T=null;if(s){let C=j.getList(s)!==null;if(T=(await vo(r,s)).find(g=>g.reportHubId===e)??null,!T&&C){let g=await jd(r,s);g&&(T=g.find(b=>b.reportHubId===e)??null)}}else T=await zd(r,e);a.current.token===l&&o(Ut(e,{report:T,error:null}))}catch(T){a.current.token===l&&o(Ut(e,{error:T instanceof Error?T:new Error("Load failed")}))}finally{a.current.token===l&&o(Ut(e,{isLoading:!1,isRefetching:!1}))}},c?Bt:0);return()=>clearTimeout(R)},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},To=()=>{let{apiBasePath:e}=U();return Vd(t=>{let r=xt(t);r&&!j.getList(r)&&vo(e,r).catch(n=>ui.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as Yd}from"@aiquants/virtualscroll";import{useRef as qd}from"react";var nn=()=>{let{locale:e,labels:t}=U(),r=Za(t),n=qd(null),o=n.current;return o!==null&&Yd.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as Xd,useState as Jd}from"react";var Zd=e=>e.getBoundingClientRect().height,on=e=>{let[t,r]=Jd(null);return Xd(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useDynamicViewportHeight needs viewRef attached to the view's root");let o=null,a=l=>{l!==o&&(o=l,r(l))},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)};a(Zd(n));let s=new ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var gi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ue=(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 Si=Object.freeze({visibilityProperty:!0}),Ri=new Set(["auto","scroll"]),hi=new Set(["","true","plaintext-only"]),vi=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=Ii(n)?n.host:null}return!1},Qd=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(Si))return!0;return!1},Ti=e=>e.localName==="area"?Qd(e):e.checkVisibility(Si),ec=e=>{let t=e.getAttribute("contenteditable");if(t===null||!hi.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(hi.has(o))return!1;if(o==="false")return!0}return!0},tc=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&&Ti(n)&&(r=n)}return r===e},rc=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&&Ri.has(a.overflowX)||n&&Ri.has(a.overflowY)},nc=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 ec(e)}},oc=/^[\t\n\f\r ]*[+-]?\d/,ac=e=>{let t=e.getAttribute("tabindex");return t!==null&&oc.test(t)?e.tabIndex:null},Ei=(e,t)=>{for(let r of xo(e))if(t(r)||Ei(r,t))return!0;return!1},an=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=ic(e,t);return t.set(e,n),n},ic=(e,t)=>{if(!Io(e))return"none";let r=ac(e),n=r===null&&nc(e),o=r===null&&!n&&rc(e);return!(r!==null||n||o)||e.matches(":disabled")||vi(e)||!Ti(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?tc(e)?"sequential":"programmatic":"sequential":Ei(e,a=>an(a,t)==="sequential")?"none":"sequential"},Eo=(e,t)=>{for(let r of xo(e))t(r),Eo(r,t)},xo=e=>{if(me(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 Eo(e,l=>{an(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let y of xo(l)){let h=y===t;!h&&an(y,a)==="sequential"&&(c?n.push(y):i?o.push(y):r.push(y)),s(y,c||h),h&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},xi=e=>{let t=[],r=new Map;return Eo(e,n=>{an(n,r)==="sequential"&&t.push(n)}),t},me=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Io=e=>"focus"in e&&"blur"in e,sc=e=>e.nodeType===e.DOCUMENT_NODE,Ii=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(Ii(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return sc(t)?t.activeElement:null},ln=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||vi(t)},Lt=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 dn="data-daily-report-row",Ci=`[role="listitem"][${dn}]`,lc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',dc=/^[1-9]\d*$/,Li=e=>{if(e===null||!dc.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},mt=(e,t)=>{if(t===null||!me(e))return null;let r=e.closest(Ci);return r===null||r===t||!t.contains(r)?null:r},At=e=>Li(e.getAttribute(dn)),Vt=e=>Li(e.getAttribute("aria-posinset")),Ai=e=>{let t=e.closest(Ci),r=t===null?null:Vt(t);return r===null?null:r-1},sr=(e,t)=>{if(e===null)return null;let r=At(e);if(r===null)return null;let n=Vt(e),o=ue(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Di=(e,t)=>{if(!me(e))return!1;let r=e.closest(lc);return r!==null&&r!==t&&t.contains(r)};import{createContext as _i}from"react";var pt=_i(0),ft=_i(-1);import{clsx as cc}from"clsx";import{twMerge as uc}from"tailwind-merge";function v(...e){return uc(cc(e))}import{useCallback as wi,useMemo as mc,useSyncExternalStore as pc}from"react";var Ni="(prefers-reduced-motion: reduce)",Oi=e=>Lt(e).matchMedia(Ni).matches?"instant":"smooth",fc=Object.freeze({...Ro,startVelocityThreshold:Number.POSITIVE_INFINITY}),Wt=e=>e?fc:Ro,bc=()=>!1,cn=e=>{let t=mc(()=>e===null?null:Lt(e).matchMedia(Ni),[e]),r=wi(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=wi(()=>t===null?!1:t.matches,[t]);return pc(r,n,bc)};import{useSyncExternalStore as yc}from"react";import{jsx as Co}from"react/jsx-runtime";var un=()=>{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)})}},mn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=yc(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Co("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:Co("div",{className:v(Oa,"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:Co("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as vl,useCallback as Cr,useEffect as hl,useId as Ap,useLayoutEffect as Dp,useMemo as sa,useRef as Lr,useState as Sl}from"react";import{createContext as nu,useCallback as ot,useContext as ou,useEffect as Uo,useRef as xe,useState as Tn}from"react";var Mi=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 pn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,ki=e=>{for(let t=1;t<e.length;t++)if(pn(e[t-1],e[t])>0)return!1;return!0},Lo=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;pn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as Sn}from"@aiquants/sse";import{createBrowserEventSource as Kc}from"@aiquants/sse/client";import{useReopeningEventSource as $c}from"@aiquants/sse/react";import{useEffect as Ho,useRef as vn,useState as zc}from"react";import{z as I}from"zod";var Pi=["auth-required","forbidden","resync-required"],Ao=15e3,Hi="lastEventId",gc=/^\d{1,15}-\d{1,15}$/,fn=e=>gc.test(e),Rc=I.object({name:I.string().nullish(),affiliation:I.string().nullish()}),hc=I.object({name:I.string().nullish(),text:I.string().nullish(),color:I.string().nullish()}),Sc=I.object({id:I.number(),name:I.string().nullish(),color:I.string().nullish()}),Fi=I.object({id:I.number(),userId:I.string().nullish(),userName:I.string().nullish(),content:I.string().nullish(),createdAt:I.string().nullish(),isMine:I.boolean()}),vc=I.object({id:I.string(),fileName:I.string(),fileType:I.string().nullable(),fileSize:I.number().nullable(),createdAt:I.string().nullable(),state:I.enum(["present","absent","unknown"]),hasThumbnail:I.boolean().default(!1)}),Do=I.object({reportHubId:I.number(),date:I.string().nullish(),createdAt:I.string().nullish(),author:I.string().nullish(),userId:I.string().nullish(),sourceType:I.string().nullish(),employeeName:I.string().nullish(),updatedBy:I.string().nullish(),updatedAt:I.string().nullish(),category:I.string().nullish(),creationCategory:I.string().nullish(),visitTimeFrom:I.string().nullish(),visitTimeTo:I.string().nullish(),customerName:I.string().nullish(),interviewers:I.array(Rc),subject:I.string().nullish(),content:I.string().nullish(),externalComments:I.array(hc),isRead:I.boolean(),isStarred:I.boolean(),labels:I.array(Sc),postedComments:I.array(Fi),attachments:I.array(vc).default([])}),Tc=I.object({type:I.literal("connected")}),Ec=I.object({type:I.literal("status-update"),reportHubId:I.number(),statusType:I.enum(["star","read"]),value:I.boolean(),clientTempId:I.string(),recipientRawUserId:I.number().optional()}),_o=I.string().optional(),xc=I.object({type:I.literal("comment-add"),reportHubId:I.number(),comment:Fi,clientTempId:I.string(),recipientRawUserId:I.number().optional(),sourceType:_o}),Ic=I.object({type:I.literal("comment-delete"),reportHubId:I.number(),commentId:I.number(),clientTempId:I.string(),recipientRawUserId:I.number().optional(),sourceType:_o}),Cc=I.object({type:I.literal("report-create"),reportHubId:I.number(),report:Do,clientTempId:I.string(),recipientRawUserId:I.number().optional()}),Lc=I.object({type:I.literal("report-update"),reportHubId:I.number(),report:Do,clientTempId:I.string(),recipientRawUserId:I.number().optional()}),Ac=I.object({type:I.literal("report-publish"),reportHubId:I.number(),report:Do,clientTempId:I.string(),recipientRawUserId:I.number().optional()}),Dc=I.object({type:I.literal("report-delete"),reportHubId:I.number(),clientTempId:I.string(),sourceType:_o}),Bi=I.discriminatedUnion("type",[Tc,Ec,xc,Ic,Cc,Lc,Ac,Dc]);import{useSyncExternalStore as Hc}from"react";var _c=50,wc=1e3,Nc=3e4,Oc=6,Mc=3e4,bn=Symbol("read-stall"),kc="/daily_report/api",Pc=/^\d{4}-\d{2}-\d{2}$/,lr=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??kc,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??Mc,this.publishCoalesceMs=t.publishCoalesceMs??_c,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>=Oc){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(wc*2**(this.consecutiveFailures-1),Nc))}}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(h=>{o=this.setTimeoutFn(()=>h(bn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===bn)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=new TextDecoder,l="",c=!1,y=!1;for(;;){let h=await this.readWithStallGuard(i);if(h===bn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:R,value:T}=h;if(R)break;let C=(l+s.decode(T,{stream:!0})).split(`
2
- `);l=C.pop()??"";let u=!1;for(let g of C){if(g.trim()==="")continue;let b;try{b=JSON.parse(g)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let A=Mi(b);if(A==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(A==="error"){c=!0;continue}let _=b;u=this.absorbChunkLine(_)||u,typeof _.total=="number"&&Number.isFinite(_.total)&&_.total!==this.state.totalCount&&this.publish({totalCount:_.total}),_.nextCursor&&(_.nextCursor.businessDate===null||Pc.test(_.nextCursor.businessDate))&&(this.lastCursor=_.nextCursor),_.isLast&&(y=!0)}u&&(this.consecutiveFailures=0,this.schedulePublishItems())}return c?{kind:"retryable",error:new Error("Stream interrupted by server error")}:y?{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(bn),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"&&fn(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 Fc=6e4,re=null,Ui=!1,wo=new Set,Vi={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},No=()=>{for(let e of wo)e()},Oo=()=>{re&&(re.unsubscribe(),re.client.dispose(),re=null,No())},dr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??nr.apiBasePath;if(re&&(re.userKey!==e.userKey||re.apiBasePath!==t)&&(re.userKey!==e.userKey&&or(),Oo()),!re){let r=new lr({apiBasePath:t});re={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(No)},Bc(),r.start(),No();return}yn(re)},yn=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>Fc&&e.client.refresh()},Bc=()=>{if(Ui||typeof document>"u"||typeof window>"u")return;Ui=!0;let e=()=>{re&&yn(re)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Mo=e=>{if(!(typeof window>"u")){if(!re){dr(e);return}if(re.userKey!==e.userKey){or(),Oo(),dr(e);return}yn(re)}},ko=()=>{typeof window>"u"||!re||yn(re)},cr=e=>{re?.client.applyExternalUpsert(e)},gn=e=>{re?.client.applyExternalRemoval(e)},Rn=()=>{re?.client.retry()},hn=()=>{re?.client.resync()},Po=(e={})=>{re?.client.refresh(e)},Wi=()=>re?.userKey,Uc=e=>(wo.add(e),()=>wo.delete(e)),Vc=()=>re?.client.getState()??Vi,Wc=()=>Vi,nt=()=>Hc(Uc,Vc,Wc);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Oo()});var Dt=Ft(1,"daily-report-sse-connection"),Gc=Object.freeze({kind:"resyncing"}),Ki={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},jc=1,$i=Ao*3,Yc=$i+Ao,Fo=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=U(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=nt(),[l,c]=zc({generation:0,minAnchorRevision:1,anchored:!1}),y=l.generation>0&&!l.anchored,h=y&&a==="complete"&&!i?s:null,R=vn(0),T=vn(null),C=vn(n);C.current=n;let u=vn(0);u.current=o===null?0:o.revision,Ho(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(T.current=o.lastEventId,R.current=0,c({...l,anchored:!0}))},[l,o]),Ho(()=>{if(!e||h===null)return;let{initialDelayMs:b,maxDelayMs:A,multiplier:_}=Ki,D=Sn.random()*Math.min(A,b*_**R.current);Dt.warn(`SSE resync: the ids rescan gave up (${h.message}); rescanning in ${Math.round(D)} ms`);let N=Sn.setTimer(()=>{R.current+=1,hn()},D);return()=>Sn.clearTimer(N)},[e,h]);let{status:g}=$c(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${Hi}=${encodeURIComponent(b)}`,initialLastEventId:T.current,withCredentials:!1,createEventSource:Kc,runtime:Sn,backoff:Ki,healthyOpenMs:Yc,nativeRetryLimit:jc,giveUpAfterFailures:"never",terminalEvents:Pi,heartbeat:{staleAfterMs:$i,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(fn(b.lastEventId)?T.current=b.lastEventId:Dt.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let A=JSON.parse(b.data),_=Bi.safeParse(A);if(!_.success){Dt.error("SSE Validation Error:",_.error.flatten(),"raw message:",A);return}if(_.data.type==="connected"){Dt.info("SSE Subscribe Ready");return}t(_.data)}catch(A){Dt.error("SSE Parse Error",A)}}}});return Ho(()=>{if(g.kind==="faulted"){Dt.error("SSE connection faulted:",g.error);return}if(g.kind==="terminated")switch(g.terminalEvent){case"auth-required":C.current();return;case"forbidden":Dt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=u.current+1;c(A=>({generation:A.generation+1,minAnchorRevision:b,anchored:!1})),hn();return}}},[g]),e&&y?Gc:g};import{createContext as qc,useCallback as zi,useContext as Xc,useEffect as Jc,useMemo as Zc,useRef as Gi,useState as Qc}from"react";import{jsx as ji,jsxs as Yi}from"react/jsx-runtime";var eu=8e3,tu="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",ru=v("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",Aa),qi=qc({notifyError:()=>{}}),Xi=()=>Xc(qi),Bo=({children:e})=>{let{onError:t,labels:r}=U(),[n,o]=Qc(null),a=Gi(t);a.current=t;let i=Gi(null),s=zi(y=>{let h=a.current;if(h){h(y);return}o(y)},[]),l=zi(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);Jc(()=>{if(n)return i.current=setTimeout(()=>o(null),eu),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=Zc(()=>({notifyError:s}),[s]);return Yi(qi.Provider,{value:c,children:[e,n&&Yi("div",{role:"alert","data-testid":"daily-report-error-banner",className:tu,children:[ji("span",{className:"font-medium",children:n.message}),ji("button",{type:"button","aria-label":r.close,onClick:l,className:ru,children:"\u2715"})]})]})};import{jsx as iu}from"react/jsx-runtime";var qe=Ft(1,"daily-report-action-context"),au=Object.freeze([]),Vo=globalThis.__DailyReportActionContext??nu(null);globalThis.__DailyReportActionContext=Vo;var Ie=()=>{let e=ou(Vo);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},_t=(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},Wo=({children:e,user:t,initialItems:r=au,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=U(),{notifyError:s}=Xi(),l=xe(s);l.current=s;let c=xe(new Map),y=xe(new Map),h=xe(new Map),R=xe(new Map),T=xe(new Map),[C,u]=Tn(0),[g,b]=Tn(r),[A,_]=Tn(!1),D=xe(!1),N=xe(new Map),k=xe(new Set),F=xe(new Set),z=xe(new Set),X=nt(),W=xe(!1);W.current=X.phase==="complete"&&!X.isRevalidating;let B=ot(()=>Wi()===(n??null),[n]),J=ot(async()=>{qe.info("[DailyReportActionProvider] Refetching data without page reload..."),Po(),u(p=>p+1),j.listeners.forEach(p=>{p(-1)})},[]),K=ot(async()=>{qe.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),or(),F.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let f=await fetch(`${o}/action`,{method:"POST",body:p});if(!f.ok){let x=await f.json().catch(()=>null);qe.warn("[DailyReportActionProvider] Failed to clear server-side cache:",f.status,x)}}catch(p){qe.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}B()&&(Po({forceRefresh:!0}),u(p=>p+1),j.listeners.forEach(p=>{p(-1)}))},[o,B]),oe=xe(new Map),V=xe(()=>{}),$=ot((p,f)=>{let x=oe.current,d=x.get(p);if(d){d.messages.push(f);return}let m={messages:[f],unsubscribe:()=>{},timer:setTimeout(()=>{let S=x.get(p);S&&(S.unsubscribe(),x.delete(p),qe.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${S.messages.length} messages`))},3e4)};m.unsubscribe=bi(p,()=>{let S=x.get(p);if(S&&Be(p,{ignoreExpiry:!0})){S.unsubscribe(),clearTimeout(S.timer),x.delete(p),qe.info(`[SSE Queue] Replaying ${S.messages.length} messages for reportHubId=${p}`);for(let L of S.messages)V.current(L)}}),x.set(p,m)},[]),ae=p=>{z.current.add(p),setTimeout(()=>{z.current.delete(p)},3e4)},ie=ot(p=>!!p&&z.current.has(p),[]),P=ot((p,f)=>{f!==void 0&&cr({reportHubId:p,businessDate:f??null}),b(x=>{let d=x.find(S=>S.reportHubId===p),m=f??d?.businessDate??null;return Lo(x,{reportHubId:p,businessDate:m,sourceType:d?.sourceType})})},[]),ee=()=>{n&&(D.current=!0,_(p=>!p))};Uo(()=>{if(!n)return;let p=setTimeout(()=>{D.current||_(!0)},ni);return()=>clearTimeout(p)},[n]);let Te=ot(p=>{B()&&(F.current.add(p),gn(p),b(f=>f.filter(x=>x.reportHubId!==p)))},[B]),[He,Ae]=Tn(r);if(r!==He){Ae(r);let p=new Map;for(let d of r)F.current.has(d.reportHubId)||p.set(d.reportHubId,d);let f=W.current;for(let d of g)p.has(d.reportHubId)||F.current.has(d.reportHubId)||f&&d.reportHubId>0||p.set(d.reportHubId,d);let x=Array.from(p.values());ki(x)||x.sort(pn),b(x)}Uo(()=>{if(W.current){let p=new Set(r.map(f=>f.reportHubId));for(let f of F.current)p.has(f)||F.current.delete(f)}},[r]);let ge=ot(p=>{if(B()&&!ie(p.clientTempId))switch(p.type){case"comment-add":{let{comment:f,reportHubId:x}=p,d=Be(x,{ignoreExpiry:!0});if(d){if(d.postedComments.some(M=>M.id===f.id))return;let m=!1,S=c.current.get(x);if(S){for(let[M,q]of S.entries())if(q===f.content){S.delete(M),T.current.set(M,f.id),m=!0;break}}let L={...f,userName:f.userName||(m?_t(t,i.unknownUser):i.unknownUser),createdAt:f.createdAt||new Date().toISOString(),isMine:m},O={...d,postedComments:[...d.postedComments,L].sort((M,q)=>new Date(M.createdAt||0).getTime()-new Date(q.createdAt||0).getTime())};It(x,O),ar(x),ir(x),u(M=>M+1)}else $(x,p);break}case"comment-delete":{let{commentId:f,reportHubId:x}=p,d=Be(x,{ignoreExpiry:!0});if(d){let m={...d,postedComments:d.postedComments.filter(S=>S.id!==f)};It(x,m),ar(x),ir(x),u(S=>S+1)}else $(x,p);break}case"status-update":{let{statusType:f,value:x,reportHubId:d}=p,m=Be(d,{ignoreExpiry:!0});if(f==="star")if(h.current.get(d)===x&&h.current.delete(d),m){let S={...m,isStarred:x};It(d,S),u(L=>L+1)}else $(d,p);else if(f==="read")if(R.current.get(d)===x&&R.current.delete(d),m){let S={...m,isRead:x};It(d,S),u(L=>L+1)}else $(d,p);break}case"report-delete":{let{reportHubId:f}=p;k.current.delete(f),F.current.add(f),gn(f);let x=oe.current.get(f);x&&(x.unsubscribe(),clearTimeout(x.timer),oe.current.delete(f));let d=Be(f,{ignoreExpiry:!0});d?.date&&(rn(f,d.date),u(m=>m+1)),b(m=>m.filter(S=>S.reportHubId!==f));break}case"report-create":case"report-update":case"report-publish":{let{report:f}=p;yi(f),(p.type==="report-create"||p.type==="report-publish")&&(k.current.add(f.reportHubId),P(f.reportHubId,f.date)),u(x=>x+1);break}}},[ie,B,P,t,$,i.unknownUser]);V.current=ge,Uo(()=>()=>{for(let p of oe.current.values())p.unsubscribe(),clearTimeout(p.timer);oe.current.clear()},[]);let We=Fo({isSseEnabled:A,onMessage:ge}),se=async(p,f,x,d,m,S)=>{S?.skipLock||ar(p),m.onOptimistic?.();let L=d.clientTempId||crypto.randomUUID();ae(L);let O=new FormData;O.append("intent",f),O.append("reportHubId",String(p)),typeof x=="string"&&O.append("businessDate",x),O.append("operationTimestamp",String(Date.now())),O.append("clientTempId",L);for(let[M,q]of Object.entries(d))M!=="clientTempId"&&O.append(M,q);try{let M=await fetch(`${o}/action`,{method:"POST",body:O,headers:{Accept:"application/json"}});if(!M.ok){let je=new Error(`Failed to ${f}`);throw Object.assign(je,{status:M.status}),je}let q=await M.json();if(q.status!=="OK"||f!=="create"&&String(q.reportHubId)!==String(p))throw new Error(`Invalid response for ${f}`);if(typeof q.clientTempId!="string"||q.clientTempId!==L)throw new Error(`Invalid clientTempId for ${f}`);if(!B())throw qe.warn(`[executeAction] ${f} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${f}`);return await m.onSuccess?.(q)}catch(M){throw qe.error(`${f} failed:`,M),B()&&(m.onFailure?.(),l.current({operation:f,message:i.operationFailed(f),cause:M})),M}finally{S?.keepLock||S?.skipLock||ir(p)}},dt=async(p,f,x)=>{let d=Number(p),m=-1*Date.now(),S=se(d,"addComment",x,{content:f,clientTempId:String(m)},{onOptimistic:()=>{c.current.has(d)||c.current.set(d,new Map),c.current.get(d)?.set(m,f),u(L=>L+1)},onSuccess:L=>{if(!L.newComment)throw new Error("No new comment returned");let O=L.newComment.id;T.current.set(m,O),c.current.get(d)?.delete(m);let M=Be(d,{ignoreExpiry:!0});return M&&!M.postedComments.some(q=>q.id===O)&&Ue(d,{postedComments:[...M.postedComments,{...L.newComment,id:O,isMine:!0,userName:_t(t,i.unknownUser)}],updatedAt:L.updatedAt}),O},onFailure:()=>{c.current.get(d)?.delete(m)}},{skipLock:!0}).finally(()=>N.current.delete(m));N.current.set(m,S),await S},et=async(p,f,x)=>{let d=Number(p);y.current.has(d)||y.current.set(d,new Set),y.current.get(d)?.add(f),u(S=>S+1);let m=f;if(f<0){let S=T.current.get(f);if(S!==void 0)m=S;else{let L=N.current.get(f);if(!L)return;try{m=await L}catch{return}}}await se(d,"deleteComment",x,{commentId:String(m)},{onSuccess:S=>{let L=typeof S.deletedCommentId=="string"?Number(S.deletedCommentId):m,O=Be(d,{ignoreExpiry:!0});O&&(Ue(d,{postedComments:O.postedComments.filter(M=>M.id!==L),updatedAt:S.updatedAt}),fi(L)),y.current.get(d)?.delete(f)},onFailure:()=>{y.current.get(d)?.delete(f)}},{skipLock:!0})},Ge=async(p,f,x)=>{let d=Number(p);await se(d,"toggleStar",x,{isStarred:String(f)},{onOptimistic:()=>{Ue(d,{isStarred:f}),h.current.set(d,f),u(m=>m+1)},onSuccess:m=>{m.updatedStatus&&typeof m.updatedStatus.isStarred=="boolean"&&Be(d,{ignoreExpiry:!0})&&(Ue(d,{isStarred:m.updatedStatus.isStarred,updatedAt:m.updatedAt}),u(L=>L+1)),h.current.delete(d)},onFailure:()=>{Ue(d,{isStarred:!f}),h.current.delete(d)}},{skipLock:!0})},Ke=async(p,f,x)=>{let d=Number(p);await se(d,"toggleRead",x,{isRead:String(f)},{onOptimistic:()=>{Ue(d,{isRead:f}),R.current.set(d,f),u(m=>m+1)},onSuccess:m=>{m.updatedStatus&&typeof m.updatedStatus.isRead=="boolean"&&Be(d,{ignoreExpiry:!0})&&(Ue(d,{isRead:m.updatedStatus.isRead,updatedAt:m.updatedAt}),u(L=>L+1)),R.current.delete(d)},onFailure:()=>{Ue(d,{isRead:!f}),R.current.delete(d)}},{skipLock:!0})},De=xe(Ke);De.current=Ke;let Fe=ot((p,f,x)=>De.current(p,f,x),[]),tt=async p=>{let f=-1*Date.now(),x=new Date().toISOString(),d={reportHubId:f,date:p,createdAt:x,author:_t(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:_t(t,i.unknownUser),updatedBy:_t(t,i.unknownUser),updatedAt:x,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:[]};pi(d,Date.now()+3e5,!1),b(m=>[{reportHubId:f,businessDate:p},...m]);try{let m=await se(0,"create",p,{clientTempId:String(f)},{onSuccess:L=>L});if(m.clientTempId&&m.clientTempId!==String(f))throw qe.warn(`[createReport] ID mismatch. req=${f}, res=${m.clientTempId}`),new Error("Optimistic ID mismatch");let S=Number(m.reportHubId);return cr({reportHubId:S,businessDate:p}),ar(S),m.report&&(It(S,m.report),u(L=>L+1)),b(L=>L.some(O=>O.reportHubId===S)?L.filter(O=>O.reportHubId!==f):L.map(O=>O.reportHubId===f?{...O,reportHubId:S}:O)),setTimeout(()=>ir(S),1e3),S}catch(m){throw qe.error("[createReport] Failed or mismatched",m),b(S=>S.filter(L=>L.reportHubId!==f)),m}},Oe=async(p,f,x)=>{let d=Number(p);await se(d,"update",x,{...f.title&&{title:f.title},...f.content&&{content:f.content}},{onSuccess:()=>{let m=Be(d,{ignoreExpiry:!0});m&&(Ue(d,{subject:f.title??m.subject,content:f.content??m.content}),u(S=>S+1))}})},E=async(p,f)=>{let x=Number(p),d=Be(x,{ignoreExpiry:!0}),m=d?.labels||[];await se(x,"publish",f,{},{onOptimistic:()=>{if(d){let S=d.labels.filter(L=>L.name!==a);Ue(x,{labels:S}),u(L=>L+1)}},onSuccess:S=>{S.report&&(It(x,S.report),u(L=>L+1)),f!==void 0&&cr({reportHubId:x,businessDate:f})},onFailure:()=>{Ue(x,{labels:m}),u(S=>S+1)}},{skipLock:!0})},w=async(p,f)=>{let x=Number(p),d=g.find(m=>m.reportHubId===x);F.current.add(x),gn(x),b(m=>m.filter(S=>S.reportHubId!==x));try{await se(x,"delete",f,{},{onSuccess:m=>{rn(x,f)}})}catch(m){if(m.status===404){rn(x,f);return}if(!B())return;F.current.delete(x);let L=d===void 0?f:d.businessDate;L!==void 0&&cr({reportHubId:x,businessDate:L}),d&&b(O=>O.some(M=>M.reportHubId===x)?O:Lo(O,d))}};return iu(Vo.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:y,pendingStarUpdates:h,pendingReadUpdates:R,resolvedIdMap:T,version:C,items:g,isSseEnabled:A,toggleSse:ee,sseStatus:We,addComment:dt,deleteComment:et,toggleStar:Ge,toggleRead:Fe,createReport:tt,updateReport:Oe,publishReport:E,deleteReport:w,removeStaleItem:Te,refetchData:J,clearCacheAndRefetch:K},children:e})};import{useCallback as Qi,useMemo as su,useRef as lu,useState as du}from"react";var Ji=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw he("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]},Zi=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 ur=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=Ie(),{labels:c}=U(),y=c.unknownUser,[h,R]=du(null),T=Qi(b=>e&&l(e.reportHubId,b,e.date),[e,l]),C=Qi(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),u=lu([]);return{uiComments:su(()=>{if(!e)return[];let b=Ji(e.externalComments,e.postedComments,r,y),A=o.current.get(e.reportHubId);A?.size&&(b=b.filter(D=>!A.has(D.id)));let _=n.current.get(e.reportHubId);if(_?.size&&t){let D=new Set(b.map(k=>k.id)),N=_t(t,y);for(let[k,F]of _){if(A?.has(k)||D.has(k))continue;let z=a.current.get(k);z&&D.has(z)||b.some(X=>X.isMine&&X.content===F&&typeof X.id=="number"&&X.id>0)||b.push({id:k,authorName:N,content:F,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(u.current)?u.current:(u.current=b,b)},[e,t,r,y,o,n,a,i]),handleAddComment:C,handleDeleteComment:T,pendingDeleteId:h,setPendingDeleteId:R,resolvedIdMap:a.current}};import{jsx as uu}from"react/jsx-runtime";var cu={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},Kt=Object.freeze({2:3,3:4,4:5,5:6}),ke=({level:e,...t})=>{let r=cu[e];return uu(r,{...t})};import{memo as Cs,useId as rm,useMemo as nm,useRef as om}from"react";var es=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var Ko="tile",mr=es[Ko],mu=2,pr=16,ts=5,rs=mr.maxWidth/mu,Gg=ts*(rs+pr)-pr,ns=e=>{let t=Math.min(ts,1+Math.floor((e+pr)/(rs+pr)));return(e-(t-1)*pr)/t},os=Object.freeze({aspectRatio:`${mr.maxWidth} / ${mr.maxHeight}`,height:`round(nearest, 100cqi * ${mr.maxHeight} / ${mr.maxWidth}, 1px)`,contain:"strict"});var pu="download",fu="thumbnail",bu="1",$t=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[pu]:bu})}`;case"thumbnail":return`${n}?${new URLSearchParams({[fu]:r.variant})}`}};import{createContext as yu,useContext as gu}from"react";var fr=yu(null),zt=()=>gu(fr)===!1?-1:void 0,as=(e,t)=>{let{before:r,after:n}=sn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Tu,useContext as Eu,useLayoutEffect as xu,useMemo as Iu,useState as Cu}from"react";import{flushSync as Lu}from"react-dom";import{flushSync as Ru}from"react-dom";var $o=new WeakMap,is=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,hu=e=>{e.frame=null;let t=[...e.observations.values()].filter(is);t.length!==0&&Ru(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Su=(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=ns(o))}e.frame!==null||![...e.observations.values()].some(is)||(e.frame=e.view.requestAnimationFrame(()=>hu(e)))},vu=e=>{let t=$o.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=>Su(n,o)),observations:new Map,frame:null};return $o.set(e,n),n},ss=(e,t)=>{let r=e.ownerDocument,n=vu(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(),$o.delete(r)))}};import{jsx as yr,jsxs as cs}from"react/jsx-runtime";var br="\u2026",Au=br.codePointAt(0),En="data-attachment-file-name",Du=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,_u=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,us=Tu(null),ms=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},ls=(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("")},wu=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=ms(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${ls(o,br,a,r)}${br}`;return r(n+i)<=t?n+i:`${ls(n,br+i,t,r)}${br}${i}`},ds=new WeakMap,ps=e=>{let t=ds.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 ds.set(e,n),n},Nu=(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},fs=e=>{let t=new Set;for(let r of e.matchAll(Du)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},Ou=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:fs(t.fontFamily),measure:Nu(ps(e.ownerDocument),r)}},Mu=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,ku=e=>{let t=new Set([Au]);for(let r of e.querySelectorAll(`[${En}]`)){let n=r.getAttribute(En);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Pu=(e,t)=>{for(let r of e.split(",")){let n=_u.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},zo=new WeakMap,bs=e=>{let t=zo.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return zo.set(e,r),r},ys=(e,t)=>{let r=Ou(e.grid.querySelector(`[${En}]`));e.fitted={trackWidth:t,nameFont:r};let n=bs(e.grid.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=Fu(n)),e.applyFit({width:t,measure:r.measure})},Hu=(e,t)=>{let r=t.map(o=>({families:fs(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=ku(o.grid);i.some(l=>Pu(l.unicodeRange,s))&&(ps(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&Lu(()=>{for(let[o,a]of n)ys(o,a)})},Fu=e=>{let t=e.document.fonts,r=n=>{Hu(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},Bu=(e,t)=>{let r={grid:e,applyFit:t,fitted:null},n=ss(e,a=>ys(r,a)),o=bs(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),zo.delete(o.document))}},gs=({gridRef:e,children:t})=>{let[r,n]=Cu(null);return xu(()=>{let o=e.current;return Bu(o,i=>{n(s=>Mu(s,i)?s:i)})},[e]),yr(us,{value:r,children:t})},gr=({fileName:e,className:t,testId:r})=>{let n=Eu(us),o=Iu(()=>n===null?null:wu(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=ms(e);return cs("span",{className:v("block min-w-0",t),title:e,"data-testid":r,[En]:e,children:[o===null?cs("span",{"aria-hidden":"true",className:"flex min-w-0",children:[yr("span",{className:"truncate",children:a}),i!==""&&yr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):yr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),yr("span",{className:"sr-only",children:e})]})};import $u from"lucide-react/dist/esm/icons/image-off.js";import{memo as zu,useCallback as Yo,useEffect as Gu,useLayoutEffect as ju,useRef as qo,useState as Yu}from"react";var xn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Rs=xn.queueWaitMs+xn.readMs+xn.renderMs+xn.transferMarginMs;var Uu=Object.freeze({kind:"loaded"}),hs=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,y=null,h=null,R=null,T=K=>(K!==null&&n.clearTimeout(K),null),C=()=>{h?.(),h=null},u=()=>{R?.(),R=null},g=K=>K===null||K.kind==="loaded"?0:K.kind==="failing"?K.failedAttempts:i.maxAttempts,b=K=>{s="cooling",y=n.setTimeout(X,K)},A=()=>{o.abortInFlight(),u();let K=g(r.get(t))+1;if(K>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:K,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},_=K=>{if(s==="loading"){if(c=T(c),!K){A();return}s="done",r.set(t,Uu),u()}},D=()=>{c=null,_(!1)},N=()=>{s="loading",o.showActivity(!0),C(),c=n.setTimeout(D,i.loadTimeoutMs),o.grant()},k=()=>{l=null,s="queued",R=a.request(N)},F=()=>{l===null&&(l=n.setTimeout(k,i.settleMs))},z=K=>{if(o.showActivity(K),K){s==="watching"&&F();return}if(s==="queued"){u(),s="watching";return}l=T(l)},X=()=>{y=null,s="watching",o.showActivity(!1),h=n.observe(e,z)},W=()=>{let K=s==="loading";s="done",C(),l=T(l),c=T(c),y=T(y),o.showActivity(!1),K&&(o.abortInFlight(),R!==null&&o.reset()),u()},B=r.get(t);if(B?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:_,dispose:W};if(B?.kind==="exhausted"){if(n.now()-B.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:_,dispose:W};r.delete(t)}o.reset();let J=B?.kind==="failing"?B.retryAt-n.now():0;return J>0?b(J):X(),{settle:_,dispose:W}};var Vu=e=>{if(!Number.isInteger(e)||e<=0)throw he("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())}}}},Ss=Vu(2);var Wu=e=>{if(!Number.isInteger(e)||e<=0)throw he("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)}}},Go=Wu(1024);var jo=new WeakMap,Ku=e=>{let t=jo.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 jo.set(e,a),a},vs=(e,t)=>{let r=e.ownerDocument,n=Ku(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(),jo.delete(r)))}};import{jsx as Rr,jsxs as tm}from"react/jsx-runtime";var qu={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},Xu="data-thumbnail-active",Ju="data-daily-report-attachment-preview",Es={[Ju]:""},Zu=Object.freeze({settleMs:250,loadTimeoutMs:Rs,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Ts=e=>{let t=Go.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},Qu=()=>({limiter:Ss,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:vs,tuning:Zu}),em=(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(Xu,o)}}),xs=zu(({thumbnailUrl:e,unavailableLabel:t})=>{let r=qo(null),n=qo(null),o=qo(null),[a,i]=Yu(()=>Ts(e));a.url!==e&&i(Ts(e)),ju(()=>{if(a.status==="failed")return;let y=n.current,h=a.status==="idle"?null:a.url;y.getAttribute("src")!==h&&(h===null?y.removeAttribute("src"):y.setAttribute("src",h))},[a]),Gu(()=>{let y=r.current,h=hs(y,e,Go,Qu(),em(e,y,i,n));return o.current=h,()=>{o.current=null,h.dispose()}},[e]);let s=Yo(y=>{y!==null&&(n.current=y)},[]),l=Yo(()=>{i(y=>y.status==="granted"?{url:y.url,status:"loaded"}:y),o.current?.settle(!0)},[]),c=Yo(()=>{o.current?.settle(!1)},[]);return Rr("span",{className:"@container block",children:Rr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":qu[a.status],style:os,className:"relative block w-full",children:Rr("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"?tm("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","data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Rr($u,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Rr("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 pe,jsxs as Xe}from"react/jsx-runtime";var Is=1024,Xo=["B","KB","MB","GB"],Ls="text-slate-500 text-sm line-through dark:text-slate-400",am=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=Is&&r<Xo.length-1;)t/=Is,r+=1;return r===0?`${t} ${Xo[r]}`:`${t.toFixed(1)} ${Xo[r]}`},As=({attachment:e,labels:t,className:r})=>Xe("span",{className:r,children:[am(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),Jo=({href:e,children:t,...r})=>{let n=zt();return pe("a",{href:e,...r,tabIndex:n,children:t})},Ds=({downloadUrl:e,label:t,fileName:r})=>Xe(Jo,{href:e,className:v("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",Z),"data-testid":"daily-report-attachment-download",children:[t," ",pe("span",{className:"sr-only",children:r})]}),im=Cs(({attachment:e,apiBasePath:t,labels:r})=>{let n=pe(xs,{thumbnailUrl:$t(t,e.id,{kind:"thumbnail",variant:Ko}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Xe("li",{className:"flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Xe("div",{className:"flex min-w-0 flex-col gap-2",children:[n,pe(gr,{fileName:e.fileName,className:Ls,testId:"daily-report-attachment-name"})]}):Xe(Jo,{href:$t(t,e.id,{kind:"inline"}),className:v("flex min-w-0 flex-col gap-2 rounded-lg",Z),"data-testid":"daily-report-attachment-link",...Es,children:[n,pe(gr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Xe("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",children:[pe(As,{attachment:e,labels:r,className:"truncate"}),!o&&pe(Ds,{downloadUrl:$t(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),sm=Cs(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Xe("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:[Xe("div",{className:"flex min-w-0 flex-col",children:[n?pe(gr,{fileName:e.fileName,className:Ls,testId:"daily-report-attachment-name"}):pe(Jo,{href:$t(t,e.id,{kind:"inline"}),className:v("flex min-w-0 rounded-sm",Z),"data-testid":"daily-report-attachment-link",children:pe(gr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),pe(As,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&pe(Ds,{downloadUrl:$t(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),lm=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=om(null);return pe(gs,{gridRef:o,children:pe("ul",{ref:o,"aria-labelledby":t,className:"grid 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=>pe(im,{attachment:a,apiBasePath:r,labels:n},a.id))})})},In=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=U(),o=rm(),{tileAttachments:a,rowAttachments:i}=nm(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Xe("div",{className:"@container flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[pe(ke,{level:Kt[n],id:o,className:v("m-0",Tt),children:r.attachments}),Xe("div",{className:"flex flex-col gap-4",children:[a.length>0&&pe(lm,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&pe("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>pe(sm,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as Em}from"@aiquants/swipe-overlay";import{useCallback as Qo,useEffect as ws,useId as xm,useRef as Os,useState as Im}from"react";var hr=e=>e.isComposing||e.keyCode===229,Cn=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 dm={kind:"hold"},cm=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),um=(e,t)=>{let r=e.getAttribute("role");return r!==null&&cm.has(r)&&e!==t&&e.contains(t)},Sr=e=>e.key==="Escape"&&!e.defaultPrevented&&!hr(e),_s=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||hr(e))return null;let r=e.target;if(!(me(r)&&t.contains(r)))return null;let n=xi(t);if(n.length===0)return dm;let{before:o,within:a,after:i}=sn(t,r);return e.shiftKey?o.some(s=>!um(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 mm,jsx as pm}from"react/jsx-runtime";var Re=({render:e})=>{let t=zt();return pm(mm,{children:e(t)})};import fm from"@heroicons/react/24/outline/TrashIcon.js";import{memo as bm,useId as ym,useRef as gm,useState as Rm}from"react";import{jsx as bt,jsxs as Ln}from"react/jsx-runtime";var An="data-comment-delete-button",Dn="data-comment-delete-slot",hm=v(_e,wa),Sm="relative flex h-5 items-center",vm=v(Ee,"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",Z),Tm=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,Zo=bm(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,y]=Rm(!1),{labels:h}=U(),R=ym(),T=gm(null),C=Tm(e.id,o,l),u=()=>{let b=T.current;b!==null&&s(b),a(null),y(!0),typeof e.id=="number"&&n?.(e.id)},g=b=>{if(!C)return;let A=b.relatedTarget;me(A)&&b.currentTarget.contains(A)||a(null)};return Ln("li",{"data-comment-id":e.id,"data-deleted":c?"true":void 0,className:v("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",C?"z-50":"z-0 hover:z-10"),children:[Ln("div",{className:"mb-1 flex items-center justify-between",children:[bt("div",{className:v("font-semibold text-xs",Zi(e.color)),children:de(e.authorName)}),Ln("div",{className:"flex items-center gap-2",children:[e.createdAt&&bt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:le(e.createdAt)}),e.isMine&&!e.isLegacy&&Ln("div",{[Dn]:e.id,className:Sm,onBlur:g,children:[bt(Re,{render:b=>bt("button",{ref:T,type:"button",tabIndex:b,className:hm,title:h.commentDelete,"aria-label":h.commentDelete,"aria-expanded":C,"aria-controls":C?R:void 0,[An]:e.id,onClick:()=>i(e.id,C),children:bt(fm,{"aria-hidden":"true",className:C?fe.deletePending:fe.delete})})}),C&&bt(Re,{render:b=>bt("button",{id:R,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:vm,onClick:u,children:h.commentDeleteConfirm})})]})]})]}),bt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});Zo.displayName="DailyReportPostedComment";import{jsx as at,jsxs as Dm}from"react/jsx-runtime";var Ms="data-daily-report-comment-section",ks="data-daily-report-comment-heading",_n={[Ms]:""},wn={[ks]:""},Nn=v(rt,Z),Cm=v("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",Z),Lm=v("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",Z),Ns=e=>e.querySelector(`[${An}][aria-expanded="true"]`),Am=(e,t)=>{let r=[...e.querySelectorAll(`[${An}]`)].filter(a=>a===t||a.closest("[data-deleted]")===null),n=r.indexOf(t),o=r.at(n+1);return o!==void 0?o:n>0?r[n-1]:e.closest(`[${Ms}]`)?.querySelector(`[${ks}]`)??null},On=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i})=>{let s=Os(null),l=Em(),c=xm(),y=o!==null,h=Qo(()=>{let C=s.current,u=C===null?null:Ns(C),g=u===null?null:u.closest(`[${Dn}]`),b=C===null?null:Ne(C);a(null),u!==null&&g!==null&&b!==null&&g.contains(b)&&u.focus({preventScroll:!0})},[a]);ws(()=>{if(y)return l({id:c,onEscape:C=>Sr(C)?(h(),!0):!1})},[y,l,c,h]),ws(()=>{let C=s.current;if(!y||C===null)return;let u=C.ownerDocument,g=b=>{let A=Ns(C)?.closest(`[${Dn}]`);A!=null&&me(b.target)&&A.contains(b.target)||a(null)};return u.addEventListener("pointerdown",g,!0),()=>u.removeEventListener("pointerdown",g,!0)},[y,a]);let R=Qo((C,u)=>{u?h():a(C)},[h,a]),T=Qo(C=>{let u=s.current;u!==null&&Am(u,C)?.focus({preventScroll:!0})},[]);return e.length===0?null:at("ul",{ref:s,className:"space-y-2",children:e.map(C=>at(Zo,{comment:C,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:R,onBeforeHide:T,resolvedIdMap:i},C.id))})},Mn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=Im(!1),a=Os(null),{labels:i}=U();return Dm("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let y=new FormData(l.currentTarget).get("content")?.trim();if(y&&r){o(!0),a.current?.reset();try{await r(y)}catch{if(a.current){let h=a.current.elements.namedItem("content");h&&(h.value=y)}}finally{o(!1)}}},children:[at("input",{type:"hidden",name:"intent",value:"addComment"}),at("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&at("input",{type:"hidden",name:"businessDate",value:t}),at(Re,{render:l=>at("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:Cm,autoComplete:"off"})}),at(Re,{render:l=>at("button",{type:"submit",tabIndex:l,className:Lm,disabled:n,children:i.commentSend})})]})};import{useEffect as Hm,useRef as Fm,useState as ea}from"react";import{Slot as _m}from"@radix-ui/react-slot";import{cva as wm}from"class-variance-authority";import*as Ps from"react";import{jsx as Om}from"react/jsx-runtime";var Nm=wm(`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 ${Z}`,{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"}}),it=Ps.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>Om(n?_m:"button",{className:v(Nm({variant:t,size:r,className:e})),ref:a,...o}));it.displayName="Button";import{jsx as Mm}from"react/jsx-runtime";function Hs({className:e,type:t,...r}){return Mm("input",{type:t,"data-slot":"input",className:v(`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 ${Z}`,e),...r})}import*as Fs from"@radix-ui/react-label";import{jsx as km}from"react/jsx-runtime";function vr({className:e,...t}){return km(Fs.Root,{"data-slot":"label",className:v("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 Pm}from"react/jsx-runtime";function Bs({className:e,...t}){return Pm("textarea",{"data-slot":"textarea",className:v(`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 ${Z}`,e),...t})}import{jsx as Ve,jsxs as kn}from"react/jsx-runtime";var Bm=e=>{e.preventDefault()},Pn=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=Ie(),{labels:i}=U(),[s,l]=ea(e.subject??""),[c,y]=ea(e.content??""),[h,R]=ea(!1),T=Fm(e.reportHubId);Hm(()=>{e.reportHubId!==T.current&&(l(e.subject??""),y(e.content??""),T.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let C=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{R(!1)}},u=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{R(!1)}},g=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return kn("form",{className:"space-y-4 p-1",onSubmit:Bm,children:[kn("div",{className:"space-y-2",children:[Ve(vr,{htmlFor:g,children:i.formTitle}),Ve(Re,{render:A=>Ve(Hs,{ref:n,id:g,value:s,onChange:_=>l(_.target.value),placeholder:i.formTitlePlaceholder,disabled:h,tabIndex:A})})]}),kn("div",{className:"space-y-2",children:[Ve(vr,{htmlFor:b,children:i.formContent}),Ve(Re,{render:A=>Ve(Bs,{id:b,value:c,onChange:_=>y(_.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:h,tabIndex:A})})]}),kn("div",{className:"flex justify-end gap-2",children:[t&&Ve(Re,{render:A=>Ve(it,{type:"button",variant:"outline",onClick:t,disabled:h,tabIndex:A,children:i.formCancel})}),Ve(Re,{render:A=>Ve(it,{type:"button",variant:"secondary",onClick:C,disabled:h,tabIndex:A,children:i.formSave})}),Ve(Re,{render:A=>Ve(it,{type:"button",onClick:u,disabled:h,tabIndex:A,children:i.formPublish})})]})]})};import jm from"lucide-react/dist/esm/icons/check.js";import Ym from"lucide-react/dist/esm/icons/pencil.js";import qm from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Us}from"react/jsx-runtime";var Fn=24,Vs=2,Um=20,Hn=5,Vm=3,Wm=()=>{let e=Math.cos(2*Math.PI/Hn)/Math.cos(Math.PI/Hn),t=Array.from({length:2*Hn},(R,T)=>{let C=-Math.PI/2+T*Math.PI/Hn,u=T%2===0?1:e;return{x:u*Math.cos(C),y:u*Math.sin(C)}}),r=t.map(R=>R.x),n=t.map(R=>R.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(Um-Vs)/(a-o),c=Fn/2-l*(o+a)/2,y=Fn/2-l*(i+s)/2,h=R=>String(Number(R.toFixed(Vm)));return t.map(R=>`${h(c+l*R.x)},${h(y+l*R.y)}`).join(" ")},Km=Wm(),Gt=({filled:e})=>Us("svg",{viewBox:`0 0 ${Fn} ${Fn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:Vs,strokeLinejoin:"round",className:e?fe.starOn:fe.starOff,children:Us("polygon",{points:Km})});import{Fragment as $m,jsx as Bn,jsxs as zm}from"react/jsx-runtime";var jt=({config:e,id:t,className:r})=>Bn("span",{id:t,className:v(Ma,e.badgeClassName,r),children:e.name===void 0?e.label:zm($m,{children:[Bn("span",{"aria-hidden":"true",children:Bn("abbr",{title:e.name,children:e.label})}),Bn("span",{className:"sr-only",children:e.name})]})});import{jsx as Ws}from"react/jsx-runtime";var Un=24,Gm=6,Yt=({className:e})=>Ws("svg",{viewBox:`0 0 ${Un} ${Un}`,"aria-hidden":"true",className:v(fe.read,e),children:Ws("circle",{cx:Un/2,cy:Un/2,r:Gm,fill:"currentColor"})});import{jsx as Je,jsxs as $s}from"react/jsx-runtime";var ce=({label:e,classNames:t,valueId:r,children:n})=>$s("div",{className:t.field,children:[Je("dt",{className:t.label,children:e}),Je("dd",{id:r,className:v("m-0",t.value),children:n})]}),yt={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"},Ks=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return $s("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:[Je(ce,{label:r.author,classNames:yt,children:de(e.author)}),Je(ce,{label:r.createdAt,classNames:yt,children:le(e.createdAt)}),Je(ce,{label:r.updatedBy,classNames:yt,children:de(e.updatedBy)}),Je(ce,{label:r.updatedAt,classNames:yt,children:le(e.updatedAt)}),Je(ce,{label:r.businessDate,classNames:yt,children:le(e.date)}),t!==null&&Je(ce,{label:r.visitTime,classNames:yt,children:t}),n&&Je(ce,{label:r.category,classNames:yt,children:n}),o&&Je(ce,{label:r.creationCategory,classNames:yt,children:o})]})};import{jsx as ne,jsxs as js}from"react/jsx-runtime";var Vn={field:v(Ee,"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:""},Xm={field:v(Ee,"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:""},zs={field:v(Ee,"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:""},Jm=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Gs=({text:e})=>Jm.test(e)?ne("time",{dateTime:e,children:e}):e,Ys=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:y,markerIds:h,labels:R})=>{let T=r?R.starRemove:R.starAdd,C=t?R.markUnread:R.markRead,u=e.category?.trim(),g=e.creationCategory?.trim();return js("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ne(rr,{id:h.attachments,count:e.attachments.length,label:R.attachments}),c?ne(jt,{id:h.source,config:c}):null,ne(Re,{render:b=>ne("button",{type:"button",onClick:a,tabIndex:b,className:_e,title:T,"aria-label":T,"data-detail-star-button":e.reportHubId,children:ne(Gt,{filled:r})})}),ne(Re,{render:b=>ne("button",{type:"button",onClick:o,tabIndex:b,className:_e,title:C,"aria-label":C,"data-detail-read-button":e.reportHubId,children:t?ne(jm,{className:fe.read}):ne(Yt,{})})}),i&&ne(Re,{render:b=>ne("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:_e,title:R.edit,"aria-label":R.edit,children:ne(Ym,{className:fe.edit})})}),n&&ne(Re,{render:b=>ne("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:_e,title:R.deleteReport,"aria-label":R.deleteReport,children:ne(qm,{className:fe.delete})})}),js("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ne(ce,{label:R.id,classNames:Xm,children:e.reportHubId}),ne(ce,{label:R.businessDate,classNames:Vn,children:ne(Gs,{text:le(e.date)})}),ne(ce,{label:R.author,classNames:Vn,children:de(e.employeeName)}),ne(ce,{label:R.visitTime,classNames:Vn,children:de(y)}),ne(ce,{label:R.updatedAt,classNames:Vn,children:ne(Gs,{text:le(e.updatedAt)})}),u&&ne(ce,{label:R.category,classNames:zs,children:u}),g&&ne(ce,{label:R.creationCategory,classNames:zs,children:g})]})]})};import{useCallback as xp,useContext as yl,useLayoutEffect as Ip}from"react";import{startTransition as bp,useCallback as Q,useLayoutEffect as wt,useMemo as pl,useRef as ht,useState as Ir,useSyncExternalStore as yp}from"react";import{flushSync as fl}from"react-dom";var qt=e=>({owner:e,focusIndex:null}),ta=Object.freeze({owner:null,focusIndex:null}),qs=(e,t)=>{if(e.length===0)return ta;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},Xs=(e,t)=>{switch(t.kind){case"focusIn":return qt(t.row);case"focusOut":return t.to==="outside"?ta:qt(e);case"pointerPress":return t.at==="outside"?ta:qt(e);case"listChanged":{if(e===null)return qt(e);let r=ue(t.items,e.reportHubId,e.index);return r===-1?qs(t.items,e.index):qt(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?qt(e):qs(t.items,t.selection.index)}};var Wn=e=>e.matches(":focus-visible");var Zm="data-daily-report-keyboard-focus",gt={capture:!0},Js=e=>{let t=i=>{e.toggleAttribute(Zm,me(i)&&Wn(i))},r=i=>t(i.target),n=i=>{me(i.relatedTarget)&&e.contains(i.relatedTarget)||t(null)},o=()=>t(null);e.addEventListener("focusin",r,gt),e.addEventListener("keydown",r,gt),e.addEventListener("focusout",n,gt),e.addEventListener("pointerdown",o,gt);let a=Ne(e);return t(a!==null&&e.contains(a)?a:null),()=>{e.removeEventListener("focusin",r,gt),e.removeEventListener("keydown",r,gt),e.removeEventListener("focusout",n,gt),e.removeEventListener("pointerdown",o,gt),t(null)}};var Qm='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',ep=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],tp=ep.map(e=>`[role="${e}"]`).join(", "),rp=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),np=new Set(["Enter"," "]),op=new Map([["Home","exitBefore"],["End","exitAfter"]]),ra=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return op.get(e.key)??null;let r=rp.get(e.key);return r!==void 0?r:np.has(e.key)&&t.rowActivation?"activate":null},Zs=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},Qs=(e,t,r)=>{let n=ra(e,r);if(n===null||e.defaultPrevented||hr(e)||t===null||!me(e.target)||!t.contains(e.target))return null;let o=mt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Zs(e.target,Qm,t)||Zs(e.target,tp,t)?null:n};var Kn={kind:"stay"},el=e=>Math.floor(.875*e),Rt=(e,t)=>({kind:"move",index:e,align:t}),Tr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",ap=({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},ip=({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},sp=(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 Kn;if(r==="top")return Rt(n-1,"top");let c=s(n-1);return Rt(n-1,Tr(i-c,c,a,-1))}case"next":return n===o-1?Kn:r==="top"?Rt(n+1,"top"):Rt(n+1,Tr(l,s(n+1),a,1));case"first":return Rt(0,"top");case"last":return Rt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,el(a))};if(n===o-1)return Kn;let c=ap(t);return Rt(c.index,Tr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,el(a))};if(n===0)return Kn;let c=ip(t);return Rt(c.index,Tr(c.top,s(c.index),a,-1))}}},lp=({index:e,focusedRowTop:t,heightOf:r},n)=>{let o=t;for(let a=e;a<n;a++)o+=r(a);for(let a=n;a<e;a++)o-=r(a);return o},nl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=sp(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:lp(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}},ol=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Tr(r,n(e),t,1),dp=(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},Er=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;if(n.kind==="uniform"){let{rowHeight:s}=n;return{index:t,count:r,viewport:o,focusedRowTop:t*s-a,heightOf:()=>s}}let i=e.getScrollAnchor();return i===null?null:{index:t,count:r,viewport:o,focusedRowTop:dp(t,i,n.heightOf),heightOf:n.heightOf}},tl=1,al=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=r.kind==="uniform"?()=>r.rowHeight:r.heightOf,i=o.index,s=a(i)-o.offsetPx;for(;s<n&&i<t-1;)i+=1,s+=a(i);return{start:Math.max(0,o.index-tl),end:Math.min(t-1,i+tl)}},il=(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,rl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),sl=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(rl(t,n,o))return t.reportHubId;if(rl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var oa=1,xr=2,na=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?oa:0)|(n===t||n===r?xr:0),cp=e=>{if(ln(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},up=(e,t)=>{let r=e.closest(`[${dn}]`);return r!==null&&r!==e&&At(r)===t&&Ne(e)===r},ll=({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,y=u=>na(r,u),h=u=>{let g=s.get(u);if(g===void 0)return;let b=(y(u)&xr)!==0?"0":"-1";g.getAttribute("tabindex")!==b&&g.setAttribute("tabindex",b)},R=u=>{let g={...r};u(r);let b=r,A=new Set([g.selectedId,g.tabStopId,g.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let _ of A){if(_===null)continue;let D=na(g,_),N=na(b,_);if(D===N)continue;((D^N)&xr)!==0&&h(_);let k=i.get(_);if(k!==void 0)for(let F of[...k])F()}},T=u=>{o=!0;try{u.focus({preventScroll:!0})}finally{o=!1}},C=u=>{let g=e();g!==null&&(n=null,cp(g)&&T(u))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:y,setTabStopId:u=>{R(g=>{g.tabStopId=u})},settleSelection:(u,g)=>{R(b=>{b.selectedId=u,b.tabStopId=g,b.arrivingId=null})},arrive:u=>{R(g=>{g.arrivingId=u})},subscribe:(u,g)=>{let b=i.get(u)??new Set;return b.add(g),i.set(u,b),()=>{b.delete(g),b.size===0&&i.get(u)===b&&i.delete(u)}},registerFocusTarget:(u,g)=>{if(s.set(u,g),h(u),n===u){C(g);return}a===null||a.reportHubId!==u||(ln(g)||up(g,u))&&T(g)},unregisterFocusTarget:(u,g)=>{s.get(u)===g&&s.delete(u)},requestFocus:u=>{n=u;let g=s.get(u);g!==void 0&&C(g)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:u=>{a=u},restoreFocus:u=>{if(a===null||a.reportHubId!==u)return;let g=s.get(u);g===void 0||!ln(g)||T(g)},holdBodiesOutside:u=>{l=u},isBodyHeldAt:u=>l!==null&&(u<l.start||u>l.end),registerHeldBody:(u,g,b)=>{let A={indexHint:g,release:b};return c.set(u,A),()=>{c.get(u)===A&&c.delete(u)}},releaseHeldBodiesWithin:(u,g)=>{if(u!==null)for(let[b,{indexHint:A,release:_}]of[...c]){let D=g(b,A);D>=u.start&&D<=u.end&&_()}}}};var $e={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}},aa=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),mp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),dl=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),pp=new Map(Object.values($e).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),cl=e=>{let t=pp.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},fp=(e,t,r)=>e==="row"||e==="page"?t+r:r,ul=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:cl(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",cl(r)):(e.pending=fp(e.axis,e.pending,r.amount),aa)}case"frame":{if(e.fence==="open")return aa;if(e.fence==="immediate")return e.fence="flush",mp;if(e.pending===0)return e.fence="open",aa;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?dl:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return dl}};var gp=Object.freeze({kind:"frame"}),Rp=Object.freeze({kind:"keyup"}),hp=Object.freeze({kind:"cancel"}),Sp=Object.freeze({previous:Object.freeze({kind:"repeat",step:$e.previous}),next:Object.freeze({kind:"repeat",step:$e.next}),pageBackward:Object.freeze({kind:"repeat",step:$e.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:$e.pageForward}),first:Object.freeze({kind:"repeat",step:$e.first}),last:Object.freeze({kind:"repeat",step:$e.last}),activate:Object.freeze({kind:"repeat",step:$e.activate})}),vp=(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}},Tp=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),Ep=e=>{let t=At(e),r=Vt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},$n=(e,t)=>{let r=Q(a=>e.subscribe(t,a),[e,t]),n=Q(()=>e.rowStateOf(t),[e,t]),o=yp(r,n,n);return{isCurrent:(o&oa)!==0,isTabStop:(o&xr)!==0}},zn=(e,t,r)=>{let[n,o]=Ir(()=>!e.isBodyHeldAt(r));return wt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return bp(a),i},[e,t,r,n]),n},bl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,rowSizing:i,arrowAlign:s,rowActivation:l})=>{let[c]=Ir(()=>ll({getContainer:()=>n.current,initialSelectedId:t})),y=ht({items:e,onSelect:r,rowSizing:i,arrowAlign:s,rowActivation:l}),h=ht(null),R=ht(null),[T,C]=Ir(null),u=ht(null),g=ht(null),[b,A]=Ir(null),_=ht(!1),D=ht(null),[N,k]=Ir(0),F=pl(()=>({id:t,indexHint:t===null?null:gi(T,t)}),[t,T]),z=ht(F);wt(()=>{y.current={items:e,onSelect:r,rowSizing:i,arrowAlign:s,rowActivation:l},z.current=F},[e,r,i,s,l,F]);let X=Q((E,w)=>{let p=R.current;if(p!==null&&p.items===E&&p.reportHubId===w)return p.index;let f=ue(E,w,p!==null&&p.reportHubId===w?p.index:null);return f!==-1&&(R.current={items:E,reportHubId:w,index:f}),f},[]),W=Q((E,w)=>{R.current={items:y.current.items,reportHubId:E,index:w},C(p=>p!==null&&p.reportHubId===E&&p.index===w?p:{reportHubId:E,index:w})},[]),B=Q(E=>{let w=c.getFocusOwner();if(w===null)return null;let p=ue(E,w.reportHubId,w.index);return p===-1?null:{reportHubId:w.reportHubId,index:p}},[c]),J=Q(E=>{let w=y.current.items,p=E===null?null:{reportHubId:E,index:X(w,E)};return sl(w,B(w),p,h.current,D.current)},[X,B]),K=Q(()=>{c.setTabStopId(J(c.getSelectedId()))},[c,J]),oe=Q(E=>{let w=c.getFocusOwner();w===E||w!==null&&E!==null&&w.reportHubId===E.reportHubId&&w.index===E.index||(c.setFocusOwner(E),_.current||K())},[c,K]),V=Q(E=>{let w=Xs(c.getFocusOwner(),E);oe(w.owner),w.focusIndex!==null&&(u.current=w.focusIndex,c.requestFocus(w.owner.reportHubId))},[c,oe]);wt(()=>{c.settleSelection(t,J(t))},[c,t,e,N,J]),wt(()=>{let E=o.current;if(E!==null)return Js(E)},[o]),wt(()=>{let E=n.current;if(E===null)return;let w=E.ownerDocument,p=f=>{let x=n.current,d=f.target;V({kind:"pointerPress",at:x!==null&&me(d)&&x.contains(d)?"inside":"outside"})};return w.addEventListener("pointerdown",p,{capture:!0}),()=>w.removeEventListener("pointerdown",p,{capture:!0})},[n,V]),wt(()=>{let E=c.pendingFocusId();E!==null&&ue(e,E,u.current)===-1&&c.cancelFocusRequest(),V({kind:"listChanged",items:e})},[c,e,V]);let $=Q(E=>{V({kind:"removed",reportHubId:E,selection:R.current,items:y.current.items})},[V]),ae=Q((E,w,p)=>{let{items:f,onSelect:x,rowSizing:d,arrowAlign:m}=y.current,S=a.current;if(x===null||S===null)return null;let L=ue(f,p.reportHubId,p.index);if(L===-1)return null;let O=Er(S,L,f.length,d);if(O===null)return null;let M=nl(E,w,O,m),q=f[M.index],je=M.index!==L;if(je){c.arrive(q.reportHubId),D.current=q.reportHubId,u.current=M.index,_.current=!0;try{c.requestFocus(q.reportHubId)}finally{_.current=!1}}try{fl(()=>{je&&(c.pendingFocusId()===null&&c.settleSelection(q.reportHubId,q.reportHubId),x(q.reportHubId,M.index)),M.alignment!==null&&S.scrollToIndex(M.alignment.index,{align:M.alignment.align}),M.scrollDelta!==0&&S.scrollBy(M.scrollDelta),je&&(W(q.reportHubId,M.index),k(co=>co+1));let Ea=al(S,f.length,d);c.holdBodiesOutside(Ea),c.releaseHeldBodiesWithin(Ea,(co,md)=>ue(f,co,md))})}finally{c.holdBodiesOutside(null)}return je?{reportHubId:q.reportHubId,index:M.index}:{reportHubId:p.reportHubId,index:L}},[c,a,W]),ie=Q(E=>{let{items:w,onSelect:p}=y.current;if(p===null)return;let f=ue(w,E.reportHubId,E.index);f!==-1&&(p(E.reportHubId,f),W(E.reportHubId,f))},[W]),P=Q(E=>{let w=n.current,p=w===null?null:Ne(w),f=w!==null&&p!==null&&w.contains(p)?sr(mt(p,w),y.current.items):null;return f===null?E.origin:f},[n]),ee=Q((E,w)=>{let p=P(E);if(w.axis==="activate"){ie(p);return}let f=vp(w.axis,w.amount),x=ae(f.command,f.count,p);x!==null&&(E.origin=x)},[P,ie,ae]),Te=Q(E=>{g.current=null,E.frame!==0&&E.view.cancelAnimationFrame(E.frame),A(null)},[]),He=Q((E,w,p)=>{let{apply:f}=w;f!==null&&(w.flush?fl(()=>ee(E,f)):ee(E,f)),g.current===E&&(w.ended?Te(E):w.requestFrame&&(E.frame=E.view.requestAnimationFrame(p)))},[ee,Te]),Ae=Q((E,w,p)=>{He(E,ml(E.state,w),p)},[He]),ge=Q(()=>{let E=g.current;E!==null&&(E.frame=0,Ae(E,gp,ge))},[Ae]),We=Q(()=>{let E=g.current;E!==null&&Ae(E,Rp,ge)},[Ae,ge]),se=Q(()=>{let E=g.current;E!==null&&Ae(E,hp,ge)},[Ae,ge]),dt=Q((E,w,p)=>{A(z.current);let{state:f,effects:x}=ul($e[E]),d={state:f,origin:w,view:p,frame:0};g.current=d,He(d,x,ge)},[He,ge]);wt(()=>()=>{let E=g.current;g.current=null,E!==null&&E.frame!==0&&E.view.cancelAnimationFrame(E.frame)},[]);let et=Q(E=>{let w=g.current,p=w!==null&&E.repeat?ra(E,y.current):null;if(w!==null&&p!==null&&p!=="exitBefore"&&p!=="exitAfter"&&$e[p].axis===w.state.axis){E.preventDefault(),Ae(w,Sp[p],ge);return}let{items:f,onSelect:x,rowSizing:d,rowActivation:m}=y.current,S=n.current,L=x===null?null:Qs(Cn(E),S,{rowActivation:m});if(c.cancelFocusRequest(),We(),L===null||S===null)return;if(L==="exitBefore"||L==="exitAfter"){let q=as(S,L==="exitBefore"?"before":"after");if(q===null)return;E.preventDefault(),q.focus();return}let O=Ne(S),M=sr(mt(O!==null&&S.contains(O)?O:E.target,S),f);if(M!==null){if(L!=="activate"){let q=a.current;if(q===null||Er(q,M.index,f.length,d)===null)return}if(E.preventDefault(),E.repeat){dt(L,M,Lt(S));return}L==="activate"?ie(M):ae(L,1,M)}},[c,n,a,ge,Ae,We,dt,ie,ae]),Ge=Q(()=>{We()},[We]),Ke=Q(E=>{let w=n.current,p=E.target,f=mt(p,w);if(V({kind:"focusIn",row:f===null?null:Ep(f)}),c.isMovingFocus())return;let x=a.current;if(w===null||x===null||!me(p)||!Wn(p))return;let d=f===null?null:f.closest('[role="list"]');if(f===null||d===null)return;let m=d.getBoundingClientRect(),S=f.getBoundingClientRect(),L=S.height<=m.height?S:Tp(p.getBoundingClientRect(),Hr),O=il(L,m),M=x.getViewportSize();O===0||!(M>0&&m.height>0)||x.scrollBy(O*M/m.height)},[c,n,a,V]),De=Q(E=>{let w=n.current,p=E.relatedTarget,f=me(p)?w?.contains(p)?"view":"outside":"nowhere";f!=="view"&&se(),V({kind:"focusOut",to:f})},[n,se,V]),Fe=Q(()=>{c.cancelFocusRequest(),se()},[c,se]),tt=Q(E=>{h.current={visibleStartIndex:E.visibleStartIndex,visibleEndIndex:E.visibleEndIndex},D.current=null,K()},[K]),Oe=pl(()=>({onKeyDown:et,onKeyUp:Ge,onPointerDownCapture:Fe,onWheelCapture:Fe,onTouchStartCapture:Fe,onFocus:Ke,onBlur:De}),[et,Ge,Fe,Ke,De]);return{cursor:c,containerProps:Oe,handleRangeChange:tt,selection:F,settledSelection:b===null?F:b,resolveSelectedIndex:X,rememberSelection:W,focusAfterRemoval:$}};import{jsx as ia}from"react/jsx-runtime";var gl=v(Pt,Fr,Br,Ia),Cp=v(gl,"h-full"),Lp="h-full w-full",Rl=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=$n(a,e),c=yl(ft),y=yl(pt),h=zn(a,e,c),R=xp(T=>{let C=o(T);return a.registerFocusTarget(e,T),()=>{a.unregisterFocusTarget(e,T),C()}},[a,e,o]);return Ip(()=>{a.restoreFocus(e)},[a,e,n]),ia(fr.Provider,{value:l,children:ia("div",{ref:R,className:h?gl:Cp,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":y,"aria-labelledby":h&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":h&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!h?!0:void 0,"aria-current":s?"true":void 0,children:h?i:ia("div",{...Me,className:Lp})})})};import{jsx as G,jsxs as be}from"react/jsx-runtime";var _p=v("flex h-full w-full flex-col",ut,Vr),wp=ut,Se="bg-slate-200 dark:bg-slate-700",Np=(e,t)=>{let r=de(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},Op=()=>be("div",{...Me,className:wp,children:[be("div",{className:"mb-4 flex flex-wrap gap-2",children:[G("div",{className:v("h-6 w-20 rounded-full",Se)}),G("div",{className:v("h-6 w-24 rounded-full",Se)}),G("div",{className:v("h-6 w-24 rounded-full",Se)}),G("div",{className:v("h-6 w-28 rounded-full",Se)})]}),be("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[be("div",{className:"space-y-4",children:[G("div",{className:v("h-5 w-40 rounded",Se)}),G("div",{className:v("h-5 w-56 rounded",Se)}),G("div",{className:v("h-24 rounded-xl",Se)})]}),be("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[G("div",{className:v("mb-2 h-4 w-24 rounded",Se)}),G("div",{className:v("mb-2 h-4 w-28 rounded",Se)}),G("div",{className:v("h-4 w-32 rounded",Se)})]})]}),be("div",{className:"space-y-4",children:[G("div",{className:v("h-4 w-24 rounded",Se)}),be("div",{className:"flex flex-wrap gap-2",children:[G("div",{className:v("h-6 w-16 rounded-full",Se)}),G("div",{className:v("h-6 w-16 rounded-full",Se)}),G("div",{className:v("h-6 w-16 rounded-full",Se)})]}),be("div",{className:"space-y-2",children:[G("div",{className:v("h-16 rounded-xl",Se)}),G("div",{className:v("h-16 rounded-xl",Se)})]})]})]}),Mp=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=Ct(e.reportHubId,e.businessDate),{removeStaleItem:c}=Ie(),{draftLabelName:y,sourceTypeConfigs:h}=U(),[R,T]=Sl(!1),[C,u]=Sl(!1),g=Lr(!1),b=Lr(!1),A=Lr(!1),_=Lr(!1);hl(()=>{if(l){_.current=!0;return}!(a||s||i)&&_.current&&e.reportHubId>0&&c(e.reportHubId)},[a,s,l,i,e.reportHubId,c]);let D=a?.labels.some(P=>P.name===y),N=n&&a?.userId===n,k=Cr(()=>{b.current=!0,g.current=!1,T(!0)},[]),F=Cr(()=>{A.current=!0,T(!1),u(!0)},[]),z=Cr(()=>{A.current=!0,T(!1)},[]),X=Cr(P=>{P===null||!b.current||(b.current=!1,P.focus())},[]),W=Cr(P=>{P===null||!A.current||(A.current=!1,P.focus())},[]);Dp(()=>{R||(A.current=!1)},[R]),hl(()=>{a&&N&&D&&!R&&!C?(T(!0),g.current=!0):a&&!D&&R&&g.current&&(T(!1),g.current=!1)},[a,N,D,R,C]);let B=Ap(),J=sa(()=>({heading:`${B}-heading`,state:`${B}-state`,attachments:`${B}-attachments`,source:`${B}-source`}),[B]),K=a!==null&&a.attachments.length>0,oe=a===null?void 0:Et(a.sourceType,h),V=[J.state,...K?[J.attachments]:[],...oe!==void 0?[J.source]:[]].join(" "),$=!i&&a!==null&&!R?{kind:"card",ids:J,describedBy:V}:{kind:"label",label:le(e.businessDate)},ae=!i&&a===null&&s,ie=i?"error":a===null?s?"loading":"missing":R?"editing":"resolved";return G(Rl,{itemId:e.reportHubId,name:$,isBusy:ae,bodyKind:ie,observeRowHeight:t,cursor:o,children:i?G(kp,{itemId:e.reportHubId}):a?R?G("div",{...Me,className:"rounded-2xl",children:G(Pn,{report:a,onCancel:F,onPublishSuccess:z,titleInputRef:X})}):G(El,{item:e,report:a,sourceConfig:oe,textIds:J,onCommentAdded:r,userId:n,onEdit:N?k:void 0,editButtonRef:W}):G(Op,{})})},Tl=vl(Mp),El=vl(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s})=>{let l=Lr(null),{toggleStar:c,toggleRead:y,pendingStarUpdates:h,pendingReadUpdates:R,deleteReport:T,user:C}=Ie(),{uiComments:u,handleAddComment:g,handleDeleteComment:b,pendingDeleteId:A,setPendingDeleteId:_,resolvedIdMap:D}=ur(t,C,a),{labels:N,headingLevel:k}=U(),F=Kt[k],z=Gr(t.sourceType,r),X=async ee=>{await g(ee),o?.(e.reportHubId)},W=h.current.get(t.reportHubId),B=W===void 0?t.isStarred:W,J=R.current.get(t.reportHubId),K=J===void 0?t.isRead:J,oe=!!(a&&t.userId===a),V=async()=>{try{await y(t.reportHubId,!K,t.date)}catch{}},$=async()=>{try{await c(t.reportHubId,!B,t.date)}catch{}},ae=async()=>{confirm(N.confirmDelete)&&await T(t.reportHubId,t.date)},ie=sa(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
- `).trim():"",[t.content]),P=sa(()=>{let ee=t.visitTimeFrom?.trim(),Te=t.visitTimeTo?.trim();return ee&&Te?`${ee} - ${Te}`:ee||Te||null},[t.visitTimeFrom,t.visitTimeTo]);return be("div",{...Me,onDoubleClick:i,className:_p,children:[G(ke,{level:k,id:n.heading,className:"sr-only",children:`${le(t.date)} ${de(t.employeeName)} ${de(t.subject)}`}),G("span",{id:n.state,className:"sr-only",children:N.rowState({isRead:K,isStarred:B})}),be("div",{className:"flex flex-col gap-4",children:[G(Ys,{report:t,sourceConfig:r,isRead:K,isStarred:B,isMine:oe,onToggleRead:V,onToggleStar:$,onEdit:i,editButtonRef:s,onDelete:ae,visitTimeDisplay:P,markerIds:n,labels:N}),be("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[be("div",{className:"flex flex-col gap-4",children:[be("div",{className:"grid gap-4 sm:grid-cols-2",children:[be("div",{className:"flex flex-col gap-1",children:[G(ke,{level:F,className:rt,children:N.customer}),G("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:de(t.customerName)})]}),be("div",{className:"flex flex-col gap-1",children:[G(ke,{level:F,className:rt,children:N.subject}),G("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:de(t.subject)})]})]}),ie&&be("div",{className:"flex flex-col gap-2",children:[G(ke,{level:F,className:rt,children:N.content}),G("div",{className:v("whitespace-pre-wrap",Ur),children:ie})]}),t.interviewers.length>0&&be("div",{className:"flex flex-col gap-2",children:[G(ke,{level:F,className:rt,children:N.interviewers}),G("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ee=>G("li",{className:v(Ee,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:Np(ee,N)},JSON.stringify([ee.name,ee.affiliation])))})]}),G(In,{attachments:t.attachments}),(u.length>0||z)&&be("div",{..._n,className:"flex flex-col gap-2",children:[G(ke,{level:F,tabIndex:-1,...wn,className:Nn,children:N.comments}),G(On,{comments:u,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:b,pendingDeleteId:A,onPendingDeleteIdChange:_,resolvedIdMap:D})]}),z&&G("div",{className:"mt-auto",ref:l,children:G(Mn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:X})})]}),G(Ks,{report:t,visitTimeDisplay:P,labels:N})]})]})]})});El.displayName="DailyReportResolvedItem";var kp=({itemId:e})=>{let{labels:t}=U();return G("div",{...Me,className:"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:G("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Up,useId as Vp,useMemo as Cl}from"react";import{useCallback as Pp,useLayoutEffect as xl,useMemo as Hp,useRef as la}from"react";var Fp=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},Bp=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ue(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Il=({items:e,handleRef:t,isRevealPending:r})=>{let n=la(null),o=la(e),a=la(r);xl(()=>{a.current=r},[r]);let i=Pp(s=>{let l=t.current,c=l===null||!(l.getScrollPosition()>0)?null:l.getScrollAnchor(),y=c===null?void 0:o.current[c.index];n.current=c===null||y===void 0?null:{reportHubId:y.reportHubId,index:c.index,offsetPx:c.offsetPx,lastVisibleIndex:Math.max(c.index,s.visibleEndIndex)}},[t]);return xl(()=>{let s=o.current;o.current=e;let l=n.current,c=t.current;if(s===e||l===null||c===null||a.current())return;let y=ue(e,l.reportHubId,l.index),h=y===-1?Bp(s,e,l):y;if(h===-1){n.current=null;return}h===l.index&&!Fp(s,e,l.index,l.lastVisibleIndex)||(c.scrollToIndex(h,{align:"top",offset:-l.offsetPx}),n.current={reportHubId:e[h].reportHubId,index:h,offsetPx:l.offsetPx,lastVisibleIndex:l.lastVisibleIndex+(h-l.index)})},[e,t]),Hp(()=>({handleRangeChange:i}),[i])};import{jsx as Wp}from"react/jsx-runtime";var Gn=({isViewRevealPending:e,onRangeChange:t,...r})=>{let{handleRangeChange:n,...o}=bl(r),{labels:a}=U(),i=Vp(),s=r.onSelect!==null,{handleRangeChange:l}=Il({items:r.items,handleRef:r.handleRef,isRevealPending:e}),c=Up(R=>{n(R),l(R),t(R)},[n,l,t]),y=Cl(()=>({role:"list","aria-label":a.title,"aria-describedby":s?i:void 0}),[a.title,s,i]),h=Cl(()=>s?Wp("span",{id:i,className:"sr-only",children:a.listKeyboardHelp}):null,[s,i,a.listKeyboardHelp]);return{...o,handleRangeChange:c,contentProps:y,keyboardHelp:h}};import{useCallback as Kp}from"react";var $p=20,jn=({hostTestId:e,scrollContainerRef:t,handleRef:r,itemsRef:n})=>Kp(o=>{t.current=o;let a=o.querySelector(`[data-testid="${e}"]`);return a!==null&&Object.defineProperty(a,"__virtualScroll",{configurable:!0,get:()=>{let i=r.current;if(i!==null)return{...i,findReportIndex:s=>n.current.findIndex(l=>l.reportHubId===s),getReportItem:s=>n.current[s],getReportIds:(s=$p)=>n.current.slice(0,s).map(l=>l.reportHubId)}}}),()=>{a!==null&&delete a.__virtualScroll,t.current=null}},[e,t,r,n]);import{Fragment as ef,jsx as st,jsxs as Qp}from"react/jsx-runtime";var Al={pointerDragInputs:en,wheelSpeedMultiplier:Yr,inertiaOptions:Wt(!1),enableKeyboardNavigation:!1},jp={...Al,inertiaOptions:Wt(!0)},Ll="daily-report-detail-list",Yp=v("relative w-full",$r),qp=v(Ye,"relative"),Xp=300,Jp=350,ca=e=>{let t=Ce(null),[r,n]=Yn(null),o=on(t),a=cn(r),i=ve(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return st("div",{ref:i,className:Wr,children:o===null?null:st(Zp,{...e,viewportHeight:o,reducedMotion:a})})},Zp=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=Yn(()=>{let d=o?.current;if(!d||d.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!d.topItem)return{initialScrollAnchor:void 0,restored:!0};let m=e.findIndex(S=>S.reportHubId===d.topItem?.reportHubId);return m!==-1?{initialScrollAnchor:{index:m,offsetPx:d.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:d.topItem.index,offsetPx:0},restored:!0}}),c=Ce(l),y=Ce(r??null),h=Ce(o?.current.measuredHeights??new Map),R=Ce(null),T=Ce(null),{labels:C}=U(),u=nn(),g=To(),[b]=Yn(un),A=Ce(null),_=Ce(null),D=Ce(e),N=Ce(n);Gp(()=>{D.current=e,N.current=n},[e,n]);let k=Ce(null),[F,z]=Yn(0),X=Ce(null),W=e.length,B=ve(d=>d>=W?Xr:e[d],[e,W]),J=ve(d=>{let m=h.current.get(B(d).reportHubId);return m===void 0?Jp:m},[B]),K=ve(d=>B(d).reportHubId,[B]),oe=da(()=>({kind:"measured",heightOf:J}),[J]),V=ve((d,m)=>{k.current={reportHubId:d,index:m},z(S=>S+1),N.current?.(d)},[]),$=ve((d,m)=>{if(W===0)return;let S=Math.max(0,d),L=Math.min(W-1,m);if(S>L)return;let O=new Set;for(let M=S;M<=L;M++){let q=B(M);if(q.businessDate&&O.add(q.businessDate),O.size>=oi)break}O.forEach(M=>{g(M)})},[B,W,g]),ae=ve(d=>{if(W===0)return;let{renderingStartIndex:m,renderingEndIndex:S,visibleStartIndex:L}=d,O=B(L);O.businessDate&&b.setLabel(le(O.businessDate)),$(m,S),$(S+1,S+qr),$(m-qr,m-1)},[B,W,$,b]),ie=ve(()=>X.current!==null,[]),{cursor:P,containerProps:ee,handleRangeChange:Te,contentProps:He,keyboardHelp:Ae,resolveSelectedIndex:ge,rememberSelection:We}=Gn({items:e,selectedId:r??null,onSelect:n===void 0?null:V,containerRef:R,rootRef:R,handleRef:T,rowSizing:oe,arrowAlign:"top",rowActivation:!0,isViewRevealPending:ie,onRangeChange:ae}),se=ve((d,m)=>{let S=T.current;if(S===null)return!1;let L=D.current,O=m!==null&&m.reportHubId===d?ue(L,d,m.index):ge(L,d);return O===-1?!1:(c.current&&(c.current=!1,d===y.current)||m!==null&&m.reportHubId===d&&m.index===O||S.scrollToIndex(O,{align:"top"}),!0)},[ge]);St(()=>{let d=k.current;k.current=null,X.current=null,r!=null&&(se(r,d)||(X.current=r))},[r,se]),St(()=>{let d=X.current;d!==null&&se(d,null)&&(X.current=null)},[e,se]),St(()=>{let d=o?.current;d&&(d.anchorReportHubId=r??null)},[r,o]),St(()=>{k.current=null},[F]);let dt=jn({hostTestId:Ll,scrollContainerRef:R,handleRef:T,itemsRef:D}),et=Ce(null),Ge=ve(()=>{T.current&&(et.current=T.current);let d=o?.current,m=et.current;if(d&&m){let L=m.getScrollAnchor(),O=L?D.current[L.index]:void 0;L&&O&&(d.topItem={reportHubId:O.reportHubId,index:L.index,offsetPx:L.offsetPx})}let S=R.current;S&&(S.toggleAttribute(kt,!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{S.toggleAttribute(kt,!1),_.current=null},150))},[o]),Ke=ve(d=>st(mn,{...d,store:b}),[b]);St(()=>{let d=R.current;if(!d)return;let m=()=>{b.setWheelScrollActive(!0),A.current&&clearTimeout(A.current),A.current=window.setTimeout(()=>{b.setWheelScrollActive(!1),A.current=null},Jr)};return d.addEventListener("wheel",m,{passive:!0}),()=>{d.removeEventListener("wheel",m),A.current&&clearTimeout(A.current)}},[b]);let De=Ce(null),Fe=ve(d=>{for(let m of d){let S=At(m.target),L=Vt(m.target),O=m.borderBoxSize[0];if(S===null||L===null||O===void 0)continue;let M=O.blockSize;if(h.current.get(S)===M)continue;let q=ue(D.current,S,L-1);if(q===-1)continue;h.current.set(S,M);let je=T.current;je!==null&&je.updateItemSize(q,M)}},[]),tt=ve(d=>{De.current===null&&(De.current=new ResizeObserver(Fe));let m=De.current;return m.observe(d),()=>m.unobserve(d)},[Fe]);St(()=>()=>{De.current?.disconnect(),De.current=null},[]),St(()=>{W!==0&&$(0,Math.min(W-1,qr))},[W,$]);let Oe=Ce(null),E=ve(d=>{let m=ue(D.current,d,null);m!==-1&&(Oe.current!==null&&clearTimeout(Oe.current),Oe.current=setTimeout(()=>{Oe.current=null;let S=ue(D.current,d,m);S!==-1&&T.current?.scrollToIndex(S,{align:"bottom"})},Xp))},[]);St(()=>()=>{Oe.current!==null&&clearTimeout(Oe.current)},[]);let w=ve(d=>{if(!N.current)return;let m=mt(d.target,R.current);if(m===null||Di(d.target,m))return;let S=sr(m,D.current);S!==null&&(We(S.reportHubId,S.index),V(S.reportHubId,S.index))},[V,We]),p=ve((d,m)=>st(ft.Provider,{value:m,children:st(Tl,{item:d,observeRowHeight:tt,onCommentAdded:E,userId:t,cursor:P})},d.reportHubId),[tt,E,t,P]),f=da(()=>({...Qr,renderThumbOverlay:Ke}),[Ke]),x=da(()=>st(pt.Provider,{value:W,children:st(zp,{ref:T,itemCount:W,getItem:B,getItemKey:K,getItemHeight:J,viewportSize:a,initialScrollAnchor:s,overscanCount:Zr,scrollBarOptions:f,behaviorOptions:i?jp:Al,onRangeChange:Te,onScroll:Ge,testId:Ll,className:Yp,locale:u.locale,labels:u.labels,contentProps:He,children:p})}),[W,B,K,J,a,i,s,f,Te,Ge,u.locale,u.labels,He,p]);return st(ef,{children:Qp("div",{ref:dt,className:qp,...ee,onClick:w,children:[Ae,x,W===0&&st("p",{className:Kr,children:C.listEmpty})]})})};import _l from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as tf,useRef as Dl,useState as rf}from"react";var Ar=(e,t=250)=>{let[r,n]=rf(e),o=Dl(e),a=Dl(!0);return tf(()=>{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=y=>{l===null&&(l=y);let h=Math.min(1,Math.max(0,(y-l)/t)),R=1-(1-h)**3,T=Math.round(i+(e-i)*R);o.current=T,n(T),h<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as qn,jsxs as Xn}from"react/jsx-runtime";var Dr=()=>{let e=nt(),{labels:t}=U(),r=Ar(e.loadedCount),n=Ar(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 Xn("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:v(Ee,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[qn("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"?Xn("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:v(Ee,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[qn(_l,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?Xn("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:v(Ee,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,qn("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Rn(),className:v("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",Z),children:t.streamRetry})]}):e.isRevalidating?Xn("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:[qn(_l,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as td,PanelGroup as hb,PanelResizeHandle as Sb}from"@aiquants/resize-panels";import{VirtualScroll as vb}from"@aiquants/virtualscroll";import{useCallback as Qe,useEffect as kr,useLayoutEffect as rd,useMemo as oo,useRef as Mt,useState as ao}from"react";import{useSyncExternalStore as nf}from"react";var wl="(max-width: 639px)",of=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(wl);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},af=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(wl).matches:!1,sf=()=>!1,Nl=()=>nf(of,af,sf);import{SwipeCloseGuardContext as Af,useOverlayEscapeStack as Df,useSwipeGuardState as _f,useSwipeToDismissOverlay as wf,useTapClick as Nf,useTransitionDisplay as Of}from"@aiquants/swipe-overlay";import{useCallback as Qn,useEffect as Qt,useId as ya,useLayoutEffect as Kl,useRef as Ze,useState as eo}from"react";import{createContext as lf,useMemo as df}from"react";var Ol=Object.freeze({id:null,indexHint:null}),Jn=lf(Object.freeze({selected:Ol,settled:Ol})),_r=(e,t)=>{let{id:r,indexHint:n}=t;return df(()=>{if(r===null)return null;let o=ue(e,r,n);return o===-1?null:e[o]},[e,r,n])};import cf from"lucide-react/dist/esm/icons/check.js";import uf from"lucide-react/dist/esm/icons/pencil.js";import mf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as pf,useCallback as Zt,useContext as ff,useDeferredValue as bf,useEffect as ua,useId as Fl,useLayoutEffect as pa,useMemo as yf,useRef as Nt,useState as ma}from"react";import*as lt from"@radix-ui/react-tabs";import*as Pe from"react";import{jsx as wr}from"react/jsx-runtime";var Ml=Pe.createContext(null),kl=e=>{let t=Pe.useContext(Ml);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Pl=(e,t)=>`${e}-trigger-${t}`,Hl=(e,t)=>`${e}-panel-${t}`,Nr=Pe.forwardRef(({value:e,children:t,...r},n)=>{let o=Pe.useId(),a=Pe.useMemo(()=>({baseId:o,value:e}),[o,e]);return wr(lt.Root,{ref:n,value:e,...r,children:wr(Ml,{value:a,children:t})})});Nr.displayName=lt.Root.displayName;var Or=Pe.forwardRef(({className:e,...t},r)=>wr(lt.List,{ref:r,className:v("inline-flex",e),...t}));Or.displayName=lt.List.displayName;var Mr=Pe.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=kl("TabsTrigger");return wr(lt.Trigger,{ref:n,value:t,...r,id:Pl(o,t),"aria-controls":Hl(o,t),className:v(`${Va} ${Z}`,e)})});Mr.displayName=lt.Trigger.displayName;var Xt=Pe.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=kl("TabsContent"),s=t===i;return wr("div",{ref:o,role:"tabpanel",id:Hl(a,t),"aria-labelledby":Pl(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:v(`mt-2 data-[state=inactive]:hidden ${Z}`,e),children:s?r:null})});Xt.displayName="TabsContent";import{Fragment as Lf,jsx as H,jsxs as ze}from"react/jsx-runtime";var Vl=v(Tt,"w-24 shrink-0"),Bl={field:"flex items-baseline",label:Vl,value:"flex-1"},gf={field:"flex min-w-0 flex-1 items-baseline",label:Vl,value:"wrap-break-word min-w-0 flex-1"},Rf={field:"flex flex-col gap-1",label:Tt,value:""},hf={field:"flex items-center gap-1",label:Tt,value:""},Ul=v("scrollbar-thin flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm [scrollbar-gutter:stable]",La,Ca),Sf=v("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",Z),vf=500,fa=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)})}},Tf=(e,t,r,n,o,a)=>{let i=Nt(null),s=e?.reportHubId;pa(()=>{i.current=null},[s]),ua(()=>{n||(i.current=null)},[n]);let l=Zt(async(c,y)=>{y||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return ua(()=>{if(!(r&&e&&!e.isRead&&!t)||i.current===e.reportHubId)return;let c=null,y=()=>{c!==null&&clearTimeout(c),c=o.isDwelling()?setTimeout(()=>l(e,!0),vf):null};y();let h=o.subscribe(y);return()=>{h(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},ba="article",Ef=["article","relations"],xf=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},If=v("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",ut),Wl=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=U(),a=Fl(),i=Fl(),[s,l]=ma(ba),{selected:c,settled:y}=ff(Jn),h=_r(e,c),R=_r(e,bf(y)),T=h===null?null:h.reportHubId,u=(R===null?null:R.reportHubId)===T,[g]=ma(()=>fa(u));return pa(()=>{g.set(u)},[g,u]),H("aside",{"data-testid":"daily-report-side-pane","data-report-id":h?.reportHubId,"data-displayed-report-id":R?.reportHubId,"aria-busy":u?void 0:!0,className:If,children:R===null?H("div",{className:v("flex h-full flex-1 items-center justify-center text-center",Ht),children:H("p",{children:o.selectPrompt})}):H(Zn,{item:R,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:g,userId:r,onReportDeleted:n},R.reportHubId)})},Zn=pf(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[y,h]=ma(!1),{draftLabelName:R,labels:T,sourceTypeConfigs:C,headingLevel:u}=U(),{report:g,error:b,isLoading:A}=Ct(e.reportHubId,e.businessDate),_=Nt(null),D=Nt(null),N=Nt(null),k=Nt(!1),F=Nt(!1),z=Nt(!1);ua(()=>{if(!g)return;let P=g.labels.some(ee=>ee.name===R);g.reportHubId!==N.current?(N.current=g.reportHubId,P?(h(!0),k.current=!0):(h(!1),k.current=!1)):!P&&y&&k.current&&(h(!1),k.current=!1)},[g,y,R]);let X=!!(l&&g?.userId===l),W=Zt(()=>{F.current=!0,k.current=!1,h(!0)},[]),B=Zt(()=>{z.current=!0,h(!1)},[]),J=Zt(P=>{P===null||!F.current||(F.current=!1,P.focus())},[]),K=Zt(P=>{P===null||!z.current||(z.current=!1,P.focus())},[]);pa(()=>{y||!z.current||(z.current=!1,D.current?.focus())},[y]);let oe=Zt(()=>{setTimeout(()=>{let P=_.current;P!==null&&P.scrollTo({top:P.scrollHeight,behavior:Oi(P)})},100)},[]),V=le(e.businessDate),$=g===null?null:de(g.employeeName),ae=A||!g,ie=g===null?void 0:Et(g.sourceType,C);return ze(Lf,{children:[ze("div",{className:"flex flex-col gap-1",children:[H("dl",{className:"m-0",children:H(ce,{label:T.businessDate,classNames:Rf,children:H(ke,{ref:D,level:u,id:t,tabIndex:-1,className:Sf,children:V})})}),ze("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[H("dl",{className:"m-0",children:H(ce,{label:T.author,classNames:hf,valueId:r,children:ae?H("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):$})}),ie?H(jt,{config:ie,className:"ml-2"}):null]})]}),ze(Nr,{value:n,onValueChange:P=>o(xf(P)),className:"flex min-h-0 flex-1 flex-col",children:[H(Or,{"aria-label":T.reportTabList,className:v(Ba,"grid grid-cols-2 gap-1"),children:Ef.map(P=>H(Mr,{value:P,children:P==="article"?T.tabArticle:T.tabRelations},P))}),H(Xt,{ref:_,value:"article",className:Ul,children:y?g?H(Pn,{report:g,onCancel:B,onPublishSuccess:B,titleInputRef:J}):H("p",{className:Ht,children:T.loading}):H(Cf,{report:g,sourceConfig:ie,isLoading:A,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:oe,userId:l,onEdit:X?W:void 0,editButtonRef:K,onReportDeleted:c})}),H(Xt,{value:"relations",className:Ul,children:H("p",{className:Ht,children:T.relationsEmpty})})]})]})});Zn.displayName="DailyReportSidePaneContent";var Jt=({className:e="w-32"})=>H("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),Cf=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:c,onEdit:y,editButtonRef:h,onReportDeleted:R})=>{let{toggleStar:T,toggleRead:C,deleteReport:u,user:g}=Ie(),{labels:b,headingLevel:A}=U(),_=Kt[A],{uiComments:D,handleAddComment:N,handleDeleteComment:k,pendingDeleteId:F,setPendingDeleteId:z,resolvedIdMap:X}=ur(e,g,c),{handleToggleRead:W}=Tf(e,r,a,i,s,C),B=e!==null&&Gr(e.sourceType,t),J=async P=>{await N(P),l?.()},K=yf(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
1
+ import Sd from"lucide-react/dist/esm/icons/paperclip.js";var hd="data-daily-report-row-surface",ke={[hd]:""},Pt="data-daily-report-scrolling",Ht=8,Ft="p-[8px]",_a="pr-[8px]",Ur="contain-size contain-layout contain-style",wa="contain-strict",X="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Na="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",fo="scrollbar-thin [scrollbar-gutter:stable]",bo=`-m-[4px] overflow-hidden p-[4px] ${fo}`,Oa="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",Vr="rounded-[calc(var(--radius-2xl)+8px)]",Wr="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]",Ma="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",ut="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",ka=16,Bt="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",Kr="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",$r="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 ${X}`,Pa="-mx-1",Ha="flex items-center gap-1",xe="inline-flex h-6 items-center rounded-full px-3",Fa="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Ba="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",ct="size-4",be={starOff:`${ct} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${ct} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${ct} text-blue-600 dark:text-blue-400`,delete:`${ct} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${ct} text-red-600 dark:text-red-400`,edit:`${ct} text-slate-500 dark:text-slate-400`},Ua="h-6 w-10 border-4 border-solid",Va="size-4 data-[state=checked]:translate-x-4",Wa="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]",Ka="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var $a="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",za="rounded-xl border border-solid p-[3px]",Ga="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",ja="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",qa="bg-slate-50 dark:bg-slate-950",qe="flex min-h-0 flex-1 flex-col",zr="flex min-h-0 flex-1 flex-col overflow-clip contain-size",Gr="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",Ya="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",Xa={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},xt="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",nt=`m-0 ${xt}`,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";import{jsx as Ja,jsxs as Ed}from"react/jsx-runtime";var vd=2,or=({id:e,count:t,label:r})=>t<=0?null:Ed("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:[Ja(Sd,{className:ct,"aria-hidden":"true"}),t>=vd&&Ja("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as Jp}from"@aiquants/virtualscroll";import{useCallback as Te,useEffect as St,useLayoutEffect as Zp,useMemo as ba,useRef as Le,useState as Jn}from"react";var ie=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},ae=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?ae(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 jd,useEffect as pi,useRef as qd,useState as Yd}from"react";var Td=/^\d{4}-\d{2}-\d{2}$/,xd=/^\d{4}\/\d{2}\/\d{2}$/,qr=e=>e<10?`0${e}`:`${e}`,Za=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}`},yo=(e=new Date)=>Number.isNaN(e.getTime())?yo(new Date):`${e.getFullYear()}-${qr(e.getMonth()+1)}-${qr(e.getDate())}`,It=e=>{if(e==null)return null;if(e instanceof Date)return Za(e);let t=e.trim();if(t==="")return null;if(Td.test(t))return t;if(xd.test(t))return t.replaceAll("/","-");let r=new Date(t);return Za(r)};var Ut=(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 Nd}from"@aiquants/virtualscroll";import{createContext as Od,useContext as Md,useMemo as kd}from"react";var Id=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,ve=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Id(r)}`),Qa=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),Yr=(e,t,r)=>ve(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Cd,resolveVirtualScrollLocale as Ld,VIRTUAL_SCROLL_LABEL_CATALOGS as ei,VIRTUAL_SCROLL_LABEL_KEYS as ho}from"@aiquants/virtualscroll";var ri=["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"],ni=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],go=[...ho,...ri,...ni];var Ad=Object.freeze({en:"en-US",ja:"ja-JP"}),_e=(e,t)=>t.toLocaleString(Ad[e]),Dd=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"}),_d=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"}),Ro=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: ${_e("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${_e("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${_e("en",e)} / ${_e("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${_e("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${_e("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${_e("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${_d[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: ${_e("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${_e("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${_e("ja",e)} / ${_e("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${_e("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${_e("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${_e("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Dd[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":""}`})}),oi=Object.freeze({en:Object.freeze({...ei.en,...Ro.en}),ja:Object.freeze({...ei.ja,...Ro.ja})}),wd=e=>{let t={},r=!1;for(let n of ho){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},ti=(e,t,r)=>{e[t]=r},So=(e,t)=>{let r=Ld(e);if(t===void 0)return oi[r];if(t===null||typeof t!="object")throw ve("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw ve("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!go.includes(i))throw Yr("labels key",i,go);let a={...Cd(r,wd(t)),...Ro[r]};for(let i of ri){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw ve(`labels.${i}`,"a non-blank string",s);ti(a,i,s)}}for(let i of ni){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw ve(`labels.${i}`,"a function",s);ti(a,i,s)}}return Object.freeze(a)},ai=e=>{let t={};for(let r of ho)t[r]=e[r];return Object.freeze(t)};import{jsx as vo,jsxs as Kd}from"react/jsx-runtime";var Pd=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Hd=({title:e,annotation:t})=>Kd("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[vo("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?vo("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),ar=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Hd,showDevControls:!1,headingLevel:3}),ii=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Fd=e=>{for(let t of Object.keys(e))if(!ii.includes(t))throw Yr("config key",t,ii)},Bd=[2,3,4,5],Ud=e=>{if(e===void 0)return ar.headingLevel;let t=Bd.find(r=>r===e);if(t===void 0)throw ve("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},Vd=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw ve(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},si=e=>{Fd(e);let t=e.onSessionExpired;if(t===void 0)throw Qa("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw ve("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=Nd(e.locale),n=So(r,e.labels),o=ar;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?Pd(n):Vd(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Ud(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},Wd=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},li=Od(si({onSessionExpired:Wd})),Eo=({config:e,children:t})=>{let r=kd(()=>si(e),[e]);return vo(li.Provider,{value:r,children:t})},F=()=>Md(li),Ct=(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},Xr=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as $d}from"@aiquants/virtualscroll";var Vt=120,di=1e3,Jr=.8,To={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},Zr=20,ci=6,Qr={reportHubId:-1,businessDate:null},en=240,tn=15,zd=8,ui=460,mi=3,Gd={enabled:!0,renderVisual:$d,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},rn={width:zd,tapScrollCircleOptions:Gd,enableArrowButtonTabStops:!1},nn=["pen","touch"];var yi=Ut(1,"use-daily-report"),gi=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Io=gi("__DAILY_REPORT_CACHE_TTL__",3e5),Xd=gi("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),q={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=>{q.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=It(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()){yi.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Xd))}},delete(e,t){this.reports.delete(e);let r=It(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+Io;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}},Ri=(e,t,r=!0)=>q.set(e,t,r),Be=(e,t)=>q.getReport(e,t?.ignoreExpiry),Ue=(e,t)=>q.update(e,t),an=(e,t)=>q.delete(e,t),ir=()=>{q.clear(),on.clear()},sr=e=>{q.locks.add(e),q.lastMutations.set(e,Date.now())},lr=e=>{q.locks.delete(e),q.lastMutations.set(e,Date.now())},hi=e=>q.recentDeletes.set(e,Date.now()),Si=(e,t)=>{let r=n=>{n===e&&t()};return q.listeners.add(r),()=>{q.listeners.delete(r)}},Lt=(e,t)=>{q.prune(),q.set(t,Date.now()+Io)},vi=e=>{q.prune();let t=q.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}));q.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Io)},Jd=async(e,t)=>{let r=q.getReport(t);if(r)return r;let n=q.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 q.cacheMany([s],null,o)[0]}).finally(()=>q.pendingReports.delete(t));return q.pendingReports.set(t,a),a},on=new Map,Zd=1e4,Qd=(e,t)=>{let r=on.get(t),n=Date.now();if(r&&n-r.at<Zd)return r.inFlight;let o=Co(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return on.set(t,a),o.finally(()=>{on.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Co=async(e,t,r={})=>{let n=r.forceRefresh?null:q.getList(t);if(n)return n;let o=q.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 q.cacheMany(s.reports??[],t,a)}).finally(()=>q.pendingLists.delete(t));return q.pendingLists.set(t,i),i},xo=(e,t)=>{let r=q.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!q.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=q.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:!q.isValid(n.expiresAt)}},fi=(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}=xo(e,It(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},Wt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,At=(e,t)=>{let{apiBasePath:r}=F(),[n,o]=Yd(()=>fi(e,t)),a=qd(0),i=n;return n.id!==e&&(i=fi(e,t),o(i)),pi(()=>{let s=It(t),l=c=>{c===e&&o(Wt(e,{report:xo(e,s).report}))};return q.listeners.add(l),()=>{q.listeners.delete(l)}},[e,t]),pi(()=>{let s=It(t);a.current+=1;let l=a.current,c=()=>{a.current+=1};if(e<=0)return c;let{report:d,isStale:g}=xo(e,s);if(d&&!g)return o(Wt(e,{report:d,error:null,isLoading:!1,isRefetching:!1})),c;o(Wt(e,{report:d,isLoading:!d,isRefetching:!0}));let R=async()=>{try{let x=null;if(s){let f=q.getList(s)!==null;if(x=(await Co(r,s)).find(b=>b.reportHubId===e)??null,!x&&f){let b=await Qd(r,s);b&&(x=b.find(A=>A.reportHubId===e)??null)}}else x=await Jd(r,e);a.current===l&&o(Wt(e,{report:x,error:null}))}catch(x){a.current===l&&o(Wt(e,{error:x instanceof Error?x:new Error("Load failed")}))}finally{a.current===l&&o(Wt(e,{isLoading:!1,isRefetching:!1}))}};if(d===null)return R(),c;let T=setTimeout(R,Vt);return()=>{clearTimeout(T),c()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},Lo=()=>{let{apiBasePath:e}=F();return jd(t=>{let r=It(t);r&&!q.getList(r)&&Co(e,r).catch(n=>yi.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as ec}from"@aiquants/virtualscroll";import{useRef as tc}from"react";var sn=()=>{let{locale:e,labels:t}=F(),r=ai(t),n=tc(null),o=n.current;return o!==null&&ec.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as uc,useState as mc}from"react";var xi=Object.freeze({visibilityProperty:!0}),Ei=new Set(["auto","scroll"]),Ti=new Set(["","true","plaintext-only"]),Ii=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=Di(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(xi))return!0;return!1},Ci=e=>e.localName==="area"?rc(e):e.checkVisibility(xi),nc=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Ti.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(Ti.has(o))return!1;if(o==="false")return!0}return!0},oc=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&&Ci(n)&&(r=n)}return r===e},ac=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&&Ei.has(a.overflowX)||n&&Ei.has(a.overflowY)},ic=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 nc(e)}},sc=/^[\t\n\f\r ]*[+-]?\d/,lc=e=>{let t=e.getAttribute("tabindex");return t!==null&&sc.test(t)?e.tabIndex:null},Li=(e,t)=>{for(let r of Do(e))if(t(r)||Li(r,t))return!0;return!1},ln=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=dc(e,t);return t.set(e,n),n},dc=(e,t)=>{if(!_o(e))return"none";let r=lc(e),n=r===null&&ic(e),o=r===null&&!n&&ac(e);return!(r!==null||n||o)||e.matches(":disabled")||Ii(e)||!Ci(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?oc(e)?"sequential":"programmatic":"sequential":Li(e,a=>ln(a,t)==="sequential")?"none":"sequential"},Ao=(e,t)=>{for(let r of Do(e))t(r),Ao(r,t)},Do=e=>{if(pe(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 dn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return Ao(e,l=>{ln(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let d of Do(l)){let g=d===t;!g&&ln(d,a)==="sequential"&&(c?n.push(d):i?o.push(d):r.push(d)),s(d,c||g),g&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Ai=e=>{let t=[],r=new Map;return Ao(e,n=>{ln(n,r)==="sequential"&&t.push(n)}),t},pe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,_o=e=>"focus"in e&&"blur"in e,cc=e=>e.nodeType===e.DOCUMENT_NODE,Di=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,we=e=>{let t=e.getRootNode();if(Di(t)){let r=t.activeElement;return r===null?we(t.host):r}return cc(t)?t.activeElement:null},cn=e=>{let t=we(e);return t===null||t===t.ownerDocument.body||Ii(t)},ot=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 pc=/^(\d+(?:\.\d+)?)px$/,fc=e=>{let t=pc.exec(ot(e).getComputedStyle(e).blockSize);return t===null?0:Number(t[1])},un=e=>{let[t,r]=mc(null);return uc(()=>{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=>{l!==o&&(o=l,r(l))},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)};a(fc(n));let s=new ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var _i=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,de=(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 mn="data-daily-report-row",wi=`[role="listitem"][${mn}]`,bc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',yc=/^[1-9]\d*$/,Ni=e=>{if(e===null||!yc.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},mt=(e,t)=>{if(t===null||!pe(e))return null;let r=e.closest(wi);return r===null||r===t||!t.contains(r)?null:r},Dt=e=>Ni(e.getAttribute(mn)),Kt=e=>Ni(e.getAttribute("aria-posinset")),Oi=e=>{let t=e.closest(wi),r=t===null?null:Kt(t);return r===null?null:r-1},dr=(e,t)=>{if(e===null)return null;let r=Dt(e);if(r===null)return null;let n=Kt(e),o=de(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Mi=(e,t)=>{if(!pe(e))return!1;let r=e.closest(bc);return r!==null&&r!==t&&t.contains(r)};import{createContext as ki}from"react";var pt=ki(0),ft=ki(-1);import{clsx as gc}from"clsx";import{twMerge as Rc}from"tailwind-merge";function E(...e){return Rc(gc(e))}import{useCallback as Pi,useMemo as hc,useSyncExternalStore as Sc}from"react";var Hi="(prefers-reduced-motion: reduce)",Fi=e=>ot(e).matchMedia(Hi).matches?"instant":"smooth",vc=Object.freeze({...To,startVelocityThreshold:Number.POSITIVE_INFINITY}),$t=e=>e?vc:To,Ec=()=>!1,pn=e=>{let t=hc(()=>e===null?null:ot(e).matchMedia(Hi),[e]),r=Pi(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=Pi(()=>t===null?!1:t.matches,[t]);return Sc(r,n,Ec)};import{useSyncExternalStore as Tc}from"react";import{jsx as wo}from"react/jsx-runtime";var fn=()=>{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)})}},bn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=Tc(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?wo("div",{className:"pointer-events-none absolute flex items-center",style:e==="vertical"?{top:t,left:-16,transform:"translate(-100%, -50%)"}:{left:t,top:-16,transform:"translate(-50%, -100%)"},children:wo("div",{className:E(Fa,"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:wo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Cl,useCallback as Dr,useEffect as xl,useId as Mp,useLayoutEffect as kp,useMemo as pa,useRef as _r,useState as Il}from"react";import{createContext as cu,useCallback as it,useContext as uu,useEffect as zo,useRef as Ie,useState as In}from"react";var Bi=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 yn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Ui=e=>{for(let t=1;t<e.length;t++)if(yn(e[t-1],e[t])>0)return!1;return!0},No=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;yn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as Tn}from"@aiquants/sse";import{createBrowserEventSource as Xc}from"@aiquants/sse/client";import{useReopeningEventSource as Jc}from"@aiquants/sse/react";import{useEffect as Wo,useRef as xn,useState as Zc}from"react";import{z as C}from"zod";var Vi=["auth-required","forbidden","resync-required"],Oo=15e3,Wi="lastEventId",xc=/^\d{1,15}-\d{1,15}$/,gn=e=>xc.test(e),Ic=C.object({name:C.string().nullish(),affiliation:C.string().nullish()}),Cc=C.object({name:C.string().nullish(),text:C.string().nullish(),color:C.string().nullish()}),Lc=C.object({id:C.number(),name:C.string().nullish(),color:C.string().nullish()}),Ki=C.object({id:C.number(),userId:C.string().nullish(),userName:C.string().nullish(),content:C.string().nullish(),createdAt:C.string().nullish(),isMine:C.boolean()}),Ac=C.object({id:C.string(),fileName:C.string(),fileType:C.string().nullable(),fileSize:C.number().nullable(),createdAt:C.string().nullable(),state:C.enum(["present","absent","unknown"]),hasThumbnail:C.boolean().default(!1)}),Mo=C.object({reportHubId:C.number(),date:C.string().nullish(),createdAt:C.string().nullish(),author:C.string().nullish(),userId:C.string().nullish(),sourceType:C.string().nullish(),employeeName:C.string().nullish(),updatedBy:C.string().nullish(),updatedAt:C.string().nullish(),category:C.string().nullish(),creationCategory:C.string().nullish(),visitTimeFrom:C.string().nullish(),visitTimeTo:C.string().nullish(),customerName:C.string().nullish(),interviewers:C.array(Ic),subject:C.string().nullish(),content:C.string().nullish(),externalComments:C.array(Cc),isRead:C.boolean(),isStarred:C.boolean(),labels:C.array(Lc),postedComments:C.array(Ki),attachments:C.array(Ac).default([])}),Dc=C.object({type:C.literal("connected")}),_c=C.object({type:C.literal("status-update"),reportHubId:C.number(),statusType:C.enum(["star","read"]),value:C.boolean(),clientTempId:C.string(),recipientRawUserId:C.number().optional()}),ko=C.string().optional(),wc=C.object({type:C.literal("comment-add"),reportHubId:C.number(),comment:Ki,clientTempId:C.string(),recipientRawUserId:C.number().optional(),sourceType:ko}),Nc=C.object({type:C.literal("comment-delete"),reportHubId:C.number(),commentId:C.number(),clientTempId:C.string(),recipientRawUserId:C.number().optional(),sourceType:ko}),Oc=C.object({type:C.literal("report-create"),reportHubId:C.number(),report:Mo,clientTempId:C.string(),recipientRawUserId:C.number().optional()}),Mc=C.object({type:C.literal("report-update"),reportHubId:C.number(),report:Mo,clientTempId:C.string(),recipientRawUserId:C.number().optional()}),kc=C.object({type:C.literal("report-publish"),reportHubId:C.number(),report:Mo,clientTempId:C.string(),recipientRawUserId:C.number().optional()}),Pc=C.object({type:C.literal("report-delete"),reportHubId:C.number(),clientTempId:C.string(),sourceType:ko}),$i=C.discriminatedUnion("type",[Dc,_c,wc,Nc,Oc,Mc,kc,Pc]);import{useSyncExternalStore as $c}from"react";var Hc=50,Fc=1e3,Bc=3e4,Uc=6,Vc=3e4,Rn=Symbol("read-stall"),Wc="/daily_report/api",Kc=/^\d{4}-\d{2}-\d{2}$/,cr=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??Wc,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??Vc,this.publishCoalesceMs=t.publishCoalesceMs??Hc,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>=Uc){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(Fc*2**(this.consecutiveFailures-1),Bc))}}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(g=>{o=this.setTimeoutFn(()=>g(Rn),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Rn)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=new TextDecoder,l="",c=!1,d=!1;for(;;){let g=await this.readWithStallGuard(i);if(g===Rn)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:R,value:T}=g;if(R)break;let x=(l+s.decode(T,{stream:!0})).split(`
2
+ `);l=x.pop()??"";let f=!1;for(let h of x){if(h.trim()==="")continue;let b;try{b=JSON.parse(h)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let A=Bi(b);if(A==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(A==="error"){c=!0;continue}let D=b;f=this.absorbChunkLine(D)||f,typeof D.total=="number"&&Number.isFinite(D.total)&&D.total!==this.state.totalCount&&this.publish({totalCount:D.total}),D.nextCursor&&(D.nextCursor.businessDate===null||Kc.test(D.nextCursor.businessDate))&&(this.lastCursor=D.nextCursor),D.isLast&&(d=!0)}f&&(this.consecutiveFailures=0,this.schedulePublishItems())}return c?{kind:"retryable",error:new Error("Stream interrupted by server error")}:d?{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(Rn),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"&&gn(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 zc=6e4,re=null,zi=!1,Po=new Set,Gi={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},Ho=()=>{for(let e of Po)e()},Fo=()=>{re&&(re.unsubscribe(),re.client.dispose(),re=null,Ho())},ur=e=>{if(typeof window>"u")return;let t=e.apiBasePath??ar.apiBasePath;if(re&&(re.userKey!==e.userKey||re.apiBasePath!==t)&&(re.userKey!==e.userKey&&ir(),Fo()),!re){let r=new cr({apiBasePath:t});re={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(Ho)},Gc(),r.start(),Ho();return}hn(re)},hn=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>zc&&e.client.refresh()},Gc=()=>{if(zi||typeof document>"u"||typeof window>"u")return;zi=!0;let e=()=>{re&&hn(re)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Bo=e=>{if(!(typeof window>"u")){if(!re){ur(e);return}if(re.userKey!==e.userKey){ir(),Fo(),ur(e);return}hn(re)}},Uo=()=>{typeof window>"u"||!re||hn(re)},mr=e=>{re?.client.applyExternalUpsert(e)},Sn=e=>{re?.client.applyExternalRemoval(e)},vn=()=>{re?.client.retry()},En=()=>{re?.client.resync()},Vo=(e={})=>{re?.client.refresh(e)},ji=()=>re?.userKey,jc=e=>(Po.add(e),()=>Po.delete(e)),qc=()=>re?.client.getState()??Gi,Yc=()=>Gi,at=()=>$c(jc,qc,Yc);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Fo()});var _t=Ut(1,"daily-report-sse-connection"),Qc=Object.freeze({kind:"resyncing"}),qi={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},eu=1,Yi=Oo*3,tu=Yi+Oo,Ko=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=F(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=at(),[l,c]=Zc({generation:0,minAnchorRevision:1,anchored:!1}),d=l.generation>0&&!l.anchored,g=d&&a==="complete"&&!i?s:null,R=xn(0),T=xn(null),x=xn(n);x.current=n;let f=xn(0);f.current=o===null?0:o.revision,Wo(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(T.current=o.lastEventId,R.current=0,c({...l,anchored:!0}))},[l,o]),Wo(()=>{if(!e||g===null)return;let{initialDelayMs:b,maxDelayMs:A,multiplier:D}=qi,_=Tn.random()*Math.min(A,b*D**R.current);_t.warn(`SSE resync: the ids rescan gave up (${g.message}); rescanning in ${Math.round(_)} ms`);let N=Tn.setTimer(()=>{R.current+=1,En()},_);return()=>Tn.clearTimer(N)},[e,g]);let{status:h}=Jc(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${Wi}=${encodeURIComponent(b)}`,initialLastEventId:T.current,withCredentials:!1,createEventSource:Xc,runtime:Tn,backoff:qi,healthyOpenMs:tu,nativeRetryLimit:eu,giveUpAfterFailures:"never",terminalEvents:Vi,heartbeat:{staleAfterMs:Yi,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(gn(b.lastEventId)?T.current=b.lastEventId:_t.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let A=JSON.parse(b.data),D=$i.safeParse(A);if(!D.success){_t.error("SSE Validation Error:",D.error.flatten(),"raw message:",A);return}if(D.data.type==="connected"){_t.info("SSE Subscribe Ready");return}t(D.data)}catch(A){_t.error("SSE Parse Error",A)}}}});return Wo(()=>{if(h.kind==="faulted"){_t.error("SSE connection faulted:",h.error);return}if(h.kind==="terminated")switch(h.terminalEvent){case"auth-required":x.current();return;case"forbidden":_t.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=f.current+1;c(A=>({generation:A.generation+1,minAnchorRevision:b,anchored:!1})),En();return}}},[h]),e&&d?Qc:h};import{createContext as ru,useCallback as Xi,useContext as nu,useEffect as ou,useMemo as au,useRef as Ji,useState as iu}from"react";import{jsx as Zi,jsxs as Qi}from"react/jsx-runtime";var su=8e3,lu="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",du=E("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",Oa),es=ru({notifyError:()=>{}}),ts=()=>nu(es),$o=({children:e})=>{let{onError:t,labels:r}=F(),[n,o]=iu(null),a=Ji(t);a.current=t;let i=Ji(null),s=Xi(d=>{let g=a.current;if(g){g(d);return}o(d)},[]),l=Xi(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);ou(()=>{if(n)return i.current=setTimeout(()=>o(null),su),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=au(()=>({notifyError:s}),[s]);return Qi(es.Provider,{value:c,children:[e,n&&Qi("div",{role:"alert","data-testid":"daily-report-error-banner",className:lu,children:[Zi("span",{className:"font-medium",children:n.message}),Zi("button",{type:"button","aria-label":r.close,onClick:l,className:du,children:"\u2715"})]})]})};import{jsx as pu}from"react/jsx-runtime";var Ye=Ut(1,"daily-report-action-context"),mu=Object.freeze([]),Go=globalThis.__DailyReportActionContext??cu(null);globalThis.__DailyReportActionContext=Go;var Ce=()=>{let e=uu(Go);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},wt=(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},jo=({children:e,user:t,initialItems:r=mu,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=F(),{notifyError:s}=ts(),l=Ie(s);l.current=s;let c=Ie(new Map),d=Ie(new Map),g=Ie(new Map),R=Ie(new Map),T=Ie(new Map),[x,f]=In(0),[h,b]=In(r),[A,D]=In(!1),_=Ie(!1),N=Ie(new Map),k=Ie(new Set),V=Ie(new Set),H=Ie(new Set),j=at(),G=Ie(!1);G.current=j.phase==="complete"&&!j.isRevalidating;let B=it(()=>ji()===(n??null),[n]),Z=it(async()=>{Ye.info("[DailyReportActionProvider] Refetching data without page reload..."),Vo(),f(y=>y+1),q.listeners.forEach(y=>{y(-1)})},[]),W=it(async()=>{Ye.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),ir(),V.current.clear();try{sessionStorage.clear()}catch{}try{let y=new FormData;y.append("intent","clearCache");let m=await fetch(`${o}/action`,{method:"POST",body:y});if(!m.ok){let v=await m.json().catch(()=>null);Ye.warn("[DailyReportActionProvider] Failed to clear server-side cache:",m.status,v)}}catch(y){Ye.warn("[DailyReportActionProvider] Failed to clear server-side cache:",y)}B()&&(Vo({forceRefresh:!0}),f(y=>y+1),q.listeners.forEach(y=>{y(-1)}))},[o,B]),J=Ie(new Map),K=Ie(()=>{}),U=it((y,m)=>{let v=J.current,u=v.get(y);if(u){u.messages.push(m);return}let p={messages:[m],unsubscribe:()=>{},timer:setTimeout(()=>{let S=v.get(y);S&&(S.unsubscribe(),v.delete(y),Ye.warn(`[SSE Queue] Expired: reportHubId=${y}, dropped=${S.messages.length} messages`))},3e4)};p.unsubscribe=Si(y,()=>{let S=v.get(y);if(S&&Be(y,{ignoreExpiry:!0})){S.unsubscribe(),clearTimeout(S.timer),v.delete(y),Ye.info(`[SSE Queue] Replaying ${S.messages.length} messages for reportHubId=${y}`);for(let L of S.messages)K.current(L)}}),v.set(y,p)},[]),le=y=>{H.current.add(y),setTimeout(()=>{H.current.delete(y)},3e4)},oe=it(y=>!!y&&H.current.has(y),[]),O=it((y,m)=>{m!==void 0&&mr({reportHubId:y,businessDate:m??null}),b(v=>{let u=v.find(S=>S.reportHubId===y),p=m??u?.businessDate??null;return No(v,{reportHubId:y,businessDate:p,sourceType:u?.sourceType})})},[]),te=()=>{n&&(_.current=!0,D(y=>!y))};zo(()=>{if(!n)return;let y=setTimeout(()=>{_.current||D(!0)},di);return()=>clearTimeout(y)},[n]);let me=it(y=>{B()&&(V.current.add(y),Sn(y),b(m=>m.filter(v=>v.reportHubId!==y)))},[B]),[Ge,We]=In(r);if(r!==Ge){We(r);let y=new Map;for(let u of r)V.current.has(u.reportHubId)||y.set(u.reportHubId,u);let m=G.current;for(let u of h)y.has(u.reportHubId)||V.current.has(u.reportHubId)||m&&u.reportHubId>0||y.set(u.reportHubId,u);let v=Array.from(y.values());Ui(v)||v.sort(yn),b(v)}zo(()=>{if(G.current){let y=new Set(r.map(m=>m.reportHubId));for(let m of V.current)y.has(m)||V.current.delete(m)}},[r]);let he=it(y=>{if(B()&&!oe(y.clientTempId))switch(y.type){case"comment-add":{let{comment:m,reportHubId:v}=y,u=Be(v,{ignoreExpiry:!0});if(u){if(u.postedComments.some(P=>P.id===m.id))return;let p=!1,S=c.current.get(v);if(S){for(let[P,z]of S.entries())if(z===m.content){S.delete(P),T.current.set(P,m.id),p=!0;break}}let L={...m,userName:m.userName||(p?wt(t,i.unknownUser):i.unknownUser),createdAt:m.createdAt||new Date().toISOString(),isMine:p},w={...u,postedComments:[...u.postedComments,L].sort((P,z)=>new Date(P.createdAt||0).getTime()-new Date(z.createdAt||0).getTime())};Lt(v,w),sr(v),lr(v),f(P=>P+1)}else U(v,y);break}case"comment-delete":{let{commentId:m,reportHubId:v}=y,u=Be(v,{ignoreExpiry:!0});if(u){let p={...u,postedComments:u.postedComments.filter(S=>S.id!==m)};Lt(v,p),sr(v),lr(v),f(S=>S+1)}else U(v,y);break}case"status-update":{let{statusType:m,value:v,reportHubId:u}=y,p=Be(u,{ignoreExpiry:!0});if(m==="star")if(g.current.get(u)===v&&g.current.delete(u),p){let S={...p,isStarred:v};Lt(u,S),f(L=>L+1)}else U(u,y);else if(m==="read")if(R.current.get(u)===v&&R.current.delete(u),p){let S={...p,isRead:v};Lt(u,S),f(L=>L+1)}else U(u,y);break}case"report-delete":{let{reportHubId:m}=y;k.current.delete(m),V.current.add(m),Sn(m);let v=J.current.get(m);v&&(v.unsubscribe(),clearTimeout(v.timer),J.current.delete(m));let u=Be(m,{ignoreExpiry:!0});u?.date&&(an(m,u.date),f(p=>p+1)),b(p=>p.filter(S=>S.reportHubId!==m));break}case"report-create":case"report-update":case"report-publish":{let{report:m}=y;vi(m),(y.type==="report-create"||y.type==="report-publish")&&(k.current.add(m.reportHubId),O(m.reportHubId,m.date)),f(v=>v+1);break}}},[oe,B,O,t,U,i.unknownUser]);K.current=he,zo(()=>()=>{for(let y of J.current.values())y.unsubscribe(),clearTimeout(y.timer);J.current.clear()},[]);let Se=Ko({isSseEnabled:A,onMessage:he}),ce=async(y,m,v,u,p,S)=>{S?.skipLock||sr(y),p.onOptimistic?.();let L=u.clientTempId||crypto.randomUUID();le(L);let w=new FormData;w.append("intent",m),w.append("reportHubId",String(y)),typeof v=="string"&&w.append("businessDate",v),w.append("operationTimestamp",String(Date.now())),w.append("clientTempId",L);for(let[P,z]of Object.entries(u))P!=="clientTempId"&&w.append(P,z);try{let P=await fetch(`${o}/action`,{method:"POST",body:w,headers:{Accept:"application/json"}});if(!P.ok){let ue=new Error(`Failed to ${m}`);throw Object.assign(ue,{status:P.status}),ue}let z=await P.json();if(z.status!=="OK"||m!=="create"&&String(z.reportHubId)!==String(y))throw new Error(`Invalid response for ${m}`);if(typeof z.clientTempId!="string"||z.clientTempId!==L)throw new Error(`Invalid clientTempId for ${m}`);if(!B())throw Ye.warn(`[executeAction] ${m} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${m}`);return await p.onSuccess?.(z)}catch(P){throw Ye.error(`${m} failed:`,P),B()&&(p.onFailure?.(),l.current({operation:m,message:i.operationFailed(m),cause:P})),P}finally{S?.keepLock||S?.skipLock||lr(y)}},Oe=async(y,m,v)=>{let u=Number(y),p=-1*Date.now(),S=ce(u,"addComment",v,{content:m,clientTempId:String(p)},{onOptimistic:()=>{c.current.has(u)||c.current.set(u,new Map),c.current.get(u)?.set(p,m),f(L=>L+1)},onSuccess:L=>{if(!L.newComment)throw new Error("No new comment returned");let w=L.newComment.id;T.current.set(p,w),c.current.get(u)?.delete(p);let P=Be(u,{ignoreExpiry:!0});return P&&!P.postedComments.some(z=>z.id===w)&&Ue(u,{postedComments:[...P.postedComments,{...L.newComment,id:w,isMine:!0,userName:wt(t,i.unknownUser)}],updatedAt:L.updatedAt}),w},onFailure:()=>{c.current.get(u)?.delete(p)}},{skipLock:!0}).finally(()=>N.current.delete(p));N.current.set(p,S),await S},et=async(y,m,v)=>{let u=Number(y);d.current.has(u)||d.current.set(u,new Set),d.current.get(u)?.add(m),f(S=>S+1);let p=m;if(m<0){let S=T.current.get(m);if(S!==void 0)p=S;else{let L=N.current.get(m);if(!L)return;try{p=await L}catch{return}}}await ce(u,"deleteComment",v,{commentId:String(p)},{onSuccess:S=>{let L=typeof S.deletedCommentId=="string"?Number(S.deletedCommentId):p,w=Be(u,{ignoreExpiry:!0});w&&(Ue(u,{postedComments:w.postedComments.filter(P=>P.id!==L),updatedAt:S.updatedAt}),hi(L)),d.current.get(u)?.delete(m)},onFailure:()=>{d.current.get(u)?.delete(m)}},{skipLock:!0})},tt=async(y,m,v)=>{let u=Number(y);await ce(u,"toggleStar",v,{isStarred:String(m)},{onOptimistic:()=>{Ue(u,{isStarred:m}),g.current.set(u,m),f(p=>p+1)},onSuccess:p=>{p.updatedStatus&&typeof p.updatedStatus.isStarred=="boolean"&&Be(u,{ignoreExpiry:!0})&&(Ue(u,{isStarred:p.updatedStatus.isStarred,updatedAt:p.updatedAt}),f(L=>L+1)),g.current.delete(u)},onFailure:()=>{Ue(u,{isStarred:!m}),g.current.delete(u)}},{skipLock:!0})},Ke=async(y,m,v)=>{let u=Number(y);await ce(u,"toggleRead",v,{isRead:String(m)},{onOptimistic:()=>{Ue(u,{isRead:m}),R.current.set(u,m),f(p=>p+1)},onSuccess:p=>{p.updatedStatus&&typeof p.updatedStatus.isRead=="boolean"&&Be(u,{ignoreExpiry:!0})&&(Ue(u,{isRead:p.updatedStatus.isRead,updatedAt:p.updatedAt}),f(L=>L+1)),R.current.delete(u)},onFailure:()=>{Ue(u,{isRead:!m}),R.current.delete(u)}},{skipLock:!0})},Ae=Ie(Ke);Ae.current=Ke;let je=it((y,m,v)=>Ae.current(y,m,v),[]),Fe=async y=>{let m=-1*Date.now(),v=new Date().toISOString(),u={reportHubId:m,date:y,createdAt:v,author:wt(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:wt(t,i.unknownUser),updatedBy:wt(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:[]};Ri(u,Date.now()+3e5,!1),b(p=>[{reportHubId:m,businessDate:y},...p]);try{let p=await ce(0,"create",y,{clientTempId:String(m)},{onSuccess:L=>L});if(p.clientTempId&&p.clientTempId!==String(m))throw Ye.warn(`[createReport] ID mismatch. req=${m}, res=${p.clientTempId}`),new Error("Optimistic ID mismatch");let S=Number(p.reportHubId);return mr({reportHubId:S,businessDate:y}),sr(S),p.report&&(Lt(S,p.report),f(L=>L+1)),b(L=>L.some(w=>w.reportHubId===S)?L.filter(w=>w.reportHubId!==m):L.map(w=>w.reportHubId===m?{...w,reportHubId:S}:w)),setTimeout(()=>lr(S),1e3),S}catch(p){throw Ye.error("[createReport] Failed or mismatched",p),b(S=>S.filter(L=>L.reportHubId!==m)),p}},Me=async(y,m,v)=>{let u=Number(y);await ce(u,"update",v,{...m.title&&{title:m.title},...m.content&&{content:m.content}},{onSuccess:()=>{let p=Be(u,{ignoreExpiry:!0});p&&(Ue(u,{subject:m.title??p.subject,content:m.content??p.content}),f(S=>S+1))}})},rt=async(y,m)=>{let v=Number(y),u=Be(v,{ignoreExpiry:!0}),p=u?.labels||[];await ce(v,"publish",m,{},{onOptimistic:()=>{if(u){let S=u.labels.filter(L=>L.name!==a);Ue(v,{labels:S}),f(L=>L+1)}},onSuccess:S=>{S.report&&(Lt(v,S.report),f(L=>L+1)),m!==void 0&&mr({reportHubId:v,businessDate:m})},onFailure:()=>{Ue(v,{labels:p}),f(S=>S+1)}},{skipLock:!0})},I=async(y,m)=>{let v=Number(y),u=h.find(p=>p.reportHubId===v);V.current.add(v),Sn(v),b(p=>p.filter(S=>S.reportHubId!==v));try{await ce(v,"delete",m,{},{onSuccess:p=>{an(v,m)}})}catch(p){if(p.status===404){an(v,m);return}if(!B())return;V.current.delete(v);let L=u===void 0?m:u.businessDate;L!==void 0&&mr({reportHubId:v,businessDate:L}),u&&b(w=>w.some(P=>P.reportHubId===v)?w:No(w,u))}};return pu(Go.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:d,pendingStarUpdates:g,pendingReadUpdates:R,resolvedIdMap:T,version:x,items:h,isSseEnabled:A,toggleSse:te,sseStatus:Se,addComment:Oe,deleteComment:et,toggleStar:tt,toggleRead:je,createReport:Fe,updateReport:Me,publishReport:rt,deleteReport:I,removeStaleItem:me,refetchData:Z,clearCacheAndRefetch:W},children:e})};import{useCallback as os,useMemo as fu,useRef as bu,useState as yu}from"react";var rs=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw ve("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]},ns=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 pr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=Ce(),{labels:c}=F(),d=c.unknownUser,[g,R]=yu(null),T=os(b=>e&&l(e.reportHubId,b,e.date),[e,l]),x=os(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),f=bu([]);return{uiComments:fu(()=>{if(!e)return[];let b=rs(e.externalComments,e.postedComments,r,d),A=o.current.get(e.reportHubId);A?.size&&(b=b.filter(_=>!A.has(_.id)));let D=n.current.get(e.reportHubId);if(D?.size&&t){let _=new Set(b.map(k=>k.id)),N=wt(t,d);for(let[k,V]of D){if(A?.has(k)||_.has(k))continue;let H=a.current.get(k);H&&_.has(H)||b.some(j=>j.isMine&&j.content===V&&typeof j.id=="number"&&j.id>0)||b.push({id:k,authorName:N,content:V,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(f.current)?f.current:(f.current=b,b)},[e,t,r,d,o,n,a,i]),handleAddComment:x,handleDeleteComment:T,pendingDeleteId:g,setPendingDeleteId:R,resolvedIdMap:a.current}};import{jsx as Ru}from"react/jsx-runtime";var gu={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},zt=Object.freeze({2:3,3:4,4:5,5:6}),Pe=({level:e,...t})=>{let r=gu[e];return Ru(r,{...t})};import{memo as ws,useId as dm,useMemo as cm,useRef as um}from"react";var as=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var qo="tile",fr=as[qo],hu=2,br=16,is=5,ss=fr.maxWidth/hu,tR=is*(ss+br)-br,ls=e=>{let t=Math.min(is,1+Math.floor((e+br)/(ss+br)));return(e-(t-1)*br)/t},ds=Object.freeze({aspectRatio:`${fr.maxWidth} / ${fr.maxHeight}`,height:`round(nearest, 100cqi * ${fr.maxHeight} / ${fr.maxWidth}, 1px)`,contain:"strict"});var Su="download",vu="thumbnail",Eu="1",Gt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[Su]:Eu})}`;case"thumbnail":return`${n}?${new URLSearchParams({[vu]:r.variant})}`}};import{createContext as Tu,useContext as xu}from"react";var yr=Tu(null),jt=()=>xu(yr)===!1?-1:void 0,cs=(e,t)=>{let{before:r,after:n}=dn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Du,useContext as _u,useLayoutEffect as wu,useMemo as Nu,useState as Ou}from"react";import{flushSync as Mu}from"react-dom";import{flushSync as Iu}from"react-dom";var Yo=new WeakMap,us=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Cu=e=>{e.frame=null;let t=[...e.observations.values()].filter(us);t.length!==0&&Iu(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Lu=(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=ls(o))}e.frame!==null||![...e.observations.values()].some(us)||(e.frame=e.view.requestAnimationFrame(()=>Cu(e)))},Au=e=>{let t=Yo.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=>Lu(n,o)),observations:new Map,frame:null};return Yo.set(e,n),n},ms=(e,t)=>{let r=e.ownerDocument,n=Au(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(),Yo.delete(r)))}};import{jsx as Rr,jsxs as bs}from"react/jsx-runtime";var gr="\u2026",ku=gr.codePointAt(0),Cn="data-attachment-file-name",Pu=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,Hu=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,ys=Du(null),gs=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},ps=(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("")},Fu=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=gs(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${ps(o,gr,a,r)}${gr}`;return r(n+i)<=t?n+i:`${ps(n,gr+i,t,r)}${gr}${i}`},fs=new WeakMap,Rs=e=>{let t=fs.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 fs.set(e,n),n},Bu=(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},hs=e=>{let t=new Set;for(let r of e.matchAll(Pu)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},Uu=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:hs(t.fontFamily),measure:Bu(Rs(e.ownerDocument),r)}},Vu=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,Wu=e=>{let t=new Set([ku]);for(let r of e.querySelectorAll(`[${Cn}]`)){let n=r.getAttribute(Cn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},Ku=(e,t)=>{for(let r of e.split(",")){let n=Hu.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},Xo=new WeakMap,Ss=e=>{let t=Xo.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return Xo.set(e,r),r},vs=(e,t)=>{let r=Uu(e.grid.querySelector(`[${Cn}]`));e.fitted={trackWidth:t,nameFont:r};let n=Ss(e.grid.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=zu(n)),e.applyFit({width:t,measure:r.measure})},$u=(e,t)=>{let r=t.map(o=>({families:hs(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=Wu(o.grid);i.some(l=>Ku(l.unicodeRange,s))&&(Rs(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&Mu(()=>{for(let[o,a]of n)vs(o,a)})},zu=e=>{let t=e.document.fonts,r=n=>{$u(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},Gu=(e,t)=>{let r={grid:e,applyFit:t,fitted:null},n=ms(e,a=>vs(r,a)),o=Ss(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),Xo.delete(o.document))}},Es=({gridRef:e,children:t})=>{let[r,n]=Ou(null);return wu(()=>{let o=e.current;return Gu(o,i=>{n(s=>Vu(s,i)?s:i)})},[e]),Rr(ys,{value:r,children:t})},hr=({fileName:e,className:t,testId:r})=>{let n=_u(ys),o=Nu(()=>n===null?null:Fu(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=gs(e);return bs("span",{className:E("block min-w-0",t),title:e,"data-testid":r,[Cn]:e,children:[o===null?bs("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Rr("span",{className:"truncate",children:a}),i!==""&&Rr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Rr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Rr("span",{className:"sr-only",children:e})]})};import Ju from"lucide-react/dist/esm/icons/image-off.js";import{memo as Zu,useCallback as Qo,useEffect as Qu,useLayoutEffect as em,useRef as ea,useState as tm}from"react";var Ln=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Ts=Ln.queueWaitMs+Ln.readMs+Ln.renderMs+Ln.transferMarginMs;var ju=Object.freeze({kind:"loaded"}),xs=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,d=null,g=null,R=null,T=W=>(W!==null&&n.clearTimeout(W),null),x=()=>{g?.(),g=null},f=()=>{R?.(),R=null},h=W=>W===null||W.kind==="loaded"?0:W.kind==="failing"?W.failedAttempts:i.maxAttempts,b=W=>{s="cooling",d=n.setTimeout(j,W)},A=()=>{o.abortInFlight(),f();let W=h(r.get(t))+1;if(W>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:W,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},D=W=>{if(s==="loading"){if(c=T(c),!W){A();return}s="done",r.set(t,ju),f()}},_=()=>{c=null,D(!1)},N=()=>{s="loading",o.showActivity(!0),x(),c=n.setTimeout(_,i.loadTimeoutMs),o.grant()},k=()=>{l=null,s="queued",R=a.request(N)},V=()=>{l===null&&(l=n.setTimeout(k,i.settleMs))},H=W=>{if(o.showActivity(W),W){s==="watching"&&V();return}if(s==="queued"){f(),s="watching";return}l=T(l)},j=()=>{d=null,s="watching",o.showActivity(!1),g=n.observe(e,H)},G=()=>{let W=s==="loading";s="done",x(),l=T(l),c=T(c),d=T(d),o.showActivity(!1),W&&(o.abortInFlight(),R!==null&&o.reset()),f()},B=r.get(t);if(B?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:D,dispose:G};if(B?.kind==="exhausted"){if(n.now()-B.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:D,dispose:G};r.delete(t)}o.reset();let Z=B?.kind==="failing"?B.retryAt-n.now():0;return Z>0?b(Z):j(),{settle:D,dispose:G}};var qu=e=>{if(!Number.isInteger(e)||e<=0)throw ve("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())}}}},Is=qu(2);var Yu=e=>{if(!Number.isInteger(e)||e<=0)throw ve("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)}}},Jo=Yu(1024);var Zo=new WeakMap,Xu=e=>{let t=Zo.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 Zo.set(e,a),a},Cs=(e,t)=>{let r=e.ownerDocument,n=Xu(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(),Zo.delete(r)))}};import{jsx as Sr,jsxs as lm}from"react/jsx-runtime";var rm={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},nm="data-thumbnail-active",om="data-daily-report-attachment-preview",As={[om]:""},am=Object.freeze({settleMs:250,loadTimeoutMs:Ts,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Ls=e=>{let t=Jo.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},im=()=>({limiter:Is,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:Cs,tuning:am}),sm=(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(nm,o)}}),Ds=Zu(({thumbnailUrl:e,unavailableLabel:t})=>{let r=ea(null),n=ea(null),o=ea(null),[a,i]=tm(()=>Ls(e));a.url!==e&&i(Ls(e)),em(()=>{if(a.status==="failed")return;let d=n.current,g=a.status==="idle"?null:a.url;d.getAttribute("src")!==g&&(g===null?d.removeAttribute("src"):d.setAttribute("src",g))},[a]),Qu(()=>{let d=r.current,g=xs(d,e,Jo,im(),sm(e,d,i,n));return o.current=g,()=>{o.current=null,g.dispose()}},[e]);let s=Qo(d=>{d!==null&&(n.current=d)},[]),l=Qo(()=>{i(d=>d.status==="granted"?{url:d.url,status:"loaded"}:d),o.current?.settle(!0)},[]),c=Qo(()=>{o.current?.settle(!1)},[]);return Sr("span",{className:"@container block",children:Sr("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":rm[a.status],style:ds,className:"relative block w-full",children:Sr("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"?lm("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","data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Sr(Ju,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Sr("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 fe,jsxs as Xe}from"react/jsx-runtime";var _s=1024,ta=["B","KB","MB","GB"],Ns="text-slate-500 text-sm line-through dark:text-slate-400",mm=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=_s&&r<ta.length-1;)t/=_s,r+=1;return r===0?`${t} ${ta[r]}`:`${t.toFixed(1)} ${ta[r]}`},Os=({attachment:e,labels:t,className:r})=>Xe("span",{className:r,children:[mm(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ra=({href:e,children:t,...r})=>{let n=jt();return fe("a",{href:e,...r,tabIndex:n,children:t})},Ms=({downloadUrl:e,label:t,fileName:r})=>Xe(ra,{href:e,className:E("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",X),"data-testid":"daily-report-attachment-download",children:[t," ",fe("span",{className:"sr-only",children:r})]}),pm=ws(({attachment:e,apiBasePath:t,labels:r})=>{let n=fe(Ds,{thumbnailUrl:Gt(t,e.id,{kind:"thumbnail",variant:qo}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Xe("li",{className:"flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Xe("div",{className:"flex min-w-0 flex-col gap-2",children:[n,fe(hr,{fileName:e.fileName,className:Ns,testId:"daily-report-attachment-name"})]}):Xe(ra,{href:Gt(t,e.id,{kind:"inline"}),className:E("flex min-w-0 flex-col gap-2 rounded-lg",X),"data-testid":"daily-report-attachment-link",...As,children:[n,fe(hr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Xe("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",children:[fe(Os,{attachment:e,labels:r,className:"truncate"}),!o&&fe(Ms,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),fm=ws(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Xe("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:[Xe("div",{className:"flex min-w-0 flex-col",children:[n?fe(hr,{fileName:e.fileName,className:Ns,testId:"daily-report-attachment-name"}):fe(ra,{href:Gt(t,e.id,{kind:"inline"}),className:E("flex min-w-0 rounded-sm",X),"data-testid":"daily-report-attachment-link",children:fe(hr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),fe(Os,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&fe(Ms,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),bm=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=um(null);return fe(Es,{gridRef:o,children:fe("ul",{ref:o,"aria-labelledby":t,className:"grid 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=>fe(pm,{attachment:a,apiBasePath:r,labels:n},a.id))})})},An=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=F(),o=dm(),{tileAttachments:a,rowAttachments:i}=cm(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Xe("div",{className:"@container flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[fe(Pe,{level:zt[n],id:o,className:E("m-0",xt),children:r.attachments}),Xe("div",{className:"flex flex-col gap-4",children:[a.length>0&&fe(bm,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&fe("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>fe(fm,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as _m}from"@aiquants/swipe-overlay";import{useCallback as oa,useEffect as Ps,useId as wm,useRef as Fs,useState as Nm}from"react";var vr=e=>e.isComposing||e.keyCode===229,Dn=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 ym={kind:"hold"},gm=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),Rm=(e,t)=>{let r=e.getAttribute("role");return r!==null&&gm.has(r)&&e!==t&&e.contains(t)},Er=e=>e.key==="Escape"&&!e.defaultPrevented&&!vr(e),ks=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||vr(e))return null;let r=e.target;if(!(pe(r)&&t.contains(r)))return null;let n=Ai(t);if(n.length===0)return ym;let{before:o,within:a,after:i}=dn(t,r);return e.shiftKey?o.some(s=>!Rm(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 hm,jsx as Sm}from"react/jsx-runtime";var Re=({render:e})=>{let t=jt();return Sm(hm,{children:e(t)})};import vm from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Em,useId as Tm,useRef as xm,useState as Im}from"react";import{jsx as bt,jsxs as _n}from"react/jsx-runtime";var wn="data-comment-delete-button",Nn="data-comment-delete-slot",Cm=E(De,Pa),Lm="relative flex h-5 items-center",Am=E(xe,"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",X),Dm=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,na=Em(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,d]=Im(!1),{labels:g}=F(),R=Tm(),T=xm(null),x=Dm(e.id,o,l),f=()=>{let b=T.current;b!==null&&s(b),a(null),d(!0),typeof e.id=="number"&&n?.(e.id)},h=b=>{if(!x)return;let A=b.relatedTarget;pe(A)&&b.currentTarget.contains(A)||a(null)};return _n("li",{"data-comment-id":e.id,"data-deleted":c?"true":void 0,className:E("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",x?"z-50":"z-0 hover:z-10"),children:[_n("div",{className:"mb-1 flex items-center justify-between",children:[bt("div",{className:E("font-semibold text-xs",ns(e.color)),children:ie(e.authorName)}),_n("div",{className:"flex items-center gap-2",children:[e.createdAt&&bt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:ae(e.createdAt)}),e.isMine&&!e.isLegacy&&_n("div",{[Nn]:e.id,className:Lm,onBlur:h,children:[bt(Re,{render:b=>bt("button",{ref:T,type:"button",tabIndex:b,className:Cm,title:g.commentDelete,"aria-label":g.commentDelete,"aria-expanded":x,"aria-controls":x?R:void 0,[wn]:e.id,onClick:()=>i(e.id,x),children:bt(vm,{"aria-hidden":"true",className:x?be.deletePending:be.delete})})}),x&&bt(Re,{render:b=>bt("button",{id:R,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:Am,onClick:f,children:g.commentDeleteConfirm})})]})]})]}),bt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});na.displayName="DailyReportPostedComment";import{jsx as st,jsxs as Pm}from"react/jsx-runtime";var Bs="data-daily-report-comment-section",Us="data-daily-report-comment-heading",On={[Bs]:""},Mn={[Us]:""},kn=E(nt,X),Om=E("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",X),Mm=E("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",X),Hs=e=>e.querySelector(`[${wn}][aria-expanded="true"]`),km=(e,t)=>{let r=[...e.querySelectorAll(`[${wn}]`)].filter(a=>a===t||a.closest("[data-deleted]")===null),n=r.indexOf(t),o=r.at(n+1);return o!==void 0?o:n>0?r[n-1]:e.closest(`[${Bs}]`)?.querySelector(`[${Us}]`)??null},Pn=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i})=>{let s=Fs(null),l=_m(),c=wm(),d=o!==null,g=oa(()=>{let x=s.current,f=x===null?null:Hs(x),h=f===null?null:f.closest(`[${Nn}]`),b=x===null?null:we(x);a(null),f!==null&&h!==null&&b!==null&&h.contains(b)&&f.focus({preventScroll:!0})},[a]);Ps(()=>{if(d)return l({id:c,onEscape:x=>Er(x)?(g(),!0):!1})},[d,l,c,g]),Ps(()=>{let x=s.current;if(!d||x===null)return;let f=x.ownerDocument,h=b=>{let A=Hs(x)?.closest(`[${Nn}]`);A!=null&&pe(b.target)&&A.contains(b.target)||a(null)};return f.addEventListener("pointerdown",h,!0),()=>f.removeEventListener("pointerdown",h,!0)},[d,a]);let R=oa((x,f)=>{f?g():a(x)},[g,a]),T=oa(x=>{let f=s.current;f!==null&&km(f,x)?.focus({preventScroll:!0})},[]);return e.length===0?null:st("ul",{ref:s,className:"space-y-2",children:e.map(x=>st(na,{comment:x,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:R,onBeforeHide:T,resolvedIdMap:i},x.id))})},Hn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=Nm(!1),a=Fs(null),{labels:i}=F();return Pm("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 g=a.current.elements.namedItem("content");g&&(g.value=d)}}finally{o(!1)}}},children:[st("input",{type:"hidden",name:"intent",value:"addComment"}),st("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&st("input",{type:"hidden",name:"businessDate",value:t}),st(Re,{render:l=>st("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:Om,autoComplete:"off"})}),st(Re,{render:l=>st("button",{type:"submit",tabIndex:l,className:Mm,disabled:n,children:i.commentSend})})]})};import{useEffect as $m,useRef as zm,useState as aa}from"react";import{Slot as Hm}from"@radix-ui/react-slot";import{cva as Fm}from"class-variance-authority";import*as Vs from"react";import{jsx as Um}from"react/jsx-runtime";var Bm=Fm(`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 ${X}`,{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"}}),lt=Vs.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>Um(n?Hm:"button",{className:E(Bm({variant:t,size:r,className:e})),ref:a,...o}));lt.displayName="Button";import{jsx as Vm}from"react/jsx-runtime";function Ws({className:e,type:t,...r}){return Vm("input",{type:t,"data-slot":"input",className:E(`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 ${X}`,e),...r})}import*as Ks from"@radix-ui/react-label";import{jsx as Wm}from"react/jsx-runtime";function Tr({className:e,...t}){return Wm(Ks.Root,{"data-slot":"label",className:E("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 Km}from"react/jsx-runtime";function $s({className:e,...t}){return Km("textarea",{"data-slot":"textarea",className:E(`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 ${X}`,e),...t})}import{jsx as Ve,jsxs as Fn}from"react/jsx-runtime";var Gm=e=>{e.preventDefault()},Bn=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=Ce(),{labels:i}=F(),[s,l]=aa(e.subject??""),[c,d]=aa(e.content??""),[g,R]=aa(!1),T=zm(e.reportHubId);$m(()=>{e.reportHubId!==T.current&&(l(e.subject??""),d(e.content??""),T.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let x=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{R(!1)}},f=async()=>{R(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{R(!1)}},h=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return Fn("form",{className:"space-y-4 p-1",onSubmit:Gm,children:[Fn("div",{className:"space-y-2",children:[Ve(Tr,{htmlFor:h,children:i.formTitle}),Ve(Re,{render:A=>Ve(Ws,{ref:n,id:h,value:s,onChange:D=>l(D.target.value),placeholder:i.formTitlePlaceholder,disabled:g,tabIndex:A})})]}),Fn("div",{className:"space-y-2",children:[Ve(Tr,{htmlFor:b,children:i.formContent}),Ve(Re,{render:A=>Ve($s,{id:b,value:c,onChange:D=>d(D.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:g,tabIndex:A})})]}),Fn("div",{className:"flex justify-end gap-2",children:[t&&Ve(Re,{render:A=>Ve(lt,{type:"button",variant:"outline",onClick:t,disabled:g,tabIndex:A,children:i.formCancel})}),Ve(Re,{render:A=>Ve(lt,{type:"button",variant:"secondary",onClick:x,disabled:g,tabIndex:A,children:i.formSave})}),Ve(Re,{render:A=>Ve(lt,{type:"button",onClick:f,disabled:g,tabIndex:A,children:i.formPublish})})]})]})};import ep from"lucide-react/dist/esm/icons/check.js";import tp from"lucide-react/dist/esm/icons/pencil.js";import rp from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as zs}from"react/jsx-runtime";var Vn=24,Gs=2,jm=20,Un=5,qm=3,Ym=()=>{let e=Math.cos(2*Math.PI/Un)/Math.cos(Math.PI/Un),t=Array.from({length:2*Un},(R,T)=>{let x=-Math.PI/2+T*Math.PI/Un,f=T%2===0?1:e;return{x:f*Math.cos(x),y:f*Math.sin(x)}}),r=t.map(R=>R.x),n=t.map(R=>R.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(jm-Gs)/(a-o),c=Vn/2-l*(o+a)/2,d=Vn/2-l*(i+s)/2,g=R=>String(Number(R.toFixed(qm)));return t.map(R=>`${g(c+l*R.x)},${g(d+l*R.y)}`).join(" ")},Xm=Ym(),qt=({filled:e})=>zs("svg",{viewBox:`0 0 ${Vn} ${Vn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:Gs,strokeLinejoin:"round",className:e?be.starOn:be.starOff,children:zs("polygon",{points:Xm})});import{Fragment as Jm,jsx as Wn,jsxs as Zm}from"react/jsx-runtime";var Yt=({config:e,id:t,className:r})=>Wn("span",{id:t,className:E(Ba,e.badgeClassName,r),children:e.name===void 0?e.label:Zm(Jm,{children:[Wn("span",{"aria-hidden":"true",children:Wn("abbr",{title:e.name,children:e.label})}),Wn("span",{className:"sr-only",children:e.name})]})});import{jsx as js}from"react/jsx-runtime";var Kn=24,Qm=6,Xt=({className:e})=>js("svg",{viewBox:`0 0 ${Kn} ${Kn}`,"aria-hidden":"true",className:E(be.read,e),children:js("circle",{cx:Kn/2,cy:Kn/2,r:Qm,fill:"currentColor"})});import{jsx as Je,jsxs as Ys}from"react/jsx-runtime";var se=({label:e,classNames:t,valueId:r,children:n})=>Ys("div",{className:t.field,children:[Je("dt",{className:t.label,children:e}),Je("dd",{id:r,className:E("m-0",t.value),children:n})]}),yt={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"},qs=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return Ys("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:[Je(se,{label:r.author,classNames:yt,children:ie(e.author)}),Je(se,{label:r.createdAt,classNames:yt,children:ae(e.createdAt)}),Je(se,{label:r.updatedBy,classNames:yt,children:ie(e.updatedBy)}),Je(se,{label:r.updatedAt,classNames:yt,children:ae(e.updatedAt)}),Je(se,{label:r.businessDate,classNames:yt,children:ae(e.date)}),t!==null&&Je(se,{label:r.visitTime,classNames:yt,children:t}),n&&Je(se,{label:r.category,classNames:yt,children:n}),o&&Je(se,{label:r.creationCategory,classNames:yt,children:o})]})};import{jsx as ne,jsxs as Zs}from"react/jsx-runtime";var $n={field:E(xe,"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:""},np={field:E(xe,"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:""},Xs={field:E(xe,"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:""},op=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,Js=({text:e})=>op.test(e)?ne("time",{dateTime:e,children:e}):e,Qs=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:d,markerIds:g,labels:R})=>{let T=r?R.starRemove:R.starAdd,x=t?R.markUnread:R.markRead,f=e.category?.trim(),h=e.creationCategory?.trim();return Zs("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ne(or,{id:g.attachments,count:e.attachments.length,label:R.attachments}),c?ne(Yt,{id:g.source,config:c}):null,ne(Re,{render:b=>ne("button",{type:"button",onClick:a,tabIndex:b,className:De,title:T,"aria-label":T,"data-detail-star-button":e.reportHubId,children:ne(qt,{filled:r})})}),ne(Re,{render:b=>ne("button",{type:"button",onClick:o,tabIndex:b,className:De,title:x,"aria-label":x,"data-detail-read-button":e.reportHubId,children:t?ne(ep,{className:be.read}):ne(Xt,{})})}),i&&ne(Re,{render:b=>ne("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:De,title:R.edit,"aria-label":R.edit,children:ne(tp,{className:be.edit})})}),n&&ne(Re,{render:b=>ne("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:De,title:R.deleteReport,"aria-label":R.deleteReport,children:ne(rp,{className:be.delete})})}),Zs("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ne(se,{label:R.id,classNames:np,children:e.reportHubId}),ne(se,{label:R.businessDate,classNames:$n,children:ne(Js,{text:ae(e.date)})}),ne(se,{label:R.author,classNames:$n,children:ie(e.employeeName)}),ne(se,{label:R.visitTime,classNames:$n,children:ie(d)}),ne(se,{label:R.updatedAt,classNames:$n,children:ne(Js,{text:ae(e.updatedAt)})}),f&&ne(se,{label:R.category,classNames:Xs,children:f}),h&&ne(se,{label:R.creationCategory,classNames:Xs,children:h})]})]})};import{useCallback as wp,useContext as vl,useLayoutEffect as ua,useRef as El}from"react";import{startTransition as Ep,useCallback as Q,useLayoutEffect as Nt,useMemo as Rl,useRef as ht,useState as Ar,useSyncExternalStore as Tp}from"react";import{flushSync as hl}from"react-dom";var Jt=e=>({owner:e,focusIndex:null}),ia=Object.freeze({owner:null,focusIndex:null}),el=(e,t)=>{if(e.length===0)return ia;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},tl=(e,t)=>{switch(t.kind){case"focusIn":return Jt(t.row);case"focusOut":return t.to==="outside"?ia:Jt(e);case"pointerPress":return t.at==="outside"?ia:Jt(e);case"listChanged":{if(e===null)return Jt(e);let r=de(t.items,e.reportHubId,e.index);return r===-1?el(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):el(t.items,t.selection.index)}};var zn=e=>e.matches(":focus-visible");var ap="data-daily-report-keyboard-focus",gt={capture:!0},rl=e=>{let t=i=>{e.toggleAttribute(ap,pe(i)&&zn(i))},r=i=>t(i.target),n=i=>{pe(i.relatedTarget)&&e.contains(i.relatedTarget)||t(null)},o=()=>t(null);e.addEventListener("focusin",r,gt),e.addEventListener("keydown",r,gt),e.addEventListener("focusout",n,gt),e.addEventListener("pointerdown",o,gt);let a=we(e);return t(a!==null&&e.contains(a)?a:null),()=>{e.removeEventListener("focusin",r,gt),e.removeEventListener("keydown",r,gt),e.removeEventListener("focusout",n,gt),e.removeEventListener("pointerdown",o,gt),t(null)}};var ip='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',sp=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],lp=sp.map(e=>`[role="${e}"]`).join(", "),dp=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),cp=new Set(["Enter"," "]),up=new Map([["Home","exitBefore"],["End","exitAfter"]]),sa=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return up.get(e.key)??null;let r=dp.get(e.key);return r!==void 0?r:cp.has(e.key)&&t.rowActivation?"activate":null},nl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},ol=(e,t,r)=>{let n=sa(e,r);if(n===null||e.defaultPrevented||vr(e)||t===null||!pe(e.target)||!t.contains(e.target))return null;let o=mt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:nl(e.target,ip,t)||nl(e.target,lp,t)?null:n};var Gn={kind:"stay"},al=e=>Math.floor(.875*e),Rt=(e,t)=>({kind:"move",index:e,align:t}),xr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",mp=({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},pp=({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},fp=(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 Gn;if(r==="top")return Rt(n-1,"top");let c=s(n-1);return Rt(n-1,xr(i-c,c,a,-1))}case"next":return n===o-1?Gn:r==="top"?Rt(n+1,"top"):Rt(n+1,xr(l,s(n+1),a,1));case"first":return Rt(0,"top");case"last":return Rt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,al(a))};if(n===o-1)return Gn;let c=mp(t);return Rt(c.index,xr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,al(a))};if(n===0)return Gn;let c=pp(t);return Rt(c.index,xr(c.top,s(c.index),a,-1))}}},bp=({index:e,focusedRowTop:t,heightOf:r},n)=>{let o=t;for(let a=e;a<n;a++)o+=r(a);for(let a=n;a<e;a++)o-=r(a);return o},ll=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=fp(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:bp(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}},dl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>xr(r,n(e),t,1),yp=(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},Ir=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;if(n.kind==="uniform"){let{rowHeight:s}=n;return{index:t,count:r,viewport:o,focusedRowTop:t*s-a,heightOf:()=>s}}let i=e.getScrollAnchor();return i===null?null:{index:t,count:r,viewport:o,focusedRowTop:yp(t,i,n.heightOf),heightOf:n.heightOf}},il=1,cl=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Cr(o,n,t,r);return{start:Math.max(0,o.index-il),end:Math.min(t-1,a+il)}},Cr=(e,t,r,n)=>{let o=n.kind==="uniform"?()=>n.rowHeight:n.heightOf,a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},ul=(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,sl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),ml=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(sl(t,n,o))return t.reportHubId;if(sl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var da=1,Lr=2,la=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?da:0)|(n===t||n===r?Lr:0),gp=e=>{if(cn(e))return!0;let t=we(e);return t!==null&&e.contains(t)},Rp=(e,t)=>{let r=e.closest(`[${mn}]`);return r!==null&&r!==e&&Dt(r)===t&&we(e)===r},pl=({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=f=>la(r,f),g=f=>{let h=s.get(f);if(h===void 0)return;let b=(d(f)&Lr)!==0?"0":"-1";h.getAttribute("tabindex")!==b&&h.setAttribute("tabindex",b)},R=f=>{let h={...r};f(r);let b=r,A=new Set([h.selectedId,h.tabStopId,h.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let D of A){if(D===null)continue;let _=la(h,D),N=la(b,D);if(_===N)continue;((_^N)&Lr)!==0&&g(D);let k=i.get(D);if(k!==void 0)for(let V of[...k])V()}},T=f=>{o=!0;try{f.focus({preventScroll:!0})}finally{o=!1}},x=f=>{let h=e();h!==null&&(n=null,gp(h)&&T(f))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:d,setTabStopId:f=>{R(h=>{h.tabStopId=f})},settleSelection:(f,h)=>{R(b=>{b.selectedId=f,b.tabStopId=h,b.arrivingId=null})},arrive:f=>{R(h=>{h.arrivingId=f})},subscribe:(f,h)=>{let b=i.get(f)??new Set;return b.add(h),i.set(f,b),()=>{b.delete(h),b.size===0&&i.get(f)===b&&i.delete(f)}},registerFocusTarget:(f,h)=>{if(s.set(f,h),g(f),n===f){x(h);return}a===null||a.reportHubId!==f||(cn(h)||Rp(h,f))&&T(h)},unregisterFocusTarget:(f,h)=>{s.get(f)===h&&s.delete(f)},requestFocus:f=>{n=f;let h=s.get(f);h!==void 0&&x(h)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:f=>{a=f},restoreFocus:f=>{if(a===null||a.reportHubId!==f)return;let h=s.get(f);h===void 0||!cn(h)||T(h)},holdBodiesOutside:f=>{l=f},isBodyHeldAt:f=>l!==null&&(f<l.start||f>l.end),registerHeldBody:(f,h,b)=>{let A={indexHint:h,release:b};return c.set(f,A),()=>{c.get(f)===A&&c.delete(f)}},releaseHeldBodiesWithin:(f,h)=>{if(f!==null)for(let[b,{indexHint:A,release:D}]of[...c]){let _=h(b,A);_>=f.start&&_<=f.end&&D()}}}};var $e={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}},ca=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),hp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),fl=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Sp=new Map(Object.values($e).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),bl=e=>{let t=Sp.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},vp=(e,t,r)=>e==="row"||e==="page"?t+r:r,yl=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:bl(e)}),gl=(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",bl(r)):(e.pending=vp(e.axis,e.pending,r.amount),ca)}case"frame":{if(e.fence==="open")return ca;if(e.fence==="immediate")return e.fence="flush",hp;if(e.pending===0)return e.fence="open",ca;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?fl:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return fl}};var xp=Object.freeze({kind:"frame"}),Ip=Object.freeze({kind:"keyup"}),Cp=Object.freeze({kind:"cancel"}),Lp=Object.freeze({previous:Object.freeze({kind:"repeat",step:$e.previous}),next:Object.freeze({kind:"repeat",step:$e.next}),pageBackward:Object.freeze({kind:"repeat",step:$e.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:$e.pageForward}),first:Object.freeze({kind:"repeat",step:$e.first}),last:Object.freeze({kind:"repeat",step:$e.last}),activate:Object.freeze({kind:"repeat",step:$e.activate})}),Ap=(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}},Dp=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),_p=e=>{let t=Dt(e),r=Kt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},jn=(e,t)=>{let r=Q(a=>e.subscribe(t,a),[e,t]),n=Q(()=>e.rowStateOf(t),[e,t]),o=Tp(r,n,n);return{isCurrent:(o&da)!==0,isTabStop:(o&Lr)!==0}},qn=(e,t,r)=>{let[n,o]=Ar(()=>!e.isBodyHeldAt(r));return Nt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Ep(a),i},[e,t,r,n]),n},Sl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:l,rowActivation:c})=>{let[d]=Ar(()=>pl({getContainer:()=>n.current,initialSelectedId:t})),g=ht({items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c}),R=ht(null),T=ht(null),[x,f]=Ar(null),h=ht(null),b=ht(null),[A,D]=Ar(null),_=ht(!1),N=ht(null),[k,V]=Ar(0),H=Rl(()=>({id:t,indexHint:t===null?null:_i(x,t)}),[t,x]),j=ht(H);Nt(()=>{g.current={items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c},j.current=H},[e,r,s,l,c,H]);let G=Q((I,y)=>{let m=T.current;if(m!==null&&m.items===I&&m.reportHubId===y)return m.index;let v=de(I,y,m!==null&&m.reportHubId===y?m.index:null);return v!==-1&&(T.current={items:I,reportHubId:y,index:v}),v},[]),B=Q((I,y)=>{T.current={items:g.current.items,reportHubId:I,index:y},f(m=>m!==null&&m.reportHubId===I&&m.index===y?m:{reportHubId:I,index:y})},[]),Z=Q(I=>{let y=d.getFocusOwner();if(y===null)return null;let m=de(I,y.reportHubId,y.index);return m===-1?null:{reportHubId:y.reportHubId,index:m}},[d]),W=Q(I=>{let y=g.current.items,m=I===null?null:{reportHubId:I,index:G(y,I)};return ml(y,Z(y),m,R.current,N.current)},[G,Z]),J=Q(()=>{d.setTabStopId(W(d.getSelectedId()))},[d,W]),K=Q(I=>{let y=d.getFocusOwner();y===I||y!==null&&I!==null&&y.reportHubId===I.reportHubId&&y.index===I.index||(d.setFocusOwner(I),_.current||J())},[d,J]),U=Q(I=>{let y=tl(d.getFocusOwner(),I);K(y.owner),y.focusIndex!==null&&(h.current=y.focusIndex,d.requestFocus(y.owner.reportHubId))},[d,K]);Nt(()=>{d.settleSelection(t,W(t))},[d,t,e,k,W]),Nt(()=>{let I=o.current;if(I!==null)return rl(I)},[o]),Nt(()=>{let I=n.current;if(I===null)return;let y=I.ownerDocument,m=v=>{let u=n.current,p=v.target;U({kind:"pointerPress",at:u!==null&&pe(p)&&u.contains(p)?"inside":"outside"})};return y.addEventListener("pointerdown",m,{capture:!0}),()=>y.removeEventListener("pointerdown",m,{capture:!0})},[n,U]),Nt(()=>{let I=d.pendingFocusId();I!==null&&de(e,I,h.current)===-1&&d.cancelFocusRequest(),U({kind:"listChanged",items:e})},[d,e,U]);let le=Q(I=>{U({kind:"removed",reportHubId:I,selection:T.current,items:g.current.items})},[U]),oe=Q((I,y,m)=>{let{items:v,onSelect:u,rowSizing:p,arrowAlign:S}=g.current,L=a.current;if(u===null||L===null)return null;let w=de(v,m.reportHubId,m.index);if(w===-1)return null;let P=Ir(L,w,v.length,p);if(P===null)return null;let z=ll(I,y,P,S),ue=v[z.index],Tt=z.index!==w;if(Tt){d.arrive(ue.reportHubId),N.current=ue.reportHubId,h.current=z.index,_.current=!0;try{d.requestFocus(ue.reportHubId)}finally{_.current=!1}}try{hl(()=>{Tt&&(d.pendingFocusId()===null&&d.settleSelection(ue.reportHubId,ue.reportHubId),u(ue.reportHubId,z.index)),z.alignment!==null&&i.toIndex(z.alignment.index,{align:z.alignment.align}),z.scrollDelta!==0&&i.by(z.scrollDelta),Tt&&(B(ue.reportHubId,z.index),V(po=>po+1));let Da=cl(L,v.length,p);d.holdBodiesOutside(Da),d.releaseHeldBodiesWithin(Da,(po,Rd)=>de(v,po,Rd))})}finally{d.holdBodiesOutside(null)}return Tt?{reportHubId:ue.reportHubId,index:z.index}:{reportHubId:m.reportHubId,index:w}},[d,a,i,B]),O=Q(I=>{let{items:y,onSelect:m}=g.current;if(m===null)return;let v=de(y,I.reportHubId,I.index);v!==-1&&(m(I.reportHubId,v),B(I.reportHubId,v))},[B]),te=Q(I=>{let y=n.current,m=y===null?null:we(y),v=y!==null&&m!==null&&y.contains(m)?dr(mt(m,y),g.current.items):null;return v===null?I.origin:v},[n]),me=Q((I,y)=>{let m=te(I);if(y.axis==="activate"){O(m);return}let v=Ap(y.axis,y.amount),u=oe(v.command,v.count,m);u!==null&&(I.origin=u)},[te,O,oe]),Ge=Q(I=>{b.current=null,I.frame!==0&&I.view.cancelAnimationFrame(I.frame),D(null)},[]),We=Q((I,y,m)=>{let{apply:v}=y;v!==null&&(y.flush?hl(()=>me(I,v)):me(I,v)),b.current===I&&(y.ended?Ge(I):y.requestFrame&&(I.frame=I.view.requestAnimationFrame(m)))},[me,Ge]),he=Q((I,y,m)=>{We(I,gl(I.state,y),m)},[We]),Se=Q(()=>{let I=b.current;I!==null&&(I.frame=0,he(I,xp,Se))},[he]),ce=Q(()=>{let I=b.current;I!==null&&he(I,Ip,Se)},[he,Se]),Oe=Q(()=>{let I=b.current;I!==null&&he(I,Cp,Se)},[he,Se]),et=Q((I,y,m)=>{D(j.current);let{state:v,effects:u}=yl($e[I]),p={state:v,origin:y,view:m,frame:0};b.current=p,We(p,u,Se)},[We,Se]);Nt(()=>()=>{let I=b.current;b.current=null,I!==null&&I.frame!==0&&I.view.cancelAnimationFrame(I.frame)},[]);let tt=Q(I=>{let y=b.current,m=y!==null&&I.repeat?sa(I,g.current):null;if(y!==null&&m!==null&&m!=="exitBefore"&&m!=="exitAfter"&&$e[m].axis===y.state.axis){I.preventDefault(),he(y,Lp[m],Se);return}let{items:v,onSelect:u,rowSizing:p,rowActivation:S}=g.current,L=n.current,w=u===null?null:ol(Dn(I),L,{rowActivation:S});if(d.cancelFocusRequest(),ce(),w===null||L===null)return;if(w==="exitBefore"||w==="exitAfter"){let ue=cs(L,w==="exitBefore"?"before":"after");if(ue===null)return;I.preventDefault(),ue.focus();return}let P=we(L),z=dr(mt(P!==null&&L.contains(P)?P:I.target,L),v);if(z!==null){if(w!=="activate"){let ue=a.current;if(ue===null||Ir(ue,z.index,v.length,p)===null)return}if(I.preventDefault(),I.repeat){et(w,z,ot(L));return}w==="activate"?O(z):oe(w,1,z)}},[d,n,a,Se,he,ce,et,O,oe]),Ke=Q(()=>{ce()},[ce]),Ae=Q(I=>{let y=n.current,m=I.target,v=mt(m,y);if(U({kind:"focusIn",row:v===null?null:_p(v)}),d.isMovingFocus())return;let u=a.current;if(y===null||u===null||!pe(m)||!zn(m))return;let p=v===null?null:v.closest('[role="list"]');if(v===null||p===null)return;let S=p.getBoundingClientRect(),L=v.getBoundingClientRect(),w=L.height<=S.height?L:Dp(m.getBoundingClientRect(),Ht),P=ul(w,S),z=u.getViewportSize();P===0||!(z>0&&S.height>0)||i.by(P*z/S.height)},[d,n,a,i,U]),je=Q(I=>{let y=n.current,m=I.relatedTarget,v=pe(m)?y?.contains(m)?"view":"outside":"nowhere";v!=="view"&&Oe(),U({kind:"focusOut",to:v})},[n,Oe,U]),Fe=Q(()=>{d.cancelFocusRequest(),Oe()},[d,Oe]),Me=Q(I=>{R.current={visibleStartIndex:I.visibleStartIndex,visibleEndIndex:I.visibleEndIndex},N.current=null,J()},[J]),rt=Rl(()=>({onKeyDown:tt,onKeyUp:Ke,onPointerDownCapture:Fe,onWheelCapture:Fe,onTouchStartCapture:Fe,onFocus:Ae,onBlur:je}),[tt,Ke,Fe,Ae,je]);return{cursor:d,containerProps:rt,handleRangeChange:Me,selection:H,settledSelection:A===null?H:A,resolveSelectedIndex:G,rememberSelection:B,focusAfterRemoval:le}};import{jsx as ma}from"react/jsx-runtime";var Np=E(Ft,Vr,Wr,Ur,"h-full"),Op="h-full w-full",Tl=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=jn(a,e),c=vl(ft),d=vl(pt),g=qn(a,e,c),R=El(null),T=El(null),x=wp(f=>(R.current=f,a.registerFocusTarget(e,f),()=>{R.current=null,a.unregisterFocusTarget(e,f)}),[a,e]);return ua(()=>{let f=R.current,h=f===null||!g?null:f.firstElementChild,b=h instanceof HTMLElement?h:null,A=T.current;A!==null&&A.body===b||(A!==null&&A.stop(),T.current=b===null?null:{body:b,stop:o(b)})}),ua(()=>()=>{T.current?.stop(),T.current=null},[]),ua(()=>{a.restoreFocus(e)},[a,e,n]),ma(yr.Provider,{value:l,children:ma("div",{ref:x,className:Np,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":d,"aria-labelledby":g&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":g&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!g?!0:void 0,"aria-current":s?"true":void 0,children:g?i:ma("div",{...ke,className:Op})})})};import{jsx as $,jsxs as ye}from"react/jsx-runtime";var Pp=E("flex w-full flex-col",ut,$r),Hp=ut,Ee="bg-slate-200 dark:bg-slate-700",Fp=(e,t)=>{let r=ie(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},Bp=()=>ye("div",{...ke,className:Hp,children:[ye("div",{className:"mb-4 flex flex-wrap gap-2",children:[$("div",{className:E("h-6 w-20 rounded-full",Ee)}),$("div",{className:E("h-6 w-24 rounded-full",Ee)}),$("div",{className:E("h-6 w-24 rounded-full",Ee)}),$("div",{className:E("h-6 w-28 rounded-full",Ee)})]}),ye("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ye("div",{className:"space-y-4",children:[$("div",{className:E("h-5 w-40 rounded",Ee)}),$("div",{className:E("h-5 w-56 rounded",Ee)}),$("div",{className:E("h-24 rounded-xl",Ee)})]}),ye("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[$("div",{className:E("mb-2 h-4 w-24 rounded",Ee)}),$("div",{className:E("mb-2 h-4 w-28 rounded",Ee)}),$("div",{className:E("h-4 w-32 rounded",Ee)})]})]}),ye("div",{className:"space-y-4",children:[$("div",{className:E("h-4 w-24 rounded",Ee)}),ye("div",{className:"flex flex-wrap gap-2",children:[$("div",{className:E("h-6 w-16 rounded-full",Ee)}),$("div",{className:E("h-6 w-16 rounded-full",Ee)}),$("div",{className:E("h-6 w-16 rounded-full",Ee)})]}),ye("div",{className:"space-y-2",children:[$("div",{className:E("h-16 rounded-xl",Ee)}),$("div",{className:E("h-16 rounded-xl",Ee)})]})]})]}),Up=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=At(e.reportHubId,e.businessDate),{removeStaleItem:c}=Ce(),{draftLabelName:d,sourceTypeConfigs:g}=F(),[R,T]=Il(!1),[x,f]=Il(!1),h=_r(!1),b=_r(!1),A=_r(!1),D=_r(!1);xl(()=>{if(l){D.current=!0;return}!(a||s||i)&&D.current&&e.reportHubId>0&&c(e.reportHubId)},[a,s,l,i,e.reportHubId,c]);let _=a?.labels.some(O=>O.name===d),N=n&&a?.userId===n,k=Dr(()=>{b.current=!0,h.current=!1,T(!0)},[]),V=Dr(()=>{A.current=!0,T(!1),f(!0)},[]),H=Dr(()=>{A.current=!0,T(!1)},[]),j=Dr(O=>{O===null||!b.current||(b.current=!1,O.focus())},[]),G=Dr(O=>{O===null||!A.current||(A.current=!1,O.focus())},[]);kp(()=>{R||(A.current=!1)},[R]),xl(()=>{a&&N&&_&&!R&&!x?(T(!0),h.current=!0):a&&!_&&R&&h.current&&(T(!1),h.current=!1)},[a,N,_,R,x]);let B=Mp(),Z=pa(()=>({heading:`${B}-heading`,state:`${B}-state`,attachments:`${B}-attachments`,source:`${B}-source`}),[B]),W=a!==null&&a.attachments.length>0,J=a===null?void 0:Ct(a.sourceType,g),K=[Z.state,...W?[Z.attachments]:[],...J!==void 0?[Z.source]:[]].join(" "),U=!i&&a!==null&&!R?{kind:"card",ids:Z,describedBy:K}:{kind:"label",label:ae(e.businessDate)},le=!i&&a===null&&s,oe=i?"error":a===null?s?"loading":"missing":R?"editing":"resolved";return $(Tl,{itemId:e.reportHubId,name:U,isBusy:le,bodyKind:oe,observeRowHeight:t,cursor:o,children:i?$(Vp,{itemId:e.reportHubId}):a?R?$("div",{...ke,className:"rounded-2xl",children:$(Bn,{report:a,onCancel:V,onPublishSuccess:H,titleInputRef:j})}):$(Al,{item:e,report:a,sourceConfig:J,textIds:Z,onCommentAdded:r,userId:n,onEdit:N?k:void 0,editButtonRef:G}):$(Bp,{})})},Ll=Cl(Up),Al=Cl(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s})=>{let l=_r(null),{toggleStar:c,toggleRead:d,pendingStarUpdates:g,pendingReadUpdates:R,deleteReport:T,user:x}=Ce(),{uiComments:f,handleAddComment:h,handleDeleteComment:b,pendingDeleteId:A,setPendingDeleteId:D,resolvedIdMap:_}=pr(t,x,a),{labels:N,headingLevel:k}=F(),V=zt[k],H=Xr(t.sourceType,r),j=async te=>{await h(te),o?.(e.reportHubId)},G=g.current.get(t.reportHubId),B=G===void 0?t.isStarred:G,Z=R.current.get(t.reportHubId),W=Z===void 0?t.isRead:Z,J=!!(a&&t.userId===a),K=async()=>{try{await d(t.reportHubId,!W,t.date)}catch{}},U=async()=>{try{await c(t.reportHubId,!B,t.date)}catch{}},le=async()=>{confirm(N.confirmDelete)&&await T(t.reportHubId,t.date)},oe=pa(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
+ `).trim():"",[t.content]),O=pa(()=>{let te=t.visitTimeFrom?.trim(),me=t.visitTimeTo?.trim();return te&&me?`${te} - ${me}`:te||me||null},[t.visitTimeFrom,t.visitTimeTo]);return ye("div",{...ke,onDoubleClick:i,className:Pp,children:[$(Pe,{level:k,id:n.heading,className:"sr-only",children:`${ae(t.date)} ${ie(t.employeeName)} ${ie(t.subject)}`}),$("span",{id:n.state,className:"sr-only",children:N.rowState({isRead:W,isStarred:B})}),ye("div",{className:"flex flex-col gap-4",children:[$(Qs,{report:t,sourceConfig:r,isRead:W,isStarred:B,isMine:J,onToggleRead:K,onToggleStar:U,onEdit:i,editButtonRef:s,onDelete:le,visitTimeDisplay:O,markerIds:n,labels:N}),ye("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ye("div",{className:"flex flex-col gap-4",children:[ye("div",{className:"grid gap-4 sm:grid-cols-2",children:[ye("div",{className:"flex flex-col gap-1",children:[$(Pe,{level:V,className:nt,children:N.customer}),$("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:ie(t.customerName)})]}),ye("div",{className:"flex flex-col gap-1",children:[$(Pe,{level:V,className:nt,children:N.subject}),$("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:ie(t.subject)})]})]}),oe&&ye("div",{className:"flex flex-col gap-2",children:[$(Pe,{level:V,className:nt,children:N.content}),$("div",{className:E("whitespace-pre-wrap",Kr),children:oe})]}),t.interviewers.length>0&&ye("div",{className:"flex flex-col gap-2",children:[$(Pe,{level:V,className:nt,children:N.interviewers}),$("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(te=>$("li",{className:E(xe,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:Fp(te,N)},JSON.stringify([te.name,te.affiliation])))})]}),$(An,{attachments:t.attachments}),(f.length>0||H)&&ye("div",{...On,className:"flex flex-col gap-2",children:[$(Pe,{level:V,tabIndex:-1,...Mn,className:kn,children:N.comments}),$(Pn,{comments:f,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:b,pendingDeleteId:A,onPendingDeleteIdChange:D,resolvedIdMap:_})]}),H&&$("div",{className:"mt-auto",ref:l,children:$(Hn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:j})})]}),$(qs,{report:t,visitTimeDisplay:O,labels:N})]})]})]})});Al.displayName="DailyReportResolvedItem";var Vp=({itemId:e})=>{let{labels:t}=F();return $("div",{...ke,className:"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:$("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Gp,useId as jp,useMemo as Nl}from"react";import{useCallback as Wp,useLayoutEffect as Dl,useMemo as _l,useRef as fa}from"react";var Kp=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},$p=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=n.kind==="uniform"?()=>n.rowHeight:n.heightOf,i=e.index,s=e.offsetPx+(t-e.recordedAt);for(;s<0&&i>0;)i-=1,s+=a(i);for(;i<r.length-1&&s>=a(i);)s-=a(i),i+=1;return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Cr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},zp=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=de(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},wl=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=fa(null),a=fa(e),i=fa(r),s=Wp(()=>{let c=t.current,d=c===null?-1:c.getScrollPosition(),g=c===null||!(d>0)?null:c.getScrollAnchor(),R=a.current,T=g===null?void 0:R[g.index],x=c===null?0:c.getViewportSize();o.current=g===null||T===void 0||!(x>0)?null:{reportHubId:T.reportHubId,index:g.index,offsetPx:g.offsetPx,lastVisibleIndex:Cr(g,x,R.length,i.current),recordedAt:d}},[t]),l=_l(()=>({toIndex:(c,d)=>{let g=t.current;g!==null&&(g.scrollToIndex(c,d),s())},by:c=>{let d=t.current;d!==null&&(d.scrollBy(c),s())}}),[t,s]);return Dl(()=>{let c=a.current;a.current=e;let d=o.current,g=t.current;if(c===e||d===null||g===null||n())return;let R=$p(d,g.getScrollPosition(),c,i.current,g.getViewportSize());if(R===null){o.current=null;return}let T=de(e,R.reportHubId,R.index),x=T===-1?zp(c,e,R):T;if(x===-1){o.current=null;return}if(x===R.index&&!Kp(c,e,R.index,R.lastVisibleIndex)){o.current=R;return}g.scrollToIndex(x,{align:"top",offset:-R.offsetPx}),o.current={reportHubId:e[x].reportHubId,index:x,offsetPx:R.offsetPx,lastVisibleIndex:Cr({index:x,offsetPx:R.offsetPx},g.getViewportSize(),e.length,r),recordedAt:g.getScrollPosition()}},[e,t,r,n]),Dl(()=>{i.current=r},[r]),_l(()=>({handleRangeChange:s,scroller:l}),[s,l])};import{jsx as qp}from"react/jsx-runtime";var Yn=({isViewRevealPending:e,onRangeChange:t,...r})=>{let{handleRangeChange:n,scroller:o}=wl({items:r.items,handleRef:r.handleRef,rowSizing:r.rowSizing,isRevealPending:e}),{handleRangeChange:a,...i}=Sl({...r,scroller:o}),{labels:s}=F(),l=jp(),c=r.onSelect!==null,d=Gp(T=>{a(T),n(),t(T)},[a,n,t]),g=Nl(()=>({role:"list","aria-label":s.title,"aria-describedby":c?l:void 0}),[s.title,c,l]),R=Nl(()=>c?qp("span",{id:l,className:"sr-only",children:s.listKeyboardHelp}):null,[c,l,s.listKeyboardHelp]);return{...i,handleRangeChange:d,scroller:o,contentProps:g,keyboardHelp:R}};import{useCallback as Yp}from"react";var Xp=20,Xn=({hostTestId:e,scrollContainerRef:t,handleRef:r,itemsRef:n})=>Yp(o=>{t.current=o;let a=o.querySelector(`[data-testid="${e}"]`);return a!==null&&Object.defineProperty(a,"__virtualScroll",{configurable:!0,get:()=>{let i=r.current;if(i!==null)return{...i,findReportIndex:s=>n.current.findIndex(l=>l.reportHubId===s),getReportItem:s=>n.current[s],getReportIds:(s=Xp)=>n.current.slice(0,s).map(l=>l.reportHubId)}}}),()=>{a!==null&&delete a.__virtualScroll,t.current=null}},[e,t,r,n]);import{Fragment as sf,jsx as vt,jsxs as af}from"react/jsx-runtime";var Ml={pointerDragInputs:nn,wheelSpeedMultiplier:Jr,inertiaOptions:$t(!1),enableKeyboardNavigation:!1},Qp={...Ml,inertiaOptions:$t(!0)},Ol="daily-report-detail-list",ef=E("relative w-full",jr,Gr),tf=E(qe,"relative"),rf=300,nf=350,ya=e=>{let t=Le(null),[r,n]=Jn(null),o=un(t),a=pn(r),i=Te(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return vt("div",{ref:i,className:zr,children:o===null?null:vt(of,{...e,viewportHeight:o,reducedMotion:a})})},of=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=Jn(()=>{let u=o?.current;if(!u||u.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!u.topItem)return{initialScrollAnchor:void 0,restored:!0};let p=e.findIndex(S=>S.reportHubId===u.topItem?.reportHubId);return p!==-1?{initialScrollAnchor:{index:p,offsetPx:u.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:u.topItem.index,offsetPx:0},restored:!0}}),c=Le(l),d=Le(r??null),g=Le(o?.current.measuredHeights??new Map),R=Le(null),T=Le(null),x=sn(),f=Lo(),[h]=Jn(fn),b=Le(null),A=Le(null),D=Le(e),_=Le(n);Zp(()=>{D.current=e,_.current=n},[e,n]);let N=Le(null),[k,V]=Jn(0),H=Le(null),j=e.length,G=Te(u=>u>=j?Qr:e[u],[e,j]),B=Te(u=>{let p=g.current.get(G(u).reportHubId);return p===void 0?nf:p},[G]),Z=Te(u=>G(u).reportHubId,[G]),W=ba(()=>({kind:"measured",heightOf:B}),[B]),J=Te((u,p)=>{N.current={reportHubId:u,index:p},V(S=>S+1),_.current?.(u)},[]),K=Te((u,p)=>{if(j===0)return;let S=Math.max(0,u),L=Math.min(j-1,p);if(S>L)return;let w=new Set;for(let P=S;P<=L;P++){let z=G(P);if(z.businessDate&&w.add(z.businessDate),w.size>=ci)break}w.forEach(P=>{f(P)})},[G,j,f]),U=Te(u=>{if(j===0)return;let{renderingStartIndex:p,renderingEndIndex:S,visibleStartIndex:L}=u,w=G(L);w.businessDate&&h.setLabel(ae(w.businessDate)),K(p,S),K(S+1,S+Zr),K(p-Zr,p-1)},[G,j,K,h]),le=Te(()=>H.current!==null,[]),{cursor:oe,containerProps:O,handleRangeChange:te,scroller:me,contentProps:Ge,keyboardHelp:We,resolveSelectedIndex:he,rememberSelection:Se}=Yn({items:e,selectedId:r??null,onSelect:n===void 0?null:J,containerRef:R,rootRef:R,handleRef:T,rowSizing:W,arrowAlign:"top",rowActivation:!0,isViewRevealPending:le,onRangeChange:U}),ce=Te((u,p)=>{if(T.current===null)return!1;let L=D.current,w=p!==null&&p.reportHubId===u?de(L,u,p.index):he(L,u);return w===-1?!1:(c.current&&(c.current=!1,u===d.current)||p!==null&&p.reportHubId===u&&p.index===w||me.toIndex(w,{align:"top"}),!0)},[he,me]);St(()=>{let u=N.current;N.current=null,H.current=null,r!=null&&(ce(r,u)||(H.current=r))},[r,ce]),St(()=>{let u=H.current;u!==null&&ce(u,null)&&(H.current=null)},[e,ce]),St(()=>{let u=o?.current;u&&(u.anchorReportHubId=r??null)},[r,o]),St(()=>{N.current=null},[k]);let Oe=Xn({hostTestId:Ol,scrollContainerRef:R,handleRef:T,itemsRef:D}),et=Le(null),tt=Te(()=>{T.current&&(et.current=T.current);let u=o?.current,p=et.current;if(u&&p){let L=p.getScrollAnchor(),w=L?D.current[L.index]:void 0;L&&w&&(u.topItem={reportHubId:w.reportHubId,index:L.index,offsetPx:L.offsetPx})}let S=R.current;S&&(S.toggleAttribute(Pt,!0),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{S.toggleAttribute(Pt,!1),A.current=null},150))},[o]),Ke=Te(u=>vt(bn,{...u,store:h}),[h]);St(()=>{let u=R.current;if(!u)return;let p=()=>{h.setWheelScrollActive(!0),b.current&&clearTimeout(b.current),b.current=window.setTimeout(()=>{h.setWheelScrollActive(!1),b.current=null},en)};return u.addEventListener("wheel",p,{passive:!0}),()=>{u.removeEventListener("wheel",p),b.current&&clearTimeout(b.current)}},[h]);let Ae=Le(null),je=Te(u=>{for(let p of u){let S=p.target.parentElement,L=S===null?null:Dt(S),w=S===null?null:Kt(S),P=p.borderBoxSize[0];if(L===null||w===null||P===void 0)continue;let z=P.blockSize+2*Ht;if(g.current.get(L)===z)continue;let ue=de(D.current,L,w-1);if(ue===-1)continue;g.current.set(L,z);let Tt=T.current;Tt!==null&&Tt.updateItemSize(ue,z)}},[]),Fe=Te(u=>{Ae.current===null&&(Ae.current=new ResizeObserver(je));let p=Ae.current;return p.observe(u),()=>p.unobserve(u)},[je]);St(()=>()=>{Ae.current?.disconnect(),Ae.current=null},[]),St(()=>{j!==0&&K(0,Math.min(j-1,Zr))},[j,K]);let Me=Le(null),rt=Te(u=>{let p=de(D.current,u,null);p!==-1&&(Me.current!==null&&clearTimeout(Me.current),Me.current=setTimeout(()=>{Me.current=null;let S=de(D.current,u,p);S!==-1&&me.toIndex(S,{align:"bottom"})},rf))},[me]);St(()=>()=>{Me.current!==null&&clearTimeout(Me.current)},[]);let I=Te(u=>{if(!_.current)return;let p=mt(u.target,R.current);if(p===null||Mi(u.target,p))return;let S=dr(p,D.current);S!==null&&(Se(S.reportHubId,S.index),J(S.reportHubId,S.index))},[J,Se]),y=Te((u,p)=>vt(ft.Provider,{value:p,children:vt(Ll,{item:u,observeRowHeight:Fe,onCommentAdded:rt,userId:t,cursor:oe})},u.reportHubId),[Fe,rt,t,oe]),m=ba(()=>({...rn,renderThumbOverlay:Ke}),[Ke]),v=ba(()=>vt(pt.Provider,{value:j,children:vt(Jp,{ref:T,itemCount:j,getItem:G,getItemKey:Z,getItemHeight:B,viewportSize:a,initialScrollAnchor:s,overscanCount:tn,scrollBarOptions:m,behaviorOptions:i?Qp:Ml,onRangeChange:te,onScroll:tt,testId:Ol,className:ef,locale:x.locale,labels:x.labels,contentProps:Ge,children:y})}),[j,G,Z,B,a,i,s,m,te,tt,x.locale,x.labels,Ge,y]);return vt(sf,{children:af("div",{ref:Oe,className:tf,...O,onClick:I,children:[We,v]})})};import Pl from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as lf,useRef as kl,useState as df}from"react";var wr=(e,t=250)=>{let[r,n]=df(e),o=kl(e),a=kl(!0);return lf(()=>{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 g=Math.min(1,Math.max(0,(d-l)/t)),R=1-(1-g)**3,T=Math.round(i+(e-i)*R);o.current=T,n(T),g<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as Zn,jsxs as Qn}from"react/jsx-runtime";var Nr=()=>{let e=at(),{labels:t}=F(),r=wr(e.loadedCount),n=wr(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 Qn("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:E(xe,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[Zn("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"?Qn("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:E(xe,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[Zn(Pl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?Qn("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:E(xe,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,Zn("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>vn(),className:E("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",X),children:t.streamRetry})]}):e.isRevalidating?Qn("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:[Zn(Pl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as sd,PanelGroup as Cb,PanelResizeHandle as Lb}from"@aiquants/resize-panels";import{VirtualScroll as Ab}from"@aiquants/virtualscroll";import{useCallback as Qe,useEffect as Fr,useLayoutEffect as ld,useMemo as so,useRef as kt,useState as lo}from"react";import{useSyncExternalStore as cf}from"react";var Hl="(max-width: 639px)",uf=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(Hl);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},mf=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(Hl).matches:!1,pf=()=>!1,Fl=()=>cf(uf,mf,pf);import{SwipeCloseGuardContext as kf,useOverlayEscapeStack as Pf,useSwipeGuardState as Hf,useSwipeToDismissOverlay as Ff,useTapClick as Bf,useTransitionDisplay as Uf}from"@aiquants/swipe-overlay";import{useCallback as ro,useEffect as tr,useId as Ea,useLayoutEffect as Yl,useRef as Ze,useState as no}from"react";import{createContext as ff,useMemo as bf}from"react";var Bl=Object.freeze({id:null,indexHint:null}),eo=ff(Object.freeze({selected:Bl,settled:Bl})),Or=(e,t)=>{let{id:r,indexHint:n}=t;return bf(()=>{if(r===null)return null;let o=de(e,r,n);return o===-1?null:e[o]},[e,r,n])};import yf from"lucide-react/dist/esm/icons/check.js";import gf from"lucide-react/dist/esm/icons/pencil.js";import Rf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as hf,useCallback as er,useContext as Sf,useDeferredValue as vf,useEffect as ga,useId as $l,useLayoutEffect as ha,useMemo as Ef,useRef as Ot,useState as Ra}from"react";import*as dt from"@radix-ui/react-tabs";import*as He from"react";import{jsx as Mr}from"react/jsx-runtime";var Ul=He.createContext(null),Vl=e=>{let t=He.useContext(Ul);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Wl=(e,t)=>`${e}-trigger-${t}`,Kl=(e,t)=>`${e}-panel-${t}`,kr=He.forwardRef(({value:e,children:t,...r},n)=>{let o=He.useId(),a=He.useMemo(()=>({baseId:o,value:e}),[o,e]);return Mr(dt.Root,{ref:n,value:e,...r,children:Mr(Ul,{value:a,children:t})})});kr.displayName=dt.Root.displayName;var Pr=He.forwardRef(({className:e,...t},r)=>Mr(dt.List,{ref:r,className:E("inline-flex",e),...t}));Pr.displayName=dt.List.displayName;var Hr=He.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Vl("TabsTrigger");return Mr(dt.Trigger,{ref:n,value:t,...r,id:Wl(o,t),"aria-controls":Kl(o,t),className:E(`${Ga} ${X}`,e)})});Hr.displayName=dt.Trigger.displayName;var Zt=He.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Vl("TabsContent"),s=t===i;return Mr("div",{ref:o,role:"tabpanel",id:Kl(a,t),"aria-labelledby":Wl(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:E(`mt-2 data-[state=inactive]:hidden ${X}`,e),children:s?r:null})});Zt.displayName="TabsContent";import{Fragment as Mf,jsx as M,jsxs as ze}from"react/jsx-runtime";var jl=E(xt,"w-24 shrink-0"),zl={field:"flex items-baseline",label:jl,value:"flex-1"},Tf={field:"flex min-w-0 flex-1 items-baseline",label:jl,value:"wrap-break-word min-w-0 flex-1"},xf={field:"flex flex-col gap-1",label:xt,value:""},If={field:"flex items-center gap-1",label:xt,value:""},Gl=E("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",fo,Na,wa),Cf=E("flex flex-col gap-1",bo),Lf=E("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",X),Af=500,Sa=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)})}},Df=(e,t,r,n,o,a)=>{let i=Ot(null),s=e?.reportHubId;ha(()=>{i.current=null},[s]),ga(()=>{n||(i.current=null)},[n]);let l=er(async(c,d)=>{d||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return ga(()=>{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),Af):null};d();let g=o.subscribe(d);return()=>{g(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},va="article",_f=["article","relations"],wf=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},Nf=E("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",ut),ql=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=F(),a=$l(),i=$l(),[s,l]=Ra(va),{selected:c,settled:d}=Sf(eo),g=Or(e,c),R=Or(e,vf(d)),T=g===null?null:g.reportHubId,f=(R===null?null:R.reportHubId)===T,[h]=Ra(()=>Sa(f));return ha(()=>{h.set(f)},[h,f]),M("aside",{"data-testid":"daily-report-side-pane","data-report-id":g?.reportHubId,"data-displayed-report-id":R?.reportHubId,"aria-busy":f?void 0:!0,className:Nf,children:R===null?M("div",{className:E("flex h-full flex-1 items-center justify-center text-center",Bt),children:M("p",{children:o.selectPrompt})}):M(to,{item:R,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:h,userId:r,onReportDeleted:n},R.reportHubId)})},to=hf(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[d,g]=Ra(!1),{draftLabelName:R,labels:T,sourceTypeConfigs:x,headingLevel:f}=F(),{report:h,error:b,isLoading:A}=At(e.reportHubId,e.businessDate),D=Ot(null),_=Ot(null),N=Ot(null),k=Ot(!1),V=Ot(!1),H=Ot(!1);ga(()=>{if(!h)return;let O=h.labels.some(te=>te.name===R);h.reportHubId!==N.current?(N.current=h.reportHubId,O?(g(!0),k.current=!0):(g(!1),k.current=!1)):!O&&d&&k.current&&(g(!1),k.current=!1)},[h,d,R]);let j=!!(l&&h?.userId===l),G=er(()=>{V.current=!0,k.current=!1,g(!0)},[]),B=er(()=>{H.current=!0,g(!1)},[]),Z=er(O=>{O===null||!V.current||(V.current=!1,O.focus())},[]),W=er(O=>{O===null||!H.current||(H.current=!1,O.focus())},[]);ha(()=>{d||!H.current||(H.current=!1,_.current?.focus())},[d]);let J=er(()=>{setTimeout(()=>{let O=D.current;O!==null&&O.scrollTo({top:O.scrollHeight,behavior:Fi(O)})},100)},[]),K=ae(e.businessDate),U=h===null?null:ie(h.employeeName),le=A||!h,oe=h===null?void 0:Ct(h.sourceType,x);return ze(Mf,{children:[ze("div",{className:Cf,children:[M("dl",{className:"m-0",children:M(se,{label:T.businessDate,classNames:xf,children:M(Pe,{ref:_,level:f,id:t,tabIndex:-1,className:Lf,children:K})})}),ze("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[M("dl",{className:"m-0",children:M(se,{label:T.author,classNames:If,valueId:r,children:le?M("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):U})}),oe?M(Yt,{config:oe,className:"ml-2"}):null]})]}),ze(kr,{value:n,onValueChange:O=>o(wf(O)),className:"flex min-h-0 flex-1 flex-col",children:[M("div",{className:bo,children:M(Pr,{"aria-label":T.reportTabList,className:E($a,"grid grid-cols-2 gap-1"),children:_f.map(O=>M(Hr,{value:O,children:O==="article"?T.tabArticle:T.tabRelations},O))})}),M(Zt,{ref:D,value:"article",className:Gl,children:d?h?M(Bn,{report:h,onCancel:B,onPublishSuccess:B,titleInputRef:Z}):M("p",{className:Bt,children:T.loading}):M(Of,{report:h,sourceConfig:oe,isLoading:A,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:J,userId:l,onEdit:j?G:void 0,editButtonRef:W,onReportDeleted:c})}),M(Zt,{value:"relations",className:Gl,children:M("p",{className:Bt,children:T.relationsEmpty})})]})]})});to.displayName="DailyReportSidePaneContent";var Qt=({className:e="w-32"})=>M("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),Of=({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:g,onReportDeleted:R})=>{let{toggleStar:T,toggleRead:x,deleteReport:f,user:h}=Ce(),{labels:b,headingLevel:A}=F(),D=zt[A],{uiComments:_,handleAddComment:N,handleDeleteComment:k,pendingDeleteId:V,setPendingDeleteId:H,resolvedIdMap:j}=pr(e,h,c),{handleToggleRead:G}=Df(e,r,a,i,s,x),B=e!==null&&Xr(e.sourceType,t),Z=async O=>{await N(O),l?.()},W=Ef(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
4
4
  `).replace(/<\/p>/gi,`
5
- `).replace(/<[^>]+>/g,""):null,[e]),oe=async P=>{try{await T(P.reportHubId,!P.isStarred,P.date)}catch{}},V=async P=>{if(confirm(b.confirmDelete)){try{await u(P.reportHubId,P.date)}catch{alert(b.deleteFailed);return}R(P.reportHubId)}};if(n)return H("p",{className:"text-red-500",children:b.reportLoadFailed(o.reportHubId)});let $=!e,ae=!!(c&&e?.userId===c),ie=D.length>0;return ze("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:y,children:[ze("div",{className:"flex items-start gap-2",children:[H("dl",{className:"m-0 flex min-w-0 flex-1",children:H(ce,{label:b.subject,classNames:gf,children:$?H(Jt,{className:"w-3/4"}):H("span",{className:"text-sm",children:de(e?.subject)})})}),!$&&e&&ze("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[H("button",{type:"button",onClick:()=>oe(e),className:_e,title:e.isStarred?b.starRemove:b.starAdd,"aria-label":e.isStarred?b.starRemove:b.starAdd,"data-detail-star-button":e.reportHubId,children:H(Gt,{filled:e.isStarred})}),H("button",{type:"button",onClick:()=>W(e,!1),className:_e,title:e.isRead?b.markUnread:b.markRead,"aria-label":e.isRead?b.markUnread:b.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?H(cf,{className:fe.read}):H(Yt,{})}),y&&H("button",{ref:h,type:"button",onClick:y,"data-detail-edit-button":e.reportHubId,className:_e,title:b.edit,"aria-label":b.edit,children:H(uf,{className:fe.edit})}),ae&&H("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:_e,title:b.deleteReport,"aria-label":b.deleteReport,children:H(mf,{className:fe.delete})})]})]}),H("dl",{className:"m-0",children:H(ce,{label:b.customer,classNames:Bl,children:$?H(Jt,{className:"w-1/2"}):H("span",{className:"text-sm",children:de(e?.customerName)})})}),ze("div",{className:"flex flex-col gap-2",children:[H(ke,{level:_,className:rt,children:b.content}),H("div",{className:v("min-h-22",Ur),children:$?ze("div",{className:"space-y-2",children:[H(Jt,{className:"w-full"}),H(Jt,{className:"w-11/12"}),H(Jt,{className:"w-4/5"})]}):K?H("div",{className:"whitespace-pre-wrap",children:K}):H("p",{className:"text-slate-500 dark:text-slate-400",children:b.contentEmpty})})]}),H("dl",{className:"m-0",children:H(ce,{label:b.visitTime,classNames:Bl,children:$?H(Jt,{className:"w-1/3"}):ze("span",{className:"text-sm",children:[de(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",de(e?.visitTimeTo)]})})}),e&&H(In,{attachments:e.attachments}),e&&ze("div",{..._n,className:"flex flex-col gap-2 border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:[H(ke,{level:_,tabIndex:-1,...wn,className:Nn,children:b.comments}),ie&&H(On,{comments:D,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:k,pendingDeleteId:F,onPendingDeleteIdChange:z,resolvedIdMap:X}),B&&H(Mn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:J})]})]})};import{jsx as Ot,jsxs as $l}from"react/jsx-runtime";var Mf="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]",kf={right:"var(--aqdr-overlay-right, 0px)"},Pf="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",Hf="relative ml-auto flex h-full w-full max-w-full touch-none bg-white shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out dark:bg-slate-900",Ff=v("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",Z),Bf=50,zl=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=eo(!1),[l,c]=eo(!1),y=Ze(null),h=Ze(null),R=Ze(null),T=Ze(e),C=Ze(!0),u=_r(r,t),g=Qn(()=>{let D=o.current;if(D===null)return;let N=D.ownerDocument.body;R.current={body:N,overflow:N.style.overflow},N.style.overflow="hidden"},[o]),b=Qn(()=>{let D=R.current;D!==null&&(D.body.style.overflow=D.overflow,R.current=null)},[]);Qt(()=>{if(C.current){C.current=!1,T.current=e;return}let D=!T.current;T.current=e,D&&e&&a!==null?s(!0):!e&&i&&(h.current=a,s(!1),b())},[e,a,i,b]);let A=e&&i&&u!==null;Qt(()=>{if(A)c(!0);else{let D=setTimeout(()=>c(!1),300);return()=>clearTimeout(D)}},[A]),Qt(()=>{if(e&&i&&a!==null&&!y.current){let D=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:D},"",window.location.href),y.current=D}else!(e&&i)&&y.current&&(y.current=null);return e&&i?g():b(),b},[e,i,a,g,b]),Qt(()=>{let D=()=>{y.current&&(h.current=a,y.current=null,s(!1),n(null))};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[a,n]);let _=Qn(()=>{e&&(h.current=a,s(!1),n(null),y.current&&(y.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:A,handleOverlayClose:_,lastClosedItemIdRef:h,selectedItem:u}},Gl=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=U(),s=Ze(null),l=ya(),c=ya(),[y,h]=eo(ba),R=Df(),T=ya(),C=Ze(!1),u=Ze(e),g=Ze(null),[b]=eo(()=>fa(e)),{isBlocked:A,requestBlock:_,reset:D}=_f(),N=Of(e,t),{overlayRef:k,overlayStyle:F,attemptClose:z,isSwiping:X}=wf({isOpen:e,onClose:r,isCloseBlocked:Qn(()=>A,[A]),skipWhenTextSelected:!0}),W=Ze(z);Kl(()=>{W.current=z,u.current=e,b.set(e)},[z,e,b]),Qt(()=>{if(e)return R({id:T,onEscape:V=>Sr(V)&&W.current()})},[e,R,T]),Kl(()=>{let V=s.current;if(V===null)return;if(e){if(C.current)return;V.showModal(),C.current=!0,V.ownerDocument.getElementById(l)?.focus();return}if(!C.current)return;C.current=!1;let $=Ne(V);$!==null&&V.contains($)&&Io($)&&$.blur(),V.close()},[e,l]),Qt(()=>{e||D()},[e,D]);let B=Nf(()=>z()),J=V=>{let $=Cn(V);if(Sr($)){z()&&V.preventDefault();return}if($.key==="Escape"){g.current=V.timeStamp;return}let ae=_s($,V.currentTarget);ae!==null&&(V.preventDefault(),ae.kind==="wrap"&&ae.element.focus())},K=V=>{V.preventDefault();let $=g.current;g.current=null,!($!==null&&V.timeStamp-$<=Bf)&&W.current()},oe=V=>{let $=V.currentTarget;$.open||!u.current||(C.current=!1,!W.current()&&($.showModal(),C.current=!0))};return N?$l("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:v(Mf,e&&!X?"pointer-events-auto":"pointer-events-none"),style:kf,inert:!e,onKeyDown:J,onCancel:K,onClose:oe,children:[Ot("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:v(Pf,e?"opacity-100":"opacity-0"),...B}),Ot("div",{ref:k,"data-daily-report-overlay-panel":"",className:v(Hf,e?"pointer-events-auto":"pointer-events-none"),style:F,children:$l("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Ot(Af.Provider,{value:{isBlocked:A,requestBlock:_},children:Ot("div",{"data-testid":"daily-report-side-pane","data-report-id":N.reportHubId,"data-displayed-report-id":N.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Ot(Zn,{item:N,headingId:l,authorId:c,activeTab:y,onActiveTabChange:h,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},N.reportHubId)})}),Ot("div",{className:"flex justify-start",children:Ot("button",{type:"button","data-overlay-interactive":"true",className:Ff,onClick:()=>z(),children:i.close})})]})})]}):null};import Qf from"lucide-react/dist/esm/icons/check.js";import{createContext as eb,memo as Jl,useCallback as tb,useContext as no,useEffect as rb,useId as ro,useMemo as Zl,useRef as nb}from"react";import{createContext as Uf,createElement as Vf,useLayoutEffect as Wf,useMemo as Kf,useRef as $f,useState as zf}from"react";var Gf=6.75,jf=4,Yf=1e-6,qf=e=>Math.ceil(2*Hr+2*_a+jf+Gf*e-Yf),to=Uf(null),Xf="data-daily-report-root-font-size-probe",Jf={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},Zf=e=>{let t=Lt(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])},jl=()=>{let e=$f(null),[t,r]=zf(null);Wf(()=>{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=qf(Zf(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Kf(()=>Vf("div",{ref:e,"aria-hidden":!0,[Xf]:"",style:Jf}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as tr}from"react/jsx-runtime";var ob=v(Pt,Fr,Br,xa),ab=v("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",ut,Vr,Da),ib="min-w-24",sb="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",lb={touchAction:"manipulation"},db=v("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",ib),cb=v("relative z-10",_e),ub=v("flex h-full",ut),mb="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",er="h-4 rounded bg-slate-200 dark:bg-slate-700",pb=()=>Y("div",{"data-skeleton":!0,...Me,className:ub,children:tr("div",{className:mb,children:[tr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:v(er,"w-24")}),Y("div",{className:v(er,"w-24")}),Y("div",{className:v(er,"w-24")})]}),tr("div",{className:"space-y-2",children:[Y("div",{className:v(er,"w-full")}),Y("div",{className:v(er,"w-11/12")}),Y("div",{className:v(er,"w-5/6")})]})]})}),fb=e=>{e.target===e.currentTarget&&e.preventDefault()},bb="h-full w-full",Ql=eb(!1),Yl=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=no(ft),a=no(pt),i=no(to);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=Zl(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=$n(t,e),y=zn(t,e,o);return Y(fr.Provider,{value:c,children:Y(Ql.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||!y?!0:void 0,"aria-current":r!==null&&l?"true":void 0,tabIndex:r===null?-1:void 0,className:ob,style:s,onMouseDown:fb,children:y?n:Y("div",{...Me,className:bb})})})})},yb=/(<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(yb))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===ii))return t;return r+=e.slice(n),o(),t},Rb=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=no(Ql);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:db,children:o})},ql=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=zt();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:cb,children:n})},ed=Jl(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=U(),{toggleStar:i,toggleRead:s}=Ie(),l=ro(),c=ro(),y=ro(),h=ro(),R=Zl(()=>gb(t.content??null),[t.content]),T=de(t.employeeName),C=le(e.businessDate),u=k=>{k.currentTarget.focus({preventScroll:!0});let F=Ai(k.currentTarget);F!==null&&r(e.reportHubId,F)},g=async()=>{let k=!t.isStarred;try{await i(t.reportHubId,k,t.date)}catch{}},b=async()=>{let k=!t.isRead;try{await s(t.reportHubId,k,t.date)}catch{}},A=t.isStarred?o.starRemove:o.starAdd,_=t.isRead?o.markUnread:o.markRead,D=Et(t.sourceType,a),N=[c,...t.attachments.length>0?[y]:[],...D===void 0?[]:[h],l].join(" ");return tr("div",{"data-daily-report-card":!0,...Me,style:lb,className:ab,children:[Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),tr(Rb,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:N,onClick:u,children:[Y("span",{className:v(Ee,"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:C})})," ",Y("span",{className:v(Ee,"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:T})})]}),tr("div",{className:v(Na,"ml-auto"),children:[Y(rr,{id:y,count:t.attachments.length,label:o.attachments}),D?Y(jt,{id:h,config:D}):null,Y(ql,{label:A,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:g,children:Y(Gt,{filled:t.isStarred})}),Y(ql,{label:_,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(Qf,{className:fe.read}):Y(Yt,{})})]}),Y("div",{id:l,className:sb,children:R.length>0?R.map((k,F)=>Y("p",{className:"wrap-break-word line-clamp-1",children:k},F)):Y("p",{children:o.contentEmptyPreview})})]})});ed.displayName="ListReportCard";var Xl=(e,t)=>tb(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),ga=Jl(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=U(),{removeStaleItem:o}=Ie(),{report:a,error:i,isLoading:s,isRefetching:l}=Ct(e.reportHubId,e.businessDate),c=nb(!1);rb(()=>{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 y=Xl(r,e.reportHubId),h=Xl(r,e.reportHubId),R=(T,C)=>Y(Yl,{reportHubId:e.reportHubId,cursor:r,cardless:{label:le(e.businessDate),isBusy:C,focusTargetRef:y},children:T});return i?R(Y("div",{...Me,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?R(Y(pb,{}),!0):a?Y(Yl,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(ed,{item:e,report:a,onSelect:t,focusTargetRef:h})}):R(Y("div",{...Me,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)});ga.displayName="ListReportItem";import{Fragment as Nb,jsx as Le,jsxs as io}from"react/jsx-runtime";var ad={pointerDragInputs:en,inertiaOptions:Wt(!1),wheelSpeedMultiplier:Yr,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Tb={...ad,inertiaOptions:Wt(!0)},Eb=Object.freeze({value:360,unit:"pixels"}),nd=Object.freeze({value:160,unit:"pixels"}),xb=Object.freeze({value:520,unit:"pixels"}),Ib=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Cb=v("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",Z),Lb=v("relative w-full",$r),Ab=v(Ye,"relative isolate overflow-hidden"),od="daily-report-list",Db=()=>!1,Ra=e=>{let t=Mt(null),[r,n]=ao(null),o=on(t),{rowSlotHeight:a,remProbe:i}=jl(),s=cn(r),l=Qe(c=>(t.current=c,n(c),()=>{t.current=null,n(null)}),[]);return io("div",{ref:l,className:Wr,"data-testid":"daily-report-root",children:[i,o===null||a===null?null:Le(_b,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:a,reducedMotion:s})]})},_b=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,reducedMotion:c})=>{let[y]=ao(()=>a?.current??0),h=Mt(null),R=Mt(null),{labels:T}=U(),C=nn(),[u]=ao(un),g=Nl(),[b,A]=ao(!1);kr(()=>{if(typeof window>"u"||typeof ResizeObserver>"u")return;let d=i.current;if(!d)return;let m=new ResizeObserver(S=>{for(let L of S)if(L.target===d){let O=L.contentRect.width;A(O>0&&O<ai)}});return m.observe(d),()=>m.disconnect()},[i]);let _=g||b,D=Mt(null),N=e.length,k=Mt(null),F=Qe(d=>n(d),[n]),z=Qe(d=>d<N?e[d]:Xr,[e,N]),X=Qe(d=>{let m=z(d.visibleStartIndex);m.reportHubId>0&&u.setLabel(le(m.businessDate))},[z,u]),W=oo(()=>({kind:"uniform",rowHeight:l}),[l]),{cursor:B,containerProps:J,handleRangeChange:K,contentProps:oe,keyboardHelp:V,selection:$,settledSelection:ae,resolveSelectedIndex:ie,rememberSelection:P,focusAfterRemoval:ee}=Gn({items:e,selectedId:r,onSelect:F,containerRef:h,rootRef:i,handleRef:R,rowSizing:W,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:Db,onRangeChange:X}),{isMobileDetailOpen:Te,setIsMobileDetailOpen:He,isOverlayMounted:Ae,shouldShowOverlay:ge,handleOverlayClose:We,lastClosedItemIdRef:se,selectedItem:dt}=zl({isMobileLayout:_,selection:$,dailyReportItems:e,onSelectItem:n,rootRef:i}),et=oo(()=>({selected:$,settled:ae}),[$,ae]),Ge=Mt(e);rd(()=>{Ge.current=e},[e]);let Ke=jn({hostTestId:od,scrollContainerRef:h,handleRef:R,itemsRef:Ge});kr(()=>{let d=h.current,m=()=>{u.setWheelScrollActive(!0),D.current&&clearTimeout(D.current),D.current=window.setTimeout(()=>{u.setWheelScrollActive(!1),D.current=null},Jr)};return d?.addEventListener("wheel",m,{passive:!0}),()=>{d?.removeEventListener("wheel",m),D.current&&clearTimeout(D.current)}},[u]),kr(()=>{!N&&r!==null&&n(null)},[N,r,n]),kr(()=>{if(Te||se.current===null)return;let d=se.current;se.current=null;let m=ie(e,d);if(m===-1)return;let S=R.current;if(S!==null){let L=Er(S,m,e.length,W),O=L===null?"none":ol(L);O!=="none"&&S.scrollToIndex(m,{align:O})}B.requestFocus(d)},[Te,e,se,B,ie,W]),kr(()=>{N>0&&u.setLabel(le(e[0].businessDate))},[e,N,u]);let De=Qe((d,m)=>{d<=0||(P(d,m),n(d),_&&He(!0))},[_,n,He,P]),Fe=Qe(()=>l,[l]),tt=Mt(l);rd(()=>{let d=tt.current;tt.current=l;let m=R.current;if(d===l||m===null)return;let S=m.getScrollPosition();S>0&&m.scrollBy(S*l/d-S)},[l]);let Oe=Qe(d=>z(d).reportHubId,[z]),E=Qe((d,m)=>Le(ft.Provider,{value:m,children:Le(ga,{item:d,onSelect:De,cursor:B})},d.reportHubId),[De,B]),w=Qe(d=>{a&&(a.current=d);let m=h.current;m&&(m.toggleAttribute(kt,!0),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{m.toggleAttribute(kt,!1),k.current=null},150))},[a]),p=Qe(d=>Le(mn,{...d,store:u}),[u]),f=oo(()=>io("div",{ref:Ke,className:Ab,...J,children:[V,Le(pt.Provider,{value:N,children:Le(to.Provider,{value:l,children:Le(vb,{ref:R,itemCount:N,getItem:z,getItemKey:Oe,getItemHeight:Fe,viewportSize:s,initialScrollOffset:y,overscanCount:Zr,scrollBarOptions:{...Qr,renderThumbOverlay:p},behaviorOptions:c?Tb:ad,onRangeChange:K,onScroll:w,testId:od,className:Lb,locale:C.locale,labels:C.labels,contentProps:oe,children:E})})}),N===0&&Le("p",{className:Kr,children:T.listEmpty})]}),[Ke,J,N,z,Oe,Fe,s,l,c,y,p,K,w,V,oe,C.locale,C.labels,E,T.listEmpty]),x=oo(()=>io(hb,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Le(td,{id:"daily-report-list-panel",defaultSize:Eb,minSize:nd,maxSize:xb,contentOverflow:"hidden",className:"flex min-h-0",children:f}),Le(Sb,{id:"daily-report-list-handle",thickness:10,indicator:Ib,className:Cb,"aria-label":T.resizeHandle}),Le(td,{id:"daily-report-detail-panel",minSize:nd,contentOverflow:"hidden",className:wb,children:Le(Wl,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:ee})})]}),[f,T.resizeHandle,e,t,o,ee]);return io(Nb,{children:[_?Le("div",{className:Ye,children:f}):Le(Jn.Provider,{value:et,children:x}),Ae&&Le(Gl,{isOpen:ge,selectedItem:dt,onClose:We,autoMarkRead:_&&t,userId:o,onReportDeleted:ee})]})},wb=v("flex min-h-0 flex-1",Pt);import{useEffect as cd,useRef as jb}from"react";import Mb from"lucide-react/dist/esm/icons/plus.js";import kb from"lucide-react/dist/esm/icons/refresh-cw.js";import Pb from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as dd,useMemo as Hb,useRef as Sa,useState as va}from"react";import{useSearchParams as Fb}from"react-router";import*as Pr from"@radix-ui/react-switch";import*as sd from"react";import{jsx as id}from"react/jsx-runtime";var so=sd.forwardRef(({className:e,...t},r)=>id(Pr.Root,{className:v(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${ka} ${Ha} ${Z}`,e),...t,ref:r,children:id(Pr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Pa} ${Fa}`})}));so.displayName=Pr.Root.displayName;import{useSyncExternalStore as Ob}from"react";var ld=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=>Ob(e.subscribe,e.get,e.get);import{Fragment as Gb,jsx as te,jsxs as vt}from"react/jsx-runtime";var Bb="list",Ub=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},Vb=v(Ua,Ka,"ml-[8px] flex flex-wrap items-center gap-2"),Wb=({count:e})=>{let{labels:t}=U(),r=Ar(e);return te("span",{className:"tabular-nums",children:t.totalCount(r)})},Kb=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=ha(e);return te(Ra,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},$b=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=ha(e);return te(ca,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},zb=({tabItems:e,actions:t})=>{let[r,n]=va(Bb),{labels:o}=U();return vt(Nr,{value:r,onValueChange:a=>n(Ub(a)),className:v("@container/views",Ye),children:[vt("div",{className:v(Vb,$a[r]),children:[te(Or,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>te(Mr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>te(Xt,{value:a,className:v("mt-0",Ye),children:i},a))]})},Ta=({userId:e})=>{let[t,r]=va(!1),{labels:n,renderHeader:o,showDevControls:a}=U(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:y,clearCacheAndRefetch:h}=Ie(),[R]=Fb(),T=Sa(0),C=Sa({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[u]=va(()=>ld(c.length===0?null:c[0].reportHubId)),g=Sa(!1);dd(()=>{!g.current&&c.length>0&&(g.current=!0,u.get()===null&&u.set(c[0].reportHubId))},[c,u]);let b=async()=>{await y()},A=async()=>{await h()},_=async()=>{let F=R.get("businessDate")||go(),z=await l(F);u.set(z)};dd(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let D=k=>{r(k),localStorage.setItem("daily-report-auto-read",String(k))},N=Hb(()=>[{value:"list",label:n.tabList,content:te(Kb,{selectionStore:u,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:T})},{value:"tree",label:n.tabTree,content:te("div",{className:v("flex flex-1 items-center justify-center",Ht),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:te($b,{selectionStore:u,dailyReportItems:c,userId:e,scrollRestoreRef:C})}],[c,t,e,n,u]);return vt(Gb,{children:[o({title:n.title,annotation:vt("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[te(Dr,{}),te(Wb,{count:c.length}),te("span",{children:n.debounce(Bt)})]})}),te("div",{className:v(Ye,Wa),children:te("div",{className:v(Ye,"mx-auto w-full max-w-6xl px-[4px] pt-[4px]"),children:te(zb,{tabItems:N,actions:vt("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[vt(it,{size:"sm",onClick:_,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:[te(Mb,{className:"h-3 w-3"}),te("span",{children:n.createReport})]}),a&&vt("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:[te("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),te("div",{className:"flex items-center",title:n.devSseToggle,children:te(so,{id:"sse-mode",checked:i,onCheckedChange:s})}),te(it,{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:te(Pb,{className:"size-3"})}),te(it,{variant:"ghost",size:"icon",onClick:A,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:te(kb,{className:"size-3"})})]}),vt("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[te(so,{id:"auto-read-mode",checked:t,onCheckedChange:D}),te(vr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as ud,jsx as ye,jsxs as lo}from"react/jsx-runtime";var Yb=()=>{let{labels:e,renderHeader:t}=U();return lo(ud,{children:[t({title:e.title,annotation:ye("span",{className:"font-bold text-red-500",children:e.loadErrorBadge})}),ye("div",{className:"h-full bg-slate-50 p-2",children:ye("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:lo("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 border-solid bg-white p-[15px] text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[ye("p",{className:"font-medium text-red-600",children:e.loadError}),ye("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Rn(),className:v("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",Z),children:e.reload})]})})})]})},qb=()=>{let{labels:e,renderHeader:t}=U();return lo(ud,{children:[t({title:e.title,annotation:lo("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[ye(Dr,{}),ye("span",{children:e.totalCountLoading}),ye("span",{children:e.debounce(Bt)})]})}),ye("div",{className:"h-full bg-slate-50 p-2",children:ye("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:ye("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 border-solid bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:e.loadingIds})})})]})},Xb=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=U(),o=nt(),a=jb(n);a.current=n,cd(()=>{dr({apiBasePath:r,userKey:t??null})},[r,t]),cd(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return ye(Bo,{children:ye(Wo,{user:e,initialItems:o.items,userId:t,children:i?ye(Ta,{userId:t}):o.phase==="failed"?ye(Yb,{}):ye(qb,{})},t??"anonymous")})},Jb=({config:e,...t})=>ye(yo,{config:e,children:ye(Xb,{...t})});var Zb=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:l,nextUrl:c,text:y})=>{if(!n)return!1;if(!(r.pathname===c.pathname&&r.search===c.search&&r.hash===c.hash))return n;if(a){let T=a.get("intent");if(T==="toggleRead"||T==="toggleStar"||T==="addComment"||T==="deleteComment"||T==="create"||T==="update"||T==="publish"||T==="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||y!==void 0?n:!1},Qb=e=>{let t=async r=>{ko();let n=await r.serverLoader(),o=n.userId;return Mo({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{Ja as DAILY_REPORT_LABEL_CATALOGS,uo as DAILY_REPORT_LABEL_KEYS,Bd as DEFAULT_ITEM_HEIGHT,Wo as DailyReportActionProvider,rr as DailyReportAttachmentIndicator,yo as DailyReportConfigProvider,ca as DailyReportDetailList,Bo as DailyReportErrorProvider,lr as DailyReportIdsStreamClient,Dr as DailyReportIdsStreamStatus,Ra as DailyReportList,Jb as DailyReportPage,Ta as DailyReportResolvedContent,si as TAP_SCROLL_CIRCLE_OPTIONS,Mo as bootstrapDailyReportIdsStreamSession,Qb as createDailyReportClientLoader,Zb as dailyReportShouldRevalidate,nr as defaultDailyReportClientConfig,dr as ensureDailyReportIdsStreamSession,ko as primeDailyReportIdsStreamSession,fo as resolveDailyReportLabels,Et as resolveSourceTypeConfig,hn as resyncDailyReportIdsStream,Ie as useDailyReportActionContext,ur as useDailyReportComments,U as useDailyReportConfig,Ct as useDailyReportDetail,nt as useDailyReportIdsStream,To as useDailyReportPrefetch,Fo as useDailyReportSseConnection};
5
+ `).replace(/<[^>]+>/g,""):null,[e]),J=async O=>{try{await T(O.reportHubId,!O.isStarred,O.date)}catch{}},K=async O=>{if(confirm(b.confirmDelete)){try{await f(O.reportHubId,O.date)}catch{alert(b.deleteFailed);return}R(O.reportHubId)}};if(n)return M("p",{className:"text-red-500",children:b.reportLoadFailed(o.reportHubId)});let U=!e,le=!!(c&&e?.userId===c),oe=_.length>0;return ze("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:d,children:[ze("div",{className:"flex items-start gap-2",children:[M("dl",{className:"m-0 flex min-w-0 flex-1",children:M(se,{label:b.subject,classNames:Tf,children:U?M(Qt,{className:"w-3/4"}):M("span",{className:"text-sm",children:ie(e?.subject)})})}),!U&&e&&ze("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[M("button",{type:"button",onClick:()=>J(e),className:De,title:e.isStarred?b.starRemove:b.starAdd,"aria-label":e.isStarred?b.starRemove:b.starAdd,"data-detail-star-button":e.reportHubId,children:M(qt,{filled:e.isStarred})}),M("button",{type:"button",onClick:()=>G(e,!1),className:De,title:e.isRead?b.markUnread:b.markRead,"aria-label":e.isRead?b.markUnread:b.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?M(yf,{className:be.read}):M(Xt,{})}),d&&M("button",{ref:g,type:"button",onClick:d,"data-detail-edit-button":e.reportHubId,className:De,title:b.edit,"aria-label":b.edit,children:M(gf,{className:be.edit})}),le&&M("button",{type:"button",onClick:()=>K(e),"data-detail-delete-button":e.reportHubId,className:De,title:b.deleteReport,"aria-label":b.deleteReport,children:M(Rf,{className:be.delete})})]})]}),M("dl",{className:"m-0",children:M(se,{label:b.customer,classNames:zl,children:U?M(Qt,{className:"w-1/2"}):M("span",{className:"text-sm",children:ie(e?.customerName)})})}),ze("div",{className:"flex flex-col gap-2",children:[M(Pe,{level:D,className:nt,children:b.content}),M("div",{className:E("min-h-22",Kr),children:U?ze("div",{className:"space-y-2",children:[M(Qt,{className:"w-full"}),M(Qt,{className:"w-11/12"}),M(Qt,{className:"w-4/5"})]}):W?M("div",{className:"whitespace-pre-wrap",children:W}):M("p",{className:"text-slate-500 dark:text-slate-400",children:b.contentEmpty})})]}),M("dl",{className:"m-0",children:M(se,{label:b.visitTime,classNames:zl,children:U?M(Qt,{className:"w-1/3"}):ze("span",{className:"text-sm",children:[ie(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",ie(e?.visitTimeTo)]})})}),e&&M(An,{attachments:e.attachments}),e&&ze("div",{...On,className:"flex flex-col gap-2 border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:[M(Pe,{level:D,tabIndex:-1,...Mn,className:kn,children:b.comments}),oe&&M(Pn,{comments:_,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:k,pendingDeleteId:V,onPendingDeleteIdChange:H,resolvedIdMap:j}),B&&M(Hn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:Z})]})]})};import{jsx as Mt,jsxs as Xl}from"react/jsx-runtime";var Vf="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]",Wf={right:"var(--aqdr-overlay-right, 0px)"},Kf="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",$f="relative ml-auto flex h-full w-full max-w-full touch-none bg-white shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out dark:bg-slate-900",zf=E("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",X),Gf=50,Jl=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=no(!1),[l,c]=no(!1),d=Ze(null),g=Ze(null),R=Ze(null),T=Ze(e),x=Ze(!0),f=Or(r,t),h=ro(()=>{let _=o.current;if(_===null)return;let N=_.ownerDocument.body;R.current={body:N,overflow:N.style.overflow},N.style.overflow="hidden"},[o]),b=ro(()=>{let _=R.current;_!==null&&(_.body.style.overflow=_.overflow,R.current=null)},[]);tr(()=>{if(x.current){x.current=!1,T.current=e;return}let _=!T.current;T.current=e,_&&e&&a!==null?s(!0):!e&&i&&(g.current=a,s(!1),b())},[e,a,i,b]);let A=e&&i&&f!==null;tr(()=>{if(A)c(!0);else{let _=setTimeout(()=>c(!1),300);return()=>clearTimeout(_)}},[A]),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?h():b(),b},[e,i,a,h,b]),tr(()=>{let _=()=>{d.current&&(g.current=a,d.current=null,s(!1),n(null))};return window.addEventListener("popstate",_),()=>window.removeEventListener("popstate",_)},[a,n]);let D=ro(()=>{e&&(g.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:A,handleOverlayClose:D,lastClosedItemIdRef:g,selectedItem:f}},Zl=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=F(),s=Ze(null),l=Ea(),c=Ea(),[d,g]=no(va),R=Pf(),T=Ea(),x=Ze(!1),f=Ze(e),h=Ze(null),[b]=no(()=>Sa(e)),{isBlocked:A,requestBlock:D,reset:_}=Hf(),N=Uf(e,t),{overlayRef:k,overlayStyle:V,attemptClose:H,isSwiping:j}=Ff({isOpen:e,onClose:r,isCloseBlocked:ro(()=>A,[A]),skipWhenTextSelected:!0}),G=Ze(H);Yl(()=>{G.current=H,f.current=e,b.set(e)},[H,e,b]),tr(()=>{if(e)return R({id:T,onEscape:K=>Er(K)&&G.current()})},[e,R,T]),Yl(()=>{let K=s.current;if(K===null)return;if(e){if(x.current)return;K.showModal(),x.current=!0,K.ownerDocument.getElementById(l)?.focus();return}if(!x.current)return;x.current=!1;let U=we(K);U!==null&&K.contains(U)&&_o(U)&&U.blur(),K.close()},[e,l]),tr(()=>{e||_()},[e,_]);let B=Bf(()=>H()),Z=K=>{let U=Dn(K);if(Er(U)){H()&&K.preventDefault();return}if(U.key==="Escape"){h.current=K.timeStamp;return}let le=ks(U,K.currentTarget);le!==null&&(K.preventDefault(),le.kind==="wrap"&&le.element.focus())},W=K=>{K.preventDefault();let U=h.current;h.current=null,!(U!==null&&K.timeStamp-U<=Gf)&&G.current()},J=K=>{let U=K.currentTarget;U.open||!f.current||(x.current=!1,!G.current()&&(U.showModal(),x.current=!0))};return N?Xl("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:E(Vf,e&&!j?"pointer-events-auto":"pointer-events-none"),style:Wf,inert:!e,onKeyDown:Z,onCancel:W,onClose:J,children:[Mt("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:E(Kf,e?"opacity-100":"opacity-0"),...B}),Mt("div",{ref:k,"data-daily-report-overlay-panel":"",className:E($f,e?"pointer-events-auto":"pointer-events-none"),style:V,children:Xl("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Mt(kf.Provider,{value:{isBlocked:A,requestBlock:D},children:Mt("div",{"data-testid":"daily-report-side-pane","data-report-id":N.reportHubId,"data-displayed-report-id":N.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Mt(to,{item:N,headingId:l,authorId:c,activeTab:d,onActiveTabChange:g,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},N.reportHubId)})}),Mt("div",{className:"flex justify-start",children:Mt("button",{type:"button","data-overlay-interactive":"true",className:zf,onClick:()=>H(),children:i.close})})]})})]}):null};import ib from"lucide-react/dist/esm/icons/check.js";import{createContext as sb,memo as nd,useCallback as lb,useContext as io,useEffect as db,useId as ao,useMemo as od,useRef as cb}from"react";import{createContext as jf,createElement as qf,useLayoutEffect as Yf,useMemo as Xf,useRef as Jf,useState as Zf}from"react";var Qf=6.75,eb=4,tb=1e-6,rb=e=>Math.ceil(2*Ht+2*ka+eb+Qf*e-tb),oo=jf(null),nb="data-daily-report-root-font-size-probe",ob={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},ab=e=>{let t=ot(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])},Ql=()=>{let e=Jf(null),[t,r]=Zf(null);Yf(()=>{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=rb(ab(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Xf(()=>qf("div",{ref:e,"aria-hidden":!0,[nb]:"",style:ob}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as nr}from"react/jsx-runtime";var ub=E(Ft,Vr,Wr,Ur),mb=E("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",ut,$r,Ma),pb="min-w-24",fb="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",bb={touchAction:"manipulation"},yb=E("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",pb),gb=E("relative z-10",De),Rb=E("flex h-full",ut),hb="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",rr="h-4 rounded bg-slate-200 dark:bg-slate-700",Sb=()=>Y("div",{"data-skeleton":!0,...ke,className:Rb,children:nr("div",{className:hb,children:[nr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:E(rr,"w-24")}),Y("div",{className:E(rr,"w-24")}),Y("div",{className:E(rr,"w-24")})]}),nr("div",{className:"space-y-2",children:[Y("div",{className:E(rr,"w-full")}),Y("div",{className:E(rr,"w-11/12")}),Y("div",{className:E(rr,"w-5/6")})]})]})}),vb=e=>{e.target===e.currentTarget&&e.preventDefault()},Eb="h-full w-full",ad=sb(!1),ed=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=io(ft),a=io(pt),i=io(oo);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=od(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=jn(t,e),d=qn(t,e,o);return Y(yr.Provider,{value:c,children:Y(ad.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:ub,style:s,onMouseDown:vb,children:d?n:Y("div",{...ke,className:Eb})})})})},Tb=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,xb=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(Tb))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===mi))return t;return r+=e.slice(n),o(),t},Ib=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=io(ad);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:yb,children:o})},td=({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:gb,children:n})},id=nd(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=F(),{toggleStar:i,toggleRead:s}=Ce(),l=ao(),c=ao(),d=ao(),g=ao(),R=od(()=>xb(t.content??null),[t.content]),T=ie(t.employeeName),x=ae(e.businessDate),f=k=>{k.currentTarget.focus({preventScroll:!0});let V=Oi(k.currentTarget);V!==null&&r(e.reportHubId,V)},h=async()=>{let k=!t.isStarred;try{await i(t.reportHubId,k,t.date)}catch{}},b=async()=>{let k=!t.isRead;try{await s(t.reportHubId,k,t.date)}catch{}},A=t.isStarred?o.starRemove:o.starAdd,D=t.isRead?o.markUnread:o.markRead,_=Ct(t.sourceType,a),N=[c,...t.attachments.length>0?[d]:[],..._===void 0?[]:[g],l].join(" ");return nr("div",{"data-daily-report-card":!0,...ke,style:bb,className:mb,children:[Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),nr(Ib,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:N,onClick:f,children:[Y("span",{className:E(xe,"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:x})})," ",Y("span",{className:E(xe,"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:T})})]}),nr("div",{className:E(Ha,"ml-auto"),children:[Y(or,{id:d,count:t.attachments.length,label:o.attachments}),_?Y(Yt,{id:g,config:_}):null,Y(td,{label:A,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:h,children:Y(qt,{filled:t.isStarred})}),Y(td,{label:D,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(ib,{className:be.read}):Y(Xt,{})})]}),Y("div",{id:l,className:fb,children:R.length>0?R.map((k,V)=>Y("p",{className:"wrap-break-word line-clamp-1",children:k},V)):Y("p",{children:o.contentEmptyPreview})})]})});id.displayName="ListReportCard";var rd=(e,t)=>lb(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Ta=nd(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=F(),{removeStaleItem:o}=Ce(),{report:a,error:i,isLoading:s,isRefetching:l}=At(e.reportHubId,e.businessDate),c=cb(!1);db(()=>{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=rd(r,e.reportHubId),g=rd(r,e.reportHubId),R=(T,x)=>Y(ed,{reportHubId:e.reportHubId,cursor:r,cardless:{label:ae(e.businessDate),isBusy:x,focusTargetRef:d},children:T});return i?R(Y("div",{...ke,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?R(Y(Sb,{}),!0):a?Y(ed,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(id,{item:e,report:a,onSelect:t,focusTargetRef:g})}):R(Y("div",{...ke,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)});Ta.displayName="ListReportItem";import{Fragment as Ub,jsx as Ne,jsxs as co}from"react/jsx-runtime";var ud={pointerDragInputs:nn,inertiaOptions:$t(!1),wheelSpeedMultiplier:Jr,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Db={...ud,inertiaOptions:$t(!0)},_b=Object.freeze({value:360,unit:"pixels"}),dd=Object.freeze({value:160,unit:"pixels"}),wb=Object.freeze({value:520,unit:"pixels"}),Nb=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Ob=E("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",X),Mb=E("relative w-full",jr,Gr),kb=E(qe,"relative isolate overflow-hidden"),cd="daily-report-list",Pb=()=>!1,xa=e=>{let t=kt(null),[r,n]=lo(null),o=un(t),{rowSlotHeight:a,remProbe:i}=Ql(),s=pn(r),l=Qe(c=>(t.current=c,n(c),()=>{t.current=null,n(null)}),[]);return co("div",{ref:l,className:zr,"data-testid":"daily-report-root",children:[i,o===null||a===null?null:Ne(Hb,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:a,reducedMotion:s})]})},Hb=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,reducedMotion:c})=>{let[d]=lo(()=>a?.current??0),g=kt(null),R=kt(null),{labels:T}=F(),x=sn(),[f]=lo(fn),h=Fl(),[b,A]=lo(!1);Fr(()=>{if(typeof window>"u"||typeof ResizeObserver>"u")return;let p=i.current;if(!p)return;let S=new ResizeObserver(L=>{for(let w of L)if(w.target===p){let P=w.contentRect.width;A(P>0&&P<ui)}});return S.observe(p),()=>S.disconnect()},[i]);let D=h||b,_=kt(null),N=e.length,k=kt(null),V=Qe(p=>n(p),[n]),H=Qe(p=>p<N?e[p]:Qr,[e,N]),j=Qe(p=>{let S=H(p.visibleStartIndex);S.reportHubId>0&&f.setLabel(ae(S.businessDate))},[H,f]),G=so(()=>({kind:"uniform",rowHeight:l}),[l]),{cursor:B,containerProps:Z,handleRangeChange:W,scroller:J,contentProps:K,keyboardHelp:U,selection:le,settledSelection:oe,resolveSelectedIndex:O,rememberSelection:te,focusAfterRemoval:me}=Yn({items:e,selectedId:r,onSelect:V,containerRef:g,rootRef:i,handleRef:R,rowSizing:G,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:Pb,onRangeChange:j}),{isMobileDetailOpen:Ge,setIsMobileDetailOpen:We,isOverlayMounted:he,shouldShowOverlay:Se,handleOverlayClose:ce,lastClosedItemIdRef:Oe,selectedItem:et}=Jl({isMobileLayout:D,selection:le,dailyReportItems:e,onSelectItem:n,rootRef:i}),tt=so(()=>({selected:le,settled:oe}),[le,oe]),Ke=kt(e);ld(()=>{Ke.current=e},[e]);let Ae=Xn({hostTestId:cd,scrollContainerRef:g,handleRef:R,itemsRef:Ke});Fr(()=>{let p=g.current,S=()=>{f.setWheelScrollActive(!0),_.current&&clearTimeout(_.current),_.current=window.setTimeout(()=>{f.setWheelScrollActive(!1),_.current=null},en)};return p?.addEventListener("wheel",S,{passive:!0}),()=>{p?.removeEventListener("wheel",S),_.current&&clearTimeout(_.current)}},[f]),Fr(()=>{!N&&r!==null&&n(null)},[N,r,n]),Fr(()=>{if(Ge||Oe.current===null)return;let p=Oe.current;Oe.current=null;let S=O(e,p);if(S===-1)return;let L=R.current;if(L!==null){let w=Ir(L,S,e.length,G),P=w===null?"none":dl(w);P!=="none"&&J.toIndex(S,{align:P})}B.requestFocus(p)},[Ge,e,Oe,B,O,G,J]),Fr(()=>{N>0&&f.setLabel(ae(e[0].businessDate))},[e,N,f]);let je=Qe((p,S)=>{p<=0||(te(p,S),n(p),D&&We(!0))},[D,n,We,te]),Fe=Qe(()=>l,[l]),Me=kt(l);ld(()=>{let p=Me.current;Me.current=l;let S=R.current;if(p===l||S===null)return;let L=S.getScrollPosition();L>0&&J.by(L*l/p-L)},[l,J]);let rt=Qe(p=>H(p).reportHubId,[H]),I=Qe((p,S)=>Ne(ft.Provider,{value:S,children:Ne(Ta,{item:p,onSelect:je,cursor:B})},p.reportHubId),[je,B]),y=Qe(p=>{a&&(a.current=p);let S=g.current;S&&(S.toggleAttribute(Pt,!0),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{S.toggleAttribute(Pt,!1),k.current=null},150))},[a]),m=Qe(p=>Ne(bn,{...p,store:f}),[f]),v=so(()=>co("div",{ref:Ae,className:kb,...Z,children:[U,Ne(pt.Provider,{value:N,children:Ne(oo.Provider,{value:l,children:Ne(Ab,{ref:R,itemCount:N,getItem:H,getItemKey:rt,getItemHeight:Fe,viewportSize:s,initialScrollOffset:d,overscanCount:tn,scrollBarOptions:{...rn,renderThumbOverlay:m},behaviorOptions:c?Db:ud,onRangeChange:W,onScroll:y,testId:cd,className:Mb,locale:x.locale,labels:x.labels,contentProps:K,children:I})})})]}),[Ae,Z,N,H,rt,Fe,s,l,c,d,m,W,y,U,K,x.locale,x.labels,I]),u=so(()=>co(Cb,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Ne(sd,{id:"daily-report-list-panel",defaultSize:_b,minSize:dd,maxSize:wb,contentOverflow:"hidden",className:Fb,children:v}),Ne(Lb,{id:"daily-report-list-handle",thickness:10,indicator:Nb,className:Ob,"aria-label":T.resizeHandle}),Ne(sd,{id:"daily-report-detail-panel",minSize:dd,contentOverflow:"hidden",className:Bb,children:Ne(ql,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:me})})]}),[v,T.resizeHandle,e,t,o,me]);return co(Ub,{children:[D?Ne("div",{className:qe,children:v}):Ne(eo.Provider,{value:tt,children:u}),he&&Ne(Zl,{isOpen:Se,selectedItem:et,onClose:ce,autoMarkRead:D&&t,userId:o,onReportDeleted:me})]})},Fb=E("flex min-h-0",_a),Bb=E("flex min-h-0 flex-1",Ft);import{useEffect as yd,useRef as ty}from"react";import Wb from"lucide-react/dist/esm/icons/plus.js";import Kb from"lucide-react/dist/esm/icons/refresh-cw.js";import $b from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as bd,useMemo as zb,useRef as Ca,useState as La}from"react";import{useSearchParams as Gb}from"react-router";import*as Br from"@radix-ui/react-switch";import*as pd from"react";import{jsx as md}from"react/jsx-runtime";var uo=pd.forwardRef(({className:e,...t},r)=>md(Br.Root,{className:E(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${Ua} ${Wa} ${X}`,e),...t,ref:r,children:md(Br.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Va} ${Ka}`})}));uo.displayName=Br.Root.displayName;import{useSyncExternalStore as Vb}from"react";var fd=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)})}},Ia=e=>Vb(e.subscribe,e.get,e.get);import{Fragment as ey,jsx as ee,jsxs as Et}from"react/jsx-runtime";var jb="list",qb=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},Yb=E(za,Ya,"ml-[8px] flex flex-wrap items-center gap-2"),Xb=({count:e})=>{let{labels:t}=F(),r=wr(e);return ee("span",{className:"tabular-nums",children:t.totalCount(r)})},Jb=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=Ia(e);return ee(xa,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},Zb=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=Ia(e);return ee(ya,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},Qb=({tabItems:e,actions:t})=>{let[r,n]=La(jb),{labels:o}=F();return Et(kr,{value:r,onValueChange:a=>n(qb(a)),className:E("@container/views",qe),children:[Et("div",{className:E(Yb,Xa[r]),children:[ee(Pr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>ee(Hr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>ee(Zt,{value:a,className:E("mt-0",qe),children:i},a))]})},Aa=({userId:e})=>{let[t,r]=La(!1),{labels:n,renderHeader:o,showDevControls:a}=F(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:d,clearCacheAndRefetch:g}=Ce(),[R]=Gb(),T=Ca(0),x=Ca({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[f]=La(()=>fd(c.length===0?null:c[0].reportHubId)),h=Ca(!1);bd(()=>{!h.current&&c.length>0&&(h.current=!0,f.get()===null&&f.set(c[0].reportHubId))},[c,f]);let b=async()=>{await d()},A=async()=>{await g()},D=async()=>{let V=R.get("businessDate")||yo(),H=await l(V);f.set(H)};bd(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let _=k=>{r(k),localStorage.setItem("daily-report-auto-read",String(k))},N=zb(()=>[{value:"list",label:n.tabList,content:ee(Jb,{selectionStore:f,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:T})},{value:"tree",label:n.tabTree,content:ee("div",{className:E("flex flex-1 items-center justify-center",Bt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:ee(Zb,{selectionStore:f,dailyReportItems:c,userId:e,scrollRestoreRef:x})}],[c,t,e,n,f]);return Et(ey,{children:[o({title:n.title,annotation:Et("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[ee(Nr,{}),ee(Xb,{count:c.length}),ee("span",{children:n.debounce(Vt)})]})}),ee("div",{className:E(qe,qa),children:ee("div",{className:E(qe,"mx-auto w-full max-w-6xl px-[4px] pt-[4px]",ja),children:ee(Qb,{tabItems:N,actions:Et("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[Et(lt,{size:"sm",onClick:D,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:[ee(Wb,{className:"h-3 w-3"}),ee("span",{children:n.createReport})]}),a&&Et("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:[ee("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),ee("div",{className:"flex items-center",title:n.devSseToggle,children:ee(uo,{id:"sse-mode",checked:i,onCheckedChange:s})}),ee(lt,{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:ee($b,{className:"size-3"})}),ee(lt,{variant:"ghost",size:"icon",onClick:A,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:ee(Kb,{className:"size-3"})})]}),Et("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[ee(uo,{id:"auto-read-mode",checked:t,onCheckedChange:_}),ee(Tr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as gd,jsx as ge,jsxs as mo}from"react/jsx-runtime";var ry=()=>{let{labels:e,renderHeader:t}=F();return mo(gd,{children:[t({title:e.title,annotation:ge("span",{className:"font-bold text-red-500",children:e.loadErrorBadge})}),ge("div",{className:"h-full bg-slate-50 p-2",children:ge("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:mo("div",{className:"flex h-full flex-1 flex-col items-center justify-center gap-4 rounded-lg border border-red-200 border-solid bg-white p-[15px] text-slate-500 shadow-sm dark:border-red-900 dark:bg-slate-900/70 dark:text-slate-400",children:[ge("p",{className:"font-medium text-red-600",children:e.loadError}),ge("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>vn(),className:E("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",X),children:e.reload})]})})})]})},ny=()=>{let{labels:e,renderHeader:t}=F();return mo(gd,{children:[t({title:e.title,annotation:mo("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[ge(Nr,{}),ge("span",{children:e.totalCountLoading}),ge("span",{children:e.debounce(Vt)})]})}),ge("div",{className:"h-full bg-slate-50 p-2",children:ge("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-1 flex-col gap-4",children:ge("div",{className:"flex h-full flex-1 items-center justify-center rounded-lg border border-slate-200 border-solid bg-white text-slate-500 shadow-sm dark:border-slate-700 dark:bg-slate-900/70 dark:text-slate-300",children:e.loadingIds})})})]})},oy=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=F(),o=at(),a=ty(n);a.current=n,yd(()=>{ur({apiBasePath:r,userKey:t??null})},[r,t]),yd(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return ge($o,{children:ge(jo,{user:e,initialItems:o.items,userId:t,children:i?ge(Aa,{userId:t}):o.phase==="failed"?ge(ry,{}):ge(ny,{})},t??"anonymous")})},ay=({config:e,...t})=>ge(Eo,{config:e,children:ge(oy,{...t})});var iy=({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 T=a.get("intent");if(T==="toggleRead"||T==="toggleStar"||T==="addComment"||T==="deleteComment"||T==="create"||T==="update"||T==="publish"||T==="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},sy=e=>{let t=async r=>{Uo();let n=await r.serverLoader(),o=n.userId;return Bo({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{oi as DAILY_REPORT_LABEL_CATALOGS,go as DAILY_REPORT_LABEL_KEYS,jo as DailyReportActionProvider,or as DailyReportAttachmentIndicator,Eo as DailyReportConfigProvider,ya as DailyReportDetailList,$o as DailyReportErrorProvider,cr as DailyReportIdsStreamClient,Nr as DailyReportIdsStreamStatus,xa as DailyReportList,ay as DailyReportPage,Aa as DailyReportResolvedContent,Bo as bootstrapDailyReportIdsStreamSession,sy as createDailyReportClientLoader,iy as dailyReportShouldRevalidate,ar as defaultDailyReportClientConfig,ur as ensureDailyReportIdsStreamSession,Uo as primeDailyReportIdsStreamSession,So as resolveDailyReportLabels,Ct as resolveSourceTypeConfig,En as resyncDailyReportIdsStream,Ce as useDailyReportActionContext,pr as useDailyReportComments,F as useDailyReportConfig,At as useDailyReportDetail,at as useDailyReportIdsStream,Lo as useDailyReportPrefetch,Ko as useDailyReportSseConnection};