@aiquants/daily-report 0.27.0 → 0.29.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,6 @@
1
- import Od from"lucide-react/dist/esm/icons/paperclip.js";var Dd="data-daily-report-row-surface",Pe={[Dd]:""},Ft="data-daily-report-scrolling",Bt=8,ir="h-[calc-size(auto,round(up,size,4px))]",pt="p-[8px]",Pa="pr-[8px]",$r="contain-size contain-layout contain-style",Ha="contain-strict",J="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Fa="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",yo="scrollbar-thin [scrollbar-gutter:stable]",go=`-m-[4px] overflow-hidden p-[4px] ${yo}`,Ba="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",zr="rounded-[calc(var(--radius-2xl)+8px)]",Gr="outline-none [&:focus-visible>:where([data-daily-report-row-surface])]:outline-2 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-offset-4 [&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-600 dark:[&:focus-visible>:where([data-daily-report-row-surface])]:outline-blue-400 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-2 [&[aria-current=true]>:where([data-daily-report-row-surface])]:ring-blue-500 [&[aria-current=true]>:where([data-daily-report-row-surface])]:shadow-transparent forced-colors:[&[aria-current=true]]:outline-2 forced-colors:[&[aria-current=true]]:outline-solid forced-colors:[&[aria-current=true]]:-outline-offset-8 forced-colors:[&[aria-current=true]]:outline-[Highlight] forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-2 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-solid forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:-outline-offset-8 forced-colors:has-[>[data-daily-report-card]>[aria-current=true]]:outline-[Highlight]",Ua="has-[>[data-daily-report-button]:focus-visible]:outline-2 has-[>[data-daily-report-button]:focus-visible]:outline-offset-4 has-[>[data-daily-report-button]:focus-visible]:outline-blue-600 dark:has-[>[data-daily-report-button]:focus-visible]:outline-blue-400 has-[>[aria-current=true]]:ring-2 has-[>[aria-current=true]]:ring-blue-500 has-[>[aria-current=true]]:shadow-transparent",Xe="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",Va=16,Ut="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",jr="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",Yr="motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:-translate-y-[2px] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",De=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${J}`,Wa="-mx-1",Ka="flex items-center gap-1",Le="inline-flex h-6 items-center rounded-full px-3",$a="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",za="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",mt="size-4",ge={starOff:`${mt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${mt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${mt} text-blue-600 dark:text-blue-400`,delete:`${mt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${mt} text-red-600 dark:text-red-400`,edit:`${mt} text-slate-500 dark:text-slate-400`},Ga="h-6 w-10 border-4 border-solid",ja="size-4 data-[state=checked]:translate-x-4",Ya="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]",qa="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var Xa="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",Za="rounded-xl border border-solid p-[3px]",Ja="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",wd="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",Nd="bg-slate-50 dark:bg-slate-950",Be="flex min-h-0 flex-1 flex-col",sr=`${Be} ${Nd}`,lr=`${Be} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${wd}`,dr="text-red-700 dark:text-red-400",Qa="bg-white dark:bg-slate-900",qr="flex min-h-0 flex-1 flex-col overflow-clip contain-size",Xr="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",ei="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",ti={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},It="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",st=`m-0 ${It}`,Zr="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as ri,jsxs as kd}from"react/jsx-runtime";var Md=2,cr=({id:e,count:t,label:r})=>t<=0?null:kd("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:[ri(Od,{className:mt,"aria-hidden":"true"}),t>=Md&&ri("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as Rf}from"@aiquants/virtualscroll";import{useCallback as Ce,useEffect as Tt,useLayoutEffect as hf,useMemo as va,useRef as Oe,useState as Jn}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},se=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?se(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let l=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),d=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${c}:${d}`}return`${o}-${a}-${i}`};import{useCallback as ic,useEffect as hi,useRef as sc,useState as lc}from"react";var Pd=/^\d{4}-\d{2}-\d{2}$/,Hd=/^\d{4}\/\d{2}\/\d{2}$/,Jr=e=>e<10?`0${e}`:`${e}`,ni=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}`},Ro=(e=new Date)=>Number.isNaN(e.getTime())?Ro(new Date):`${e.getFullYear()}-${Jr(e.getMonth()+1)}-${Jr(e.getDate())}`,Lt=e=>{if(e==null)return null;if(e instanceof Date)return ni(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 ni(r)};var Vt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as zd}from"@aiquants/virtualscroll";import{createContext as Gd,useContext as jd,useMemo as Yd}from"react";var Fd=e=>typeof e=="string"?JSON.stringify(e):typeof e=="number"||typeof e=="boolean"||e===null||e===void 0?String(e):Array.isArray(e)?"array":typeof e,Te=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Fd(r)}`),oi=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),Qr=(e,t,r)=>Te(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as Bd,resolveVirtualScrollLocale as Ud,VIRTUAL_SCROLL_LABEL_CATALOGS as ai,VIRTUAL_SCROLL_LABEL_KEYS as vo}from"@aiquants/virtualscroll";var si=["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"],li=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],ho=[...vo,...si,...li];var Vd=Object.freeze({en:"en-US",ja:"ja-JP"}),we=(e,t)=>t.toLocaleString(Vd[e]),Wd=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"}),Kd=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"}),So=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${we("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${we("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${we("en",e)} / ${we("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${we("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${we("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${we("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${Kd[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${we("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} / ${we("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${we("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Wd[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":""}`})}),di=Object.freeze({en:Object.freeze({...ai.en,...So.en}),ja:Object.freeze({...ai.ja,...So.ja})}),$d=e=>{let t={},r=!1;for(let n of vo){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},ii=(e,t,r)=>{e[t]=r},Eo=(e,t)=>{let r=Ud(e);if(t===void 0)return di[r];if(t===null||typeof t!="object")throw Te("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw Te("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!ho.includes(i))throw Qr("labels key",i,ho);let a={...Bd(r,$d(t)),...So[r]};for(let i of si){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw Te(`labels.${i}`,"a non-blank string",s);ii(a,i,s)}}for(let i of li){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw Te(`labels.${i}`,"a function",s);ii(a,i,s)}}return Object.freeze(a)},ci=e=>{let t={};for(let r of vo)t[r]=e[r];return Object.freeze(t)};import{jsx as To,jsxs as rc}from"react/jsx-runtime";var qd=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),Xd=({title:e,annotation:t})=>rc("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[To("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?To("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),ur=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:Xd,showDevControls:!1,headingLevel:3}),ui=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var Zd=e=>{for(let t of Object.keys(e))if(!ui.includes(t))throw Qr("config key",t,ui)},Jd=[2,3,4,5],Qd=e=>{if(e===void 0)return ur.headingLevel;let t=Jd.find(r=>r===e);if(t===void 0)throw Te("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},ec=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw Te(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},mi=e=>{Zd(e);let t=e.onSessionExpired;if(t===void 0)throw oi("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw Te("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=zd(e.locale),n=Eo(r,e.labels),o=ur;return{apiBasePath:e.apiBasePath===void 0?o.apiBasePath:e.apiBasePath,ssePath:e.ssePath===void 0?o.ssePath:e.ssePath,draftLabelName:e.draftLabelName===void 0?o.draftLabelName:e.draftLabelName,locale:r,labels:n,sourceTypeConfigs:e.sourceTypeConfigs===void 0?qd(n):ec(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:Qd(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},tc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},pi=Gd(mi({onSessionExpired:tc})),xo=({config:e,children:t})=>{let r=Yd(()=>mi(e),[e]);return To(pi.Provider,{value:r,children:t})},H=()=>jd(pi),At=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},en=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as nc}from"@aiquants/virtualscroll";var Wt=120,fi=1e3,tn=.8,Io={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},rn=20,bi=6,nn={reportHubId:-1,businessDate:null},on=240,an=15,oc=8,yi=460,gi=3,Ri=352,ac={enabled:!0,renderVisual:nc,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},sn={width:oc,tapScrollCircleOptions:ac,enableArrowButtonTabStops:!1},ln=["pen","touch"];var Ei=Vt(1,"use-daily-report"),Ti=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Ao=Ti("__DAILY_REPORT_CACHE_TTL__",3e5),dc=Ti("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),G={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{G.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=Lt(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Ei.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+dc))}},delete(e,t){this.reports.delete(e);let r=Lt(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),o=n+Ao;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}},xi=(e,t,r=!0)=>G.set(e,t,r),Ue=(e,t)=>G.getReport(e,t?.ignoreExpiry),Ve=(e,t)=>G.update(e,t),cn=(e,t)=>G.delete(e,t),mr=()=>{G.clear(),dn.clear()},pr=e=>{G.locks.add(e),G.lastMutations.set(e,Date.now())},fr=e=>{G.locks.delete(e),G.lastMutations.set(e,Date.now())},Ci=e=>G.recentDeletes.set(e,Date.now()),Ii=(e,t)=>{let r=n=>{n===e&&t()};return G.listeners.add(r),()=>{G.listeners.delete(r)}},_t=(e,t)=>{G.prune(),G.set(t,Date.now()+Ao)},Li=e=>{G.prune();let t=G.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));G.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Ao)},cc=async(e,t)=>{let r=G.getReport(t);if(r)return r;let n=G.pendingReports.get(t);if(n)return n;let o=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let s=i.report;return G.cacheMany([s],null,o)[0]}).finally(()=>G.pendingReports.delete(t));return G.pendingReports.set(t,a),a},dn=new Map,uc=1e4,mc=(e,t)=>{let r=dn.get(t),n=Date.now();if(r&&n-r.at<uc)return r.inFlight;let o=_o(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return dn.set(t,a),o.finally(()=>{dn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},_o=async(e,t,r={})=>{let n=r.forceRefresh?null:G.getList(t);if(n)return n;let o=G.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return G.cacheMany(s.reports??[],t,a)}).finally(()=>G.pendingLists.delete(t));return G.pendingLists.set(t,i),i},Lo=(e,t)=>{let r=G.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!G.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=G.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!G.isValid(n.expiresAt)}},Si=(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}=Lo(e,Lt(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},Kt=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,Dt=(e,t)=>{let{apiBasePath:r}=H(),[n,o]=lc(()=>Si(e,t)),a=sc(0),i=n;return n.id!==e&&(i=Si(e,t),o(i)),hi(()=>{let s=Lt(t),l=c=>{c===e&&o(Kt(e,{report:Lo(e,s).report}))};return G.listeners.add(l),()=>{G.listeners.delete(l)}},[e,t]),hi(()=>{let s=Lt(t);a.current+=1;let l=a.current,c=()=>{a.current+=1};if(e<=0)return c;let{report:d,isStale:y}=Lo(e,s);if(d&&!y)return o(Kt(e,{report:d,error:null,isLoading:!1,isRefetching:!1})),c;o(Kt(e,{report:d,isLoading:!d,isRefetching:!0}));let g=async()=>{try{let I=null;if(s){let m=G.getList(s)!==null;if(I=(await _o(r,s)).find(b=>b.reportHubId===e)??null,!I&&m){let b=await mc(r,s);b&&(I=b.find(v=>v.reportHubId===e)??null)}}else I=await cc(r,e);a.current===l&&o(Kt(e,{report:I,error:null}))}catch(I){a.current===l&&o(Kt(e,{error:I instanceof Error?I:new Error("Load failed")}))}finally{a.current===l&&o(Kt(e,{isLoading:!1,isRefetching:!1}))}};if(d===null)return g(),c;let x=setTimeout(g,Wt);return()=>{clearTimeout(x),c()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},Do=()=>{let{apiBasePath:e}=H();return ic(t=>{let r=Lt(t);r&&!G.getList(r)&&_o(e,r).catch(n=>Ei.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as pc}from"@aiquants/virtualscroll";import{useRef as fc}from"react";var un=()=>{let{locale:e,labels:t}=H(),r=ci(t),n=fc(null),o=n.current;return o!==null&&pc.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as xc,useState as Cc}from"react";import{flushSync as Ic}from"react-dom";var Di=Object.freeze({visibilityProperty:!0}),Ai=new Set(["auto","scroll"]),_i=new Set(["","true","plaintext-only"]),wi=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=ki(n)?n.host:null}return!1},bc=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(Di))return!0;return!1},Ni=e=>e.localName==="area"?bc(e):e.checkVisibility(Di),yc=e=>{let t=e.getAttribute("contenteditable");if(t===null||!_i.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(_i.has(o))return!1;if(o==="false")return!0}return!0},gc=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&&Ni(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&&Ai.has(a.overflowX)||n&&Ai.has(a.overflowY)},hc=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 yc(e)}},Sc=/^[\t\n\f\r ]*[+-]?\d/,vc=e=>{let t=e.getAttribute("tabindex");return t!==null&&Sc.test(t)?e.tabIndex:null},Oi=(e,t)=>{for(let r of No(e))if(t(r)||Oi(r,t))return!0;return!1},mn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=Ec(e,t);return t.set(e,n),n},Ec=(e,t)=>{if(!Oo(e))return"none";let r=vc(e),n=r===null&&hc(e),o=r===null&&!n&&Rc(e);return!(r!==null||n||o)||e.matches(":disabled")||wi(e)||!Ni(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?gc(e)?"sequential":"programmatic":"sequential":Oi(e,a=>mn(a,t)==="sequential")?"none":"sequential"},wo=(e,t)=>{for(let r of No(e))t(r),wo(r,t)},No=e=>{if(fe(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var pn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return wo(e,l=>{mn(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let d of No(l)){let y=d===t;!y&&mn(d,a)==="sequential"&&(c?n.push(d):i?o.push(d):r.push(d)),s(d,c||y),y&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Mi=e=>{let t=[],r=new Map;return wo(e,n=>{mn(n,r)==="sequential"&&t.push(n)}),t},fe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Oo=e=>"focus"in e&&"blur"in e,Tc=e=>e.nodeType===e.DOCUMENT_NODE,ki=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(ki(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return Tc(t)?t.activeElement:null},fn=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||wi(t)},Ge=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var bn=e=>{let[t,r]=Cc(null);return xc(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=l=>{if(l===o)return;let c=o===null;o=l,c?Ic(()=>r(l)):r(l)},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)},s=new(Ge(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var Pi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ce=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var yn="data-daily-report-row",Hi=`[role="listitem"][${yn}]`,Lc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Ac=/^[1-9]\d*$/,Fi=e=>{if(e===null||!Ac.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},ft=(e,t)=>{if(t===null||!fe(e))return null;let r=e.closest(Hi);return r===null||r===t||!t.contains(r)?null:r},wt=e=>Fi(e.getAttribute(yn)),$t=e=>Fi(e.getAttribute("aria-posinset")),Bi=e=>{let t=e.closest(Hi),r=t===null?null:$t(t);return r===null?null:r-1},br=(e,t)=>{if(e===null)return null;let r=wt(e);if(r===null)return null;let n=$t(e),o=ce(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},Ui=(e,t)=>{if(!fe(e))return!1;let r=e.closest(Lc);return r!==null&&r!==t&&t.contains(r)};import{createContext as Vi}from"react";var bt=Vi(0),yt=Vi(-1);import{clsx as _c}from"clsx";import{twMerge as Dc}from"tailwind-merge";function h(...e){return Dc(_c(e))}import{useCallback as Wi,useMemo as wc,useSyncExternalStore as Nc}from"react";var Ki="(prefers-reduced-motion: reduce)",$i=e=>Ge(e).matchMedia(Ki).matches?"instant":"smooth",Oc=Object.freeze({...Io,startVelocityThreshold:Number.POSITIVE_INFINITY}),zt=e=>e?Oc:Io,Mc=()=>!1,gn=e=>{let t=wc(()=>e===null?null:Ge(e).matchMedia(Ki),[e]),r=Wi(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=Wi(()=>t===null?!1:t.matches,[t]);return Nc(r,n,Mc)};import{useSyncExternalStore as kc}from"react";import{jsx as Mo}from"react/jsx-runtime";var Rn=()=>{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)})}},zi=16,Pc=(e,t)=>e==="vertical"?{top:0,left:-zi,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-zi,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},hn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=kc(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Mo("div",{className:"pointer-events-none absolute flex items-center",style:Pc(e,t),children:Mo("div",{className:h($a,"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:Mo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Ml,useCallback as Jt,useEffect as Nl,useId as Xp,useLayoutEffect as Zp,useMemo as ha,useRef as kr,useState as Ol}from"react";import{createContext as Tu,useCallback as dt,useContext as xu,useEffect as Yo,useRef as Ae,useState as _n}from"react";var Gi=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 Sn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,ji=e=>{for(let t=1;t<e.length;t++)if(Sn(e[t-1],e[t])>0)return!1;return!0},ko=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;Sn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as Ln}from"@aiquants/sse";import{createBrowserEventSource as du}from"@aiquants/sse/client";import{useReopeningEventSource as cu}from"@aiquants/sse/react";import{useEffect as zo,useRef as An,useState as uu}from"react";import{z as A}from"zod";var Yi=["auth-required","forbidden","resync-required"],Po=15e3,qi="lastEventId",Hc=/^\d{1,15}-\d{1,15}$/,vn=e=>Hc.test(e),Fc=A.object({name:A.string().nullish(),affiliation:A.string().nullish()}),Bc=A.object({name:A.string().nullish(),text:A.string().nullish(),color:A.string().nullish()}),Uc=A.object({id:A.number(),name:A.string().nullish(),color:A.string().nullish()}),Xi=A.object({id:A.number(),userId:A.string().nullish(),userName:A.string().nullish(),content:A.string().nullish(),createdAt:A.string().nullish(),isMine:A.boolean()}),Vc=A.object({id:A.string(),fileName:A.string(),fileType:A.string().nullable(),fileSize:A.number().nullable(),createdAt:A.string().nullable(),state:A.enum(["present","absent","unknown"]),hasThumbnail:A.boolean().default(!1)}),Ho=A.object({reportHubId:A.number(),date:A.string().nullish(),createdAt:A.string().nullish(),author:A.string().nullish(),userId:A.string().nullish(),sourceType:A.string().nullish(),employeeName:A.string().nullish(),updatedBy:A.string().nullish(),updatedAt:A.string().nullish(),category:A.string().nullish(),creationCategory:A.string().nullish(),visitTimeFrom:A.string().nullish(),visitTimeTo:A.string().nullish(),customerName:A.string().nullish(),interviewers:A.array(Fc),subject:A.string().nullish(),content:A.string().nullish(),externalComments:A.array(Bc),isRead:A.boolean(),isStarred:A.boolean(),labels:A.array(Uc),postedComments:A.array(Xi),attachments:A.array(Vc).default([])}),Wc=A.object({type:A.literal("connected")}),Kc=A.object({type:A.literal("status-update"),reportHubId:A.number(),statusType:A.enum(["star","read"]),value:A.boolean(),clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Fo=A.string().optional(),$c=A.object({type:A.literal("comment-add"),reportHubId:A.number(),comment:Xi,clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Fo}),zc=A.object({type:A.literal("comment-delete"),reportHubId:A.number(),commentId:A.number(),clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Fo}),Gc=A.object({type:A.literal("report-create"),reportHubId:A.number(),report:Ho,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),jc=A.object({type:A.literal("report-update"),reportHubId:A.number(),report:Ho,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Yc=A.object({type:A.literal("report-publish"),reportHubId:A.number(),report:Ho,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),qc=A.object({type:A.literal("report-delete"),reportHubId:A.number(),clientTempId:A.string(),sourceType:Fo}),Zi=A.discriminatedUnion("type",[Wc,Kc,$c,zc,Gc,jc,Yc,qc]);import{useSyncExternalStore as nu}from"react";var Xc=50,Zc=1e3,Jc=3e4,Qc=6,eu=3e4,En=Symbol("read-stall"),tu="/daily_report/api",ru=/^\d{4}-\d{2}-\d{2}$/,yr=class{constructor(t={}){this.itemMap=new Map;this.listeners=new Set;this.state={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null};this.streamAnchorRevision=0;this.lastCursor=null;this.lastSnapshot=null;this.consecutiveFailures=0;this.started=!1;this.disposed=!1;this.loopGeneration=0;this.activeAbortController=null;this.activeSeenIds=null;this.externalRemovalTombstones=new Set;this.pendingForceRefresh=!1;this.wakeRetryWait=null;this.handleOnline=()=>this.wakeRetryWait?.();this.publishCoalesceTimer=null;this.lastItemsPublishAt=0;this.apiBasePath=t.apiBasePath??tu,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??eu,this.publishCoalesceMs=t.publishCoalesceMs??Xc,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>=Qc){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(Zc*2**(this.consecutiveFailures-1),Jc))}}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(y=>{o=this.setTimeoutFn(()=>y(En),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===En)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 y=await this.readWithStallGuard(i);if(y===En)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let{done:g,value:x}=y;if(g)break;let I=(l+s.decode(x,{stream:!0})).split(`
2
- `);l=I.pop()??"";let m=!1;for(let R of I){if(R.trim()==="")continue;let b;try{b=JSON.parse(R)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let v=Gi(b);if(v==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(v==="error"){c=!0;continue}let _=b;m=this.absorbChunkLine(_)||m,typeof _.total=="number"&&Number.isFinite(_.total)&&_.total!==this.state.totalCount&&this.publish({totalCount:_.total}),_.nextCursor&&(_.nextCursor.businessDate===null||ru.test(_.nextCursor.businessDate))&&(this.lastCursor=_.nextCursor),_.isLast&&(d=!0)}m&&(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(En),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"&&vn(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 ou=6e4,ne=null,Ji=!1,Bo=new Set,Qi={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},Uo=()=>{for(let e of Bo)e()},Vo=()=>{ne&&(ne.unsubscribe(),ne.client.dispose(),ne=null,Uo())},gr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??ur.apiBasePath;if(ne&&(ne.userKey!==e.userKey||ne.apiBasePath!==t)&&(ne.userKey!==e.userKey&&mr(),Vo()),!ne){let r=new yr({apiBasePath:t});ne={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(Uo)},au(),r.start(),Uo();return}Tn(ne)},Tn=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>ou&&e.client.refresh()},au=()=>{if(Ji||typeof document>"u"||typeof window>"u")return;Ji=!0;let e=()=>{ne&&Tn(ne)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},Wo=e=>{if(!(typeof window>"u")){if(!ne){gr(e);return}if(ne.userKey!==e.userKey){mr(),Vo(),gr(e);return}Tn(ne)}},Ko=()=>{typeof window>"u"||!ne||Tn(ne)},Rr=e=>{ne?.client.applyExternalUpsert(e)},xn=e=>{ne?.client.applyExternalRemoval(e)},Cn=()=>{ne?.client.retry()},In=()=>{ne?.client.resync()},$o=(e={})=>{ne?.client.refresh(e)},es=()=>ne?.userKey,iu=e=>(Bo.add(e),()=>Bo.delete(e)),su=()=>ne?.client.getState()??Qi,lu=()=>Qi,lt=()=>nu(iu,su,lu);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Vo()});var Nt=Vt(1,"daily-report-sse-connection"),mu=Object.freeze({kind:"resyncing"}),ts={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},pu=1,rs=Po*3,fu=rs+Po,Go=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=H(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=lt(),[l,c]=uu({generation:0,minAnchorRevision:1,anchored:!1}),d=l.generation>0&&!l.anchored,y=d&&a==="complete"&&!i?s:null,g=An(0),x=An(null),I=An(n);I.current=n;let m=An(0);m.current=o===null?0:o.revision,zo(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(x.current=o.lastEventId,g.current=0,c({...l,anchored:!0}))},[l,o]),zo(()=>{if(!e||y===null)return;let{initialDelayMs:b,maxDelayMs:v,multiplier:_}=ts,D=Ln.random()*Math.min(v,b*_**g.current);Nt.warn(`SSE resync: the ids rescan gave up (${y.message}); rescanning in ${Math.round(D)} ms`);let F=Ln.setTimer(()=>{g.current+=1,In()},D);return()=>Ln.clearTimer(F)},[e,y]);let{status:R}=cu(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${qi}=${encodeURIComponent(b)}`,initialLastEventId:x.current,withCredentials:!1,createEventSource:du,runtime:Ln,backoff:ts,healthyOpenMs:fu,nativeRetryLimit:pu,giveUpAfterFailures:"never",terminalEvents:Yi,heartbeat:{staleAfterMs:rs,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(vn(b.lastEventId)?x.current=b.lastEventId:Nt.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let v=JSON.parse(b.data),_=Zi.safeParse(v);if(!_.success){Nt.error("SSE Validation Error:",_.error.flatten(),"raw message:",v);return}if(_.data.type==="connected"){Nt.info("SSE Subscribe Ready");return}t(_.data)}catch(v){Nt.error("SSE Parse Error",v)}}}});return zo(()=>{if(R.kind==="faulted"){Nt.error("SSE connection faulted:",R.error);return}if(R.kind==="terminated")switch(R.terminalEvent){case"auth-required":I.current();return;case"forbidden":Nt.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=m.current+1;c(v=>({generation:v.generation+1,minAnchorRevision:b,anchored:!1})),In();return}}},[R]),e&&d?mu:R};import{createContext as bu,useCallback as ns,useContext as yu,useEffect as gu,useMemo as Ru,useRef as os,useState as hu}from"react";import{jsx as as,jsxs as is}from"react/jsx-runtime";var Su=8e3,vu="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",Eu=h("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",Ba),ss=bu({notifyError:()=>{}}),ls=()=>yu(ss),jo=({children:e})=>{let{onError:t,labels:r}=H(),[n,o]=hu(null),a=os(t);a.current=t;let i=os(null),s=ns(d=>{let y=a.current;if(y){y(d);return}o(d)},[]),l=ns(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);gu(()=>{if(n)return i.current=setTimeout(()=>o(null),Su),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=Ru(()=>({notifyError:s}),[s]);return is(ss.Provider,{value:c,children:[e,n&&is("div",{role:"alert","data-testid":"daily-report-error-banner",className:vu,children:[as("span",{className:"font-medium",children:n.message}),as("button",{type:"button","aria-label":r.close,onClick:l,className:Eu,children:"\u2715"})]})]})};import{jsx as Iu}from"react/jsx-runtime";var Ze=Vt(1,"daily-report-action-context"),Cu=Object.freeze([]),qo=globalThis.__DailyReportActionContext??Tu(null);globalThis.__DailyReportActionContext=qo;var _e=()=>{let e=xu(qo);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Ot=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},Xo=({children:e,user:t,initialItems:r=Cu,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=H(),{notifyError:s}=ls(),l=Ae(s);l.current=s;let c=Ae(new Map),d=Ae(new Map),y=Ae(new Map),g=Ae(new Map),x=Ae(new Map),[I,m]=_n(0),[R,b]=_n(r),[v,_]=_n(!1),D=Ae(!1),F=Ae(new Map),N=Ae(new Set),B=Ae(new Set),M=Ae(new Set),j=lt(),q=Ae(!1);q.current=j.phase==="complete"&&!j.isRevalidating;let z=dt(()=>es()===(n??null),[n]),Q=dt(async()=>{Ze.info("[DailyReportActionProvider] Refetching data without page reload..."),$o(),m(p=>p+1),G.listeners.forEach(p=>{p(-1)})},[]),U=dt(async()=>{Ze.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),mr(),B.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let u=await fetch(`${o}/action`,{method:"POST",body:p});if(!u.ok){let E=await u.json().catch(()=>null);Ze.warn("[DailyReportActionProvider] Failed to clear server-side cache:",u.status,E)}}catch(p){Ze.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}z()&&($o({forceRefresh:!0}),m(p=>p+1),G.listeners.forEach(p=>{p(-1)}))},[o,z]),X=Ae(new Map),K=Ae(()=>{}),V=dt((p,u)=>{let E=X.current,T=E.get(p);if(T){T.messages.push(u);return}let L={messages:[u],unsubscribe:()=>{},timer:setTimeout(()=>{let f=E.get(p);f&&(f.unsubscribe(),E.delete(p),Ze.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${f.messages.length} messages`))},3e4)};L.unsubscribe=Ii(p,()=>{let f=E.get(p);if(f&&Ue(p,{ignoreExpiry:!0})){f.unsubscribe(),clearTimeout(f.timer),E.delete(p),Ze.info(`[SSE Queue] Replaying ${f.messages.length} messages for reportHubId=${p}`);for(let S of f.messages)K.current(S)}}),E.set(p,L)},[]),re=p=>{M.current.add(p),setTimeout(()=>{M.current.delete(p)},3e4)},ue=dt(p=>!!p&&M.current.has(p),[]),Z=dt((p,u)=>{u!==void 0&&Rr({reportHubId:p,businessDate:u??null}),b(E=>{let T=E.find(f=>f.reportHubId===p),L=u??T?.businessDate??null;return ko(E,{reportHubId:p,businessDate:L,sourceType:T?.sourceType})})},[]),W=()=>{n&&(D.current=!0,_(p=>!p))};Yo(()=>{if(!n)return;let p=setTimeout(()=>{D.current||_(!0)},fi);return()=>clearTimeout(p)},[n]);let ie=dt(p=>{z()&&(B.current.add(p),xn(p),b(u=>u.filter(E=>E.reportHubId!==p)))},[z]),[be,Ee]=_n(r);if(r!==be){Ee(r);let p=new Map;for(let T of r)B.current.has(T.reportHubId)||p.set(T.reportHubId,T);let u=q.current;for(let T of R)p.has(T.reportHubId)||B.current.has(T.reportHubId)||u&&T.reportHubId>0||p.set(T.reportHubId,T);let E=Array.from(p.values());ji(E)||E.sort(Sn),b(E)}Yo(()=>{if(q.current){let p=new Set(r.map(u=>u.reportHubId));for(let u of B.current)p.has(u)||B.current.delete(u)}},[r]);let Re=dt(p=>{if(z()&&!ue(p.clientTempId))switch(p.type){case"comment-add":{let{comment:u,reportHubId:E}=p,T=Ue(E,{ignoreExpiry:!0});if(T){if(T.postedComments.some(O=>O.id===u.id))return;let L=!1,f=c.current.get(E);if(f){for(let[O,P]of f.entries())if(P===u.content){f.delete(O),x.current.set(O,u.id),L=!0;break}}let S={...u,userName:u.userName||(L?Ot(t,i.unknownUser):i.unknownUser),createdAt:u.createdAt||new Date().toISOString(),isMine:L},w={...T,postedComments:[...T.postedComments,S].sort((O,P)=>new Date(O.createdAt||0).getTime()-new Date(P.createdAt||0).getTime())};_t(E,w),pr(E),fr(E),m(O=>O+1)}else V(E,p);break}case"comment-delete":{let{commentId:u,reportHubId:E}=p,T=Ue(E,{ignoreExpiry:!0});if(T){let L={...T,postedComments:T.postedComments.filter(f=>f.id!==u)};_t(E,L),pr(E),fr(E),m(f=>f+1)}else V(E,p);break}case"status-update":{let{statusType:u,value:E,reportHubId:T}=p,L=Ue(T,{ignoreExpiry:!0});if(u==="star")if(y.current.get(T)===E&&y.current.delete(T),L){let f={...L,isStarred:E};_t(T,f),m(S=>S+1)}else V(T,p);else if(u==="read")if(g.current.get(T)===E&&g.current.delete(T),L){let f={...L,isRead:E};_t(T,f),m(S=>S+1)}else V(T,p);break}case"report-delete":{let{reportHubId:u}=p;N.current.delete(u),B.current.add(u),xn(u);let E=X.current.get(u);E&&(E.unsubscribe(),clearTimeout(E.timer),X.current.delete(u));let T=Ue(u,{ignoreExpiry:!0});T?.date&&(cn(u,T.date),m(L=>L+1)),b(L=>L.filter(f=>f.reportHubId!==u));break}case"report-create":case"report-update":case"report-publish":{let{report:u}=p;Li(u),(p.type==="report-create"||p.type==="report-publish")&&(N.current.add(u.reportHubId),Z(u.reportHubId,u.date)),m(E=>E+1);break}}},[ue,z,Z,t,V,i.unknownUser]);K.current=Re,Yo(()=>()=>{for(let p of X.current.values())p.unsubscribe(),clearTimeout(p.timer);X.current.clear()},[]);let he=Go({isSseEnabled:v,onMessage:Re}),ye=async(p,u,E,T,L,f)=>{f?.skipLock||pr(p),L.onOptimistic?.();let S=T.clientTempId||crypto.randomUUID();re(S);let w=new FormData;w.append("intent",u),w.append("reportHubId",String(p)),typeof E=="string"&&w.append("businessDate",E),w.append("operationTimestamp",String(Date.now())),w.append("clientTempId",S);for(let[O,P]of Object.entries(T))O!=="clientTempId"&&w.append(O,P);try{let O=await fetch(`${o}/action`,{method:"POST",body:w,headers:{Accept:"application/json"}});if(!O.ok){let te=new Error(`Failed to ${u}`);throw Object.assign(te,{status:O.status}),te}let P=await O.json();if(P.status!=="OK"||u!=="create"&&String(P.reportHubId)!==String(p))throw new Error(`Invalid response for ${u}`);if(typeof P.clientTempId!="string"||P.clientTempId!==S)throw new Error(`Invalid clientTempId for ${u}`);if(!z())throw Ze.warn(`[executeAction] ${u} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${u}`);return await L.onSuccess?.(P)}catch(O){throw Ze.error(`${u} failed:`,O),z()&&(L.onFailure?.(),l.current({operation:u,message:i.operationFailed(u),cause:O})),O}finally{f?.keepLock||f?.skipLock||fr(p)}},Ke=async(p,u,E)=>{let T=Number(p),L=-1*Date.now(),f=ye(T,"addComment",E,{content:u,clientTempId:String(L)},{onOptimistic:()=>{c.current.has(T)||c.current.set(T,new Map),c.current.get(T)?.set(L,u),m(S=>S+1)},onSuccess:S=>{if(!S.newComment)throw new Error("No new comment returned");let w=S.newComment.id;x.current.set(L,w),c.current.get(T)?.delete(L);let O=Ue(T,{ignoreExpiry:!0});return O&&!O.postedComments.some(P=>P.id===w)&&Ve(T,{postedComments:[...O.postedComments,{...S.newComment,id:w,isMine:!0,userName:Ot(t,i.unknownUser)}],updatedAt:S.updatedAt}),w},onFailure:()=>{c.current.get(T)?.delete(L)}},{skipLock:!0}).finally(()=>F.current.delete(L));F.current.set(L,f),await f},nt=async(p,u,E)=>{let T=Number(p);d.current.has(T)||d.current.set(T,new Set),d.current.get(T)?.add(u),m(f=>f+1);let L=u;if(u<0){let f=x.current.get(u);if(f!==void 0)L=f;else{let S=F.current.get(u);if(!S)return;try{L=await S}catch{return}}}await ye(T,"deleteComment",E,{commentId:String(L)},{onSuccess:f=>{let S=typeof f.deletedCommentId=="string"?Number(f.deletedCommentId):L,w=Ue(T,{ignoreExpiry:!0});w&&(Ve(T,{postedComments:w.postedComments.filter(O=>O.id!==S),updatedAt:f.updatedAt}),Ci(S)),d.current.get(T)?.delete(u)},onFailure:()=>{d.current.get(T)?.delete(u)}},{skipLock:!0})},$e=async(p,u,E)=>{let T=Number(p);await ye(T,"toggleStar",E,{isStarred:String(u)},{onOptimistic:()=>{Ve(T,{isStarred:u}),y.current.set(T,u),m(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isStarred=="boolean"&&Ue(T,{ignoreExpiry:!0})&&(Ve(T,{isStarred:L.updatedStatus.isStarred,updatedAt:L.updatedAt}),m(S=>S+1)),y.current.delete(T)},onFailure:()=>{Ve(T,{isStarred:!u}),y.current.delete(T)}},{skipLock:!0})},ke=async(p,u,E)=>{let T=Number(p);await ye(T,"toggleRead",E,{isRead:String(u)},{onOptimistic:()=>{Ve(T,{isRead:u}),g.current.set(T,u),m(L=>L+1)},onSuccess:L=>{L.updatedStatus&&typeof L.updatedStatus.isRead=="boolean"&&Ue(T,{ignoreExpiry:!0})&&(Ve(T,{isRead:L.updatedStatus.isRead,updatedAt:L.updatedAt}),m(S=>S+1)),g.current.delete(T)},onFailure:()=>{Ve(T,{isRead:!u}),g.current.delete(T)}},{skipLock:!0})},qe=Ae(ke);qe.current=ke;let ot=dt((p,u,E)=>qe.current(p,u,E),[]),Ie=async p=>{let u=-1*Date.now(),E=new Date().toISOString(),T={reportHubId:u,date:p,createdAt:E,author:Ot(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Ot(t,i.unknownUser),updatedBy:Ot(t,i.unknownUser),updatedAt:E,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:[]};xi(T,Date.now()+3e5,!1),b(L=>[{reportHubId:u,businessDate:p},...L]);try{let L=await ye(0,"create",p,{clientTempId:String(u)},{onSuccess:S=>S});if(L.clientTempId&&L.clientTempId!==String(u))throw Ze.warn(`[createReport] ID mismatch. req=${u}, res=${L.clientTempId}`),new Error("Optimistic ID mismatch");let f=Number(L.reportHubId);return Rr({reportHubId:f,businessDate:p}),pr(f),L.report&&(_t(f,L.report),m(S=>S+1)),b(S=>S.some(w=>w.reportHubId===f)?S.filter(w=>w.reportHubId!==u):S.map(w=>w.reportHubId===u?{...w,reportHubId:f}:w)),setTimeout(()=>fr(f),1e3),f}catch(L){throw Ze.error("[createReport] Failed or mismatched",L),b(f=>f.filter(S=>S.reportHubId!==u)),L}},at=async(p,u,E)=>{let T=Number(p);await ye(T,"update",E,{...u.title&&{title:u.title},...u.content&&{content:u.content}},{onSuccess:()=>{let L=Ue(T,{ignoreExpiry:!0});L&&(Ve(T,{subject:u.title??L.subject,content:u.content??L.content}),m(f=>f+1))}})},it=async(p,u)=>{let E=Number(p),T=Ue(E,{ignoreExpiry:!0}),L=T?.labels||[];await ye(E,"publish",u,{},{onOptimistic:()=>{if(T){let f=T.labels.filter(S=>S.name!==a);Ve(E,{labels:f}),m(S=>S+1)}},onSuccess:f=>{f.report&&(_t(E,f.report),m(S=>S+1)),u!==void 0&&Rr({reportHubId:E,businessDate:u})},onFailure:()=>{Ve(E,{labels:L}),m(f=>f+1)}},{skipLock:!0})},C=async(p,u)=>{let E=Number(p),T=R.find(L=>L.reportHubId===E);B.current.add(E),xn(E),b(L=>L.filter(f=>f.reportHubId!==E));try{await ye(E,"delete",u,{},{onSuccess:L=>{cn(E,u)}})}catch(L){if(L.status===404){cn(E,u);return}if(!z())return;B.current.delete(E);let S=T===void 0?u:T.businessDate;S!==void 0&&Rr({reportHubId:E,businessDate:S}),T&&b(w=>w.some(O=>O.reportHubId===E)?w:ko(w,T))}};return Iu(qo.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:d,pendingStarUpdates:y,pendingReadUpdates:g,resolvedIdMap:x,version:I,items:R,isSseEnabled:v,toggleSse:W,sseStatus:he,addComment:Ke,deleteComment:nt,toggleStar:$e,toggleRead:ot,createReport:Ie,updateReport:at,publishReport:it,deleteReport:C,removeStaleItem:ie,refetchData:Q,clearCacheAndRefetch:U},children:e})};import{useCallback as us,useMemo as Lu,useRef as Au,useState as _u}from"react";var ds=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw Te("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},cs=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var hr=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=_e(),{labels:c}=H(),d=c.unknownUser,[y,g]=_u(null),x=us(b=>e&&l(e.reportHubId,b,e.date),[e,l]),I=us(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),m=Au([]);return{uiComments:Lu(()=>{if(!e)return[];let b=ds(e.externalComments,e.postedComments,r,d),v=o.current.get(e.reportHubId);v?.size&&(b=b.filter(D=>!v.has(D.id)));let _=n.current.get(e.reportHubId);if(_?.size&&t){let D=new Set(b.map(N=>N.id)),F=Ot(t,d);for(let[N,B]of _){if(v?.has(N)||D.has(N))continue;let M=a.current.get(N);M&&D.has(M)||b.some(j=>j.isMine&&j.content===B&&typeof j.id=="number"&&j.id>0)||b.push({id:N,authorName:F,content:B,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(m.current)?m.current:(m.current=b,b)},[e,t,r,d,o,n,a,i]),handleAddComment:I,handleDeleteComment:x,pendingDeleteId:y,setPendingDeleteId:g,resolvedIdMap:a.current}};import{jsx as wu}from"react/jsx-runtime";var Du={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},gt=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=Du[e];return wu(r,{...t})};import{memo as Bs,useId as Tm,useMemo as xm,useRef as Cm}from"react";var ms=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var Jo="tile",vr=ms[Jo],Nu=2,Sr=16,ps=5,fs=vr.maxWidth/Nu,Ou=ps*(fs+Sr)-Sr,bs=e=>{let t=Math.min(ps,1+Math.floor((e+Sr)/(fs+Sr)));return Math.floor((Math.min(e,Ou)-(t-1)*Sr)/t)},Zo=`round(nearest, 100cqi * ${vr.maxHeight} / ${vr.maxWidth}, 1px)`,ys=Object.freeze({aspectRatio:`${vr.maxWidth} / ${vr.maxHeight}`,height:Zo,contain:"strict"}),gs=Object.freeze({marginBlockEnd:`calc(round(up, ${Zo}, ${4}px) - ${Zo})`});var Mu="download",ku="thumbnail",Pu="1",Gt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[Mu]:Pu})}`;case"thumbnail":return`${n}?${new URLSearchParams({[ku]:r.variant})}`}};import{createContext as Hu,useContext as Fu}from"react";var Er=Hu(null),jt=()=>Fu(Er)===!1?-1:void 0,Rs=(e,t)=>{let{before:r,after:n}=pn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Ku,useContext as $u,useLayoutEffect as zu,useMemo as Gu,useState as ju}from"react";import{flushSync as Yu}from"react-dom";import{flushSync as Bu}from"react-dom";var Qo=new WeakMap,hs=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,Uu=e=>{e.frame=null;let t=[...e.observations.values()].filter(hs);t.length!==0&&Bu(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Vu=(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=bs(o))}e.frame!==null||![...e.observations.values()].some(hs)||(e.frame=e.view.requestAnimationFrame(()=>Uu(e)))},Wu=e=>{let t=Qo.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=>Vu(n,o)),observations:new Map,frame:null};return Qo.set(e,n),n},Ss=(e,t)=>{let r=e.ownerDocument,n=Wu(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(),Qo.delete(r)))}};import{jsx as xr,jsxs as Ts}from"react/jsx-runtime";var Tr="\u2026",qu=Tr.codePointAt(0),Dn="data-attachment-file-name",Xu=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,Zu=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,xs=Ku(null),Cs=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},vs=(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("")},Ju=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=Cs(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${vs(o,Tr,a,r)}${Tr}`;return r(n+i)<=t?n+i:`${vs(n,Tr+i,t,r)}${Tr}${i}`},Es=new WeakMap,Is=e=>{let t=Es.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 Es.set(e,n),n},Qu=(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},Ls=e=>{let t=new Set;for(let r of e.matchAll(Xu)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},em=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:Ls(t.fontFamily),measure:Qu(Is(e.ownerDocument),r)}},tm=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,rm=e=>{let t=new Set([qu]);for(let r of e.querySelectorAll(`[${Dn}]`)){let n=r.getAttribute(Dn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},nm=(e,t)=>{for(let r of e.split(",")){let n=Zu.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},ea=new WeakMap,As=e=>{let t=ea.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return ea.set(e,r),r},_s=(e,t)=>{let r=em(e.container.querySelector(`[${Dn}]`));e.fitted={trackWidth:t,nameFont:r};let n=As(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=am(n)),e.applyFit({width:t,measure:r.measure})},om=(e,t)=>{let r=t.map(o=>({families:Ls(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=rm(o.container);i.some(l=>nm(l.unicodeRange,s))&&(Is(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&Yu(()=>{for(let[o,a]of n)_s(o,a)})},am=e=>{let t=e.document.fonts,r=n=>{om(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},im=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Ss(e,a=>_s(r,a)),o=As(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),ea.delete(o.document))}},Ds=({containerRef:e,children:t})=>{let[r,n]=ju(null);return zu(()=>{let o=e.current;return im(o,i=>{n(s=>tm(s,i)?s:i)})},[e]),xr(xs,{value:r,children:t})},Cr=({fileName:e,className:t,testId:r})=>{let n=$u(xs),o=Gu(()=>n===null?null:Ju(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=Cs(e);return Ts("span",{className:h("block min-w-0",t),title:e,"data-testid":r,[Dn]:e,children:[o===null?Ts("span",{"aria-hidden":"true",className:"flex min-w-0",children:[xr("span",{className:"truncate",children:a}),i!==""&&xr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):xr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),xr("span",{className:"sr-only",children:e})]})};import um from"lucide-react/dist/esm/icons/image-off.js";import{memo as mm,useCallback as na,useEffect as pm,useLayoutEffect as fm,useRef as oa,useState as bm}from"react";var wn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),ws=wn.queueWaitMs+wn.readMs+wn.renderMs+wn.transferMarginMs;var sm=Object.freeze({kind:"loaded"}),Ns=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,d=null,y=null,g=null,x=U=>(U!==null&&n.clearTimeout(U),null),I=()=>{y?.(),y=null},m=()=>{g?.(),g=null},R=U=>U===null||U.kind==="loaded"?0:U.kind==="failing"?U.failedAttempts:i.maxAttempts,b=U=>{s="cooling",d=n.setTimeout(j,U)},v=()=>{o.abortInFlight(),m();let U=R(r.get(t))+1;if(U>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:U,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},_=U=>{if(s==="loading"){if(c=x(c),!U){v();return}s="done",r.set(t,sm),m()}},D=()=>{c=null,_(!1)},F=()=>{s="loading",o.showActivity(!0),I(),c=n.setTimeout(D,i.loadTimeoutMs),o.grant()},N=()=>{l=null,s="queued",g=a.request(F)},B=()=>{l===null&&(l=n.setTimeout(N,i.settleMs))},M=U=>{if(o.showActivity(U),U){s==="watching"&&B();return}if(s==="queued"){m(),s="watching";return}l=x(l)},j=()=>{d=null,s="watching",o.showActivity(!1),y=n.observe(e,M)},q=()=>{let U=s==="loading";s="done",I(),l=x(l),c=x(c),d=x(d),o.showActivity(!1),U&&(o.abortInFlight(),g!==null&&o.reset()),m()},z=r.get(t);if(z?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:_,dispose:q};if(z?.kind==="exhausted"){if(n.now()-z.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:_,dispose:q};r.delete(t)}o.reset();let Q=z?.kind==="failing"?z.retryAt-n.now():0;return Q>0?b(Q):j(),{settle:_,dispose:q}};var lm=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},Os=lm(2);var dm=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},ta=dm(1024);var ra=new WeakMap,cm=e=>{let t=ra.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 ra.set(e,a),a},Ms=(e,t)=>{let r=e.ownerDocument,n=cm(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(),ra.delete(r)))}};import{jsx as Ir,jsxs as Em}from"react/jsx-runtime";var ym={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},gm="data-thumbnail-active",Rm="data-daily-report-attachment-preview",Ps={[Rm]:""},hm=Object.freeze({settleMs:250,loadTimeoutMs:ws,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),ks=e=>{let t=ta.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},Sm=()=>({limiter:Os,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:Ms,tuning:hm}),vm=(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(gm,o)}}),Hs=mm(({thumbnailUrl:e,unavailableLabel:t})=>{let r=oa(null),n=oa(null),o=oa(null),[a,i]=bm(()=>ks(e));a.url!==e&&i(ks(e)),fm(()=>{if(a.status==="failed")return;let d=n.current,y=a.status==="idle"?null:a.url;d.getAttribute("src")!==y&&(y===null?d.removeAttribute("src"):d.setAttribute("src",y))},[a]),pm(()=>{let d=r.current,y=Ns(d,e,ta,Sm(),vm(e,d,i,n));return o.current=y,()=>{o.current=null,y.dispose()}},[e]);let s=na(d=>{d!==null&&(n.current=d)},[]),l=na(()=>{i(d=>d.status==="granted"?{url:d.url,status:"loaded"}:d),o.current?.settle(!0)},[]),c=na(()=>{o.current?.settle(!1)},[]);return Ir("span",{className:"block",children:Ir("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":ym[a.status],style:ys,className:"relative block w-full",children:Ir("span",{"data-testid":"daily-report-attachment-thumbnail-skin",className:"absolute inset-0 flex items-center justify-center overflow-hidden rounded-lg bg-slate-100 after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-slate-900/10 after:ring-inset dark:bg-slate-800 dark:after:ring-white/10 [[data-daily-report-attachment-preview]:active_&]:after:ring-blue-500 dark:[[data-daily-report-attachment-preview]:active_&]:after:ring-blue-400 motion-safe:[[data-thumbnail-state=pending][data-thumbnail-active]_&]:animate-pulse [[data-thumbnail-state=pending]_&]:bg-slate-200 dark:[[data-thumbnail-state=pending]_&]:bg-slate-700 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-300 dark:[@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover:not(:active)_&]:after:ring-blue-400/60",children:a.status==="failed"?Em("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:[Ir(um,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Ir("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:l,onError:c,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as me,jsxs as Je}from"react/jsx-runtime";var Fs=1024,aa=["B","KB","MB","GB"],Us="text-slate-500 text-sm line-through dark:text-slate-400",Im=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=Fs&&r<aa.length-1;)t/=Fs,r+=1;return r===0?`${t} ${aa[r]}`:`${t.toFixed(1)} ${aa[r]}`},Vs=({attachment:e,labels:t,className:r})=>Je("span",{className:r,children:[Im(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ia=({href:e,children:t,...r})=>{let n=jt();return me("a",{href:e,...r,tabIndex:n,children:t})},Ws=({downloadUrl:e,label:t,fileName:r})=>Je(ia,{href:e,className:h("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",J),"data-testid":"daily-report-attachment-download",children:[t," ",me("span",{className:"sr-only",children:r})]}),Lm=Bs(({attachment:e,apiBasePath:t,labels:r})=>{let n=me(Hs,{thumbnailUrl:Gt(t,e.id,{kind:"thumbnail",variant:Jo}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Je("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Je("div",{className:"flex min-w-0 flex-col gap-2",children:[n,me(Cr,{fileName:e.fileName,className:Us,testId:"daily-report-attachment-name"})]}):Je(ia,{href:Gt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 flex-col gap-2 rounded-lg",J),"data-testid":"daily-report-attachment-link",...Ps,children:[n,me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Je("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:gs,children:[me(Vs,{attachment:e,labels:r,className:"truncate"}),!o&&me(Ws,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),Am=Bs(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Je("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[Je("div",{className:"flex min-w-0 flex-col",children:[n?me(Cr,{fileName:e.fileName,className:Us,testId:"daily-report-attachment-name"}):me(ia,{href:Gt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 rounded-sm",J),"data-testid":"daily-report-attachment-link",children:me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),me(Vs,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&me(Ws,{downloadUrl:Gt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),_m=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=Cm(null);return me(Ds,{containerRef:o,children:me("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:me("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>me(Lm,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},Nn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=H(),o=Tm(),{tileAttachments:a,rowAttachments:i}=xm(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Je("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[me(He,{level:gt[n],id:o,className:h("m-0",It),children:r.attachments}),Je("div",{className:"flex flex-col gap-4",children:[a.length>0&&me(_m,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&me("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>me(Am,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as $m}from"@aiquants/swipe-overlay";import{useCallback as da,useEffect as $s,useId as zm,useRef as ca,useState as Gm}from"react";var Lr=e=>e.isComposing||e.keyCode===229,On=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"},wm=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),Nm=(e,t)=>{let r=e.getAttribute("role");return r!==null&&wm.has(r)&&e!==t&&e.contains(t)},Ar=e=>e.key==="Escape"&&!e.defaultPrevented&&!Lr(e),Ks=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||Lr(e))return null;let r=e.target;if(!(fe(r)&&t.contains(r)))return null;let n=Mi(t);if(n.length===0)return Dm;let{before:o,within:a,after:i}=pn(t,r);return e.shiftKey?o.some(s=>!Nm(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 Om,jsx as Mm}from"react/jsx-runtime";var Se=({render:e})=>{let t=jt();return Mm(Om,{children:e(t)})};import km from"@heroicons/react/24/outline/TrashIcon.js";import{memo as Pm,useId as Hm,useRef as Fm,useState as Bm}from"react";import{jsx as Rt,jsxs as Mn}from"react/jsx-runtime";var sa="data-comment-id",kn="data-comment-delete-button",Pn="data-comment-delete-slot",Um=h(De,Wa),Vm="relative flex h-5 items-center",Wm=h(Le,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",J),Km=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,la=Pm(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,d]=Bm(!1),{labels:y}=H(),g=Hm(),x=Fm(null),I=Km(e.id,o,l),m=()=>{let b=x.current;b!==null&&s(b),a(null),d(!0),typeof e.id=="number"&&n?.(e.id)},R=b=>{if(!I)return;let v=b.relatedTarget;fe(v)&&b.currentTarget.contains(v)||a(null)};return Mn("li",{[sa]:e.id,"data-deleted":c?"true":void 0,className:h("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",c&&"hidden",I?"z-50":"z-0 hover:z-10"),children:[Mn("div",{className:"mb-1 flex items-center justify-between",children:[Rt("div",{className:h("font-semibold text-xs",cs(e.color)),children:le(e.authorName)}),Mn("div",{className:"flex items-center gap-2",children:[e.createdAt&&Rt("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:se(e.createdAt)}),e.isMine&&!e.isLegacy&&Mn("div",{[Pn]:e.id,className:Vm,onBlur:R,children:[Rt(Se,{render:b=>Rt("button",{ref:x,type:"button",tabIndex:b,className:Um,title:y.commentDelete,"aria-label":y.commentDelete,"aria-expanded":I,"aria-controls":I?g:void 0,[kn]:e.id,onClick:()=>i(e.id,I),children:Rt(km,{"aria-hidden":"true",className:I?ge.deletePending:ge.delete})})}),I&&Rt(Se,{render:b=>Rt("button",{id:g,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:Wm,onClick:m,children:y.commentDeleteConfirm})})]})]})]}),Rt("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});la.displayName="DailyReportPostedComment";import{jsx as je,jsxs as js}from"react/jsx-runtime";var jm="data-daily-report-comment-section",Ym="data-daily-report-comment-heading",qm=h(st,J),Gs=(e,t)=>e>0||t,Xm=h("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",J),Zm=h("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",J),zs=e=>e.querySelector(`[${kn}][aria-expanded="true"]`),Jm=(e,t,r)=>{let n=[...e.querySelectorAll(`[${kn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${sa}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return Gs(i,r)?{kind:"heading"}:{kind:"report"}},Qm=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:l,onSectionRemoved:c})=>{let d=ca(null),y=$m(),g=zm(),x=o!==null,I=da(()=>{let b=d.current,v=b===null?null:zs(b),_=v===null?null:v.closest(`[${Pn}]`),D=b===null?null:Ne(b);a(null),v!==null&&_!==null&&D!==null&&_.contains(D)&&v.focus({preventScroll:!0})},[a]);$s(()=>{if(x)return y({id:g,onEscape:b=>Ar(b)?(I(),!0):!1})},[x,y,g,I]),$s(()=>{let b=d.current;if(!x||b===null)return;let v=b.ownerDocument,_=D=>{let F=zs(b)?.closest(`[${Pn}]`);F!=null&&fe(D.target)&&F.contains(D.target)||a(null)};return v.addEventListener("pointerdown",_,!0),()=>v.removeEventListener("pointerdown",_,!0)},[x,a]);let m=da((b,v)=>{v?I():a(b)},[I,a]),R=da(b=>{let v=d.current;if(v===null)return;let _=Jm(v,b,s);if(_.kind==="report"){c();return}let D=_.kind==="trash"?_.button:l.current;if(D===null)throw new Error("[daily-report] the comment section's heading is not attached");D.focus({preventScroll:!0})},[s,l,c]);return e.length===0?null:je("ul",{ref:d,className:"space-y-2",children:e.map(b=>je(la,{comment:b,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:m,onBeforeHide:R,resolvedIdMap:i},b.id))})},Hn=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=H(),a=ca(null);return Gs(r.comments.length,r.canComment)?js("div",{[jm]:"",className:h("flex flex-col gap-2",e),children:[je(He,{ref:a,level:gt[o],tabIndex:-1,[Ym]:"",className:qm,children:n.comments}),je(Qm,{...r,headingRef:a}),t]}):null},Fn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=Gm(!1),a=ca(null),{labels:i}=H();return js("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let d=new FormData(l.currentTarget).get("content")?.trim();if(d&&r){o(!0),a.current?.reset();try{await r(d)}catch{if(a.current){let y=a.current.elements.namedItem("content");y&&(y.value=d)}}finally{o(!1)}}},children:[je("input",{type:"hidden",name:"intent",value:"addComment"}),je("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&je("input",{type:"hidden",name:"businessDate",value:t}),je(Se,{render:l=>je("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:Xm,autoComplete:"off"})}),je(Se,{render:l=>je("button",{type:"submit",tabIndex:l,className:Zm,disabled:n,children:i.commentSend})})]})};import{useEffect as sp,useRef as lp,useState as ua}from"react";import{Slot as ep}from"@radix-ui/react-slot";import{cva as tp}from"class-variance-authority";import*as Ys from"react";import{jsx as np}from"react/jsx-runtime";var rp=tp(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${J}`,{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-solid border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ct=Ys.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>np(n?ep:"button",{className:h(rp({variant:t,size:r,className:e})),ref:a,...o}));ct.displayName="Button";import{jsx as op}from"react/jsx-runtime";function qs({className:e,type:t,...r}){return op("input",{type:t,"data-slot":"input",className:h(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...r})}import*as Xs from"@radix-ui/react-label";import{jsx as ap}from"react/jsx-runtime";function _r({className:e,...t}){return ap(Xs.Root,{"data-slot":"label",className:h("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as ip}from"react/jsx-runtime";function Zs({className:e,...t}){return ip("textarea",{"data-slot":"textarea",className:h(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...t})}import{jsx as We,jsxs as Bn}from"react/jsx-runtime";var dp=e=>{e.preventDefault()},Un=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=_e(),{labels:i}=H(),[s,l]=ua(e.subject??""),[c,d]=ua(e.content??""),[y,g]=ua(!1),x=lp(e.reportHubId);sp(()=>{e.reportHubId!==x.current&&(l(e.subject??""),d(e.content??""),x.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let I=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{g(!1)}},m=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{g(!1)}},R=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return Bn("form",{className:"space-y-4 p-1",onSubmit:dp,children:[Bn("div",{className:"space-y-2",children:[We(_r,{htmlFor:R,children:i.formTitle}),We(Se,{render:v=>We(qs,{ref:n,id:R,value:s,onChange:_=>l(_.target.value),placeholder:i.formTitlePlaceholder,disabled:y,tabIndex:v})})]}),Bn("div",{className:"space-y-2",children:[We(_r,{htmlFor:b,children:i.formContent}),We(Se,{render:v=>We(Zs,{id:b,value:c,onChange:_=>d(_.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:y,tabIndex:v})})]}),Bn("div",{className:"flex justify-end gap-2",children:[t&&We(Se,{render:v=>We(ct,{type:"button",variant:"outline",onClick:t,disabled:y,tabIndex:v,children:i.formCancel})}),We(Se,{render:v=>We(ct,{type:"button",variant:"secondary",onClick:I,disabled:y,tabIndex:v,children:i.formSave})}),We(Se,{render:v=>We(ct,{type:"button",onClick:m,disabled:y,tabIndex:v,children:i.formPublish})})]})]})};import gp from"lucide-react/dist/esm/icons/check.js";import Rp from"lucide-react/dist/esm/icons/pencil.js";import hp from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as Js}from"react/jsx-runtime";var Wn=24,Qs=2,cp=20,Vn=5,up=3,mp=()=>{let e=Math.cos(2*Math.PI/Vn)/Math.cos(Math.PI/Vn),t=Array.from({length:2*Vn},(g,x)=>{let I=-Math.PI/2+x*Math.PI/Vn,m=x%2===0?1:e;return{x:m*Math.cos(I),y:m*Math.sin(I)}}),r=t.map(g=>g.x),n=t.map(g=>g.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(cp-Qs)/(a-o),c=Wn/2-l*(o+a)/2,d=Wn/2-l*(i+s)/2,y=g=>String(Number(g.toFixed(up)));return t.map(g=>`${y(c+l*g.x)},${y(d+l*g.y)}`).join(" ")},pp=mp(),Yt=({filled:e})=>Js("svg",{viewBox:`0 0 ${Wn} ${Wn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:Qs,strokeLinejoin:"round",className:e?ge.starOn:ge.starOff,children:Js("polygon",{points:pp})});import{Fragment as fp,jsx as Kn,jsxs as bp}from"react/jsx-runtime";var qt=({config:e,id:t,className:r})=>Kn("span",{id:t,className:h(za,e.badgeClassName,r),children:e.name===void 0?e.label:bp(fp,{children:[Kn("span",{"aria-hidden":"true",children:Kn("abbr",{title:e.name,children:e.label})}),Kn("span",{className:"sr-only",children:e.name})]})});import{jsx as el}from"react/jsx-runtime";var $n=24,yp=6,Xt=({className:e})=>el("svg",{viewBox:`0 0 ${$n} ${$n}`,"aria-hidden":"true",className:h(ge.read,e),children:el("circle",{cx:$n/2,cy:$n/2,r:yp,fill:"currentColor"})});import{jsx as Qe,jsxs as rl}from"react/jsx-runtime";var de=({label:e,classNames:t,valueId:r,children:n})=>rl("div",{className:t.field,children:[Qe("dt",{className:t.label,children:e}),Qe("dd",{id:r,className:h("m-0",t.value),children:n})]}),ht={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},tl=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return rl("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Qe(de,{label:r.author,classNames:ht,children:le(e.author)}),Qe(de,{label:r.createdAt,classNames:ht,children:se(e.createdAt)}),Qe(de,{label:r.updatedBy,classNames:ht,children:le(e.updatedBy)}),Qe(de,{label:r.updatedAt,classNames:ht,children:se(e.updatedAt)}),Qe(de,{label:r.businessDate,classNames:ht,children:se(e.date)}),t!==null&&Qe(de,{label:r.visitTime,classNames:ht,children:t}),n&&Qe(de,{label:r.category,classNames:ht,children:n}),o&&Qe(de,{label:r.creationCategory,classNames:ht,children:o})]})};import{jsx as oe,jsxs as al}from"react/jsx-runtime";var zn={field:h(Le,"gap-1 whitespace-nowrap bg-slate-100 text-slate-800 dark:bg-slate-800 dark:text-slate-100"),label:"text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:""},Sp={field:h(Le,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},nl={field:h(Le,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},vp=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,ol=({text:e})=>vp.test(e)?oe("time",{dateTime:e,children:e}):e,il=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:d,markerIds:y,labels:g})=>{let x=r?g.starRemove:g.starAdd,I=t?g.markUnread:g.markRead,m=e.category?.trim(),R=e.creationCategory?.trim();return al("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[oe(cr,{id:y.attachments,count:e.attachments.length,label:g.attachments}),c?oe(qt,{id:y.source,config:c}):null,oe(Se,{render:b=>oe("button",{type:"button",onClick:a,tabIndex:b,className:De,title:x,"aria-label":x,"data-detail-star-button":e.reportHubId,children:oe(Yt,{filled:r})})}),oe(Se,{render:b=>oe("button",{type:"button",onClick:o,tabIndex:b,className:De,title:I,"aria-label":I,"data-detail-read-button":e.reportHubId,children:t?oe(gp,{className:ge.read}):oe(Xt,{})})}),i&&oe(Se,{render:b=>oe("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:De,title:g.edit,"aria-label":g.edit,children:oe(Rp,{className:ge.edit})})}),n&&oe(Se,{render:b=>oe("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:De,title:g.deleteReport,"aria-label":g.deleteReport,children:oe(hp,{className:ge.delete})})}),al("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[oe(de,{label:g.id,classNames:Sp,children:e.reportHubId}),oe(de,{label:g.businessDate,classNames:zn,children:oe(ol,{text:se(e.date)})}),oe(de,{label:g.author,classNames:zn,children:le(e.employeeName)}),oe(de,{label:g.visitTime,classNames:zn,children:le(d)}),oe(de,{label:g.updatedAt,classNames:zn,children:oe(ol,{text:se(e.updatedAt)})}),m&&oe(de,{label:g.category,classNames:nl,children:m}),R&&oe(de,{label:g.creationCategory,classNames:nl,children:R})]})]})};import{useCallback as jp,useContext as _l,useLayoutEffect as ga,useRef as Dl}from"react";import{startTransition as Fp,useCallback as ee,useLayoutEffect as Mt,useMemo as Il,useRef as Et,useState as Mr,useSyncExternalStore as Bp}from"react";import{flushSync as Ll}from"react-dom";var Zt=e=>({owner:e,focusIndex:null}),ma=Object.freeze({owner:null,focusIndex:null}),sl=(e,t)=>{if(e.length===0)return ma;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},ll=(e,t)=>{switch(t.kind){case"focusIn":return Zt(t.row);case"focusOut":return t.to==="outside"?ma:Zt(e);case"pointerPress":return t.at==="outside"?ma:Zt(e);case"listChanged":{if(e===null)return Zt(e);let r=ce(t.items,e.reportHubId,e.index);return r===-1?sl(t.items,e.index):Zt(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?Zt(e):sl(t.items,t.selection.index)}};var Gn=e=>e.matches(":focus-visible");var Ep="data-daily-report-keyboard-focus",St={capture:!0},dl=e=>{let t=i=>{e.toggleAttribute(Ep,fe(i)&&Gn(i))},r=i=>t(i.target),n=i=>{fe(i.relatedTarget)&&e.contains(i.relatedTarget)||t(null)},o=()=>t(null);e.addEventListener("focusin",r,St),e.addEventListener("keydown",r,St),e.addEventListener("focusout",n,St),e.addEventListener("pointerdown",o,St);let a=Ne(e);return t(a!==null&&e.contains(a)?a:null),()=>{e.removeEventListener("focusin",r,St),e.removeEventListener("keydown",r,St),e.removeEventListener("focusout",n,St),e.removeEventListener("pointerdown",o,St),t(null)}};var Tp='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',xp=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Cp=xp.map(e=>`[role="${e}"]`).join(", "),Ip=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Lp=new Set(["Enter"," "]),Ap=new Map([["Home","exitBefore"],["End","exitAfter"]]),pa=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return Ap.get(e.key)??null;let r=Ip.get(e.key);return r!==void 0?r:Lp.has(e.key)&&t.rowActivation?"activate":null},cl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},ul=(e,t,r)=>{let n=pa(e,r);if(n===null||e.defaultPrevented||Lr(e)||t===null||!fe(e.target)||!t.contains(e.target))return null;let o=ft(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:cl(e.target,Tp,t)||cl(e.target,Cp,t)?null:n};var jn={kind:"stay"},Yn=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},ml=e=>Math.floor(.875*e),vt=(e,t)=>({kind:"move",index:e,align:t}),Dr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",_p=({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},Dp=({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},wp=(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 jn;if(r==="top")return vt(n-1,"top");let c=s(n-1);return vt(n-1,Dr(i-c,c,a,-1))}case"next":return n===o-1?jn:r==="top"?vt(n+1,"top"):vt(n+1,Dr(l,s(n+1),a,1));case"first":return vt(0,"top");case"last":return vt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,ml(a))};if(n===o-1)return jn;let c=_p(t);return vt(c.index,Dr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,ml(a))};if(n===0)return jn;let c=Dp(t);return vt(c.index,Dr(c.top,s(c.index),a,-1))}}},Np=({index:e,focusedRowTop:t,heightOf:r},n)=>gl(n,{index:e,offsetPx:-t},r),bl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=wp(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:Np(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}},yl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Dr(r,n(e),t,1),gl=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},wr=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=Yn(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:gl(t,s,i),heightOf:i}},pl=1,Rl=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Nr(o,n,t,r);return{start:Math.max(0,o.index-pl),end:Math.min(t-1,a+pl)}},Nr=(e,t,r,n)=>{let o=Yn(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},hl=(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,fl=(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(fl(t,n,o))return t.reportHubId;if(fl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var ba=1,Or=2,fa=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?ba:0)|(n===t||n===r?Or:0),Op=e=>{if(fn(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},Mp=(e,t)=>{let r=e.closest(`[${yn}]`);return r!==null&&r!==e&&wt(r)===t&&Ne(e)===r},vl=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=!1,a=null,i=new Map,s=new Map,l=null,c=new Map,d=m=>fa(r,m),y=m=>{let R=s.get(m);if(R===void 0)return;let b=(d(m)&Or)!==0?"0":"-1";R.getAttribute("tabindex")!==b&&R.setAttribute("tabindex",b)},g=m=>{let R={...r};m(r);let b=r,v=new Set([R.selectedId,R.tabStopId,R.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let _ of v){if(_===null)continue;let D=fa(R,_),F=fa(b,_);if(D===F)continue;((D^F)&Or)!==0&&y(_);let N=i.get(_);if(N!==void 0)for(let B of[...N])B()}},x=m=>{o=!0;try{m.focus({preventScroll:!0})}finally{o=!1}},I=m=>{let R=e();R!==null&&(n=null,Op(R)&&x(m))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:d,setTabStopId:m=>{g(R=>{R.tabStopId=m})},settleSelection:(m,R)=>{g(b=>{b.selectedId=m,b.tabStopId=R,b.arrivingId=null})},arrive:m=>{g(R=>{R.arrivingId=m})},subscribe:(m,R)=>{let b=i.get(m)??new Set;return b.add(R),i.set(m,b),()=>{b.delete(R),b.size===0&&i.get(m)===b&&i.delete(m)}},registerFocusTarget:(m,R)=>{if(s.set(m,R),y(m),n===m){I(R);return}a===null||a.reportHubId!==m||(fn(R)||Mp(R,m))&&x(R)},unregisterFocusTarget:(m,R)=>{s.get(m)===R&&s.delete(m)},requestFocus:m=>{n=m;let R=s.get(m);R!==void 0&&I(R)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:m=>{a=m},restoreFocus:m=>{if(a===null||a.reportHubId!==m)return;let R=s.get(m);R===void 0||!fn(R)||x(R)},holdBodiesOutside:m=>{l=m},isBodyHeldAt:m=>l!==null&&(m<l.start||m>l.end),registerHeldBody:(m,R,b)=>{let v={indexHint:R,release:b};return c.set(m,v),()=>{c.get(m)===v&&c.delete(m)}},releaseHeldBodiesWithin:(m,R)=>{if(m!==null)for(let[b,{indexHint:v,release:_}]of[...c]){let D=R(b,v);D>=m.start&&D<=m.end&&_()}}}};var Ye={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},ya=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),kp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),El=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Pp=new Map(Object.values(Ye).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),Tl=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},Hp=(e,t,r)=>e==="row"||e==="page"?t+r:r,xl=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:Tl(e)}),Cl=(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",Tl(r)):(e.pending=Hp(e.axis,e.pending,r.amount),ya)}case"frame":{if(e.fence==="open")return ya;if(e.fence==="immediate")return e.fence="flush",kp;if(e.pending===0)return e.fence="open",ya;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?El:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return El}};var Up=Object.freeze({kind:"frame"}),Vp=Object.freeze({kind:"keyup"}),Wp=Object.freeze({kind:"cancel"}),Kp=Object.freeze({previous:Object.freeze({kind:"repeat",step:Ye.previous}),next:Object.freeze({kind:"repeat",step:Ye.next}),pageBackward:Object.freeze({kind:"repeat",step:Ye.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:Ye.pageForward}),first:Object.freeze({kind:"repeat",step:Ye.first}),last:Object.freeze({kind:"repeat",step:Ye.last}),activate:Object.freeze({kind:"repeat",step:Ye.activate})}),$p=(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}},zp=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),Gp=e=>{let t=wt(e),r=$t(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},qn=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Bp(r,n,n);return{isCurrent:(o&ba)!==0,isTabStop:(o&Or)!==0}},Xn=(e,t,r)=>{let[n,o]=Mr(()=>!e.isBodyHeldAt(r));return Mt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Fp(a),i},[e,t,r,n]),n},Al=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:l,rowActivation:c})=>{let[d]=Mr(()=>vl({getContainer:()=>n.current,initialSelectedId:t})),y=Et({items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c}),g=Et(null),x=Et(null),[I,m]=Mr(null),R=Et(null),b=Et(null),[v,_]=Mr(null),D=Et(!1),F=Et(null),[N,B]=Mr(0),M=Il(()=>({id:t,indexHint:t===null?null:Pi(I,t)}),[t,I]),j=Et(M);Mt(()=>{y.current={items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c},j.current=M},[e,r,s,l,c,M]);let q=ee((C,p)=>{let u=x.current;if(u!==null&&u.items===C&&u.reportHubId===p)return u.index;let E=ce(C,p,u!==null&&u.reportHubId===p?u.index:null);return E!==-1&&(x.current={items:C,reportHubId:p,index:E}),E},[]),z=ee((C,p)=>{x.current={items:y.current.items,reportHubId:C,index:p},m(u=>u!==null&&u.reportHubId===C&&u.index===p?u:{reportHubId:C,index:p})},[]),Q=ee(C=>{let p=d.getFocusOwner();if(p===null)return null;let u=ce(C,p.reportHubId,p.index);return u===-1?null:{reportHubId:p.reportHubId,index:u}},[d]),U=ee(C=>{let p=y.current.items,u=C===null?null:{reportHubId:C,index:q(p,C)};return Sl(p,Q(p),u,g.current,F.current)},[q,Q]),X=ee(()=>{d.setTabStopId(U(d.getSelectedId()))},[d,U]),K=ee(C=>{let p=d.getFocusOwner();p===C||p!==null&&C!==null&&p.reportHubId===C.reportHubId&&p.index===C.index||(d.setFocusOwner(C),D.current||X())},[d,X]),V=ee(C=>{let p=ll(d.getFocusOwner(),C);K(p.owner),p.focusIndex!==null&&(R.current=p.focusIndex,d.requestFocus(p.owner.reportHubId))},[d,K]);Mt(()=>{d.settleSelection(t,U(t))},[d,t,e,N,U]),Mt(()=>{let C=o.current;if(C!==null)return dl(C)},[o]),Mt(()=>{let C=n.current;if(C===null)return;let p=C.ownerDocument,u=E=>{let T=n.current,L=E.target;V({kind:"pointerPress",at:T!==null&&fe(L)&&T.contains(L)?"inside":"outside"})};return p.addEventListener("pointerdown",u,{capture:!0}),()=>p.removeEventListener("pointerdown",u,{capture:!0})},[n,V]),Mt(()=>{let C=d.pendingFocusId();C!==null&&ce(e,C,R.current)===-1&&d.cancelFocusRequest(),V({kind:"listChanged",items:e})},[d,e,V]);let re=ee(C=>{V({kind:"removed",reportHubId:C,selection:x.current,items:y.current.items})},[V]),ue=ee((C,p,u)=>{let{items:E,onSelect:T,rowSizing:L,arrowAlign:f}=y.current,S=a.current;if(T===null||S===null)return null;let w=ce(E,u.reportHubId,u.index);if(w===-1)return null;let O=wr(S,w,E.length,L);if(O===null)return null;let P=bl(C,p,O,f),te=E[P.index],ze=P.index!==w;if(ze){d.arrive(te.reportHubId),F.current=te.reportHubId,R.current=P.index,D.current=!0;try{d.requestFocus(te.reportHubId)}finally{D.current=!1}}try{Ll(()=>{ze&&(d.pendingFocusId()===null&&d.settleSelection(te.reportHubId,te.reportHubId),T(te.reportHubId,P.index)),P.alignment!==null&&i.toIndex(P.alignment.index,{align:P.alignment.align}),P.scrollDelta!==0&&i.by(P.scrollDelta),ze&&(z(te.reportHubId,P.index),B(bo=>bo+1));let ar=Rl(S,E.length,L);d.holdBodiesOutside(ar),d.releaseHeldBodiesWithin(ar,(bo,_d)=>ce(E,bo,_d))})}finally{d.holdBodiesOutside(null)}return ze?{reportHubId:te.reportHubId,index:P.index}:{reportHubId:u.reportHubId,index:w}},[d,a,i,z]),Z=ee(C=>{let{items:p,onSelect:u}=y.current;if(u===null)return;let E=ce(p,C.reportHubId,C.index);E!==-1&&(u(C.reportHubId,E),z(C.reportHubId,E))},[z]),W=ee(C=>{let p=n.current,u=p===null?null:Ne(p),E=p!==null&&u!==null&&p.contains(u)?br(ft(u,p),y.current.items):null;return E===null?C.origin:E},[n]),ie=ee((C,p)=>{let u=W(C);if(p.axis==="activate"){Z(u);return}let E=$p(p.axis,p.amount),T=ue(E.command,E.count,u);T!==null&&(C.origin=T)},[W,Z,ue]),be=ee(C=>{b.current=null,C.frame!==0&&C.view.cancelAnimationFrame(C.frame),_(null)},[]),Ee=ee((C,p,u)=>{let{apply:E}=p;E!==null&&(p.flush?Ll(()=>ie(C,E)):ie(C,E)),b.current===C&&(p.ended?be(C):p.requestFrame&&(C.frame=C.view.requestAnimationFrame(u)))},[ie,be]),Re=ee((C,p,u)=>{Ee(C,Cl(C.state,p),u)},[Ee]),he=ee(()=>{let C=b.current;C!==null&&(C.frame=0,Re(C,Up,he))},[Re]),ye=ee(()=>{let C=b.current;C!==null&&Re(C,Vp,he)},[Re,he]),Ke=ee(()=>{let C=b.current;C!==null&&Re(C,Wp,he)},[Re,he]),nt=ee((C,p,u)=>{_(j.current);let{state:E,effects:T}=xl(Ye[C]),L={state:E,origin:p,view:u,frame:0};b.current=L,Ee(L,T,he)},[Ee,he]);Mt(()=>()=>{let C=b.current;b.current=null,C!==null&&C.frame!==0&&C.view.cancelAnimationFrame(C.frame)},[]);let $e=ee(C=>{let p=b.current,u=p!==null&&C.repeat?pa(C,y.current):null;if(p!==null&&u!==null&&u!=="exitBefore"&&u!=="exitAfter"&&Ye[u].axis===p.state.axis){C.preventDefault(),Re(p,Kp[u],he);return}let{items:E,onSelect:T,rowSizing:L,rowActivation:f}=y.current,S=n.current,w=T===null?null:ul(On(C),S,{rowActivation:f});if(d.cancelFocusRequest(),ye(),w===null||S===null)return;if(w==="exitBefore"||w==="exitAfter"){let te=Rs(S,w==="exitBefore"?"before":"after");if(te===null)return;C.preventDefault(),te.focus();return}let O=Ne(S),P=br(ft(O!==null&&S.contains(O)?O:C.target,S),E);if(P!==null){if(w!=="activate"){let te=a.current;if(te===null||wr(te,P.index,E.length,L)===null)return}if(C.preventDefault(),C.repeat){nt(w,P,Ge(S));return}w==="activate"?Z(P):ue(w,1,P)}},[d,n,a,he,Re,ye,nt,Z,ue]),ke=ee(()=>{ye()},[ye]),qe=ee(C=>{let p=n.current,u=C.target,E=ft(u,p);if(V({kind:"focusIn",row:E===null?null:Gp(E)}),d.isMovingFocus())return;let T=a.current;if(p===null||T===null||!fe(u)||!Gn(u))return;let L=E===null?null:E.closest('[role="list"]');if(E===null||L===null)return;let f=L.getBoundingClientRect(),S=E.getBoundingClientRect(),w=S.height<=f.height?S:zp(u.getBoundingClientRect(),Bt),O=hl(w,f),P=T.getViewportSize();O===0||!(P>0&&f.height>0)||i.by(O*P/f.height)},[d,n,a,i,V]),ot=ee(C=>{let p=n.current,u=C.relatedTarget,E=fe(u)?p?.contains(u)?"view":"outside":"nowhere";E!=="view"&&Ke(),V({kind:"focusOut",to:E})},[n,Ke,V]),Ie=ee(()=>{d.cancelFocusRequest(),Ke()},[d,Ke]),at=ee(C=>{g.current={visibleStartIndex:C.visibleStartIndex,visibleEndIndex:C.visibleEndIndex},F.current=null,X()},[X]),it=Il(()=>({onKeyDown:$e,onKeyUp:ke,onPointerDownCapture:Ie,onWheelCapture:Ie,onTouchStartCapture:Ie,onFocus:qe,onBlur:ot}),[$e,ke,Ie,qe,ot]);return{cursor:d,containerProps:it,handleRangeChange:at,selection:M,settledSelection:v===null?M:v,resolveSelectedIndex:q,rememberSelection:z,focusAfterRemoval:re}};import{jsx as Ra}from"react/jsx-runtime";var Yp=h(pt,zr,Gr,$r,"h-full"),qp="h-full w-full",wl=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=qn(a,e),c=_l(yt),d=_l(bt),y=Xn(a,e,c),g=Dl(null),x=Dl(null),I=jp(m=>(g.current=m,a.registerFocusTarget(e,m),()=>{g.current=null,a.unregisterFocusTarget(e,m)}),[a,e]);return ga(()=>{let m=g.current,R=m===null||!y?null:m.firstElementChild,b=R instanceof HTMLElement?R:null,v=x.current;v!==null&&v.body===b||(v!==null&&v.stop(),x.current=b===null?null:{body:b,stop:o(b)})}),ga(()=>()=>{x.current?.stop(),x.current=null},[]),ga(()=>{a.restoreFocus(e)},[a,e,n]),Ra(Er.Provider,{value:l,children:Ra("div",{ref:I,className:Yp,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":d,"aria-labelledby":y&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":y&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!y?!0:void 0,"aria-current":s?"true":void 0,children:y?i:Ra("div",{...Pe,className:qp})})})};import{jsx as $,jsxs as ve}from"react/jsx-runtime";var Jp=h("flex w-full flex-col",Xe,Yr,ir),Qp=h(Xe,ir),ef=h("rounded-2xl",ir),tf=h("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",ir),xe="bg-slate-200 dark:bg-slate-700",rf=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},nf=()=>ve("div",{...Pe,className:Qp,children:[ve("div",{className:"mb-4 flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-20 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-28 rounded-full",xe)})]}),ve("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"space-y-4",children:[$("div",{className:h("h-5 w-40 rounded",xe)}),$("div",{className:h("h-5 w-56 rounded",xe)}),$("div",{className:h("h-24 rounded-xl",xe)})]}),ve("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[$("div",{className:h("mb-2 h-4 w-24 rounded",xe)}),$("div",{className:h("mb-2 h-4 w-28 rounded",xe)}),$("div",{className:h("h-4 w-32 rounded",xe)})]})]}),ve("div",{className:"space-y-4",children:[$("div",{className:h("h-4 w-24 rounded",xe)}),ve("div",{className:"flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)})]}),ve("div",{className:"space-y-2",children:[$("div",{className:h("h-16 rounded-xl",xe)}),$("div",{className:h("h-16 rounded-xl",xe)})]})]})]}),of=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=Dt(e.reportHubId,e.businessDate),{removeStaleItem:c}=_e(),{draftLabelName:d,sourceTypeConfigs:y}=H(),[g,x]=Ol(!1),[I,m]=Ol(!1),R=kr(!1),b=kr(!1),v=kr(!1),_=kr(!1);Nl(()=>{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(W=>W.name===d),F=n&&a?.userId===n,N=Jt(()=>{b.current=!0,R.current=!1,x(!0)},[]),B=Jt(()=>{v.current=!0,x(!1),m(!0)},[]),M=Jt(()=>{v.current=!0,x(!1)},[]),j=Jt(W=>{W===null||!b.current||(b.current=!1,W.focus())},[]),q=Jt(W=>{W===null||!v.current||(v.current=!1,W.focus())},[]);Zp(()=>{g||(v.current=!1)},[g]),Nl(()=>{a&&F&&D&&!g&&!I?(x(!0),R.current=!0):a&&!D&&g&&R.current&&(x(!1),R.current=!1)},[a,F,D,g,I]);let z=Jt(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),Q=Xp(),U=ha(()=>({heading:`${Q}-heading`,state:`${Q}-state`,attachments:`${Q}-attachments`,source:`${Q}-source`}),[Q]),X=a!==null&&a.attachments.length>0,K=a===null?void 0:At(a.sourceType,y),V=[U.state,...X?[U.attachments]:[],...K!==void 0?[U.source]:[]].join(" "),re=!i&&a!==null&&!g?{kind:"card",ids:U,describedBy:V}:{kind:"label",label:se(e.businessDate)},ue=!i&&a===null&&s,Z=i?"error":a===null?s?"loading":"missing":g?"editing":"resolved";return $(wl,{itemId:e.reportHubId,name:re,isBusy:ue,bodyKind:Z,observeRowHeight:t,cursor:o,children:i?$(af,{itemId:e.reportHubId}):a?g?$("div",{...Pe,className:ef,children:$(Un,{report:a,onCancel:B,onPublishSuccess:M,titleInputRef:j})}):$(Pl,{item:e,report:a,sourceConfig:K,textIds:U,onCommentAdded:r,userId:n,onEdit:F?N:void 0,editButtonRef:q,onCommentSectionRemoved:z}):$(nf,{})})},kl=Ml(of),Pl=Ml(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:l})=>{let c=kr(null),{toggleStar:d,toggleRead:y,pendingStarUpdates:g,pendingReadUpdates:x,deleteReport:I,user:m}=_e(),{uiComments:R,handleAddComment:b,handleDeleteComment:v,pendingDeleteId:_,setPendingDeleteId:D,resolvedIdMap:F}=hr(t,m,a),{labels:N,headingLevel:B}=H(),M=gt[B],j=en(t.sourceType,r),q=async ie=>{await b(ie),o?.(e.reportHubId)},z=g.current.get(t.reportHubId),Q=z===void 0?t.isStarred:z,U=x.current.get(t.reportHubId),X=U===void 0?t.isRead:U,K=!!(a&&t.userId===a),V=async()=>{try{await y(t.reportHubId,!X,t.date)}catch{}},re=async()=>{try{await d(t.reportHubId,!Q,t.date)}catch{}},ue=async()=>{confirm(N.confirmDelete)&&await I(t.reportHubId,t.date)},Z=ha(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
3
- `).trim():"",[t.content]),W=ha(()=>{let ie=t.visitTimeFrom?.trim(),be=t.visitTimeTo?.trim();return ie&&be?`${ie} - ${be}`:ie||be||null},[t.visitTimeFrom,t.visitTimeTo]);return ve("div",{...Pe,onDoubleClick:i,className:Jp,children:[$(He,{level:B,id:n.heading,className:"sr-only",children:`${se(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),$("span",{id:n.state,className:"sr-only",children:N.rowState({isRead:X,isStarred:Q})}),ve("div",{className:"flex flex-col gap-4",children:[$(il,{report:t,sourceConfig:r,isRead:X,isStarred:Q,isMine:K,onToggleRead:V,onToggleStar:re,onEdit:i,editButtonRef:s,onDelete:ue,visitTimeDisplay:W,markerIds:n,labels:N}),ve("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[ve("div",{className:"flex flex-col gap-4",children:[ve("div",{className:"grid gap-4 sm:grid-cols-2",children:[ve("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.customer}),$("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),ve("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.subject}),$("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),Z&&ve("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.content}),$("div",{className:h("whitespace-pre-wrap",jr),children:Z})]}),t.interviewers.length>0&&ve("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.interviewers}),$("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ie=>$("li",{className:h(Le,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:rf(ie,N)},JSON.stringify([ie.name,ie.affiliation])))})]}),$(Nn,{attachments:t.attachments}),$(Hn,{comments:R,canComment:j,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:v,pendingDeleteId:_,onPendingDeleteIdChange:D,resolvedIdMap:F,onSectionRemoved:l}),j&&$("div",{className:"mt-auto",ref:c,children:$(Fn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:q})})]}),$(tl,{report:t,visitTimeDisplay:W,labels:N})]})]})]})});Pl.displayName="DailyReportResolvedItem";var af=({itemId:e})=>{let{labels:t}=H();return $("div",{...Pe,className:tf,children:$("p",{children:t.reportLoadFailed(e)})})};import{useCallback as Vl,useId as bf,useMemo as Wl,useRef as yf}from"react";import{useCallback as sf,useLayoutEffect as Hl,useMemo as Fl,useRef as Sa}from"react";var lf=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},df=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},cf=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},uf=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?df(e.index,a,n.rowHeight,r.length):cf(e.index,a,Yn(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Nr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},mf=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ce(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},Bl=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=Sa(null),a=Sa(e),i=Sa(r),s=sf(()=>{let c=t.current,d=c===null?-1:c.getScrollPosition(),y=c===null||!(d>0)?null:c.getScrollAnchor(),g=a.current,x=y===null?void 0:g[y.index],I=c===null?0:c.getViewportSize();o.current=y===null||x===void 0||!(I>0)?null:{reportHubId:x.reportHubId,index:y.index,offsetPx:y.offsetPx,lastVisibleIndex:Nr(y,I,g.length,i.current),recordedAt:d}},[t]),l=Fl(()=>({toIndex:(c,d)=>{let y=t.current;y!==null&&(y.scrollToIndex(c,d),s())},by:c=>{let d=t.current;d!==null&&(d.scrollBy(c),s())},resizeRow:(c,d)=>{let y=t.current;y!==null&&(y.updateItemSize(c,d),s())}}),[t,s]);return Hl(()=>{let c=a.current;a.current=e;let d=o.current,y=t.current;if(c===e||d===null||y===null||n())return;let g=uf(d,y.getScrollPosition(),c,i.current,y.getViewportSize());if(g===null){o.current=null;return}let x=ce(e,g.reportHubId,g.index),I=x===-1?mf(c,e,g):x;if(I===-1){o.current=null;return}if(I===g.index&&!lf(c,e,g.index,g.lastVisibleIndex)){o.current=g;return}y.scrollToIndex(I,{align:"top",offset:-g.offsetPx}),o.current={reportHubId:e[I].reportHubId,index:I,offsetPx:g.offsetPx,lastVisibleIndex:Nr({index:I,offsetPx:g.offsetPx},y.getViewportSize(),e.length,r),recordedAt:y.getScrollPosition()}},[e,t,r,n]),Hl(()=>{i.current=r},[r]),Fl(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:l}),[s,l])};import{useCallback as pf}from"react";var ff=20,Ul=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>pf(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:l=>o.current.findIndex(c=>c.reportHubId===l),getReportItem:l=>o.current[l],getReportIds:(l=ff)=>o.current.slice(0,l).map(c=>c.reportHubId),revealIndex:(l,c)=>n.toIndex(l,c)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as gf}from"react/jsx-runtime";var Zn=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=yf(null),s=Vl(D=>(i.current=D,()=>{i.current=null}),[]),{handleRangeChange:l,handleScrollAdjust:c,scroller:d}=Bl({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:y,...g}=Al({...a,containerRef:e,handleRef:i,scroller:d}),x=Ul({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:d,itemsRef:r}),{labels:I}=H(),m=bf(),R=a.onSelect!==null,b=Vl(D=>{y(D),l(),o(D)},[y,l,o]),v=Wl(()=>({role:"list","aria-label":I.title,"aria-describedby":R?m:void 0}),[I.title,R,m]),_=Wl(()=>R?gf("span",{id:m,className:"sr-only",children:I.listKeyboardHelp}):null,[R,m,I.listKeyboardHelp]);return{...g,handleRangeChange:b,handleScrollAdjust:c,attachVirtualScroll:s,handleRef:i,scroller:d,attachScrollContainer:x,contentProps:v,keyboardHelp:_}};import{Fragment as If,jsx as xt,jsxs as Cf}from"react/jsx-runtime";var $l={pointerDragInputs:ln,wheelSpeedMultiplier:tn,inertiaOptions:zt(!1),enableKeyboardNavigation:!1},Sf={...$l,inertiaOptions:zt(!0)},Kl="daily-report-detail-list",vf=h("relative w-full",Zr,Xr),Ef=h(Be,"relative"),Tf=300,Ea=e=>{let t=Oe(null),[r,n]=Jn(null),o=bn(t),a=gn(r),i=Ce(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return xt("div",{ref:i,className:qr,children:o===null?null:xt(xf,{...e,viewportHeight:o,reducedMotion:a})})},xf=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=Jn(()=>{let f=o?.current;if(!f||f.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!f.topItem)return{initialScrollAnchor:void 0,restored:!0};let S=e.findIndex(w=>w.reportHubId===f.topItem?.reportHubId);return S!==-1?{initialScrollAnchor:{index:S,offsetPx:f.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:f.topItem.index,offsetPx:0},restored:!0}}),c=Oe(l),d=Oe(r??null),y=Oe(o?.current.measuredHeights??new Map),g=Oe(null),x=un(),I=Do(),[m]=Jn(Rn),R=Oe(null),b=Oe(null),v=Oe(e),_=Oe(n);hf(()=>{v.current=e,_.current=n},[e,n]);let D=Oe(null),[F,N]=Jn(0),B=Oe(null),M=e.length,j=Ce(f=>f>=M?nn:e[f],[e,M]),q=Ce(f=>{let S=y.current.get(j(f).reportHubId);return S===void 0?Ri:S},[j]),z=Ce(f=>j(f).reportHubId,[j]),Q=va(()=>({kind:"measured",heightOf:q}),[q]),U=Ce((f,S)=>{D.current={reportHubId:f,index:S},N(w=>w+1),_.current?.(f)},[]),X=Ce((f,S)=>{if(M===0)return;let w=Math.max(0,f),O=Math.min(M-1,S);if(w>O)return;let P=new Set;for(let te=w;te<=O;te++){let ze=j(te);if(ze.businessDate&&P.add(ze.businessDate),P.size>=bi)break}P.forEach(te=>{I(te)})},[j,M,I]),K=Ce(f=>{if(M===0)return;let{renderingStartIndex:S,renderingEndIndex:w,visibleStartIndex:O}=f,P=j(O);P.businessDate&&m.setLabel(se(P.businessDate)),X(S,w),X(w+1,w+rn),X(S-rn,S-1)},[j,M,X,m]),V=Ce(()=>B.current!==null,[]),{cursor:re,containerProps:ue,handleRangeChange:Z,handleScrollAdjust:W,attachVirtualScroll:ie,handleRef:be,scroller:Ee,attachScrollContainer:Re,contentProps:he,keyboardHelp:ye,resolveSelectedIndex:Ke,rememberSelection:nt}=Zn({items:e,selectedId:r??null,onSelect:n===void 0?null:U,containerRef:g,rootRef:g,testId:Kl,itemsRef:v,rowSizing:Q,arrowAlign:"top",rowActivation:!0,isViewRevealPending:V,onRangeChange:K}),$e=Ce((f,S)=>{if(be.current===null)return!1;let w=v.current,O=S!==null&&S.reportHubId===f?ce(w,f,S.index):Ke(w,f);return O===-1?!1:(c.current&&(c.current=!1,f===d.current)||S!==null&&S.reportHubId===f&&S.index===O||Ee.toIndex(O,{align:"top"}),!0)},[be,Ke,Ee]);Tt(()=>{let f=D.current;D.current=null,B.current=null,r!=null&&($e(r,f)||(B.current=r))},[r,$e]),Tt(()=>{let f=B.current;f!==null&&$e(f,null)&&(B.current=null)},[e,$e]),Tt(()=>{let f=o?.current;f&&(f.anchorReportHubId=r??null)},[r,o]),Tt(()=>{D.current=null},[F]);let ke=Oe(null),qe=Ce(()=>{be.current&&(ke.current=be.current);let f=o?.current,S=ke.current;if(f&&S){let O=S.getScrollAnchor(),P=O?v.current[O.index]:void 0;O&&P&&(f.topItem={reportHubId:P.reportHubId,index:O.index,offsetPx:O.offsetPx})}let w=g.current;w&&(w.toggleAttribute(Ft,!0),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{w.toggleAttribute(Ft,!1),b.current=null},150))},[be,o]),ot=Ce(f=>xt(hn,{...f,store:m}),[m]);Tt(()=>{let f=g.current;if(!f)return;let S=()=>{m.setWheelScrollActive(!0),R.current&&clearTimeout(R.current),R.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),R.current=null},on)};return f.addEventListener("wheel",S,{passive:!0}),()=>{f.removeEventListener("wheel",S),R.current&&clearTimeout(R.current)}},[m]);let Ie=Oe(null),at=Ce(f=>{for(let S of f){let w=S.target.parentElement,O=w===null?null:wt(w),P=w===null?null:$t(w),te=S.borderBoxSize[0];if(O===null||P===null||te===void 0)continue;let ze=te.blockSize+2*Bt;if(y.current.get(O)===ze)continue;let ar=ce(v.current,O,P-1);ar!==-1&&(y.current.set(O,ze),Ee.resizeRow(ar,ze))}},[Ee]),it=Ce(f=>{Ie.current===null&&(Ie.current=new ResizeObserver(at));let S=Ie.current;return S.observe(f),()=>S.unobserve(f)},[at]);Tt(()=>()=>{Ie.current?.disconnect(),Ie.current=null},[]),Tt(()=>{M!==0&&X(0,Math.min(M-1,rn))},[M,X]);let C=Oe(null),p=Ce(f=>{let S=ce(v.current,f,null);S!==-1&&(C.current!==null&&clearTimeout(C.current),C.current=setTimeout(()=>{C.current=null;let w=ce(v.current,f,S);w!==-1&&Ee.toIndex(w,{align:"bottom"})},Tf))},[Ee]);Tt(()=>()=>{C.current!==null&&clearTimeout(C.current)},[]);let u=Ce(f=>{if(!_.current)return;let S=ft(f.target,g.current);if(S===null||Ui(f.target,S))return;let w=br(S,v.current);w!==null&&(nt(w.reportHubId,w.index),U(w.reportHubId,w.index))},[U,nt]),E=Ce((f,S)=>xt(yt.Provider,{value:S,children:xt(kl,{item:f,observeRowHeight:it,onCommentAdded:p,userId:t,cursor:re})},f.reportHubId),[it,p,t,re]),T=va(()=>({...sn,renderThumbOverlay:ot}),[ot]),L=va(()=>xt(bt.Provider,{value:M,children:xt(Rf,{ref:ie,itemCount:M,getItem:j,getItemKey:z,getItemHeight:q,viewportSize:a,initialScrollAnchor:s,overscanCount:an,scrollBarOptions:T,behaviorOptions:i?Sf:$l,onRangeChange:Z,onScrollAdjust:W,onScroll:qe,testId:Kl,className:vf,locale:x.locale,labels:x.labels,contentProps:he,children:E})}),[ie,M,j,z,q,a,i,s,T,Z,W,qe,x.locale,x.labels,he,E]);return xt(If,{children:Cf("div",{ref:Re,className:Ef,...ue,onClick:u,children:[ye,L]})})};import Gl from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as Lf,useRef as zl,useState as Af}from"react";var Pr=(e,t=250)=>{let[r,n]=Af(e),o=zl(e),a=zl(!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 y=Math.min(1,Math.max(0,(d-l)/t)),g=1-(1-y)**3,x=Math.round(i+(e-i)*g);o.current=x,n(x),y<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as Qn,jsxs as eo}from"react/jsx-runtime";var Hr=()=>{let e=lt(),{labels:t}=H(),r=Pr(e.loadedCount),n=Pr(e.totalCount??0);if(e.phase==="streaming"){let o=e.totalCount&&e.totalCount>0?Math.min(100,Math.round(e.loadedCount/e.totalCount*100)):null;return eo("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:h(Le,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[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"?eo("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:h(Le,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[Qn(Gl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?eo("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:h(Le,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,Qn("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>Cn(),className:h("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",J),children:t.streamRetry})]}):e.isRevalidating?eo("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(Gl,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as gd,PanelGroup as zb,PanelResizeHandle as Gb}from"@aiquants/resize-panels";import{VirtualScroll as jb}from"@aiquants/virtualscroll";import{useCallback as rt,useEffect as lo,useLayoutEffect as Da,useMemo as co,useRef as or,useState as mo}from"react";import{useSyncExternalStore as _f}from"react";var jl="(max-width: 639px)",Df=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(jl);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},wf=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(jl).matches:!1,Nf=()=>!1,Yl=()=>_f(Df,wf,Nf);import{SwipeCloseGuardContext as eb,useOverlayEscapeStack as tb,useSwipeGuardState as rb,useSwipeToDismissOverlay as nb,useTapClick as ob,useTransitionDisplay as ab}from"@aiquants/swipe-overlay";import{useCallback as no,useEffect as tr,useId as Aa,useLayoutEffect as ad,useRef as tt,useState as oo}from"react";import{createContext as Of,useMemo as Mf}from"react";var ql=Object.freeze({id:null,indexHint:null}),to=Of(Object.freeze({selected:ql,settled:ql})),Fr=(e,t)=>{let{id:r,indexHint:n}=t;return Mf(()=>{if(r===null)return null;let o=ce(e,r,n);return o===-1?null:e[o]},[e,r,n])};import kf from"lucide-react/dist/esm/icons/check.js";import Pf from"lucide-react/dist/esm/icons/pencil.js";import Hf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Ff,useCallback as kt,useContext as Bf,useDeferredValue as Uf,useEffect as Ta,useId as ed,useLayoutEffect as Ca,useMemo as Vf,useRef as Pt,useState as xa}from"react";import*as ut from"@radix-ui/react-tabs";import*as Fe from"react";import{jsx as Br}from"react/jsx-runtime";var Xl=Fe.createContext(null),Zl=e=>{let t=Fe.useContext(Xl);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},Jl=(e,t)=>`${e}-trigger-${t}`,Ql=(e,t)=>`${e}-panel-${t}`,Ur=Fe.forwardRef(({value:e,children:t,...r},n)=>{let o=Fe.useId(),a=Fe.useMemo(()=>({baseId:o,value:e}),[o,e]);return Br(ut.Root,{ref:n,value:e,...r,children:Br(Xl,{value:a,children:t})})});Ur.displayName=ut.Root.displayName;var Vr=Fe.forwardRef(({className:e,...t},r)=>Br(ut.List,{ref:r,className:h("inline-flex",e),...t}));Vr.displayName=ut.List.displayName;var Wr=Fe.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=Zl("TabsTrigger");return Br(ut.Trigger,{ref:n,value:t,...r,id:Jl(o,t),"aria-controls":Ql(o,t),className:h(`${Ja} ${J}`,e)})});Wr.displayName=ut.Trigger.displayName;var Qt=Fe.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=Zl("TabsContent"),s=t===i;return Br("div",{ref:o,role:"tabpanel",id:Ql(a,t),"aria-labelledby":Jl(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:h(`mt-2 data-[state=inactive]:hidden ${J}`,e),children:s?r:null})});Qt.displayName="TabsContent";import{Fragment as Qf,jsx as k,jsxs as et}from"react/jsx-runtime";var nd=h(It,"w-24 shrink-0"),td={field:"flex items-baseline",label:nd,value:"flex-1"},Wf={field:"flex min-w-0 flex-1 items-baseline",label:nd,value:"wrap-break-word min-w-0 flex-1"},Kf={field:"flex flex-col gap-1",label:It,value:""},$f={field:"flex items-center gap-1",label:It,value:""},rd=h("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",yo,Fa,Ha),zf=h("flex flex-col gap-1",go),Gf=h("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",J),jf=500,Ia=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)})}},Yf=(e,t,r,n,o,a)=>{let i=Pt(null),s=e?.reportHubId;Ca(()=>{i.current=null},[s]),Ta(()=>{n||(i.current=null)},[n]);let l=kt(async(c,d)=>{d||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return Ta(()=>{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),jf):null};d();let y=o.subscribe(d);return()=>{y(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},La="article",qf=["article","relations"],Xf=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},Zf=h("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",Xe),od=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=H(),a=ed(),i=ed(),[s,l]=xa(La),{selected:c,settled:d}=Bf(to),y=Fr(e,c),g=Fr(e,Uf(d)),x=y===null?null:y.reportHubId,m=(g===null?null:g.reportHubId)===x,[R]=xa(()=>Ia(m));return Ca(()=>{R.set(m)},[R,m]),k("aside",{"data-testid":"daily-report-side-pane","data-report-id":y?.reportHubId,"data-displayed-report-id":g?.reportHubId,"aria-busy":m?void 0:!0,className:Zf,children:g===null?k("div",{className:h("flex h-full flex-1 items-center justify-center text-center",Ut),children:k("p",{children:o.selectPrompt})}):k(ro,{item:g,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:R,userId:r,onReportDeleted:n},g.reportHubId)})},ro=Ff(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[d,y]=xa(!1),{draftLabelName:g,labels:x,sourceTypeConfigs:I,headingLevel:m}=H(),{report:R,error:b,isLoading:v}=Dt(e.reportHubId,e.businessDate),_=Pt(null),D=Pt(null),F=Pt(null),N=Pt(!1),B=Pt(!1),M=Pt(!1);Ta(()=>{if(!R)return;let W=R.labels.some(ie=>ie.name===g);R.reportHubId!==F.current?(F.current=R.reportHubId,W?(y(!0),N.current=!0):(y(!1),N.current=!1)):!W&&d&&N.current&&(y(!1),N.current=!1)},[R,d,g]);let j=!!(l&&R?.userId===l),q=kt(()=>{B.current=!0,N.current=!1,y(!0)},[]),z=kt(()=>{M.current=!0,y(!1)},[]),Q=kt(W=>{W===null||!B.current||(B.current=!1,W.focus())},[]),U=kt(W=>{W===null||!M.current||(M.current=!1,W.focus())},[]),X=kt(()=>{D.current?.focus({preventScroll:!0})},[]);Ca(()=>{d||!M.current||(M.current=!1,D.current?.focus())},[d]);let K=kt(()=>{setTimeout(()=>{let W=_.current;W!==null&&W.scrollTo({top:W.scrollHeight,behavior:$i(W)})},100)},[]),V=se(e.businessDate),re=R===null?null:le(R.employeeName),ue=v||!R,Z=R===null?void 0:At(R.sourceType,I);return et(Qf,{children:[et("div",{className:zf,children:[k("dl",{className:"m-0",children:k(de,{label:x.businessDate,classNames:Kf,children:k(He,{ref:D,level:m,id:t,tabIndex:-1,className:Gf,children:V})})}),et("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[k("dl",{className:"m-0",children:k(de,{label:x.author,classNames:$f,valueId:r,children:ue?k("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),Z?k(qt,{config:Z,className:"ml-2"}):null]})]}),et(Ur,{value:n,onValueChange:W=>o(Xf(W)),className:"flex min-h-0 flex-1 flex-col",children:[k("div",{className:go,children:k(Vr,{"aria-label":x.reportTabList,className:h(Xa,"grid grid-cols-2 gap-1"),children:qf.map(W=>k(Wr,{value:W,children:W==="article"?x.tabArticle:x.tabRelations},W))})}),k(Qt,{ref:_,value:"article",className:rd,children:d?R?k(Un,{report:R,onCancel:z,onPublishSuccess:z,titleInputRef:Q}):k("p",{className:Ut,children:x.loading}):k(Jf,{report:R,sourceConfig:Z,isLoading:v,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:K,userId:l,onEdit:j?q:void 0,editButtonRef:U,onReportDeleted:c,onCommentSectionRemoved:X})}),k(Qt,{value:"relations",className:rd,children:k("p",{className:Ut,children:x.relationsEmpty})})]})]})});ro.displayName="DailyReportSidePaneContent";var er=({className:e="w-32"})=>k("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),Jf=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:c,onEdit:d,editButtonRef:y,onReportDeleted:g,onCommentSectionRemoved:x})=>{let{toggleStar:I,toggleRead:m,deleteReport:R,user:b}=_e(),{labels:v,headingLevel:_}=H(),D=gt[_],{uiComments:F,handleAddComment:N,handleDeleteComment:B,pendingDeleteId:M,setPendingDeleteId:j,resolvedIdMap:q}=hr(e,b,c),{handleToggleRead:z}=Yf(e,r,a,i,s,m),Q=e!==null&&en(e.sourceType,t),U=async Z=>{await N(Z),l?.()},X=Vf(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
1
+ import Vd from"lucide-react/dist/esm/icons/paperclip.js";var Fd="data-daily-report-row-surface",Pe={[Fd]:""},Ut="data-daily-report-scrolling",pt=8,sr="h-[calc-size(auto,round(up,size,4px))]",ft="p-[8px]",Va="pr-[8px]",Gr="contain-size contain-layout contain-style",Wa="contain-strict",J="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-400",Ka="-mx-[4px] px-[4px] pb-[4px] scroll-p-[4px]",vo="scrollbar-thin [scrollbar-gutter:stable]",To=`-m-[4px] overflow-hidden p-[4px] ${vo}`,$a="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",jr="rounded-[calc(var(--radius-2xl)+8px)]",Yr="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]",za="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",Ze="rounded-2xl border border-solid border-slate-200 bg-white p-[15px] shadow-sm dark:border-slate-700 dark:bg-slate-900/70",qr=16,Vt="rounded-xl border border-dashed border-slate-300 bg-slate-50 p-[11px] text-slate-600 text-sm dark:border-slate-600 dark:bg-slate-900/40 dark:text-slate-300",Ga=12,Xr="rounded-xl bg-slate-50 p-3 text-slate-700 text-sm leading-6 dark:bg-slate-800/60 dark:text-slate-200",Zr="motion-safe:transition-[translate] motion-safe:duration-200 hover:border-blue-300 hover:shadow-lg motion-safe:hover:-translate-y-[2px] [[data-daily-report-scrolling]_&]:transition-none [[data-daily-report-scrolling]_&]:hover:translate-none [[data-daily-report-scrolling]_&]:hover:shadow-sm",De=`flex size-6 shrink-0 items-center justify-center rounded-full hover:bg-slate-200 dark:hover:bg-slate-700 ${J}`,ja="-mx-1",Ya="flex items-center gap-1",Ce="inline-flex h-6 items-center rounded-full px-3",qa="inline-flex h-6 items-center rounded-full border border-solid px-[11px]",Xa="inline-flex h-6 shrink-0 items-center rounded px-2 font-semibold text-xs tracking-wide",mt="size-4",ge={starOff:`${mt} text-slate-500 dark:text-slate-400 forced-colors:text-[CanvasText]`,starOn:`${mt} fill-yellow-400 text-yellow-700 dark:text-yellow-400 forced-colors:fill-[Highlight] forced-colors:text-[Highlight]`,read:`${mt} text-blue-600 dark:text-blue-400`,delete:`${mt} text-slate-500 hover:text-red-600 dark:text-slate-400 dark:hover:text-red-400`,deletePending:`${mt} text-red-600 dark:text-red-400`,edit:`${mt} text-slate-500 dark:text-slate-400`},Za="h-6 w-10 border-4 border-solid",Ja="size-4 data-[state=checked]:translate-x-4",Qa="data-[state=unchecked]:bg-slate-500 data-[state=checked]:bg-blue-600 dark:data-[state=unchecked]:bg-slate-400 dark:data-[state=checked]:bg-blue-400 forced-colors:border-[ButtonText] forced-colors:data-[state=checked]:bg-[Highlight]",ei="bg-white dark:bg-slate-950 forced-colors:bg-[ButtonText]";var ti="rounded-xl bg-slate-100 p-1 dark:bg-slate-800",ri="rounded-xl border border-solid p-[3px]",ni="relative inline-flex h-6 items-center justify-center whitespace-nowrap rounded-lg px-2 font-medium text-slate-600 text-xs dark:text-slate-300 data-[state=active]:bg-white data-[state=active]:text-slate-900 dark:data-[state=active]:bg-slate-950 dark:data-[state=active]:text-slate-100 after:pointer-events-none after:absolute after:right-[var(--radius-lg)] after:bottom-0 after:left-[var(--radius-lg)] after:h-[2px] after:rounded-full after:forced-color-adjust-none data-[state=active]:after:bg-blue-600 dark:data-[state=active]:after:bg-blue-400 forced-colors:data-[state=active]:after:bg-[Highlight] disabled:pointer-events-none disabled:opacity-50",Bd="ml-[max(0px,round(down,calc((100%-72rem)/2),4px))]",Ud="bg-slate-50 dark:bg-slate-950",Ue="flex min-h-0 flex-1 flex-col",lr=`${Ue} ${Ud}`,dr=`${Ue} mx-auto w-full max-w-6xl px-[4px] pt-[4px] ${Bd}`,cr="text-red-700 dark:text-red-400",oi="bg-white dark:bg-slate-900",Jr="flex min-h-0 flex-1 flex-col overflow-clip contain-size",Qr="[&_.aqvs-no-items-text]:py-4 [&_.aqvs-no-items-text]:text-slate-500 dark:[&_.aqvs-no-items-text]:text-slate-400",ai="border-slate-200/80 bg-slate-100/60 dark:border-slate-800 dark:bg-slate-900/60 dark:text-slate-200",ii={list:"mr-[8px] [@media(max-width:639px)]:mr-[16px] @max-[460px]/views:mr-[16px]",tree:"mr-[8px]",detailList:"mr-[16px]"},Ct="font-semibold text-slate-500 text-xs uppercase tracking-wide dark:text-slate-400",st=`m-0 ${Ct}`,en="text-balance wrap-anywhere [word-break:auto-phrase]",tn="[&_.aqvs-scrollbar]:bg-slate-100 [&_.aqvs-scrollbar-track]:bg-slate-100 [&_.aqvs-scrollbar-thumb]:bg-slate-500 [&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-600 [&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-700 [&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 [&_.aqvs-scrollbar-arrow-button]:bg-slate-100 [&_.aqvs-scrollbar-arrow-button]:text-slate-600 [&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-200 dark:[&_.aqvs-scrollbar]:bg-slate-900 dark:[&_.aqvs-scrollbar-track]:bg-slate-900 dark:[&_.aqvs-scrollbar-thumb]:bg-slate-500 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-slate-400 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-slate-300 dark:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-slate-500 dark:[&_.aqvs-scrollbar-arrow-button]:bg-slate-900 dark:[&_.aqvs-scrollbar-arrow-button]:text-slate-400 dark:[&_.aqvs-scrollbar-arrow-button:enabled:hover]:bg-slate-800 forced-colors:[&_.aqvs-scrollbar-thumb]:bg-[CanvasText] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=hover]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=dragging]]:bg-[Highlight] forced-colors:[&_.aqvs-scrollbar-thumb[data-thumb-state=disabled]]:bg-[GrayText] forced-colors:[&_.aqvs-scrollbar-track]:outline-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-solid forced-colors:[&_.aqvs-scrollbar-track]:-outline-offset-1 forced-colors:[&_.aqvs-scrollbar-track]:outline-[CanvasText]";import{jsx as si,jsxs as Kd}from"react/jsx-runtime";var Wd=2,ur=({id:e,count:t,label:r})=>t<=0?null:Kd("span",{id:e,className:"inline-flex h-6 shrink-0 items-center gap-1 text-slate-500 dark:text-slate-400",title:`${r}: ${t}`,role:"img","aria-label":`${r}: ${t}`,"data-testid":"daily-report-attachment-indicator","data-attachment-count":t,children:[si(Vd,{className:mt,"aria-hidden":"true"}),t>=Wd&&si("span",{className:"font-semibold text-xs leading-4",children:t})]});import{VirtualScroll as Df}from"@aiquants/virtualscroll";import{useCallback as Ie,useEffect as xt,useLayoutEffect as wf,useMemo as La,useRef as Oe,useState as oo}from"react";var le=e=>{if(!e)return"-";let t=e.trim();return t===""?"-":t},se=e=>{if(!e)return"-";if(typeof e!="string")return e instanceof Date?se(e.toISOString()):String(e);let t=e.trim();if(t==="")return"-";let r=t.match(/^(\d{4})[-/](\d{2})[-/](\d{2})$/);if(r)return`${r[1]}-${r[2]}-${r[3]}`;let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let o=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),i=String(n.getDate()).padStart(2,"0");if(t.includes(":")||t.includes("T")){let l=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),d=String(n.getSeconds()).padStart(2,"0");return`${o}-${a}-${i}T${l}:${c}:${d}`}return`${o}-${a}-${i}`};import{useCallback as bc,useEffect as xi,useRef as yc,useState as gc}from"react";var $d=/^\d{4}-\d{2}-\d{2}$/,zd=/^\d{4}\/\d{2}\/\d{2}$/,rn=e=>e<10?`0${e}`:`${e}`,li=e=>{if(Number.isNaN(e.getTime()))return null;let t=e.getFullYear(),r=rn(e.getMonth()+1),n=rn(e.getDate());return`${t}-${r}-${n}`},xo=(e=new Date)=>Number.isNaN(e.getTime())?xo(new Date):`${e.getFullYear()}-${rn(e.getMonth()+1)}-${rn(e.getDate())}`,At=e=>{if(e==null)return null;if(e instanceof Date)return li(e);let t=e.trim();if(t==="")return null;if($d.test(t))return t;if(zd.test(t))return t.replaceAll("/","-");let r=new Date(t);return li(r)};var Wt=(e,t,r=console)=>{let n=o=>typeof o=="string"?[`${t} ${o}`]:[t,o];return{debug:(o,...a)=>{e<=0&&r.debug(...n(o),...a)},info:(o,...a)=>{e<=1&&r.info(...n(o),...a)},warn:(o,...a)=>{e<=2&&r.warn(...n(o),...a)},error:(o,...a)=>{e<=3&&r.error(...n(o),...a)}}};import{resolveVirtualScrollLocale as Qd}from"@aiquants/virtualscroll";import{createContext as ec,useContext as tc,useMemo as rc}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,Te=(e,t,r)=>new RangeError(`[daily-report] ${e} must be ${t}; got ${Gd(r)}`),di=(e,t)=>new TypeError(`[daily-report] ${e} must be ${t}`),nn=(e,t,r)=>Te(e,`one of ${r.map(n=>JSON.stringify(n)).join(", ")}`,t);import{resolveVirtualScrollLabels as jd,resolveVirtualScrollLocale as Yd,VIRTUAL_SCROLL_LABEL_CATALOGS as ci,VIRTUAL_SCROLL_LABEL_KEYS as Co}from"@aiquants/virtualscroll";var mi=["id","businessDate","author","visitTime","createdAt","updatedAt","updatedBy","category","creationCategory","customer","subject","content","interviewers","comments","attachments","attachmentMissing","attachmentDownload","attachmentThumbnailUnavailable","tabArticle","tabRelations","reportTabList","relationsEmpty","title","listKeyboardHelp","tabList","tabTree","tabDetailList","viewTabList","treeComingSoon","totalCountLoading","createReport","createReportTitle","devControls","devSseToggle","devReload","devClearCache","autoRead","autoReadTitle","loadErrorBadge","loadError","reload","loadingIds","streamFailed","streamRetry","streamRevalidating","selectPrompt","loading","reportNotFound","contentEmpty","contentEmptyPreview","confirmDelete","deleteFailed","starAdd","starRemove","markRead","markUnread","deleteReport","edit","resizeHandle","close","formTitle","formTitlePlaceholder","formContent","formContentPlaceholder","formCancel","formSave","formPublish","commentPlaceholder","commentSend","commentDelete","commentDeleteConfirm","unknownUser","sourceInternal"],pi=["totalCount","debounce","streamProgressCount","streamProgressRatio","streamRetrying","reportLoadFailed","reportSummaryLoadFailed","interviewerWithAffiliation","operationFailed","rowState"],Io=[...Co,...mi,...pi];var qd=Object.freeze({en:"en-US",ja:"ja-JP"}),we=(e,t)=>t.toLocaleString(qd[e]),Xd=Object.freeze({create:"\u65E5\u5831\u306E\u4F5C\u6210",update:"\u65E5\u5831\u306E\u4FDD\u5B58",publish:"\u65E5\u5831\u306E\u516C\u958B",delete:"\u65E5\u5831\u306E\u524A\u9664",addComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u6295\u7A3F",deleteComment:"\u30B3\u30E1\u30F3\u30C8\u306E\u524A\u9664",toggleStar:"\u30B9\u30BF\u30FC\u306E\u66F4\u65B0",toggleRead:"\u65E2\u8AAD\u72B6\u614B\u306E\u66F4\u65B0"}),Zd=Object.freeze({create:"create the report",update:"save the report",publish:"publish the report",delete:"delete the report",addComment:"post the comment",deleteComment:"delete the comment",toggleStar:"update the star",toggleRead:"update the read state"}),Lo=Object.freeze({en:Object.freeze({id:"ID",businessDate:"Business date",author:"Author",visitTime:"Visit time",createdAt:"Created at",updatedAt:"Updated at",updatedBy:"Updated by",category:"Category",creationCategory:"Creation category",customer:"Customer",subject:"Subject",content:"Content",interviewers:"Attendees",comments:"Comments",attachments:"Attachments",attachmentMissing:"File is missing",attachmentDownload:"Download",attachmentThumbnailUnavailable:"Preview unavailable",tabArticle:"Overview",tabRelations:"Related",reportTabList:"Report sections",relationsEmpty:"No related view configured yet.",title:"Daily Reports",listKeyboardHelp:"Up and Down arrows: previous or next report. Home and End: first or last report. Page Up and Page Down: move by a page. Enter or Space on a report row: make it current. Control+Home and Control+End: move to the nearest control before or after the list, when there is one.",tabList:"\u{1F4C4} List",tabTree:"\u{1F333} Tree",tabDetailList:"\u{1F4CB} DetailList",viewTabList:"Views",treeComingSoon:"The tree view is coming soon",totalCountLoading:"Total: loading...",createReport:"New report",createReportTitle:"Create a daily report",devControls:"Development-only controls",devSseToggle:"Toggle SSE real-time sync",devReload:"Reload data",devClearCache:"Clear the cache and reload",autoRead:"Auto-read",autoReadTitle:"Mark reports as read automatically while viewing them",loadErrorBadge:"Error",loadError:"Failed to load the daily reports.",reload:"Reload",loadingIds:"Loading report IDs...",streamFailed:"Failed to load",streamRetry:"Retry",streamRevalidating:"Refreshing",selectPrompt:"Select a report from the list on the left.",loading:"Loading...",reportNotFound:"Report not found",contentEmpty:"No content has been entered.",contentEmptyPreview:"No content has been entered",confirmDelete:"Are you sure you want to delete this report?",deleteFailed:"Failed to delete the report",starAdd:"Add star",starRemove:"Remove star",markRead:"Mark as read",markUnread:"Mark as unread",deleteReport:"Delete",edit:"Edit",resizeHandle:"Resize the border between the report list and the detail pane",close:"Close",formTitle:"Title",formTitlePlaceholder:"Enter the report title",formContent:"Content",formContentPlaceholder:"Enter the report content",formCancel:"Cancel",formSave:"Save",formPublish:"Publish",commentPlaceholder:"Add a comment...",commentSend:"Send",commentDelete:"Delete comment",commentDeleteConfirm:"Delete",unknownUser:"Unknown",sourceInternal:"Original",totalCount:e=>`Total: ${we("en",e)}`,debounce:e=>`Debounce: ${e} ms`,streamProgressCount:e=>`Loading ${we("en",e)}`,streamProgressRatio:(e,t,r)=>`Loading ${we("en",e)} / ${we("en",t)} (${r}%)`,streamRetrying:e=>`Reconnecting... (${we("en",e)} received)`,reportLoadFailed:e=>`Failed to load report ${we("en",e)}.`,reportSummaryLoadFailed:e=>`Failed to load the summary of report ${we("en",e)}.`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`Failed to ${Zd[e]}. Please try again later.`,rowState:({isRead:e,isStarred:t})=>`${e?"Read":"Unread"}${t?", starred":""}`}),ja:Object.freeze({id:"ID",businessDate:"\u55B6\u696D\u65E5",author:"\u4F5C\u6210\u8005",visitTime:"\u8A2A\u554F\u6642\u9593",createdAt:"\u4F5C\u6210\u65E5\u6642",updatedAt:"\u66F4\u65B0\u65E5\u6642",updatedBy:"\u66F4\u65B0\u8005",category:"\u533A\u5206",creationCategory:"\u4F5C\u6210\u533A\u5206",customer:"\u9867\u5BA2",subject:"\u4EF6\u540D",content:"\u5185\u5BB9",interviewers:"\u9762\u8AC7\u8005",comments:"\u30B3\u30E1\u30F3\u30C8",attachments:"\u6DFB\u4ED8\u30D5\u30A1\u30A4\u30EB",attachmentMissing:"\u5B9F\u4F53\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",attachmentDownload:"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",attachmentThumbnailUnavailable:"\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u8868\u793A\u3067\u304D\u307E\u305B\u3093",tabArticle:"\u6982\u8981",tabRelations:"\u95A2\u9023",reportTabList:"\u65E5\u5831\u306E\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",relationsEmpty:"\u95A2\u9023\u30D3\u30E5\u30FC\u306F\u307E\u3060\u69CB\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",title:"\u65E5\u5831",listKeyboardHelp:"\u2191\u2193 \u3067\u524D\u5F8C\u306E\u65E5\u5831\u3001Home / End \u3067\u5148\u982D\u30FB\u672B\u5C3E\u3001PageUp / PageDown \u3067\u30DA\u30FC\u30B8\u79FB\u52D5\u3001\u65E5\u5831\u306E\u884C\u3067 Enter \u307E\u305F\u306F Space \u3092\u62BC\u3059\u3068\u9078\u629E\u3001Ctrl+Home / Ctrl+End \u3067\u4E00\u89A7\u306E\u76F4\u524D\u30FB\u76F4\u5F8C\u306E\u64CD\u4F5C\u90E8\u54C1\u304C\u3042\u308C\u3070\u305D\u3053\u3078\u79FB\u308A\u307E\u3059\u3002",tabList:"\u{1F4C4} \u4E00\u89A7",tabTree:"\u{1F333} \u30C4\u30EA\u30FC",tabDetailList:"\u{1F4CB} \u8A73\u7D30\u4E00\u89A7",viewTabList:"\u8868\u793A\u306E\u5207\u308A\u66FF\u3048",treeComingSoon:"\u30C4\u30EA\u30FC\u306F\u73FE\u5728\u6E96\u5099\u4E2D\u3067\u3059",totalCountLoading:"\u7DCF\u4EF6\u6570: \u8AAD\u307F\u8FBC\u307F\u4E2D...",createReport:"\u65E5\u5831\u4F5C\u6210",createReportTitle:"\u65E5\u5831\u3092\u4F5C\u6210",devControls:"\u958B\u767A\u74B0\u5883\u9650\u5B9A\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB",devSseToggle:"SSE \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u540C\u671F\u5207\u66FF",devReload:"\u30C7\u30FC\u30BF\u518D\u53D6\u5F97 (\u30EA\u30ED\u30FC\u30C9)",devClearCache:"\u30AD\u30E3\u30C3\u30B7\u30E5\u7834\u68C4 & \u518D\u53D6\u5F97",autoRead:"\u81EA\u52D5\u65E2\u8AAD",autoReadTitle:"\u65E5\u5831\u95B2\u89A7\u6642\u306E\u81EA\u52D5\u65E2\u8AAD\u51E6\u7406\u5207\u66FF",loadErrorBadge:"\u30A8\u30E9\u30FC",loadError:"\u65E5\u5831\u30C7\u30FC\u30BF\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",reload:"\u518D\u8AAD\u307F\u8FBC\u307F",loadingIds:"\u65E5\u5831 ID \u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u3067\u3059...",streamFailed:"\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",streamRetry:"\u518D\u8A66\u884C",streamRevalidating:"\u6700\u65B0\u5316\u4E2D",selectPrompt:"\u5DE6\u5074\u306E\u4E00\u89A7\u304B\u3089\u65E5\u5831\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",loading:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",reportNotFound:"\u65E5\u5831\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",contentEmpty:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",contentEmptyPreview:"\u5185\u5BB9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093",confirmDelete:"\u672C\u5F53\u306B\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",deleteFailed:"\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F",starAdd:"\u30B9\u30BF\u30FC\u3092\u4ED8\u3051\u308B",starRemove:"\u30B9\u30BF\u30FC\u3092\u5916\u3059",markRead:"\u65E2\u8AAD\u306B\u3059\u308B",markUnread:"\u672A\u8AAD\u306B\u3059\u308B",deleteReport:"\u524A\u9664\u3059\u308B",edit:"\u7DE8\u96C6",resizeHandle:"\u65E5\u5831\u4E00\u89A7\u3068\u8A73\u7D30\u30DA\u30A4\u30F3\u306E\u5883\u754C\u306E\u30B5\u30A4\u30BA\u5909\u66F4\u30CF\u30F3\u30C9\u30EB",close:"\u9589\u3058\u308B",formTitle:"\u30BF\u30A4\u30C8\u30EB",formTitlePlaceholder:"\u65E5\u5831\u306E\u30BF\u30A4\u30C8\u30EB\u3092\u5165\u529B",formContent:"\u5185\u5BB9",formContentPlaceholder:"\u65E5\u5831\u306E\u5185\u5BB9\u3092\u5165\u529B",formCancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",formSave:"\u4FDD\u5B58",formPublish:"\u516C\u958B",commentPlaceholder:"\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0...",commentSend:"\u9001\u4FE1",commentDelete:"\u524A\u9664",commentDeleteConfirm:"\u524A\u9664\u3059\u308B",unknownUser:"\u4E0D\u660E\u306A\u30E6\u30FC\u30B6\u30FC",sourceInternal:"\u30AA\u30EA\u30B8\u30CA\u30EB",totalCount:e=>`\u7DCF\u4EF6\u6570: ${we("ja",e)} \u4EF6`,debounce:e=>`\u30C7\u30D0\u30A6\u30F3\u30B9: ${e} ms`,streamProgressCount:e=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} \u4EF6`,streamProgressRatio:(e,t,r)=>`\u8AAD\u307F\u8FBC\u307F\u4E2D ${we("ja",e)} / ${we("ja",t)} (${r}%)`,streamRetrying:e=>`\u518D\u63A5\u7D9A\u4E2D... (${we("ja",e)} \u4EF6\u53D7\u4FE1\u6E08)`,reportLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,reportSummaryLoadFailed:e=>`\u65E5\u5831 ${we("ja",e)} \u306E\u6982\u8981\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`,interviewerWithAffiliation:(e,t)=>`${e} (${t})`,operationFailed:e=>`${Xd[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":""}`})}),fi=Object.freeze({en:Object.freeze({...ci.en,...Lo.en}),ja:Object.freeze({...ci.ja,...Lo.ja})}),Jd=e=>{let t={},r=!1;for(let n of Co){let o=Object.hasOwn(e,n)?e[n]:void 0;o!==void 0&&(t[n]=o,r=!0)}return r?t:void 0},ui=(e,t,r)=>{e[t]=r},Ao=(e,t)=>{let r=Yd(e);if(t===void 0)return fi[r];if(t===null||typeof t!="object")throw Te("labels","an object",t);let n=Object.getPrototypeOf(t);if(n!==Object.prototype&&n!==null)throw Te("labels","a plain object (prototype Object.prototype or null)",t);for(let i of Object.keys(t))if(!Io.includes(i))throw nn("labels key",i,Io);let a={...jd(r,Jd(t)),...Lo[r]};for(let i of mi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="string"||s.trim()==="")throw Te(`labels.${i}`,"a non-blank string",s);ui(a,i,s)}}for(let i of pi){let s=Object.hasOwn(t,i)?t[i]:void 0;if(s!==void 0){if(typeof s!="function")throw Te(`labels.${i}`,"a function",s);ui(a,i,s)}}return Object.freeze(a)},bi=e=>{let t={};for(let r of Co)t[r]=e[r];return Object.freeze(t)};import{jsx as _o,jsxs as cc}from"react/jsx-runtime";var nc=e=>({Internal:{label:e.sourceInternal,badgeClassName:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400"}}),oc=({title:e,annotation:t})=>cc("header",{className:"flex flex-wrap items-baseline justify-between gap-2 px-2 py-1",children:[_o("span",{className:"text-nowrap text-slate-700 text-sm dark:text-slate-200",children:e}),t?_o("span",{className:"text-slate-600 text-xs dark:text-slate-300",children:t}):null]}),mr=Object.freeze({apiBasePath:"/daily_report/api",ssePath:"/sse/daily_report/updates",draftLabelName:"draft",renderHeader:oc,showDevControls:!1,headingLevel:3}),yi=["apiBasePath","ssePath","draftLabelName","locale","labels","sourceTypeConfigs","renderHeader","showDevControls","headingLevel","onError","onSessionExpired"];var ac=e=>{for(let t of Object.keys(e))if(!yi.includes(t))throw nn("config key",t,yi)},ic=[2,3,4,5],sc=e=>{if(e===void 0)return mr.headingLevel;let t=ic.find(r=>r===e);if(t===void 0)throw Te("config.headingLevel","an integer from 2 to 5 (the level of each report's heading)",e);return t},lc=e=>{for(let[t,r]of Object.entries(e)){let n=r.name;if(n!==void 0&&(typeof n!="string"||n.trim()===""))throw Te(`config.sourceTypeConfigs.${t}.name`,"a non-blank string (the expansion of the badge label)",n)}return e},gi=e=>{ac(e);let t=e.onSessionExpired;if(t===void 0)throw di("config.onSessionExpired","a function (the host decides the navigation on session expiry)");if(typeof t!="function")throw Te("config.onSessionExpired","a function (the host decides the navigation on session expiry)",t);let r=Qd(e.locale),n=Ao(r,e.labels),o=mr;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?nc(n):lc(e.sourceTypeConfigs),renderHeader:e.renderHeader===void 0?o.renderHeader:e.renderHeader,showDevControls:e.showDevControls===void 0?o.showDevControls:e.showDevControls,headingLevel:sc(e.headingLevel),onError:e.onError,onSessionExpired:e.onSessionExpired}},dc=()=>{throw new Error("[daily-report] onSessionExpired is not wired: render inside DailyReportConfigProvider with a config")},Ri=ec(gi({onSessionExpired:dc})),Do=({config:e,children:t})=>{let r=rc(()=>gi(e),[e]);return _o(Ri.Provider,{value:r,children:t})},H=()=>tc(Ri),_t=(e,t)=>{if(!(e&&t))return;if(t[e])return t[e];let r=e.toLowerCase(),n=Object.keys(t).find(o=>o.toLowerCase()===r);return n?t[n]:void 0},on=(e,t)=>t?.allowComment!==void 0?t.allowComment:!e||e.toLowerCase()==="internal";import{tapScrollCircleSampleVisual as mc}from"@aiquants/virtualscroll";var uc=4;var Kt=120,hi=1e3,an=.8,wo={maxVelocity:18,deceleration:.0018,startVelocityThreshold:.03},sn=20,Si=6,ln={reportHubId:-1,businessDate:null},dn=240,cn=15,pc=8,Ei=460,vi=3,Ti=352,fc={enabled:!0,renderVisual:mc,maxSpeedCurve:{exponentialSteepness:3,exponentialScale:8},maxSpeedMultiplier:8,className:"[[data-daily-report-keyboard-focus]_&]:invisible"},un={width:pc,tapScrollCircleOptions:fc,enableArrowButtonTabStops:!1},mn=["pen","touch"];var Ci=Wt(1,"use-daily-report"),Ai=(e,t)=>{if(typeof window>"u")return t;let r=window[e];return typeof r=="number"&&!Number.isNaN(r)?r:t},Oo=Ai("__DAILY_REPORT_CACHE_TTL__",3e5),Rc=Ai("__DAILY_REPORT_CACHE_REVIVE_MS__",6e4),G={reports:new Map,lists:new Map,pendingLists:new Map,pendingReports:new Map,listeners:new Set,locks:new Set,lastMutations:new Map,recentDeletes:new Map,lastPrune:0,prune(){let e=Date.now();if(e-this.lastPrune<6e4)return;this.lastPrune=e;let t=3600*1e3;for(let[r,n]of this.reports)e-n.expiresAt>t&&this.reports.delete(r);for(let[r,n]of this.lists)e-n.expiresAt>t&&this.lists.delete(r)},clear(){this.reports.clear(),this.lists.clear(),this.pendingLists.clear(),this.pendingReports.clear(),this.locks.clear(),this.lastMutations.clear(),this.recentDeletes.clear(),this.listeners.forEach(e=>{e(-1)})},isValid:e=>e>Date.now(),notify:e=>{G.listeners.forEach(t=>{t(e)})},getReport(e,t=!1){let r=this.reports.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},getList(e,t=!1){let r=e&&this.lists.get(e);return r&&(t||this.isValid(r.expiresAt))?r.data:null},set(e,t,r=!0){if(this.reports.set(e.reportHubId,{data:e,expiresAt:t}),r){let n=At(e.date),o=n?this.lists.get(n):null;if(o&&n){let i=o.data.some(s=>s.reportHubId===e.reportHubId)?o.data.map(s=>s.reportHubId===e.reportHubId?e:s):[e,...o.data];this.lists.set(n,{...o,data:i})}}this.notify(e.reportHubId)},update(e,t,r=!0){let n=this.reports.get(e);if(n?.data){if(r&&t.updatedAt&&n.data.updatedAt&&new Date(t.updatedAt).getTime()<new Date(n.data.updatedAt).getTime()){Ci.warn(`[DailyReportCache] Stale update skipped id=${e}`);return}this.set({...n.data,...t},Math.max(n.expiresAt,Date.now()+Rc))}},delete(e,t){this.reports.delete(e);let r=At(t),n=r&&this.lists.get(r);n&&r&&this.lists.set(r,{...n,data:n.data.filter(o=>o.reportHubId!==e)}),this.notify(e)},merge(e,t){let r=e;if(r.postedComments.some(n=>this.recentDeletes.has(n.id))&&(r={...r,postedComments:r.postedComments.filter(n=>!this.recentDeletes.has(n.id))}),t){let n=new Set(r.postedComments.map(a=>a.id)),o=t.postedComments.filter(a=>!n.has(a.id)&&a.isMine&&Date.now()-new Date(a.createdAt||0).getTime()<1e4);o.length>0&&(r={...r,postedComments:[...r.postedComments,...o].sort((a,i)=>new Date(a.createdAt||0).getTime()-new Date(i.createdAt||0).getTime())})}return r},cacheMany(e,t,r){this.prune();let n=Date.now(),o=n+Oo;for(let[i,s]of this.recentDeletes)n-s>1e4&&this.recentDeletes.delete(i);let a=e.map(i=>{if(this.locks.has(i.reportHubId))return i;let s=this.lastMutations.get(i.reportHubId);if(s&&r>0&&s>r)return this.reports.get(i.reportHubId)?.data??i;let l=this.reports.get(i.reportHubId)?.data,c=this.merge(i,l);return this.set(c,o,!1),c});return t&&this.lists.set(t,{data:a,expiresAt:o}),a}},_i=(e,t,r=!0)=>G.set(e,t,r),Ve=(e,t)=>G.getReport(e,t?.ignoreExpiry),We=(e,t)=>G.update(e,t),fn=(e,t)=>G.delete(e,t),fr=()=>{G.clear(),pn.clear()},br=e=>{G.locks.add(e),G.lastMutations.set(e,Date.now())},yr=e=>{G.locks.delete(e),G.lastMutations.set(e,Date.now())},Di=e=>G.recentDeletes.set(e,Date.now()),wi=(e,t)=>{let r=n=>{n===e&&t()};return G.listeners.add(r),()=>{G.listeners.delete(r)}},Dt=(e,t)=>{G.prune(),G.set(t,Date.now()+Oo)},Ni=e=>{G.prune();let t=G.getReport(e.reportHubId,!0),r=new Map;for(let o of t?.postedComments??[])r.set(o.id,o.isMine??!1);let n=(e.postedComments??[]).map(o=>({...o,isMine:r.get(o.id)??!1}));G.set({...e,isRead:t?.isRead??!1,isStarred:t?.isStarred??!1,postedComments:n},Date.now()+Oo)},hc=async(e,t)=>{let r=G.getReport(t);if(r)return r;let n=G.pendingReports.get(t);if(n)return n;let o=Date.now(),a=fetch(`${e}/report?reportHubId=${t}`,{cache:"no-cache"}).then(i=>i.ok?i.json():Promise.reject(`HTTP ${i.status}`)).then(i=>{if(i.error)throw new Error(i.error.message);let s=i.report;return G.cacheMany([s],null,o)[0]}).finally(()=>G.pendingReports.delete(t));return G.pendingReports.set(t,a),a},pn=new Map,Sc=1e4,Ec=(e,t)=>{let r=pn.get(t),n=Date.now();if(r&&n-r.at<Sc)return r.inFlight;let o=Mo(e,t,{forceRefresh:!0}),a={at:n,inFlight:o};return pn.set(t,a),o.finally(()=>{pn.get(t)===a&&(a.inFlight=null)}).catch(()=>{}),o},Mo=async(e,t,r={})=>{let n=r.forceRefresh?null:G.getList(t);if(n)return n;let o=G.pendingLists.get(t);if(o)return o;let a=Date.now(),i=fetch(`${e}/business-date?businessDate=${encodeURIComponent(t)}`,{cache:"no-cache"}).then(s=>s.ok?s.json():Promise.reject(`HTTP ${s.status}`)).then(s=>{if(s.error)throw new Error(s.error.message);return G.cacheMany(s.reports??[],t,a)}).finally(()=>G.pendingLists.delete(t));return G.pendingLists.set(t,i),i},No=(e,t)=>{let r=G.reports.get(e);if(r!==void 0)return{report:r.data,isStale:!G.isValid(r.expiresAt)};if(t===null)return{report:null,isStale:!1};let n=G.lists.get(t),o=n?.data.find(a=>a.reportHubId===e);return n===void 0||o===void 0?{report:null,isStale:!1}:{report:o,isStale:!G.isValid(n.expiresAt)}},Ii=(e,t)=>{if(e<=0)return{id:e,report:null,error:e===0?new Error("Invalid ID"):null,isLoading:!1,isRefetching:!1};let{report:r}=No(e,At(t));return{id:e,report:r,error:null,isLoading:r===null,isRefetching:!1}},$t=(e,t)=>r=>r.id!==e?r:Object.keys(t).some(o=>r[o]!==t[o])?{...r,...t}:r,wt=(e,t)=>{let{apiBasePath:r}=H(),[n,o]=gc(()=>Ii(e,t)),a=yc(0),i=n;return n.id!==e&&(i=Ii(e,t),o(i)),xi(()=>{let s=At(t),l=c=>{c===e&&o($t(e,{report:No(e,s).report}))};return G.listeners.add(l),()=>{G.listeners.delete(l)}},[e,t]),xi(()=>{let s=At(t);a.current+=1;let l=a.current,c=()=>{a.current+=1};if(e<=0)return c;let{report:d,isStale:y}=No(e,s);if(d&&!y)return o($t(e,{report:d,error:null,isLoading:!1,isRefetching:!1})),c;o($t(e,{report:d,isLoading:!d,isRefetching:!0}));let g=async()=>{try{let L=null;if(s){let m=G.getList(s)!==null;if(L=(await Mo(r,s)).find(b=>b.reportHubId===e)??null,!L&&m){let b=await Ec(r,s);b&&(L=b.find(v=>v.reportHubId===e)??null)}}else L=await hc(r,e);a.current===l&&o($t(e,{report:L,error:null}))}catch(L){a.current===l&&o($t(e,{error:L instanceof Error?L:new Error("Load failed")}))}finally{a.current===l&&o($t(e,{isLoading:!1,isRefetching:!1}))}};if(d===null)return g(),c;let x=setTimeout(g,Kt);return()=>{clearTimeout(x),c()}},[e,t,r]),{report:i.report,error:i.error,isLoading:i.isLoading,isRefetching:i.isRefetching}},ko=()=>{let{apiBasePath:e}=H();return bc(t=>{let r=At(t);r&&!G.getList(r)&&Mo(e,r).catch(n=>Ci.warn("Prefetch error",r,n))},[e])};import{VIRTUAL_SCROLL_LABEL_KEYS as vc}from"@aiquants/virtualscroll";import{useRef as Tc}from"react";var bn=()=>{let{locale:e,labels:t}=H(),r=bi(t),n=Tc(null),o=n.current;return o!==null&&vc.every(a=>o[a]===r[a])?{locale:e,labels:o}:(n.current=r,{locale:e,labels:r})};import{useLayoutEffect as Oc,useState as Mc}from"react";import{flushSync as kc}from"react-dom";var ki=Object.freeze({visibilityProperty:!0}),Oi=new Set(["auto","scroll"]),Mi=new Set(["","true","plaintext-only"]),Pi=e=>{for(let t=e;t!==null;){if(t.hasAttribute("inert"))return!0;let r=t.parentElement;if(r!==null){t=r;continue}let n=t.getRootNode();t=Ui(n)?n.host:null}return!1},xc=e=>{let t=e.closest("map")?.getAttribute("name");if(t==null||t==="")return!1;let r=e.getRootNode();for(let n of r.querySelectorAll("img[usemap]"))if(n.getAttribute("usemap")===`#${t}`&&n.checkVisibility(ki))return!0;return!1},Hi=e=>e.localName==="area"?xc(e):e.checkVisibility(ki),Ic=e=>{let t=e.getAttribute("contenteditable");if(t===null||!Mi.has(t.toLowerCase()))return!1;for(let r=e.parentElement;r!==null;r=r.parentElement){let n=r.getAttribute("contenteditable");if(n===null)continue;let o=n.toLowerCase();if(Mi.has(o))return!1;if(o==="false")return!0}return!0},Lc=e=>{if(e.checked||e.name==="")return!0;let t=e.getRootNode(),r=null;for(let n of t.querySelectorAll("input"))if(!(n.type!=="radio"||n.name!==e.name||n.form!==e.form)){if(n.checked)return!1;r===null&&!n.disabled&&Hi(n)&&(r=n)}return r===e},Cc=e=>{let t=e.ownerDocument;if(e===t.documentElement||e===t.body)return!1;let r=e.scrollWidth>e.clientWidth,n=e.scrollHeight>e.clientHeight;if(!(r||n))return!1;let o=t.defaultView;if(o===null)return!1;let a=o.getComputedStyle(e);return r&&Oi.has(a.overflowX)||n&&Oi.has(a.overflowY)},Ac=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 Ic(e)}},_c=/^[\t\n\f\r ]*[+-]?\d/,Dc=e=>{let t=e.getAttribute("tabindex");return t!==null&&_c.test(t)?e.tabIndex:null},Fi=(e,t)=>{for(let r of Ho(e))if(t(r)||Fi(r,t))return!0;return!1},yn=(e,t)=>{let r=t.get(e);if(r!==void 0)return r;let n=wc(e,t);return t.set(e,n),n},wc=(e,t)=>{if(!Fo(e))return"none";let r=Dc(e),n=r===null&&Ac(e),o=r===null&&!n&&Cc(e);return!(r!==null||n||o)||e.matches(":disabled")||Pi(e)||!Hi(e)?"none":r!==null?r>=0?"sequential":"programmatic":n?e.localName==="input"&&e.type==="radio"?Lc(e)?"sequential":"programmatic":"sequential":Fi(e,a=>yn(a,t)==="sequential")?"none":"sequential"},Po=(e,t)=>{for(let r of Ho(e))t(r),Po(r,t)},Ho=e=>{if(fe(e)){let t=e;if(t.shadowRoot!==null)return t.shadowRoot.children;if(t.localName==="slot"){let r=t.assignedElements();if(r.length>0)return r}}return e.children};var gn=(e,t)=>{let r=[],n=[],o=[],a=new Map;if(e===t)return Po(e,l=>{yn(l,a)==="sequential"&&n.push(l)}),{before:r,within:n,after:o};let i=!1,s=(l,c)=>{for(let d of Ho(l)){let y=d===t;!y&&yn(d,a)==="sequential"&&(c?n.push(d):i?o.push(d):r.push(d)),s(d,c||y),y&&(i=!0)}};return s(e,!1),{before:r,within:n,after:o}},Bi=e=>{let t=[],r=new Map;return Po(e,n=>{yn(n,r)==="sequential"&&t.push(n)}),t},fe=e=>e!==null&&"nodeType"in e&&e.nodeType===e.ELEMENT_NODE,Fo=e=>"focus"in e&&"blur"in e,Nc=e=>e.nodeType===e.DOCUMENT_NODE,Ui=e=>e.nodeType===e.DOCUMENT_FRAGMENT_NODE&&"host"in e,Ne=e=>{let t=e.getRootNode();if(Ui(t)){let r=t.activeElement;return r===null?Ne(t.host):r}return Nc(t)?t.activeElement:null},Rn=e=>{let t=Ne(e);return t===null||t===t.ownerDocument.body||Pi(t)},je=e=>{let t=e.ownerDocument.defaultView;if(t===null)throw new Error("[daily-report] the element belongs to a document without a window");return t};var hn=e=>{let[t,r]=Mc(null);return Oc(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] useViewBoxHeight needs viewRef attached to the view's root");let o=null,a=l=>{if(l===o)return;let c=o===null;o=l,c?kc(()=>r(l)):r(l)},i=l=>{for(let c of l)a(c.borderBoxSize[0].blockSize)},s=new(je(n)).ResizeObserver(i);return s.observe(n,{box:"border-box"}),()=>s.disconnect()},[e]),t};var Vi=(e,t)=>e!==null&&e.reportHubId===t?e.index:null,ce=(e,t,r)=>{if(r!==null&&Number.isInteger(r)&&r>=0&&r<e.length){if(e[r].reportHubId===t)return r;for(let n=1;n<=16;n++){let o=r+n;if(o<e.length&&e[o].reportHubId===t)return o;let a=r-n;if(a>=0&&e[a].reportHubId===t)return a}}return e.findIndex(n=>n.reportHubId===t)};var Sn="data-daily-report-row",Wi=`[role="listitem"][${Sn}]`,Pc='button, a[href], input, textarea, select, label, [role="button"], [contenteditable]:not([contenteditable="false"])',Hc=/^[1-9]\d*$/,Ki=e=>{if(e===null||!Hc.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null},bt=(e,t)=>{if(t===null||!fe(e))return null;let r=e.closest(Wi);return r===null||r===t||!t.contains(r)?null:r},Nt=e=>Ki(e.getAttribute(Sn)),zt=e=>Ki(e.getAttribute("aria-posinset")),$i=e=>{let t=e.closest(Wi),r=t===null?null:zt(t);return r===null?null:r-1},gr=(e,t)=>{if(e===null)return null;let r=Nt(e);if(r===null)return null;let n=zt(e),o=ce(t,r,n===null?null:n-1);return o===-1?null:{reportHubId:r,index:o}},zi=(e,t)=>{if(!fe(e))return!1;let r=e.closest(Pc);return r!==null&&r!==t&&t.contains(r)};import{createContext as Gi}from"react";var yt=Gi(0),gt=Gi(-1);import{clsx as Fc}from"clsx";import{twMerge as Bc}from"tailwind-merge";function h(...e){return Bc(Fc(e))}import{useCallback as ji,useMemo as Uc,useSyncExternalStore as Vc}from"react";var Yi="(prefers-reduced-motion: reduce)",qi=e=>je(e).matchMedia(Yi).matches?"instant":"smooth",Wc=Object.freeze({...wo,startVelocityThreshold:Number.POSITIVE_INFINITY}),Gt=e=>e?Wc:wo,Kc=()=>!1,En=e=>{let t=Uc(()=>e===null?null:je(e).matchMedia(Yi),[e]),r=ji(o=>t===null?()=>{}:(t.addEventListener("change",o),()=>t.removeEventListener("change",o)),[t]),n=ji(()=>t===null?!1:t.matches,[t]);return Vc(r,n,Kc)};import{useSyncExternalStore as $c}from"react";import{jsx as Bo}from"react/jsx-runtime";var vn=()=>{let e={label:"",isWheelScrollActive:!1},t=new Set,r=n=>{e=n;for(let o of[...t])o()};return{getState:()=>e,setLabel:n=>{n!==e.label&&r({...e,label:n})},setWheelScrollActive:n=>{n!==e.isWheelScrollActive&&r({...e,isWheelScrollActive:n})},subscribe:n=>(t.add(n),()=>{t.delete(n)})}},Xi=16,zc=(e,t)=>e==="vertical"?{top:0,left:-Xi,transform:`translate(-100%, calc(${t}px - 50%))`}:{top:-Xi,left:0,transform:`translate(calc(${t}px - 50%), -100%)`},Tn=({orientation:e,thumbCenter:t,isDragging:r,isTapScrollActive:n,store:o})=>{let{label:a,isWheelScrollActive:i}=$c(o.subscribe,o.getState,o.getState);return a.trim()&&(r||n||i)?Bo("div",{className:"pointer-events-none absolute flex items-center",style:zc(e,t),children:Bo("div",{className:h(qa,"border-slate-200 bg-white text-slate-700 text-xs shadow-md shadow-slate-400/30 dark:border-slate-700 dark:bg-slate-900/90 dark:text-slate-100"),children:Bo("span",{className:"whitespace-nowrap font-semibold text-slate-800 dark:text-slate-100",children:a.trim()})})}):null};import{memo as Wl,useCallback as Qt,useEffect as Ul,useId as df,useLayoutEffect as cf,useMemo as xa,useRef as Hr,useState as Vl}from"react";import{createContext as Nu,useCallback as dt,useContext as Ou,useEffect as Qo,useRef as Ae,useState as On}from"react";var Zi="ids-stream",Ji=e=>{if(typeof e!="object"||e===null)return"unknown";let t=e;return typeof t.kind=="string"?t.kind==="chunk"?"chunk":t.kind==="error"?"error":"unknown":Array.isArray(t.items)?"chunk":typeof t.error=="string"?"error":"unknown"};var xn=(e,t)=>e.businessDate!==t.businessDate?e.businessDate===null?1:t.businessDate===null||e.businessDate>t.businessDate?-1:1:t.reportHubId-e.reportHubId,Qi=e=>{for(let t=1;t<e.length;t++)if(xn(e[t-1],e[t])>0)return!1;return!0},Uo=(e,t)=>{let r=e.filter(a=>a.reportHubId!==t.reportHubId),n=0,o=r.length;for(;n<o;){let a=n+o>>1;xn(r[a],t)<=0?n=a+1:o=a}return r.splice(n,0,t),r};import{systemSseRuntime as wn}from"@aiquants/sse";import{createBrowserEventSource as Ru}from"@aiquants/sse/client";import{useReopeningEventSource as hu}from"@aiquants/sse/react";import{useEffect as Xo,useRef as Nn,useState as Su}from"react";import{z as A}from"zod";var es=["auth-required","forbidden","resync-required"],Vo=15e3,ts="lastEventId",Gc=/^\d{1,15}-\d{1,15}$/,In=e=>Gc.test(e),jc=A.object({name:A.string().nullish(),affiliation:A.string().nullish()}),Yc=A.object({name:A.string().nullish(),text:A.string().nullish(),color:A.string().nullish()}),qc=A.object({id:A.number(),name:A.string().nullish(),color:A.string().nullish()}),rs=A.object({id:A.number(),userId:A.string().nullish(),userName:A.string().nullish(),content:A.string().nullish(),createdAt:A.string().nullish(),isMine:A.boolean()}),Xc=A.object({id:A.string(),fileName:A.string(),fileType:A.string().nullable(),fileSize:A.number().nullable(),createdAt:A.string().nullable(),state:A.enum(["present","absent","unknown"]),hasThumbnail:A.boolean().default(!1)}),Wo=A.object({reportHubId:A.number(),date:A.string().nullish(),createdAt:A.string().nullish(),author:A.string().nullish(),userId:A.string().nullish(),sourceType:A.string().nullish(),employeeName:A.string().nullish(),updatedBy:A.string().nullish(),updatedAt:A.string().nullish(),category:A.string().nullish(),creationCategory:A.string().nullish(),visitTimeFrom:A.string().nullish(),visitTimeTo:A.string().nullish(),customerName:A.string().nullish(),interviewers:A.array(jc),subject:A.string().nullish(),content:A.string().nullish(),externalComments:A.array(Yc),isRead:A.boolean(),isStarred:A.boolean(),labels:A.array(qc),postedComments:A.array(rs),attachments:A.array(Xc).default([])}),Zc=A.object({type:A.literal("connected")}),Jc=A.object({type:A.literal("status-update"),reportHubId:A.number(),statusType:A.enum(["star","read"]),value:A.boolean(),clientTempId:A.string(),recipientRawUserId:A.number().optional()}),Ko=A.string().optional(),Qc=A.object({type:A.literal("comment-add"),reportHubId:A.number(),comment:rs,clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Ko}),eu=A.object({type:A.literal("comment-delete"),reportHubId:A.number(),commentId:A.number(),clientTempId:A.string(),recipientRawUserId:A.number().optional(),sourceType:Ko}),tu=A.object({type:A.literal("report-create"),reportHubId:A.number(),report:Wo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),ru=A.object({type:A.literal("report-update"),reportHubId:A.number(),report:Wo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),nu=A.object({type:A.literal("report-publish"),reportHubId:A.number(),report:Wo,clientTempId:A.string(),recipientRawUserId:A.number().optional()}),ou=A.object({type:A.literal("report-delete"),reportHubId:A.number(),clientTempId:A.string(),sourceType:Ko}),ns=A.discriminatedUnion("type",[Zc,Jc,Qc,eu,tu,ru,nu,ou]);import{useSyncExternalStore as mu}from"react";var os=()=>{let e=new TextDecoder,t=[],r=n=>{let o=[],a=0;for(let i=n.indexOf(`
2
+ `);i!==-1;i=n.indexOf(`
3
+ `,a)){let s=n.slice(a,i);o.push(t.length===0?s:[...t,s].join("")),t=[],a=i+1}return a<n.length&&t.push(n.slice(a)),o};return{push:n=>r(e.decode(n,{stream:!0})),end:()=>{let n=r(e.decode()),o=t.join("");return t=[],o===""?n:[...n,o]}}};var au=50,iu=1e3,su=3e4,lu=6,du=3e4,Ln=Symbol("read-stall"),cu="/daily_report/api",uu=/^\d{4}-\d{2}-\d{2}$/,Rr=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??cu,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??du,this.publishCoalesceMs=t.publishCoalesceMs??au,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>=lu){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(iu*2**(this.consecutiveFailures-1),su))}}pruneUnseenItems(){let t=this.activeSeenIds;if(this.activeSeenIds=null,!!t)for(let r of Array.from(this.itemMap.keys()))t.has(r)||this.itemMap.delete(r)}async streamOnce(t){let r=new AbortController;this.activeAbortController=r;try{let n=this.fetchFn(this.buildStreamUrl(t),{signal:r.signal,headers:{Accept:"application/x-ndjson"},cache:"no-store"}),o=null,a=this.readStallTimeoutMs<=0?await n:await Promise.race([n,new Promise(d=>{o=this.setTimeoutFn(()=>d(Ln),this.readStallTimeoutMs*3)})]).finally(()=>{o!==null&&this.clearTimeoutFn(o)});if(a===Ln)return r.abort(),n.catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no response headers within timeout")};if(a.status===401||a.status===403)return{kind:"auth-required"};if(!(a.ok&&a.body))return{kind:"retryable",error:new Error(`ids stream HTTP ${a.status}`)};let i=a.body.getReader(),s=os(),l=!1,c=!1;for(;;){let d=await this.readWithStallGuard(i);if(d===Ln)return r.abort(),i.cancel().catch(()=>{}),{kind:"retryable",error:new Error("Stream stalled: no data within timeout")};let y=d.done?s.end():s.push(d.value),g=!1;for(let x of y){if(x.trim()==="")continue;let L;try{L=JSON.parse(x)}catch{this.warn("[DailyReportIdsStream] skipped malformed line");continue}let m=Ji(L);if(m==="unknown"){this.warn("[DailyReportIdsStream] skipped line of unknown kind");continue}if(m==="error"){l=!0;continue}let R=L;g=this.absorbChunkLine(R)||g,typeof R.total=="number"&&Number.isFinite(R.total)&&R.total!==this.state.totalCount&&this.publish({totalCount:R.total}),R.nextCursor&&(R.nextCursor.businessDate===null||uu.test(R.nextCursor.businessDate))&&(this.lastCursor=R.nextCursor),R.isLast&&(c=!0)}if(g&&(this.consecutiveFailures=0,this.schedulePublishItems()),d.done)break}return l?{kind:"retryable",error:new Error("Stream interrupted by server error")}:c?{kind:"complete"}:{kind:"retryable",error:new Error("Stream ended before completion")}}catch(n){return n instanceof Error&&n.name==="AbortError"?{kind:"aborted"}:{kind:"retryable",error:n instanceof Error?n:new Error(String(n))}}finally{this.activeAbortController===r&&(this.activeAbortController=null)}}async readWithStallGuard(t){if(this.readStallTimeoutMs<=0)return t.read();let r=null,n=new Promise(o=>{r=this.setTimeoutFn(()=>o(Ln),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"&&In(t))){this.warn(`[DailyReportIdsStream] ids stream carried a malformed streamAnchor: ${String(t)}`);return}this.streamAnchorRevision+=1,this.publish({streamAnchor:{lastEventId:t,revision:this.streamAnchorRevision}})}publishItems(){this.lastItemsPublishAt=Date.now(),this.publish({items:Array.from(this.itemMap.values()),loadedCount:this.itemMap.size})}schedulePublishItems(){if(this.publishCoalesceMs<=0){this.publishItems();return}let t=Date.now()-this.lastItemsPublishAt;if(t>=this.publishCoalesceMs){this.publishItems();return}this.publishCoalesceTimer===null&&(this.publishCoalesceTimer=this.setTimeoutFn(()=>{this.publishCoalesceTimer=null,this.publishItems()},this.publishCoalesceMs-t))}cancelScheduledPublishItems(){this.publishCoalesceTimer!==null&&(this.clearTimeoutFn(this.publishCoalesceTimer),this.publishCoalesceTimer=null)}publish(t){this.state={...this.state,...t};for(let r of this.listeners)r()}buildStreamUrl(t){let r=new URLSearchParams;this.lastCursor&&(r.set("cursor_report_hub_id",String(this.lastCursor.reportHubId)),this.lastCursor.businessDate!==null&&r.set("cursor_business_date",this.lastCursor.businessDate),this.lastSnapshot!==null&&r.set("cursor_snapshot",this.lastSnapshot)),t&&r.set("forceRefresh","true");let n=r.toString();return`${this.apiBasePath}/${Zi}${n?`?${n}`:""}`}waitBeforeRetry(t){return new Promise(r=>{let n=null,o=()=>{n!==null&&(this.clearTimeoutFn(n),n=null),this.wakeRetryWait===o&&(this.wakeRetryWait=null),r()};this.wakeRetryWait=o,n=this.setTimeoutFn(o,t)})}};var pu=6e4,ne=null,as=!1,$o=new Set,is={items:[],loadedCount:0,totalCount:null,phase:"idle",isRevalidating:!1,hasCompletedOnce:!1,completedAt:null,error:null,streamAnchor:null},zo=()=>{for(let e of $o)e()},Go=()=>{ne&&(ne.unsubscribe(),ne.client.dispose(),ne=null,zo())},hr=e=>{if(typeof window>"u")return;let t=e.apiBasePath??mr.apiBasePath;if(ne&&(ne.userKey!==e.userKey||ne.apiBasePath!==t)&&(ne.userKey!==e.userKey&&fr(),Go()),!ne){let r=new Rr({apiBasePath:t});ne={client:r,userKey:e.userKey,apiBasePath:t,unsubscribe:r.subscribe(zo)},fu(),r.start(),zo();return}Cn(ne)},Cn=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>pu&&e.client.refresh()},fu=()=>{if(as||typeof document>"u"||typeof window>"u")return;as=!0;let e=()=>{ne&&Cn(ne)};document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()}),window.addEventListener("focus",e)},jo=e=>{if(!(typeof window>"u")){if(!ne){hr(e);return}if(ne.userKey!==e.userKey){fr(),Go(),hr(e);return}Cn(ne)}},Yo=()=>{typeof window>"u"||!ne||Cn(ne)},Sr=e=>{ne?.client.applyExternalUpsert(e)},An=e=>{ne?.client.applyExternalRemoval(e)},_n=()=>{ne?.client.retry()},Dn=()=>{ne?.client.resync()},qo=(e={})=>{ne?.client.refresh(e)},ss=()=>ne?.userKey,bu=e=>($o.add(e),()=>$o.delete(e)),yu=()=>ne?.client.getState()??is,gu=()=>is,lt=()=>mu(bu,yu,gu);typeof import.meta<"u"&&import.meta.hot&&import.meta.hot.dispose(()=>{Go()});var Ot=Wt(1,"daily-report-sse-connection"),Eu=Object.freeze({kind:"resyncing"}),ls={initialDelayMs:2e3,maxDelayMs:3e4,multiplier:2},vu=1,ds=Vo*3,Tu=ds+Vo,Zo=({isSseEnabled:e,onMessage:t})=>{let{ssePath:r,onSessionExpired:n}=H(),{streamAnchor:o,phase:a,isRevalidating:i,error:s}=lt(),[l,c]=Su({generation:0,minAnchorRevision:1,anchored:!1}),d=l.generation>0&&!l.anchored,y=d&&a==="complete"&&!i?s:null,g=Nn(0),x=Nn(null),L=Nn(n);L.current=n;let m=Nn(0);m.current=o===null?0:o.revision,Xo(()=>{l.anchored||o===null||o.revision<l.minAnchorRevision||(x.current=o.lastEventId,g.current=0,c({...l,anchored:!0}))},[l,o]),Xo(()=>{if(!e||y===null)return;let{initialDelayMs:b,maxDelayMs:v,multiplier:w}=ls,_=wn.random()*Math.min(v,b*w**g.current);Ot.warn(`SSE resync: the ids rescan gave up (${y.message}); rescanning in ${Math.round(_)} ms`);let F=wn.setTimer(()=>{g.current+=1,Dn()},_);return()=>wn.clearTimer(F)},[e,y]);let{status:R}=hu(e&&l.anchored?`${r}#${l.generation}`:null,{resolveUrl:({lastEventId:b})=>b===null?r:`${r}?${ts}=${encodeURIComponent(b)}`,initialLastEventId:x.current,withCredentials:!1,createEventSource:Ru,runtime:wn,backoff:ls,healthyOpenMs:Tu,nativeRetryLimit:vu,giveUpAfterFailures:"never",terminalEvents:es,heartbeat:{staleAfterMs:ds,onHeartbeat:null},events:{message:b=>{b.lastEventId!==""&&(In(b.lastEventId)?x.current=b.lastEventId:Ot.warn("SSE event carried a malformed id; keeping the previous cursor:",b.lastEventId));try{let v=JSON.parse(b.data),w=ns.safeParse(v);if(!w.success){Ot.error("SSE Validation Error:",w.error.flatten(),"raw message:",v);return}if(w.data.type==="connected"){Ot.info("SSE Subscribe Ready");return}t(w.data)}catch(v){Ot.error("SSE Parse Error",v)}}}});return Xo(()=>{if(R.kind==="faulted"){Ot.error("SSE connection faulted:",R.error);return}if(R.kind==="terminated")switch(R.terminalEvent){case"auth-required":L.current();return;case"forbidden":Ot.warn("SSE stopped: the viewer is not registered (forbidden)");return;case"resync-required":{let b=m.current+1;c(v=>({generation:v.generation+1,minAnchorRevision:b,anchored:!1})),Dn();return}}},[R]),e&&d?Eu:R};import{createContext as xu,useCallback as cs,useContext as Iu,useEffect as Lu,useMemo as Cu,useRef as us,useState as Au}from"react";import{jsx as ms,jsxs as ps}from"react/jsx-runtime";var _u=8e3,Du="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",wu=h("flex size-6 shrink-0 items-center justify-center rounded font-bold text-white/90 hover:bg-red-700 hover:text-white dark:hover:bg-red-800",$a),fs=xu({notifyError:()=>{}}),bs=()=>Iu(fs),Jo=({children:e})=>{let{onError:t,labels:r}=H(),[n,o]=Au(null),a=us(t);a.current=t;let i=us(null),s=cs(d=>{let y=a.current;if(y){y(d);return}o(d)},[]),l=cs(()=>{i.current!==null&&(clearTimeout(i.current),i.current=null),o(null)},[]);Lu(()=>{if(n)return i.current=setTimeout(()=>o(null),_u),()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)}},[n]);let c=Cu(()=>({notifyError:s}),[s]);return ps(fs.Provider,{value:c,children:[e,n&&ps("div",{role:"alert","data-testid":"daily-report-error-banner",className:Du,children:[ms("span",{className:"font-medium",children:n.message}),ms("button",{type:"button","aria-label":r.close,onClick:l,className:wu,children:"\u2715"})]})]})};import{jsx as ku}from"react/jsx-runtime";var Je=Wt(1,"daily-report-action-context"),Mu=Object.freeze([]),ea=globalThis.__DailyReportActionContext??Nu(null);globalThis.__DailyReportActionContext=ea;var _e=()=>{let e=Ou(ea);if(!e)throw new Error("[daily-report] useDailyReportActionContext must be used within a DailyReportActionProvider");return e},Mt=(e,t)=>{if(!e)return t;if(e.displayName?.trim())return e.displayName;if(e.name){let n=[e.name.familyName,e.name.givenName].filter(o=>typeof o=="string"&&o!=="").join(" ");if(n.trim())return n.trim()}let r=e.emails?.[0]?.value;return r||t},ta=({children:e,user:t,initialItems:r=Mu,userId:n})=>{let{apiBasePath:o,draftLabelName:a,labels:i}=H(),{notifyError:s}=bs(),l=Ae(s);l.current=s;let c=Ae(new Map),d=Ae(new Map),y=Ae(new Map),g=Ae(new Map),x=Ae(new Map),[L,m]=On(0),[R,b]=On(r),[v,w]=On(!1),_=Ae(!1),F=Ae(new Map),N=Ae(new Set),B=Ae(new Set),M=Ae(new Set),j=lt(),q=Ae(!1);q.current=j.phase==="complete"&&!j.isRevalidating;let z=dt(()=>ss()===(n??null),[n]),Q=dt(async()=>{Je.info("[DailyReportActionProvider] Refetching data without page reload..."),qo(),m(p=>p+1),G.listeners.forEach(p=>{p(-1)})},[]),U=dt(async()=>{Je.info("[DailyReportActionProvider] Clearing client & server/DB cache and refetching data without page reload..."),fr(),B.current.clear();try{sessionStorage.clear()}catch{}try{let p=new FormData;p.append("intent","clearCache");let u=await fetch(`${o}/action`,{method:"POST",body:p});if(!u.ok){let E=await u.json().catch(()=>null);Je.warn("[DailyReportActionProvider] Failed to clear server-side cache:",u.status,E)}}catch(p){Je.warn("[DailyReportActionProvider] Failed to clear server-side cache:",p)}z()&&(qo({forceRefresh:!0}),m(p=>p+1),G.listeners.forEach(p=>{p(-1)}))},[o,z]),X=Ae(new Map),K=Ae(()=>{}),V=dt((p,u)=>{let E=X.current,T=E.get(p);if(T){T.messages.push(u);return}let C={messages:[u],unsubscribe:()=>{},timer:setTimeout(()=>{let f=E.get(p);f&&(f.unsubscribe(),E.delete(p),Je.warn(`[SSE Queue] Expired: reportHubId=${p}, dropped=${f.messages.length} messages`))},3e4)};C.unsubscribe=wi(p,()=>{let f=E.get(p);if(f&&Ve(p,{ignoreExpiry:!0})){f.unsubscribe(),clearTimeout(f.timer),E.delete(p),Je.info(`[SSE Queue] Replaying ${f.messages.length} messages for reportHubId=${p}`);for(let S of f.messages)K.current(S)}}),E.set(p,C)},[]),re=p=>{M.current.add(p),setTimeout(()=>{M.current.delete(p)},3e4)},ue=dt(p=>!!p&&M.current.has(p),[]),Z=dt((p,u)=>{u!==void 0&&Sr({reportHubId:p,businessDate:u??null}),b(E=>{let T=E.find(f=>f.reportHubId===p),C=u??T?.businessDate??null;return Uo(E,{reportHubId:p,businessDate:C,sourceType:T?.sourceType})})},[]),W=()=>{n&&(_.current=!0,w(p=>!p))};Qo(()=>{if(!n)return;let p=setTimeout(()=>{_.current||w(!0)},hi);return()=>clearTimeout(p)},[n]);let ae=dt(p=>{z()&&(B.current.add(p),An(p),b(u=>u.filter(E=>E.reportHubId!==p)))},[z]),[be,ve]=On(r);if(r!==be){ve(r);let p=new Map;for(let T of r)B.current.has(T.reportHubId)||p.set(T.reportHubId,T);let u=q.current;for(let T of R)p.has(T.reportHubId)||B.current.has(T.reportHubId)||u&&T.reportHubId>0||p.set(T.reportHubId,T);let E=Array.from(p.values());Qi(E)||E.sort(xn),b(E)}Qo(()=>{if(q.current){let p=new Set(r.map(u=>u.reportHubId));for(let u of B.current)p.has(u)||B.current.delete(u)}},[r]);let Re=dt(p=>{if(z()&&!ue(p.clientTempId))switch(p.type){case"comment-add":{let{comment:u,reportHubId:E}=p,T=Ve(E,{ignoreExpiry:!0});if(T){if(T.postedComments.some(O=>O.id===u.id))return;let C=!1,f=c.current.get(E);if(f){for(let[O,P]of f.entries())if(P===u.content){f.delete(O),x.current.set(O,u.id),C=!0;break}}let S={...u,userName:u.userName||(C?Mt(t,i.unknownUser):i.unknownUser),createdAt:u.createdAt||new Date().toISOString(),isMine:C},D={...T,postedComments:[...T.postedComments,S].sort((O,P)=>new Date(O.createdAt||0).getTime()-new Date(P.createdAt||0).getTime())};Dt(E,D),br(E),yr(E),m(O=>O+1)}else V(E,p);break}case"comment-delete":{let{commentId:u,reportHubId:E}=p,T=Ve(E,{ignoreExpiry:!0});if(T){let C={...T,postedComments:T.postedComments.filter(f=>f.id!==u)};Dt(E,C),br(E),yr(E),m(f=>f+1)}else V(E,p);break}case"status-update":{let{statusType:u,value:E,reportHubId:T}=p,C=Ve(T,{ignoreExpiry:!0});if(u==="star")if(y.current.get(T)===E&&y.current.delete(T),C){let f={...C,isStarred:E};Dt(T,f),m(S=>S+1)}else V(T,p);else if(u==="read")if(g.current.get(T)===E&&g.current.delete(T),C){let f={...C,isRead:E};Dt(T,f),m(S=>S+1)}else V(T,p);break}case"report-delete":{let{reportHubId:u}=p;N.current.delete(u),B.current.add(u),An(u);let E=X.current.get(u);E&&(E.unsubscribe(),clearTimeout(E.timer),X.current.delete(u));let T=Ve(u,{ignoreExpiry:!0});T?.date&&(fn(u,T.date),m(C=>C+1)),b(C=>C.filter(f=>f.reportHubId!==u));break}case"report-create":case"report-update":case"report-publish":{let{report:u}=p;Ni(u),(p.type==="report-create"||p.type==="report-publish")&&(N.current.add(u.reportHubId),Z(u.reportHubId,u.date)),m(E=>E+1);break}}},[ue,z,Z,t,V,i.unknownUser]);K.current=Re,Qo(()=>()=>{for(let p of X.current.values())p.unsubscribe(),clearTimeout(p.timer);X.current.clear()},[]);let he=Zo({isSseEnabled:v,onMessage:Re}),ye=async(p,u,E,T,C,f)=>{f?.skipLock||br(p),C.onOptimistic?.();let S=T.clientTempId||crypto.randomUUID();re(S);let D=new FormData;D.append("intent",u),D.append("reportHubId",String(p)),typeof E=="string"&&D.append("businessDate",E),D.append("operationTimestamp",String(Date.now())),D.append("clientTempId",S);for(let[O,P]of Object.entries(T))O!=="clientTempId"&&D.append(O,P);try{let O=await fetch(`${o}/action`,{method:"POST",body:D,headers:{Accept:"application/json"}});if(!O.ok){let te=new Error(`Failed to ${u}`);throw Object.assign(te,{status:O.status}),te}let P=await O.json();if(P.status!=="OK"||u!=="create"&&String(P.reportHubId)!==String(p))throw new Error(`Invalid response for ${u}`);if(typeof P.clientTempId!="string"||P.clientTempId!==S)throw new Error(`Invalid clientTempId for ${u}`);if(!z())throw Je.warn(`[executeAction] ${u} resolved after a user switch; discarding continuation`),new Error(`Stale continuation for ${u}`);return await C.onSuccess?.(P)}catch(O){throw Je.error(`${u} failed:`,O),z()&&(C.onFailure?.(),l.current({operation:u,message:i.operationFailed(u),cause:O})),O}finally{f?.keepLock||f?.skipLock||yr(p)}},$e=async(p,u,E)=>{let T=Number(p),C=-1*Date.now(),f=ye(T,"addComment",E,{content:u,clientTempId:String(C)},{onOptimistic:()=>{c.current.has(T)||c.current.set(T,new Map),c.current.get(T)?.set(C,u),m(S=>S+1)},onSuccess:S=>{if(!S.newComment)throw new Error("No new comment returned");let D=S.newComment.id;x.current.set(C,D),c.current.get(T)?.delete(C);let O=Ve(T,{ignoreExpiry:!0});return O&&!O.postedComments.some(P=>P.id===D)&&We(T,{postedComments:[...O.postedComments,{...S.newComment,id:D,isMine:!0,userName:Mt(t,i.unknownUser)}],updatedAt:S.updatedAt}),D},onFailure:()=>{c.current.get(T)?.delete(C)}},{skipLock:!0}).finally(()=>F.current.delete(C));F.current.set(C,f),await f},nt=async(p,u,E)=>{let T=Number(p);d.current.has(T)||d.current.set(T,new Set),d.current.get(T)?.add(u),m(f=>f+1);let C=u;if(u<0){let f=x.current.get(u);if(f!==void 0)C=f;else{let S=F.current.get(u);if(!S)return;try{C=await S}catch{return}}}await ye(T,"deleteComment",E,{commentId:String(C)},{onSuccess:f=>{let S=typeof f.deletedCommentId=="string"?Number(f.deletedCommentId):C,D=Ve(T,{ignoreExpiry:!0});D&&(We(T,{postedComments:D.postedComments.filter(O=>O.id!==S),updatedAt:f.updatedAt}),Di(S)),d.current.get(T)?.delete(u)},onFailure:()=>{d.current.get(T)?.delete(u)}},{skipLock:!0})},ze=async(p,u,E)=>{let T=Number(p);await ye(T,"toggleStar",E,{isStarred:String(u)},{onOptimistic:()=>{We(T,{isStarred:u}),y.current.set(T,u),m(C=>C+1)},onSuccess:C=>{C.updatedStatus&&typeof C.updatedStatus.isStarred=="boolean"&&Ve(T,{ignoreExpiry:!0})&&(We(T,{isStarred:C.updatedStatus.isStarred,updatedAt:C.updatedAt}),m(S=>S+1)),y.current.delete(T)},onFailure:()=>{We(T,{isStarred:!u}),y.current.delete(T)}},{skipLock:!0})},ke=async(p,u,E)=>{let T=Number(p);await ye(T,"toggleRead",E,{isRead:String(u)},{onOptimistic:()=>{We(T,{isRead:u}),g.current.set(T,u),m(C=>C+1)},onSuccess:C=>{C.updatedStatus&&typeof C.updatedStatus.isRead=="boolean"&&Ve(T,{ignoreExpiry:!0})&&(We(T,{isRead:C.updatedStatus.isRead,updatedAt:C.updatedAt}),m(S=>S+1)),g.current.delete(T)},onFailure:()=>{We(T,{isRead:!u}),g.current.delete(T)}},{skipLock:!0})},Xe=Ae(ke);Xe.current=ke;let ot=dt((p,u,E)=>Xe.current(p,u,E),[]),Le=async p=>{let u=-1*Date.now(),E=new Date().toISOString(),T={reportHubId:u,date:p,createdAt:E,author:Mt(t,i.unknownUser),userId:t===void 0?null:t.id,sourceType:"Internal",employeeName:Mt(t,i.unknownUser),updatedBy:Mt(t,i.unknownUser),updatedAt:E,category:null,creationCategory:null,visitTimeFrom:null,visitTimeTo:null,customerName:null,interviewers:[],subject:"",content:"",externalComments:[],isRead:!0,isStarred:!1,labels:[{id:0,name:a,color:"#9ca3af"}],postedComments:[],attachments:[]};_i(T,Date.now()+3e5,!1),b(C=>[{reportHubId:u,businessDate:p},...C]);try{let C=await ye(0,"create",p,{clientTempId:String(u)},{onSuccess:S=>S});if(C.clientTempId&&C.clientTempId!==String(u))throw Je.warn(`[createReport] ID mismatch. req=${u}, res=${C.clientTempId}`),new Error("Optimistic ID mismatch");let f=Number(C.reportHubId);return Sr({reportHubId:f,businessDate:p}),br(f),C.report&&(Dt(f,C.report),m(S=>S+1)),b(S=>S.some(D=>D.reportHubId===f)?S.filter(D=>D.reportHubId!==u):S.map(D=>D.reportHubId===u?{...D,reportHubId:f}:D)),setTimeout(()=>yr(f),1e3),f}catch(C){throw Je.error("[createReport] Failed or mismatched",C),b(f=>f.filter(S=>S.reportHubId!==u)),C}},at=async(p,u,E)=>{let T=Number(p);await ye(T,"update",E,{...u.title&&{title:u.title},...u.content&&{content:u.content}},{onSuccess:()=>{let C=Ve(T,{ignoreExpiry:!0});C&&(We(T,{subject:u.title??C.subject,content:u.content??C.content}),m(f=>f+1))}})},it=async(p,u)=>{let E=Number(p),T=Ve(E,{ignoreExpiry:!0}),C=T?.labels||[];await ye(E,"publish",u,{},{onOptimistic:()=>{if(T){let f=T.labels.filter(S=>S.name!==a);We(E,{labels:f}),m(S=>S+1)}},onSuccess:f=>{f.report&&(Dt(E,f.report),m(S=>S+1)),u!==void 0&&Sr({reportHubId:E,businessDate:u})},onFailure:()=>{We(E,{labels:C}),m(f=>f+1)}},{skipLock:!0})},I=async(p,u)=>{let E=Number(p),T=R.find(C=>C.reportHubId===E);B.current.add(E),An(E),b(C=>C.filter(f=>f.reportHubId!==E));try{await ye(E,"delete",u,{},{onSuccess:C=>{fn(E,u)}})}catch(C){if(C.status===404){fn(E,u);return}if(!z())return;B.current.delete(E);let S=T===void 0?u:T.businessDate;S!==void 0&&Sr({reportHubId:E,businessDate:S}),T&&b(D=>D.some(O=>O.reportHubId===E)?D:Uo(D,T))}};return ku(ea.Provider,{value:{user:t,pendingAddCommentIds:c,pendingDeleteCommentIds:d,pendingStarUpdates:y,pendingReadUpdates:g,resolvedIdMap:x,version:L,items:R,isSseEnabled:v,toggleSse:W,sseStatus:he,addComment:$e,deleteComment:nt,toggleStar:ze,toggleRead:ot,createReport:Le,updateReport:at,publishReport:it,deleteReport:I,removeStaleItem:ae,refetchData:Q,clearCacheAndRefetch:U},children:e})};import{useCallback as Rs,useMemo as Pu,useRef as Hu,useState as Fu}from"react";var ys=(e,t,r,n)=>{if(typeof n!="string"||n.trim()==="")throw Te("mergeComments: unknownAuthorName","a non-blank string",n);let o=e.map((i,s)=>({id:`legacy-${s}`,authorName:i.name||n,content:i.text||"",isMine:!1,color:i.color||void 0,isLegacy:!0})),a=t.map(i=>({id:i.id,authorName:i.userName||n,content:i.content??"",createdAt:i.createdAt??"",isMine:r?i.userId===r:i.isMine,isLegacy:!1}));return[...o,...a]},gs=e=>{if(!e)return"text-gray-700 dark:text-gray-300";let t=e.toLowerCase();return t.includes("red")||t.includes("\u8D64")?"text-red-600 dark:text-red-400":t.includes("green")||t.includes("\u7DD1")?"text-green-600 dark:text-green-400":t.includes("blue")||t.includes("\u9752")?"text-blue-600 dark:text-blue-400":t.includes("yellow")||t.includes("\u9EC4")?"text-yellow-600 dark:text-yellow-400":t.includes("orange")||t.includes("\u6A59")?"text-orange-500 dark:text-orange-400":"text-gray-700 dark:text-gray-300"};var Er=(e,t,r)=>{let{pendingAddCommentIds:n,pendingDeleteCommentIds:o,resolvedIdMap:a,version:i,addComment:s,deleteComment:l}=_e(),{labels:c}=H(),d=c.unknownUser,[y,g]=Fu(null),x=Rs(b=>e&&l(e.reportHubId,b,e.date),[e,l]),L=Rs(b=>e&&t?s(e.reportHubId,b,e.date):Promise.resolve(),[e,t,s]),m=Hu([]);return{uiComments:Pu(()=>{if(!e)return[];let b=ys(e.externalComments,e.postedComments,r,d),v=o.current.get(e.reportHubId);v?.size&&(b=b.filter(_=>!v.has(_.id)));let w=n.current.get(e.reportHubId);if(w?.size&&t){let _=new Set(b.map(N=>N.id)),F=Mt(t,d);for(let[N,B]of w){if(v?.has(N)||_.has(N))continue;let M=a.current.get(N);M&&_.has(M)||b.some(j=>j.isMine&&j.content===B&&typeof j.id=="number"&&j.id>0)||b.push({id:N,authorName:F,content:B,createdAt:new Date().toISOString(),isMine:!0,isLegacy:!1})}}return JSON.stringify(b)===JSON.stringify(m.current)?m.current:(m.current=b,b)},[e,t,r,d,o,n,a,i]),handleAddComment:L,handleDeleteComment:x,pendingDeleteId:y,setPendingDeleteId:g,resolvedIdMap:a.current}};import{jsx as Uu}from"react/jsx-runtime";var Bu={2:"h2",3:"h3",4:"h4",5:"h5",6:"h6"},Rt=Object.freeze({2:3,3:4,4:5,5:6}),He=({level:e,...t})=>{let r=Bu[e];return Uu(r,{...t})};import{memo as Gs,useId as Nm,useMemo as Om,useRef as Mm}from"react";var hs=Object.freeze({tile:Object.freeze({maxWidth:480,maxHeight:320})});var na="tile",Tr=hs[na],Vu=2,vr=16,Ss=5,Es=Tr.maxWidth/Vu,Wu=Ss*(Es+vr)-vr,vs=e=>{let t=Math.min(Ss,1+Math.floor((e+vr)/(Es+vr)));return Math.floor((Math.min(e,Wu)-(t-1)*vr)/t)},ra=`round(nearest, 100cqi * ${Tr.maxHeight} / ${Tr.maxWidth}, 1px)`,Ts=Object.freeze({aspectRatio:`${Tr.maxWidth} / ${Tr.maxHeight}`,height:ra,contain:"strict"}),xs=Object.freeze({marginBlockEnd:`calc(round(up, ${ra}, ${4}px) - ${ra})`});var Ku="download",$u="thumbnail",zu="1",jt=(e,t,r)=>{let n=`${e}/attachment/${encodeURIComponent(t)}`;switch(r.kind){case"inline":return n;case"download":return`${n}?${new URLSearchParams({[Ku]:zu})}`;case"thumbnail":return`${n}?${new URLSearchParams({[$u]:r.variant})}`}};import{createContext as Gu,useContext as ju}from"react";var xr=Gu(null),Yt=()=>ju(xr)===!1?-1:void 0,Is=(e,t)=>{let{before:r,after:n}=gn(e.ownerDocument,e);return(t==="before"?r.at(-1):n[0])??null};import{createContext as Ju,useContext as Qu,useLayoutEffect as em,useMemo as tm,useState as rm}from"react";import{flushSync as nm}from"react-dom";import{flushSync as Yu}from"react-dom";var oa=new WeakMap,Ls=e=>e.observedTrackWidth!==null&&e.observedTrackWidth!==e.handedTrackWidth,qu=e=>{e.frame=null;let t=[...e.observations.values()].filter(Ls);t.length!==0&&Yu(()=>{for(let r of t){let n=r.observedTrackWidth;r.handedTrackWidth=n,r.onTrackWidth(n)}})},Xu=(e,t)=>{for(let r of t){let n=e.observations.get(r.target);if(n===void 0)continue;let o=r.contentBoxSize[0].inlineSize;o!==0&&(n.observedTrackWidth=vs(o))}e.frame!==null||![...e.observations.values()].some(Ls)||(e.frame=e.view.requestAnimationFrame(()=>qu(e)))},Zu=e=>{let t=oa.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] An attachment tile grid must belong to a document with a window to be measured");let n={view:r,observer:new r.ResizeObserver(o=>Xu(n,o)),observations:new Map,frame:null};return oa.set(e,n),n},Cs=(e,t)=>{let r=e.ownerDocument,n=Zu(r);if(n.observations.has(e))throw new Error("[daily-report] An attachment tile grid is already observed");let o={onTrackWidth:t,observedTrackWidth:null,handedTrackWidth:null};return n.observations.set(e,o),n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),!(n.observations.size>0)&&(n.frame!==null&&n.view.cancelAnimationFrame(n.frame),n.observer.disconnect(),oa.delete(r)))}};import{jsx as Lr,jsxs as Ds}from"react/jsx-runtime";var Ir="\u2026",om=Ir.codePointAt(0),Mn="data-attachment-file-name",am=/"([^"]*)"|'([^']*)'|([^\s,"'][^,"']*)/g,im=/^U\+([\dA-F?]{1,6})(?:-([\dA-F]{1,6}))?$/i,ws=Ju(null),Ns=e=>{let t=e.lastIndexOf(".");return t<=0||t===e.length-1?{stem:e,extension:""}:{stem:e.slice(0,t),extension:e.slice(t)}},As=(e,t,r,n)=>{let o=Array.from(e),a=0,i=o.length-1;for(;a<i;){let s=Math.ceil((a+i)/2);n(o.slice(0,s).join("")+t)<=r?a=s:i=s-1}return o.slice(0,a).join("")},sm=(e,t,r)=>{if(r(e)<=t)return e;let{stem:n,extension:o}=Ns(e.normalize("NFC")),a=t/2,i=r(o)<=a?o:`${As(o,Ir,a,r)}${Ir}`;return r(n+i)<=t?n+i:`${As(n,Ir+i,t,r)}${Ir}${i}`},_s=new WeakMap,Os=e=>{let t=_s.get(e);if(t!==void 0)return t;let r=e.createElement("canvas").getContext("2d");if(r===null)throw new Error("[daily-report] Attachment file names are fitted with a canvas 2D context, which this document cannot create");let n={context:r,font:"",measures:new Map};return _s.set(e,n),n},lm=(e,t)=>{let r=e.measures.get(t);if(r!==void 0)return r;let n=o=>(e.font!==t&&(e.context.font=t,e.font=t),e.context.measureText(o).width);return e.measures.set(t,n),n},Ms=e=>{let t=new Set;for(let r of e.matchAll(am)){let n=r.slice(1).find(o=>o!==void 0);t.add(n.trim().replace(/\s+/g," ").toLowerCase())}return t},dm=e=>{let t=getComputedStyle(e),r=`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`;return{font:r,families:Ms(t.fontFamily),measure:lm(Os(e.ownerDocument),r)}},cm=(e,t)=>e!==null&&e.width===t.width&&e.measure===t.measure,um=e=>{let t=new Set([om]);for(let r of e.querySelectorAll(`[${Mn}]`)){let n=r.getAttribute(Mn);for(let o of n+n.normalize("NFC"))t.add(o.codePointAt(0))}return t},mm=(e,t)=>{for(let r of e.split(",")){let n=im.exec(r.trim());if(n===null)return!0;let[,o,a]=n,i=Number.parseInt(o.replaceAll("?","0"),16),s=a===void 0?Number.parseInt(o.replaceAll("?","F"),16):Number.parseInt(a,16);for(let l of t)if(l>=i&&l<=s)return!0}return!1},aa=new WeakMap,ks=e=>{let t=aa.get(e);if(t!==void 0)return t;let r={document:e,registrations:new Set,stopWatchingFonts:null};return aa.set(e,r),r},Ps=(e,t)=>{let r=dm(e.container.querySelector(`[${Mn}]`));e.fitted={trackWidth:t,nameFont:r};let n=ks(e.container.ownerDocument);n.stopWatchingFonts===null&&(n.stopWatchingFonts=fm(n)),e.applyFit({width:t,measure:r.measure})},pm=(e,t)=>{let r=t.map(o=>({families:Ms(o.family),unicodeRange:o.unicodeRange})),n=[];for(let o of e.registrations){let{fitted:a}=o;if(a===null)continue;let i=r.filter(l=>Array.from(l.families).some(c=>a.nameFont.families.has(c)));if(i.length===0)continue;let s=um(o.container);i.some(l=>mm(l.unicodeRange,s))&&(Os(e.document).measures.delete(a.nameFont.font),n.push([o,a.trackWidth]))}n.length!==0&&nm(()=>{for(let[o,a]of n)Ps(o,a)})},fm=e=>{let t=e.document.fonts,r=n=>{pm(e,n.fontfaces)};return t.addEventListener("loadingdone",r),()=>{t.removeEventListener("loadingdone",r)}},bm=(e,t)=>{let r={container:e,applyFit:t,fitted:null},n=Cs(e,a=>Ps(r,a)),o=ks(e.ownerDocument);return o.registrations.add(r),()=>{n(),o.registrations.delete(r),!(o.registrations.size>0)&&(o.stopWatchingFonts?.(),aa.delete(o.document))}},Hs=({containerRef:e,children:t})=>{let[r,n]=rm(null);return em(()=>{let o=e.current;return bm(o,i=>{n(s=>cm(s,i)?s:i)})},[e]),Lr(ws,{value:r,children:t})},Cr=({fileName:e,className:t,testId:r})=>{let n=Qu(ws),o=tm(()=>n===null?null:sm(e,n.width,n.measure),[e,n]),{stem:a,extension:i}=Ns(e);return Ds("span",{className:h("block min-w-0",t),title:e,"data-testid":r,[Mn]:e,children:[o===null?Ds("span",{"aria-hidden":"true",className:"flex min-w-0",children:[Lr("span",{className:"truncate",children:a}),i!==""&&Lr("span",{className:"max-w-1/2 shrink-0 truncate",children:i})]}):Lr("span",{"aria-hidden":"true",className:"block overflow-hidden whitespace-nowrap",children:o}),Lr("span",{className:"sr-only",children:e})]})};import Sm from"lucide-react/dist/esm/icons/image-off.js";import{memo as Em,useCallback as la,useEffect as vm,useLayoutEffect as Tm,useRef as da,useState as xm}from"react";var kn=Object.freeze({queueWaitMs:3e4,readMs:3e4,renderMs:1e4,transferMarginMs:5e3}),Fs=kn.queueWaitMs+kn.readMs+kn.renderMs+kn.transferMarginMs;var ym=Object.freeze({kind:"loaded"}),Bs=(e,t,r,n,o)=>{let{limiter:a,tuning:i}=n,s="watching",l=null,c=null,d=null,y=null,g=null,x=U=>(U!==null&&n.clearTimeout(U),null),L=()=>{y?.(),y=null},m=()=>{g?.(),g=null},R=U=>U===null||U.kind==="loaded"?0:U.kind==="failing"?U.failedAttempts:i.maxAttempts,b=U=>{s="cooling",d=n.setTimeout(j,U)},v=()=>{o.abortInFlight(),m();let U=R(r.get(t))+1;if(U>=i.maxAttempts){s="done",r.set(t,{kind:"exhausted",failedAt:n.now()}),o.exhausted();return}r.set(t,{kind:"failing",failedAttempts:U,retryAt:n.now()+i.retryDelayMs}),o.reset(),b(i.retryDelayMs)},w=U=>{if(s==="loading"){if(c=x(c),!U){v();return}s="done",r.set(t,ym),m()}},_=()=>{c=null,w(!1)},F=()=>{s="loading",o.showActivity(!0),L(),c=n.setTimeout(_,i.loadTimeoutMs),o.grant()},N=()=>{l=null,s="queued",g=a.request(F)},B=()=>{l===null&&(l=n.setTimeout(N,i.settleMs))},M=U=>{if(o.showActivity(U),U){s==="watching"&&B();return}if(s==="queued"){m(),s="watching";return}l=x(l)},j=()=>{d=null,s="watching",o.showActivity(!1),y=n.observe(e,M)},q=()=>{let U=s==="loading";s="done",L(),l=x(l),c=x(c),d=x(d),o.showActivity(!1),U&&(o.abortInFlight(),g!==null&&o.reset()),m()},z=r.get(t);if(z?.kind==="loaded")return s=o.shows()?"done":"loading",o.grant(),{settle:w,dispose:q};if(z?.kind==="exhausted"){if(n.now()-z.failedAt<i.failureMemoryMs)return s="done",o.exhausted(),{settle:w,dispose:q};r.delete(t)}o.reset();let Q=z?.kind==="failing"?z.retryAt-n.now():0;return Q>0?b(Q):j(),{settle:w,dispose:q}};var gm=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createLoadSlotLimiter: limit","an integer >= 1",e);let t=0,r=new Set,n=()=>{for(let o of r){r.delete(o),o.onGranted();return}t-=1};return{request:o=>{let a={onGranted:o},i=!1;return t<e?(t+=1,o()):r.add(a),()=>{i||(i=!0,!r.delete(a)&&n())}}}},Us=gm(2);var Rm=e=>{if(!Number.isInteger(e)||e<=0)throw Te("createThumbnailProgressStore: maxUrls","an integer >= 1",e);let t=new Map,r=(n,o)=>{t.delete(n),t.set(n,o)};return{peek:n=>t.get(n)??null,get:n=>{let o=t.get(n);return o===void 0?null:(r(n,o),o)},set:(n,o)=>{if(r(n,o),t.size<=e)return;let[a]=t.keys();t.delete(a)},delete:n=>{t.delete(n)}}},ia=Rm(1024);var sa=new WeakMap,hm=e=>{let t=sa.get(e);if(t!==void 0)return t;let r=e.defaultView;if(r===null)throw new Error("[daily-report] A thumbnail frame must belong to a document with a window to be observed");let n=new WeakMap,a={observer:new r.IntersectionObserver(i=>{for(let s of i)n.get(s.target)?.onChange(s.isIntersecting)}),observations:n,observed:0};return sa.set(e,a),a},Vs=(e,t)=>{let r=e.ownerDocument,n=hm(r);if(n.observations.has(e))throw new Error("[daily-report] A thumbnail frame is already observed");let o={onChange:t};return n.observations.set(e,o),n.observed+=1,n.observer.observe(e),()=>{n.observations.get(e)===o&&(n.observations.delete(e),n.observer.unobserve(e),n.observed-=1,!(n.observed>0)&&(n.observer.disconnect(),sa.delete(r)))}};import{jsx as Ar,jsxs as wm}from"react/jsx-runtime";var Im={idle:"pending",granted:"pending",loaded:"loaded",failed:"unavailable"},Lm="data-thumbnail-active",Cm="data-daily-report-attachment-preview",Ks={[Cm]:""},Am=Object.freeze({settleMs:250,loadTimeoutMs:Fs,retryDelayMs:5e3,maxAttempts:2,failureMemoryMs:6e4}),Ws=e=>{let t=ia.peek(e);return t?.kind==="loaded"?{url:e,status:"loaded"}:t?.kind==="exhausted"?{url:e,status:"failed"}:{url:e,status:"idle"}},_m=()=>({limiter:Us,now:()=>performance.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),observe:Vs,tuning:Am}),Dm=(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(Lm,o)}}),$s=Em(({thumbnailUrl:e,unavailableLabel:t})=>{let r=da(null),n=da(null),o=da(null),[a,i]=xm(()=>Ws(e));a.url!==e&&i(Ws(e)),Tm(()=>{if(a.status==="failed")return;let d=n.current,y=a.status==="idle"?null:a.url;d.getAttribute("src")!==y&&(y===null?d.removeAttribute("src"):d.setAttribute("src",y))},[a]),vm(()=>{let d=r.current,y=Bs(d,e,ia,_m(),Dm(e,d,i,n));return o.current=y,()=>{o.current=null,y.dispose()}},[e]);let s=la(d=>{d!==null&&(n.current=d)},[]),l=la(()=>{i(d=>d.status==="granted"?{url:d.url,status:"loaded"}:d),o.current?.settle(!0)},[]),c=la(()=>{o.current?.settle(!1)},[]);return Ar("span",{className:"block",children:Ar("span",{ref:r,"aria-hidden":"true","data-testid":"daily-report-attachment-thumbnail-frame","data-thumbnail-state":Im[a.status],style:Ts,className:"relative block w-full",children:Ar("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"?wm("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 ${en}`,"data-testid":"daily-report-attachment-thumbnail-unavailable",children:[Ar(Sm,{"aria-hidden":"true",className:"size-5 shrink-0 text-slate-500 dark:text-slate-400"}),t]}):Ar("img",{ref:s,alt:"",decoding:"async",fetchPriority:"low",draggable:!1,onLoad:l,onError:c,className:"max-h-full max-w-full opacity-0 motion-safe:transition-opacity motion-safe:duration-200 motion-safe:ease-out [[data-thumbnail-state=loaded]_&]:opacity-100","data-testid":"daily-report-attachment-thumbnail"})})})})});import{jsx as me,jsxs as Qe}from"react/jsx-runtime";var zs=1024,ca=["B","KB","MB","GB"],js="text-slate-500 text-sm line-through dark:text-slate-400",km=e=>{if(e===null||!Number.isFinite(e)||e<0)return null;let t=e,r=0;for(;t>=zs&&r<ca.length-1;)t/=zs,r+=1;return r===0?`${t} ${ca[r]}`:`${t.toFixed(1)} ${ca[r]}`},Ys=({attachment:e,labels:t,className:r})=>Qe("span",{className:r,children:[km(e.fileSize)??"\u2014",e.state==="absent"&&` \xB7 ${t.attachmentMissing}`]}),ua=({href:e,children:t,...r})=>{let n=Yt();return me("a",{href:e,...r,tabIndex:n,children:t})},qs=({downloadUrl:e,label:t,fileName:r})=>Qe(ua,{href:e,className:h("relative ml-auto shrink-0 rounded-sm text-slate-500 text-xs underline decoration-slate-300 underline-offset-2 after:absolute after:-inset-x-2 after:-inset-y-1 hover:text-slate-700 hover:decoration-current dark:text-slate-400 dark:decoration-slate-600 dark:hover:text-slate-200",J),"data-testid":"daily-report-attachment-download",children:[t," ",me("span",{className:"sr-only",children:r})]}),Pm=Gs(({attachment:e,apiBasePath:t,labels:r})=>{let n=me($s,{thumbnailUrl:jt(t,e.id,{kind:"thumbnail",variant:na}),unavailableLabel:r.attachmentThumbnailUnavailable}),o=e.state==="absent";return Qe("li",{className:"@container flex min-w-0 flex-col gap-1","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[o?Qe("div",{className:"flex min-w-0 flex-col gap-2",children:[n,me(Cr,{fileName:e.fileName,className:js,testId:"daily-report-attachment-name"})]}):Qe(ua,{href:jt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 flex-col gap-2 rounded-lg",J),"data-testid":"daily-report-attachment-link",...Ks,children:[n,me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm dark:text-blue-400 [@media(hover:hover)]:[[data-daily-report-attachment-preview]:hover_&]:underline"})]}),Qe("div",{className:"flex h-4 min-w-0 items-center gap-2 text-slate-500 text-xs tabular-nums dark:text-slate-400",style:xs,children:[me(Ys,{attachment:e,labels:r,className:"truncate"}),!o&&me(qs,{downloadUrl:jt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})]})}),Hm=Gs(({attachment:e,apiBasePath:t,labels:r})=>{let n=e.state==="absent";return Qe("li",{className:"flex items-center gap-2 rounded-lg bg-slate-50 p-2 dark:bg-slate-800/40","data-testid":"daily-report-attachment-item","data-attachment-state":e.state,children:[Qe("div",{className:"flex min-w-0 flex-col",children:[n?me(Cr,{fileName:e.fileName,className:js,testId:"daily-report-attachment-name"}):me(ua,{href:jt(t,e.id,{kind:"inline"}),className:h("flex min-w-0 rounded-sm",J),"data-testid":"daily-report-attachment-link",children:me(Cr,{fileName:e.fileName,className:"text-blue-600 text-sm hover:underline dark:text-blue-400"})}),me(Ys,{attachment:e,labels:r,className:"truncate text-slate-500 text-xs tabular-nums dark:text-slate-400"})]}),!n&&me(qs,{downloadUrl:jt(t,e.id,{kind:"download"}),label:r.attachmentDownload,fileName:e.fileName})]})}),Fm=({attachments:e,headingId:t,apiBasePath:r,labels:n})=>{let o=Mm(null);return me(Hs,{containerRef:o,children:me("div",{ref:o,className:"@container","data-testid":"daily-report-attachment-grid-container",children:me("ul",{"aria-labelledby":t,className:"grid @min-[1008px]:w-[calc(round(down,100%-64px,5px)+64px)] @min-[240px]:w-[calc(round(down,100%-16px,2px)+16px)] @min-[496px]:w-[calc(round(down,100%-32px,3px)+32px)] @min-[752px]:w-[calc(round(down,100%-48px,4px)+48px)] w-[round(down,100%,1px)] max-w-[1264px] @min-[1008px]:grid-cols-5 @min-[240px]:grid-cols-2 @min-[496px]:grid-cols-3 @min-[752px]:grid-cols-4 grid-cols-1 gap-[16px]","data-testid":"daily-report-attachment-grid",children:e.map(a=>me(Pm,{attachment:a,apiBasePath:r,labels:n},a.id))})})})},Pn=({attachments:e})=>{let{apiBasePath:t,labels:r,headingLevel:n}=H(),o=Nm(),{tileAttachments:a,rowAttachments:i}=Om(()=>({tileAttachments:e.filter(s=>s.hasThumbnail),rowAttachments:e.filter(s=>!s.hasThumbnail)}),[e]);return e.length===0?null:Qe("div",{className:"flex flex-col gap-2","data-testid":"daily-report-attachment-section",children:[me(He,{level:Rt[n],id:o,className:h("m-0",Ct),children:r.attachments}),Qe("div",{className:"flex flex-col gap-4",children:[a.length>0&&me(Fm,{attachments:a,headingId:o,apiBasePath:t,labels:r}),i.length>0&&me("ul",{"aria-labelledby":o,className:"flex flex-col gap-2","data-testid":"daily-report-attachment-rows",children:i.map(s=>me(Hm,{attachment:s,apiBasePath:t,labels:r},s.id))})]})]})};import{useOverlayEscapeStack as Qm}from"@aiquants/swipe-overlay";import{useCallback as fa,useEffect as Zs,useId as ep,useRef as ba,useState as tp}from"react";var _r=e=>e.isComposing||e.keyCode===229,Hn=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 Bm={kind:"hold"},Um=new Set(["grid","listbox","menu","menubar","radiogroup","tablist","toolbar","tree","treegrid"]),Vm=(e,t)=>{let r=e.getAttribute("role");return r!==null&&Um.has(r)&&e!==t&&e.contains(t)},Dr=e=>e.key==="Escape"&&!e.defaultPrevented&&!_r(e),Xs=(e,t)=>{if(e.key!=="Tab"||e.altKey||e.ctrlKey||e.metaKey||e.defaultPrevented||_r(e))return null;let r=e.target;if(!(fe(r)&&t.contains(r)))return null;let n=Bi(t);if(n.length===0)return Bm;let{before:o,within:a,after:i}=gn(t,r);return e.shiftKey?o.some(s=>!Vm(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 Wm,jsx as Km}from"react/jsx-runtime";var Se=({render:e})=>{let t=Yt();return Km(Wm,{children:e(t)})};import $m from"@heroicons/react/24/outline/TrashIcon.js";import{memo as zm,useId as Gm,useRef as jm,useState as Ym}from"react";import{jsx as ht,jsxs as Fn}from"react/jsx-runtime";var ma="data-comment-id",Bn="data-comment-delete-button",Un="data-comment-delete-slot",qm=h(De,ja),Xm="relative flex h-5 items-center",Zm=h(Ce,"motion-safe:fade-in motion-safe:zoom-in-95 absolute top-full right-0 z-20 mt-1 whitespace-nowrap bg-red-600 font-bold text-white text-xs shadow-lg hover:bg-red-700 active:bg-red-800 motion-safe:animate-in motion-safe:duration-200",J),Jm=(e,t,r)=>t===e||typeof e=="number"&&e<0&&r?.get(e)===t||typeof t=="number"&&t<0&&r?.get(t)===e,pa=zm(({comment:e,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:i,onBeforeHide:s,resolvedIdMap:l})=>{let[c,d]=Ym(!1),{labels:y}=H(),g=Gm(),x=jm(null),L=Jm(e.id,o,l),m=()=>{let b=x.current;b!==null&&s(b),a(null),d(!0),typeof e.id=="number"&&n?.(e.id)},R=b=>{if(!L)return;let v=b.relatedTarget;fe(v)&&b.currentTarget.contains(v)||a(null)};return Fn("li",{[ma]:e.id,"data-deleted":c?"true":void 0,className:h("relative rounded-xl border border-slate-200 border-solid bg-white p-[11px] dark:border-slate-700 dark:bg-slate-900/70",e.isMine&&"border-blue-200 bg-blue-50 dark:border-blue-800/70 dark:bg-blue-950/40",c&&"hidden",L?"z-50":"z-0 hover:z-10"),children:[Fn("div",{className:"mb-1 flex items-center justify-between",children:[ht("div",{className:h("font-semibold text-xs",gs(e.color)),children:le(e.authorName)}),Fn("div",{className:"flex items-center gap-2",children:[e.createdAt&&ht("div",{className:"text-slate-500 text-xs dark:text-slate-400",children:se(e.createdAt)}),e.isMine&&!e.isLegacy&&Fn("div",{[Un]:e.id,className:Xm,onBlur:R,children:[ht(Se,{render:b=>ht("button",{ref:x,type:"button",tabIndex:b,className:qm,title:y.commentDelete,"aria-label":y.commentDelete,"aria-expanded":L,"aria-controls":L?g:void 0,[Bn]:e.id,onClick:()=>i(e.id,L),children:ht($m,{"aria-hidden":"true",className:L?ge.deletePending:ge.delete})})}),L&&ht(Se,{render:b=>ht("button",{id:g,type:"button",tabIndex:b,"data-delete-confirmation":!0,className:Zm,onClick:m,children:y.commentDeleteConfirm})})]})]})]}),ht("div",{className:"whitespace-pre-wrap text-slate-700 text-sm leading-6 dark:text-slate-200",children:e.content})]})});pa.displayName="DailyReportPostedComment";import{jsx as Ye,jsxs as el}from"react/jsx-runtime";var rp="data-daily-report-comment-section",np="data-daily-report-comment-heading",op=h(st,J),Qs=(e,t)=>e>0||t,ap=h("h-9 min-w-0 flex-1 rounded-lg border border-slate-300 border-solid bg-slate-50 px-[7px] text-sm focus:bg-white dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:focus:bg-slate-900",J),ip=h("h-9 rounded-lg bg-blue-600 px-4 font-medium text-sm text-white hover:bg-blue-700 disabled:opacity-50",J),Js=e=>e.querySelector(`[${Bn}][aria-expanded="true"]`),sp=(e,t,r)=>{let n=[...e.querySelectorAll(`[${Bn}]`)].filter(s=>s===t||s.closest("[data-deleted]")===null),o=n.indexOf(t),a=n.at(o+1);if(a!==void 0)return{kind:"trash",button:a};if(o>0)return{kind:"trash",button:n[o-1]};let i=[...e.querySelectorAll(`[${ma}]`)].filter(s=>!s.contains(t)&&s.closest("[data-deleted]")===null).length;return Qs(i,r)?{kind:"heading"}:{kind:"report"}},lp=({comments:e,reportHubId:t,businessDate:r,onDeleteComment:n,pendingDeleteId:o,onPendingDeleteIdChange:a,resolvedIdMap:i,canComment:s,headingRef:l,onSectionRemoved:c})=>{let d=ba(null),y=Qm(),g=ep(),x=o!==null,L=fa(()=>{let b=d.current,v=b===null?null:Js(b),w=v===null?null:v.closest(`[${Un}]`),_=b===null?null:Ne(b);a(null),v!==null&&w!==null&&_!==null&&w.contains(_)&&v.focus({preventScroll:!0})},[a]);Zs(()=>{if(x)return y({id:g,onEscape:b=>Dr(b)?(L(),!0):!1})},[x,y,g,L]),Zs(()=>{let b=d.current;if(!x||b===null)return;let v=b.ownerDocument,w=_=>{let F=Js(b)?.closest(`[${Un}]`);F!=null&&fe(_.target)&&F.contains(_.target)||a(null)};return v.addEventListener("pointerdown",w,!0),()=>v.removeEventListener("pointerdown",w,!0)},[x,a]);let m=fa((b,v)=>{v?L():a(b)},[L,a]),R=fa(b=>{let v=d.current;if(v===null)return;let w=sp(v,b,s);if(w.kind==="report"){c();return}let _=w.kind==="trash"?w.button:l.current;if(_===null)throw new Error("[daily-report] the comment section's heading is not attached");_.focus({preventScroll:!0})},[s,l,c]);return e.length===0?null:Ye("ul",{ref:d,className:"space-y-2",children:e.map(b=>Ye(pa,{comment:b,reportHubId:t,businessDate:r,onOptimisticDelete:n,pendingDeleteId:o,onPendingDeleteIdChange:a,onToggleConfirmation:m,onBeforeHide:R,resolvedIdMap:i},b.id))})},Vn=({className:e,children:t,...r})=>{let{labels:n,headingLevel:o}=H(),a=ba(null);return Qs(r.comments.length,r.canComment)?el("div",{[rp]:"",className:h("flex flex-col gap-2",e),children:[Ye(He,{ref:a,level:Rt[o],tabIndex:-1,[np]:"",className:op,children:n.comments}),Ye(lp,{...r,headingRef:a}),t]}):null},Wn=({reportHubId:e,businessDate:t,onAddComment:r})=>{let[n,o]=tp(!1),a=ba(null),{labels:i}=H();return el("form",{className:"flex gap-2",ref:a,onSubmit:async l=>{l.preventDefault();let d=new FormData(l.currentTarget).get("content")?.trim();if(d&&r){o(!0),a.current?.reset();try{await r(d)}catch{if(a.current){let y=a.current.elements.namedItem("content");y&&(y.value=d)}}finally{o(!1)}}},children:[Ye("input",{type:"hidden",name:"intent",value:"addComment"}),Ye("input",{type:"hidden",name:"reportHubId",value:e}),typeof t=="string"&&Ye("input",{type:"hidden",name:"businessDate",value:t}),Ye(Se,{render:l=>Ye("input",{type:"text",name:"content",tabIndex:l,placeholder:i.commentPlaceholder,className:ap,autoComplete:"off"})}),Ye(Se,{render:l=>Ye("button",{type:"submit",tabIndex:l,className:ip,disabled:n,children:i.commentSend})})]})};import{useEffect as yp,useRef as gp,useState as ya}from"react";import{Slot as dp}from"@radix-ui/react-slot";import{cva as cp}from"class-variance-authority";import*as tl from"react";import{jsx as mp}from"react/jsx-runtime";var up=cp(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 ${J}`,{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-solid border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-2",lg:"h-11 rounded-md px-4",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ct=tl.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},a)=>mp(n?dp:"button",{className:h(up({variant:t,size:r,className:e})),ref:a,...o}));ct.displayName="Button";import{jsx as pp}from"react/jsx-runtime";function rl({className:e,type:t,...r}){return pp("input",{type:t,"data-slot":"input",className:h(`flex h-9 w-full min-w-0 rounded-md border border-input border-solid bg-transparent px-[7px] py-[3px] text-base shadow-xs selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...r})}import*as nl from"@radix-ui/react-label";import{jsx as fp}from"react/jsx-runtime";function wr({className:e,...t}){return fp(nl.Root,{"data-slot":"label",className:h("flex select-none items-center gap-2 font-medium text-sm leading-none [:where(.group)[data-disabled=true]_&]:pointer-events-none [:where(.group)[data-disabled=true]_&]:opacity-50 [:where(.peer):disabled~&]:cursor-not-allowed [:where(.peer):disabled~&]:opacity-50",e),...t})}import{jsx as bp}from"react/jsx-runtime";function ol({className:e,...t}){return bp("textarea",{"data-slot":"textarea",className:h(`flex min-h-15 w-full rounded-md border border-input border-solid bg-transparent p-[7px] text-base shadow-xs placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive md:text-sm dark:bg-input/30 ${J}`,e),...t})}import{jsx as Ke,jsxs as Kn}from"react/jsx-runtime";var Rp=e=>{e.preventDefault()},$n=({report:e,onCancel:t,onPublishSuccess:r,titleInputRef:n})=>{let{updateReport:o,publishReport:a}=_e(),{labels:i}=H(),[s,l]=ya(e.subject??""),[c,d]=ya(e.content??""),[y,g]=ya(!1),x=gp(e.reportHubId);yp(()=>{e.reportHubId!==x.current&&(l(e.subject??""),d(e.content??""),x.current=e.reportHubId)},[e.reportHubId,e.subject,e.content]);let L=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date)}catch{}finally{g(!1)}},m=async()=>{g(!0);try{await o(e.reportHubId,{title:s,content:c},e.date),await a(e.reportHubId,e.date),r?.()}catch{}finally{g(!1)}},R=`report-title-${e.reportHubId}`,b=`report-content-${e.reportHubId}`;return Kn("form",{className:"space-y-4 p-1",onSubmit:Rp,children:[Kn("div",{className:"space-y-2",children:[Ke(wr,{htmlFor:R,children:i.formTitle}),Ke(Se,{render:v=>Ke(rl,{ref:n,id:R,value:s,onChange:w=>l(w.target.value),placeholder:i.formTitlePlaceholder,disabled:y,tabIndex:v})})]}),Kn("div",{className:"space-y-2",children:[Ke(wr,{htmlFor:b,children:i.formContent}),Ke(Se,{render:v=>Ke(ol,{id:b,value:c,onChange:w=>d(w.target.value),placeholder:i.formContentPlaceholder,className:"min-h-50",disabled:y,tabIndex:v})})]}),Kn("div",{className:"flex justify-end gap-2",children:[t&&Ke(Se,{render:v=>Ke(ct,{type:"button",variant:"outline",onClick:t,disabled:y,tabIndex:v,children:i.formCancel})}),Ke(Se,{render:v=>Ke(ct,{type:"button",variant:"secondary",onClick:L,disabled:y,tabIndex:v,children:i.formSave})}),Ke(Se,{render:v=>Ke(ct,{type:"button",onClick:m,disabled:y,tabIndex:v,children:i.formPublish})})]})]})};import Ap from"lucide-react/dist/esm/icons/check.js";import _p from"lucide-react/dist/esm/icons/pencil.js";import Dp from"lucide-react/dist/esm/icons/trash-2.js";import{jsx as al}from"react/jsx-runtime";var Gn=24,il=2,hp=20,zn=5,Sp=3,Ep=()=>{let e=Math.cos(2*Math.PI/zn)/Math.cos(Math.PI/zn),t=Array.from({length:2*zn},(g,x)=>{let L=-Math.PI/2+x*Math.PI/zn,m=x%2===0?1:e;return{x:m*Math.cos(L),y:m*Math.sin(L)}}),r=t.map(g=>g.x),n=t.map(g=>g.y),[o,a,i,s]=[Math.min(...r),Math.max(...r),Math.min(...n),Math.max(...n)],l=(hp-il)/(a-o),c=Gn/2-l*(o+a)/2,d=Gn/2-l*(i+s)/2,y=g=>String(Number(g.toFixed(Sp)));return t.map(g=>`${y(c+l*g.x)},${y(d+l*g.y)}`).join(" ")},vp=Ep(),qt=({filled:e})=>al("svg",{viewBox:`0 0 ${Gn} ${Gn}`,"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:il,strokeLinejoin:"round",className:e?ge.starOn:ge.starOff,children:al("polygon",{points:vp})});import{Fragment as Tp,jsx as jn,jsxs as xp}from"react/jsx-runtime";var Xt=({config:e,id:t,className:r})=>jn("span",{id:t,className:h(Xa,e.badgeClassName,r),children:e.name===void 0?e.label:xp(Tp,{children:[jn("span",{"aria-hidden":"true",children:jn("abbr",{title:e.name,children:e.label})}),jn("span",{className:"sr-only",children:e.name})]})});import{jsx as sl}from"react/jsx-runtime";var Yn=24,Ip=6,Zt=({className:e})=>sl("svg",{viewBox:`0 0 ${Yn} ${Yn}`,"aria-hidden":"true",className:h(ge.read,e),children:sl("circle",{cx:Yn/2,cy:Yn/2,r:Ip,fill:"currentColor"})});import{jsx as Cp}from"react/jsx-runtime";var Lp=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2})?$/,kt=({text:e})=>Lp.test(e)?Cp("time",{dateTime:e,children:e}):e;import{jsx as Fe,jsxs as dl}from"react/jsx-runtime";var de=({label:e,classNames:t,valueId:r,children:n})=>dl("div",{className:t.field,children:[Fe("dt",{className:t.label,children:e}),Fe("dd",{id:r,className:h("m-0",t.value),children:n})]}),St={field:"flex flex-col gap-1",label:"font-semibold text-slate-600 text-xs uppercase tracking-wide dark:text-slate-400",value:"text-slate-700 text-sm dark:text-slate-200"},ll=({report:e,visitTimeDisplay:t,labels:r})=>{let n=e.category?.trim(),o=e.creationCategory?.trim();return dl("dl",{className:"m-0 flex flex-col gap-2 rounded-xl bg-slate-100 p-3 text-slate-600 text-xs dark:bg-slate-800/60 dark:text-slate-300",children:[Fe(de,{label:r.author,classNames:St,children:le(e.author)}),Fe(de,{label:r.createdAt,classNames:St,children:Fe(kt,{text:se(e.createdAt)})}),Fe(de,{label:r.updatedBy,classNames:St,children:le(e.updatedBy)}),Fe(de,{label:r.updatedAt,classNames:St,children:Fe(kt,{text:se(e.updatedAt)})}),Fe(de,{label:r.businessDate,classNames:St,children:Fe(kt,{text:se(e.date)})}),t!==null&&Fe(de,{label:r.visitTime,classNames:St,children:t}),n&&Fe(de,{label:r.category,classNames:St,children:n}),o&&Fe(de,{label:r.creationCategory,classNames:St,children:o})]})};import{jsx as ie,jsxs as ul}from"react/jsx-runtime";var qn={field:h(Ce,"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:""},wp={field:h(Ce,"gap-1 whitespace-nowrap bg-blue-50 font-semibold text-blue-800 text-xs dark:bg-blue-500/15 dark:text-blue-200"),label:"text-blue-700 text-xs uppercase tracking-wide dark:text-blue-300",value:""},cl={field:h(Ce,"gap-1 whitespace-nowrap bg-amber-100 text-amber-900 dark:bg-amber-500/15 dark:text-amber-200"),label:"text-amber-800 text-xs uppercase tracking-wide dark:text-amber-300",value:""},ml=({report:e,isRead:t,isStarred:r,isMine:n,onToggleRead:o,onToggleStar:a,onEdit:i,editButtonRef:s,onDelete:l,sourceConfig:c,visitTimeDisplay:d,markerIds:y,labels:g})=>{let x=r?g.starRemove:g.starAdd,L=t?g.markUnread:g.markRead,m=e.category?.trim(),R=e.creationCategory?.trim();return ul("div",{className:"flex flex-wrap items-center gap-2 font-medium text-slate-600 text-xs dark:text-slate-300",children:[ie(ur,{id:y.attachments,count:e.attachments.length,label:g.attachments}),c?ie(Xt,{id:y.source,config:c}):null,ie(Se,{render:b=>ie("button",{type:"button",onClick:a,tabIndex:b,className:De,title:x,"aria-label":x,"data-detail-star-button":e.reportHubId,children:ie(qt,{filled:r})})}),ie(Se,{render:b=>ie("button",{type:"button",onClick:o,tabIndex:b,className:De,title:L,"aria-label":L,"data-detail-read-button":e.reportHubId,children:t?ie(Ap,{className:ge.read}):ie(Zt,{})})}),i&&ie(Se,{render:b=>ie("button",{ref:s,type:"button",onClick:i,tabIndex:b,"data-detail-edit-button":e.reportHubId,className:De,title:g.edit,"aria-label":g.edit,children:ie(_p,{className:ge.edit})})}),n&&ie(Se,{render:b=>ie("button",{type:"button",onClick:l,tabIndex:b,"data-detail-delete-button":e.reportHubId,className:De,title:g.deleteReport,"aria-label":g.deleteReport,children:ie(Dp,{className:ge.delete})})}),ul("dl",{className:"m-0 flex flex-wrap items-center gap-2",children:[ie(de,{label:g.id,classNames:wp,children:e.reportHubId}),ie(de,{label:g.businessDate,classNames:qn,children:ie(kt,{text:se(e.date)})}),ie(de,{label:g.author,classNames:qn,children:le(e.employeeName)}),ie(de,{label:g.visitTime,classNames:qn,children:le(d)}),ie(de,{label:g.updatedAt,classNames:qn,children:ie(kt,{text:se(e.updatedAt)})}),m&&ie(de,{label:g.category,classNames:cl,children:m}),R&&ie(de,{label:g.creationCategory,classNames:cl,children:R})]})]})};import{useCallback as af,useContext as Hl,useLayoutEffect as va,useRef as Fl}from"react";import{startTransition as Xp,useCallback as ee,useLayoutEffect as Pt,useMemo as Ml,useRef as Tt,useState as Pr,useSyncExternalStore as Zp}from"react";import{flushSync as kl}from"react-dom";var Jt=e=>({owner:e,focusIndex:null}),ga=Object.freeze({owner:null,focusIndex:null}),pl=(e,t)=>{if(e.length===0)return ga;let r=Math.min(Math.max(t,0),e.length-1);return{owner:{reportHubId:e[r].reportHubId,index:r},focusIndex:r}},fl=(e,t)=>{switch(t.kind){case"focusIn":return Jt(t.row);case"focusOut":return t.to==="outside"?ga:Jt(e);case"pointerPress":return t.at==="outside"?ga:Jt(e);case"listChanged":{if(e===null)return Jt(e);let r=ce(t.items,e.reportHubId,e.index);return r===-1?pl(t.items,e.index):Jt(r===e.index?e:{reportHubId:e.reportHubId,index:r})}case"removed":return t.selection===null||t.selection.reportHubId!==t.reportHubId?Jt(e):pl(t.items,t.selection.index)}};var Np=new Set(["Alt","AltGraph","CapsLock","Control","Fn","FnLock","Hyper","Meta","NumLock","ScrollLock","Shift","Super","Symbol","SymbolLock"]),Xn={capture:!0},Zn=new WeakMap,Op=e=>{let t=o=>{Np.has(o.key)||(n.last="keyboard")},r=()=>{n.last="pointer"},n={observers:0,last:null,detach:()=>{e.removeEventListener("keydown",t,Xn),e.removeEventListener("pointerdown",r,Xn)}};return e.addEventListener("keydown",t,Xn),e.addEventListener("pointerdown",r,Xn),n},bl=e=>{let t=Zn.get(e),r=t===void 0?Op(e):t;t===void 0&&Zn.set(e,r),r.observers+=1;let n=!1;return()=>{n||(n=!0,r.observers-=1,!(r.observers>0)&&(r.detach(),Zn.delete(e)))}},yl=e=>{let t=Zn.get(e);return t===void 0?null:t.last};var Jn=e=>e.matches(":focus-visible")&&yl(e.ownerDocument)!=="pointer";var Mp="data-daily-report-keyboard-focus",Et={capture:!0},gl=e=>{let t=bl(e.ownerDocument),r=s=>{e.toggleAttribute(Mp,fe(s)&&Jn(s))},n=s=>r(s.target),o=s=>{fe(s.relatedTarget)&&e.contains(s.relatedTarget)||r(null)},a=()=>r(null);e.addEventListener("focusin",n,Et),e.addEventListener("keydown",n,Et),e.addEventListener("focusout",o,Et),e.addEventListener("pointerdown",a,Et);let i=Ne(e);return r(i!==null&&e.contains(i)?i:null),()=>{e.removeEventListener("focusin",n,Et),e.removeEventListener("keydown",n,Et),e.removeEventListener("focusout",o,Et),e.removeEventListener("pointerdown",a,Et),r(null),t()}};var kp='form, input, textarea, select, [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls]',Pp=["combobox","listbox","menu","menubar","radiogroup","slider","spinbutton","textbox","tree","grid","scrollbar","tablist","toolbar","treegrid","separator"],Hp=Pp.map(e=>`[role="${e}"]`).join(", "),Fp=new Map([["ArrowUp","previous"],["ArrowDown","next"],["Home","first"],["End","last"],["PageUp","pageBackward"],["PageDown","pageForward"]]),Bp=new Set(["Enter"," "]),Up=new Map([["Home","exitBefore"],["End","exitAfter"]]),Ra=(e,t)=>{if(e.altKey||e.metaKey||e.shiftKey)return null;if(e.ctrlKey)return Up.get(e.key)??null;let r=Fp.get(e.key);return r!==void 0?r:Bp.has(e.key)&&t.rowActivation?"activate":null},Rl=(e,t,r)=>{let n=e.closest(t);return n!==null&&n!==r&&r.contains(n)},hl=(e,t,r)=>{let n=Ra(e,r);if(n===null||e.defaultPrevented||_r(e)||t===null||!fe(e.target)||!t.contains(e.target))return null;let o=bt(e.target,t);return o===null?null:n==="activate"?e.target===o?"activate":null:Rl(e.target,kp,t)||Rl(e.target,Hp,t)?null:n};var Qn={kind:"stay"},eo=e=>{if(e.kind==="measured")return e.heightOf;let{rowHeight:t}=e;return()=>t},Sl=e=>Math.floor(.875*e),vt=(e,t)=>({kind:"move",index:e,align:t}),Nr=(e,t,r,n)=>e>=0&&e+t<=r?"none":t>r?n>0?"top":"bottom":e<0?"top":"bottom",Vp=({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},Wp=({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},Kp=(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 Qn;if(r==="top")return vt(n-1,"top");let c=s(n-1);return vt(n-1,Nr(i-c,c,a,-1))}case"next":return n===o-1?Qn:r==="top"?vt(n+1,"top"):vt(n+1,Nr(l,s(n+1),a,1));case"first":return vt(0,"top");case"last":return vt(o-1,s(o-1)<=a?"bottom":"top");case"pageForward":{if(l>a)return{kind:"reveal",delta:Math.min(l-a,Sl(a))};if(n===o-1)return Qn;let c=Vp(t);return vt(c.index,Nr(c.top,s(c.index),a,1))}case"pageBackward":{if(i<0)return{kind:"reveal",delta:-Math.min(-i,Sl(a))};if(n===0)return Qn;let c=Wp(t);return vt(c.index,Nr(c.top,s(c.index),a,-1))}}},$p=({index:e,focusedRowTop:t,heightOf:r},n)=>Il(n,{index:e,offsetPx:-t},r),Tl=(e,t,r,n)=>{let o=r,a=null,i=0;for(let s=0;s<t;s++){let l=Kp(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:$p(o,l.index)}:(a={index:l.index,align:l.align},i=0,o={...o,index:l.index,focusedRowTop:l.align==="top"?0:o.viewport-o.heightOf(l.index)})}return{index:o.index,alignment:a,scrollDelta:i}},xl=({index:e,viewport:t,focusedRowTop:r,heightOf:n})=>Nr(r,n(e),t,1),Il=(e,t,r)=>{let n=-t.offsetPx;for(let o=t.index;o<e;o++)n+=r(o);for(let o=e;o<t.index;o++)n-=r(o);return n},Or=(e,t,r,n)=>{let o=e.getViewportSize(),a=e.getScrollPosition();if(!(o>0&&a>=0))return null;let i=eo(n);if(n.kind==="uniform")return{index:t,count:r,viewport:o,focusedRowTop:t*n.rowHeight-a,heightOf:i};let s=e.getScrollAnchor();return s===null?null:{index:t,count:r,viewport:o,focusedRowTop:Il(t,s,i),heightOf:i}},El=1,Ll=(e,t,r)=>{let n=e.getViewportSize(),o=e.getScrollAnchor();if(!(n>0)||o===null||t===0)return null;let a=Mr(o,n,t,r);return{start:Math.max(0,o.index-El),end:Math.min(t-1,a+El)}},Mr=(e,t,r,n)=>{let o=eo(n),a=e.index,i=o(a)-e.offsetPx;for(;i<t&&a<r-1;)a+=1,i+=o(a);return a},Cl=(e,t)=>e.top<t.top?e.top-t.top:e.bottom>t.bottom?Math.min(e.bottom-t.bottom,e.top-t.top):0,vl=(e,t,r)=>e!==null&&e.index!==-1&&(e.reportHubId===r||e.index>=t.visibleStartIndex&&e.index<=t.visibleEndIndex),Al=(e,t,r,n,o)=>{if(n===null)return t!==null?t.reportHubId:r===null?null:r.reportHubId;if(vl(t,n,o))return t.reportHubId;if(vl(r,n,o))return r.reportHubId;let a=e[n.visibleStartIndex];return a===void 0?null:a.reportHubId};var Sa=1,kr=2,ha=({selectedId:e,tabStopId:t,arrivingId:r},n)=>(n===e||n===r?Sa:0)|(n===t||n===r?kr:0),zp=e=>{if(Rn(e))return!0;let t=Ne(e);return t!==null&&e.contains(t)},Gp=(e,t)=>{let r=e.closest(`[${Sn}]`);return r!==null&&r!==e&&Nt(r)===t&&Ne(e)===r},_l=({getContainer:e,initialSelectedId:t})=>{let r={selectedId:t,tabStopId:t,arrivingId:null},n=null,o=!1,a=null,i=new Map,s=new Map,l=null,c=new Map,d=m=>ha(r,m),y=m=>{let R=s.get(m);if(R===void 0)return;let b=(d(m)&kr)!==0?"0":"-1";R.getAttribute("tabindex")!==b&&R.setAttribute("tabindex",b)},g=m=>{let R={...r};m(r);let b=r,v=new Set([R.selectedId,R.tabStopId,R.arrivingId,b.selectedId,b.tabStopId,b.arrivingId]);for(let w of v){if(w===null)continue;let _=ha(R,w),F=ha(b,w);if(_===F)continue;((_^F)&kr)!==0&&y(w);let N=i.get(w);if(N!==void 0)for(let B of[...N])B()}},x=m=>{o=!0;try{m.focus({preventScroll:!0})}finally{o=!1}},L=m=>{let R=e();R!==null&&(n=null,zp(R)&&x(m))};return{getSelectedId:()=>r.selectedId,getTabStopId:()=>r.tabStopId,rowStateOf:d,setTabStopId:m=>{g(R=>{R.tabStopId=m})},settleSelection:(m,R)=>{g(b=>{b.selectedId=m,b.tabStopId=R,b.arrivingId=null})},arrive:m=>{g(R=>{R.arrivingId=m})},subscribe:(m,R)=>{let b=i.get(m)??new Set;return b.add(R),i.set(m,b),()=>{b.delete(R),b.size===0&&i.get(m)===b&&i.delete(m)}},registerFocusTarget:(m,R)=>{if(s.set(m,R),y(m),n===m){L(R);return}a===null||a.reportHubId!==m||(Rn(R)||Gp(R,m))&&x(R)},unregisterFocusTarget:(m,R)=>{s.get(m)===R&&s.delete(m)},requestFocus:m=>{n=m;let R=s.get(m);R!==void 0&&L(R)},cancelFocusRequest:()=>{n=null},pendingFocusId:()=>n,isMovingFocus:()=>o,getFocusOwner:()=>a,setFocusOwner:m=>{a=m},restoreFocus:m=>{if(a===null||a.reportHubId!==m)return;let R=s.get(m);R===void 0||!Rn(R)||x(R)},holdBodiesOutside:m=>{l=m},isBodyHeldAt:m=>l!==null&&(m<l.start||m>l.end),registerHeldBody:(m,R,b)=>{let v={indexHint:R,release:b};return c.set(m,v),()=>{c.get(m)===v&&c.delete(m)}},releaseHeldBodiesWithin:(m,R)=>{if(m!==null)for(let[b,{indexHint:v,release:w}]of[...c]){let _=R(b,v);_>=m.start&&_<=m.end&&w()}}}};var qe={previous:{axis:"row",amount:-1},next:{axis:"row",amount:1},pageBackward:{axis:"page",amount:-1},pageForward:{axis:"page",amount:1},first:{axis:"first",amount:1},last:{axis:"last",amount:1},activate:{axis:"activate",amount:1}},Ea=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!1}),jp=Object.freeze({apply:null,flush:!1,requestFrame:!0,ended:!1}),Dl=Object.freeze({apply:null,flush:!1,requestFrame:!1,ended:!0}),Yp=new Map(Object.values(qe).map(e=>[e,Object.freeze({apply:e,flush:!1,requestFrame:!0,ended:!1})])),wl=e=>{let t=Yp.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},qp=(e,t,r)=>e==="row"||e==="page"?t+r:r,Nl=e=>({state:{axis:e.axis,pending:0,fence:"immediate"},effects:wl(e)}),Ol=(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",wl(r)):(e.pending=qp(e.axis,e.pending,r.amount),Ea)}case"frame":{if(e.fence==="open")return Ea;if(e.fence==="immediate")return e.fence="flush",jp;if(e.pending===0)return e.fence="open",Ea;let r=e.pending;return e.pending=0,{apply:{axis:e.axis,amount:r},flush:!0,requestFrame:!0,ended:!1}}case"keyup":return e.pending===0?Dl:{apply:{axis:e.axis,amount:e.pending},flush:!0,requestFrame:!1,ended:!0};case"cancel":return Dl}};var Jp=Object.freeze({kind:"frame"}),Qp=Object.freeze({kind:"keyup"}),ef=Object.freeze({kind:"cancel"}),tf=Object.freeze({previous:Object.freeze({kind:"repeat",step:qe.previous}),next:Object.freeze({kind:"repeat",step:qe.next}),pageBackward:Object.freeze({kind:"repeat",step:qe.pageBackward}),pageForward:Object.freeze({kind:"repeat",step:qe.pageForward}),first:Object.freeze({kind:"repeat",step:qe.first}),last:Object.freeze({kind:"repeat",step:qe.last}),activate:Object.freeze({kind:"repeat",step:qe.activate})}),rf=(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}},nf=(e,t)=>({top:e.top-t,bottom:e.bottom+t}),of=e=>{let t=Nt(e),r=zt(e);return t===null||r===null?null:{reportHubId:t,index:r-1}},to=(e,t)=>{let r=ee(a=>e.subscribe(t,a),[e,t]),n=ee(()=>e.rowStateOf(t),[e,t]),o=Zp(r,n,n);return{isCurrent:(o&Sa)!==0,isTabStop:(o&kr)!==0}},ro=(e,t,r)=>{let[n,o]=Pr(()=>!e.isBodyHeldAt(r));return Pt(()=>{if(n)return;let a=()=>o(!0),i=e.registerHeldBody(t,r,a);return Xp(a),i},[e,t,r,n]),n},Pl=({items:e,selectedId:t,onSelect:r,containerRef:n,rootRef:o,handleRef:a,scroller:i,rowSizing:s,arrowAlign:l,rowActivation:c})=>{let[d]=Pr(()=>_l({getContainer:()=>n.current,initialSelectedId:t})),y=Tt({items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c}),g=Tt(null),x=Tt(null),[L,m]=Pr(null),R=Tt(null),b=Tt(null),[v,w]=Pr(null),_=Tt(!1),F=Tt(null),[N,B]=Pr(0),M=Ml(()=>({id:t,indexHint:t===null?null:Vi(L,t)}),[t,L]),j=Tt(M);Pt(()=>{y.current={items:e,onSelect:r,rowSizing:s,arrowAlign:l,rowActivation:c},j.current=M},[e,r,s,l,c,M]);let q=ee((I,p)=>{let u=x.current;if(u!==null&&u.items===I&&u.reportHubId===p)return u.index;let E=ce(I,p,u!==null&&u.reportHubId===p?u.index:null);return E!==-1&&(x.current={items:I,reportHubId:p,index:E}),E},[]),z=ee((I,p)=>{x.current={items:y.current.items,reportHubId:I,index:p},m(u=>u!==null&&u.reportHubId===I&&u.index===p?u:{reportHubId:I,index:p})},[]),Q=ee(I=>{let p=d.getFocusOwner();if(p===null)return null;let u=ce(I,p.reportHubId,p.index);return u===-1?null:{reportHubId:p.reportHubId,index:u}},[d]),U=ee(I=>{let p=y.current.items,u=I===null?null:{reportHubId:I,index:q(p,I)};return Al(p,Q(p),u,g.current,F.current)},[q,Q]),X=ee(()=>{d.setTabStopId(U(d.getSelectedId()))},[d,U]),K=ee(I=>{let p=d.getFocusOwner();p===I||p!==null&&I!==null&&p.reportHubId===I.reportHubId&&p.index===I.index||(d.setFocusOwner(I),_.current||X())},[d,X]),V=ee(I=>{let p=fl(d.getFocusOwner(),I);K(p.owner),p.focusIndex!==null&&(R.current=p.focusIndex,d.requestFocus(p.owner.reportHubId))},[d,K]);Pt(()=>{d.settleSelection(t,U(t))},[d,t,e,N,U]),Pt(()=>{let I=o.current;if(I!==null)return gl(I)},[o]),Pt(()=>{let I=n.current;if(I===null)return;let p=I.ownerDocument,u=E=>{let T=n.current,C=E.target;V({kind:"pointerPress",at:T!==null&&fe(C)&&T.contains(C)?"inside":"outside"})};return p.addEventListener("pointerdown",u,{capture:!0}),()=>p.removeEventListener("pointerdown",u,{capture:!0})},[n,V]),Pt(()=>{let I=d.pendingFocusId();I!==null&&ce(e,I,R.current)===-1&&d.cancelFocusRequest(),V({kind:"listChanged",items:e})},[d,e,V]);let re=ee(I=>{V({kind:"removed",reportHubId:I,selection:x.current,items:y.current.items})},[V]),ue=ee((I,p,u)=>{let{items:E,onSelect:T,rowSizing:C,arrowAlign:f}=y.current,S=a.current;if(T===null||S===null)return null;let D=ce(E,u.reportHubId,u.index);if(D===-1)return null;let O=Or(S,D,E.length,C);if(O===null)return null;let P=Tl(I,p,O,f),te=E[P.index],Ge=P.index!==D;if(Ge){d.arrive(te.reportHubId),F.current=te.reportHubId,R.current=P.index,_.current=!0;try{d.requestFocus(te.reportHubId)}finally{_.current=!1}}try{kl(()=>{Ge&&(d.pendingFocusId()===null&&d.settleSelection(te.reportHubId,te.reportHubId),T(te.reportHubId,P.index)),P.alignment!==null&&i.toIndex(P.alignment.index,{align:P.alignment.align}),P.scrollDelta!==0&&i.by(P.scrollDelta),Ge&&(z(te.reportHubId,P.index),B(Eo=>Eo+1));let ir=Ll(S,E.length,C);d.holdBodiesOutside(ir),d.releaseHeldBodiesWithin(ir,(Eo,Hd)=>ce(E,Eo,Hd))})}finally{d.holdBodiesOutside(null)}return Ge?{reportHubId:te.reportHubId,index:P.index}:{reportHubId:u.reportHubId,index:D}},[d,a,i,z]),Z=ee(I=>{let{items:p,onSelect:u}=y.current;if(u===null)return;let E=ce(p,I.reportHubId,I.index);E!==-1&&(u(I.reportHubId,E),z(I.reportHubId,E))},[z]),W=ee(I=>{let p=n.current,u=p===null?null:Ne(p),E=p!==null&&u!==null&&p.contains(u)?gr(bt(u,p),y.current.items):null;return E===null?I.origin:E},[n]),ae=ee((I,p)=>{let u=W(I);if(p.axis==="activate"){Z(u);return}let E=rf(p.axis,p.amount),T=ue(E.command,E.count,u);T!==null&&(I.origin=T)},[W,Z,ue]),be=ee(I=>{b.current=null,I.frame!==0&&I.view.cancelAnimationFrame(I.frame),w(null)},[]),ve=ee((I,p,u)=>{let{apply:E}=p;E!==null&&(p.flush?kl(()=>ae(I,E)):ae(I,E)),b.current===I&&(p.ended?be(I):p.requestFrame&&(I.frame=I.view.requestAnimationFrame(u)))},[ae,be]),Re=ee((I,p,u)=>{ve(I,Ol(I.state,p),u)},[ve]),he=ee(()=>{let I=b.current;I!==null&&(I.frame=0,Re(I,Jp,he))},[Re]),ye=ee(()=>{let I=b.current;I!==null&&Re(I,Qp,he)},[Re,he]),$e=ee(()=>{let I=b.current;I!==null&&Re(I,ef,he)},[Re,he]),nt=ee((I,p,u)=>{w(j.current);let{state:E,effects:T}=Nl(qe[I]),C={state:E,origin:p,view:u,frame:0};b.current=C,ve(C,T,he)},[ve,he]);Pt(()=>()=>{let I=b.current;b.current=null,I!==null&&I.frame!==0&&I.view.cancelAnimationFrame(I.frame)},[]);let ze=ee(I=>{let p=b.current,u=p!==null&&I.repeat?Ra(I,y.current):null;if(p!==null&&u!==null&&u!=="exitBefore"&&u!=="exitAfter"&&qe[u].axis===p.state.axis){I.preventDefault(),Re(p,tf[u],he);return}let{items:E,onSelect:T,rowSizing:C,rowActivation:f}=y.current,S=n.current,D=T===null?null:hl(Hn(I),S,{rowActivation:f});if(d.cancelFocusRequest(),ye(),D===null||S===null)return;if(D==="exitBefore"||D==="exitAfter"){let te=Is(S,D==="exitBefore"?"before":"after");if(te===null)return;I.preventDefault(),te.focus();return}let O=Ne(S),P=gr(bt(O!==null&&S.contains(O)?O:I.target,S),E);if(P!==null){if(D!=="activate"){let te=a.current;if(te===null||Or(te,P.index,E.length,C)===null)return}if(I.preventDefault(),I.repeat){nt(D,P,je(S));return}D==="activate"?Z(P):ue(D,1,P)}},[d,n,a,he,Re,ye,nt,Z,ue]),ke=ee(()=>{ye()},[ye]),Xe=ee(I=>{let p=n.current,u=I.target,E=bt(u,p);if(V({kind:"focusIn",row:E===null?null:of(E)}),d.isMovingFocus())return;let T=a.current;if(p===null||T===null||!fe(u)||!Jn(u))return;let C=E===null?null:E.closest('[role="list"]');if(E===null||C===null)return;let f=C.getBoundingClientRect(),S=E.getBoundingClientRect(),D=S.height<=f.height?S:nf(u.getBoundingClientRect(),pt),O=Cl(D,f),P=T.getViewportSize();O===0||!(P>0&&f.height>0)||i.by(O*P/f.height)},[d,n,a,i,V]),ot=ee(I=>{let p=n.current,u=I.relatedTarget,E=fe(u)?p?.contains(u)?"view":"outside":"nowhere";E!=="view"&&$e(),V({kind:"focusOut",to:E})},[n,$e,V]),Le=ee(()=>{d.cancelFocusRequest(),$e()},[d,$e]),at=ee(I=>{g.current={visibleStartIndex:I.visibleStartIndex,visibleEndIndex:I.visibleEndIndex},F.current=null,X()},[X]),it=Ml(()=>({onKeyDown:ze,onKeyUp:ke,onPointerDownCapture:Le,onWheelCapture:Le,onTouchStartCapture:Le,onFocus:Xe,onBlur:ot}),[ze,ke,Le,Xe,ot]);return{cursor:d,containerProps:it,handleRangeChange:at,selection:M,settledSelection:v===null?M:v,resolveSelectedIndex:q,rememberSelection:z,focusAfterRemoval:re}};import{jsx as Ta}from"react/jsx-runtime";var sf=h(ft,jr,Yr,Gr,"h-full"),lf="h-full w-full",Bl=({itemId:e,name:t,isBusy:r,bodyKind:n,observeRowHeight:o,cursor:a,children:i})=>{let{isCurrent:s,isTabStop:l}=to(a,e),c=Hl(gt),d=Hl(yt),y=ro(a,e,c),g=Fl(null),x=Fl(null),L=af(m=>(g.current=m,a.registerFocusTarget(e,m),()=>{g.current=null,a.unregisterFocusTarget(e,m)}),[a,e]);return va(()=>{let m=g.current,R=m===null||!y?null:m.firstElementChild,b=R instanceof HTMLElement?R:null,v=x.current;v!==null&&v.body===b||(v!==null&&v.stop(),x.current=b===null?null:{body:b,stop:o(b)})}),va(()=>()=>{x.current?.stop(),x.current=null},[]),va(()=>{a.restoreFocus(e)},[a,e,n]),Ta(xr.Provider,{value:l,children:Ta("div",{ref:L,className:sf,"data-daily-report-row":e,"data-daily-report-button":e,role:"listitem","aria-posinset":c+1,"aria-setsize":d,"aria-labelledby":y&&t.kind==="card"?t.ids.heading:void 0,"aria-describedby":y&&t.kind==="card"?t.describedBy:void 0,"aria-label":t.kind==="label"?t.label:void 0,"aria-busy":r||!y?!0:void 0,"aria-current":s?"true":void 0,children:y?i:Ta("div",{...Pe,className:lf})})})};import{jsx as $,jsxs as Ee}from"react/jsx-runtime";var uf=h("flex w-full flex-col",Ze,Zr,sr),mf=h(Ze,sr),pf=h("rounded-2xl",sr),ff=h("rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",sr),xe="bg-slate-200 dark:bg-slate-700",bf=(e,t)=>{let r=le(e.name);return e.affiliation?.trim()?t.interviewerWithAffiliation(r,e.affiliation):r},yf=()=>Ee("div",{...Pe,className:mf,children:[Ee("div",{className:"mb-4 flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-20 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-24 rounded-full",xe)}),$("div",{className:h("h-6 w-28 rounded-full",xe)})]}),Ee("div",{className:"mb-4 grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Ee("div",{className:"space-y-4",children:[$("div",{className:h("h-5 w-40 rounded",xe)}),$("div",{className:h("h-5 w-56 rounded",xe)}),$("div",{className:h("h-24 rounded-xl",xe)})]}),Ee("div",{className:"rounded-xl bg-slate-100 p-3 dark:bg-slate-800/60",children:[$("div",{className:h("mb-2 h-4 w-24 rounded",xe)}),$("div",{className:h("mb-2 h-4 w-28 rounded",xe)}),$("div",{className:h("h-4 w-32 rounded",xe)})]})]}),Ee("div",{className:"space-y-4",children:[$("div",{className:h("h-4 w-24 rounded",xe)}),Ee("div",{className:"flex flex-wrap gap-2",children:[$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)}),$("div",{className:h("h-6 w-16 rounded-full",xe)})]}),Ee("div",{className:"space-y-2",children:[$("div",{className:h("h-16 rounded-xl",xe)}),$("div",{className:h("h-16 rounded-xl",xe)})]})]})]}),gf=({item:e,observeRowHeight:t,onCommentAdded:r,userId:n,cursor:o})=>{let{report:a,error:i,isLoading:s,isRefetching:l}=wt(e.reportHubId,e.businessDate),{removeStaleItem:c}=_e(),{draftLabelName:d,sourceTypeConfigs:y}=H(),[g,x]=Vl(!1),[L,m]=Vl(!1),R=Hr(!1),b=Hr(!1),v=Hr(!1),w=Hr(!1);Ul(()=>{if(l){w.current=!0;return}!(a||s||i)&&w.current&&e.reportHubId>0&&c(e.reportHubId)},[a,s,l,i,e.reportHubId,c]);let _=a?.labels.some(W=>W.name===d),F=n&&a?.userId===n,N=Qt(()=>{b.current=!0,R.current=!1,x(!0)},[]),B=Qt(()=>{v.current=!0,x(!1),m(!0)},[]),M=Qt(()=>{v.current=!0,x(!1)},[]),j=Qt(W=>{W===null||!b.current||(b.current=!1,W.focus())},[]),q=Qt(W=>{W===null||!v.current||(v.current=!1,W.focus())},[]);cf(()=>{g||(v.current=!1)},[g]),Ul(()=>{a&&F&&_&&!g&&!L?(x(!0),R.current=!0):a&&!_&&g&&R.current&&(x(!1),R.current=!1)},[a,F,_,g,L]);let z=Qt(()=>o.requestFocus(e.reportHubId),[o,e.reportHubId]),Q=df(),U=xa(()=>({heading:`${Q}-heading`,state:`${Q}-state`,attachments:`${Q}-attachments`,source:`${Q}-source`}),[Q]),X=a!==null&&a.attachments.length>0,K=a===null?void 0:_t(a.sourceType,y),V=[U.state,...X?[U.attachments]:[],...K!==void 0?[U.source]:[]].join(" "),re=!i&&a!==null&&!g?{kind:"card",ids:U,describedBy:V}:{kind:"label",label:se(e.businessDate)},ue=!i&&a===null&&s,Z=i?"error":a===null?s?"loading":"missing":g?"editing":"resolved";return $(Bl,{itemId:e.reportHubId,name:re,isBusy:ue,bodyKind:Z,observeRowHeight:t,cursor:o,children:i?$(Rf,{itemId:e.reportHubId}):a?g?$("div",{...Pe,className:pf,children:$($n,{report:a,onCancel:B,onPublishSuccess:M,titleInputRef:j})}):$($l,{item:e,report:a,sourceConfig:K,textIds:U,onCommentAdded:r,userId:n,onEdit:F?N:void 0,editButtonRef:q,onCommentSectionRemoved:z}):$(yf,{})})},Kl=Wl(gf),$l=Wl(({item:e,report:t,sourceConfig:r,textIds:n,onCommentAdded:o,userId:a,onEdit:i,editButtonRef:s,onCommentSectionRemoved:l})=>{let c=Hr(null),{toggleStar:d,toggleRead:y,pendingStarUpdates:g,pendingReadUpdates:x,deleteReport:L,user:m}=_e(),{uiComments:R,handleAddComment:b,handleDeleteComment:v,pendingDeleteId:w,setPendingDeleteId:_,resolvedIdMap:F}=Er(t,m,a),{labels:N,headingLevel:B}=H(),M=Rt[B],j=on(t.sourceType,r),q=async ae=>{await b(ae),o?.(e.reportHubId)},z=g.current.get(t.reportHubId),Q=z===void 0?t.isStarred:z,U=x.current.get(t.reportHubId),X=U===void 0?t.isRead:U,K=!!(a&&t.userId===a),V=async()=>{try{await y(t.reportHubId,!X,t.date)}catch{}},re=async()=>{try{await d(t.reportHubId,!Q,t.date)}catch{}},ue=async()=>{confirm(N.confirmDelete)&&await L(t.reportHubId,t.date)},Z=xa(()=>t.content?t.content.replace(/<br\s*\/??\s*>/gi,`
4
+ `).trim():"",[t.content]),W=xa(()=>{let ae=t.visitTimeFrom?.trim(),be=t.visitTimeTo?.trim();return ae&&be?`${ae} - ${be}`:ae||be||null},[t.visitTimeFrom,t.visitTimeTo]);return Ee("div",{...Pe,onDoubleClick:i,className:uf,children:[$(He,{level:B,id:n.heading,className:"sr-only",children:`${se(t.date)} ${le(t.employeeName)} ${le(t.subject)}`}),$("span",{id:n.state,className:"sr-only",children:N.rowState({isRead:X,isStarred:Q})}),Ee("div",{className:"flex flex-col gap-4",children:[$(ml,{report:t,sourceConfig:r,isRead:X,isStarred:Q,isMine:K,onToggleRead:V,onToggleStar:re,onEdit:i,editButtonRef:s,onDelete:ue,visitTimeDisplay:W,markerIds:n,labels:N}),Ee("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_240px]",children:[Ee("div",{className:"flex flex-col gap-4",children:[Ee("div",{className:"grid gap-4 sm:grid-cols-2",children:[Ee("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.customer}),$("span",{className:"font-semibold text-base text-slate-900 dark:text-slate-100",children:le(t.customerName)})]}),Ee("div",{className:"flex flex-col gap-1",children:[$(He,{level:M,className:st,children:N.subject}),$("span",{className:"text-slate-700 text-sm dark:text-slate-200",children:le(t.subject)})]})]}),Z&&Ee("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.content}),$("div",{className:h("whitespace-pre-wrap",Xr),children:Z})]}),t.interviewers.length>0&&Ee("div",{className:"flex flex-col gap-2",children:[$(He,{level:M,className:st,children:N.interviewers}),$("ul",{className:"flex flex-wrap gap-2",children:t.interviewers.map(ae=>$("li",{className:h(Ce,"bg-slate-100 text-slate-600 text-xs dark:bg-slate-800 dark:text-slate-300"),children:bf(ae,N)},JSON.stringify([ae.name,ae.affiliation])))})]}),$(Pn,{attachments:t.attachments}),$(Vn,{comments:R,canComment:j,reportHubId:t.reportHubId,businessDate:t.date,onDeleteComment:v,pendingDeleteId:w,onPendingDeleteIdChange:_,resolvedIdMap:F,onSectionRemoved:l}),j&&$("div",{className:"mt-auto",ref:c,children:$(Wn,{reportHubId:t.reportHubId,businessDate:t.date,onAddComment:q})})]}),$(ll,{report:t,visitTimeDisplay:W,labels:N})]})]})]})});$l.displayName="DailyReportResolvedItem";var Rf=({itemId:e})=>{let{labels:t}=H();return $("div",{...Pe,className:ff,children:$("p",{children:t.reportLoadFailed(e)})})};import{useCallback as ql,useId as Cf,useMemo as Xl,useRef as Af}from"react";import{useCallback as hf,useLayoutEffect as zl,useMemo as Gl,useRef as Ia}from"react";var Sf=(e,t,r,n)=>{for(let o=r;o<=n;o++)if(e[o]?.reportHubId!==t[o]?.reportHubId)return!0;return!1},Ef=(e,t,r,n)=>{let o=e*r+t,a=Math.min(Math.max(Math.floor(o/r),0),n-1);return{index:a,offsetPx:o-a*r}},vf=(e,t,r,n)=>{let o=e,a=t;for(;a<0&&o>0;)o-=1,a+=r(o);for(;o<n-1&&a>=r(o);)a-=r(o),o+=1;return{index:o,offsetPx:a}},Tf=(e,t,r,n,o)=>{if(t===e.recordedAt)return e;if(!(t>0))return null;let a=e.offsetPx+(t-e.recordedAt),{index:i,offsetPx:s}=n.kind==="uniform"?Ef(e.index,a,n.rowHeight,r.length):vf(e.index,a,eo(n),r.length);return{reportHubId:r[i].reportHubId,index:i,offsetPx:s,lastVisibleIndex:Mr({index:i,offsetPx:s},o,r.length,n),recordedAt:t}},xf=(e,t,r)=>{for(let n=r.index+1;n<=r.lastVisibleIndex&&n<e.length;n++){let o=ce(t,e[n].reportHubId,n-1);if(o!==-1)return o}return-1},jl=({items:e,handleRef:t,rowSizing:r,isRevealPending:n})=>{let o=Ia(null),a=Ia(e),i=Ia(r),s=hf(()=>{let c=t.current,d=c===null?-1:c.getScrollPosition(),y=c===null||!(d>0)?null:c.getScrollAnchor(),g=a.current,x=y===null?void 0:g[y.index],L=c===null?0:c.getViewportSize();o.current=y===null||x===void 0||!(L>0)?null:{reportHubId:x.reportHubId,index:y.index,offsetPx:y.offsetPx,lastVisibleIndex:Mr(y,L,g.length,i.current),recordedAt:d}},[t]),l=Gl(()=>({toIndex:(c,d)=>{let y=t.current;y!==null&&(y.scrollToIndex(c,d),s())},by:c=>{let d=t.current;d!==null&&(d.scrollBy(c),s())},resizeRow:(c,d)=>{let y=t.current;y!==null&&(y.updateItemSize(c,d),s())}}),[t,s]);return zl(()=>{let c=a.current;a.current=e;let d=o.current,y=t.current;if(c===e||d===null||y===null||n())return;let g=Tf(d,y.getScrollPosition(),c,i.current,y.getViewportSize());if(g===null){o.current=null;return}let x=ce(e,g.reportHubId,g.index),L=x===-1?xf(c,e,g):x;if(L===-1){o.current=null;return}if(L===g.index&&!Sf(c,e,g.index,g.lastVisibleIndex)){o.current=g;return}y.scrollToIndex(L,{align:"top",offset:-g.offsetPx}),o.current={reportHubId:e[L].reportHubId,index:L,offsetPx:g.offsetPx,lastVisibleIndex:Mr({index:L,offsetPx:g.offsetPx},y.getViewportSize(),e.length,r),recordedAt:y.getScrollPosition()}},[e,t,r,n]),zl(()=>{i.current=r},[r]),Gl(()=>({handleRangeChange:s,handleScrollAdjust:s,scroller:l}),[s,l])};import{useCallback as If}from"react";var Lf=20,Yl=({hostTestId:e,scrollContainerRef:t,handleRef:r,scroller:n,itemsRef:o})=>If(a=>{t.current=a;let i=a.querySelector(`[data-testid="${e}"]`);return i!==null&&Object.defineProperty(i,"__virtualScroll",{configurable:!0,get:()=>{let s=r.current;if(s!==null)return{getViewportSize:()=>s.getViewportSize(),getScrollPosition:()=>s.getScrollPosition(),getScrollAnchor:()=>s.getScrollAnchor(),getRange:()=>s.getRange(),getFenwickSize:()=>s.getFenwickSize(),findReportIndex:l=>o.current.findIndex(c=>c.reportHubId===l),getReportItem:l=>o.current[l],getReportIds:(l=Lf)=>o.current.slice(0,l).map(c=>c.reportHubId),revealIndex:(l,c)=>n.toIndex(l,c)}}}),()=>{i!==null&&delete i.__virtualScroll,t.current=null}},[e,t,r,n,o]);import{jsx as _f}from"react/jsx-runtime";var no=({containerRef:e,testId:t,itemsRef:r,isViewRevealPending:n,onRangeChange:o,...a})=>{let i=Af(null),s=ql(_=>(i.current=_,()=>{i.current=null}),[]),{handleRangeChange:l,handleScrollAdjust:c,scroller:d}=jl({items:a.items,handleRef:i,rowSizing:a.rowSizing,isRevealPending:n}),{handleRangeChange:y,...g}=Pl({...a,containerRef:e,handleRef:i,scroller:d}),x=Yl({hostTestId:t,scrollContainerRef:e,handleRef:i,scroller:d,itemsRef:r}),{labels:L}=H(),m=Cf(),R=a.onSelect!==null,b=ql(_=>{y(_),l(),o(_)},[y,l,o]),v=Xl(()=>({role:"list","aria-label":L.title,"aria-describedby":R?m:void 0}),[L.title,R,m]),w=Xl(()=>R?_f("span",{id:m,className:"sr-only",children:L.listKeyboardHelp}):null,[R,m,L.listKeyboardHelp]);return{...g,handleRangeChange:b,handleScrollAdjust:c,attachVirtualScroll:s,handleRef:i,scroller:d,attachScrollContainer:x,contentProps:v,keyboardHelp:w}};import{Fragment as Ff,jsx as It,jsxs as Hf}from"react/jsx-runtime";var Jl={pointerDragInputs:mn,wheelSpeedMultiplier:an,inertiaOptions:Gt(!1),enableKeyboardNavigation:!1},Nf={...Jl,inertiaOptions:Gt(!0)},Zl="daily-report-detail-list",Of=h("relative w-full",tn,Qr),Mf=h(Ue,"relative"),kf=300,Ca=e=>{let t=Oe(null),[r,n]=oo(null),o=hn(t),a=En(r),i=Ie(s=>(t.current=s,n(s),()=>{t.current=null,n(null)}),[]);return It("div",{ref:i,className:Jr,children:o===null?null:It(Pf,{...e,viewportHeight:o,reducedMotion:a})})},Pf=({dailyReportItems:e,userId:t,selectedItemId:r,onSelectItem:n,scrollRestoreRef:o,viewportHeight:a,reducedMotion:i})=>{let[{initialScrollAnchor:s,restored:l}]=oo(()=>{let f=o?.current;if(!f||f.anchorReportHubId!==(r??null))return{initialScrollAnchor:void 0,restored:!1};if(!f.topItem)return{initialScrollAnchor:void 0,restored:!0};let S=e.findIndex(D=>D.reportHubId===f.topItem?.reportHubId);return S!==-1?{initialScrollAnchor:{index:S,offsetPx:f.topItem.offsetPx},restored:!0}:{initialScrollAnchor:{index:f.topItem.index,offsetPx:0},restored:!0}}),c=Oe(l),d=Oe(r??null),y=Oe(o?.current.measuredHeights??new Map),g=Oe(null),x=bn(),L=ko(),[m]=oo(vn),R=Oe(null),b=Oe(null),v=Oe(e),w=Oe(n);wf(()=>{v.current=e,w.current=n},[e,n]);let _=Oe(null),[F,N]=oo(0),B=Oe(null),M=e.length,j=Ie(f=>f>=M?ln:e[f],[e,M]),q=Ie(f=>{let S=y.current.get(j(f).reportHubId);return S===void 0?Ti:S},[j]),z=Ie(f=>j(f).reportHubId,[j]),Q=La(()=>({kind:"measured",heightOf:q}),[q]),U=Ie((f,S)=>{_.current={reportHubId:f,index:S},N(D=>D+1),w.current?.(f)},[]),X=Ie((f,S)=>{if(M===0)return;let D=Math.max(0,f),O=Math.min(M-1,S);if(D>O)return;let P=new Set;for(let te=D;te<=O;te++){let Ge=j(te);if(Ge.businessDate&&P.add(Ge.businessDate),P.size>=Si)break}P.forEach(te=>{L(te)})},[j,M,L]),K=Ie(f=>{if(M===0)return;let{renderingStartIndex:S,renderingEndIndex:D,visibleStartIndex:O}=f,P=j(O);P.businessDate&&m.setLabel(se(P.businessDate)),X(S,D),X(D+1,D+sn),X(S-sn,S-1)},[j,M,X,m]),V=Ie(()=>B.current!==null,[]),{cursor:re,containerProps:ue,handleRangeChange:Z,handleScrollAdjust:W,attachVirtualScroll:ae,handleRef:be,scroller:ve,attachScrollContainer:Re,contentProps:he,keyboardHelp:ye,resolveSelectedIndex:$e,rememberSelection:nt}=no({items:e,selectedId:r??null,onSelect:n===void 0?null:U,containerRef:g,rootRef:g,testId:Zl,itemsRef:v,rowSizing:Q,arrowAlign:"top",rowActivation:!0,isViewRevealPending:V,onRangeChange:K}),ze=Ie((f,S)=>{if(be.current===null)return!1;let D=v.current,O=S!==null&&S.reportHubId===f?ce(D,f,S.index):$e(D,f);return O===-1?!1:(c.current&&(c.current=!1,f===d.current)||S!==null&&S.reportHubId===f&&S.index===O||ve.toIndex(O,{align:"top"}),!0)},[be,$e,ve]);xt(()=>{let f=_.current;_.current=null,B.current=null,r!=null&&(ze(r,f)||(B.current=r))},[r,ze]),xt(()=>{let f=B.current;f!==null&&ze(f,null)&&(B.current=null)},[e,ze]),xt(()=>{let f=o?.current;f&&(f.anchorReportHubId=r??null)},[r,o]),xt(()=>{_.current=null},[F]);let ke=Oe(null),Xe=Ie(()=>{be.current&&(ke.current=be.current);let f=o?.current,S=ke.current;if(f&&S){let O=S.getScrollAnchor(),P=O?v.current[O.index]:void 0;O&&P&&(f.topItem={reportHubId:P.reportHubId,index:O.index,offsetPx:O.offsetPx})}let D=g.current;D&&(D.toggleAttribute(Ut,!0),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{D.toggleAttribute(Ut,!1),b.current=null},150))},[be,o]),ot=Ie(f=>It(Tn,{...f,store:m}),[m]);xt(()=>{let f=g.current;if(!f)return;let S=()=>{m.setWheelScrollActive(!0),R.current&&clearTimeout(R.current),R.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),R.current=null},dn)};return f.addEventListener("wheel",S,{passive:!0}),()=>{f.removeEventListener("wheel",S),R.current&&clearTimeout(R.current)}},[m]);let Le=Oe(null),at=Ie(f=>{for(let S of f){let D=S.target.parentElement,O=D===null?null:Nt(D),P=D===null?null:zt(D),te=S.borderBoxSize[0];if(O===null||P===null||te===void 0)continue;let Ge=te.blockSize+2*pt;if(y.current.get(O)===Ge)continue;let ir=ce(v.current,O,P-1);ir!==-1&&(y.current.set(O,Ge),ve.resizeRow(ir,Ge))}},[ve]),it=Ie(f=>{Le.current===null&&(Le.current=new ResizeObserver(at));let S=Le.current;return S.observe(f),()=>S.unobserve(f)},[at]);xt(()=>()=>{Le.current?.disconnect(),Le.current=null},[]),xt(()=>{M!==0&&X(0,Math.min(M-1,sn))},[M,X]);let I=Oe(null),p=Ie(f=>{let S=ce(v.current,f,null);S!==-1&&(I.current!==null&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null;let D=ce(v.current,f,S);D!==-1&&ve.toIndex(D,{align:"bottom"})},kf))},[ve]);xt(()=>()=>{I.current!==null&&clearTimeout(I.current)},[]);let u=Ie(f=>{if(!w.current)return;let S=bt(f.target,g.current);if(S===null||zi(f.target,S))return;let D=gr(S,v.current);D!==null&&(nt(D.reportHubId,D.index),U(D.reportHubId,D.index))},[U,nt]),E=Ie((f,S)=>It(gt.Provider,{value:S,children:It(Kl,{item:f,observeRowHeight:it,onCommentAdded:p,userId:t,cursor:re})},f.reportHubId),[it,p,t,re]),T=La(()=>({...un,renderThumbOverlay:ot}),[ot]),C=La(()=>It(yt.Provider,{value:M,children:It(Df,{ref:ae,itemCount:M,getItem:j,getItemKey:z,getItemHeight:q,viewportSize:a,initialScrollAnchor:s,overscanCount:cn,scrollBarOptions:T,behaviorOptions:i?Nf:Jl,onRangeChange:Z,onScrollAdjust:W,onScroll:Xe,testId:Zl,className:Of,locale:x.locale,labels:x.labels,contentProps:he,children:E})}),[ae,M,j,z,q,a,i,s,T,Z,W,Xe,x.locale,x.labels,he,E]);return It(Ff,{children:Hf("div",{ref:Re,className:Mf,...ue,onClick:u,children:[ye,C]})})};import ed from"lucide-react/dist/esm/icons/refresh-cw.js";import{useEffect as Bf,useRef as Ql,useState as Uf}from"react";var Fr=(e,t=250)=>{let[r,n]=Uf(e),o=Ql(e),a=Ql(!0);return Bf(()=>{if(a.current){a.current=!1,o.current=e,n(e);return}let i=o.current;if(i===e)return;let s=null,l=null,c=d=>{l===null&&(l=d);let y=Math.min(1,Math.max(0,(d-l)/t)),g=1-(1-y)**3,x=Math.round(i+(e-i)*g);o.current=x,n(x),y<1&&(s=requestAnimationFrame(c))};return s=requestAnimationFrame(c),()=>{s!==null&&cancelAnimationFrame(s)}},[e,t]),r};import{jsx as ao,jsxs as io}from"react/jsx-runtime";var Br=()=>{let e=lt(),{labels:t}=H(),r=Fr(e.loadedCount),n=Fr(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 io("span",{"data-testid":"daily-report-ids-stream-status","data-phase":"streaming",className:h(Ce,"gap-1 bg-blue-100 font-medium text-blue-800 text-xs tabular-nums dark:bg-blue-900/40 dark:text-blue-300"),children:[ao("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"?io("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"retrying",className:h(Ce,"gap-1 bg-amber-100 font-medium text-amber-800 text-xs tabular-nums dark:bg-amber-900/40 dark:text-amber-300"),children:[ao(ed,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRetrying(e.loadedCount)]}):e.phase==="failed"?io("span",{role:"status","data-testid":"daily-report-ids-stream-status","data-phase":"failed",className:h(Ce,"gap-1 bg-rose-100 font-medium text-rose-800 text-xs dark:bg-rose-900/40 dark:text-rose-300"),children:[t.streamFailed,ao("button",{type:"button","data-testid":"daily-report-ids-stream-retry",onClick:()=>_n(),className:h("inline-flex h-5 items-center rounded-full bg-rose-200 px-2 font-semibold text-rose-900 hover:bg-rose-300 dark:bg-rose-800 dark:text-rose-100 dark:hover:bg-rose-700",J),children:t.streamRetry})]}):e.isRevalidating?io("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:[ao(ed,{"aria-hidden":"true",className:"size-3 motion-safe:animate-spin"}),t.streamRevalidating]}):null};import{Panel as Ld,PanelGroup as iy,PanelResizeHandle as sy}from"@aiquants/resize-panels";import{VirtualScroll as ly}from"@aiquants/virtualscroll";import{useCallback as rt,useEffect as bo,useLayoutEffect as ka,useMemo as yo,useRef as ar,useState as Ro}from"react";import{useSyncExternalStore as Vf}from"react";var td="(max-width: 639px)",Wf=e=>{if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};let t=window.matchMedia(td);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},Kf=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(td).matches:!1,$f=()=>!1,rd=()=>Vf(Wf,Kf,$f);import{SwipeCloseGuardContext as bb,useOverlayEscapeStack as yb,useSwipeGuardState as gb,useSwipeToDismissOverlay as Rb,useTapClick as hb,useTransitionDisplay as Sb}from"@aiquants/swipe-overlay";import{useCallback as co,useEffect as rr,useId as Oa,useLayoutEffect as fd,useRef as tt,useState as uo}from"react";import{createContext as zf,useMemo as Gf}from"react";var nd=Object.freeze({id:null,indexHint:null}),so=zf(Object.freeze({selected:nd,settled:nd})),Ur=(e,t)=>{let{id:r,indexHint:n}=t;return Gf(()=>{if(r===null)return null;let o=ce(e,r,n);return o===-1?null:e[o]},[e,r,n])};import jf from"lucide-react/dist/esm/icons/check.js";import Yf from"lucide-react/dist/esm/icons/pencil.js";import qf from"lucide-react/dist/esm/icons/trash-2.js";import{memo as Xf,useCallback as Ht,useContext as Zf,useDeferredValue as Jf,useEffect as Aa,useId as ld,useLayoutEffect as Da,useMemo as Qf,useRef as Ft,useState as _a}from"react";import*as ut from"@radix-ui/react-tabs";import*as Be from"react";import{jsx as Vr}from"react/jsx-runtime";var od=Be.createContext(null),ad=e=>{let t=Be.useContext(od);if(t===null)throw new Error(`[daily-report] ${e} must be rendered inside Tabs`);return t},id=(e,t)=>`${e}-trigger-${t}`,sd=(e,t)=>`${e}-panel-${t}`,Wr=Be.forwardRef(({value:e,children:t,...r},n)=>{let o=Be.useId(),a=Be.useMemo(()=>({baseId:o,value:e}),[o,e]);return Vr(ut.Root,{ref:n,value:e,...r,children:Vr(od,{value:a,children:t})})});Wr.displayName=ut.Root.displayName;var Kr=Be.forwardRef(({className:e,...t},r)=>Vr(ut.List,{ref:r,className:h("inline-flex",e),...t}));Kr.displayName=ut.List.displayName;var $r=Be.forwardRef(({className:e,value:t,...r},n)=>{let{baseId:o}=ad("TabsTrigger");return Vr(ut.Trigger,{ref:n,value:t,...r,id:id(o,t),"aria-controls":sd(o,t),className:h(`${ni} ${J}`,e)})});$r.displayName=ut.Trigger.displayName;var er=Be.forwardRef(({className:e,value:t,children:r,...n},o)=>{let{baseId:a,value:i}=ad("TabsContent"),s=t===i;return Vr("div",{ref:o,role:"tabpanel",id:sd(a,t),"aria-labelledby":id(a,t),"data-state":s?"active":"inactive",hidden:!s,tabIndex:0,...n,className:h(`mt-2 data-[state=inactive]:hidden ${J}`,e),children:s?r:null})});er.displayName="TabsContent";import{Fragment as fb,jsx as k,jsxs as et}from"react/jsx-runtime";var ud=h(Ct,"w-24 shrink-0"),dd={field:"flex items-baseline",label:ud,value:"flex-1"},eb={field:"flex min-w-0 flex-1 items-baseline",label:ud,value:"wrap-break-word min-w-0 flex-1"},tb={field:"flex flex-col gap-1",label:Ct,value:""},rb={field:"flex items-center gap-1",label:Ct,value:""},cd=h("flex-1 touch-pan-y overflow-y-auto overflow-x-hidden pt-2 text-sm",vo,Ka,Wa),nb=h("flex flex-col gap-1",To),ob=h("m-0 font-normal text-slate-900 text-sm dark:text-slate-100",J),ab=500,wa=e=>{let t=e,r=new Set;return{isDwelling:()=>t,set:n=>{if(n!==t){t=n;for(let o of[...r])o()}},subscribe:n=>(r.add(n),()=>{r.delete(n)})}},ib=(e,t,r,n,o,a)=>{let i=Ft(null),s=e?.reportHubId;Da(()=>{i.current=null},[s]),Aa(()=>{n||(i.current=null)},[n]);let l=Ht(async(c,d)=>{d||(i.current=c.reportHubId);try{await a(c.reportHubId,!c.isRead,c.date)}catch{}},[a]);return Aa(()=>{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),ab):null};d();let y=o.subscribe(d);return()=>{y(),c!==null&&clearTimeout(c)}},[e,t,r,l,o]),{handleToggleRead:l}},Na="article",sb=["article","relations"],lb=e=>{if(e==="article"||e==="relations")return e;throw new Error(`[daily-report] unknown side-pane tab: ${e}`)},db=h("hidden h-full min-h-0 w-full min-w-0 flex-1 flex-col gap-4 sm:flex",Ze),cb=9,ub=.875,mb=16,md=4*Math.ceil((2*pt+2*qr+2*Ga+cb*ub*mb)/4),pd=({dailyReportItems:e,autoMarkRead:t,userId:r,onReportDeleted:n})=>{let{labels:o}=H(),a=ld(),i=ld(),[s,l]=_a(Na),{selected:c,settled:d}=Zf(so),y=Ur(e,c),g=Ur(e,Jf(d)),x=y===null?null:y.reportHubId,m=(g===null?null:g.reportHubId)===x,[R]=_a(()=>wa(m));return Da(()=>{R.set(m)},[R,m]),k("aside",{"data-testid":"daily-report-side-pane","data-report-id":y?.reportHubId,"data-displayed-report-id":g?.reportHubId,"aria-busy":m?void 0:!0,className:db,children:g===null?k("div",{className:h("flex h-full flex-1 items-center justify-center text-center",Vt),children:k("p",{className:en,children:o.selectPrompt})}):k(lo,{item:g,headingId:a,authorId:i,activeTab:s,onActiveTabChange:l,autoMarkRead:t,isActive:!0,dwell:R,userId:r,onReportDeleted:n},g.reportHubId)})},lo=Xf(({item:e,headingId:t,authorId:r,activeTab:n,onActiveTabChange:o,autoMarkRead:a,isActive:i,dwell:s,userId:l,onReportDeleted:c})=>{let[d,y]=_a(!1),{draftLabelName:g,labels:x,sourceTypeConfigs:L,headingLevel:m}=H(),{report:R,error:b,isLoading:v}=wt(e.reportHubId,e.businessDate),w=Ft(null),_=Ft(null),F=Ft(null),N=Ft(!1),B=Ft(!1),M=Ft(!1);Aa(()=>{if(!R)return;let W=R.labels.some(ae=>ae.name===g);R.reportHubId!==F.current?(F.current=R.reportHubId,W?(y(!0),N.current=!0):(y(!1),N.current=!1)):!W&&d&&N.current&&(y(!1),N.current=!1)},[R,d,g]);let j=!!(l&&R?.userId===l),q=Ht(()=>{B.current=!0,N.current=!1,y(!0)},[]),z=Ht(()=>{M.current=!0,y(!1)},[]),Q=Ht(W=>{W===null||!B.current||(B.current=!1,W.focus())},[]),U=Ht(W=>{W===null||!M.current||(M.current=!1,W.focus())},[]),X=Ht(()=>{_.current?.focus({preventScroll:!0})},[]);Da(()=>{d||!M.current||(M.current=!1,_.current?.focus())},[d]);let K=Ht(()=>{setTimeout(()=>{let W=w.current;W!==null&&W.scrollTo({top:W.scrollHeight,behavior:qi(W)})},100)},[]),V=se(e.businessDate),re=R===null?null:le(R.employeeName),ue=v||!R,Z=R===null?void 0:_t(R.sourceType,L);return et(fb,{children:[et("div",{className:nb,children:[k("dl",{className:"m-0",children:k(de,{label:x.businessDate,classNames:tb,children:k(He,{ref:_,level:m,id:t,tabIndex:-1,className:ob,children:V})})}),et("div",{className:"flex min-h-4 items-center gap-1 text-slate-500 text-xs dark:text-slate-300",children:[k("dl",{className:"m-0",children:k(de,{label:x.author,classNames:rb,valueId:r,children:ue?k("div",{"data-skeleton":!0,className:"h-3 w-24 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700"}):re})}),Z?k(Xt,{config:Z,className:"ml-2"}):null]})]}),et(Wr,{value:n,onValueChange:W=>o(lb(W)),className:"flex min-h-0 flex-1 flex-col",children:[k("div",{className:To,children:k(Kr,{"aria-label":x.reportTabList,className:h(ti,"grid grid-cols-2 gap-1"),children:sb.map(W=>k($r,{value:W,children:W==="article"?x.tabArticle:x.tabRelations},W))})}),k(er,{ref:w,value:"article",className:cd,children:d?R?k($n,{report:R,onCancel:z,onPublishSuccess:z,titleInputRef:Q}):k("p",{className:Vt,children:x.loading}):k(pb,{report:R,sourceConfig:Z,isLoading:v,error:b,item:e,autoMarkRead:a,isActive:i,dwell:s,onCommentAdded:K,userId:l,onEdit:j?q:void 0,editButtonRef:U,onReportDeleted:c,onCommentSectionRemoved:X})}),k(er,{value:"relations",className:cd,children:k("p",{className:Vt,children:x.relationsEmpty})})]})]})});lo.displayName="DailyReportSidePaneContent";var tr=({className:e="w-32"})=>k("div",{"data-skeleton":!0,className:`h-4 rounded bg-slate-200 motion-safe:animate-pulse dark:bg-slate-700 ${e}`}),pb=({report:e,sourceConfig:t,isLoading:r,error:n,item:o,autoMarkRead:a=!1,isActive:i=!0,dwell:s,onCommentAdded:l,userId:c,onEdit:d,editButtonRef:y,onReportDeleted:g,onCommentSectionRemoved:x})=>{let{toggleStar:L,toggleRead:m,deleteReport:R,user:b}=_e(),{labels:v,headingLevel:w}=H(),_=Rt[w],{uiComments:F,handleAddComment:N,handleDeleteComment:B,pendingDeleteId:M,setPendingDeleteId:j,resolvedIdMap:q}=Er(e,b,c),{handleToggleRead:z}=ib(e,r,a,i,s,m),Q=e!==null&&on(e.sourceType,t),U=async Z=>{await N(Z),l?.()},X=Qf(()=>e?.content?e.content.replace(/<br\s*\/?\s*>/gi,`
4
5
  `).replace(/<\/p>/gi,`
5
- `).replace(/<[^>]+>/g,""):null,[e]),K=async Z=>{try{await I(Z.reportHubId,!Z.isStarred,Z.date)}catch{}},V=async Z=>{if(confirm(v.confirmDelete)){try{await R(Z.reportHubId,Z.date)}catch{alert(v.deleteFailed);return}g(Z.reportHubId)}};if(n)return k("p",{className:dr,children:v.reportLoadFailed(o.reportHubId)});let re=!e,ue=!!(c&&e?.userId===c);return et("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:d,children:[et("div",{className:"flex items-start gap-2",children:[k("dl",{className:"m-0 flex min-w-0 flex-1",children:k(de,{label:v.subject,classNames:Wf,children:re?k(er,{className:"w-3/4"}):k("span",{className:"text-sm",children:le(e?.subject)})})}),!re&&e&&et("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[k("button",{type:"button",onClick:()=>K(e),className:De,title:e.isStarred?v.starRemove:v.starAdd,"aria-label":e.isStarred?v.starRemove:v.starAdd,"data-detail-star-button":e.reportHubId,children:k(Yt,{filled:e.isStarred})}),k("button",{type:"button",onClick:()=>z(e,!1),className:De,title:e.isRead?v.markUnread:v.markRead,"aria-label":e.isRead?v.markUnread:v.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?k(kf,{className:ge.read}):k(Xt,{})}),d&&k("button",{ref:y,type:"button",onClick:d,"data-detail-edit-button":e.reportHubId,className:De,title:v.edit,"aria-label":v.edit,children:k(Pf,{className:ge.edit})}),ue&&k("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:De,title:v.deleteReport,"aria-label":v.deleteReport,children:k(Hf,{className:ge.delete})})]})]}),k("dl",{className:"m-0",children:k(de,{label:v.customer,classNames:td,children:re?k(er,{className:"w-1/2"}):k("span",{className:"text-sm",children:le(e?.customerName)})})}),et("div",{className:"flex flex-col gap-2",children:[k(He,{level:D,className:st,children:v.content}),k("div",{className:h("min-h-22",jr),children:re?et("div",{className:"space-y-2",children:[k(er,{className:"w-full"}),k(er,{className:"w-11/12"}),k(er,{className:"w-4/5"})]}):X?k("div",{className:"whitespace-pre-wrap",children:X}):k("p",{className:"text-slate-500 dark:text-slate-400",children:v.contentEmpty})})]}),k("dl",{className:"m-0",children:k(de,{label:v.visitTime,classNames:td,children:re?k(er,{className:"w-1/3"}):et("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&k(Nn,{attachments:e.attachments}),e&&k(Hn,{comments:F,canComment:Q,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:B,pendingDeleteId:M,onPendingDeleteIdChange:j,resolvedIdMap:q,onSectionRemoved:x,className:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:Q&&k(Fn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:U})})]})};import{jsx as Ht,jsxs as id}from"react/jsx-runtime";var ib="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]",sb={right:"var(--aqdr-overlay-right, 0px)"},lb="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",db=h("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",Qa),cb=h("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",J),ub=50,sd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=oo(!1),[l,c]=oo(!1),d=tt(null),y=tt(null),g=tt(null),x=tt(e),I=tt(!0),m=Fr(r,t),R=no(()=>{let D=o.current;if(D===null)return;let F=D.ownerDocument.body;g.current={body:F,overflow:F.style.overflow},F.style.overflow="hidden"},[o]),b=no(()=>{let D=g.current;D!==null&&(D.body.style.overflow=D.overflow,g.current=null)},[]);tr(()=>{if(I.current){I.current=!1,x.current=e;return}let D=!x.current;x.current=e,D&&e&&a!==null?s(!0):!e&&i&&(y.current=a,s(!1),b())},[e,a,i,b]);let v=e&&i&&m!==null;tr(()=>{if(v)c(!0);else{let D=setTimeout(()=>c(!1),300);return()=>clearTimeout(D)}},[v]),tr(()=>{if(e&&i&&a!==null&&!d.current){let D=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:D},"",window.location.href),d.current=D}else!(e&&i)&&d.current&&(d.current=null);return e&&i?R():b(),b},[e,i,a,R,b]),tr(()=>{let D=()=>{d.current&&(y.current=a,d.current=null,s(!1),n(null))};return window.addEventListener("popstate",D),()=>window.removeEventListener("popstate",D)},[a,n]);let _=no(()=>{e&&(y.current=a,s(!1),n(null),d.current&&(d.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:v,handleOverlayClose:_,lastClosedItemIdRef:y,selectedItem:m}},ld=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=H(),s=tt(null),l=Aa(),c=Aa(),[d,y]=oo(La),g=tb(),x=Aa(),I=tt(!1),m=tt(e),R=tt(null),[b]=oo(()=>Ia(e)),{isBlocked:v,requestBlock:_,reset:D}=rb(),F=ab(e,t),{overlayRef:N,overlayStyle:B,attemptClose:M,isSwiping:j}=nb({isOpen:e,onClose:r,isCloseBlocked:no(()=>v,[v]),skipWhenTextSelected:!0}),q=tt(M);ad(()=>{q.current=M,m.current=e,b.set(e)},[M,e,b]),tr(()=>{if(e)return g({id:x,onEscape:K=>Ar(K)&&q.current()})},[e,g,x]),ad(()=>{let K=s.current;if(K===null)return;if(e){if(I.current)return;K.showModal(),I.current=!0,K.ownerDocument.getElementById(l)?.focus();return}if(!I.current)return;I.current=!1;let V=Ne(K);V!==null&&K.contains(V)&&Oo(V)&&V.blur(),K.close()},[e,l]),tr(()=>{e||D()},[e,D]);let z=ob(()=>M()),Q=K=>{let V=On(K);if(Ar(V)){M()&&K.preventDefault();return}if(V.key==="Escape"){R.current=K.timeStamp;return}let re=Ks(V,K.currentTarget);re!==null&&(K.preventDefault(),re.kind==="wrap"&&re.element.focus())},U=K=>{K.preventDefault();let V=R.current;R.current=null,!(V!==null&&K.timeStamp-V<=ub)&&q.current()},X=K=>{let V=K.currentTarget;V.open||!m.current||(I.current=!1,!q.current()&&(V.showModal(),I.current=!0))};return F?id("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:h(ib,e&&!j?"pointer-events-auto":"pointer-events-none"),style:sb,inert:!e,onKeyDown:Q,onCancel:U,onClose:X,children:[Ht("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:h(lb,e?"opacity-100":"opacity-0"),...z}),Ht("div",{ref:N,"data-daily-report-overlay-panel":"",className:h(db,e?"pointer-events-auto":"pointer-events-none"),style:B,children:id("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Ht(eb.Provider,{value:{isBlocked:v,requestBlock:_},children:Ht("div",{"data-testid":"daily-report-side-pane","data-report-id":F.reportHubId,"data-displayed-report-id":F.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Ht(ro,{item:F,headingId:l,authorId:c,activeTab:d,onActiveTabChange:y,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},F.reportHubId)})}),Ht("div",{className:"flex justify-start",children:Ht("button",{type:"button","data-overlay-interactive":"true",className:cb,onClick:()=>M(),children:i.close})})]})})]}):null};import Cb from"lucide-react/dist/esm/icons/check.js";import{createContext as Ib,memo as pd,useCallback as Lb,useContext as so,useEffect as Ab,useId as io,useMemo as fd,useRef as _b}from"react";import{createContext as mb,createElement as pb,useLayoutEffect as fb,useMemo as bb,useRef as yb,useState as gb}from"react";var Rb=6.75,hb=4,Sb=1e-6,vb=e=>4*Math.ceil((2*Bt+2*Va+hb+Rb*e-Sb)/4),ao=mb(null),Eb="data-daily-report-root-font-size-probe",Tb={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},xb=e=>{let t=Ge(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},dd=()=>{let e=yb(null),[t,r]=gb(null);fb(()=>{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=vb(xb(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=bb(()=>pb("div",{ref:e,"aria-hidden":!0,[Eb]:"",style:Tb}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as nr}from"react/jsx-runtime";var Db=h(pt,zr,Gr,$r),wb=h("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",Xe,Yr,Ua),Nb="min-w-24",Ob="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",Mb={touchAction:"manipulation"},kb=h("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",Nb),Pb=h("relative z-10",De),Hb=h("flex h-full",Xe),Fb="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",rr="h-4 rounded bg-slate-200 dark:bg-slate-700",Bb=()=>Y("div",{"data-skeleton":!0,...Pe,className:Hb,children:nr("div",{className:Fb,children:[nr("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:h(rr,"w-24")}),Y("div",{className:h(rr,"w-24")}),Y("div",{className:h(rr,"w-24")})]}),nr("div",{className:"space-y-2",children:[Y("div",{className:h(rr,"w-full")}),Y("div",{className:h(rr,"w-11/12")}),Y("div",{className:h(rr,"w-5/6")})]})]})}),Ub=e=>{e.target===e.currentTarget&&e.preventDefault()},Vb="h-full w-full",bd=Ib(!1),cd=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=so(yt),a=so(bt),i=so(ao);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=fd(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=qn(t,e),d=Xn(t,e,o);return Y(Er.Provider,{value:c,children:Y(bd.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:Db,style:s,onMouseDown:Ub,children:d?n:Y("div",{...Pe,className:Vb})})})})},Wb=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,Kb=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(Wb))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===gi))return t;return r+=e.slice(n),o(),t},$b=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=so(bd);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:kb,children:o})},ud=({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:Pb,children:n})},yd=pd(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=H(),{toggleStar:i,toggleRead:s}=_e(),l=io(),c=io(),d=io(),y=io(),g=fd(()=>Kb(t.content??null),[t.content]),x=le(t.employeeName),I=se(e.businessDate),m=N=>{N.currentTarget.focus({preventScroll:!0});let B=Bi(N.currentTarget);B!==null&&r(e.reportHubId,B)},R=async()=>{let N=!t.isStarred;try{await i(t.reportHubId,N,t.date)}catch{}},b=async()=>{let N=!t.isRead;try{await s(t.reportHubId,N,t.date)}catch{}},v=t.isStarred?o.starRemove:o.starAdd,_=t.isRead?o.markUnread:o.markRead,D=At(t.sourceType,a),F=[c,...t.attachments.length>0?[d]:[],...D===void 0?[]:[y],l].join(" ");return nr("div",{"data-daily-report-card":!0,...Pe,style:Mb,className:wb,children:[Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),nr($b,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:F,onClick:m,children:[Y("span",{className:h(Le,"shrink-0 bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"whitespace-nowrap font-medium text-slate-900 dark:text-slate-100",children:I})})," ",Y("span",{className:h(Le,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:x})})]}),nr("div",{className:h(Ka,"ml-auto"),children:[Y(cr,{id:d,count:t.attachments.length,label:o.attachments}),D?Y(qt,{id:y,config:D}):null,Y(ud,{label:v,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:R,children:Y(Yt,{filled:t.isStarred})}),Y(ud,{label:_,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(Cb,{className:ge.read}):Y(Xt,{})})]}),Y("div",{id:l,className:Ob,children:g.length>0?g.map((N,B)=>Y("p",{className:"wrap-break-word line-clamp-1",children:N},B)):Y("p",{children:o.contentEmptyPreview})})]})});yd.displayName="ListReportCard";var md=(e,t)=>Lb(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),_a=pd(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=H(),{removeStaleItem:o}=_e(),{report:a,error:i,isLoading:s,isRefetching:l}=Dt(e.reportHubId,e.businessDate),c=_b(!1);Ab(()=>{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=md(r,e.reportHubId),y=md(r,e.reportHubId),g=(x,I)=>Y(cd,{reportHubId:e.reportHubId,cursor:r,cardless:{label:se(e.businessDate),isBusy:I,focusTargetRef:d},children:x});return i?g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:Y("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?g(Y(Bb,{}),!0):a?Y(cd,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(yd,{item:e,report:a,onSelect:t,focusTargetRef:y})}):g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:Y("p",{children:n.reportNotFound})}),!1)});_a.displayName="ListReportItem";import{Fragment as iy,jsx as Me,jsxs as uo}from"react/jsx-runtime";var Sd={pointerDragInputs:ln,inertiaOptions:zt(!1),wheelSpeedMultiplier:tn,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},Yb={...Sd,inertiaOptions:zt(!0)},qb=Object.freeze({value:360,unit:"pixels"}),Rd=Object.freeze({value:160,unit:"pixels"}),Xb=Object.freeze({value:520,unit:"pixels"}),Zb=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),Jb=h("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",J),Qb=h("relative w-full",Zr,Xr),ey=h(Be,"relative isolate overflow-hidden"),hd="daily-report-list",ty=()=>!1,ry=e=>{let[t,r]=mo(!1);return Da(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<yi)},a=new(Ge(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},wa=e=>{let t=or(null),[r,n]=mo(null),o=bn(t),a=ry(t),{rowSlotHeight:i,remProbe:s}=dd(),l=gn(r),c=rt(d=>(t.current=d,n(d),()=>{t.current=null,n(null)}),[]);return uo("div",{ref:c,className:qr,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Me(ny,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:l})]})},ny=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,isContainerNarrow:c,reducedMotion:d})=>{let[y]=mo(()=>a?.current??0),g=or(null),{labels:x}=H(),I=un(),[m]=mo(Rn),b=Yl()||c,v=or(null),_=e.length,D=or(null),F=rt(f=>n(f),[n]),N=rt(f=>f<_?e[f]:nn,[e,_]),B=rt(f=>{let S=N(f.visibleStartIndex);S.reportHubId>0&&m.setLabel(se(S.businessDate))},[N,m]),M=co(()=>({kind:"uniform",rowHeight:l}),[l]),j=or(e);Da(()=>{j.current=e},[e]);let{cursor:q,containerProps:z,handleRangeChange:Q,handleScrollAdjust:U,attachVirtualScroll:X,handleRef:K,scroller:V,attachScrollContainer:re,contentProps:ue,keyboardHelp:Z,selection:W,settledSelection:ie,resolveSelectedIndex:be,rememberSelection:Ee,focusAfterRemoval:Re}=Zn({items:e,selectedId:r,onSelect:F,containerRef:g,rootRef:i,testId:hd,itemsRef:j,rowSizing:M,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:ty,onRangeChange:B}),{isMobileDetailOpen:he,setIsMobileDetailOpen:ye,isOverlayMounted:Ke,shouldShowOverlay:nt,handleOverlayClose:$e,lastClosedItemIdRef:ke,selectedItem:qe}=sd({isMobileLayout:b,selection:W,dailyReportItems:e,onSelectItem:n,rootRef:i}),ot=co(()=>({selected:W,settled:ie}),[W,ie]);lo(()=>{let f=g.current,S=()=>{m.setWheelScrollActive(!0),v.current&&clearTimeout(v.current),v.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),v.current=null},on)};return f?.addEventListener("wheel",S,{passive:!0}),()=>{f?.removeEventListener("wheel",S),v.current&&clearTimeout(v.current)}},[m]),lo(()=>{!_&&r!==null&&n(null)},[_,r,n]),lo(()=>{if(he||ke.current===null)return;let f=ke.current;ke.current=null;let S=be(e,f);if(S===-1)return;let w=K.current;if(w!==null){let O=wr(w,S,e.length,M),P=O===null?"none":yl(O);P!=="none"&&V.toIndex(S,{align:P})}q.requestFocus(f)},[he,e,ke,q,be,K,M,V]),lo(()=>{_>0&&m.setLabel(se(e[0].businessDate))},[e,_,m]);let Ie=rt((f,S)=>{f<=0||(Ee(f,S),n(f),b&&ye(!0))},[b,n,ye,Ee]),at=rt(()=>l,[l]),it=or(l);Da(()=>{let f=it.current;it.current=l;let S=K.current;if(f===l||S===null)return;let w=S.getScrollPosition();w>0&&V.by(w*l/f-w)},[K,l,V]);let C=rt(f=>N(f).reportHubId,[N]),p=rt((f,S)=>Me(yt.Provider,{value:S,children:Me(_a,{item:f,onSelect:Ie,cursor:q})},f.reportHubId),[Ie,q]),u=rt(f=>{a&&(a.current=f);let S=g.current;S&&(S.toggleAttribute(Ft,!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{S.toggleAttribute(Ft,!1),D.current=null},150))},[a]),E=rt(f=>Me(hn,{...f,store:m}),[m]),T=co(()=>uo("div",{ref:re,className:ey,...z,children:[Z,Me(bt.Provider,{value:_,children:Me(ao.Provider,{value:l,children:Me(jb,{ref:X,itemCount:_,getItem:N,getItemKey:C,getItemHeight:at,viewportSize:s,initialScrollOffset:y,overscanCount:an,scrollBarOptions:{...sn,renderThumbOverlay:E},behaviorOptions:d?Yb:Sd,onRangeChange:Q,onScrollAdjust:U,onScroll:u,testId:hd,className:Qb,locale:I.locale,labels:I.labels,contentProps:ue,children:p})})})]}),[re,X,z,_,N,C,at,s,l,d,y,E,Q,U,u,Z,ue,I.locale,I.labels,p]),L=co(()=>uo(zb,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Me(gd,{id:"daily-report-list-panel",defaultSize:qb,minSize:Rd,maxSize:Xb,contentOverflow:"hidden",className:oy,children:T}),Me(Gb,{id:"daily-report-list-handle",thickness:10,indicator:Zb,className:Jb,"aria-label":x.resizeHandle}),Me(gd,{id:"daily-report-detail-panel",minSize:Rd,contentOverflow:"hidden",className:ay,children:Me(od,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:Re})})]}),[T,x.resizeHandle,e,t,o,Re]);return uo(iy,{children:[b?Me("div",{className:Be,children:T}):Me(to.Provider,{value:ot,children:L}),Ke&&Me(ld,{isOpen:nt,selectedItem:qe,onClose:$e,autoMarkRead:b&&t,userId:o,onReportDeleted:Re})]})},oy=h("flex min-h-0",Pa),ay=h("flex min-h-0 flex-1",pt);import{useEffect as Cd,useRef as vy}from"react";import ly from"lucide-react/dist/esm/icons/plus.js";import dy from"lucide-react/dist/esm/icons/refresh-cw.js";import cy from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as xd,useMemo as uy,useRef as Oa,useState as Ma}from"react";import{useSearchParams as my}from"react-router";import*as Kr from"@radix-ui/react-switch";import*as Ed from"react";import{jsx as vd}from"react/jsx-runtime";var po=Ed.forwardRef(({className:e,...t},r)=>vd(Kr.Root,{className:h(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${Ga} ${Ya} ${J}`,e),...t,ref:r,children:vd(Kr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${ja} ${qa}`})}));po.displayName=Kr.Root.displayName;import{useSyncExternalStore as sy}from"react";var Td=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)})}},Na=e=>sy(e.subscribe,e.get,e.get);import{Fragment as Sy,jsx as ae,jsxs as Ct}from"react/jsx-runtime";var py="list",fy=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},by=h(Za,ei,"ml-[8px] flex flex-wrap items-center gap-2"),yy=({count:e})=>{let{labels:t}=H(),r=Pr(e);return ae("span",{className:"tabular-nums",children:t.totalCount(r)})},gy=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=Na(e);return ae(wa,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},Ry=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=Na(e);return ae(Ea,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},hy=({tabItems:e,actions:t})=>{let[r,n]=Ma(py),{labels:o}=H();return Ct(Ur,{value:r,onValueChange:a=>n(fy(a)),className:h("@container/views",Be),children:[Ct("div",{className:h(by,ti[r]),children:[ae(Vr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>ae(Wr,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>ae(Qt,{value:a,className:h("mt-0",Be),children:i},a))]})},ka=({userId:e})=>{let[t,r]=Ma(!1),{labels:n,renderHeader:o,showDevControls:a}=H(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:d,clearCacheAndRefetch:y}=_e(),[g]=my(),x=Oa(0),I=Oa({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[m]=Ma(()=>Td(c.length===0?null:c[0].reportHubId)),R=Oa(!1);xd(()=>{!R.current&&c.length>0&&(R.current=!0,m.get()===null&&m.set(c[0].reportHubId))},[c,m]);let b=async()=>{await d()},v=async()=>{await y()},_=async()=>{let B=g.get("businessDate")||Ro(),M=await l(B);m.set(M)};xd(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let D=N=>{r(N),localStorage.setItem("daily-report-auto-read",String(N))},F=uy(()=>[{value:"list",label:n.tabList,content:ae(gy,{selectionStore:m,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:x})},{value:"tree",label:n.tabTree,content:ae("div",{className:h("flex flex-1 items-center justify-center",Ut),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:ae(Ry,{selectionStore:m,dailyReportItems:c,userId:e,scrollRestoreRef:I})}],[c,t,e,n,m]);return Ct(Sy,{children:[o({title:n.title,annotation:Ct("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[ae(Hr,{}),ae(yy,{count:c.length}),ae("span",{children:n.debounce(Wt)})]})}),ae("div",{className:sr,children:ae("div",{className:lr,children:ae(hy,{tabItems:F,actions:Ct("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[Ct(ct,{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:[ae(ly,{className:"h-3 w-3"}),ae("span",{children:n.createReport})]}),a&&Ct("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[ae("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),ae(po,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:i,onCheckedChange:s}),ae(ct,{variant:"ghost",size:"icon",onClick:b,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:n.devReload,"data-testid":"dev-reload-btn",children:ae(cy,{className:"size-3"})}),ae(ct,{variant:"ghost",size:"icon",onClick:v,className:"h-4 w-4 p-0 text-amber-800 hover:bg-amber-200/60 hover:text-amber-950 dark:text-amber-300 dark:hover:bg-amber-800/60 dark:hover:text-amber-100",title:n.devClearCache,"data-testid":"dev-clear-cache-btn",children:ae(dy,{className:"size-3"})})]}),Ct("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[ae(po,{id:"auto-read-mode",checked:t,onCheckedChange:D}),ae(_r,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as Ad,jsx as pe,jsxs as fo}from"react/jsx-runtime";var Id=h(Be,pt),Ld=h("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",Xe),Ey=()=>{let{labels:e,renderHeader:t}=H();return fo(Ad,{children:[t({title:e.title,annotation:pe("span",{className:h("font-bold",dr),children:e.loadErrorBadge})}),pe("div",{className:sr,children:pe("div",{className:lr,children:pe("div",{className:Id,children:fo("div",{className:h(Ld,"border-red-200 dark:border-red-900"),children:[pe("p",{className:h("font-medium",dr),children:e.loadError}),pe("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>Cn(),className:h("rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",J),children:e.reload})]})})})})]})},Ty=()=>{let{labels:e,renderHeader:t}=H();return fo(Ad,{children:[t({title:e.title,annotation:fo("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[pe(Hr,{}),pe("span",{children:e.totalCountLoading}),pe("span",{children:e.debounce(Wt)})]})}),pe("div",{className:sr,children:pe("div",{className:lr,children:pe("div",{className:Id,children:pe("div",{className:Ld,children:e.loadingIds})})})})]})},xy=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=H(),o=lt(),a=vy(n);a.current=n,Cd(()=>{gr({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 pe(jo,{children:pe(Xo,{user:e,initialItems:o.items,userId:t,children:i?pe(ka,{userId:t}):o.phase==="failed"?pe(Ey,{}):pe(Ty,{})},t??"anonymous")})},Cy=({config:e,...t})=>pe(xo,{config:e,children:pe(xy,{...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 x=a.get("intent");if(x==="toggleRead"||x==="toggleStar"||x==="addComment"||x==="deleteComment"||x==="create"||x==="update"||x==="publish"||x==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||l!==void 0||d!==void 0?n:!1},Ly=e=>{let t=async r=>{Ko();let n=await r.serverLoader(),o=n.userId;return Wo({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{di as DAILY_REPORT_LABEL_CATALOGS,ho as DAILY_REPORT_LABEL_KEYS,Xo as DailyReportActionProvider,cr as DailyReportAttachmentIndicator,xo as DailyReportConfigProvider,Ea as DailyReportDetailList,jo as DailyReportErrorProvider,yr as DailyReportIdsStreamClient,Hr as DailyReportIdsStreamStatus,wa as DailyReportList,Cy as DailyReportPage,ka as DailyReportResolvedContent,Wo as bootstrapDailyReportIdsStreamSession,Ly as createDailyReportClientLoader,Iy as dailyReportShouldRevalidate,ur as defaultDailyReportClientConfig,gr as ensureDailyReportIdsStreamSession,Ko as primeDailyReportIdsStreamSession,Eo as resolveDailyReportLabels,At as resolveSourceTypeConfig,In as resyncDailyReportIdsStream,_e as useDailyReportActionContext,hr as useDailyReportComments,H as useDailyReportConfig,Dt as useDailyReportDetail,lt as useDailyReportIdsStream,Do as useDailyReportPrefetch,Go as useDailyReportSseConnection};
6
+ `).replace(/<[^>]+>/g,""):null,[e]),K=async Z=>{try{await L(Z.reportHubId,!Z.isStarred,Z.date)}catch{}},V=async Z=>{if(confirm(v.confirmDelete)){try{await R(Z.reportHubId,Z.date)}catch{alert(v.deleteFailed);return}g(Z.reportHubId)}};if(n)return k("p",{className:cr,children:v.reportLoadFailed(o.reportHubId)});let re=!e,ue=!!(c&&e?.userId===c);return et("div",{className:"flex flex-col gap-4 text-slate-700 dark:text-slate-200",onDoubleClick:d,children:[et("div",{className:"flex items-start gap-2",children:[k("dl",{className:"m-0 flex min-w-0 flex-1",children:k(de,{label:v.subject,classNames:eb,children:re?k(tr,{className:"w-3/4"}):k("span",{className:"text-sm",children:le(e?.subject)})})}),!re&&e&&et("div",{className:"flex h-5 shrink-0 items-center gap-2 pr-2",children:[k("button",{type:"button",onClick:()=>K(e),className:De,title:e.isStarred?v.starRemove:v.starAdd,"aria-label":e.isStarred?v.starRemove:v.starAdd,"data-detail-star-button":e.reportHubId,children:k(qt,{filled:e.isStarred})}),k("button",{type:"button",onClick:()=>z(e,!1),className:De,title:e.isRead?v.markUnread:v.markRead,"aria-label":e.isRead?v.markUnread:v.markRead,"data-detail-read-button":e.reportHubId,children:e.isRead?k(jf,{className:ge.read}):k(Zt,{})}),d&&k("button",{ref:y,type:"button",onClick:d,"data-detail-edit-button":e.reportHubId,className:De,title:v.edit,"aria-label":v.edit,children:k(Yf,{className:ge.edit})}),ue&&k("button",{type:"button",onClick:()=>V(e),"data-detail-delete-button":e.reportHubId,className:De,title:v.deleteReport,"aria-label":v.deleteReport,children:k(qf,{className:ge.delete})})]})]}),k("dl",{className:"m-0",children:k(de,{label:v.customer,classNames:dd,children:re?k(tr,{className:"w-1/2"}):k("span",{className:"text-sm",children:le(e?.customerName)})})}),et("div",{className:"flex flex-col gap-2",children:[k(He,{level:_,className:st,children:v.content}),k("div",{className:h("min-h-22",Xr),children:re?et("div",{className:"space-y-2",children:[k(tr,{className:"w-full"}),k(tr,{className:"w-11/12"}),k(tr,{className:"w-4/5"})]}):X?k("div",{className:"whitespace-pre-wrap",children:X}):k("p",{className:"text-slate-500 dark:text-slate-400",children:v.contentEmpty})})]}),k("dl",{className:"m-0",children:k(de,{label:v.visitTime,classNames:dd,children:re?k(tr,{className:"w-1/3"}):et("span",{className:"text-sm",children:[le(e?.visitTimeFrom)," ",e?.visitTimeFrom&&e?.visitTimeTo?"-":""," ",le(e?.visitTimeTo)]})})}),e&&k(Pn,{attachments:e.attachments}),e&&k(Vn,{comments:F,canComment:Q,reportHubId:e.reportHubId,businessDate:e.date,onDeleteComment:B,pendingDeleteId:M,onPendingDeleteIdChange:j,resolvedIdMap:q,onSectionRemoved:x,className:"border-slate-100 border-t border-solid pt-4 dark:border-slate-800",children:Q&&k(Wn,{reportHubId:e.reportHubId,businessDate:e.date,onAddComment:U})})]})};import{jsx as Bt,jsxs as bd}from"react/jsx-runtime";var Eb="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]",vb={right:"var(--aqdr-overlay-right, 0px)"},Tb="absolute inset-0 touch-manipulation bg-slate-900/50 motion-safe:transition-opacity motion-safe:duration-200",xb=h("relative ml-auto flex h-full w-full max-w-full touch-none shadow-xl motion-safe:transition-[transform] motion-safe:duration-200 motion-safe:ease-out",oi),Ib=h("inline-flex h-9 touch-manipulation items-center rounded-full border border-slate-300 border-solid px-[15px] font-medium text-slate-600 text-sm shadow-sm hover:bg-slate-100 dark:border-slate-600 dark:text-slate-200 dark:hover:bg-slate-800",J),Lb=50,yd=({isMobileLayout:e,selection:t,dailyReportItems:r,onSelectItem:n,rootRef:o})=>{let a=t.id,[i,s]=uo(!1),[l,c]=uo(!1),d=tt(null),y=tt(null),g=tt(null),x=tt(e),L=tt(!0),m=Ur(r,t),R=co(()=>{let _=o.current;if(_===null)return;let F=_.ownerDocument.body;g.current={body:F,overflow:F.style.overflow},F.style.overflow="hidden"},[o]),b=co(()=>{let _=g.current;_!==null&&(_.body.style.overflow=_.overflow,g.current=null)},[]);rr(()=>{if(L.current){L.current=!1,x.current=e;return}let _=!x.current;x.current=e,_&&e&&a!==null?s(!0):!e&&i&&(y.current=a,s(!1),b())},[e,a,i,b]);let v=e&&i&&m!==null;rr(()=>{if(v)c(!0);else{let _=setTimeout(()=>c(!1),300);return()=>clearTimeout(_)}},[v]),rr(()=>{if(e&&i&&a!==null&&!d.current){let _=`overlay-${Date.now()}`;window.history.pushState({...window.history.state,dailyReportOverlay:_},"",window.location.href),d.current=_}else!(e&&i)&&d.current&&(d.current=null);return e&&i?R():b(),b},[e,i,a,R,b]),rr(()=>{let _=()=>{d.current&&(y.current=a,d.current=null,s(!1),n(null))};return window.addEventListener("popstate",_),()=>window.removeEventListener("popstate",_)},[a,n]);let w=co(()=>{e&&(y.current=a,s(!1),n(null),d.current&&(d.current=null,window.history.back()))},[e,a,n]);return{isMobileDetailOpen:i,setIsMobileDetailOpen:s,isOverlayMounted:l,shouldShowOverlay:v,handleOverlayClose:w,lastClosedItemIdRef:y,selectedItem:m}},gd=({isOpen:e,selectedItem:t,onClose:r,autoMarkRead:n=!1,userId:o,onReportDeleted:a})=>{let{labels:i}=H(),s=tt(null),l=Oa(),c=Oa(),[d,y]=uo(Na),g=yb(),x=Oa(),L=tt(!1),m=tt(e),R=tt(null),[b]=uo(()=>wa(e)),{isBlocked:v,requestBlock:w,reset:_}=gb(),F=Sb(e,t),{overlayRef:N,overlayStyle:B,attemptClose:M,isSwiping:j}=Rb({isOpen:e,onClose:r,isCloseBlocked:co(()=>v,[v]),skipWhenTextSelected:!0}),q=tt(M);fd(()=>{q.current=M,m.current=e,b.set(e)},[M,e,b]),rr(()=>{if(e)return g({id:x,onEscape:K=>Dr(K)&&q.current()})},[e,g,x]),fd(()=>{let K=s.current;if(K===null)return;if(e){if(L.current)return;K.showModal(),L.current=!0,K.ownerDocument.getElementById(l)?.focus();return}if(!L.current)return;L.current=!1;let V=Ne(K);V!==null&&K.contains(V)&&Fo(V)&&V.blur(),K.close()},[e,l]),rr(()=>{e||_()},[e,_]);let z=hb(()=>M()),Q=K=>{let V=Hn(K);if(Dr(V)){M()&&K.preventDefault();return}if(V.key==="Escape"){R.current=K.timeStamp;return}let re=Xs(V,K.currentTarget);re!==null&&(K.preventDefault(),re.kind==="wrap"&&re.element.focus())},U=K=>{K.preventDefault();let V=R.current;R.current=null,!(V!==null&&K.timeStamp-V<=Lb)&&q.current()},X=K=>{let V=K.currentTarget;V.open||!m.current||(L.current=!1,!q.current()&&(V.showModal(),L.current=!0))};return F?bd("dialog",{ref:s,"data-daily-report-mobile-overlay":"true","aria-labelledby":`${l} ${c}`,tabIndex:-1,className:h(Eb,e&&!j?"pointer-events-auto":"pointer-events-none"),style:vb,inert:!e,onKeyDown:Q,onCancel:U,onClose:X,children:[Bt("div",{"aria-hidden":"true","data-daily-report-overlay-backdrop":"",className:h(Tb,e?"opacity-100":"opacity-0"),...z}),Bt("div",{ref:N,"data-daily-report-overlay-panel":"",className:h(xb,e?"pointer-events-auto":"pointer-events-none"),style:B,children:bd("div",{className:"flex h-full w-full flex-col gap-4 p-4",children:[Bt(bb.Provider,{value:{isBlocked:v,requestBlock:w},children:Bt("div",{"data-testid":"daily-report-side-pane","data-report-id":F.reportHubId,"data-displayed-report-id":F.reportHubId,className:"flex min-h-0 flex-1 flex-col gap-4",children:Bt(lo,{item:F,headingId:l,authorId:c,activeTab:d,onActiveTabChange:y,autoMarkRead:n,isActive:e,dwell:b,userId:o,onReportDeleted:a},F.reportHubId)})}),Bt("div",{className:"flex justify-start",children:Bt("button",{type:"button","data-overlay-interactive":"true",className:Ib,onClick:()=>M(),children:i.close})})]})})]}):null};import Ub from"lucide-react/dist/esm/icons/check.js";import{createContext as Vb,memo as vd,useCallback as Wb,useContext as fo,useEffect as Kb,useId as po,useMemo as Td,useRef as $b}from"react";import{createContext as Cb,createElement as Ab,useLayoutEffect as _b,useMemo as Db,useRef as wb,useState as Nb}from"react";var Ob=6.75,Mb=4,kb=1e-6,Pb=e=>4*Math.ceil((2*pt+2*qr+Mb+Ob*e-kb)/4),mo=Cb(null),Hb="data-daily-report-root-font-size-probe",Fb={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},Bb=e=>{let t=je(e).getComputedStyle(e.ownerDocument.documentElement).fontSize,r=/^(\d+(?:\.\d+)?)px$/.exec(t);if(r===null||!(Number(r[1])>0))throw new Error(`[daily-report] the root element has no computed font size in px; got ${JSON.stringify(t)}`);return Number(r[1])},Rd=()=>{let e=wb(null),[t,r]=Nb(null);_b(()=>{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=Pb(Bb(o));l!==a&&(a=l,r(l))};i();let s=new ResizeObserver(i);return s.observe(o),()=>s.disconnect()},[]);let n=Db(()=>Ab("div",{ref:e,"aria-hidden":!0,[Hb]:"",style:Fb}),[]);return{rowSlotHeight:t,remProbe:n}};import{jsx as Y,jsxs as or}from"react/jsx-runtime";var zb=h(ft,jr,Yr,Gr),Gb=h("relative flex h-full w-full select-none flex-wrap content-start items-center gap-2 overflow-hidden",Ze,Zr,za),jb="min-w-24",Yb="basis-full space-y-2 text-slate-700 text-sm leading-5 dark:text-slate-200",qb={touchAction:"manipulation"},Xb=h("flex grow basis-0 cursor-pointer items-center gap-2 text-left outline-none after:absolute after:inset-0 after:rounded-2xl",jb),Zb=h("relative z-10",De),Jb=h("flex h-full",Ze),Qb="flex h-full w-full flex-col justify-between motion-safe:animate-pulse",nr="h-4 rounded bg-slate-200 dark:bg-slate-700",ey=()=>Y("div",{"data-skeleton":!0,...Pe,className:Jb,children:or("div",{className:Qb,children:[or("div",{className:"flex flex-wrap items-center gap-2",children:[Y("div",{className:h(nr,"w-24")}),Y("div",{className:h(nr,"w-24")}),Y("div",{className:h(nr,"w-24")})]}),or("div",{className:"space-y-2",children:[Y("div",{className:h(nr,"w-full")}),Y("div",{className:h(nr,"w-11/12")}),Y("div",{className:h(nr,"w-5/6")})]})]})}),ty=e=>{e.target===e.currentTarget&&e.preventDefault()},ry="h-full w-full",xd=Vb(!1),hd=({reportHubId:e,cursor:t,cardless:r,children:n})=>{let o=fo(gt),a=fo(yt),i=fo(mo);if(i===null)throw new Error("[daily-report] a List row frame is rendered outside the List view (no measured row slot)");let s=Td(()=>({height:i}),[i]),{isCurrent:l,isTabStop:c}=to(t,e),d=ro(t,e,o);return Y(xr.Provider,{value:c,children:Y(xd.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:zb,style:s,onMouseDown:ty,children:d?n:Y("div",{...Pe,className:ry})})})})},ny=/(<br\s*\/?\s*>|<\/p>|\r?\n)|<[^>]+>/gi,oy=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(ny))if(r+=e.slice(n,a.index),n=a.index+a[0].length,a[1]!==void 0&&(o(),t.length===vi))return t;return r+=e.slice(n),o(),t},ay=({reportHubId:e,focusTargetRef:t,describedBy:r,onClick:n,children:o})=>{let a=fo(xd);return Y("button",{ref:t,type:"button","data-daily-report-button":e,"aria-current":a?"true":void 0,"aria-describedby":r,onClick:n,className:Xb,children:o})},Sd=({label:e,dataAttributes:t,onClick:r,children:n})=>{let o=Yt();return Y("button",{type:"button",title:e,"aria-label":e,tabIndex:o,...t,onClick:r,className:Zb,children:n})},Id=vd(({item:e,report:t,onSelect:r,focusTargetRef:n})=>{let{labels:o,sourceTypeConfigs:a}=H(),{toggleStar:i,toggleRead:s}=_e(),l=po(),c=po(),d=po(),y=po(),g=Td(()=>oy(t.content??null),[t.content]),x=le(t.employeeName),L=se(e.businessDate),m=N=>{N.currentTarget.focus({preventScroll:!0});let B=$i(N.currentTarget);B!==null&&r(e.reportHubId,B)},R=async()=>{let N=!t.isStarred;try{await i(t.reportHubId,N,t.date)}catch{}},b=async()=>{let N=!t.isRead;try{await s(t.reportHubId,N,t.date)}catch{}},v=t.isStarred?o.starRemove:o.starAdd,w=t.isRead?o.markUnread:o.markRead,_=_t(t.sourceType,a),F=[c,...t.attachments.length>0?[d]:[],..._===void 0?[]:[y],l].join(" ");return or("div",{"data-daily-report-card":!0,...Pe,style:qb,className:Gb,children:[Y("span",{id:c,className:"sr-only",children:o.rowState({isRead:t.isRead,isStarred:t.isStarred})}),or(ay,{reportHubId:e.reportHubId,focusTargetRef:n,describedBy:F,onClick:m,children:[Y("span",{className:h(Ce,"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:L})})," ",Y("span",{className:h(Ce,"min-w-0 max-w-full bg-slate-100 font-semibold text-xs dark:bg-slate-800 dark:text-slate-200"),children:Y("span",{className:"truncate font-medium text-slate-900 dark:text-slate-100",children:x})})]}),or("div",{className:h(Ya,"ml-auto"),children:[Y(ur,{id:d,count:t.attachments.length,label:o.attachments}),_?Y(Xt,{id:y,config:_}):null,Y(Sd,{label:v,dataAttributes:{"data-list-star-button":e.reportHubId},onClick:R,children:Y(qt,{filled:t.isStarred})}),Y(Sd,{label:w,dataAttributes:{"data-list-read-button":e.reportHubId},onClick:b,children:t.isRead?Y(Ub,{className:ge.read}):Y(Zt,{})})]}),Y("div",{id:l,className:Yb,children:g.length>0?g.map((N,B)=>Y("p",{className:"wrap-break-word line-clamp-1",children:N},B)):Y("p",{children:o.contentEmptyPreview})})]})});Id.displayName="ListReportCard";var Ed=(e,t)=>Wb(r=>(e.registerFocusTarget(t,r),()=>e.unregisterFocusTarget(t,r)),[e,t]),Ma=vd(({item:e,onSelect:t,cursor:r})=>{let{labels:n}=H(),{removeStaleItem:o}=_e(),{report:a,error:i,isLoading:s,isRefetching:l}=wt(e.reportHubId,e.businessDate),c=$b(!1);Kb(()=>{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=Ed(r,e.reportHubId),y=Ed(r,e.reportHubId),g=(x,L)=>Y(hd,{reportHubId:e.reportHubId,cursor:r,cardless:{label:se(e.businessDate),isBusy:L,focusTargetRef:d},children:x});return i?g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-red-200 border-solid bg-red-50 p-[15px] text-red-700 text-sm dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300",children:Y("p",{children:n.reportSummaryLoadFailed(e.reportHubId)})}),!1):s?g(Y(ey,{}),!0):a?Y(hd,{reportHubId:e.reportHubId,cursor:r,cardless:null,children:Y(Id,{item:e,report:a,onSelect:t,focusTargetRef:y})}):g(Y("div",{...Pe,className:"flex h-full items-center justify-center rounded-2xl border border-slate-200 border-solid bg-slate-50 p-[15px] text-slate-500 text-sm dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400",children:Y("p",{children:n.reportNotFound})}),!1)});Ma.displayName="ListReportItem";import{Fragment as Ty,jsx as Me,jsxs as go}from"react/jsx-runtime";var Ad={pointerDragInputs:mn,inertiaOptions:Gt(!1),wheelSpeedMultiplier:an,enableKeyboardNavigation:!1,resetOnGetItemHeightChange:!0},dy={...Ad,inertiaOptions:Gt(!0)},cy=Object.freeze({value:360,unit:"pixels"}),uy=Object.freeze({value:160,unit:"pixels"}),my=Object.freeze({value:md,unit:"pixels"}),py=Object.freeze({value:520,unit:"pixels"}),fy=Object.freeze({visible:!0,thickness:6,length:32,barThickness:2,barLength:16}),by=h("cursor-col-resize rounded hover:bg-slate-200/60 focus:ring-0 dark:hover:bg-slate-700/60",J),yy=h("relative w-full",tn,Qr),gy=h(Ue,"relative isolate overflow-hidden"),Cd="daily-report-list",Ry=()=>!1,hy=e=>{let[t,r]=Ro(!1);return ka(()=>{let n=e.current;if(n===null)throw new Error("[daily-report] the List root is not attached");let o=i=>{for(let s of i)r(s.contentRect.width>0&&s.contentRect.width<Ei)},a=new(je(n)).ResizeObserver(o);return a.observe(n),()=>a.disconnect()},[e]),t},Pa=e=>{let t=ar(null),[r,n]=Ro(null),o=hn(t),a=hy(t),{rowSlotHeight:i,remProbe:s}=Rd(),l=En(r),c=rt(d=>(t.current=d,n(d),()=>{t.current=null,n(null)}),[]);return go("div",{ref:c,className:Jr,"data-testid":"daily-report-root",children:[s,o===null||i===null?null:Me(Sy,{...e,rootRef:t,viewportHeight:o,rowSlotHeight:i,isContainerNarrow:a,reducedMotion:l})]})},Sy=({dailyReportItems:e,autoMarkRead:t=!1,selectedReportHubId:r,onSelectItem:n,userId:o,scrollOffsetRef:a,rootRef:i,viewportHeight:s,rowSlotHeight:l,isContainerNarrow:c,reducedMotion:d})=>{let[y]=Ro(()=>a?.current??0),g=ar(null),{labels:x}=H(),L=bn(),[m]=Ro(vn),b=rd()||c,v=ar(null),w=e.length,_=ar(null),F=rt(f=>n(f),[n]),N=rt(f=>f<w?e[f]:ln,[e,w]),B=rt(f=>{let S=N(f.visibleStartIndex);S.reportHubId>0&&m.setLabel(se(S.businessDate))},[N,m]),M=yo(()=>({kind:"uniform",rowHeight:l}),[l]),j=ar(e);ka(()=>{j.current=e},[e]);let{cursor:q,containerProps:z,handleRangeChange:Q,handleScrollAdjust:U,attachVirtualScroll:X,handleRef:K,scroller:V,attachScrollContainer:re,contentProps:ue,keyboardHelp:Z,selection:W,settledSelection:ae,resolveSelectedIndex:be,rememberSelection:ve,focusAfterRemoval:Re}=no({items:e,selectedId:r,onSelect:F,containerRef:g,rootRef:i,testId:Cd,itemsRef:j,rowSizing:M,arrowAlign:"nearest",rowActivation:!1,isViewRevealPending:Ry,onRangeChange:B}),{isMobileDetailOpen:he,setIsMobileDetailOpen:ye,isOverlayMounted:$e,shouldShowOverlay:nt,handleOverlayClose:ze,lastClosedItemIdRef:ke,selectedItem:Xe}=yd({isMobileLayout:b,selection:W,dailyReportItems:e,onSelectItem:n,rootRef:i}),ot=yo(()=>({selected:W,settled:ae}),[W,ae]);bo(()=>{let f=g.current,S=()=>{m.setWheelScrollActive(!0),v.current&&clearTimeout(v.current),v.current=window.setTimeout(()=>{m.setWheelScrollActive(!1),v.current=null},dn)};return f?.addEventListener("wheel",S,{passive:!0}),()=>{f?.removeEventListener("wheel",S),v.current&&clearTimeout(v.current)}},[m]),bo(()=>{!w&&r!==null&&n(null)},[w,r,n]),bo(()=>{if(he||ke.current===null)return;let f=ke.current;ke.current=null;let S=be(e,f);if(S===-1)return;let D=K.current;if(D!==null){let O=Or(D,S,e.length,M),P=O===null?"none":xl(O);P!=="none"&&V.toIndex(S,{align:P})}q.requestFocus(f)},[he,e,ke,q,be,K,M,V]),bo(()=>{w>0&&m.setLabel(se(e[0].businessDate))},[e,w,m]);let Le=rt((f,S)=>{f<=0||(ve(f,S),n(f),b&&ye(!0))},[b,n,ye,ve]),at=rt(()=>l,[l]),it=ar(l);ka(()=>{let f=it.current;it.current=l;let S=K.current;if(f===l||S===null)return;let D=S.getScrollPosition();D>0&&V.by(D*l/f-D)},[K,l,V]);let I=rt(f=>N(f).reportHubId,[N]),p=rt((f,S)=>Me(gt.Provider,{value:S,children:Me(Ma,{item:f,onSelect:Le,cursor:q})},f.reportHubId),[Le,q]),u=rt(f=>{a&&(a.current=f);let S=g.current;S&&(S.toggleAttribute(Ut,!0),_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{S.toggleAttribute(Ut,!1),_.current=null},150))},[a]),E=rt(f=>Me(Tn,{...f,store:m}),[m]),T=yo(()=>go("div",{ref:re,className:gy,...z,children:[Z,Me(yt.Provider,{value:w,children:Me(mo.Provider,{value:l,children:Me(ly,{ref:X,itemCount:w,getItem:N,getItemKey:I,getItemHeight:at,viewportSize:s,initialScrollOffset:y,overscanCount:cn,scrollBarOptions:{...un,renderThumbOverlay:E},behaviorOptions:d?dy:Ad,onRangeChange:Q,onScrollAdjust:U,onScroll:u,testId:Cd,className:yy,locale:L.locale,labels:L.labels,contentProps:ue,children:p})})})]}),[re,X,z,w,N,I,at,s,l,d,y,E,Q,U,u,Z,ue,L.locale,L.labels,p]),C=yo(()=>go(iy,{direction:"horizontal",className:"min-h-0 flex-1","data-testid":"daily-report-panel-group",children:[Me(Ld,{id:"daily-report-list-panel",defaultSize:cy,minSize:uy,maxSize:py,contentOverflow:"hidden",className:Ey,children:T}),Me(sy,{id:"daily-report-list-handle",thickness:10,indicator:fy,className:by,"aria-label":x.resizeHandle}),Me(Ld,{id:"daily-report-detail-panel",minSize:my,contentOverflow:"hidden",className:vy,children:Me(pd,{dailyReportItems:e,autoMarkRead:t,userId:o,onReportDeleted:Re})})]}),[T,x.resizeHandle,e,t,o,Re]);return go(Ty,{children:[b?Me("div",{className:Ue,children:T}):Me(so.Provider,{value:ot,children:C}),$e&&Me(gd,{isOpen:nt,selectedItem:Xe,onClose:ze,autoMarkRead:b&&t,userId:o,onReportDeleted:Re})]})},Ey=h("flex min-h-0",Va),vy=h("flex min-h-0 flex-1",ft);import{useEffect as Od,useRef as Fy}from"react";import Iy from"lucide-react/dist/esm/icons/plus.js";import Ly from"lucide-react/dist/esm/icons/refresh-cw.js";import Cy from"lucide-react/dist/esm/icons/rotate-cw.js";import{useEffect as Nd,useMemo as Ay,useRef as Fa,useState as Ba}from"react";import{useSearchParams as _y}from"react-router";import*as zr from"@radix-ui/react-switch";import*as Dd from"react";import{jsx as _d}from"react/jsx-runtime";var ho=Dd.forwardRef(({className:e,...t},r)=>_d(zr.Root,{className:h(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-transparent disabled:cursor-not-allowed disabled:opacity-50 ${Za} ${Qa} ${J}`,e),...t,ref:r,children:_d(zr.Thumb,{className:`pointer-events-none block rounded-full shadow-lg data-[state=unchecked]:translate-x-0 motion-safe:transition-[translate] ${Ja} ${ei}`})}));ho.displayName=zr.Root.displayName;import{useSyncExternalStore as xy}from"react";var wd=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=>xy(e.subscribe,e.get,e.get);import{Fragment as Hy,jsx as oe,jsxs as Lt}from"react/jsx-runtime";var Dy="list",wy=e=>{if(e==="list"||e==="tree"||e==="detailList")return e;throw new Error(`[daily-report] unknown view tab: ${e}`)},Ny=h(ri,ai,"ml-[8px] flex flex-wrap items-center gap-2"),Oy=({count:e})=>{let{labels:t}=H(),r=Fr(e);return oe("span",{className:"tabular-nums",children:t.totalCount(r)})},My=({selectionStore:e,dailyReportItems:t,autoMarkRead:r,userId:n,scrollOffsetRef:o})=>{let a=Ha(e);return oe(Pa,{dailyReportItems:t,autoMarkRead:r,selectedReportHubId:a,onSelectItem:e.set,userId:n,scrollOffsetRef:o})},ky=({selectionStore:e,dailyReportItems:t,userId:r,scrollRestoreRef:n})=>{let o=Ha(e);return oe(Ca,{dailyReportItems:t,userId:r,selectedItemId:o,onSelectItem:e.set,scrollRestoreRef:n})},Py=({tabItems:e,actions:t})=>{let[r,n]=Ba(Dy),{labels:o}=H();return Lt(Wr,{value:r,onValueChange:a=>n(wy(a)),className:h("@container/views",Ue),children:[Lt("div",{className:h(Ny,ii[r]),children:[oe(Kr,{"aria-label":o.viewTabList,className:"flex flex-wrap gap-1",children:e.map(({value:a,label:i})=>oe($r,{value:a,children:i},a))}),t]}),e.map(({value:a,content:i})=>oe(er,{value:a,className:h("mt-0",Ue),children:i},a))]})},Ua=({userId:e})=>{let[t,r]=Ba(!1),{labels:n,renderHeader:o,showDevControls:a}=H(),{isSseEnabled:i,toggleSse:s,createReport:l,items:c,refetchData:d,clearCacheAndRefetch:y}=_e(),[g]=_y(),x=Fa(0),L=Fa({topItem:null,anchorReportHubId:null,measuredHeights:new Map}),[m]=Ba(()=>wd(c.length===0?null:c[0].reportHubId)),R=Fa(!1);Nd(()=>{!R.current&&c.length>0&&(R.current=!0,m.get()===null&&m.set(c[0].reportHubId))},[c,m]);let b=async()=>{await d()},v=async()=>{await y()},w=async()=>{let B=g.get("businessDate")||xo(),M=await l(B);m.set(M)};Nd(()=>{localStorage.getItem("daily-report-auto-read")==="true"&&r(!0)},[]);let _=N=>{r(N),localStorage.setItem("daily-report-auto-read",String(N))},F=Ay(()=>[{value:"list",label:n.tabList,content:oe(My,{selectionStore:m,dailyReportItems:c,autoMarkRead:t,userId:e,scrollOffsetRef:x})},{value:"tree",label:n.tabTree,content:oe("div",{className:h("flex flex-1 items-center justify-center",Vt),children:n.treeComingSoon})},{value:"detailList",label:n.tabDetailList,content:oe(ky,{selectionStore:m,dailyReportItems:c,userId:e,scrollRestoreRef:L})}],[c,t,e,n,m]);return Lt(Hy,{children:[o({title:n.title,annotation:Lt("div",{className:"flex flex-wrap items-center gap-2 leading-1",children:[oe(Br,{}),oe(Oy,{count:c.length}),oe("span",{children:n.debounce(Kt)})]})}),oe("div",{className:lr,children:oe("div",{className:dr,children:oe(Py,{tabItems:F,actions:Lt("div",{className:"ml-auto flex flex-wrap items-center gap-2 px-1",children:[Lt(ct,{size:"sm",onClick:w,className:"flex h-6 items-center gap-1 rounded-lg bg-amber-700 px-2 font-medium text-white text-xs shadow-xs hover:bg-amber-800 dark:bg-amber-700 dark:hover:bg-amber-800",title:n.createReportTitle,children:[oe(Iy,{className:"h-3 w-3"}),oe("span",{children:n.createReport})]}),a&&Lt("div",{className:"hidden h-6 items-center gap-1 rounded-lg border border-amber-300/70 border-solid bg-amber-50/60 px-[3px] text-slate-600 sm:flex dark:border-amber-700/50 dark:bg-amber-950/40 dark:text-slate-300",title:n.devControls,"data-testid":"dev-controls-toolbox",children:[oe("span",{className:"select-none font-bold font-mono text-amber-800 text-xs uppercase dark:text-amber-200",children:"dev"}),oe(ho,{id:"sse-mode","aria-label":n.devSseToggle,title:n.devSseToggle,checked:i,onCheckedChange:s}),oe(ct,{variant:"ghost",size:"icon",onClick:b,className:"h-4 w-4 p-0 text-slate-600 hover:bg-amber-200/60 hover:text-slate-900 dark:text-slate-300 dark:hover:bg-amber-800/60 dark:hover:text-slate-100",title:n.devReload,"data-testid":"dev-reload-btn",children:oe(Cy,{className:"size-3"})}),oe(ct,{variant:"ghost",size:"icon",onClick:v,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:oe(Ly,{className:"size-3"})})]}),Lt("div",{className:"flex items-center gap-1 pl-1",title:n.autoReadTitle,children:[oe(ho,{id:"auto-read-mode",checked:t,onCheckedChange:_}),oe(wr,{htmlFor:"auto-read-mode",className:"cursor-pointer select-none text-slate-500 text-xs dark:text-slate-400",children:n.autoRead})]})]})})})})]})};import{Fragment as Pd,jsx as pe,jsxs as So}from"react/jsx-runtime";var Md=h(Ue,ft),kd=h("flex min-h-0 flex-1 flex-col items-center justify-center gap-4 text-slate-500 dark:text-slate-300",Ze),By=()=>{let{labels:e,renderHeader:t}=H();return So(Pd,{children:[t({title:e.title,annotation:pe("span",{className:h("font-bold",cr),children:e.loadErrorBadge})}),pe("div",{className:lr,children:pe("div",{className:dr,children:pe("div",{className:Md,children:So("div",{className:h(kd,"border-red-200 dark:border-red-900"),children:[pe("p",{className:h("font-medium",cr),children:e.loadError}),pe("button",{type:"button","data-testid":"daily-report-load-error-retry",onClick:()=>_n(),className:h("rounded bg-slate-100 px-4 py-2 text-slate-700 text-sm hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700",J),children:e.reload})]})})})})]})},Uy=()=>{let{labels:e,renderHeader:t}=H();return So(Pd,{children:[t({title:e.title,annotation:So("div",{className:"flex flex-wrap items-center gap-2 leading-none",children:[pe(Br,{}),pe("span",{children:e.totalCountLoading}),pe("span",{children:e.debounce(Kt)})]})}),pe("div",{className:lr,children:pe("div",{className:dr,children:pe("div",{className:Md,children:pe("div",{className:kd,children:e.loadingIds})})})})]})},Vy=({user:e,userId:t})=>{let{apiBasePath:r,onSessionExpired:n}=H(),o=lt(),a=Fy(n);a.current=n,Od(()=>{hr({apiBasePath:r,userKey:t??null})},[r,t]),Od(()=>{o.phase==="auth-required"&&a.current()},[o.phase]);let i=o.items.length>0||o.phase==="complete";return pe(Jo,{children:pe(ta,{user:e,initialItems:o.items,userId:t,children:i?pe(Ua,{userId:t}):o.phase==="failed"?pe(By,{}):pe(Uy,{})},t??"anonymous")})},Wy=({config:e,...t})=>pe(Do,{config:e,children:pe(Vy,{...t})});var Ky=({actionResult:e,actionStatus:t,currentUrl:r,defaultShouldRevalidate:n,formAction:o,formData:a,formEncType:i,formMethod:s,json:l,nextUrl:c,text:d})=>{if(!n)return!1;if(!(r.pathname===c.pathname&&r.search===c.search&&r.hash===c.hash))return n;if(a){let x=a.get("intent");if(x==="toggleRead"||x==="toggleStar"||x==="addComment"||x==="deleteComment"||x==="create"||x==="update"||x==="publish"||x==="delete")return!1}return e!==void 0||t!==void 0||o!==void 0||a!==void 0||i!==void 0||s!==void 0||l!==void 0||d!==void 0?n:!1},$y=e=>{let t=async r=>{Yo();let n=await r.serverLoader(),o=n.userId;return jo({apiBasePath:e?.apiBasePath,userKey:typeof o=="string"?o:null}),n};return t.hydrate=!0,t};export{fi as DAILY_REPORT_LABEL_CATALOGS,Io as DAILY_REPORT_LABEL_KEYS,uc as DAILY_REPORT_LAYOUT_LATTICE_PX,ta as DailyReportActionProvider,ur as DailyReportAttachmentIndicator,Do as DailyReportConfigProvider,Ca as DailyReportDetailList,Jo as DailyReportErrorProvider,Rr as DailyReportIdsStreamClient,Br as DailyReportIdsStreamStatus,Pa as DailyReportList,Wy as DailyReportPage,Ua as DailyReportResolvedContent,jo as bootstrapDailyReportIdsStreamSession,$y as createDailyReportClientLoader,Ky as dailyReportShouldRevalidate,mr as defaultDailyReportClientConfig,hr as ensureDailyReportIdsStreamSession,Yo as primeDailyReportIdsStreamSession,Ao as resolveDailyReportLabels,_t as resolveSourceTypeConfig,Dn as resyncDailyReportIdsStream,_e as useDailyReportActionContext,Er as useDailyReportComments,H as useDailyReportConfig,wt as useDailyReportDetail,lt as useDailyReportIdsStream,ko as useDailyReportPrefetch,Zo as useDailyReportSseConnection};