@vertesia/ui 0.80.0 → 0.81.1
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/lib/esm/core/components/InputList.js +21 -3
- package/lib/esm/core/components/InputList.js.map +1 -1
- package/lib/esm/core/components/shadcn/dialog.js +10 -6
- package/lib/esm/core/components/shadcn/dialog.js.map +1 -1
- package/lib/esm/core/components/shadcn/index.js +2 -3
- package/lib/esm/core/components/shadcn/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/popover.js +3 -1
- package/lib/esm/core/components/shadcn/popover.js.map +1 -1
- package/lib/esm/core/components/shadcn/selectBox.js +1 -1
- package/lib/esm/core/components/shadcn/selectBox.js.map +1 -1
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +1 -1
- package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
- package/lib/esm/core/components/shadcn/tooltip.js +5 -1
- package/lib/esm/core/components/shadcn/tooltip.js.map +1 -1
- package/lib/esm/core/components/table/index.js +4 -3
- package/lib/esm/core/components/table/index.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +22 -0
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +6 -62
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js +86 -0
- package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/index.js +1 -0
- package/lib/esm/features/facets/index.js.map +1 -1
- package/lib/esm/features/facets/utils/VEnvironmentFacet.js +2 -1
- package/lib/esm/features/facets/utils/VEnvironmentFacet.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +4 -6
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +14 -6
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/components/DocumentIcon.js +1 -1
- package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +25 -39
- package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
- package/lib/esm/features/store/objects/components/SelectDocument.js +19 -9
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +3 -3
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js +3 -3
- package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
- package/lib/esm/features/store/objects/layout/documentLayout.js +1 -1
- package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
- package/lib/esm/features/store/objects/selection/SelectionActions.js +7 -15
- package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +2 -2
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +1 -1
- package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js +19 -19
- package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
- package/lib/esm/features/store/types/ContentObjectTypesTable.js +3 -3
- package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +4 -6
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
- package/lib/esm/features/store/types/TableLayoutEditor.js +4 -6
- package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
- package/lib/esm/session/UserSessionProvider.js +8 -0
- package/lib/esm/session/UserSessionProvider.js.map +1 -1
- package/lib/esm/session/auth/composable.js +96 -2
- package/lib/esm/session/auth/composable.js.map +1 -1
- package/lib/esm/shell/login/SigninScreen.js +1 -1
- package/lib/esm/shell/login/SigninScreen.js.map +1 -1
- package/lib/esm/shell/login/SignupForm.js +4 -4
- package/lib/esm/shell/login/SignupForm.js.map +1 -1
- package/lib/esm/widgets/form/Form.js +9 -2
- package/lib/esm/widgets/form/Form.js.map +1 -1
- package/lib/esm/widgets/index.js +1 -1
- package/lib/esm/widgets/index.js.map +1 -1
- package/lib/esm/widgets/json-view/JSONCode.js +16 -151
- package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js +140 -0
- package/lib/esm/widgets/monacoEditor/MonacoEditor.js.map +1 -0
- package/lib/esm/widgets/monacoEditor/index.js +2 -0
- package/lib/esm/widgets/monacoEditor/index.js.map +1 -0
- package/lib/esm/widgets/upload/DropZone.js +21 -8
- package/lib/esm/widgets/upload/DropZone.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/InputList.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/dialog.d.ts +2 -1
- package/lib/types/core/components/shadcn/dialog.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/index.d.ts +2 -3
- package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +1 -1
- package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -1
- package/lib/types/core/components/shadcn/tooltip.d.ts.map +1 -1
- package/lib/types/core/components/table/index.d.ts +5 -1
- package/lib/types/core/components/table/index.d.ts.map +1 -1
- package/lib/types/features/agent/PayloadBuilder.d.ts +1 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
- package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +14 -0
- package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -0
- package/lib/types/features/facets/index.d.ts +1 -0
- package/lib/types/features/facets/index.d.ts.map +1 -1
- package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts.map +1 -1
- package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
- package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/SelectDocument.d.ts +1 -1
- package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -1
- package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
- package/lib/types/features/store/objects/layout/documentLayout.d.ts +1 -1
- package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts +2 -1
- package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts +2 -1
- package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
- package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
- package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
- package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
- package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
- package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/types/session/auth/composable.d.ts +1 -1
- package/lib/types/session/auth/composable.d.ts.map +1 -1
- package/lib/types/shell/login/SignupForm.d.ts.map +1 -1
- package/lib/types/widgets/form/Form.d.ts.map +1 -1
- package/lib/types/widgets/index.d.ts +1 -1
- package/lib/types/widgets/index.d.ts.map +1 -1
- package/lib/types/widgets/json-view/JSONCode.d.ts +2 -19
- package/lib/types/widgets/json-view/JSONCode.d.ts.map +1 -1
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts +41 -0
- package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -0
- package/lib/types/widgets/monacoEditor/index.d.ts +3 -0
- package/lib/types/widgets/monacoEditor/index.d.ts.map +1 -0
- package/lib/types/widgets/upload/DropZone.d.ts.map +1 -1
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +1 -1
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +6 -10
- package/src/core/components/InputList.tsx +43 -13
- package/src/core/components/shadcn/calendar.tsx +2 -2
- package/src/core/components/shadcn/dialog.tsx +46 -31
- package/src/core/components/shadcn/filters/index.ts +1 -1
- package/src/core/components/shadcn/index.ts +2 -3
- package/src/core/components/shadcn/popover.tsx +3 -1
- package/src/core/components/shadcn/selectBox.tsx +2 -2
- package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +1 -1
- package/src/core/components/shadcn/tooltip.tsx +20 -16
- package/src/core/components/table/index.tsx +18 -5
- package/src/features/agent/PayloadBuilder.tsx +28 -0
- package/src/features/agent/chat/ModernAgentConversation.tsx +6 -104
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +1 -1
- package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +1 -1
- package/src/features/facets/AgentRunnerFacetsNav.tsx +125 -0
- package/src/features/facets/index.ts +1 -0
- package/src/features/facets/utils/VEnvironmentFacet.tsx +2 -1
- package/src/features/store/collections/CreateCollection.tsx +1 -1
- package/src/features/store/collections/EditCollectionView.tsx +10 -8
- package/src/features/store/objects/DocumentSearchResults.tsx +21 -8
- package/src/features/store/objects/components/DocumentIcon.tsx +1 -1
- package/src/features/store/objects/components/PropertiesEditorModal.tsx +36 -51
- package/src/features/store/objects/components/SelectDocument.tsx +45 -20
- package/src/features/store/objects/components/VectorSearchWidget.tsx +3 -3
- package/src/features/store/objects/components/useContentPanelHooks.ts +3 -3
- package/src/features/store/objects/layout/documentLayout.tsx +7 -5
- package/src/features/store/objects/selection/SelectionActions.tsx +10 -21
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +3 -0
- package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +1 -1
- package/src/features/store/types/ContentObjectTypesSearch.tsx +26 -21
- package/src/features/store/types/ContentObjectTypesTable.tsx +20 -19
- package/src/features/store/types/ObjectSchemaEditor.tsx +9 -7
- package/src/features/store/types/TableLayoutEditor.tsx +9 -7
- package/src/session/UserSessionProvider.tsx +9 -0
- package/src/session/auth/auth-flow.md +1094 -0
- package/src/session/auth/composable.ts +106 -2
- package/src/shell/login/SigninScreen.tsx +1 -1
- package/src/shell/login/SignupForm.tsx +5 -4
- package/src/widgets/form/Form.tsx +7 -2
- package/src/widgets/index.ts +1 -1
- package/src/widgets/json-view/JSONCode.tsx +30 -172
- package/src/widgets/monacoEditor/MonacoEditor.tsx +220 -0
- package/src/widgets/monacoEditor/index.ts +3 -0
- package/src/widgets/upload/DropZone.tsx +27 -25
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js +0 -103
- package/lib/esm/widgets/codemirror/CodeMirrorEditor.js.map +0 -1
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js +0 -33
- package/lib/esm/widgets/codemirror/CodemirrorStateSingleton.js.map +0 -1
- package/lib/esm/widgets/codemirror/index.js +0 -2
- package/lib/esm/widgets/codemirror/index.js.map +0 -1
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts +0 -23
- package/lib/types/widgets/codemirror/CodeMirrorEditor.d.ts.map +0 -1
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts +0 -15
- package/lib/types/widgets/codemirror/CodemirrorStateSingleton.d.ts.map +0 -1
- package/lib/types/widgets/codemirror/index.d.ts +0 -2
- package/lib/types/widgets/codemirror/index.d.ts.map +0 -1
- package/src/widgets/codemirror/CodeMirrorEditor.tsx +0 -121
- package/src/widgets/codemirror/CodemirrorStateSingleton.tsx +0 -39
- package/src/widgets/codemirror/index.ts +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import r from"clsx";import{AnimatePresence as i,motion as a}from"motion/react";import s,{useMemo as l,useState as o,useEffect as c,createContext as d,useContext as u,useRef as m,useCallback as h,Component as p,memo as f}from"react";import{cn as g,useToast as y,Badge as b,Button as v,Popover as x,PopoverTrigger as w,PopoverContent as N,Command as k,CommandList as C,CommandGroup as S,CommandItem as P,Modal as j,ModalTitle as _,ModalBody as T,RadioGroup as I,FormItem as A,Input as z,ModalFooter as E,RadioOptionAdapter as F,Center as D,VTooltip as $,useFetch as L,ErrorBox as O,ResizablePanelGroup as R,ResizablePanel as U,ResizableHandle as M,Spinner as V,Portal as K,VModal as q,VModalTitle as B,VModalBody as W,VModalFooter as G,Card as H,Separator as J,CardContent as Y,SelectBox as Z,InputList as Q,Avatar as X,Table as ee,FilterProvider as te,FilterBtn as ne,FilterBar as re,FilterClear as ie,TBody as ae,SharedState as se,useWatchSharedState as le,MessageBox as oe,VSelectBox as ce,useIntersectionObserver as de,useFlag as ue,Styles as me,Checkbox as he,NumberInput as pe,SidePanel as fe,Divider as ge,Textarea as ye,Switch as be,TR as ve,EmptyCollection as xe,ConfirmModal as we,useDebounce as Ne,Panel as ke,CommandInput as Ce,CommandEmpty as Se,TagsInput as Pe,SelectList as je,DialogDescription as _e,Heading as Te,VTabs as Ie,VTabsBar as Ae,VTabsPanel as ze,Breadcrumbs as Ee}from"@vertesia/ui/core";import{CopyIcon as Fe,Bot as De,MessageSquare as $e,Info as Le,AlertCircle as Oe,User as Re,CheckCircle as Ue,Clock as Me,ClipboardList as Ve,XIcon as Ke,MoreVertical as qe,ExternalLink as Be,DownloadCloudIcon as We,TableProperties as Ge,LayoutGrid as He,Loader2 as Je,ChevronsUp as Ye,ChevronsDown as Ze,Minus as Qe,Plus as Xe,Maximize as et,Image as tt,ScanSearch as nt,Download as rt,X as it,Maximize2 as at,AlertTriangle as st,Copy as lt,SquarePen as ot,FileSearch as ct,Eye as dt,Users as ut,RefreshCw as mt,UploadIcon as ht,CheckCircleIcon as pt,AlertCircleIcon as ft,FileIcon as gt,XCircleIcon as yt,FolderIcon as bt,ChevronsUpDown as vt,FileText as xt,ChevronRight as wt,Settings as Nt,Trash2 as kt,Search as Ct,FolderClosed as St,Check as Pt,EllipsisVertical as jt,PaperclipIcon as _t,SendIcon as Tt,Activity as It,Circle as At,Cpu as zt}from"lucide-react";import{useUserSession as Et}from"@vertesia/ui/session";import{AgentMessageType as Ft,AgentSearchScope as Dt,mergeInCodePromptSchemas as $t,supportsToolUse as Lt,ImageRenditionFormat as Ot,WorkflowExecutionStatus as Rt,PDF_RENDITION_NAME as Ut,MarkdownRenditionFormat as Mt,ContentObjectStatus as Vt,ContentNature as Kt,POSTER_RENDITION_NAME as qt,PrincipalType as Bt,InteractionStatus as Wt,SearchTypes as Gt,SupportedEmbeddingTypes as Ht}from"@vertesia/common";import{NavLink as Jt,useNavigate as Yt}from"@vertesia/ui/router";import{MarkdownRenderer as Zt,Popover as Qt,XMLViewer as Xt,JSONCode as en,JSONDisplay as tn,Progress as nn,DropZone as rn,UploadSummary as an,useSchema as sn,CodeMirrorEditor as ln,SchemaEditor as on,ManagedObject as cn,GeneratedForm as dn}from"@vertesia/ui/widgets";import un from"dayjs";import mn,{Ajv as hn}from"ajv";import pn from"@monaco-editor/react";import{pdfjs as fn,Document as gn,Page as yn}from"react-pdf";import bn from"dayjs/plugin/localizedFormat";import vn from"dayjs/plugin/relativeTime";import{Md5 as xn}from"ts-md5";import{json as wn}from"@codemirror/lang-json";import{UserInfo as Nn,SyncMemberHeadsToggle as kn,SharedPropsEditor as Cn}from"@vertesia/ui/features";import{basicSetup as Sn}from"codemirror";import{toPng as Pn}from"html-to-image";import{XAxis as jn,YAxis as _n,CartesianGrid as Tn,Tooltip as In,Legend as An,ReferenceLine as zn,ResponsiveContainer as En,ComposedChart as Fn,AreaChart as Dn,LineChart as $n,BarChart as Ln,Line as On,Area as Rn,Bar as Un,PieChart as Mn,Pie as Vn,Cell as Kn,ScatterChart as qn,Scatter as Bn,RadarChart as Wn,PolarGrid as Gn,PolarAngleAxis as Hn,PolarRadiusAxis as Jn,Radar as Yn,RadialBarChart as Zn,RadialBar as Qn,FunnelChart as Xn,Funnel as er,LabelList as tr,Treemap as nr}from"recharts";import{ErrorBoundary as rr}from"react-error-boundary";import{capitalize as ir}from"lodash-es";import{SidebarItem as ar}from"@vertesia/ui/layout";function sr({children:t,secondary:n=!1}){return e("span",{className:n?"bg-secondary text-primary":"text-foreground bg-muted",children:t})}function lr(e){return e?"array"===e.name?lr(e.innerType):e:void 0}function or({property:n}){return t("div",{className:"flex items-center gap-x-2",children:[e("div",{className:"font-semibold text-gray-600",children:n.name}),n.optional&&e(sr,{children:"optional"}),e(sr,{children:n.type.value})]})}function cr({activities:t}){return e("div",{className:"flex flex-col gap-y-4 divide-y divide-gray-200",children:t.map(t=>e(ur,{activity:t},t.name))})}function dr({code:n,children:r}){return t("div",{className:"flex gap-2 items-center border-b border-b-gray-200 mb-2",children:[e("div",{className:"text-lg font-medium text-gray-900 py-2 ",children:r}),n&&e("div",{children:e(sr,{children:n})})]})}function ur({activity:n,headingClass:r,headingRef:i}){return t("div",{className:r,id:n.name,ref:i,children:[e("div",{className:"text-xl font-semibold pt-8",children:n.title}),e("div",{className:"pb-4",children:e(sr,{children:n.name})}),n.doc&&e("div",{className:"text-gray-700 pb-2",children:n.doc}),t("div",{className:"pb-4",children:[e(dr,{code:n.paramsType,children:"Parameters"}),e("div",{className:"divide-y divide-gray-100",children:n.params.map(t=>e(mr,{property:t},t.name))})]}),t("div",{className:"pb-4",children:[e(dr,{children:"Returns"}),e("div",{children:n.returnType?n.returnType.value:"void"})]})]})}function mr({property:n,className:i}){const a=l(()=>{const t=lr(n.type.innerType)??n.type;return"object"===t.name&&t.members?e(pr,{members:t.members}):"enum"===t.name&&t.enum?e(hr,{values:t.enum}):null},[n.type.innerType]);return t("div",{className:r("py-2",i),children:[e(or,{property:n}),n.doc&&e("div",{className:"text-gray-700 text-sm pt-2",children:n.doc}),a&&e("div",{className:"my-2 overflow-hidden",children:a})]})}function hr({values:t}){return e("div",{className:"flex flex-wrap items-center gap-2",children:t.map((t,n)=>e(sr,{secondary:!0,children:t},n))})}function pr({members:n}){return e(gr,{className:"rounded-md border border-gray-200",button:n=>t("div",{className:"px-4 py-2 flex items-center gap-x-2 text-sm font-medium hover:text-blue-600",children:[e(yr,{isOpen:n}),e("div",n?{children:"Hide child properties"}:{children:"Show child properties"})]}),body:e(fr,{properties:n})})}function fr({properties:t}){return e("div",{className:"border-l-2 border-l-blue-200 flex flex-col divide-y divide-gray-100 border-t border-t-gray-200",children:t.map(t=>e(mr,{property:t,className:"px-4 py-2"},t.name))})}function gr({button:n,body:s,className:l,isInitiallyOpen:c}){const[d,u]=o(c||!1);return t("div",{className:r(d?"block":"inline-block",l),children:[e("button",{className:"p-0 m-0 bg-transparent",onClick:()=>u(!d),children:e(i,{children:n(d)})}),e(i,{children:d&&e(a.div,{className:"overflow-hidden",initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.3,ease:"easeOut"},children:s})})]})}function yr({isOpen:t}){return e(i,{propagate:!0,mode:"wait",children:e(a.div,{className:"font-mono font-semibold text-gray-400 text-lg",initial:{rotate:0},animate:{rotate:t?45:0},transition:{duration:.2},children:"+"},"closeIcon")})}function br({className:n,inline:r=!1}){return t("div",{className:g("flex items-center gap-1",r?"inline-flex":"",n),children:[e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}}),e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_0.3s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}}),e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_0.6s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}})]})}function vr({className:n,inline:r=!1,color:i="blue"}){const a={blue:"from-blue-400 to-indigo-500 dark:from-blue-500 dark:to-indigo-400",purple:"from-purple-400 to-violet-500 dark:from-purple-500 dark:to-violet-400",teal:"from-teal-400 to-emerald-500 dark:from-teal-500 dark:to-emerald-400",green:"from-green-400 to-emerald-500 dark:from-green-500 dark:to-emerald-400",amber:"from-amber-400 to-orange-500 dark:from-amber-500 dark:to-orange-400"}[i];return t("div",{className:g("flex items-center gap-1.5",r?"inline-flex":"",n),children:[e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_infinite]`}),e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_0.2s_infinite]`}),e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_0.4s_infinite]`})]})}function xr({className:n,size:r="md",color:i="blue"}){const a={blue:"bg-blue-500 dark:bg-blue-400",purple:"bg-purple-500 dark:bg-purple-400",teal:"bg-teal-500 dark:bg-teal-400",green:"bg-green-500 dark:bg-green-400",amber:"bg-amber-500 dark:bg-amber-400"};return t("span",{className:g("relative flex",n),children:[e("span",{className:g("animate-ping absolute inline-flex h-full w-full rounded-full opacity-60",a[i])}),e("span",{className:g("animate-pulse absolute inline-flex h-[80%] w-[80%] rounded-full opacity-80",a[i]),style:{left:"10%",top:"10%",animationDuration:"2s"}}),e("span",{className:g("relative inline-flex rounded-full",a[i],{sm:"w-3 h-3",md:"w-5 h-5",lg:"w-7 h-7"}[r])})]})}function wr({className:t,color:n="blue"}){const[r,i]=o(".");return c(()=>{const e=setInterval(()=>{i(e=>"."===e?"..":".."===e?"...":".")},500);return()=>clearInterval(e)},[]),e("span",{className:g({blue:"text-blue-600 dark:text-blue-400",purple:"text-purple-600 dark:text-purple-400",teal:"text-teal-600 dark:text-teal-400",green:"text-green-600 dark:text-green-400",amber:"text-amber-600 dark:text-amber-400"}[n],"font-bold",t),children:r})}function Nr({message:n,className:r,color:i="blue"}){const a={blue:{dot:"bg-blue-500 dark:bg-blue-400",text:"text-blue-700 dark:text-blue-300"},purple:{dot:"bg-purple-500 dark:bg-purple-400",text:"text-purple-700 dark:text-purple-300"},teal:{dot:"bg-teal-500 dark:bg-teal-400",text:"text-teal-700 dark:text-teal-300"},green:{dot:"bg-green-500 dark:bg-green-400",text:"text-green-700 dark:text-green-300"},amber:{dot:"bg-amber-500 dark:bg-amber-400",text:"text-amber-700 dark:text-amber-300"}};return t("div",{className:g("flex items-center gap-2 py-1",r),children:[t("div",{className:"flex space-x-1",children:[e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`}),e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`,style:{animationDelay:"0.2s"}}),e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`,style:{animationDelay:"0.4s"}})]}),e("div",{className:`${a[i].text} font-medium text-xs`,children:n})]})}function kr({className:n,color:r="blue",width:i="md",message:a}){const[s,l]=o(15),[d,u]=o("increasing"),[m,h]=o(.4);return c(()=>{let e,t=Date.now();const n=()=>{const r=Date.now(),i=r-t;t=r,l(e=>{const t=m*(i/16);let n="increasing"===d?e+t:e-t;return n>=85?(u("decreasing"),h(.3+.2*Math.random()),85):n<=15?(u("increasing"),h(.3+.2*Math.random()),15):(Math.random()>.99&&h(e=>Math.max(.2,Math.min(.5,e+(.1*Math.random()-.05)))),n)}),e=requestAnimationFrame(n)};return e=requestAnimationFrame(n),()=>{cancelAnimationFrame(e)}},[d,m]),t("div",{className:g("flex flex-col gap-1",n),children:[a&&e("div",{className:`text-xs font-medium ${{blue:"text-blue-700 dark:text-blue-300",purple:"text-purple-700 dark:text-purple-300",teal:"text-teal-700 dark:text-teal-300",green:"text-green-700 dark:text-green-300",amber:"text-amber-700 dark:text-amber-300"}[r]} mb-1`,children:a}),e("div",{className:g("h-1.5 rounded-full overflow-hidden shadow-inner",{blue:"bg-blue-200 dark:bg-blue-900/30",purple:"bg-purple-200 dark:bg-purple-900/30",teal:"bg-teal-200 dark:bg-teal-900/30",green:"bg-green-200 dark:bg-green-900/30",amber:"bg-amber-200 dark:bg-amber-900/30"}[r],{sm:"w-24",md:"w-32",lg:"w-48",xl:"w-64",full:"w-full"}[i]),children:e("div",{className:g("h-full rounded-full",{blue:"bg-gradient-to-r from-blue-400 to-blue-500 dark:from-blue-500 dark:to-blue-400",purple:"bg-gradient-to-r from-purple-400 to-purple-500 dark:from-purple-500 dark:to-purple-400",teal:"bg-gradient-to-r from-teal-400 to-teal-500 dark:from-teal-500 dark:to-teal-400",green:"bg-gradient-to-r from-green-400 to-green-500 dark:from-green-500 dark:to-green-400",amber:"bg-gradient-to-r from-amber-400 to-amber-500 dark:from-amber-500 dark:to-amber-400"}[r]),style:{width:`${s}%`,transition:"width 150ms cubic-bezier(0.4, 0.0, 0.2, 1)"}})})]})}function Cr({className:t,color:n="blue",size:r="md"}){const[i,a]=o(Array(7).fill(50)),s={sm:{width:"w-16",height:"h-4",barWidth:"w-0.5",gap:"gap-[2px]"},md:{width:"w-20",height:"h-5",barWidth:"w-1",gap:"gap-[3px]"},lg:{width:"w-24",height:"h-6",barWidth:"w-1.5",gap:"gap-1"}},l={blue:"bg-gradient-to-b from-blue-400 to-blue-500 dark:from-blue-400 dark:to-blue-500",purple:"bg-gradient-to-b from-purple-400 to-purple-500 dark:from-purple-400 dark:to-purple-500",teal:"bg-gradient-to-b from-teal-400 to-teal-500 dark:from-teal-400 dark:to-teal-500",green:"bg-gradient-to-b from-green-400 to-green-500 dark:from-green-400 dark:to-green-500",amber:"bg-gradient-to-b from-amber-400 to-amber-500 dark:from-amber-400 dark:to-amber-500"};return c(()=>{let e;const t=[1.2,1,1.5,.8,1.3,.9,1.1],n=[0,.5,1,1.5,2,2.5,3];let r=0;const s=()=>{r+=.02;const l=i.map((e,i)=>10+40*(Math.sin(r*t[i]+n[i])+1));a(l),e=requestAnimationFrame(s)};return e=requestAnimationFrame(s),()=>{cancelAnimationFrame(e)}},[]),e("div",{className:g("flex items-end justify-center",s[r].width,s[r].height,s[r].gap,t),children:i.map((t,i)=>e("div",{className:g(s[r].barWidth,"rounded-full transform-gpu",l[n]),style:{height:`${t}%`,transition:"height 100ms cubic-bezier(0.4, 0.0, 0.2, 1)",opacity:.9}},i))})}const Sr=["Brewing some code magic...","Doing the robot dance...","Cooking up something good...","Working my gears...","Parsing the possibilities...","Crunching the numbers...","Connecting the digital dots...","Processing at maximum capacity...","Searching through my circuits...","Running advanced algorithms...","Computing optimal solutions...","Loading brilliance.exe...","Scanning the knowledge base...","Optimizing response protocols...","Having a quick brainstorm...","Thinking cap firmly on...","Pondering the digital universe...","Consulting my silicon wisdom...","Untangling the logic knots...","Assembling clever responses...","Mixing thoughtful ingredients...","Polishing the perfect answer...","Taking a momentary mind sprint...","Connecting virtual synapses...","Baking fresh ideas...","Stirring the thought pot...","Simmering solutions slowly...","Whipping up a smart response...","Adding a dash of intelligence...","Preparing a gourmet answer...","Growing brilliant ideas...","Cultivating the perfect response...","Gathering digital nectar...","Planting seeds of solutions...","Exploring the data landscape...","Mapping the solution path...","Navigating through possibilities...","Charting the course to answers...","Embarking on a thought expedition...","Sketching out concepts...","Painting with digital brushstrokes...","Composing my response symphony...","Crafting precision answers...","Weaving threads of information...","Just a moment of processing...","Taking a quick thinking break...","Almost there, final touches...","Putting the pieces together...","Making progress, hold tight..."];const Pr=[Ft.COMPLETE,Ft.IDLE,Ft.REQUEST_INPUT,Ft.TERMINATED];function jr(e){return e.workstream_id?(e.type===Ft.COMPLETE&&console.log("[getWorkstreamId] COMPLETE message with workstream_id:",e.workstream_id),e.workstream_id):(e.type===Ft.COMPLETE&&console.log("[getWorkstreamId] COMPLETE message without workstream_id, defaulting to 'main'"),"main")}function _r({message:n,showPulsatingCircle:r=!1}){const[i,a]=o(!1),[s,l]=o(""),[d,u]=o(!1),{client:m}=Et(),h=y(),p=(()=>{const t={containerClass:"bg-white border-l-4 border-l-muted/30 shadow-sm",iconComponent:e(De,{className:"size-4 text-muted"}),sender:""};switch(n.type){case Ft.ANSWER:return{...t,containerClass:"bg-white border-l-4 border-l-muted/30 shadow-sm",iconComponent:e(De,{className:"size-4 text-muted"}),sender:"Agent"};case Ft.COMPLETE:return{...t,containerClass:"bg-white border-l-4 border-l-success shadow-sm",iconComponent:e(Ue,{className:"size-4 text-success"}),sender:"Completed"};case Ft.TERMINATED:return{...t,containerClass:"bg-white border-l-4 border-l-attention shadow-sm",iconComponent:e(Ue,{className:"size-4 text-attention"}),sender:"Terminated"};case Ft.QUESTION:return{...t,iconComponent:e(Re,{className:"size-4 text-muted"}),sender:"User"};case Ft.THOUGHT:return{...t,iconComponent:r?e(xr,{size:"sm",color:"blue"}):e(De,{className:"size-4 text-muted"}),sender:"Agent"};case Ft.ERROR:return{...t,iconComponent:e(Oe,{className:"size-4 text-muted"}),sender:"System"};case Ft.UPDATE:return{...t,containerClass:"bg-white border-l-4 border-success shadow-sm",iconComponent:e(Le,{className:"size-4 text-success"}),sender:"Update"};case Ft.PLAN:return{...t,iconComponent:e($e,{className:"size-4 text-muted"}),sender:"Agent"};default:return{...t,sender:"Agent"}}})(),f=()=>{let e="";if(n.message&&(e="object"==typeof n.message?JSON.stringify(n.message,null,2):n.message.trim?n.message.trim():String(n.message)),"string"==typeof e&&e.includes("%thinking_message%")){const t=Math.floor(Math.random()*Sr.length);e=e.replace(/%thinking_message%/g,Sr[t])}return e},g=t=>{if("object"==typeof t)return e("pre",{className:"text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-gray-100 dark:bg-gray-800 p-2 rounded text-gray-700 ",children:JSON.stringify(t,null,2)});const r=n.workflow_run_id;return e("div",{className:"vprose prose-sm",children:e(Zt,{artifactRunId:r,components:{a:({node:t,ref:n,...r})=>{const i=r.href||"";return i.includes("/store/objects")?e(Jt,{href:i,topLevelNav:!0,children:r.children}):e("a",{...r,target:"_blank",rel:"noopener noreferrer"})},img:({node:t,ref:n,...r})=>e("img",{...r,className:"max-w-full h-auto rounded-lg shadow-md my-3 cursor-pointer hover:shadow-lg transition-shadow",loading:"lazy",onClick:()=>r.src&&window.open(r.src,"_blank")})},children:t})})},x=f(),[w,N]=o([]);c(()=>{(async()=>{const e=n.workflow_run_id,t=n.details,r=t&&t.outputFiles;if(e&&Array.isArray(r)&&0!==r.length)try{const t=await Promise.all(r.map(async t=>{if("string"!=typeof t||!t.trim())return null;const n=t.trim(),r=n.startsWith("out/")||n.startsWith("files/")||n.startsWith("scripts/")?n:`out/${n}`,i=r.split(".").pop()?.toLowerCase()||"",a=new Set(["png","jpg","jpeg","gif","webp","bmp","svg"]).has(i);try{const t=a?"inline":"attachment",{url:i}=await m.files.getArtifactDownloadUrl(e,r,t);return{displayName:n,artifactPath:r,url:i,isImage:a}}catch(e){return console.error(`Failed to resolve artifact URL for ${r}`,e),null}}));N(t.filter(e=>!!e))}catch(e){console.error("Error loading artifact URLs from message details",e),N([])}else N([])})()},[n.details,n.timestamp,m]),c(()=>{(async()=>{if(x){u(!0);try{const e=await(async e=>e)((e=>{if("string"!=typeof e)return e;if(n.type===Ft.THOUGHT||"string"==typeof n.message&&(n.message.toLowerCase().includes("thinking about")||n.message.toLowerCase().includes("i'm thinking")||n.message.toLowerCase().includes("💭"))){let t=e;return/\d+\.\s+.+/.test(t)&&(t=t.replace(/(\d+\.\s+.+?)(?=\s+\d+\.\s+|$)/g,"$1\n\n"),t=t.replace(/(\d+\.\s+.+\n)([^\d\n][^:])/g,"$1 $2")),t.includes(":")&&!t.includes("\n\n")&&(t=t.replace(/\b(First|Next|Then|Finally|Lastly|Additionally|Step \d+):\s+/gi,"\n\n$&")),t.includes(" - ")&&(t=t.replace(/\s+-\s+/g,"\n- ")),t}return/\d+\.\s+.+/.test(e)&&!e.includes("\n\n")?e.replace(/(\d+\.\s+.+?)(?=\s+\d+\.\s+|$)/g,"$1\n\n"):e})(x));l(e)}catch(e){console.error("Error processing message content:",e),l(x)}finally{u(!1)}}})()},[x,m]);const k=jr(n),C=(()=>{switch(n.type){case Ft.ANSWER:return"border-l-info bg-info";case Ft.COMPLETE:return"border-l-success bg-success";case Ft.IDLE:return"border-l-muted bg-muted";case Ft.REQUEST_INPUT:return"border-l-attention bg-attention";case Ft.QUESTION:return"border-l-muted bg-muted";case Ft.THOUGHT:return"border-l-accent dark:border-l-purple-500 bg-purple-50/50 dark:bg-purple-900/10";case Ft.ERROR:return"border-l-destructive bg-destructive";case Ft.UPDATE:return"border-l-success bg-success";case Ft.PLAN:return"border-l-attention bg-attention";case Ft.TERMINATED:return"border-l-muted bg-muted";default:return"border-l-indigo-500 dark:border-l-indigo-400 bg-indigo-50/50 dark:bg-indigo-900/10"}})();return t("div",{className:`border-l-4 shadow-md overflow-hidden bg-white dark:bg-gray-900 mb-5 ${C}`,"data-workstream-id":k,children:[t("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-100/80 dark:border-gray-800/80 bg-white/50 dark:bg-gray-900/50 backdrop-blur-sm",children:[t("div",{className:"flex items-center gap-2",children:[e("div",{className:r?"animate-fadeIn":"",children:(()=>{const t=(()=>{switch(n.type){case Ft.ANSWER:return"text-info";case Ft.COMPLETE:return"text-success";case Ft.IDLE:return"text-muted";case Ft.REQUEST_INPUT:return"text-attention";case Ft.QUESTION:return"text-muted";case Ft.THOUGHT:return"text-purple-600 dark:text-purple-400";case Ft.ERROR:return"text-destructive";case Ft.UPDATE:return"text-success";case Ft.PLAN:return"text-attention";default:return"text-muted"}})(),i=t=>("number"==typeof n.timestamp?n.timestamp:new Date(n.timestamp).getTime())%2==0?e(xr,{size:"sm",color:t}):e(vr,{color:t});switch(n.type){case Ft.ANSWER:return r?i("blue"):e(De,{className:`size-4 ${t}`});case Ft.COMPLETE:case Ft.TERMINATED:return e(Ue,{className:`size-4 ${t}`});case Ft.IDLE:return e(Me,{className:`size-4 ${t}`});case Ft.REQUEST_INPUT:case Ft.QUESTION:return e(Re,{className:`size-4 ${t}`});case Ft.THOUGHT:return r?i("purple"):e(De,{className:`size-4 ${t}`});case Ft.ERROR:return e(Oe,{className:`size-4 ${t}`});case Ft.UPDATE:return r?i("green"):e(Le,{className:`size-4 ${t}`});case Ft.PLAN:return r?i("amber"):e($e,{className:`size-4 ${t}`});default:return r?i("blue"):e(De,{className:`size-4 ${t}`})}})()}),e("span",{className:"text-xs font-medium text-muted ",children:p.sender}),"main"!==k&&"all"!==k&&e(b,{variant:"default",className:"text-xs text-muted",children:k})]}),t("div",{className:"flex items-center gap-2 print:hidden",children:[e("span",{className:"text-xs text-muted",children:un(n.timestamp).format("HH:mm:ss")}),e(v,{variant:"ghost",size:"xs",onClick:()=>{const e=f()||"",t="string"==typeof n.details?n.details:n.details?JSON.stringify(n.details,null,2):"",r=[e,t?"\n\nDetails:\n"+t:""].join("").trim();navigator.clipboard.writeText(r).then(()=>{h({status:"success",title:"Copied to clipboard",duration:2e3})})},className:"text-muted",title:"Copy message",children:e(Fe,{className:"size-3"})})]})]}),t("div",{className:"px-4 py-3 bg-white dark:bg-gray-900",children:[x&&e("div",{className:"message-content",children:d?t("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e(vr,{color:"blue"}),e("span",{children:"Loading images..."})]}):g(s||x)}),w.length>0&&t("div",{className:"mt-3 text-xs",children:[e("div",{className:"font-medium text-muted mb-1",children:"Artifacts"}),w.some(e=>e.isImage)&&e("div",{className:"mb-2 flex flex-wrap gap-3",children:w.filter(e=>e.isImage).map(({displayName:n,artifactPath:r,url:i})=>t("div",{className:"max-w-xs cursor-pointer",onClick:()=>window.open(i,"_blank"),children:[e("img",{src:i,alt:n,className:"max-w-full h-auto rounded-lg shadow-sm hover:shadow-md transition-shadow"}),e("div",{className:"mt-1 text-[11px] text-muted truncate",children:n})]},`${r}-preview`))}),e("div",{className:"flex flex-wrap gap-2 print:hidden",children:w.map(({displayName:t,artifactPath:n,url:r})=>e(v,{variant:"outline",size:"xs",className:"px-2 py-1 text-xs",onClick:()=>window.open(r,"_blank"),title:n,children:t},n+r))})]}),n.details&&t("div",{className:"mt-2 print:hidden",children:[t("button",{onClick:()=>a(!i),className:"text-xs text-muted flex items-center",children:[i?"Hide":"Show"," details",e("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-3 w-3 ml-1 transition-transform "+(i?"rotate-180":""),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),i&&e("div",{className:"mt-2 p-2 bg-muted border border-mixer-muted/40 rounded text-sm",children:"string"==typeof n.details?g(n.details):e("pre",{className:"text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-muted p-2 rounded text-muted ",children:JSON.stringify(n.details,null,2)})})]})]})]})}function Tr({workstreams:n,activeWorkstream:r,onSelectWorkstream:i,count:a,completionStatus:s}){const l=new Map;l.set("all","All Messages"),l.set("main","Main"),n.forEach((e,t)=>{"all"!==t&&"main"!==t&&"research_france"!==t&&"statistics"!==t&&l.set(t,e)}),n=l;const o=Array.from(n.entries()).sort(([e],[t])=>"all"===e?-1:"all"===t?1:"main"===e?-1:"main"===t?1:e.localeCompare(t)),c=o.length>2;return e("div",c?{className:"flex overflow-x-auto space-x-1 mb-2 bg-muted border-b-2 border-muted/20 sticky top-0 z-10",children:o.map(([n,l])=>t("button",{className:"px-2 py-1 text-xs font-medium whitespace-nowrap transition-colors flex items-center gap-1.5\n "+(r===n?"bg-info text-info border-b-2 border-info":"text-muted hover:bg-muted border-b-2 border-transparent"),onClick:()=>i(n),title:l.length>20?l:void 0,children:[l.length>20?l.substring(0,18)+"...":l,a&&a.has(n)&&a.get(n)>0&&t("div",{className:"flex items-center space-x-1",children:[e("span",{className:"inline-flex items-center justify-center p-1 text-xs rounded-full\n "+(r===n?"bg-info text-info":"bg-muted text-muted"),children:a.get(n)}),s&&"all"!==n&&(s.get(n)?e(Ue,{className:"size-3 text-success"}):e(Me,{className:"size-3 text-attention"}))]})]},n))}:{className:"py-1"})}function Ir(e,t){return"all"===t?[...e]:"main"===t?e.filter(e=>"main"===jr(e)):e.filter(e=>jr(e)===t)}const Ar=s.memo(function({messages:r,bottomRef:i,viewMode:a="stacked",isCompleted:d=!1}){const u=s.useRef(null),[m,h]=o("all");c(()=>{i.current&&i.current.scrollIntoView({behavior:"smooth"})},[r,i]);const p=s.useMemo(()=>[...r].sort((e,t)=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())-("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())),[r]),f=s.useMemo(()=>{const e=function(e){const t=new Map;return t.set("all","All Messages"),t.set("main","Main"),e.forEach(e=>{e.workstream_id&&"main"!==e.workstream_id&&"all"!==e.workstream_id&&!t.has(e.workstream_id)&&(t.set(e.workstream_id,e.workstream_id),console.log(`Found workstream: ${e.workstream_id}`))}),t.size<=2&&!t.has("main")&&t.set("main","Main"),console.log("Final workstreams map:",t),t}(p);return e},[p]),g=s.useMemo(()=>{const e=new Map;e.set("all",p.length);const t=Ir(p,"main");return e.set("main",t.length),p.forEach(t=>{const n=jr(t);"main"!==n&&e.set(n,(e.get(n)||0)+1)}),e},[p]),y=s.useMemo(()=>"all"===m?p:Ir(p,m),[p,m]),b=l(()=>{const e=new Map,t=new Map;p.forEach(e=>{const n=jr(e);t.has(n)||t.set(n,[]),t.get(n).push(e)});for(const[n,r]of t.entries())if(r.length>0){const t=r[r.length-1];e.set(n,[Ft.COMPLETE,Ft.IDLE,Ft.REQUEST_INPUT,Ft.TERMINATED].includes(t.type))}return e},[p]);return t("div",{ref:u,className:"flex-1 min-h-0 h-full overflow-y-auto px-4 sm:px-2 lg:px-4 flex flex-col relative","data-testid":"all-messages-mixed",children:[e("div",{className:"sticky top-0 z-10",children:e(Tr,{workstreams:f,activeWorkstream:m,onSelectWorkstream:h,count:g,completionStatus:b})}),0===y.length?e("div",{className:"flex items-center justify-center h-full text-center py-8",children:e("div",{className:"flex items-center px-4 py-3 text-muted",children:"all"===m?"Waiting for agent response...":"No messages in this workstream yet..."})}):t("div",{className:"flex-1 flex flex-col justify-start pb-4 space-y-2",children:["stacked"===a?y.map((t,n)=>{const r=!d&&n===y.length-1&&!Pr.includes(t.type);return e(_r,{message:t,showPulsatingCircle:r},`${t.timestamp}-${n}`)}):e(n,{children:(()=>{const t=y.filter(e=>e.type===Ft.ANSWER||e.type===Ft.QUESTION||e.type===Ft.COMPLETE||e.type===Ft.IDLE||e.type===Ft.REQUEST_INPUT||e.type===Ft.TERMINATED),n=d?null:y.filter(e=>e.type===Ft.THOUGHT||e.type===Ft.UPDATE||e.type===Ft.PLAN).sort((e,t)=>{const n="number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime();return("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())-n})[0],r=[...t];return n&&r.push(n),r.sort((e,t)=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())-("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())),r.map((t,n)=>{const i=!d&&n===r.length-1&&!Pr.includes(t.type);return e(_r,{message:t,showPulsatingCircle:i},`${t.timestamp}-${n}`)})})()}),e("div",{ref:i,className:"h-4"})]})]})});class zr{vertesia;updateState;_interactive=!0;_debug_mode=!1;_collection;_start=!1;_preserveRunValues=!1;_interaction;_environment;_model="";_tool_names=[];_data;_interactionParamsSchema;_inputValidator;constructor(e,t){this.vertesia=e,this.updateState=t}onStateChanged(){const e=this.clone();this.updateState(e)}clone(){const e=new zr(this.vertesia,this.updateState);return e._interactionParamsSchema=this._interactionParamsSchema,e._interaction=this._interaction,e._data=this._data,e._environment=this._environment,e._model=this._model,e._tool_names=[...this._tool_names],e._interactive=this._interactive,e._debug_mode=this._debug_mode,e._inputValidator=this._inputValidator,e._start=this._start,e._collection=this._collection,e._preserveRunValues=this._preserveRunValues,e}get interactive(){return this._interactive}set interactive(e){e!==this._interactive&&(this._interactive=e,this.onStateChanged())}get debug_mode(){return this._debug_mode}set debug_mode(e){e!==this._debug_mode&&(this._debug_mode=e,this.onStateChanged())}get collection(){return this._collection}set collection(e){e!==this._collection&&(this._collection=e,this.onStateChanged())}get search_scope(){return this._collection?Dt.Collection:void 0}async restoreConversation(e){let t=e.interaction;if(e.version){/^[a-fA-F0-9]{24}$/.test(t)||(t=`${t}@${e.version}`)}const n=await this.vertesia.interactions.catalog.resolve(t),r=n.runtime?.environment||e.config?.environment,i=e.config?.model,a=await(r?this.vertesia.environments.retrieve(e.config?.environment):Promise.resolve(void 0));this.interactionParamsSchema=e.interactionParamsSchema??null,this.interaction=n,this._tool_names=e.tool_names||[],this._data=e.data,this._interactive=e.interactive,this._debug_mode=e.debug_mode??!1,this.collection=e.collection_id??void 0,this.environment=a,i&&(this._model=i),this.onStateChanged()}get interaction(){return this._interaction}set interaction(e){if(e?.id!==this._interaction?.id){if(this._interaction=e,this.interactionParamsSchema=e?$t(e.prompts):void 0,this._inputValidator=void 0,e&&!this._preserveRunValues&&e.runtime?.environment){const t=e.runtime.environment;this.vertesia.environments.retrieve(t).then(e=>this.environment=e)}this.onStateChanged()}}get environment(){return this._environment}set environment(e){if(e?.id!==this._environment?.id){if(this._environment=e,!this._preserveRunValues){const t=this.interaction?.runtime?.model;t&&e&&Lt(t,e.provider)?this._model=t:this._model=e?.default_model&&Lt(e.default_model,e.provider)?e.default_model:""}this.onStateChanged()}}get model(){return this._model}set model(e){e!==this._model&&(this._model=e||"",this.onStateChanged())}get tool_names(){return this._tool_names}set tool_names(e){this._tool_names=e,this.onStateChanged()}get data(){return this._data}set data(e){this._data=e,this.onStateChanged()}set run(e){console.log("run",e),this.onStateChanged()}set start(e){this._start!==e&&(this._start=e,this.onStateChanged())}get start(){return this._start}get preserveRunValues(){return this._preserveRunValues}set preserveRunValues(e){this._preserveRunValues=e}get interactionParamsSchema(){return this._interactionParamsSchema}set interactionParamsSchema(e){this._interactionParamsSchema!==e&&(this._interactionParamsSchema=e,this.onStateChanged())}reset(){if(this._start=!1,this._interactive=!0,this._debug_mode=!1,this._collection=void 0,this._preserveRunValues=!1,this._model="",this._environment=void 0,this._tool_names=[],this._interaction=void 0,this._data=void 0,this._interactionParamsSchema=null,this._inputValidator=void 0,this.model=void 0,this.environment=void 0,this.onStateChanged(),location.hash){const e=window.location.origin+window.location.pathname+window.location.search;history.replaceState(null,"",e),location.hash=""}}validateInput(){if(!this._interactionParamsSchema)return{isValid:!0};if(!this._inputValidator||this._inputValidator.schema!==this._interactionParamsSchema){const e=new mn({strict:!1});this._inputValidator={validate:e.compile(this._interactionParamsSchema),schema:this._interactionParamsSchema}}const e=this._data||{};if(!this._inputValidator.validate(e)){return{isValid:!1,errorMessage:this._inputValidator.validate.errors?this._inputValidator.validate.errors.map(e=>`${e.instancePath}: ${e.message}`).join(", "):"Invalid payload data"}}return{isValid:!0}}}const Er=d(void 0);function Fr({children:t}){const{client:n}=Et(),[r,i]=o();return c(()=>{i(new zr(n,i))},[]),r&&e(Er.Provider,{value:r,children:t})}function Dr(){const e=u(Er);if(!e)throw new Error("usePayloadBuilder must be used within a PayloadProvider");return e}function $r({title:n,onClose:r,isModal:i,run:a,viewMode:s,onViewModeChange:l,showPlanPanel:o,hasPlan:c=!1,onTogglePlanPanel:d,onDownload:u,onCopyRunId:m,resetWorkflow:h,onExportPdf:p}){return e(Fr,{children:t("div",{className:"flex flex-wrap items-end justify-between py-1.5 px-2 border-b shadow-sm flex-shrink-0",children:[t("div",{className:"flex flex-wrap items-center space-x-2",children:[t("div",{className:"flex items-center space-x-1",children:[e(De,{className:"size-5 text-muted"}),e("span",{className:"font-medium",children:n})]}),t("span",{className:"text-xs text-muted ml-1",children:["(Run ID: ",a.runId.substring(0,8),"...)"]})]}),t("div",{className:"flex justify-end items-center space-x-2 ml-auto",children:[t("div",{className:"flex items-center space-x-1 bg-muted rounded p-0.5",children:[e(v,{variant:"stacked"===s?"outline":"ghost",size:"xs",className:"rounded-l-md",onClick:()=>l("stacked"),children:"Details"}),e(v,{variant:"sliding"===s?"outline":"ghost",size:"xs",className:"rounded-l-md",onClick:()=>l("sliding"),children:"Most Important"})]}),t("div",{className:"relative",children:[c&&!o&&e("span",{className:"absolute -top-1 -right-1 w-2.5 h-2.5 bg-primary rounded-full border border-border z-10"}),t(v,{size:"sm",variant:o?"primary":"secondary",onClick:d,className:"transition-all duration-200 rounded-md",title:"Toggle plan panel",children:[e(Ve,{className:"size-4 mr-1.5"}),e("span",{className:"font-medium text-xs",children:o?"Hide Plan":"Show Plan"})]})]}),e(Lr,{run:a,isModal:i,onClose:r,onDownload:u,onCopyRunId:m,resetWorkflow:h,onExportPdf:p}),r&&!i&&e(v,{size:"xs",variant:"ghost",onClick:r,children:e(Ke,{className:"size-4"})})]})]})})}function Lr({run:n,isModal:r,onClose:i,onDownload:a,onCopyRunId:s,resetWorkflow:l,onExportPdf:o}){const c=y(),{client:d}=Et(),u=Dr();return t(x,{hover:!0,children:[e(w,{children:e(v,{size:"xs",variant:"ghost",title:"More actions",children:e(qe,{className:"size-4"})})}),e(N,{className:"w-48",align:"end",children:e("div",{className:"rounded-md shadow-lg z-50",children:e("div",{className:"py-1 min-w-36",children:e(k,{children:e(C,{children:t(S,{children:[e("div",{className:"flex items-center px-3 py-1.5 text-xs text-gray-700 dark:text-gray-300",children:e("span",{className:"text-muted",children:"Actions"})}),r&&t(P,{className:"text-xs",onSelect:()=>{return e=`/store/agent-runner?agentId=${n.runId}__${n.workflowId}`,window.open(e,"_blank"),e;var e},children:[e(Be,{className:"size-3.5 mr-2 text-muted"})," Open in new tab"]}),t(P,{className:"text-xs",onSelect:()=>{s?s():(navigator.clipboard.writeText(n.runId),c({status:"success",title:"Run ID copied",duration:2e3}))},children:[e(Fe,{className:"size-3.5 mr-2 text-muted"})," Copy Run ID"]}),t(P,{className:"text-xs",onSelect:()=>{a?a():async function(e,t){return e.files.getDownloadUrl(`agents/${t}/conversation.json`).then(e=>e.url)}(d,n.runId).then(e=>window.open(e,"_blank"))},children:[e(We,{className:"size-3.5 mr-2 text-muted"})," Download Conversation"]}),o&&t(P,{className:"text-xs",onSelect:o,children:[e(We,{className:"size-3.5 mr-2 text-muted"})," Export as PDF"]}),i&&r&&t(P,{className:"text-xs",onSelect:i,children:[e(Ke,{className:"size-3.5 mr-2 text-muted"})," Close"]}),t(P,{className:"text-xs text-destructive",onSelect:()=>{(async e=>{try{return await d.store.workflows.terminate(e.workflowId,e.runId,"cancel"),c({status:"success",title:"Workflow cancelled",duration:2e3}),u.reset(),l?.(),!0}catch(e){return c({status:"error",title:"Failed to cancel workflow",duration:2e3}),!1}})(n)},children:[e(Ke,{className:"size-3.5 mr-2 text-destructive"})," Cancel Workflow"]})]})})})})})})]})}const Or="vertesia.content_store.lastDisplayedView";function Rr({onUpdate:t}){const[n,r]=o("grid"===localStorage.getItem(Or)),i=()=>{localStorage.setItem(Or,"grid"),r(!0),t(!0)},a=()=>{localStorage.setItem(Or,"table"),r(!1),t(!1)};return e(v,{variant:"outline",onClick:()=>{n?a():i()},alt:n?"Table View":"Thumbnail View",children:e(n?Ge:He,{})})}function Ur(e,t=7){return e?"~"+e.slice(-t):""}function Mr(e,t){return e.length>t?e.substring(0,t)+"...":e}Rr.LAST_DISPLAYED_VIEW=Or;const Vr="text/csv",Kr="image/",qr="application/pdf",Br="video/",Wr=["application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/msword","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-powerpoint"],Gr=e=>e===Vr||Vr.includes(e),Hr=e=>e.startsWith(Kr)||Kr.includes(e),Jr=e=>e===qr||qr.includes(e),Yr=e=>e.startsWith(Br)||Br.includes(e),Zr=e=>Wr.includes(e),Qr=import.meta.env,Xr={max_hw:Qr?.VITE_RENDITION_HW||256,format:Ot.jpeg,generate_if_missing:!0},ei="vertesia.content_store.renditionId";async function ti(e,t,n,r,i){if(!t?.content?.type||!(Hr(t.content.type)||Yr(t.content.type)||Jr(t.content.type)))return void i("No preview available");i("Preparing preview...");const a=(new Date).getTime()/1e3,s=localStorage.getItem(`${ei}_${t.id}_${Xr.max_hw}`),l=localStorage.getItem(`${ei}_${t.id}_${Xr.max_hw}_time`);if(s?.length&&l&&Math.abs(a-parseInt(l))<=900)return n(s),r(`${t.name} Rendition`),i("ready"),s;i("Preparing preview..."),e.objects.getRendition(t.id,Xr).then(a=>{if("generating"===a.status)i("Preparing preview..."),n(""),r(""),setTimeout(()=>ti(e,t,n,r,i),6e4);else{if("failed"===a.status)return i("No preview available"),n(""),void r("");{if(!a?.renditions?.length)return i("No preview available"),n(""),void r("");const e=a.renditions[0];localStorage.setItem(`${ei}_${t.id}_${Xr.max_hw}`,e),localStorage.setItem(`${ei}_${t.id}_${Xr.max_hw}_time`,((new Date).getTime()/1e3).toString()),n(e),r(`${t.name} Rendition`),i("ready"),console.log(`Rendition for document ${t.id} retrieved successfully: ${e}`)}}}).catch(e=>{i("No preview available"),console.warn("Failed to retrieve rendition:",e),n(""),r("")})}function ni(e,t){if("undefined"==typeof window||"undefined"==typeof document)return!1;const n=document.createElement("iframe");n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.style.width="0",n.style.height="0",n.style.border="0",n.style.visibility="hidden",document.body.appendChild(n);const r=n.contentWindow;if(!r)return n.parentNode?.removeChild(n),!1;const i=r.document;i.open(),i.write(`<!doctype html><html><head><title>${t}</title></head><body></body></html>`),i.close(),i.title=t;document.querySelectorAll('link[rel="stylesheet"], style').forEach(e=>{i.head.appendChild(e.cloneNode(!0))});const a=i.createElement("style");return a.textContent='\n@media print {\n body {\n margin: 24px;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: #111827;\n background-color: #ffffff;\n }\n\n .vprose {\n max-width: 800px;\n margin: 0 auto;\n }\n\n .vprose h1 {\n font-size: 24px;\n font-weight: 700;\n margin: 1.5rem 0 0.75rem;\n }\n\n .vprose h2 {\n font-size: 20px;\n font-weight: 600;\n margin: 1.25rem 0 0.75rem;\n }\n\n .vprose h3 {\n font-size: 18px;\n font-weight: 600;\n margin: 1rem 0 0.5rem;\n }\n\n .vprose p {\n margin: 0 0 0.5rem;\n }\n\n .vprose ul,\n .vprose ol {\n margin: 0.5rem 0 0.5rem 1.5rem;\n padding: 0;\n }\n\n .vprose li {\n margin: 0.25rem 0;\n }\n\n .vprose table {\n width: 100%;\n border-collapse: collapse;\n margin: 1rem 0;\n }\n\n .vprose th,\n .vprose td {\n border: 1px solid #d1d5db;\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n\n .vprose thead th {\n background-color: #f3f4f6;\n font-weight: 600;\n }\n\n .vprose pre,\n .vprose code {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-size: 12px;\n }\n\n .vprose pre {\n padding: 0.75rem;\n border-radius: 4px;\n border: 1px solid #e5e7eb;\n background-color: #f9fafb;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n /* Hide chart action buttons when printing */\n .chart-actions {\n display: none !important;\n }\n\n /* Hide interactive elements in agent conversation when printing */\n .print-hidden,\n [class*="print:hidden"],\n button[title="Copy message"],\n button[title="Copy to clipboard"],\n button[title="Export as PNG"],\n .message-actions {\n display: none !important;\n }\n\n /* Prevent page breaks inside elements */\n .vprose table,\n .vprose pre,\n .vprose blockquote,\n .vprose figure,\n .vprose img,\n .recharts-wrapper,\n [class*="chart"],\n [class*="Chart"] {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n\n /* Keep headings with following content */\n .vprose h1,\n .vprose h2,\n .vprose h3,\n .vprose h4,\n .vprose h5,\n .vprose h6 {\n break-after: avoid;\n page-break-after: avoid;\n }\n\n /* Keep list items together when possible */\n .vprose li {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n}\n',i.head.appendChild(a),i.body.innerHTML=e.innerHTML,r.focus(),r.print(),setTimeout(()=>{n.parentNode?.removeChild(n)},1e3),!0}function ri(e){switch(e){case Rt.RUNNING:return"text-info";case Rt.COMPLETED:return"text-success";case Rt.FAILED:return"text-destructive";case Rt.TERMINATED:case Rt.CANCELED:return"text-attention";default:return"text-muted"}}function ii(e){switch(e){case Rt.RUNNING:return"Running";case Rt.COMPLETED:return"Completed";case Rt.FAILED:return"Failed";case Rt.CONTINUED_AS_NEW:return"Continued As New";case Rt.TERMINATED:return"Terminated";case Rt.TIMED_OUT:return"Timed Out";case Rt.CANCELED:return"Canceled";default:return"Unknown"}}class ai extends F{labelOf(e){return e.label}idOf(e){return e.id}renderOption(n){return t("div",{children:[e("div",{className:"font-medium",children:n.label}),e("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:n.description})]})}}function si({isOpen:n,onClose:r,onConfirm:i,isLoading:a,uploadedFileName:s}){const l=[{id:"update",label:"Update current version",description:s?"Replace the content file and modify properties directly in the current revision.":"Modify the properties directly in the current revision."},{id:"new-version",label:"Create new version",description:s?"Create a new revision with the replacement file while preserving the original.":"Create a new revision with these property changes while preserving the original."}],d=s?l[1]:l[0],[u,m]=o(d),[h,p]=o(""),f=new ai;c(()=>{n&&(m(d),p(""))},[n,s]);const g="new-version"===u?.id;return t(j,{isOpen:n,onClose:r,className:"sm:max-w-md",children:[e(_,{children:"Save Changes"}),e(T,{children:t("div",{className:"space-y-4",children:[s&&e("div",{className:"mb-4 p-3 bg-blue-50 dark:bg-blue-900/20 rounded-md",children:t("p",{className:"text-sm text-blue-700 dark:text-blue-300 font-medium",children:["You're about to replace the content file with: ",e("span",{className:"font-bold",children:s})]})}),e("p",{className:"text-sm text-mixer-muted/5",children:"How would you like to save these changes?"}),e(I,{adapter:f,options:l,value:u,onChange:e=>{m(e)},gap:"gap-4"}),g&&e(A,{label:"Version Label (Optional)",description:"Optional label for the new version.",className:"mt-3 pl-8",children:e(z,{value:h,onChange:p,placeholder:"e.g., v1.2, approved, post-review",className:"w-full"})})]})}),t(E,{children:[e(v,{variant:"secondary",onClick:r,disabled:a,children:"Cancel"}),e(v,{variant:"primary",onClick:async()=>{await i(g,g?h:void 0)},isLoading:a,children:"Save"})]})]})}function li({isOpen:r,onClose:i,object:a,refetch:s}){const{client:l,store:d}=Et(),u=y(),h=Yt(),[p,f]=o(!1),[g,b]=o(""),[x,w]=o(!1),[N,k]=o(null),C=m(null),S=m(null),[P,I]=o(null),[A,z]=o(null);function F(e,t){e.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,schemas:[{uri:"http://myserver/object-schema.json",fileMatch:["*"],schema:t}]})}return c(()=>{r&&(b(JSON.stringify(a.properties||{},null,2)),a.type?.id&&async function(e){try{const t=await d.types.retrieve(e);t.object_schema&&(I(t.object_schema),S.current&&F(S.current,t.object_schema))}catch(e){console.error("Failed to fetch JSON schema:",e)}}(a.type.id))},[r,a]),t(n,{children:[t(j,{isOpen:r,onClose:i,className:"sm:max-w-[90%] md:max-w-[80%] lg:max-w-[75%] xl:max-w-[70%]",children:[e(_,{children:"Edit Properties"}),t(T,{children:[t("div",{className:"mb-2 text-sm text-gray-500",children:[a.type?.name?t("span",{children:["Editing properties for object type: ",e("strong",{children:a.type.name})]}):e("span",{children:"Editing properties for generic document"}),P&&e("span",{className:"ml-2 text-green-600",children:"(JSON schema validation enabled)"})]}),e("div",{className:"h-[75vh] border border-gray-300 dark:border-gray-700 rounded-md",children:e(pn,{height:"100%",language:"json",value:g,onChange:e=>b(e||""),onMount:function(e,t){C.current=e,S.current=t,P&&F(t,P)},options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,formatOnPaste:!0,formatOnType:!0,automaticLayout:!0,wordWrap:"on"}})})]}),t(E,{children:[e(v,{variant:"secondary",onClick:i,children:"Cancel"}),e(v,{variant:"primary",onClick:function(){if(!C.current)return;const e=C.current.getValue();try{const t=JSON.parse(e);k(t),w(!0)}catch(e){u({status:"error",title:"Invalid JSON",description:"Please fix the JSON syntax errors before saving.",duration:5e3})}},children:"Save Changes"})]})]}),e(si,{isOpen:x,onClose:function(){w(!1)},onConfirm:async function(e,t){try{f(!0);const n=N||JSON.parse(g);if(e){const e=await l.objects.update(a.id,{properties:n},{createRevision:!0,revisionLabel:t});e.id!==a.id&&z(e.id),u({status:"success",title:"New version created",description:"A new version with updated properties has been created.",duration:2e3}),w(!1),i(),e.id!==a.id&&setTimeout(()=>{h(`/objects/${e.id}`),u({status:"info",title:"Viewing New Version",description:t?`Now viewing version '${t}'`:"Now viewing the new version",duration:3e3})},100)}else await d.objects.update(a.id,{properties:n}),u({status:"success",title:"Properties updated",description:"The object properties have been updated successfully.",duration:2e3}),s&&await s(),w(!1),i()}catch(e){u({status:"error",title:"Error updating properties",description:e.message||"An error occurred while updating the properties.",duration:5e3}),f(!1)}},isLoading:p})]})}function oi({className:t,size:n="md"}){return e("div",{className:`flex items-center justify-center ${t||""}`,children:e(Je,{className:`${{sm:"w-4 h-4",md:"w-6 h-6",lg:"w-8 h-8"}[n]} animate-spin text-muted-foreground`})})}function ci({pdfUrl:n,pageNumber:r,width:i,className:a,renderTextLayer:s=!1,renderAnnotationLayer:l=!1,onLoadSuccess:c,onError:d}){const[u,m]=o(!0),[h,p]=o(null);return h?e("div",{className:`flex items-center justify-center text-destructive text-sm ${a||""}`,children:"Failed to load PDF"}):t("div",{className:a,children:[u&&e(oi,{className:"py-4",size:"md"}),e(gn,{file:n,onLoadSuccess:({numPages:e})=>{m(!1),c?.(e)},onLoadError:e=>{m(!1),p(e),d?.(e)},loading:null,children:e(yn,{pageNumber:r,width:i,renderTextLayer:s,renderAnnotationLayer:l,loading:e(oi,{className:"py-4",size:"sm"})})})]})}fn.GlobalWorkerOptions.workerSrc=`//unpkg.com/pdfjs-dist@${fn.version}/build/pdf.worker.min.mjs`;const di=d(null);function ui({pdfUrl:t,urlLoading:n=!1,children:r,onLoadSuccess:i}){const[a,s]=o(0),[l,c]=o(!0),[d,u]=o(null),[m,h]=o(null),p={pdfUrl:t,numPages:a,loading:n||!t||l,error:d,pageDimensions:m};return d?e("div",{className:"flex items-center justify-center text-destructive text-sm py-4",children:"Failed to load PDF"}):e(di.Provider,{value:p,children:t?e(gn,{file:t,onLoadSuccess:async e=>{s(e.numPages),i?.(e.numPages);try{const t=(await e.getPage(1)).getViewport({scale:1});h({width:t.width,height:t.height,aspectRatio:t.width/t.height})}catch(e){console.error("Failed to get page dimensions:",e)}c(!1)},onLoadError:e=>{c(!1),u(e)},loading:e(oi,{className:"py-4",size:"md"}),children:r((t,n)=>e(yn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e(oi,{className:"py-4",size:"sm"})},t))}):e(oi,{className:"py-4",size:"md"})})}function mi(){return u(di)}const hi=210/297;function pi({pageNumber:t,width:n,className:r}){const i=mi(),a=i?.pageDimensions?.aspectRatio??hi,s=n?Math.round(n/a):200;return e("div",i?.loading?{className:`flex items-center justify-center bg-muted ${r||""}`,style:{height:s,width:n||"100%"},children:e(oi,{size:"md"})}:{className:r,children:e(yn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e(oi,{className:"py-4",size:"sm"})})})}function fi({pageNumber:t,width:n,isSelected:r,onSelect:i,renderThumbnail:a,aspectRatio:s=hi,rootMargin:l="200px 0px"}){const d=m(null),[u,h]=o(!1);c(()=>{const e=d.current;if(!e)return;const t=new IntersectionObserver(e=>{const t=e[0];t?.isIntersecting&&h(!0)},{rootMargin:l,threshold:0});return t.observe(e),()=>t.disconnect()},[l]);const p=n?Math.round(n/s):200,f=u?e(yn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e("div",{className:"flex items-center justify-center bg-muted",style:{height:p},children:e(oi,{size:"sm"})})}):e("div",{className:"flex items-center justify-center bg-muted",style:{height:p,width:n||"100%"},children:e("span",{className:"text-muted-foreground text-xs",children:t})});return e("div",{ref:d,children:a({pageNumber:t,isSelected:r,pageElement:f,onSelect:i})})}function gi({pdfUrl:r,urlLoading:i=!1,pageCount:a,currentPage:s,thumbnailWidth:l,onPageSelect:d,renderThumbnail:u,scrollContainerRef:p,onAspectRatioChange:f,onItemHeightChange:g,calculateItemHeight:y,onPageCountChange:b}){const[v,x]=o(null),[w,N]=o({start:0,end:Math.min(15,a)}),[k,C]=o(null),S=m(null),P=h(e=>{x(e)},[]),j=h(async e=>{b?.(e.numPages);try{const t=(await e.getPage(1)).getViewport({scale:1}),n=t.width/t.height;C(n),f?.(n)}catch(e){console.error("Failed to get page dimensions:",e),C(hi),f?.(hi)}},[f,b]),_=k??hi,T=l?Math.round(l/_):200,I=y?y(T):T+16+24+8;c(()=>{I>0&&null!==k&&g?.(I)},[I,k,g]);if(c(()=>{const e=p?.current||function(e){if(!e)return null;let t=e.parentElement;for(;t;){const e=window.getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)return t;t=t.parentElement}return null}(S.current);if(!e)return;const t=()=>{const t=e.scrollTop,n=e.clientHeight,r=Math.floor(t/I),i=Math.ceil((t+n)/I),s=Math.max(0,r-5),l=Math.min(a,i+5);N(e=>e.start!==s||e.end!==l?{start:s,end:l}:e)};return t(),e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[I,a,p]),v)return e("div",{className:"flex items-center justify-center text-destructive text-sm py-4",children:"Failed to load PDF"});if(i||!r)return e(oi,{className:"py-4",size:"md"});const A=w.start*I,z=(a-w.end)*I,E=null!==k;return e("div",{ref:S,children:e(gn,{file:r,onLoadSuccess:j,onLoadError:P,loading:e(oi,{className:"py-4",size:"md"}),children:E?t(n,{children:[A>0&&e("div",{style:{height:A}}),Array.from({length:w.end-w.start},(t,n)=>{const r=w.start+n+1;return e("div",{"data-page-index":r-1,style:{height:I,overflow:"hidden"},children:e(fi,{pageNumber:r,width:l,isSelected:r===s,onSelect:()=>d(r),renderThumbnail:u,aspectRatio:_})},r)}),z>0&&e("div",{style:{height:z}})]}):e(oi,{className:"py-4",size:"md"})})})}function yi({pdfUrl:n,pageNumber:r,width:i,height:a,className:s,renderTextLayer:l=!1,renderAnnotationLayer:d=!1,onPageChange:u}){const[m,h]=o(0),[p,f]=o(!0),[g,y]=o(null);c(()=>{m>0&&u?.(r,m)},[r,m,u]);return g?e("div",{className:`flex items-center justify-center text-destructive ${s||""}`,children:t("span",{children:["Failed to load PDF: ",g.message]})}):t("div",{className:s,children:[p&&e(oi,{className:"py-8",size:"lg"}),e(gn,{file:n,onLoadSuccess:({numPages:e})=>{h(e),f(!1)},onLoadError:e=>{f(!1),y(e)},loading:null,children:e(yn,{pageNumber:Math.min(r,m||1),width:i,height:a,renderTextLayer:l,renderAnnotationLayer:d,loading:e(oi,{className:"py-8",size:"md"})})})]})}const bi=210/297,vi=[50,75,100,125,150,200,300];function xi({pdfUrl:i,pdfUrlLoading:a=!1,pageCount:s,currentPage:l,onChange:d,onPageCountChange:u,className:p,compact:f=!1,headerExtra:g}){const y=m(null),b=m(null),[x,w]=o(void 0),[N,k]=o(100),[C,S]=o(bi),[P,j]=o(null),_=m(null),T=x?Math.round(x*N/100):void 0,I=h(()=>{let e=vi.findIndex(e=>e>=N);-1===e&&(e=vi.length-1);const t=Math.min(e+1,vi.length-1);k(vi[t])},[N]),A=h(()=>{let e=vi.findIndex(e=>e>=N);-1===e&&(e=vi.length-1);const t=Math.max(e-1,0);k(vi[t])},[N]),z=h(()=>{k(100)},[]),E=h(e=>e+(f?28:48),[f]),F=(e,t)=>{const n=e?Math.round(e/t):200;return E(n)};c(()=>{const e=b.current;if(!e)return;let t=null;const n=()=>e.clientWidth-16-16-4,r=()=>{const t=n();if(t<=0)return;const r=_.current;if(r&&r>0){const n=e.scrollTop,i=Math.round(n/r),a=F(t,C),s=i*a;w(t),requestAnimationFrame(()=>{e.scrollTo({top:s,behavior:"instant"})}),_.current=a}else w(t),_.current=F(t,C)},i=n();i>0&&(w(i),_.current=F(i,C));const a=new ResizeObserver(()=>{t&&clearTimeout(t),t=setTimeout(r,150)});return a.observe(e),()=>{t&&clearTimeout(t),a.disconnect()}},[C]);const $=m(!1),L=m(null),O=m(N);c(()=>{O.current!==N&&(O.current=N,L.current={targetPage:l},$.current=!0)},[N,l]),c(()=>{const e=b.current,t=L.current;if(t&&e&&P){L.current=null;const n=(t.targetPage-1)*P;requestAnimationFrame(()=>{e.scrollTo({top:n,behavior:"instant"}),requestAnimationFrame(()=>{$.current=!1})})}},[P]);const R=m(!1);c(()=>{const e=b.current;if(e&&P&&!R.current)if(l>1){R.current=!0,$.current=!0;const t=(l-1)*P;e.scrollTo({top:t,behavior:"instant"}),requestAnimationFrame(()=>{$.current=!1})}else R.current=!0},[P,l]);const U=m(l);c(()=>{const e=b.current;if(e&&P&&U.current!==l){U.current=l,$.current=!0;const t=(l-1)*P;e.scrollTo({top:t,behavior:"instant"}),requestAnimationFrame(()=>{$.current=!1})}},[l,P]),c(()=>{const e=b.current;if(!e||!P)return;let t=null;const n=()=>{$.current||(t&&clearTimeout(t),t=setTimeout(()=>{const t=e.scrollTop,n=Math.round(t/P)+1,r=Math.max(1,Math.min(n,s));r!==l&&(U.current=r,d(r))},50))};return e.addEventListener("scroll",n,{passive:!0}),()=>{t&&clearTimeout(t),e.removeEventListener("scroll",n)}},[P,s,l,d]);return t("div",{ref:y,className:r("flex flex-col items-stretch",f?"gap-y-1":"gap-y-2",p),children:[t("div",{className:r("relative flex items-center justify-center px-2",f?"h-6":"h-9"),children:[e(v,{variant:"ghost",size:"xs",onClick:()=>{l>1&&d(l-1)},alt:"Previous page",children:e(Ye,{className:"size-4"})}),t("div",{className:"absolute left-2 flex items-center gap-x-1",children:[e(Ni,{zoom:N,onZoomIn:I,onZoomOut:A,onFitToView:z,canZoomIn:N<vi[vi.length-1],canZoomOut:N>vi[0]}),g&&t(n,{children:[e("div",{className:"w-px h-4 bg-border mx-1"}),g]})]}),e("div",{className:"absolute right-2",children:e(wi,{currentPage:l,totalPages:s,onChange:d})})]}),e("div",{ref:b,className:r("flex flex-col items-center flex-1 overflow-y-auto px-2",f?"gap-1":"gap-2"),children:e(gi,{pdfUrl:i,urlLoading:a,pageCount:s,currentPage:l,thumbnailWidth:T,onPageSelect:d,onPageCountChange:u,scrollContainerRef:b,onAspectRatioChange:S,onItemHeightChange:j,calculateItemHeight:E,renderThumbnail:({pageNumber:n,isSelected:i,pageElement:a,onSelect:s})=>t("div",{className:r("hover:bg-muted rounded-md w-full",f?"p-1":"p-2"),children:[e("div",{className:r("relative border-[2px] cursor-pointer overflow-hidden",i?"border-primary":"border-border"),onClick:s,children:a}),e(D,{className:r("text-muted-foreground font-semibold",f?"text-xs pt-0.5":"text-sm pt-1"),children:n})]},n)})}),e("div",{className:r("flex items-center justify-center",f?"h-6":"h-9"),children:e(v,{variant:"ghost",size:"xs",onClick:()=>{l<s&&d(l+1)},alt:"Next page",children:e(Ze,{className:"size-4"})})})]})}function wi({currentPage:n,totalPages:r,onChange:i}){const a=m(null),[s,l]=o(String(n));c(()=>{l(String(n))},[n]);const d=()=>{const e=parseInt(s,10);!isNaN(e)&&e>=1&&e<=r?i(e):l(String(n))};return t("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e("span",{children:"Page"}),e("input",{ref:a,type:"text",value:s,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key?(d(),a.current?.blur()):"Escape"===e.key&&(l(String(n)),a.current?.blur())},onBlur:()=>{d()},className:"w-8 h-5 text-center text-xs px-1 py-0 bg-background border border-border rounded focus:outline-none focus:border-primary"}),t("span",{children:["/ ",r]})]})}function Ni({zoom:n,onZoomIn:i,onZoomOut:a,onFitToView:s,canZoomIn:l,canZoomOut:o}){return t("div",{className:"flex items-center gap-x-0.5",children:[e($,{description:"Zoom out",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",o?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:a,disabled:!o,children:e(Qe,{className:"size-4"})})}),t("span",{className:"text-xs text-muted-foreground min-w-[32px] text-center",children:[n,"%"]}),e($,{description:"Zoom in",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",l?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:i,disabled:!l,children:e(Xe,{className:"size-4"})})}),e($,{description:"Fit to width",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",100!==n?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40"),onClick:s,children:e(et,{className:"size-4"})})})]})}const ki="magic-pdf";var Ci;!function(e){e.original="original",e.instrumented="instrumented"}(Ci||(Ci={}));class Si{client;objectId;totalPages;cache=new Map;pending=new Map;constructor(e,t,n){this.client=e,this.objectId=t,this.totalPages=n}getCacheKey(e,t){return`${t}-${e}`}async getPageImageUrl(e,t){const n=this.getCacheKey(e,t),r=this.cache.get(n);if(r)return r;const i=this.pending.get(n);if(i)return i;const a=this.fetchImageUrl(e,t);this.pending.set(n,a);try{const e=await a;return this.cache.set(n,e),e}finally{this.pending.delete(n)}}async fetchImageUrl(e,t){const n=this.getImagePath(e,t);return(await this.client.files.getDownloadUrl(n)).url}getImagePath(e,t){const n=`${ki}/${this.objectId}/pages`;switch(t){case Ci.original:return`${n}/page-${e}.original.jpg`;case Ci.instrumented:return`${n}/page-${e}.instrumented.jpg`}}}class Pi{client;objectId;totalPages;cache=new Map;pending=new Map;constructor(e,t,n){this.client=e,this.objectId=t,this.totalPages=n}async getPageLayout(e){const t=this.cache.get(e);if(void 0!==t)return t;const n=this.pending.get(e);if(n)return n;const r=this.fetchPageLayout(e);this.pending.set(e,r);try{const t=await r;return this.cache.set(e,t),t}finally{this.pending.delete(e)}}async fetchPageLayout(e){const t=`${ki}/${this.objectId}/pages/page-${e}.layout.json`,n=await this.client.files.getDownloadUrl(t),r=await fetch(n.url,{method:"GET"});if(!r.ok)throw new Error("Failed to fetch json layout: "+r.statusText);return r.text()}}class ji{totalPages;pages=[];constructor(e){this.totalPages=e}initFromContent(e){this.pages=function(e,t){const n=new Array(t).fill(""),r=/<!--\s*\{\s*"page"\s*:\s*(\d+)\s*\}\s*-->/g,i=[];let a;for(;null!==(a=r.exec(e));)i.push({page:parseInt(a[1],10),index:a.index+a[0].length});for(let r=0;r<i.length;r++){const a=i[r],s=a.page-1;if(s<0||s>=t)continue;const l=a.index,o=e.slice(l).match(/<!--\s*\{\s*"page"\s*:\s*\d+\s*\}\s*-->/),c=o?l+o.index:e.length;let d=e.slice(l,c).trim();d=d.replace(/\n---\s*$/,"").trim(),n[s]=d}return n}(e,this.totalPages)}async loadUrls(e,t){}async getPageMarkdown(e){const t=e-1;return t<0||t>=this.pages.length?"":this.pages[t]}}const _i=d(void 0);function Ti({children:t,object:n}){const{client:r}=Et(),i=n.metadata.page_count||10,a="markdown"===n.metadata?.content_processor?.type,[s,l]=o(()=>{const e=new ji(i);a&&n.text&&e.initFromContent(n.text);const t=n.text?zi(n.text):"";return{count:i,layoutProvider:new Pi(r,n.id,i),markdownProvider:e,imageProvider:new Si(r,n.id,i),xml:t,xmlPages:n.text?Ai(t):[],pdfUrl:"",pdfUrlLoading:!0}});return c(()=>{if(a){const e=n.metadata,t=e?.renditions?.find(e=>e.name===Ut),i="application/pdf"===n.content?.type,a=t?.content?.source||(i?n.content?.source:void 0);a?r.store.objects.getDownloadUrl(a,void 0,"inline").then(e=>{l(t=>({...t,pdfUrl:e.url,pdfUrlLoading:!1}))}).catch(e=>{console.warn("Failed to get PDF URL:",e),l(e=>({...e,pdfUrlLoading:!1}))}):l(e=>({...e,pdfUrlLoading:!1}))}else l(e=>({...e,pdfUrlLoading:!1}))},[n.id,r,a,i]),e(_i.Provider,{value:s,children:t})}function Ii(){const e=s.useContext(_i);if(!e)throw new Error("useMagicPdfContext must be used within a MagicPdfProvider");return e}function Ai(e){const t=(new DOMParser).parseFromString(zi(e),"text/xml").getElementsByTagName("page"),n=new XMLSerializer;return Array.from(t).map(e=>n.serializeToString(e))}function zi(e){return e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"").replace(/<\?xml.*?\?>/g,"")}const Ei=[50,75,100,125,150,200,300],Fi=11/8.5;function Di({className:n,currentPage:i,onChange:a}){const[s,l]=o(Ci.instrumented),[d,u]=o(Fi),[p,f]=o(new Map),[g,y]=o(100),b=m(new Set),x=m(null),w=m(null),N=m(!1),{imageProvider:k,count:C}=Ii(),S=h(()=>{let e=Ei.findIndex(e=>e>=g);-1===e&&(e=Ei.length-1);const t=Math.min(e+1,Ei.length-1);y(Ei[t])},[g]),P=h(()=>{let e=Ei.findIndex(e=>e>=g);-1===e&&(e=Ei.length-1);const t=Math.max(e-1,0);y(Ei[t])},[g]),j=h(()=>{y(100)},[]);c(()=>{k.getPageImageUrl(1,s).then(e=>{const t=new window.Image;t.onload=()=>{t.width>0&&t.height>0&&u(t.height/t.width)},t.src=e}).catch(()=>{})},[k,s]);const _=m(s);c(()=>{let e=!1;_.current!==s&&(_.current=s,b.current=new Set,f(new Map));const t=function(e,t){const n=[e];let r=1;for(;n.length<t;){const i=e+r,a=e-r;i<=t&&n.push(i),a>=1&&n.push(a),r++}return n}(i,C);return t.forEach(t=>(async t=>{if(!e&&!b.current.has(t))try{const n=await k.getPageImageUrl(t,s);e||(b.current.add(t),f(e=>new Map(e).set(t,n)))}catch{}})(t)),()=>{e=!0}},[i,C,s,k]);const T=m(g);c(()=>{if(T.current!==g&&w.current){T.current=g,N.current=!0;const e=w.current.querySelector(`[data-page="${i}"]`);e?requestAnimationFrame(()=>{e.scrollIntoView({behavior:"instant",block:"center"}),requestAnimationFrame(()=>{N.current=!1})}):N.current=!1}},[g,i]);const I=m(i);c(()=>{if(I.current!==i&&w.current){I.current=i,N.current=!0;const e=w.current.querySelector(`[data-page="${i}"]`);e&&e.scrollIntoView({behavior:"instant",block:"nearest"}),requestAnimationFrame(()=>{N.current=!1})}},[i]),c(()=>{const e=w.current;if(!e)return;let t=null;const n=()=>{N.current||(t&&clearTimeout(t),t=setTimeout(()=>{const t=e.getBoundingClientRect(),n=t.top+t.height/2;let r=i,s=1/0;for(let t=1;t<=C;t++){const i=e.querySelector(`[data-page="${t}"]`);if(i){const e=i.getBoundingClientRect(),a=e.top+e.height/2,l=Math.abs(a-n);l<s&&(s=l,r=t)}}r!==i&&(I.current=r,a(r))},50))};return e.addEventListener("scroll",n,{passive:!0}),()=>{t&&clearTimeout(t),e.removeEventListener("scroll",n)}},[C,i,a]);return t("div",{ref:x,className:r("flex flex-col items-stretch gap-y-2",n),children:[t("div",{className:"relative flex items-center justify-center px-2 h-9",children:[e(v,{variant:"ghost",size:"xs",onClick:()=>{i>1&&a(i-1)},alt:"Previous page",children:e(Ye,{className:"size-4"})}),t("div",{className:"absolute left-2 flex items-center gap-x-1",children:[e($i,{type:Ci.original,currentType:s,onClick:()=>l(Ci.original),icon:e(tt,{className:"size-4"}),tooltip:"Original images"}),e($i,{type:Ci.instrumented,currentType:s,onClick:()=>l(Ci.instrumented),icon:e(nt,{className:"size-4"}),tooltip:"Instrumented images"}),e("div",{className:"w-px h-4 bg-border mx-1"}),e(Li,{zoom:g,onZoomIn:S,onZoomOut:P,onFitToView:j,canZoomIn:g<Ei[Ei.length-1],canZoomOut:g>Ei[0]})]}),e("div",{className:"absolute right-2",children:e(Ri,{currentPage:i,totalPages:C,onChange:a})})]}),e("div",{ref:w,className:"flex flex-col items-center gap-2 flex-1 overflow-y-auto px-2",children:Array.from({length:C},(t,n)=>e(Oi,{currentPage:i,pageNumber:n+1,aspectRatio:d,zoom:g,url:p.get(n+1),onSelect:()=>a(n+1)},n))}),e("div",{className:"flex items-center justify-center h-9",children:e(v,{variant:"ghost",size:"xs",onClick:()=>{i<C&&a(i+1)},alt:"Next page",children:e(Ze,{className:"size-4"})})})]})}function $i({type:t,currentType:n,onClick:i,icon:a,tooltip:s}){return e($,{description:s,placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",t===n?"text-primary bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),onClick:i,children:a})})}function Li({zoom:n,onZoomIn:i,onZoomOut:a,onFitToView:s,canZoomIn:l,canZoomOut:o}){return t("div",{className:"flex items-center gap-x-0.5",children:[e($,{description:"Zoom out",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",o?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:a,disabled:!o,children:e(Qe,{className:"size-4"})})}),t("span",{className:"text-xs text-muted-foreground min-w-[32px] text-center",children:[n,"%"]}),e($,{description:"Zoom in",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",l?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:i,disabled:!l,children:e(Xe,{className:"size-4"})})}),e($,{description:"Fit to width",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",100!==n?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40"),onClick:s,children:e(et,{className:"size-4"})})})]})}function Oi({pageNumber:n,currentPage:i,aspectRatio:a,zoom:s,url:l,onSelect:o}){return t("div",{className:"p-2 hover:bg-muted rounded-md flex flex-col items-center","data-page":n,style:{width:`${s}%`},children:[e("div",{className:r("relative border-[2px] cursor-pointer overflow-hidden flex items-center justify-center bg-muted/50 w-full",n===i?"border-primary":"border-border"),style:{aspectRatio:`1 / ${a}`},onClick:o,children:l?e("img",{src:l,alt:`Page ${n}`,className:"w-full"}):e(Je,{className:"w-6 h-6 animate-spin text-muted-foreground"})}),e(D,{className:"text-sm text-muted-foreground pt-1 font-semibold",children:n})]})}function Ri({currentPage:n,totalPages:r,onChange:i}){const a=m(null),[s,l]=o(String(n));c(()=>{l(String(n))},[n]);const d=()=>{const e=parseInt(s,10);!isNaN(e)&&e>=1&&e<=r?i(e):l(String(n))};return t("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e("span",{children:"Page"}),e("input",{ref:a,type:"text",value:s,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key?(d(),a.current?.blur()):"Escape"===e.key&&(l(String(n)),a.current?.blur())},onBlur:()=>{d()},className:"w-8 h-5 text-center text-xs px-1 py-0 bg-background border border-border rounded focus:outline-none focus:border-primary"}),t("span",{children:["/ ",r]})]})}function Ui({object:n}){const{client:r}=Et(),i=e=>{(function(e,t,n){return e.files.getDownloadUrl(`${ki}/${t}/${n}`).then(e=>e.url)})(r,n.id,e).then(e=>window.open(e,"_blank"))},a="p-2 cursor-pointer hover:bg-muted text-left text-sm";return"markdown"===(()=>{if("document"===n.metadata?.type){const e=n.metadata;return e.content_processor?.type||"xml"}return"xml"})()?e(v,{variant:"ghost",size:"xs",onClick:()=>i("document.md"),alt:"Download",children:e(rt,{className:"size-4"})}):t(Qt,{strategy:"absolute",placement:"bottom-start",zIndex:100,offset:8,children:[e(Qt.Trigger,{click:!0,children:e(v,{variant:"ghost",size:"xs",alt:"Download",children:e(rt,{className:"size-4"})})}),e(Qt.Content,{children:t("div",{className:"rounded-md shadow-md border border-border bg-popover min-w-[200px] flex flex-col divide-y divide-border",children:[e("button",{className:a,onClick:()=>i("annotated.pdf"),children:"annotated.pdf"}),e("button",{className:a,onClick:()=>i("document.xml"),children:"document.xml"}),e("button",{className:a,onClick:()=>i("analyzed-pages.json"),children:"analyzed-pages.json"})]})})]})}function Mi({className:t}){return e("div",{className:`flex items-center justify-center ${t||""}`,children:e(Je,{className:"w-6 h-6 animate-spin text-gray-400"})})}function Vi({viewType:t,pageNumber:n}){switch(t){case"json":return e(qi,{pageNumber:n});case"markdown":return e(Bi,{pageNumber:n});default:return e(Ki,{pageNumber:n})}}function Ki({pageNumber:t}){const{xmlPages:n}=Ii();return e("div",{className:"px-4 py-2",children:e(Xt,{xml:n[t-1],collapsible:!0})})}function qi({pageNumber:t}){const[n,r]=o(null),[i,a]=o(!0),[s,l]=o(null),{layoutProvider:d}=Ii();return c(()=>{a(!0),l(null),d.getPageLayout(t).then(e=>{r(e?JSON.parse(e):null),a(!1)}).catch(e=>{console.error(e),l(e.message||"Failed to load layout"),a(!1)})},[t,d]),i?e("div",{className:"px-4 py-8",children:e(Mi,{})}):s?e("div",{className:"px-4 py-2 text-red-500 text-sm",children:s}):n?e(en,{className:"w-full",data:n}):null}function Bi({pageNumber:n}){const[r,i]=o(null),[a,s]=o(!0),[l,d]=o(null),{markdownProvider:u}=Ii();return c(()=>{s(!0),d(null),u.getPageMarkdown(n).then(e=>{i(e),s(!1)}).catch(e=>{console.error(e),d(e.message||"Failed to load markdown"),s(!1)})},[n,u]),a?t("div",{className:"h-full flex flex-col items-center justify-center gap-2",children:[e(Mi,{}),e("span",{className:"text-sm text-muted-foreground",children:"Loading..."})]}):e("div",l?{className:"px-4 py-2 text-red-500 text-sm",children:l}:{className:"px-4 py-2 prose prose-sm max-w-none dark:prose-invert",children:r?e(Zt,{children:r}):e("div",{children:"No markdown content available"})})}class Wi extends p{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("PDF View error:",e,t)}render(){return this.state.hasError?e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:t("div",{className:"flex flex-col items-center gap-4 p-8 max-w-md",children:[e(O,{title:"Failed to load PDF viewer",children:this.state.error?.message||"An unexpected error occurred"}),this.props.onClose&&e(v,{variant:"outline",onClick:this.props.onClose,children:"Close"})]})}):this.props.children}}function Gi({objectId:n,onClose:r}){const{client:i}=Et(),{data:a,error:s}=L(()=>i.store.objects.retrieve(n,"+text"),[n]);return s?e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:t("div",{className:"flex flex-col items-center gap-4 p-8 max-w-md",children:[e(O,{title:"Fetching document failed",children:s.message}),r&&e(v,{variant:"outline",onClick:r,children:"Close"})]})}):a?e(Wi,{onClose:r,children:e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:e(Ti,{object:a,children:e(Hi,{object:a,onClose:r})})})}):t("div",{className:"fixed inset-0 bg-background z-50 flex flex-col",children:[e("div",{className:"flex h-9 items-center justify-end shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:r&&e(v,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(it,{className:"size-4"})})}),e("div",{className:"flex-1 flex items-center justify-center",children:e("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"})})]})}function Hi({object:n,onClose:r}){const{count:i,pdfUrl:a,pdfUrlLoading:s}=Ii(),[l,c]=o(1),d=(()=>{if("document"===n.metadata?.type){const e=n.metadata,t=e.content_processor?.type;if("markdown"===t)return"markdown"}return"xml"})();return t(R,"xml"===d?{direction:"horizontal",className:"absolute inset-0",children:[e(U,{defaultSize:50,minSize:20,maxSize:80,className:"bg-muted",children:e(Di,{className:"h-full",currentPage:l,onChange:c})}),e(M,{className:"w-[4px] bg-border cursor-ew-resize"}),t(U,{defaultSize:50,minSize:20,className:"flex flex-col",children:[t("div",{className:"flex h-9 items-center justify-between shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:[e("div",{className:"flex items-center gap-x-2",children:e(Ui,{object:n})}),t("span",{className:"text-xs text-muted-foreground",children:["Page ",l," / ",i]}),e("div",{className:"flex items-center gap-x-2",children:!!r&&e(v,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(it,{className:"size-4"})})})]}),e("div",{className:"flex-1 overflow-auto px-2",children:e(Vi,{pageNumber:l,viewType:"xml"})})]})]}:{direction:"horizontal",className:"absolute inset-0",children:[e(U,{defaultSize:50,minSize:20,maxSize:80,className:"bg-muted",children:e(xi,{pdfUrl:a,pdfUrlLoading:s,pageCount:i,className:"h-full",currentPage:l,onChange:c})}),e(M,{className:"w-[4px] bg-border cursor-ew-resize"}),t(U,{defaultSize:50,minSize:20,className:"flex flex-col",children:[t("div",{className:"flex h-9 items-center justify-between shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:[e("div",{className:"flex items-center gap-x-2",children:e(Ui,{object:n})}),t("span",{className:"text-xs text-muted-foreground",children:["Page ",l," / ",i]}),e("div",{className:"flex items-center gap-x-2",children:!!r&&e(v,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(it,{className:"size-4"})})})]}),e("div",{className:"flex-1 overflow-auto px-2",children:e(Vi,{pageNumber:l,viewType:"markdown"})})]})]})}function Ji({object:n,url:r,source:i,className:a}){const{client:s}=Et(),[l,d]=o(1),[u,m]=o(r||""),[h,p]=o(!r),[f,g]=o(0),[y,b]=o(!1);c(()=>{if(r)return m(r),void p(!1);const e=i||n?.content?.source;e?(p(!0),s.files.getDownloadUrl(e).then(e=>{m(e.url)}).catch(e=>{console.error("Failed to get PDF URL:",e)}).finally(()=>{p(!1)})):p(!1)},[r,i,n?.content?.source,s]),c(()=>{const e=n?.metadata,t=e?.pages||e?.page_count||0;t>0&&g(t)},[n?.metadata]);const x=e=>{g(e)};return h?e("div",{className:"flex items-center justify-center h-full",children:e(V,{size:"lg"})}):u?y?t("div",{className:"fixed inset-0 bg-background z-50 flex flex-col overflow-hidden",children:[e("div",{className:"flex h-9 items-center justify-end shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:e(v,{variant:"ghost",size:"xs",onClick:()=>b(!1),alt:"Close fullscreen",children:e(it,{className:"size-4"})})}),e(xi,{pdfUrl:u,pdfUrlLoading:h,pageCount:f||100,currentPage:l,onChange:d,onPageCountChange:x,className:"flex-1 min-h-0"})]}):e("div",{className:"relative h-full flex flex-col",children:e(xi,{pdfUrl:u,pdfUrlLoading:h,pageCount:f||100,currentPage:l,onChange:d,onPageCountChange:x,className:a,compact:!0,headerExtra:e($,{description:"Fullscreen",placement:"bottom",size:"xs",children:e("button",{className:"p-1 rounded cursor-pointer transition-colors text-muted-foreground hover:text-foreground hover:bg-muted",onClick:()=>b(!0),children:e(at,{className:"size-4"})})})})}):e("div",{className:"flex items-center justify-center h-full text-muted",children:"No PDF available"})}const Yi=131072;const Zi=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/svg+xml"],Qi=["video/mp4","video/webm"],Xi="h-[calc(100vh-208px)]",ea="h-[calc(100vh-228px)]",ta="h-[calc(100vh-218px)]",na="max-h-[calc(100vh-268px)]";function ra(e){return e===Vt.created||e===Vt.processing}function ia(e){return e.metadata?.content_processor?.type}var aa;function sa({object:r,loadText:i,refetch:a}){const s=y(),l=async(e,t)=>{try{await navigator.clipboard.writeText(e),s({status:"success",title:("text"===t?"Content":"Properties")+" copied",description:`Successfully copied ${t} to clipboard`,duration:2e3})}catch(e){console.error(`Failed to copy ${t}:`,e),s({status:"error",title:"Copy failed",description:`Failed to copy ${t} to clipboard`,duration:5e3})}};return e(n,{children:t(R,{direction:"horizontal",className:Xi,children:[e(U,{className:"min-w-[100px]",children:e(la,{object:r,refetch:a??(()=>Promise.resolve()),handleCopyContent:l})}),e(M,{withHandle:!0}),e(U,{className:"min-w-[100px]",children:e(oa,{object:r,loadText:i??!1,handleCopyContent:l,refetch:a})})]})})}function la({object:r,refetch:i,handleCopyContent:a}){const[s,l]=o(!1),[c,d]=o(!1);return t(n,{children:[t("div",{className:"flex justify-between items-center px-2",children:[t("div",{className:"flex items-center gap-1 bg-muted mb-2 p-1 rounded",children:[e(v,{variant:""+(s?"ghost":"primary"),size:"sm",alt:"Preview properties",onClick:()=>l(!s),children:"Properties"}),e(v,{variant:""+(s?"primary":"ghost"),size:"sm",alt:"View in JSON format",onClick:()=>l(!s),children:"JSON"})]}),t("div",{className:"flex items-center gap-2",children:[r.properties&&e(v,{variant:"ghost",size:"sm",title:"Copy properties",onClick:()=>a(JSON.stringify(r.properties,null,2),"properties"),children:e(lt,{className:"size-4"})}),e(v,{variant:"ghost",size:"sm",onClick:()=>{d(!0)},title:"Edit properties",className:"flex items-center gap-2",children:e(ot,{className:"size-4"})})]})]}),r.properties?e("div",{className:`${ea} overflow-auto px-2`,children:e(tn,{value:r.properties,viewCode:s})}):e("div",{className:`${ea} overflow-auto px-2`,children:e("div",{children:"No properties defined"})}),e(li,{isOpen:c,onClose:()=>{d(!1)},object:r,refetch:i})]})}function oa({object:n,loadText:r,handleCopyContent:i,refetch:a}){const s=n?.metadata?.type===Kt.Image,l=n?.metadata?.type===Kt.Video,d="application/pdf"===n?.content?.type,u=!!n?.content?.type&&Zr(n.content.type),p=ra(n?.status),f=n.metadata,g=f?.renditions?.find(e=>e.name===Ut),[y,b]=o(l?aa.Video:s?aa.Image:aa.Text),{fullText:x,displayText:w,isLoading:N,isCropped:k}=function(e,t,n=!1){const{store:r}=Et(),[i,a]=o(t),[s,l]=o(()=>t&&t.length>Yi?t.substring(0,Yi):t),[d,u]=o(!1),[m,p]=o(()=>!!t&&t.length>Yi),f=h(()=>{u(!0),r.objects.getObjectText(e).then(e=>{a(e.text),e.text.length>Yi?(l(e.text.substring(0,Yi)),p(!0)):(l(e.text),p(!1))}).catch(e=>{console.error("Failed to load text",e)}).finally(()=>{u(!1)})},[e,r]);return c(()=>{n&&!s&&f()},[n,s,f]),{fullText:i,displayText:s,isLoading:d,isCropped:m,loadText:f}}(n.id,n.text,r),C=(d||u)&&p,{progress:S,status:P,outputFormat:j,isComplete:_}=function(e,t){const{client:n}=Et(),[r,i]=o(),[a,s]=o(),[l,d]=o(),[u,m]=o(!1);return c(()=>{if(!t)return;let r=!1;return function t(){r||n.objects.analyze(e).getStatus().then(e=>{i(e.progress),s(e.status),d(e.output_format??e.progress?.output_format),e.status===Rt.RUNNING?r||setTimeout(t,2e3):m(!0)}).catch(()=>{r||setTimeout(t,1e4)})}(),()=>{r=!0}},[t,e,n]),{progress:r,status:a,outputFormat:l,isComplete:u}}(n.id,C),{pdfUrl:T,isConverting:I,error:A,triggerConversion:z}=function(e,t){const{client:n}=Et(),[r,i]=o(),[a,s]=o(!1),[l,c]=o(),d=h(async()=>{if(!t||a)return;s(!0),c(void 0);const r=async t=>{try{const a=await n.objects.getRendition(e,{format:Mt.pdf,generate_if_missing:t,sign_url:!0,block_on_generation:!1});"generating"===a.status?setTimeout(()=>r(!1),5e3):"found"===a.status&&a.renditions?.length?(i(a.renditions[0]),s(!1)):"failed"===a.status&&(c("PDF conversion failed"),s(!1))}catch(e){console.error("Failed to convert Office document to PDF:",e),c("Failed to convert to PDF"),s(!1)}};await r(!0)},[e,t,a,n]);return{pdfUrl:r,isConverting:a,error:l,triggerConversion:d}}(n.id,u);c(()=>{_&&P===Rt.COMPLETED&&a?.()},[_,P,a]);const E=(d||u)&&p&&!_&&P===Rt.RUNNING,F=m(null);return t("div",{className:"flex flex-col h-full",children:[t("div",{className:"flex justify-between items-center px-2 shrink-0",children:[t("div",{className:"flex items-center gap-2 mb-2",children:[t("div",{className:"flex items-center gap-1 bg-muted p-1 rounded",children:[s&&e(v,{variant:y===aa.Image?"primary":"ghost",size:"sm",alt:"View Image",onClick:()=>b(aa.Image),children:"Image"}),l&&e(v,{variant:y===aa.Video?"primary":"ghost",size:"sm",alt:"View Video",onClick:()=>b(aa.Video),children:"Video"}),e(v,{variant:y===aa.Text?"primary":"ghost",size:"sm",alt:"View Text",onClick:()=>b(aa.Text),children:"Text"}),d&&e(v,{variant:y===aa.Pdf?"primary":"ghost",size:"sm",alt:"View PDF",onClick:()=>b(aa.Pdf),children:"PDF"}),u&&e(v,{variant:y===aa.Pdf?"primary":"ghost",size:"sm",alt:"View as PDF",onClick:()=>{b(aa.Pdf),g||T||I||z()},disabled:I,children:I?e(V,{size:"sm"}):"PDF"})]}),e(ha,{object:n})]}),y===aa.Text&&!E&&e(ca,{object:n,text:w,fullText:x,handleCopyContent:i,textContainerRef:F}),y===aa.Pdf&&u&&(g||T)&&e(pa,{object:n,pdfRendition:g,officePdfUrl:T})]}),y===aa.Image&&e(ua,{object:n}),y===aa.Video&&e(ma,{object:n}),y===aa.Pdf&&d&&e(fa,{object:n}),y===aa.Pdf&&u&&e(ga,{pdfRendition:g,officePdfUrl:T,officePdfConverting:I,officePdfError:A,onConvert:z}),y===aa.Text&&E&&e(ya,{progress:S,status:P,outputFormat:j}),y===aa.Text&&!E&&N&&e("div",{className:"flex justify-center items-center flex-1",children:e(V,{size:"lg"})}),y===aa.Text&&!E&&!N&&e(da,{object:n,text:w,isTextCropped:k,textContainerRef:F})]})}function ca({object:r,text:i,fullText:a,handleCopyContent:s,textContainerRef:l}){const{client:c}=Et(),d=y(),[u,m]=o(null),[h,p]=o(!1),f=r.content,g=f&&f.type&&"text/markdown"===f.type,b=ia(r),x=async e=>{if(!u){m(e),d({status:"info",title:`Preparing ${e.toUpperCase()}`,description:"Fetching your document...",duration:2e3});try{const t=await c.objects.getRendition(r.id,{format:e,generate_if_missing:!0,sign_url:!0});if("generating"===t.status)return d({status:"info",title:"Generating document",description:`Please wait while we prepare your ${e.toUpperCase()} file...`,duration:5e3}),void setTimeout(()=>x(e),3e3);if("failed"===t.status)throw new Error("Document generation failed");if(t.renditions&&t.renditions.length>0){const n=t.renditions[0];if("pdf"===e);else{const t=document.createElement("a");t.href=n,t.download=`${r.name||"document"}.${e}`,document.body.appendChild(t),t.click(),document.body.removeChild(t),d({status:"success",title:"Document exported",description:`Successfully exported to ${e.toUpperCase()} format`,duration:2e3})}}}catch(t){console.error(`Failed to export document as ${e}:`,t),d({status:"error",title:"Export failed",description:`Failed to export document to ${e.toUpperCase()} format`,duration:5e3})}finally{m(null)}}};return t(n,{children:[e("div",{className:"h-[41px] text-lg font-semibold flex justify-between items-center px-2",children:t("div",{className:"flex items-center gap-2",children:[a&&t(n,{children:[e(v,{variant:"ghost",size:"sm",title:"Copy text",onClick:()=>s(a,"text"),children:e(lt,{className:"size-4"})}),e(v,{variant:"ghost",size:"sm",title:"Download text",onClick:e=>{if(e.preventDefault(),e.stopPropagation(),!a)return;let t="txt",n="text/plain";"xml"===b?(t="xml",n="text/xml"):("markdown"===b||g)&&(t="md",n="text/markdown");const i=new Blob([a],{type:n}),s=URL.createObjectURL(i),l=`${r.name||"document"}.${t}`,o=document.createElement("a");o.href=s,o.download=l,o.style.display="none",setTimeout(()=>{o.click(),URL.revokeObjectURL(s)},0)},children:e(rt,{className:"size-4"})})]}),g&&i&&t(n,{children:[t(v,{variant:"ghost",size:"sm",onClick:()=>x("docx"),disabled:null!==u,className:"flex items-center gap-2",children:["docx"===u?e(V,{size:"sm"}):e(rt,{className:"size-4"}),"DOCX"]}),t(v,{variant:"ghost",size:"sm",onClick:()=>{l.current?p(!0):d({status:"error",title:"PDF export failed",description:"No content available to export",duration:3e3})},className:"flex items-center gap-2",children:[e(rt,{className:"size-4"}),"PDF"]})]})]})}),t(q,{isOpen:h,onClose:()=>p(!1),children:[e(B,{children:"Export document as PDF"}),t(W,{children:[e("p",{className:"mb-2",children:"This will open your browser's print dialog with the current document content."}),e("p",{className:"text-sm text-muted",children:'To save a PDF, choose "Save as PDF" or a similar option in the print dialog.'})]}),t(G,{align:"right",children:[e(v,{variant:"ghost",size:"sm",onClick:()=>p(!1),children:"Cancel"}),e(v,{size:"sm",onClick:()=>{if(!l.current)return void d({status:"error",title:"PDF export failed",description:"No content available to export",duration:3e3});const e=`${r.name||r.id||"document"} - content`;ni(l.current,e)?(d({status:"success",title:"PDF export ready",description:"Use your browser's Print dialog to save as PDF",duration:4e3}),p(!1)):d({status:"error",title:"PDF export failed",description:"Unable to open print preview",duration:4e3})},children:"Open print dialog"})]})]})]})}!function(e){e.Text="text",e.Image="image",e.Video="video",e.Pdf="pdf"}(aa||(aa={}));const da=f(({object:r,text:i,isTextCropped:a,textContainerRef:s})=>{const l=r.content,o=ra(r?.status),c="xml"===ia(r),d=l&&l.type&&("text/markdown"===l.type||"text/plain"===l.type),u=!c&&(d||function(e){return!!e&&(e.includes("\n# ")||e.includes("\n## ")||e.includes("\n### ")||e.includes("\n* ")||e.includes("\n- ")||e.includes("\n+ ")||e.includes(")}(i));return i?t(n,{children:[a&&e("div",{className:"px-2 py-2 bg-attention/10 border-l-4 border-attention mx-2 mb-2 rounded",children:t("div",{className:"flex items-center gap-2 text-attention",children:[e(st,{className:"size-4"}),e("span",{className:"text-sm font-semibold",children:"Showing first 128K characters only"})]})}),e("div",{className:`max-w-7xl px-2 ${ta} overflow-auto`,ref:s,children:c?e("div",{className:"px-4 py-2",children:e(Xt,{xml:i,collapsible:!0})}):u?e("div",{className:"vprose prose-sm p-1",children:e(Zt,{components:{a:({node:t,...n})=>{const r=n.href||"";return r.includes("/store/objects/")?e(Jt,{topLevelNav:!0,href:r,className:"text-info",children:n.children}):e("a",{...n,target:"_blank",rel:"noopener noreferrer"})},p:({node:t,...n})=>e("p",{...n,className:"my-0"}),pre:({node:t,...n})=>e("pre",{...n,className:"my-2 p-2 rounded"}),code:({node:t,className:n,children:r,...i})=>{const a=/language-(\w+)/.exec(n||"");return e("code",{...i,className:a?"text-muted":"px-1.5 py-0.5 rounded",children:r})},h1:({node:t,...n})=>e("h1",{...n,className:"font-bold text-2xl my-2"}),h2:({node:t,...n})=>e("h2",{...n,className:"font-bold text-xl my-2"}),h3:({node:t,...n})=>e("h3",{...n,className:"font-bold text-lg my-2"}),li:({node:t,...n})=>e("li",{...n})},children:i})}):e("pre",{className:"text-wrap bg-muted text-muted p-2",children:i})})]}):e("div",{className:"px-2",children:e("div",{children:o?"Extracting content...":"No content"})})});function ua({object:t}){const{client:n}=Et(),[r,i]=o(),a=t.content,s=t.metadata&&t.metadata.type===Kt.Image;return c(()=>{if(s){(async()=>{const e=a?.type&&Zi.includes(a.type);try{const r=await n.objects.getRendition(t.id,{format:Ot.jpeg,generate_if_missing:!1,sign_url:!0});if("found"===r.status&&r.renditions?.length)i(r.renditions[0]);else if(e){const e=await n.files.getDownloadUrl(t.content.source);i(e.url)}}catch(r){if(e){const e=await n.files.getDownloadUrl(t.content.source);i(e.url)}}})()}},[]),e("div",{className:"mb-4 px-2",children:r?e("img",{src:r,alt:t.name,className:"w-full object-contain"}):e(V,{size:"md"})})}function ma({object:n}){const{client:r}=Et(),[i,a]=o(),[s,l]=o(),[d,u]=o(!0),m=n.content,h=n.metadata?.type===Kt.Video,p=n.metadata,f=p?.renditions||[],g=f.find(e=>"video/mp4"===e.content.type)||f.find(e=>"video/webm"===e.content.type),y=m?.type&&Qi.includes(m.type),b=f.find(e=>e.name===qt);return c(()=>{(async()=>{if(b?.content?.source)try{const e=await r.files.getDownloadUrl(b.content.source);l(e.url)}catch(e){console.error("Failed to load poster image",e)}})()},[b,r]),c(()=>{if(h&&(g?.content?.source||y)){(async()=>{try{let e;g?.content?.source?e=await r.files.getDownloadUrl(g.content.source):y&&m?.source&&(e=await r.files.getDownloadUrl(m.source)),e&&a(e.url)}catch(e){console.error("Failed to get video URL",e)}finally{u(!1)}})()}else u(!1)},[h,g,y,m?.source,r]),e("div",{className:"mb-4 px-2",children:g||y?d?e("div",{className:"flex justify-center items-center h-[400px]",children:e(V,{size:"md"})}):i?e("video",{src:i,poster:s,controls:!0,className:`w-full ${na} object-contain`,children:"Your browser does not support the video tag."}):e("div",{className:"flex justify-center items-center h-[400px] text-muted",children:"Failed to load video"}):e("div",{className:"flex justify-center items-center h-[400px] text-muted",children:t("div",{className:"text-center",children:[e("p",{children:"No web-compatible video rendition available"}),e("p",{className:"text-sm mt-2",children:"MP4 or WebM format required"})]})})})}function ha({object:r}){const[i,a]=o(!1),s=ia(r);return"xml"===s||"markdown"===s?t(n,{children:[e(v,{variant:"ghost",size:"sm",onClick:()=>a(!0),title:"Side by side view",children:e(ct,{className:"size-4"})}),i&&e(K,{children:e(Gi,{objectId:r.id,onClose:()=>a(!1)})})]}):null}function pa({object:t,pdfRendition:n,officePdfUrl:r}){const{client:i}=Et(),a=y(),[s,l]=o(!1);return e("div",{className:"flex items-center gap-2",children:e(v,{variant:"ghost",size:"sm",onClick:async()=>{l(!0);try{let e=r;if(!e&&n?.content?.source){e=(await i.files.getDownloadUrl(n.content.source,`${t.name||"document"}.pdf`,"attachment")).url}e&&window.open(e,"_blank")}catch(e){console.error("Failed to download PDF:",e),a({status:"error",title:"Download failed",description:"Failed to download the PDF file",duration:5e3})}finally{l(!1)}},disabled:s,title:"Download PDF",children:s?e(V,{size:"sm"}):e(rt,{className:"size-4"})})})}function fa({object:t}){return e("div",{className:ta,children:e(Ji,{object:t,className:"h-full"})})}function ga({pdfRendition:n,officePdfUrl:r,officePdfConverting:i,officePdfError:a,onConvert:s}){return i?t("div",{className:"flex flex-col justify-center items-center flex-1 gap-2",children:[e(V,{size:"lg"}),e("span",{className:"text-muted",children:"Converting to PDF..."})]}):a?t("div",{className:"flex flex-col justify-center items-center flex-1 gap-2 text-destructive",children:[e(st,{className:"size-8"}),e("span",{children:a})]}):e("div",n?.content?.source?{className:ta,children:e(Ji,{source:n.content.source,className:"h-full"})}:r?{className:ta,children:e(Ji,{url:r,className:"h-full"})}:{className:"flex flex-col justify-center items-center flex-1 gap-2",children:e(v,{onClick:s,children:"Convert to PDF"})})}function ya({progress:r,status:i,outputFormat:a}){const s=ri(i),l=ii(i),o="xml"===a,c=null==r?.percent||isNaN(r.percent)?0:r.percent;return t("div",{className:"px-4 py-4",children:[r&&t("div",{className:"space-y-2",children:[t("div",{className:"flex flex-col gap-1",children:[e(ba,{name:o?"Analyze Layouts":"Analyze Page",progress:r.pages}),o&&t(n,{children:[e(ba,{name:"Extract Tables",progress:r.tables}),e(ba,{name:"Describe Images",progress:r.images}),e(ba,{name:"Process Visually",progress:r.visuals})]})]}),t("div",{className:"pt-2 text-sm text-muted",children:["Progress: ",c,"%",e("span",{className:"px-2",children:"•"}),e("span",{className:s,children:l}),r.started_at&&t(n,{children:[e("span",{className:"px-2",children:"•"}),t("span",{children:[((Date.now()-r.started_at)/1e3).toFixed(0)," sec. elapsed"]})]})]}),e(nn,{percent:c})]}),!r&&t("div",{className:"flex items-center gap-2 text-muted",children:[e(V,{size:"sm"}),e("span",{children:"Loading processing status..."})]})]})}function ba({name:e,progress:n}){return t("div",{className:"flex gap-2 text-sm",children:[t("span",{className:"text-muted min-w-36",children:[e,":"]}),t("span",{children:[n.processed," of ",n.total]})]})}function va({isLoading:n=!1,counts:r=6}){return n?e("div",{className:"flex flex-wrap gap-2 justify-between",children:Array(r).fill(0).map((n,r)=>e("div",{className:"w-[15vw] animate-pulse",children:t(H,{className:"relative flex flex-col border h-fit",children:[e("div",{className:"h-48 bg-muted rounded-t-xl flex items-center justify-center text-muted",children:" "}),e(J,{className:"bg-muted h-[2px]"}),t(Y,{className:"p-2 flex flex-col",children:[t("div",{className:"flex flex-col overflow-hidden",children:[e("div",{className:"h-5 bg-muted rounded w-3/4 mb-2"}),e("div",{className:"h-4 bg-muted rounded w-1/2"})]}),e("div",{className:"text-xs text-muted w-full flex justify-end mt-2",children:e("div",{className:"h-3 bg-muted rounded w-1/4"})})]})]})},r))}):null}function xa({selection:n,document:r,onSelectionChange:i,onRowClick:a,previewObject:s,selectedObject:l}){const{client:d}=Et(),[u,m]=o(void 0),[h,p]=o(void 0),[f,g]=o(void 0);return c(()=>{r?.content&&ti(d,r,m,p,g)},[r]),t(H,{className:"relative flex flex-col border h-fit "+(l?.id===r.id?"border-attention border-4":""),onClick:()=>a&&a(r),children:[n&&e("div",{className:"absolute top-2 left-2 z-10 flex flex-col items-center gap-1",children:e("input",{checked:n.isSelected(r.id),type:"checkbox",onChange:e=>{e.stopPropagation(),i(r,e)},onClick:e=>e.stopPropagation()})}),e("div",{className:"absolute top-1 right-1 z-10 flex flex-col items-center",children:e(v,{variant:"ghost",size:"sm",title:"Preivew Object",onClick:e=>{e.stopPropagation(),s?.(r.id)},children:e(dt,{className:"size-4 "+("ready"===f?"text-muted":"text-white")})})}),u&&"ready"==f?e("img",{src:u,alt:h,className:"w-auto h-48 object-cover rounded-t-xl"}):e("div",{className:"h-48 bg-gray-700 rounded-t-xl flex items-center justify-center text-muted",children:f}),e(J,{className:"bg-gray-200 h-[2px]"}),t(Y,{className:"p-2 flex flex-col",children:[t("div",{className:"flex flex-col overflow-hidden",children:[e($,{placement:"top",description:r.properties?.title??r.name,children:e("h3",{className:"text-start font-medium leading-none truncate",children:r.properties?.title??r.name})}),r?.type?.name?e($,{placement:"bottom",size:"xs",description:r?.type?.name,children:e("p",{className:"text-start text-xs text-muted truncate",children:r?.type?.name})}):e("p",{className:"text-xs text-muted",children:" "})]}),r.score&&t("div",{className:"text-xs text-muted w-full flex justify-end",children:["Score: ",r.score.toFixed(4)??"-"]})]})]})}function wa(e){return`${e._id} (${e.count})`}function Na(e){return`${e.name} (${e.count})`}function ka({search:t,buckets:n,name:r,placeholder:i,className:a}){const s=t.getFilterValue(r),l=n?.find(e=>JSON.stringify(e._id)===JSON.stringify(s));return e(Z,{filterBy:"_id",className:a,isClearable:!0,optionLabel:wa,options:n,value:l,onChange:e=>{t.setFilterValue(r,e?._id)},by:"_id",placeholder:i})}function Ca({search:t,name:n,placeholder:r,className:i}){const[a,s]=o([]);return c(()=>{t.setFilterValue(n,a)},[a]),e(Q,{className:i,value:a,onChange:s,placeholder:r})}function Sa(e){return`${e.name} (${e.count})`}function Pa({search:t,buckets:n,placeholder:r="Filter by Type",className:i}){const[a,s]=o([]),{typeRegistry:l}=Et(),d=t.getFilterValue("type");c(()=>{if(l){const e=n.map(e=>{let t;return null==e._id?(e._id="Document",t="Document"):(t=l.getTypeName(e._id),t||(console.warn("Content Object Type not found",e._id),t=e._id)),{...e,name:t}});e.sort((e,t)=>e.name.localeCompare(t.name)),s(e)}},[n,l]);const u=a?.find(e=>e._id===d);return e(Z,{filterBy:"name",className:i,isClearable:!0,optionLabel:Sa,options:a,value:u,onChange:e=>{t.setFilterValue("type",e?._id)},by:"_id",placeholder:r})}function ja({buckets:e,name:t,placeholder:n,type:r,multiple:i}){return function({buckets:e,name:t,placeholder:n,type:r="select",multiple:i=!1}){return{name:t,options:e.map(e=>({label:wa(e),value:e._id})),type:r,multiple:i,placeholder:`${n??`${t.charAt(0).toUpperCase()+t.slice(1)}`}`,allowCreate:!1}}({buckets:e,name:t,placeholder:n,type:r,multiple:i})}function _a({buckets:n,typeRegistry:r,type:i="select",multiple:a=!1}){const s=new Map;r||console.warn("Type names cannot be resolved"),n.forEach(e=>{let t,n=e._id;null==e._id?(n="Document",t="Document"):(t=r?.getTypeName(e._id),t||(console.warn("Content Object Type not found",e._id),t=e._id)),s.set(n,{name:t,count:e.count})});return{name:"types",placeholder:"Types",type:i,multiple:a,options:n.map(e=>{const t=e._id,n=t||"Document",r=s.get(n);return{value:t,label:r?`${r.name} (${r.count})`:`Unknown (${e.count})`}}),labelRenderer:n=>{const r=s.get(n);return r?t("div",{className:"w-full flex items-center",children:[e("span",{className:"text-sm truncate",children:r.name}),t("span",{className:"ml-2 text-xs",children:["(",r.count,")"]})]}):(console.warn(`Type data not found for ${n}`),n)},filterBy:(e,t)=>{const n=s.get(e);return n?n.name.toLowerCase().includes(t.toLowerCase()):(console.warn(`Type name not found for ${e}`),!1)}}}const Ta={},Ia={};function Aa(e){const{client:t}=Et();return L(()=>{let n=Ta[e];return n||(n=t.users.retrieve(e).then(e=>e),Ta[e]=n),n},[e])}function za(e){const{client:t}=Et();return L(()=>{let n=Ia[e];return n||(n=t.iam.groups.retrieve(e).then(e=>e),Ia[e]=n),n},[e])}function Ea(){return e("div",{className:"size-8"})}function Fa({showTitle:n=!1,size:r="md"}){return e(Va,{title:"System User",description:"The system user is used to initialize built-in objects.",children:t("div",{className:"flex gap-2 items-center",children:[e(X,{src:"/icon.svg",size:r}),n&&e("div",{className:"text-sm font-semibold pl-2",children:"System User"})]})})}function Da({accountId:r,showTitle:i=!1,size:a="md"}){const s=t(n,{children:[e("div",{children:"This user is used by robots like workflow workers."}),t("div",{className:"text-gray-800 dark:text-gray-500 text-sm",children:[e("span",{className:"font-semibold",children:"ID:"})," ",r]})]});return e(Va,{title:"Service Account",description:s,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(X,{src:"/cloud.svg",name:"SA",color:"bg-amber-500",className:"px-[5px] text-white",size:a}),i&&t("div",{className:"text-sm font-semibold pl-2 truncate",children:["Service Account : ",r]})]})})}function $a({title:t="Error",error:n,showTitle:r=!1,size:i="md"}){return e(Oa,{title:t,message:"string"==typeof n?n:n.message,color:"bg-red-500",showTitle:r,size:i})}function La({userRef:t,showTitle:n=!1,size:r="md"}){if(!t)return e(Oa,{title:"Unknown User",message:"User information is not available.",showTitle:n,size:r});const[i,a]=t?t.split(":"):["unknown"];switch(i){case Bt.User:return e(Ua,{userId:a,showTitle:n,size:r});case Bt.Group:return e(Ra,{userId:a,showTitle:n,size:r});case"system":return e(Fa,{showTitle:n,size:r});case Bt.ServiceAccount:case Bt.Agent:return e(Da,{accountId:a,showTitle:n,size:r});case Bt.ApiKey:return e(Ma,{keyId:a,size:r,showTitle:n});default:return e($a,{title:"Unknown User",error:`Invalid user ref type: ${i}`,showTitle:n,size:r})}}function Oa({title:n,message:r,color:i,size:a="md",showTitle:s=!1}){return e(Va,{title:n,description:r,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(X,{color:i,size:a}),s&&e("div",{className:"text-sm font-semibold pl-1",children:n})]})})}function Ra({userId:n,showTitle:r=!1,size:i="md"}){const{data:a,error:s}=za(n);if(s)return e($a,{title:"Failed to fetch group",error:s,showTitle:r,size:i});if(!a)return e(Ea,{});const l=t("div",{className:"space-y-1",children:[a.description&&e("div",{className:"text-sm",children:a.description}),t("div",{className:"text-xs text-muted-foreground",children:["Group ID: ",a.id]}),a.tags&&a.tags.length>0&&e("div",{className:"flex flex-wrap gap-1",children:a.tags.map(t=>e("span",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:t},t))})]});return e(Va,{title:a.name||"Unnamed Group",description:l,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(ut,{className:"size-6 text-indigo-500",size:i}),r&&e("div",{className:"text-sm font-semibold pl-2",children:a.name||"Unnamed Group"})]})})}function Ua({userId:n,showTitle:r=!1,size:i="md"}){const{data:a,error:s}=Aa(n);if(s)return e($a,{title:"Failed to fetch user",error:s,showTitle:r,size:i});if(!a)return e(Ea,{});const l=e("div",{className:"truncate",title:a.email,children:a.email});return e(Va,{title:a.name||a.email||a.username||"unknown",description:l,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(X,{src:a.picture,name:a.name,color:"bg-indigo-500",size:i}),r&&e("div",{className:"text-sm font-semibold pl-2",children:a.name||a.email||a.username||"unknown"})]})})}function Ma({keyId:n,showTitle:r=!1,size:i="md"}){const{client:a}=Et(),{data:s,error:l}=L(()=>a.apikeys.retrieve(n),[]);if(l)return e($a,{title:"Failed to fetch the apikey",error:l,showTitle:r,size:i});if(!s)return e(Ea,{});const o=e(X,{name:"PK",color:"bg-pink-500",size:i}),c=t(ee,{className:"dark:bg-gray-800 dark:text-gray-200 table-fixed w-full",children:[t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Key:"}),e("td",{className:"truncate max-w-0",children:s?.name})]}),t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Account:"}),e("td",{className:"truncate max-w-0",children:s?.account})]}),t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Project:"}),e("td",{className:"truncate max-w-0",children:s?.project.name})]})]});return e(Va,{title:"Private Key",description:c,children:t("div",{className:"flex flex-row items-center gap-2",children:[o,r&&e("div",{className:"text-sm font-semibold",children:s?.name||s?.account||s?.project.name||"unknown"})]})})}function Va({title:n,description:r,children:i}){return t(x,{hover:!0,children:[e(w,{className:"cursor-pointer flex items-center inline-block",children:e("div",{children:i})}),e(N,{align:"center",sideOffset:8,side:"right",children:t("div",{className:"flex flex-col gap-1 rounded-md shadow-md p-2",children:[e("div",{className:"text-md font-semibold",children:n}),r]})})]})}function Ka({buckets:n,name:r,placeholder:i}){return function({buckets:n,name:r,placeholder:i}){const a=n.map(e=>({value:e._id,label:`(${e.count})`}));return{name:r,placeholder:i||`${r.charAt(0).toUpperCase()+r.slice(1)}`,options:a,labelRenderer:r=>{if("Unknown User"===r||!r){const e=n.find(e=>e._id===r);return`Unknown User (${e?.count||0})`}const i=n.find(e=>e._id===r);return t("div",{className:"flex items-center w-full gap-2",children:[e("div",{className:"flex-1 min-w-0 flex items-center truncate",children:e(La,{userRef:r,showTitle:!0,size:"sm"})}),t("span",{className:"text-muted-foreground flex-shrink-0",children:["(",i?.count||0,")"]})]})}}}({buckets:n,name:r,placeholder:i})}function qa({search:t,buckets:n,placeholder:r="All Environments",className:i}){const{client:a}=Et(),[s,l]=o([]),d=t.getFilterValue("environment");c(()=>{if(a){const e=n.map(async e=>{let t;return await a.environments.retrieve(e._id).then(e=>{t=e.name}).catch(()=>{t=`${e._id} (deleted)`}),t||(t=e._id),{...e,name:t}});Promise.all(e).then(e=>{e.sort((e,t)=>e.name.localeCompare(t.name)),l(e)})}},[n,a]);const u=s?.find(e=>e._id===d);return e(Z,{filterBy:"name",className:i,isClearable:!0,optionLabel:Na,options:s,value:u,onChange:e=>{t.setFilterValue("environment",e?._id)},by:"_id",placeholder:r})}function Ba(n){const r=[];if(r.push({name:"run_ids",placeholder:"Run ID",type:"text",multiple:!1}),n.interactions){const i=function({buckets:n,name:r,placeholder:i}){return{name:r,placeholder:i,options:n.map(e=>({label:`(${e.count})`,value:e._id})),type:"select",labelRenderer:r=>{const i=n.find(e=>e._id===r),a=i?.name||r;let s="success";if(i?.status)switch(i.status){case Wt.published:s="success";break;case Wt.archived:s="destructive";break;default:s="attention"}const l=i?.version&&i?.status?`v${i.version} ${i.status}`:i?.status||(i?.version?`v${i.version}`:"");return t("div",{className:"w-full flex items-center justify-between",children:[t("div",{className:"flex flex-row flex-wrap items-center gap-2 min-w-0 flex-1",children:[e("span",{className:"text-sm truncate",children:a}),l&&e(b,{variant:s,className:"text-xs w-fit",children:l})]}),t("span",{className:"ml-2 text-xs shrink-0",children:["(",i?.count||0,")"]})]})},filterBy:(e,t)=>{const r=n.find(t=>t._id===e);return(r?.name||e).toLowerCase().includes(t.toLowerCase())}}}({buckets:n.interactions||[],name:"interaction",placeholder:"Interactions"});r.push(i)}if(n.environments){const i=function({buckets:n,name:r}){const i=n.map(e=>({label:`(${e.count})`,value:e._id}));return{name:r.charAt(0).toUpperCase()+r.slice(1),options:i,type:"select",labelRenderer:r=>{const i=n.find(e=>e._id===r);return t("div",{className:"w-full flex items-center",children:[e("span",{className:"text-sm truncate",children:i?.name||r}),t("span",{className:"ml-2 text-xs",children:["(",i?.count||0,")"]})]})},filterBy:(e,t)=>{const r=n.find(t=>t._id===e);return(r?.name||e).toLowerCase().includes(t.toLowerCase())}}}({buckets:n.environments||[],name:"environments"});r.push(i)}if(r.push({name:"tags",placeholder:"Tags",type:"stringList",multiple:!0}),n.models){const e=ja({buckets:n.models||[],name:"model"});r.push(e)}if(n.statuses){const e=ja({buckets:n.statuses||[],name:"status"});r.push(e)}if(n.finish_reason){const e=ja({buckets:n.finish_reason.map(e=>({...e,_id:null===e._id?"none":e._id})),name:"finish_reason",placeholder:"Finish Reason"});r.push(e)}if(n.created_by){const e=Ka({buckets:n.created_by||[],name:"created_by",placeholder:"Created By"});r.push(e)}r.push({name:"start",placeholder:"Date After",type:"date",multiple:!1});r.push({name:"end",placeholder:"Date Before",type:"date",multiple:!1});return r.push({name:"workflow_run_ids",placeholder:"Workflow Run ID",type:"text",multiple:!1}),r}function Wa(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,"run_ids"!==n&&"workflow_run_ids"!==n||Array.isArray(r)||(r=[r]),e.query[n]=r}}),e.search()):e.clearFilters(!0,!1)}}function Ga({facets:n,search:r}){const[i,a]=o([]),s=Ba(n),l=Wa(r);return t(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:[t("div",{className:"flex justify-between mb-1",children:[e(ne,{}),e(v,{onClick:()=>{r.search()},variant:"outline",title:"Refresh",children:e(mt,{className:"size-5"})})]}),t("div",{className:"flex gap-2 items-center",children:[e(re,{}),e(ie,{})]})]})}function Ha(e){const t=[];if(t.push({placeholder:"Workflow or Run ID",name:"name",type:"text",options:[]}),e.status){const n=ja({buckets:e.status||[],name:"status",placeholder:"Status"});t.push(n)}if(e.initiated_by){const n=Ka({buckets:e.initiated_by||[],name:"initiated_by",placeholder:"Initiated By"});t.push(n)}t.push({name:"start",placeholder:"Date After",type:"date",multiple:!1});return t.push({name:"end",placeholder:"Date Before",type:"date",multiple:!1}),t}function Ja(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,"name"===n?(e.query.search_term=r,e.query.name=r):e.query[n]=r}}),e.search()):e.clearFilters()}}function Ya({facets:n,search:r}){const[i,a]=o([]),s=Ha(n),l=Ja(r);return e(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ne,{}),e(re,{}),e(ie,{})]})})}function Za(e){const{typeRegistry:t}=Et(),n=[];if(n.push({placeholder:"ID",name:"id",type:"text",options:[]}),n.push({placeholder:"Name",name:"name",type:"text",options:[]}),e.type){const r=_a({buckets:e.type||[],typeRegistry:t,type:"select",multiple:!0});n.push(r)}if(e.status){const t=ja({buckets:e.status||[],name:"status",placeholder:"Status",type:"select",multiple:!0});n.push(t)}return e.tags&&n.push({name:"tags",placeholder:"Tags",type:"stringList",options:e.tags.map(e=>({label:e,value:e}))}),n.push({name:"created_at",placeholder:"Created Date",type:"date",multiple:!0,options:[]}),n.push({name:"updated_at",placeholder:"Updated Date",type:"date",multiple:!0,options:[]}),n}function Qa(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;if("date"===t.type&&t.multiple){if(Array.isArray(t.value)&&t.value.length>0)if(1===t.value.length){const e="object"==typeof t.value[0]?t.value[0].value:t.value[0];r={gte:e,lte:e}}else if(2===t.value.length){r={gte:"object"==typeof t.value[0]?t.value[0].value:t.value[0],lte:"object"==typeof t.value[1]?t.value[1].value:t.value[1]}}}else if(t.multiple)if(Array.isArray(t.value))r=t.value.map(e=>"object"==typeof e&&e.value?e.value:e);else{r=["object"==typeof t.value&&t.value.value?t.value.value:t.value]}else r=Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value;"name"===n?e.query.name=r:"id"===n?e.query.id=r:e.query[n]=r}}),e.search()):e.clearFilters()}}function Xa({facets:n,search:r}){const[i,a]=o([]),s=Za(n),l=Qa(r);return e(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ne,{}),e(re,{}),e(ie,{})]})})}function es(e){const t=[];t.push({name:"name",placeholder:"Name",type:"text",multiple:!1});t.push({name:"prompt",placeholder:"Prompt Name",type:"text",multiple:!1});t.push({name:"model",placeholder:"Model",type:"text",multiple:!1});return t.push({name:"tags",placeholder:"Tags",type:"stringList",multiple:!0}),t}function ts(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search(!0)):e.clearFilters(!0,!0)}}function ns({facets:n,search:r}){const[i,a]=o([]),s=es(),l=ts(r);return e(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ne,{}),e(re,{}),e(ie,{})]})})}function rs(e){const t=[];if(t.push({name:"name",placeholder:"Name",type:"text",multiple:!1}),e.role&&e.role.length>0){const n={name:"role",placeholder:"Role",type:"select",options:e.role.map(e=>({label:e._id,value:e._id,count:e.count}))};t.push(n)}return t}function is(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search()):e.clearFilters(!0,!1)}}function as({facets:n,search:r}){const[i,a]=o([]),s=rs(n),l=is(r);return e(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ne,{}),e(re,{}),e(ie,{})]})})}function ss(e){const{typeRegistry:t}=Et(),n=[];if(n.push({name:"name",placeholder:"Name",type:"text",multiple:!1}),t){const e=t.types.map(e=>({label:e.name,value:e.id})),r={name:"types",placeholder:"Type",type:"select",multiple:!0,options:e,filterBy:(t,n)=>{const r=e.find(e=>e.value===t);return r?.label?.toLowerCase().includes(n.toLowerCase())??!1}};n.push(r)}return n}function ls(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search()):e.clearFilters(!0)}}function os({facets:n,search:r}){const[i,a]=o([]),s=ss(),l=ls(r);return e(te,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ne,{}),e(re,{}),e(ie,{})]})})}class cs{object;objects;setState;collectionId;singleSelection=!1;constructor(e,t,n,r){this.object=e,this.objects=n,this.setState=r,this.singleSelection=0===Object.keys(this.objects).length,this.collectionId=t}isSingleSelection(){return this.singleSelection}hasSelection(){return void 0!==this.object||0!==this.size()}size(){return Object.keys(this.objects).length}getObjectIds(){return Object.keys(this.objects)}getObjectId(){return this.object?.id}clone(){return new cs(this.object,this.collectionId,this.objects,this.setState)}add(e){this.objects[e.id]=e,this.singleSelection=0===Object.keys(this.objects).length,this.setState(this.clone())}remove(e){delete this.objects[e],this.singleSelection=0===Object.keys(this.objects).length,this.setState(this.clone())}addAll(e){for(const t of e)this.objects[t.id]=t;this.setState(this.clone())}isSelected(e){return void 0!==this.objects[e]}removeAll(){this.objects={},this.singleSelection=!0,this.setState(this.clone())}}const ds=d(void 0);function us(){const e=u(ds);if(!e)throw new Error("useObjectSelection must be used within a ObjectSelectionProvider");return e}function ms(){return u(ds)}function hs({value:t,collectionId:n,children:r}){const[i,a]=o();return c(()=>{const e=new cs(t,n,{},a);a(e)},[t]),i&&e(ds.Provider,{value:i,children:r})}un.extend(vn),un.extend(bn);const ps={string(t,n){let r=[];if(t){const e=t.get("slice");e&&r.push(t=>t.slice(parseInt(e)));const n=t.get("max_length");n&&r.push(e=>e.slice(0,parseInt(n))),t.has("upper")&&r.push(e=>e.toUpperCase()),t.has("lower")&&r.push(e=>e.toLowerCase()),t.has("capitalize")&&r.push(e=>e[0].toUpperCase()+e.substring(1)),t.has("ellipsis")&&r.push(e=>e+"...")}return(t,n)=>{let i;if(t){if(i=String(t),r.length>0)for(const e of r)i=e(i)}else i="";return e("td",{children:i},n)}},fileSize:(t,n)=>(t,n)=>{let r="";if(t){const e=Number(t);if(isNaN(e))r=String(t);else{const t=["Bytes","KB","MB","GB","TB"];if(0===e)r="0 Bytes";else{const n=Math.floor(Math.log(e)/Math.log(1024));r=`${(e/Math.pow(1024,n)).toFixed(2)} ${t[n]}`}}}return e("td",{children:r},n)},number(t,n){let r,i;t&&(r=t.get("currency")||void 0,i=t.get("decimals")||void 0);const a=i?parseInt(i):2;return(t,n)=>{let i=new Intl.NumberFormat("en-US",{style:r?"currency":"decimal",currency:r,maximumFractionDigits:a}).format(t);return e("td",{children:i},n)}},objectId(n,r){let i=[],a=!1;if(n){const e=n.get("slice");e&&(a=!0,i.push(t=>t.slice(parseInt(e))))}return(n,s)=>{const l=i.reduce((e,t)=>t(e),n.id);return t("td",{className:"flex justify-between items-center gap-2",children:[a?"~":"",l,e(v,{variant:"ghost",alt:"Preview Object",onClick:e=>{e.stopPropagation(),r?.(n.id)},children:e(dt,{className:"size-4"})})]},s)}},objectName(t,n){let r="title";return t&&(r=t.get("title")||"title"),(t,n)=>e("td",{children:t.properties?.[r]||t.name||Ur(t.id)},n)},objectLink(n,r){const i=[];return i.push(e=>e.slice(-7)),(n,a)=>{const s=i.reduce((e,t)=>t(e),n.id);return t("td",{className:"flex justify-between items-center gap-2 max-w-48",children:["~",s,e(v,{variant:"ghost",alt:"Preview Object",onClick:e=>{e.stopPropagation(),r?.(n.id)},children:e(dt,{className:"size-4"})})]},a)}},typeLink:(t,n)=>(t,n)=>e("td",{children:t?.name||"n/a"},n),date(t,n){let r="format",i="LLL";if(t){const e=t.get("localized");if(e)i=e;else{const e=t.get("relative");e&&(r=e,i=void 0)}}return(t,n)=>e("td",{children:un(t)[r](i)},n)}},fs=ps.string();function gs(e,t){let n=e;if(!n)return;if(!t.length)return n;const r=t.length-1;for(let e=0;e<r;e++)if(n=n[t[e]],!n)return;return n[t[r]]}function ys(e){return e&&"."!==e?e.split("."):[]}class bs{layout;renderer=fs;path;fallbackPath;previewObject;constructor(e,t){if(this.layout=e,this.path=ys(e.field||""),this.fallbackPath=e.fallback?ys(e.fallback):void 0,this.previewObject=t,e.render)this.renderer=(e,t)=>null;else{const t=e.type||"string",n=t.indexOf("?");if(n>0){const e=t.substring(0,n),r=new URLSearchParams(t.substring(n+1));this.renderer=ps[e](r)}else this.renderer=ps[t]()}}get name(){return this.layout.name}resolveValue(e){let t=gs(e,this.path);return void 0===t&&this.fallbackPath&&(t=gs(e,this.fallbackPath)),void 0===t&&(t=this.layout.default),t}render(t,n){if(this.layout.render)return e("td",{className:"whitespace-nowrap px-3 py-4 text-sm",children:this.layout.render(t)},n);const r=this.layout.type||"string",i=r.indexOf("?")>0?r.substring(0,r.indexOf("?")):r;if(("objectId"===i||"objectLink"===i)&&this.previewObject){const e=r.indexOf("?"),a=e>0?new URLSearchParams(r.substring(e+1)):void 0;return ps[i](a,e=>{this.previewObject(t.id)})(t,n)}return this.renderer(this.resolveValue(t),n)}}function vs({objects:n,selection:r,isLoading:i,columns:a,onRowClick:s,selectedObject:l,toggleAll:o,onSelectionChange:c}){return t(ee,{className:"w-full border-t",children:[e("thead",{children:t("tr",{children:[r&&e("th",{children:e("input",{type:"checkbox",onChange:o})}),a.map(t=>e("th",{children:t.name},t.name))]})}),t(ae,{isLoading:i,columns:a.length+1,children:[n?.map(n=>t("tr",{className:"cursor-pointer hover:bg-muted group "+(l?.id===n.id?"bg-muted":""),onClick:()=>{s&&s(n)},children:[r&&e("td",{onClick:e=>e.stopPropagation(),children:e("input",{checked:r.isSelected(n.id),type:"checkbox",className:""+(r.isSelected(n.id)?"":"hidden group-hover:block"),onChange:e=>c(n,e)})}),a.map((e,t)=>e.render(n,t))]},n.id)),0===n.length&&e("tr",{children:e("td",{colSpan:a.length+(r?1:0),className:"text-center",children:"No objects. Just drag and drop documents or images here to create content objects."})})]})]})}function xs({objects:r,selection:i,isLoading:a,onSelectionChange:s,onRowClick:l,previewObject:o,selectedObject:c}){return t(n,{children:[e(va,{isLoading:a}),e("div",{className:"w-full gap-2 grid lg:grid-cols-6",children:r.map(t=>e(xa,{document:t,selection:i,onSelectionChange:s,onRowClick:l,previewObject:o,selectedObject:c},t.id))})]})}class ws{client;limit;collectionId;facets=new se({});result=new se({objects:[],isLoading:!1});facetSpecs=[];query={};constructor(e,t=100){this.client=e,this.limit=t}withFacets(e){return this.facetSpecs=e,this}get objects(){return this.result.value.objects}get error(){return this.result.value.error}get isRunning(){return this.result.value.isLoading}get hasMore(){return this.result.value.hasMore||!1}getFilterValue(e){return this.query[e]}setFilterValue(e,t){this.query[e]=t,this.search()}setDefaultKeys(e){}clearFilters(e=!0){const{parent:t,full_text:n,vector:r,weights:i,score_aggregation:a,dynamic_scaling:s,limit:l,all_revisions:o}=this.query;this.query={parent:t,...void 0!==n&&{full_text:n},...void 0!==r&&{vector:r},...void 0!==i&&{weights:i},...void 0!==a&&{score_aggregation:a},...void 0!==s&&{dynamic_scaling:s},...void 0!==o&&{all_revisions:o},...void 0!==l&&{limit:l}},e&&this.search()}getFacetBuckets(e){return this.facets.value[e]?.buckets||[]}resetFacets(){this.query={}}reset(e=!1){this.result.value={objects:[],isLoading:e,hasMore:!0}}_updateRunningState(e){const t=this.result.value;this.result.value={objects:t.objects,isLoading:e,error:t.error,hasMore:t.hasMore}}_searchRequest(e,t,n,r=!0){const i={limit:t,offset:n,query:e,facets:r?this.facetSpecs:void 0};return this.collectionId?this.client.collections.searchMembers(this.collectionId,i):this.client.objects.search(i)}_facetsRequest(){const e={facets:this.facetSpecs,query:this.query};return this.collectionId?this.client.collections.computeFacets(this.collectionId,e):this.client.objects.computeFacets(e)}computeFacets(e){this._facetsRequest().then(e=>{this.facets.value=e})}_search(e=!1,t=!1){if(this.isRunning&&e)return Promise.resolve(!1);this.result.value={isLoading:!0,objects:e?this.objects:[],hasMore:!e||this.result.value.hasMore};const n=this.limit,r=e?this.objects.length:0;return this._searchRequest(this.query,n,r,!t).then(async r=>{const i=r.results||[],a=r.facets||{};return this.result.value={isLoading:!1,objects:e?this.objects.concat(i):i,hasMore:i.length===n},!t&&a&&Object.keys(a).length>0&&(this.facets.value=a),!0}).catch(e=>{throw this.result.value={error:e,isLoading:!1,objects:this.objects,hasMore:this.result.value.hasMore},e})}search(e=!1){return this.isRunning&&this.objects.length>0?Promise.resolve(!1):this._search(!1,e)}loadMore(e=!1){return this.isRunning||!this.hasMore||this.query.vector?Promise.resolve(!1):(this.objects.length>0&&(e=!0),this._search(!0,e))}}const Ns=d(void 0);function ks(){return u(Ns)}function Cs(){return le(ks().facets)}function Ss(){const e=ks();return{...le(e.result),search:e}}function Ps(){const e=ks();return le(e.facets).total}var js;async function _s(e){try{const t=await e.arrayBuffer(),n=new xn;n.appendByteArray(new Uint8Array(t));const r=n.end();return r?.toString()}catch(e){return void console.error("Error calculating file hash:",e)}}function Ts(){const{client:e}=Et(),t=y();return{checkDocumentProcessing:async(n,r,i)=>{try{console.log(`Preparing metadata for ${n.length} files...`);const t=await async function(e,t){const n=[];for(let r=0;r<e.length;r+=5){const i=e.slice(r,r+5),a=await Promise.all(i.map(async e=>{let n=t||void 0;if(e.webkitRelativePath){const r=e.webkitRelativePath.split("/");if(r.length>1){const e=r.slice(0,-1).join("/");n=t?`${t}/${e}`:e}}return{file:e,hash:await _s(e),name:e.name,size:e.size,location:n}}));n.push(...a)}return n}(n,r),a=async()=>{let n;const r={query:{match:{"content.etag":{$in:t.map(e=>e.hash)}}},select:"id content.etag"};n=i?(await e.store.collections.searchMembers(i,r)).results:(await e.store.objects.search(r)).results;for(const e of n){const n=t.find(t=>t.hash===e.content.etag);n&&(n.existingId=e.id,n.action=js.SKIP)}},s=async()=>{const n=t.filter(e=>e.action!==js.SKIP),r=n.map(e=>e.location),a=Array.from(new Set(r)),s=[];for(const t of a){const r={"content.name":{$in:n.filter(e=>e.location===t).map(e=>e.name)},location:t||"/"};if(i){const t=e.store.collections.searchMembers(i,{query:{match:r},select:"id content.name location"}).then(e=>e.results);s.push(t)}else{const t=e.store.objects.find({query:r,select:"id content.name location"});s.push(t)}}const l=(await Promise.all(s)).flat();console.log(`Found ${l.length} document to update`,l);for(const e of l){const n=t.find(t=>t.name===e.content.name&&(t.location?t.location===e.location:"/"===e.location));n&&(n.existingId=e.id,n.action=js.UPDATE)}console.log(`Reconciled ${t.filter(e=>e.action===js.UPDATE).length}`)};return await a(),await s(),t.forEach(e=>{e.action||(e.action=js.CREATE)}),console.log("Document processing check results:",{totalFiles:n.length,toCreate:t.filter(e=>e.action===js.CREATE).length,toUpdate:t.filter(e=>e.action===js.UPDATE).length,toSkip:t.filter(e=>e.action===js.SKIP).length}),t}catch(e){throw t({title:"Error in file upload processing check",status:"error",description:e.message}),console.log("Error in file upload processing check",e),new Error("Error in file upload processing check: "+e.message)}}}}function Is({isOpen:r,onClose:i,files:a,collectionId:s,selectedFolder:d,title:u="Upload Files",children:m,onUploadComplete:h,hideFileSelection:p=!1,showTypeSelectionOnly:f=!1}){const{client:g,typeRegistry:b}=Et(),x=y(),[w,N]=o([]),[k,C]=o([]),[S,P]=o(!1),[j,_]=o(null),[T,I]=o([]),[A,z]=o(!1),[E,F]=o(!1),[D,L]=o(0),[O,R]=o(Date.now()),[U,M]=o(void 0),[K,H]=o(null),[J,Y]=o(u),[Z,Q]=o("");c(()=>{s&&g.store.collections.retrieve(s).then(M)},[s]),c(()=>{A?(Y("Uploading Files"),Q(`${Math.round(D)}% complete`)):E?(Y("Upload Complete"),Q("")):S?(Y("File Analysis Results"),Q(`${w.length} file${1!==w.length?"s":""}`)):w.length>0?(Y(u),Q("Checking for duplicates and updates")):(Y(u),Q(""))},[A,E,S,u,D,w.length]);const X=()=>U||d?t(oe,{className:"mb-4",status:"default",icon:e(bt,{className:"size-5"}),children:[e("div",{className:"flex items-center",children:e("span",{className:"font-medium",children:"Upload Location:"})}),t("div",{className:"text-sm mt-1",children:[U&&t("div",{className:"flex items-center",children:[e("span",{className:"mr-1",children:"Collection:"}),e("span",{className:"font-medium",children:U.name})]}),d&&t("div",{className:"flex items-center mt-1",children:[e("span",{className:"mr-1",children:"Folder:"}),e("span",{className:"font-medium",children:d})]})]})]}):null,[ee,te]=o({toCreate:0,toUpdate:0,toSkip:0}),{checkDocumentProcessing:ne}=Ts(),re=l(()=>b?.types||[],[b?.types]);c(()=>{r&&(C([]),P(!1),_(null),I([]),z(!1),F(!1),L(0),te({toCreate:0,toUpdate:0,toSkip:0}),H(null),Y(u),Q(""),a&&a.length>0?(N(a),se(a)):N([]),R(Date.now()))},[r,a]);const ie=()=>{N([]),C([]),P(!1),_(null),I([]),z(!1),F(!1),L(0),te({toCreate:0,toUpdate:0,toSkip:0}),H(null),Y(u),Q(""),R(Date.now()),i()},ae=e=>{e&&e.length>0&&(N(e),se(e))},se=async e=>{if(e.length)try{console.log(`Processing ${e.length} files to determine required actions...`);const t=await ne(e,d,s);C(t);const n=t.filter(e=>e.action===js.CREATE).length,r=t.filter(e=>e.action===js.UPDATE).length,i=t.filter(e=>e.action===js.SKIP).length;te({toCreate:n,toUpdate:r,toSkip:i}),x({title:"Files analyzed",description:`${e.length} file(s): ${n} new, ${r} to update, ${i} to skip`,status:"info",duration:4e3}),P(!0)}catch(e){console.error("Error processing files:",e),x({title:"Error",description:"There was an error analyzing the files",status:"error",duration:5e3})}},le=async()=>{if(!k.length)return;const e=j?.id||null,t=k.map(e=>({file:e.file,status:"pending",progress:0,action:e.action===js.CREATE?"create":e.action===js.UPDATE?"update":"skip"}));I(t),z(!0),F(!1);const n=k.filter(e=>e.action===js.SKIP),r=k.filter(e=>e.action===js.UPDATE),i=k.filter(e=>e.action===js.CREATE),a={success:!0,objectIds:[],uploadedFiles:[],skippedFiles:[],failedFiles:[]};for(const t of n)t.existingId&&(a.objectIds.push(t.existingId),a.skippedFiles.push({id:t.existingId,name:t.name,type:e,status:"skipped",location:t.location}),I(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:t.existingId}:e)));const l=async(t,n)=>{const r=[];for(let e=0;e<t.length;e+=50)r.push(t.slice(e,e+50));for(let i=0;i<r.length;i++){const l=r[i];if(console.log(`Processing ${n} batch ${i+1}/${r.length} (${l.length} files)`),t.length>50){x({title:`Processing files (${n})`,description:`Processed ${50*i}/${t.length} files...`,status:"info",duration:2e3})}let o=0;await Promise.all(l.map(async t=>{try{if(I(e=>e.map(e=>e.file===t.file?{...e,status:"uploading",progress:20}:e)),"update"===n&&t.existingId)await g.store.objects.update(t.existingId,{type:e||void 0,content:t.file,location:t.location,name:t.name},{createRevision:!0,revisionLabel:"upload on "+(new Date).toISOString()}),I(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:t.existingId}:e)),a.objectIds.push(t.existingId),a.uploadedFiles.push({id:t.existingId,name:t.name,type:e,status:"updated",location:t.location});else{const n=await g.store.objects.create({type:e||void 0,content:t.file,location:t.location||t.file.webkitRelativePath||t.name},{collection_id:s});I(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:n.id}:e)),a.objectIds.push(n.id),a.uploadedFiles.push({id:n.id,name:t.name,type:e,status:"created",location:t.location})}}catch(n){console.error(`Failed to process file ${t.name}:`,n),I(e=>e.map(e=>e.file===t.file?{...e,status:"error",progress:100,message:n.message||"Unknown error"}:e)),a.failedFiles.push({name:t.name,error:n.message||"Unknown error",status:"failed",location:t.location,type:e}),a.success=!1}o++,o%5!=0&&o!==l.length||I(e=>{const t=e.filter(e=>"success"===e.status||"error"===e.status).length,n=e.length,r=n>0?Math.round(t/n*100):0;return L(r),e})}))}};r.length>0&&await l(r,"update"),i.length>0&&await l(i,"create"),I(e=>{const t=e.filter(e=>"pending"===e.status).map(e=>({...e,status:"error",progress:100,message:"Upload process interrupted"}));return t.length>0?(t.forEach(e=>{a.failedFiles.push({name:e.file.name,error:"Upload process interrupted",status:"failed",type:j?.id||null})}),a.success=!1,e.map(e=>"pending"===e.status?{...e,status:"error",progress:100,message:"Upload process interrupted"}:e)):e}),z(!1),F(!0);const o=a.uploadedFiles.filter(e=>"created"===e.status).length,c=a.uploadedFiles.filter(e=>"updated"===e.status).length,d=a.skippedFiles.length,u=a.failedFiles.length;let m="";o>0&&(m+=`${o} file${1!==o?"s":""} uploaded`),c>0&&(m+=m?", ":"",m+=`${c} file${1!==c?"s":""} updated`),d>0&&(m+=m?", ":"",m+=`${d} file${1!==d?"s":""} skipped`),u>0&&(m+=m?", ":"",m+=`${u} file${1!==u?"s":""} failed`),x({title:"Upload Complete",description:m,status:u>0?"warning":"success",duration:5e3}),H(a)},de=()=>t("div",{className:"mb-4",children:[t("label",{className:"block text-sm font-medium mb-2",children:["Content Type ",e("span",{className:"text-muted font-normal",children:"(Optional)"}),e($,{description:"Select a content type to apply to the uploaded files. If left empty, Vertesia will automatically detect the type based on file content.",placement:"top",size:"xs",children:e(Le,{className:"size-3 ml-2"})})]}),e(ce,{options:re,value:j,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type or leave empty for automatic detection",onChange:e=>_(void 0===e?null:e),filterBy:"name",isClearable:!0}),j?e(n,{}):e("div",{className:"p-2 rounded-md",children:t("div",{className:"flex items-center text-attention",children:[e(pt,{className:"size-4 mr-1"}),"Automatic Type Detection",e($,{description:"Vertesia will analyze the content and select the most appropriate type. This is recommended for most uploads and ensures optimal processing.",placement:"top",size:"xs",children:e(Le,{className:"size-3 ml-2"})})]})})]});return t(q,{isOpen:r,onClose:ie,className:"mx-auto",disableCloseOnClickOutside:!0,children:[e(B,{description:Z,children:J}),f?t(W,{children:[m,X(),de()]}):0!==w.length||p?A||E?A?t(W,{children:[X(),e("div",{className:"mb-4",children:e("div",{className:"h-2 bg-muted/20 rounded-full overflow-hidden",children:e("div",{className:"h-full bg-primary rounded-full",style:{width:`${D}%`}})})}),e("div",{className:"max-h-96 overflow-y-auto",children:T.map((n,r)=>t("div",{className:"flex items-center py-2 border-b border-border last:border-b-0",children:[t("div",{className:"mr-3",children:["pending"===n.status&&e(gt,{className:"size-5 text-muted"}),"uploading"===n.status&&e(V,{size:"sm"}),"success"===n.status&&e(pt,{className:"size-5 text-success"}),"error"===n.status&&e(yt,{className:"size-5 text-destructive"})]}),t("div",{className:"flex-1 min-w-0",children:[e("div",{className:"truncate font-medium",children:n.file.name}),t("div",{className:"text-xs text-muted",children:["pending"===n.status&&"Waiting...","uploading"===n.status&&"Uploading...","success"===n.status&&("create"===n.action?"Created":"update"===n.action?"Updated":"Skipped"),"error"===n.status&&n.message]})]})]},`${n.file.name}-${r}`))})]}):e(W,{children:t("div",{className:"mb-4",children:[X(),e(an,{files:T.map(e=>{let t;return t="success"===e.status?"create"===e.action?"success":"update"===e.action?"updated":"skipped":"failed",{name:e.file.name,status:t,error:"error"===e.status?e.message:void 0}}),location:d||void 0,collection:U?.name})]})}):e(W,{children:S?t(n,{children:[X(),e("div",{className:"mb-4",children:e("div",{className:"p-4 rounded-md mb-4",children:t("div",{className:"grid grid-cols-3 gap-4",children:[t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(ht,{className:"size-5 text-primary"}),e("span",{className:"font-medium",children:"New"})]}),e("div",{className:"text-2xl font-semibold",children:ee.toCreate})]}),t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(pt,{className:"size-5 text-success"}),e("span",{className:"font-medium",children:"Update"})]}),e("div",{className:"text-2xl font-semibold",children:ee.toUpdate})]}),t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(ft,{className:"size-5 text-mixer-attention/40"}),e("span",{className:"font-medium",children:"Skip"})]}),e("div",{className:"text-2xl font-semibold",children:ee.toSkip})]})]})})}),de(),e(oe,{className:"mb-4",status:"info",children:ee.toCreate+ee.toUpdate>0?t("div",{className:"space-y-1",children:[t("p",{children:[ee.toCreate+ee.toUpdate," file",ee.toCreate+ee.toUpdate>1?"s are":" is"," ready to process"]}),e("p",{children:ee.toSkip>0&&`${ee.toSkip} file${ee.toSkip>1?"s are":" is"} already in the system and will be skipped.`})]}):ee.toSkip>0?t("span",{children:["All ",ee.toSkip," file(s) already exist in the system and will be skipped. You can proceed to view the results."]}):e("span",{children:"No files to process."})})]}):t("div",{className:"flex flex-col items-center justify-center py-4",children:[e(V,{size:"lg",className:"mb-4"}),e("div",{className:"text-lg font-medium",children:"Analyzing files..."})]})}):t(W,{className:"flex flex-col items-center justify-center p-8",children:[X(),e(rn,{onDrop:ae,message:"Drag and drop files here or click to select",buttonLabel:"Select Files",className:"w-full h-64"}),m]}),(()=>{if(f)return t(G,{children:[e(v,{variant:"ghost",onClick:ie,children:"Cancel"}),e(v,{onClick:()=>{h&&h({success:!0,objectIds:[],uploadedFiles:[{name:"type-selection",type:j?.id||null,status:"created"}],skippedFiles:[],failedFiles:[]}),ie()},children:j?`Use ${j.name}`:"Use Automatic Type Detection"})]});if(0===w.length&&!p)return e(G,{children:e(v,{variant:"ghost",onClick:ie,children:"Cancel"})});if(!A&&!E){const n=S;return t(G,{children:[e(v,{variant:"ghost",onClick:ie,children:"Cancel"}),e(v,{disabled:!n,onClick:le,children:ee.toCreate+ee.toUpdate>0?"Upload":"Continue"})]})}return A?e(G,{children:e(v,{variant:"ghost",disabled:!0,children:"Uploading..."})}):t(G,{children:[e(v,{variant:"ghost",onClick:()=>{N([]),C([]),P(!1),_(null),I([]),z(!1),F(!1),L(0),te({toCreate:0,toUpdate:0,toSkip:0})},children:"Upload More"}),e(v,{onClick:()=>{h&&K&&h(K),ie()},children:"Close"})]})})()]},O)}function As(e){const t="function"==typeof e?e:e.onUploadDone,{client:n,project:r,store:i}=Et(),a=ks(),s=y(),{checkDocumentProcessing:l}=Ts();return async(e,o,c)=>{const d={success:!1,objectIds:[],uploadedFiles:[],skippedFiles:[],failedFiles:[]};if(!r)return s({status:"error",title:"No project selected",duration:3e3}),d;if(!e||0===e.length)return s({status:"warning",title:"No files selected",duration:3e3}),d;const u=Array.from(e).filter(e=>e.size>0);if(0===u.length)return s({status:"error",title:"No valid files selected",description:"Please select files with valid content.",duration:5e3}),d;const m=[],h=[],p=[];console.log(`Processing ${u.length} files with smart file processing...`);const f=await l(u,null,c),g=f.filter(e=>e.action===js.CREATE).length,y=f.filter(e=>e.action===js.UPDATE).length,b=f.filter(e=>e.action===js.SKIP).length;s({title:"Files analyzed",description:`${u.length} file(s): ${g} new, ${y} to update, ${b} to skip`,status:"info",duration:4e3});for(const e of f.filter(e=>e.action===js.SKIP&&e.existingId))m.push({id:e.existingId,name:e.name,type:o,status:"skipped",location:e.location});const v=f.filter(e=>(e.action===js.CREATE||e.action===js.UPDATE)&&e.file);if(v.length>0){console.log(`Processing ${v.length} files (${v.filter(e=>e.action===js.CREATE).length} create, ${v.filter(e=>e.action===js.UPDATE).length} update)...`);const e=50,t=[];for(let n=0;n<v.length;n+=e)t.push(v.slice(n,n+e));for(let r=0;r<t.length;r++){const a=t[r],l=r*e;console.log(`Processing batch ${r+1}/${t.length} (${a.length} files)`),v.length>e&&s({title:"Processing files",description:`Processed ${l}/${v.length} files...`,status:"info",duration:2e3});const u=await Promise.all(a.map(async e=>{try{if(e.action===js.UPDATE&&e.existingId){const t=await n.store.objects.update(e.existingId,{type:o||void 0,content:e.file,location:e.location,name:e.name},{createRevision:!0,revisionLabel:"upload on "+(new Date).toISOString()});return h.push({id:e.existingId,name:e.name,type:o,status:"updated",location:e.location}),d.objectIds.push(e.existingId),{success:!0,id:t.id,name:e.name,action:"update"}}{const t=c?{collection_id:c}:void 0,n=await i.objects.create({type:o||void 0,content:e.file,location:e.location||e.file.webkitRelativePath||e.name},t);h.push({id:n.id,name:e.name,type:o,status:"created",location:e.location})}}catch(t){console.error(`Failed to process file ${e.name}:`,t),p.push({name:e.name,error:t.message||"Unknown error",status:"failed",location:e.location,type:o}),s({status:"error",title:`Processing failed for ${e.name}`,description:t.message,duration:4e3})}})),m=h.filter(e=>"created"===e.status),f=h.filter(e=>"updated"===e.status),g=h.filter(e=>"failed"===e.status);console.log(`Batch ${r+1} results:`,{creates:m,updates:f,failures:g,total:u.length})}}const x=h.filter(e=>"created"===e.status).length,w=h.filter(e=>"updated"===e.status).length,N=h.filter(e=>"failed"===e.status).length,k=h.filter(e=>"skipped"===e.status).length;t&&(console.log("Upload complete:",{totalObjectIds:d.objectIds.length,uploadedFiles:x,updatedFiles:w,skippedFiles:k,failedFiles:N}),await t(d.objectIds));let C="";return x>0&&(C+=`${x} file${1!==x?"s":""} uploaded`),w>0&&(C+=C?", ":"",C+=`${w} file${1!==w?"s":""} updated`),k>0&&(C+=C?", ":"",C+=`${k} file${1!==k?"s":""} skipped (already existed)`),N>0&&(C+=C?", ":"",C+=`${N} file${1!==N?"s":""} failed`),C&&s({status:N>0?"warning":"success",title:C,duration:4e3}),a.search(),d}}!function(e){e.CREATE="create",e.SKIP="skip",e.UPDATE="update"}(js||(js={}));const zs=[{name:"ID",field:"id",type:"objectId?slice=-7"},{name:"Name",field:".",type:"objectName"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Updated At",field:"updated_at",type:"date"}];function Es({isGridView:t=!1,onUpload:n,collectionId:r,...i}){return n?e(Fs,{...i,onUpload:n,isGridView:t,collectionId:r}):e(Ds,{...i,isGridView:t})}function Fs({isGridView:n,onUpload:i,collectionId:a,skipTypeModal:s=!1,...l}){const[c,d]=o(!1),[u,m]=o([]),[h,p]=o(!1),[f,g]=o(null),[b,v]=o(!1),x=ks(),w=y(),{checkDocumentProcessing:N}=Ts(),k=async(e,t)=>{console.log("Files dropped on ObjectTable:",e.length,t),d(!0);try{if(a){const t=await N(e,null,a);g(t);const n=t.filter(e=>"create"===e.action).length,r=t.filter(e=>"update"===e.action).length,i=t.filter(e=>"skip"===e.action).length;w({title:"Files ready to process",description:`${e.length} file(s): ${n} new, ${r} to update, ${i} to skip`,status:"info",duration:4e3})}else g(null)}catch(e){console.error("Error processing files:",e),w({title:"Error processing files",description:"There was an error checking for duplicate files",status:"error",duration:4e3}),g(null)}finally{if(d(!1),m(e),p(!1),s){console.log("Skipping type modal and calling onUpload directly",{filesLength:e.length,processedFilesLength:f?.length});const t=i(e,null,a);t&&"object"==typeof t&&(t.processedFiles=f)}else console.log("Setting typeSelectionOpen to true",{filesLength:e.length}),v(!0)}},C=e=>{const t=[...u];m([]),g(null),v(!1),t.length>0&&void 0!==e&&(d(!0),console.log("Starting upload with",{typeId:e,filesCount:t.length,hasProcessingResults:!!f,collectionId:a}),i(t,e,a).finally(()=>{d(!1),x.search()}))},S=e=>{e.preventDefault(),e.stopPropagation(),p(!0)};return t("div",{className:"min-h-[400px] relative",onDragOver:S,onDragEnter:S,onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),e.currentTarget.contains(e.relatedTarget)||p(!1)},onDrop:e=>{if(e.preventDefault(),e.stopPropagation(),p(!1),e.dataTransfer.items){const t=[];for(let n=0;n<e.dataTransfer.items.length;n++){const r=e.dataTransfer.items[n];if("file"===r.kind){const e=r.getAsFile();e&&t.push(e)}}if(t.length>0){const e={count:t.length,message:`Preparing to upload ${t.length} file${1===t.length?"":"s"}...`};k(t,e)}}},children:[e("div",{className:r("bg-white dark:bg-gray-800 opacity-40 absolute inset-0 z-50 flex justify-center items-center",c?"block":"hidden"),children:e(V,{size:"xl"})}),e(Ds,{...l,isGridView:n}),e("div",{className:r("absolute inset-0 pointer-events-none",h?"z-40":"-z-10"),children:e("div",{className:"w-full h-full relative",children:e(rn,{onDrop:k,message:"Drop files or folders here to upload",className:r("absolute inset-0 bg-white/90 dark:bg-gray-800/90 pointer-events-auto",h?"flex":"hidden"),buttonLabel:"Select Files or Folders",allowFolders:!0})})}),e(Is,{isOpen:b&&u.length>0,onClose:()=>{m([]),g(null),v(!1),C(void 0)},files:u,collectionId:a,selectedFolder:null,title:"Upload Files",onUploadComplete:e=>{if(e){if(e.failedFiles&&e.failedFiles.length>0&&w({title:"Upload Issues",description:`${e.failedFiles.length} file(s) failed to upload`,status:"warning",duration:5e3}),e.success){const t=e.uploadedFiles.filter(e=>"created"===e.status).length,n=e.uploadedFiles.filter(e=>"updated"===e.status).length,r=e.skippedFiles.length;(t>0||n>0)&&w({title:"Upload Complete",description:`${t>0?`${t} created`:""}${t>0&&n>0?", ":""}${n>0?`${n} updated`:""}${r>0?`, ${r} skipped`:""}`,status:"success",duration:5e3})}x.search()}m([]),g(null),v(!1),e&&e.success&&e.objectIds.length>0?C(null):C(void 0)}})]})}function Ds({objects:t,layout:n=zs,isLoading:r,onRowClick:i,onSelectionChange:a,previewObject:s,selectedObject:o,isGridView:c}){const d=ms(),u=(e,n)=>{if(d){const r=n.nativeEvent.shiftKey;if(n.target.checked){if(d.add(e),r){const n=t.findIndex(t=>t.id===e.id),r=function(e,t,n){for(let r=t-1;r>=0;r--)if(n.isSelected(e[r].id))return r;return-1}(t,n,d);if(r>-1&&r<n-1){const e=[];for(let i=r+1;i<n;i++)e.push(t[i]);d.addAll(e)}else{const e=function(e,t,n){const r=e.length;for(let i=t+1;i<r;i++)if(n.isSelected(e[i].id))return i;return-1}(t,n,d);if(e>-1&&e>n+1){const r=[];for(let i=n+1;i<e;i++)r.push(t[i]);d.addAll(r)}}}}else d.remove(e.id);a&&a(d)}},m=e=>{if(d){e.target.checked?d.addAll(t):d.removeAll()}},h=l(()=>(n.length>0?n:zs).map(e=>new bs(e,s)),[n,s]);return e(c?xs:vs,{objects:t,isLoading:r,columns:h,onRowClick:i,previewObject:s,selectedObject:o,selection:d,toggleAll:m,onSelectionChange:u})}function $s({children:t,limit:n,parent:r,typeId:i,facets:a,name:s,collectionId:o}){const{store:c}=Et(),d=l(()=>{let e;a?e=a:(e=[{name:"status",field:"status"},{name:"location",field:"location"}],i||e.unshift({name:"type",field:"type"}));const t=new ws(c,n).withFacets(e);return t.collectionId=o,t.query.type=i,t.query.parent=r,t.query.name=s,t},[i,n,o]);return e(Ns.Provider,{value:d,children:t})}const Ls=[{name:"Name",field:"properties.title",type:"string",fallback:"name"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Created At",field:"created_at",type:"date"}];function Os({onChange:t}){return e($s,{children:e(Us,{onRowClick:e=>{t(e||void 0)}})})}const Rs="vertesia.content_store.lastDisplayedView";function Us({onRowClick:n}){const[r,i]=o(!1),[a,s]=o("grid"===localStorage.getItem(Rs)),{search:l,isLoading:d,error:u,objects:h}=Ss(),p=m(null);de(p,()=>{r&&l.loadMore(!0)},{deps:[r]}),c(()=>{l.search().then(()=>i(!0))},[]);const f=Cs(),g=ks();return u?e(O,{title:"Search failed",children:u.message}):t("div",{children:[t("div",{className:"flex justify-between items-center mb-4",children:[e(Xa,{facets:f,search:g}),t("div",{className:"flex items-center gap-2",children:[e(v,{variant:"outline",onClick:()=>{i(!1),l.search().then(()=>i(!0))},alt:"Refresh",children:e(mt,{size:16})}),e(Rr,{onUpdate:s})]})]}),e(Es,{objects:h||[],isLoading:!1,layout:Ls,onRowClick:n,isGridView:a}),e("div",{ref:p,className:"mt-10"}),d&&e("div",{className:"flex justify-center",children:e(V,{size:"xl"})})]})}function Ms({isOpen:n,onClose:r}){return t(q,{onClose:()=>r(),isOpen:!!n,className:"min-w-[60vw]",children:[e(B,{children:"Select Content"}),e(W,{className:"pt-0 overflow-y-auto max-h-[80vh] min-h-[80vh]",children:n&&e(Os,{onChange:r})})]})}const Vs=/store:([a-f0-9]+)/;function Ks({object:n}){const{client:i}=Et(),{off:a,on:s,isOn:l}=ue(),[d,u]=o(null!=n.value?String(n.value):""),[m,h]=o(void 0),p=()=>{u(""),n.value="",h(void 0)};return c(()=>{if(!d||m)return;const e=d.match(Vs);e&&i.objects.get(e[1]).then(e=>{h(e)}).catch(()=>{p()})},[d]),t("div",{children:[t("div",{className:"relative",children:[e("input",{value:d,onChange:e=>{const t=e.target.value;u(t),n.value=t},className:r(me.INPUT,"pr-10 w-full")}),m&&e("div",{className:"absolute inset-y-0 right-10 flex items-center justify-center ",children:e(v,{onClick:p,variant:"unstyled",className:"hover:text-red-500 hover:bg-gray-100 dark:hover:bg-gray-600",children:e(it,{className:"size-5"})})}),e("div",{className:"absolute inset-y-0 right-0 flex items-center justify-center",children:e(v,{onClick:s,variant:"unstyled",className:"hover:bg-gray-100 dark:hover:bg-gray-600",children:e(vt,{className:"size-5"})})}),e(Ms,{value:d,isOpen:l,onClose:e=>{if(e){const t="store:"+e.id;u(t),h(e||void 0),n.value=t}a()}})]}),m&&e("div",{className:"p-1 semibold text-sm text-gray-600 dark:text-slate-300",children:m.properties?.title||m.name})]})}function qs(e,t,n,r){return()=>{n&&e.files.getDownloadUrlWithOptions({file:n,name:r}).then(e=>{window.open(e.url,"_blank")}).catch(e=>{t({status:"error",title:"Failed to get download URL",description:e.message,duration:5e3})})}}function Bs({objectId:n,isOpen:r,onClose:i}){const a=Yt(),{client:s,store:l}=Et(),[d,u]=o(null),[m,h]=o(!1),[p,f]=o(!1),[g,b]=o(),[x,w]=o(),[N,k]=o("preview"),C=y();c(()=>{n&&r?(h(!0),l.objects.retrieve(n,"+embeddings").then(e=>{u(e),e.text?b(e.text):S(e.id);const t=e.content;t&&t.source&&t.type&&t.type.startsWith("image/")&&P(e)}).catch(e=>{console.error("Error loading object:",e),C({title:"Error",description:"Failed to load document",status:"error",duration:3e3})}).finally(()=>{h(!1)})):(u(null),b(void 0),w(void 0))},[n,r,l.objects]);const S=async e=>{f(!0);try{const t=await l.objects.getObjectText(e);b(t.text)}catch(e){console.error("Error loading text:",e)}finally{f(!1)}},P=async e=>{try{"found"===(await s.objects.getRendition(e.id,{format:Ot.jpeg,generate_if_missing:!1})).status&&console.log("Found rendition");const t=await s.files.getDownloadUrl(e.content.source);w(t.url)}catch(e){console.error("Error loading image:",e)}},j=()=>{d&&(a(`/legal/objects/${d.id}`),i())},_=g&&(g.startsWith("#")||g.includes("\n#")||g.includes("\n*")),T=d?.content?.type&&d.content.type.startsWith("image/"),I="application/pdf"===d?.content?.type;return r?t("div",{className:"fixed inset-y-0 right-0 w-2/5 dark:bg-slate-900 shadow-xl z-50 flex flex-col transition-transform duration-300 transform "+(r?"translate-x-0":"translate-x-full"),children:[t("div",{className:"flex items-center justify-between px-4 py-3 border-b dark:border-gray-700 bg-gradient-to-r from-indigo-50 to-gray-50 dark:from-gray-800 dark:to-gray-900",children:[t("div",{className:"flex items-center",children:[e(xt,{className:"h-5 w-5 text-indigo-600 mr-2"}),e("h2",{className:"text-lg font-semibold text-gray-800 dark:text-gray-200 truncate",children:m?"Loading document...":d?.name||"Document Preview"})]}),t("div",{className:"flex items-center space-x-2",children:[t(v,{variant:"ghost",size:"sm",onClick:j,className:"flex items-center gap-1 text-indigo-600 hover:text-indigo-800",children:[e(at,{className:"h-4 w-4"}),e("span",{children:"Full View"})]}),e(v,{variant:"ghost",size:"sm",onClick:i,className:"flex items-center text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100",children:e(it,{className:"h-5 w-5"})})]})]}),m?e("div",{className:"flex-1 flex items-center justify-center",children:t("div",{className:"text-center",children:[e(V,{size:"lg",className:"text-indigo-600 dark:text-indigo-400 mb-2"}),e("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading document..."})]})}):t("div",{className:"flex-1 flex flex-col h-full",children:[e("div",{className:"border-b",children:t("div",{className:"flex px-4",children:[e("button",{className:"py-2 px-4 font-medium border-b-2 "+("preview"===N?"border-indigo-600 text-indigo-700 dark:text-indigo-300":"border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"),onClick:()=>k("preview"),children:t("div",{className:"flex items-center gap-1",children:[e(He,{className:"h-4 w-4"}),e("span",{children:"Preview"})]})}),e("button",{className:"py-2 px-4 font-medium border-b-2 "+("properties"===N?"border-indigo-600 text-indigo-700 dark:text-indigo-300":"border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"),onClick:()=>k("properties"),children:t("div",{className:"flex items-center gap-1",children:[e(Le,{className:"h-4 w-4"}),e("span",{children:"Properties"})]})})]})}),t("div",{className:"flex-1 overflow-auto p-4",children:["preview"===N&&t("div",{className:"h-full",children:[p?e("div",{className:"flex items-center justify-center h-40",children:e(V,{size:"md",className:"text-indigo-600 dark:text-indigo-400"})}):g?e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:_?e("div",{className:"prose prose-sm max-w-none prose-p:my-2 prose-pre:bg-gray-800 prose-pre:my-2 prose-headings:text-indigo-700 dark:prose-invert dark:prose-headings:text-indigo-300",children:e(Zt,{children:g})}):e("pre",{className:"text-wrap whitespace-pre-wrap dark:text-gray-200",children:g})}):null,T&&e("div",{className:"mt-4",children:e("div",x?{className:"border border-gray-200 dark:border-gray-700 rounded-md p-2 bg-white dark:bg-gray-800",children:e("img",{src:x,alt:d?.name,className:"mx-auto max-h-[70vh] object-contain"})}:{className:"flex items-center justify-center h-40",children:e(V,{size:"md",className:"text-indigo-600 dark:text-indigo-400"})})}),I&&t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(xt,{className:"h-16 w-16 text-indigo-300 dark:text-indigo-400 mb-4"}),t("p",{className:"text-gray-600 dark:text-gray-400 text-center mb-4",children:["PDF document preview is available in full view. TODO"," "]}),e(v,{onClick:j,className:"bg-indigo-600 hover:bg-indigo-700 text-white",children:"Open Full Document View"})]}),!T&&!g&&!I&&!p&&t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(xt,{className:"h-16 w-16 text-gray-300 dark:text-gray-600 mb-4"}),e("p",{className:"text-gray-600 dark:text-gray-400 text-center",children:"No preview available for this document type."})]})]}),"properties"===N&&d&&t("div",{className:"h-full",children:[d.properties?e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:e(tn,{value:d.properties})}):t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(Le,{className:"h-16 w-16 text-gray-300 dark:text-gray-600 mb-4"}),e("p",{className:"text-gray-600 dark:text-gray-400 text-center",children:"No properties available for this document."})]}),t("div",{className:"mt-4",children:[e("h3",{className:"text-sm font-semibold text-gray-700 dark:text-gray-300 mb-2",children:"Document Information"}),e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:t("div",{className:"grid grid-cols-2 gap-y-2 gap-x-4 text-sm",children:[e("div",{className:"text-gray-500 dark:text-gray-400",children:"ID"}),e("div",{className:"font-medium dark:text-gray-200",children:d.id}),e("div",{className:"text-gray-500 dark:text-gray-400",children:"Type"}),e("div",{className:"font-medium dark:text-gray-200",children:d.type?.name||"Unknown"}),e("div",{className:"text-gray-500 dark:text-gray-400",children:"Content Type"}),e("div",{className:"font-medium dark:text-gray-200",children:d.content?.type||"N/A"}),e("div",{className:"text-gray-500",children:"Size"}),e("div",{className:"font-medium",children:d.content&&"size"in d.content?Ws(d.content.size):"Unknown"}),e("div",{className:"text-gray-500",children:"Created"}),e("div",{className:"font-medium",children:d.created_at?new Date(d.created_at).toLocaleString():"N/A"}),e("div",{className:"text-gray-500",children:"Updated"}),e("div",{className:"font-medium",children:d.updated_at?new Date(d.updated_at).toLocaleString():"N/A"})]})})]})]})]})]}),t("div",{className:"flex items-center justify-between p-4 border-t bg-gray-50 dark:bg-gray-800 dark:border-gray-700",children:[e("div",{children:d?.content?.source&&t(v,{onClick:()=>{d?.content?.source&&s.files.getDownloadUrl(d.content.source).then(e=>{window.open(e.url,"_blank")}).catch(e=>{console.error("Error getting download URL:",e),C({title:"Error",description:"Failed to download file",status:"error",duration:3e3})})},variant:"outline",className:"text-indigo-600 border-indigo-300 hover:bg-indigo-50",children:[e(rt,{className:"h-4 w-4 mr-2"}),"Download"]})}),t(v,{onClick:j,className:"bg-indigo-600 hover:bg-indigo-700 text-white",children:["Open Full Document",e(wt,{className:"h-4 w-4 ml-2"})]})]})]}):null}function Ws(e){if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB","TB"][t]}const Gs=Object.values(Gt),Hs=Object.values(Ht);function Js({onChange:n,isLoading:r,refresh:i,searchTypes:a}){const{client:s,project:l}=Et(),d=y(),[u,m]=o(void 0),[h,p]=o(void 0),f=!(!l||!h?.embeddings.text&&!h?.embeddings.image),[g,b]=o(void 0),[x,w]=o(!1),[N,k]=o(a||Gs),[C,S]=o(100);c(()=>{a&&k(a)},[a]);const P={};let I=!1,A=!1;N.forEach(e=>{e===Gt.full_text?I=!0:A=!0,Hs.includes(e)&&(P[e]=!0)}),c(()=>{m(void 0),b(void 0)},[i]),c(()=>{l&&s.projects.retrieve(l.id).then(e=>{p(e.configuration)})},[l]),c(()=>{g&&d({title:g,status:"success",duration:2e3})},[g]),c(()=>{u&&0!==u.length||n(void 0)},[u]);const F=()=>{if(!f||!u)return;n({vector:A?{text:u,config:P}:void 0,full_text:I?u:void 0,limit:C}),b("Searching...")},D=e=>t=>{k(t?t=>Array.from(new Set([...t,e])):t=>t.filter(t=>t!==e))};return t("div",{className:"flex gap-1 items-center w-1/2",children:[e(z,{placeholder:"Type what you are looking for, or select a filter",value:u,onChange:m,onKeyDown:e=>{"Enter"===e.key&&F()}}),e(v,{variant:"ghost",onClick:()=>w(!0),alt:"Semantic search settings",className:"ml-1",children:e(Nt,{size:18})}),t(j,{isOpen:x,onClose:()=>w(!1),children:[e(_,{children:"Search Types"}),e(T,{children:t("div",{className:"flex flex-col gap-2",children:[t("label",{className:"flex items-center gap-2",children:[e(he,{checked:N.includes(Gt.full_text),onCheckedChange:D(Gt.full_text)}),e("span",{children:"Full Text"})]}),e("div",{className:"font-semibold mt-2 mb-1",children:"Embeddings"}),Hs.map(n=>t("label",{className:"flex items-center gap-2",children:[e(he,{checked:N.includes(n),onCheckedChange:D(n)}),e("span",{children:n.charAt(0).toUpperCase()+n.slice(1)})]},n)),t("div",{className:"mt-3",children:[e("span",{className:"mr-2",children:"Limit"}),e(pe,{type:"number",min:1,value:C,onChange:e=>S(Number(e)||1),style:{width:80}})]})]})}),e(E,{children:e(v,{variant:"outline",onClick:()=>w(!1),children:"Close"})})]}),e(v,{variant:"secondary",isLoading:r,onClick:F,isDisabled:!f,alt:"Semantic search",children:"Search"})]})}const Ys=[{name:"ID",field:"id",type:"objectId?slice=-7"},{name:"Name",field:".",type:"objectName"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Updated At",field:"updated_at",type:"date"}];function Zs({onUploadDone:t=async()=>{},layout:n}){const r=ks(),i=y(),a=As(async e=>{await t(e),setTimeout(()=>{console.log("Delayed refresh after upload to ensure backend consistency"),r.search().then(()=>{i({title:"Document list refreshed",description:"The document list has been updated with your uploaded files.",status:"info",duration:3e3})}).catch(e=>{console.error("Failed to refresh search results:",e)})},1e3)});return e(Qs,{layout:n,onUpload:(e,t)=>{const n=r.collectionId;return a(e,t,n)}})}function Qs({layout:n,onUpload:r,allowFilter:i=!0,allowSearch:a=!0}){const s=ks(),[l,d]=o(!1),[u,h]=o(null),{typeRegistry:p}=Et(),{search:f,isLoading:g,error:y,objects:b,hasMore:v}=Ss(),[x,w]=o(p?n||(N=p,((k=f.query.type)?N.getTypeLayout(k):Ys)??Ys):Ys);var N,k;const[C,S]=o(0),[P,j]=o(0),[_,T]=o("grid"===localStorage.getItem(Rr.LAST_DISPLAYED_VIEW)),[I,A]=o([]),z=m(null);c(()=>{l||0!==b.length||(j(0),f._updateRunningState(!0),f.search().then(()=>{d(!0)}).catch(e=>{console.error("Initial search failed:",e),f._updateRunningState(!1)}))},[]),c(()=>{b.length<P&&j(b.length)},[b.length,P]),de(z,()=>{l&&b.length>0&&b.length!=P&&(d(!1),f.loadMore().finally(()=>{j(b.length),d(!0)}))},{deps:[l,b.length]});const E=Cs(),F=ks(),D=Za(E),$=Qa(F),L=new URL(window.location.href),R=L.searchParams.get("filters");if(R)try{const e=R.split(";"),t=e.filter(e=>{const[t]=e.split(":"),n=decodeURIComponent(t);return"start"!==n&&"end"!==n});if(t.length!==e.length){const e=t.length>0?t.join(";"):"";e?L.searchParams.set("filters",e):L.searchParams.delete("filters"),window.history.replaceState(window.history.state||{},"",L.toString())}}catch(y){console.error("Failed to clean start/end filters from URL:",y)}const U=Yt();return t("div",{className:"flex flex-col gap-y-2",children:[e(el,{object:u,onClose:()=>h(null)}),y&&e(O,{title:"Error",children:y.message}),e(Xs,{isLoading:g,refreshTrigger:C,allowFilter:i,allowSearch:a,filterGroups:D,filters:I,handleFilterChange:e=>{const t="function"==typeof e?e(I):e;A(t),$(t)},handleVectorSearch:e=>{if(e&&e.vector){if(f.query.vector=e.vector,f.query.full_text=e.full_text,f.query.weights=e.weights,f.query.score_aggregation=e.score_aggregation,f.query.dynamic_scaling=e.dynamic_scaling,!x.find(e=>"Search Score"===e.name)){const e=[...x,{name:"Search Score",field:"score",render:e=>e.score?.toFixed(4)||"0.0000"}];w(e)}f.search().then(()=>d(!0))}else e&&e.full_text?(f.query.full_text=e.full_text,f.search().then(()=>d(!0))):void 0===e&&l&&(delete f.query.vector,delete f.query.full_text,f.search().then(()=>d(!0)))},handleRefetch:()=>{f.search().then(()=>d(!0))},setIsGridView:T}),e(Es,{objects:b,isLoading:!b.length&&g,layout:x,onRowClick:e=>{U(`/objects/${e.id}`)},previewObject:e=>{const t=b.find(t=>t.id===e)||null;h(t)},selectedObject:u,onUpload:r,isGridView:_,collectionId:s.collectionId}),e("div",v?{ref:z,className:"w-full flex justify-center",children:e(V,{size:"xl"})}:{className:"text-muted text-center text-sm py-1",children:`All ${b.length} objects loaded.`})]})}function Xs(n){const{isLoading:r,refreshTrigger:i,allowFilter:a,allowSearch:s,filterGroups:l,filters:o,handleFilterChange:c,handleVectorSearch:d,handleRefetch:u,setIsGridView:m}=n;return t("div",{className:"sticky top-0 z-10 bg-background py-2",children:[a&&t(te,{filterGroups:l,filters:o,setFilters:c,children:[t("div",{className:"flex flex-row gap-4 items-center justify-between w-full",children:[t("div",{className:"flex gap-2 items-center w-2/3",children:[s&&e(Js,{onChange:d,isLoading:r,refresh:i,className:"w-full"}),e(ne,{})]}),t("div",{className:"flex gap-1 items-center",children:[e(v,{variant:"outline",onClick:u,alt:"Refresh",children:e(mt,{size:16})}),e(Rr,{onUpdate:m})]})]}),t("div",{className:"flex gap-2 items-center pt-2",children:[e(re,{}),e(ie,{})]})]}),!a&&t("div",{className:"flex flex-row gap-4 items-center justify-between w-full",children:[e("div",{className:"flex gap-2 items-center w-2/3",children:s&&e(Js,{onChange:d,isLoading:r,refresh:i})}),t("div",{className:"flex gap-1 items-center",children:[e(v,{variant:"outline",onClick:u,alt:"Refresh",children:e(mt,{size:16})}),e(Rr,{onUpdate:m})]})]})]})}function el({object:n,onClose:r}){const{store:i}=Et(),a=y(),s=Yt(),l=qs(i,a,n?.content?.source,n?.name||n?.content?.name);return n?t(fe,{title:n.properties?.title||n.name,isOpen:!0,onClose:r,children:[t("div",{className:"flex items-center gap-x-2",children:[e(v,{variant:"ghost",size:"sm",title:"Open Object",onClick:()=>s(`/objects/${n.id}`),children:e(Be,{className:"size-4"})}),n.content?.source&&e(v,{variant:"ghost",size:"sm",title:"Download",onClick:l,children:e(rt,{className:"size-4"})})]}),e(ge,{className:"my-2"}),e("div",{className:"pt-2",children:e(sa,{object:n,loadText:!0},n.id)})]}):null}var tl;function nl({isExporting:n,isOpen:r,onClose:i}){return t(j,{onClose:()=>i(void 0),isOpen:r,className:"relative overflow-visible",children:[e(_,{children:"Export Object Properties"}),!n&&e(rl,{onClose:i}),n&&e(il,{})]})}function rl({onClose:n}){const[r,i]=o(void 0),[a,s]=o(void 0),l=["Export selected objects","Export all objects"];return t(T,{className:"min-h-[104px] pt-0 flex flex-col gap-y-4",children:[e("div",{className:"h-1/3",children:e(Z,{options:l,value:a,onChange:s,placeholder:"Choose what to export",className:"h-full w-full text-sm",filterBy:"name",isClearable:!0})}),t("div",{className:"h-1/2 flex flex-col gap-y-8 content-between",children:[e(Z,{options:Object.values(tl),value:r,onChange:i,placeholder:"Choose a format",className:"h-full w-full text-sm",filterBy:"name",isClearable:!0}),e(v,{className:"w-full",isDisabled:!r||!a,onClick:()=>{n(r,a==l[1])},children:"Export Properties"})]})]})}function il({}){return e(T,{className:"min-h-[84px] pt-0",children:t("div",{className:"h-full grid flex-col gap-y-2 content-between justify-items-center",children:[t("div",{className:"text-sm flex flex-col gap-x-2",children:[e("p",{children:"EXPORT IS IN PROGRESS"}),e("p",{className:"pt-2 grid justify-items-center",children:"PLEASE WAIT"})]}),e(V,{size:"lg"})]})})}function al({collection:t}){const n=y(),{client:r,typeRegistry:i}=Et();ks().query.all_revisions=!0;const a=function(e,t){let n=e.table_layout;if(n&&n.length>0)return n;e.type&&t&&(n=t?.getTypeLayout(e.type.id));return n&&n.length>0?n:void 0}(t,i);return t.dynamic?e(Qs,{layout:a}):e(Zs,{onUploadDone:async e=>{e.length>0&&await r.store.collections.addMembers(t.id,e).catch(e=>{n({title:"Failed to add objects to collection",description:e.message,status:"error"})})},layout:a})}!function(e){e.CSV="CSV",e.JSON="JSON"}(tl||(tl={}));const sl=n=>null===n?"None":t("div",{children:[e("div",{className:"text-sm",children:n.name}),e("div",{className:"text-xs text-gray-500",children:n.description})]});function ll({className:t,defaultValue:n,onChange:r,isClearable:i,multiple:a}){const s=Et(),[l,d]=o(!1),[u,m]=o(),[h,p]=o([]);c(()=>{if(!l&&(d(!0),s.typeRegistry&&n)){if(a&&Array.isArray(n)){const e=s.typeRegistry.types.filter(e=>n.includes(e.id));p(e)}const e=s.typeRegistry.types.find(e=>e.id===n);e&&m(e)}},[s.typeRegistry,n,a]);const f=e=>{p(e),r(e)};return e("div",a?{className:"flex flex-col gap-4 content-between",children:e(ce,{options:s.typeRegistry?.types||[],value:h,onChange:f,placeholder:"Choose Content Types...",optionLabel:sl,className:t||"text-sm bg-background",filterBy:"name",isClearable:i||!1,multiple:!0})}:{className:"flex flex-col gap-4 content-between",children:e(ce,{options:s.typeRegistry?.types||[],value:u,onChange:e=>{m(e||void 0),r(e)},placeholder:"Choose a Content Type...",optionLabel:sl,className:t||"text-sm bg-background",filterBy:"name",isClearable:i||!1})})}function ol({onClose:n,redirect:r=!0,onAddToCollection:i}){const a=Yt(),s=y(),[l,c]=o(!1),{client:d}=Et(),[u,m]=o({dynamic:!1,name:"",description:""});function h(e,t){m({...u,[e]:t})}return t("form",{onSubmit:e=>e.preventDefault(),children:[t(W,{children:[e(A,{label:"Name",required:!0,children:e(z,{type:"text",value:u.name||"",onChange:e=>h("name",e)})}),e(A,{label:"Description",className:"mt-2",children:e(ye,{value:u.description||"",onChange:e=>h("description",e)})}),e(A,{label:"Dynamic Collection",className:"mt-2",direction:"row",description:"Dynamically fetch content for the collection based on a query. If not enabled, then content must be added by users or agents.",children:e(be,{value:u.dynamic||!1,onChange:e=>h("dynamic",e)})}),!u.dynamic&&e(A,{label:"Allowed Content Types",className:"mt-4",description:"Optionally select which content types can be added to the collection. If not set, then all content types are allowed.",children:e(ll,{defaultValue:u.allowed_types||null,onChange:e=>{Array.isArray(e)?h("allowed_types",e.map(e=>e.id)):h("allowed_types",e?[e.id]:[])},isClearable:!0,multiple:!0})}),e(A,{label:"Type",className:"mt-2",description:"Optionally select a content type to assign custom properties and data to the collection.",children:e(ll,{defaultValue:u.type||null,onChange:e=>{Array.isArray(e)?h("type",e.length>0?e[0].id:null):h("type",e?.id||null)},isClearable:!0})})]}),e(G,{children:e(v,{isDisabled:l,onClick:()=>{u?.name&&u.name.trim()?(u.name=u.name.trim(),u.description&&(u.description=u.description.trim()),null==u.dynamic&&(u.dynamic=!1),c(!0),d.store.collections.create(u).then(e=>{n(),s({title:"Collection created",description:`Collection "${e.name}" created successfully`,status:"success",duration:3e3}),r&&a(`/collections/${e.id}`),i&&i(e.id)}).catch(e=>{s({title:"Failed to create collection",description:e.message,status:"error",duration:5e3})}).finally(()=>c(!1))):s({title:"Name is required",description:"Please provide a name for the collection",status:"error",duration:5e3})},children:"Create Collection"})})]})}function cl({isOpen:n,onClose:r}){return t(q,{onClose:r,isOpen:n,children:[e(B,{children:"Create a Collection"}),e(ol,{onClose:r})]})}function dl({}){const{client:r}=Et(),i=y(),[a,s]=o(),[l,d]=o(!0),[u,m]=o(!1),{data:h,error:p,refetch:f}=L(()=>r.store.collections.search({}),[]);if(c(()=>{(h||p)&&d(!1)},[h,p]),p)return e(O,{title:"Collections fetch failed",children:p.message});return t(n,{children:[h&&(h.length>0?t(ee,{className:"w-full",children:[e("thead",{children:t("tr",{children:[e("th",{children:"Name"}),e("th",{children:"Type"}),e("th",{children:"Created"}),e("th",{})]})}),e(ae,{columns:4,isLoading:l,children:h.map(n=>t(ve,{children:[e("td",{children:t("div",{className:"flex items-center gap-2",children:[ul(n.dynamic),e(Jt,{href:`/collections/${n.id}`,children:n.name})]})}),e("td",{children:n.type?.name||"-"}),e("td",{children:un(n.created_at).fromNow()}),e("td",{className:"text-right",children:e(v,{variant:"destructive",size:"sm",onClick:()=>s(n.id),children:e(kt,{className:"size-4"})})})]},n.id))})]}):e(xe,{title:"No Collections",buttonLabel:"New Collections",onClick:()=>m(!0),children:"Get started by creating a new Collections."})),e(cl,{isOpen:u,onClose:()=>m(!1)}),e(we,{isOpen:!!a,title:"Delete Collection",content:"Are you sure you want to delete this collection? This action cannot be undone.",onConfirm:async()=>{if(a)try{await r.store.collections.delete(a),i({title:"Collection deleted",status:"success",duration:3e3}),f()}catch(e){console.error("Failed to delete collection:",e),i({title:"Failed to delete collection",description:e.message||"An error occurred",status:"error",duration:5e3})}finally{s(void 0)}},onCancel:()=>s(void 0)})]})}function ul(t){const n=t?"Dynamic Collection":"Static Collection",r=e(t?Ct:St,{className:"size-5"});return e($,{description:n,className:"mr-2",children:r})}function ml({objects:n,isLoading:r}){const i=Yt();return e("div",{children:t(ee,{className:"w-full",children:[e("thead",{children:t("tr",{children:[e("th",{children:"Name"}),e("th",{children:"Strict Mode"}),e("th",{children:"Semantic Chunking"}),e("th",{children:"Updated At"})]})}),e(ae,{isLoading:r,columns:3,children:n?.map(n=>t("tr",{onClick:()=>i(`/types/${n.id}`),className:"cursor-pointer hover:bg-muted",children:[e("td",{children:n.name}),e("td",{children:n.strict_mode?"Yes":"No"}),e("td",{children:n.is_chunkable?"Yes":"No"}),e("td",{children:un(n.updated_at).fromNow()})]},n.id))})]})})}un.extend(vn),un.extend(vn);class hl{client;limit;result=new se({objects:[],isLoading:!1});query={};constructor(e,t=100){this.client=e,this.limit=t}get objects(){return this.result.value.objects}get error(){return this.result.value.error}get isRunning(){return this.result.value.isLoading}getFilterValue(e){return this.query[e]}setFilterValue(e,t){this.query[e]=t,this.search()}reset(e=!1){this.result.value={objects:[],isLoading:e}}_updateRunningState(e){const t=this.result.value;this.result.value={objects:t.objects,isLoading:e,error:t.error}}async _search(e=!1){if(this.isRunning)return Promise.resolve(!1);this.result.value={isLoading:!0,objects:e?this.objects:[]};const t=this.limit,n=this.objects.length;return this.client.types.list({limit:t,offset:n,query:this.query}).then(async e=>(this.result.value={isLoading:!1,objects:this.objects.concat(e)},!0)).catch(e=>{throw this.result.value={error:e,isLoading:!1,objects:this.objects},e})}search(){return this.isRunning?Promise.resolve(!1):this._search(!1)}loadMore(){return this.isRunning?Promise.resolve(!1):this._search(!0)}}const pl=d(void 0);function fl(){return u(pl)}function gl(){const e=fl();return{...le(e.result),search:e}}function yl(){return fl().objects.length}function bl({title:n,isOpen:r,onClose:i,okLabel:a,initialPayload:s}){const l=y(),[c,d]=o(s?.name),[u,m]=o(s?.description),[h,p]=o(s?.strict_mode??!1);return t(j,{isOpen:r,onClose:()=>i(),children:[e(_,{children:n}),e(T,{className:"pt-0",children:t("div",{className:"h-full flex flex-col gap-4 content-between",children:[t("div",{children:[e("label",{className:"block text-sm font-medium text-muted",children:"Name"}),e(z,{value:c,onChange:d})]}),t("div",{children:[e("label",{className:"block text-sm font-medium text-muted",children:"Description"}),e(ye,{value:u,onChange:e=>m(e.target.value)})]})]})}),e(E,{children:t("div",{className:"flex justify-end gap-4",children:[e(v,{variant:"secondary",onClick:()=>i(),children:"Cancel"}),e(v,{variant:"primary",onClick:()=>(()=>{if(!c)return void l({status:"error",title:"Name is required",duration:5e3});i({name:c,description:u,strict_mode:h}).then(()=>i()),d(void 0),m(void 0),p(!1)})(),children:a})]})})]})}var vl;function xl({isDirty:n=!1}){const r=Et(),{store:i}=r,a=y(),[s,l]=o(!1),{search:d,isLoading:u,error:h,objects:p}=gl(),[f,g]=o(""),b=Ne(f,500),v=m(null);de(v,()=>{s&&d.loadMore()},{deps:[s]}),c(()=>{d.search().then(()=>l(!0))},[]),c(()=>{d.query.name=f,d.search().then(()=>l(!0))},[b]);const[x,w]=o(void 0);c(()=>{d.query.chunkable=x?"Yes"==x:void 0,d.search().then(()=>l(!0))},[x]),c(()=>{n&&s&&d.search().then(()=>l(!0))},[n]);const[N,k]=o(!1);if(h)return e(O,{title:"Failed to fetch ObjectTypes",children:h.message});return t("div",{className:"flex flex-col gap-4 h-full",children:[t("div",{className:"flex gap-4",children:[e(z,{placeholder:"Filter by Name",value:f,onChange:g}),e(Z,{className:"w-60",isClearable:!0,options:Object.values(vl),value:x,onChange:e=>{w(e)},placeholder:"Is Chunkable"})]}),t("div",{className:"flex-1",children:[u||0!==p?.length?e(ml,{objects:p,isLoading:u}):e(xe,{title:"No Type",buttonLabel:"Create Type",onClick:()=>{k(!0)},children:"Get started by creating a new Type."}),e(bl,{okLabel:"Create",title:"Create Type",isOpen:N,onClose:async e=>e?i.types.create(e).then(async()=>{a({status:"success",title:"Type created",duration:2e3}),r.reloadTypes(),d.search().then(()=>l(!0))}).catch(e=>{a({status:"error",title:"Error creating type",description:e.message,duration:5e3})}):(k(!1),Promise.resolve())})]})]})}!function(e){e.true="Yes",e.false="No"}(vl||(vl={}));const wl=[Sn,wn()];function Nl({objectType:n,onSchemaUpdate:r}){const{store:i}=Et(),a=y(),[s,c]=o(!1),d=sn(n.object_schema),u=m(void 0),[h,p]=o(!1),f=l(()=>function(e){if(!e)return"";return JSON.stringify(e,null,2)}(d.schema),[d]),g=()=>{if(u.current){const e=u.current.getValue();try{const t=function(e){if(!e?.trim())return;return JSON.parse(e.trim())}(e);kl(t),d.replaceSchema(t)}catch(e){return a({status:"error",title:"Invalid JSON Schema",description:e.message,duration:5e3}),!1}}return!0};return t("div",{className:"mx-2 my-2 rounded-2xl border border-solid shadow-md border-spacing-2",children:[t("div",{className:"flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2",children:[e("div",{className:"text-base font-semibold",children:"Schema Editor"}),e("div",{children:e(v,{variant:"outline",size:"sm",onClick:()=>{h&&!g()||p(e=>!e)},children:h?"Edit Schema":"Edit Json"})}),e("div",{className:"ml-auto flex gap-x-2",children:e(v,{isLoading:s,variant:"outline",size:"sm",onClick:()=>{h&&!g()||(c(!0),i.types.update(n.id,{object_schema:d.schema}).then(()=>{r(d),a({status:"success",title:"Schema updated",description:"The schema has been updated successfully",duration:2e3})}).catch(e=>{a({status:"error",title:"Failed to update schema",description:e.message,duration:5e3})}).finally(()=>{c(!1)}))},children:"Save Changes"})})]}),e("div",{className:"px-4 py-2",children:h?e(ln,{value:f,extensions:wl,editorRef:u}):e(on,{schema:d})})]})}const kl=e=>{try{new hn({strict:!1}).compile(e)}catch(e){throw new Error(`Invalid JSON Schema definition: ${e.message}`)}};function Cl({children:t,limit:n,name:r,chunkable:i}){const{store:a}=Et(),s=l(()=>{const e=new hl(a,n);return e.query.name=r,e.query.chunkable=i,e},[n]);return e(pl.Provider,{value:s,children:t})}function Sl({isOpen:n,onClose:r,title:i="Select Content Type",children:a,initialSelectedType:s=null,confirmLabel:l="Select Type",allowNone:c=!0}){const{typeRegistry:d}=Et(),[u,m]=o(s),h=d?.types||[],p=()=>{r(void 0)};return t(j,{isOpen:n,onClose:p,className:"w-full max-w-xl mx-auto",children:[e(_,{children:i}),t(T,{className:"p-6",children:[a,t("div",{className:"mb-4 mt-4",children:[t("label",{className:"block text-sm font-medium mb-2",children:["Content Type ",c&&e("span",{className:"text-gray-500 font-normal",children:"(Optional)"})]}),e(Z,c?{options:h,value:u,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type or leave empty for automatic detection",onChange:e=>m(e||null),filterBy:"name",isClearable:!0}:{options:h,value:u,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type",onChange:e=>m(e||null),filterBy:"name"}),c&&t("div",{className:"mt-2 text-sm text-blue-600 flex items-center",children:[e(pt,{className:"h-4 w-4 mr-1"}),t("span",{children:[e("strong",{children:"Type selection is optional."})," Leave empty to let Vertesia choose the appropriate type"]})]})]}),u?t("div",{className:"text-sm text-gray-500 bg-gray-50 p-3 rounded-md mb-4",children:[e("div",{className:"font-medium",children:u.name}),u.description&&e("div",{className:"mt-1",children:u.description})]}):c&&t("div",{className:"text-sm text-blue-600 bg-blue-50 p-3 rounded-md mb-4",children:[e("div",{className:"font-medium",children:"Automatic Type Detection"}),t("div",{className:"mt-1",children:["Vertesia will analyze each file's content and automatically select the most appropriate type.",e("br",{}),e("span",{className:"mt-1 block font-medium",children:"This is recommended for most uploads."})]})]})]}),t(E,{children:[e(v,{variant:"ghost",onClick:p,children:"Cancel"}),e(v,{onClick:()=>{r(u?.id??null)},children:u?`${l}: ${u.name}`:c?"Let Vertesia Choose":l})]})]})}const Pl=[Sn,wn()];function jl({objectType:n,onLayoutUpdate:r}){const i=y(),[a,s]=o(!1),{store:c}=Et(),d=m(void 0),u=l(()=>_l(n.table_layout),[n.table_layout]),h=(e,t)=>{i({status:"error",title:e,description:t,duration:5e3})};return t("div",{className:"mx-2 my-2 rounded-2xl border border-solid shadow-xs",children:[t("div",{className:"flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2",children:[e("div",{className:"text-base font-semibold ",children:"Table Layout Editor"}),e("div",{className:"ml-auto flex gap-x-2",children:e(v,{isLoading:a,variant:"outline",size:"sm",onClick:()=>{if(!d.current)return;const e=d.current.getValue();let t;if(e)try{t=JSON.parse(e)}catch(e){return h("Invalid JSON",e.message)}else t=null;return Array.isArray(t)?t.some(e=>!e||!e.name||!e.field)?h("Invalid JSON","A table layout entry must contain the following properties:] {field, name, converter?}"):(s(!0),void c.types.update(n.id,{table_layout:t}).then(e=>{i({status:"success",title:"Table Layout updated",description:"The table layout has been updated successfully",duration:2e3}),r(e.table_layout)}).catch(e=>{i({status:"error",title:"Failed to update table layout",description:e.message,duration:5e3})}).finally(()=>{s(!1)})):h("Invalid JSON","The table layout must be an array")},children:"Save Changes"})})]}),e("div",{className:"px-4 py-2",children:e(ln,{value:u,extensions:Pl,editorRef:d})})]})}function _l(e){return e?JSON.stringify(e,null,2):"[\n\n]"}const Tl=[Sn,wn()];function Il({refetch:r,collection:i}){const a=i.type?.id,s=m(void 0),c=y(),{client:d}=Et(),[u,h]=o(!1),[p,f]=o({name:i.name,description:i.description||"",query:i.query?JSON.stringify(i.query,null,2):"",tags:i.tags||[],type:i.type?.id||"",allowed_types:i.allowed_types||[]}),g=l(()=>_l(i.table_layout),[i.table_layout]),b=(e,t)=>{f({...p,[e]:t})};return t("div",{className:"flex flex-col gap-4 py-2",children:[t(ke,{title:"Configuration",action:e(v,{size:"lg",isDisabled:u,onClick:()=>{let e;try{e=p.query?JSON.parse(p.query):void 0}catch(e){return void c({title:"Invalid Query JSON",description:e.message,status:"error",duration:5e3})}const t={name:p.name,description:p.description,query:e,tags:p.tags,type:p.type,allowed_types:p.allowed_types};let n;if(t.name||(n="Name is required"),t.type||(t.type=null),n)c({title:"Validation failed",description:n,status:"error",duration:5e3});else{if(s.current){const e=s.current.getValue();if(e)try{t.table_layout=JSON.parse(e)}catch(e){return void c({title:"Invalid Table Layout",description:e.message,status:"error",duration:5e3})}else t.table_layout=null}h(!0),d.store.collections.update(i.id,t).then(()=>{r(),c({title:"Collection updated",description:"Collection has been updated successfully",status:"success",duration:3e3})}).catch(e=>{c({title:"Failed to update collection",description:e.message,status:"error",duration:5e3})}).finally(()=>{h(!1)})}},children:"Save"}),children:[t("div",{className:"flex justify-between mb-2",children:[t("div",{className:"w-1/2 gap-2 flex flex-col",children:[e("div",{className:"text-sm font-medium mb-1",children:"Created By"}),t("div",{className:"gap-2 flex items-center",children:[e(Nn,{userRef:i.created_by,showTitle:!0}),t("span",{children:["at ",un(i.created_at).format("YYYY-MM-DD HH:mm:ss")]})]})]}),t("div",{className:"w-1/2 gap-2 flex flex-col",children:[e("div",{className:"text-sm font-medium mb-1",children:"Updated By"}),t("div",{className:"gap-2 flex items-center",children:[e(Nn,{userRef:i.updated_by,showTitle:!0}),t("span",{children:["at ",un(i.updated_at).format("YYYY-MM-DD HH:mm:ss")]})]})]})]}),e(A,{label:"Name",required:!0,children:e(z,{value:p.name,onChange:e=>b("name",e)})}),e(A,{label:"Description",children:e(ye,{value:p.description,onChange:e=>b("description",e.target.value)})}),!i.dynamic&&e(A,{label:"Allowed Content Types",description:"Select which content types can be added to the collection. If not set, then all content types are allowed.",children:e(ll,{defaultValue:p.allowed_types||null,onChange:e=>{Array.isArray(e)?b("allowed_types",e.map(e=>e.id)):b("allowed_types",e?[e.id]:[])},isClearable:!0,multiple:!0})}),i.dynamic&&e(A,{label:"Query",description:"Define the query to dynamically fetch content for the collection.",children:e(ye,{className:me.INPUT,value:p.query,onChange:e=>b("query",e.target.value)})}),e(A,{label:"Table Layout",description:"Define a custom layout for displaying the collection in tables.",children:e(ln,{className:"border-1 rounded-md border-border",value:g,extensions:Tl,editorRef:s})}),e(A,{label:"Type",description:"Select a content type to assign custom properties and data to the collection.",children:e(ll,{defaultValue:p.type||null,onChange:e=>{Array.isArray(e)?b("type",e.length>0?e[0].id:null):b("type",e?.id||null)},isClearable:!0})})]}),a&&e(Al,{typeId:a,collection:i}),!i.dynamic&&t(n,{children:[e(kn,{collection:i}),e(Cn,{collection:i})]})]})}function Al({typeId:t,collection:n}){const[r,i]=o({}),a=y(),{client:s}=Et(),[c,d]=o(!1),{data:u,error:m}=L(()=>s.store.types.retrieve(t),[t]),h=u?.object_schema||{},p=l(()=>new cn(h,n.properties||{}),[h,n.properties]);if(m)return e(O,{title:"Failed to load type",children:m.message});if(!u)return null;return e(ke,{title:"Properties",action:e(v,{size:"lg",isLoading:c,type:"submit",onClick:()=>(e=>{if(!e||!Object.keys(e).length)return;const t={properties:e||{}};d(!0),s.store.collections.update(n.id,t).then(()=>{a({title:"Collection properties updated",description:"Collection has been updated successfully",status:"success",duration:3e3})}).catch(e=>{a({title:"Failed to update collection properties",description:e.message,status:"error",duration:5e3})}).finally(()=>{d(!1)})})(r),children:"Save"}),children:e(dn,{object:p,onChange:e=>{e instanceof cn&&i(e.value)}})})}function zl({onChange:n,value:r,disabled:i=!1,placeholder:a="Select a collection",searchPlaceholder:s="Search collections",filterOut:c,allowDynamic:d=!0,multiple:u=!1}){const{client:m}=Et(),[p,f]=o(""),[y,b]=o(!1),[C,j]=o(!1),_=Ne(p,300),T=h(async e=>{b(!0);const t=e.trim(),n=await m.store.collections.search({dynamic:!!d&&void 0,name:C&&t||void 0});return b(!1),!C&&n.length>=1e3&&j(!0),c&&c.length>0?n.filter(e=>!c.includes(e.id)):n},[m,d,c,C]),{data:I,error:A}=L(()=>T(C?_:""),[C?_:"",T]),z=l(()=>I?u&&Array.isArray(r)?I.filter(e=>r.includes(e.id)):u||"string"!=typeof r?u?[]:void 0:I.find(e=>e.id===r):u?[]:void 0,[I,r,u]),E=h(e=>{if(u){const t=Array.isArray(r)?r:[];if(t.includes(e.id)){const r=t.filter(t=>t!==e.id),i=I?.filter(e=>r.includes(e.id))||[];n(r,i)}else{const r=[...t,e.id],i=I?.filter(e=>r.includes(e.id))||[];n(r,i)}}else n(e.id,e)},[n,r,I,u]),F=h(()=>{n(void 0,void 0)},[n]),D=h(e=>{f(e)},[]),$=p.trim().length>0,R=l(()=>{if(!I)return[];if(C)return I;if(!$)return I;const e=p.toLowerCase();return I.filter(t=>t.name.toLowerCase().includes(e))},[I,C,$,p]),U=z&&$;if(A)return e(O,{title:"Collection fetch failed",children:A.message});return t(x,{children:[e(w,{asChild:!0,children:t(v,{variant:"outline",role:"combobox","aria-haspopup":"listbox",className:g("w-full justify-between min-w-0"),disabled:i,children:[e("span",{className:"truncate flex-1 text-left min-w-0",children:u&&Array.isArray(z)&&z.length>0?1===z.length?z[0].name:`${z.length} collections selected`:u||!z||Array.isArray(z)?a:z.name}),e(vt,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e(N,{className:"mt-2 mb-2 w-[var(--radix-popover-trigger-width)] p-0",align:"start",children:t(k,{shouldFilter:!1,children:[t("div",{className:"flex justify-between items-center border-b px-3","cmdk-input-wrapper":"",children:[e(Ce,{placeholder:s,value:p,onValueChange:D,className:"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"}),y&&e("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"})]}),e(Se,{children:y?"Searching...":$?"No collections found.":"No collections available."}),t(S,{className:"max-h-[300px] overflow-auto",children:[U&&!u&&e(P,{value:"__clear__",onSelect:F,className:"text-muted-foreground",children:"Clear selection"}),R.map(n=>{const i=u&&Array.isArray(r)?r.includes(n.id):r===n.id;return t(P,{value:n.id,onSelect:()=>E(n),className:"flex items-center justify-between",children:[e("span",{className:"truncate",children:n.name}),i&&e(Pt,{className:"ml-2 h-4 w-4 shrink-0"})]},n.id)})]})]})})]})}function El({collection:t}){const{client:n}=Et(),[r,i]=o(void 0),[a,s]=o(t.shared_properties||[]),l=y();c(()=>{t.type?.id&&n.store.types.retrieve(t.type.id).then(i)},[t.type?.id]);const d=r?Object.keys(r.object_schema?.properties||{}):[];return e(ke,{title:"Shared Properties",description:"Add properties to share across all members in the collection. This feature requires to enable shared property synchronization on the project.",action:e(v,{size:"lg",isLoading:!1,onClick:()=>{n.store.collections.update(t.id,{shared_properties:a}).then(()=>{l({title:"Updated shared properties",status:"success"})}).catch(e=>{l({title:"Failed to update shared properties",description:e.message,status:"error"})})},children:"Save"}),children:e("div",{className:"",children:e(Pe,{value:a,onChange:e=>{s(e)},options:d,placeholder:"Select properties to share"})})})}function Fl({collection:t}){const{client:n}=Et(),[r,i]=o(t.skip_head_sync??!1),[a,s]=o(!1),l=y();return e(ke,{title:"Synchronize Member Heads",description:"When a new HEAD version of a member is created the colleciton will be updated to point to the new HEAD.",children:e(be,{disabled:a,value:!r,onChange:e=>{const r=!e;s(!0),n.store.collections.update(t.id,{skip_head_sync:r}).then(()=>{l({title:"Updated skip head sync setting",status:"success"}),i(r)}).catch(e=>{l({title:"Failed to update skip head sync",description:e.message,status:"error"})}).finally(()=>{s(!1)})},children:"Enable synchronizing member heads"})})}function Dl({action:n,objectIds:r,children:i}){const{store:a}=Et(),s=y(),[l,c]=o(!1),d=h(()=>(c(!0),Promise.resolve(!0)),[]);to(n.id,d);return t("div",{children:[i,e(Sl,{isOpen:l,onClose:e=>{c(!1),void 0!==e&&a.runOperation({name:"change_type",ids:r,params:{typeId:e}}).then(e=>{s({status:"success",title:"Change Type",description:`Change the type of ${r.length} objects is ${"in_progress"===e.status?"in progress":"completed"}`,duration:2e3})}).catch(e=>{s({status:"error",title:"Error changing type",description:e.message,duration:5e3})})},title:"Change Content Type",confirmLabel:"Change Type",children:t("div",{className:"text-sm flex flex-col gap-x-2",children:[t("p",{children:["Choose a new Content Type for the selected object",r.length>1?"s":" ","or let the system choose or generate a type based on the content."]}),t("p",{className:"pt-2 text-xs",children:["Note: This action will raise the ",e("code",{children:"change_type"})," event and will trigger the standard intake workflows which may reset the object properties."]})]})})]})}const $l={id:"changeType",name:"Change Content Type",description:"Change the Content Type of the selected documents",confirm:!1,component:Dl};function Ll({action:r,callback:i,children:a}){const[s,l]=o(!1),c=r.confirmationText||`Are you sure you want to ${r.name}?`,d=h(e=>r.confirm?(l(!0),Promise.resolve(!0)):i(e),[r.confirm,i]),u=to(r.id,d);return t(n,{children:[a,e(we,{onConfirm:()=>{l(!1),i({...u.params,action:r})},onCancel:()=>l(!1),title:"Are you sure?",content:c,isOpen:s})]})}function Ol({action:t,objectIds:n,children:r}){const i=eo(),a=y(),{client:s}=Et(),l=ks(),o=Yt(),c=h(()=>{if(!n||!n.length)return a({status:"error",title:"No objects selected",description:"Please select objects to delete",duration:3e3}),Promise.resolve(!1);function e(e,t){if(e.length<=t)return e;const n=e.lastIndexOf("."),r=-1!==n?e.substring(n):"";return`${(-1!==n?e.substring(0,n):e).substring(0,t-r.length-3)}...${r}`}return Promise.all(n.map(e=>s.store.objects.delete(e))).then(t=>{const r=t.length>1?"s":"";if(a({status:"success",title:`${t.length} object${r} deleted`,description:`Objects ${e(t.map(e=>e.id).join(", "),100)} have been deleted`,duration:2e3}),l){i.params?.selection?.removeAll();const e=JSON.parse(JSON.stringify(l.facets));n.length===e._value.total&&l.resetFacets(),l.search()}else o("/objects")}).catch(e=>{a({status:"error",title:"Error deleting objects",description:e.message,duration:5e3})})},[n]);return e(Ll,{action:t,callback:c,children:r})}const Rl={id:"delete",name:"Delete",description:"Delete the selected objects",confirm:!0,confirmationText:"Are you sure you want to delete all the selected objects? This action cannot be undone.",component:Ol,destructive:!0},Ul={id:"deleteFromCollections",name:"Delete Objects",description:"Delete the selected objects",confirm:!0,confirmationText:"Are you sure you want to delete the selected objects?\nThis is not removable from collections.",component:Ol,destructive:!0};function Ml({action:t,objectIds:n}){const{store:r}=Et(),i=y(),[a,s]=o(!1),[l,c]=o(!1),d=h(()=>(s(!0),Promise.resolve(!0)),[]),u=to(t.id,d);return e("div",{children:e(nl,{isExporting:l,isOpen:a,onClose:(e,t)=>{if(e&&(t||n.length>0)){c(!0);const a=u.params?.search?.query||{},l=u.params?.search?.result?.value?.objects?.map(e=>e.id)||void 0,o=async e=>r.objects.list({query:{parent:e}}).then(e=>e.map(e=>e.id));(async()=>t?l?a.vector?l:[]:0===n.length?[]:(await o(n[0])).concat(n):n)().then(l=>{r.objects.exportProperties({objectIds:l,type:e,query:t&&!a.vector?a:{type:a.type}}).then(r=>{let a;if(e===tl.CSV)a=new Blob([r.data],{type:r.type});else if(e===tl.JSON)a=new Blob([JSON.stringify(r.data)],{type:r.type});else{const e=r.data;a=new Blob([new Uint8Array(e.data)],{type:r.type})}const s=window.URL.createObjectURL(a),l=document.createElement("a");l.download=r.name,l.href=s,l.click(),i({status:"success",title:"Export Properties",description:t?"Export the properties of all objects completed":`Export the properties of ${n.length} object${n.length>1?"s":""} is completed`,duration:2e3})}).catch(e=>{i({status:"error",title:"Error Export Properties",description:e.message,duration:5e3})}).finally(()=>{c(!1),s(!1)})})}else s(!1)}})})}const Vl={id:"exportProperties",name:"Export Properties",description:"Export all Object Properties",confirm:!1,component:Ml};function Kl({action:t,objectIds:n,collectionId:r}){const i=eo(),a=y(),{client:s}=Et(),l=ks(),o=h(()=>n&&n.length?r?s.store.collections.deleteMembers(r,n).then(()=>{const e=n.length>1?"s":"";a({status:"success",title:`${n.length} object${e} removed from collection`,description:"Objects have been removed from the collection",duration:2e3}),l&&(i.params?.selection?.removeAll(),l.search())}).catch(e=>{a({status:"error",title:"Error removing objects from collection",description:e.message,duration:5e3})}):(a({status:"error",title:"No collection context",description:"Cannot remove objects: no collection specified",duration:3e3}),Promise.resolve(!1)):(a({status:"error",title:"No objects selected",description:"Please select objects to remove from collection",duration:3e3}),Promise.resolve(!1)),[n,r]);return e(Ll,{action:t,callback:o})}const ql={id:"removeFromCollection",name:"Remove from Collection",description:"Remove the selected objects from this collection",confirm:!0,confirmationText:"Are you sure you want to remove the selected objects from this collection?",component:Kl,destructive:!0};function Bl({action:t,objectIds:n,collectionId:r}){const i=y(),{client:a}=Et(),[s,l]=o(!1),c=h(()=>(l(!0),Promise.resolve(!0)),[]);return to(t.id,c),e(Gl,{isOpen:s,onClose:e=>{if(l(!1),e)return a.store.workflows.rules.execute(e,n,{collection_id:r}).then(()=>{i({title:"Workflow started",status:"success",duration:3e3})}).catch(e=>{i({title:"Error starting workflow",status:"error",description:e.message,duration:9e3})})}})}const Wl={id:"startWorkflow",name:"Start Workflow",description:"Start an workflow on the selected objects",confirm:!1,hideInList:!0,component:Bl};function Gl({isOpen:n,onClose:r}){return t(q,{onClose:()=>r(void 0),isOpen:n,className:"",children:[e(B,{children:"Start a Workflow by Rule"}),e(Jl,{onClose:r})]})}function Hl(n){return{label:t("div",{children:[e("div",{children:n.name}),e("div",{className:"text-sm text-muted",children:n.description})]}),reverse:!0}}function Jl({onClose:n}){const[r,i]=o(void 0),a=eo();return t("div",{children:[t(W,{children:[e("div",{className:"pb-2",children:"Choose a workflow rule to start:"}),e("div",{className:"max-h-[420px] overflow-y-scroll border-border border rounded-md",children:e(je,{options:a.wfRules,optionLayout:Hl,onChange:e=>{i(e)},value:r})})]}),t(G,{children:[e(v,{variant:"secondary",onClick:()=>n(),children:"Cancel"}),e(v,{onClick:()=>{r&&n(r.id)},isDisabled:!r,children:"Start"})]})]})}class Yl{params;allActions=[Vl,$l,Wl,io,Rl,ql,Ul];wfRules=[];callbacks={};startWorkflow;constructor(e){this.params=e}get actions(){return!!this.params.selection?.collectionId?this.allActions.filter(e=>"addToCollection"!==e.id&&"delete"!==e.id):this.allActions.filter(e=>"removeFromCollection"!==e.id&&"deleteFromCollections"!==e.id)}async loadWorkflows(){return this.params.client.workflows.rules.list().then(e=>{this.wfRules=e.map(e=>({id:e.id,name:e.name,description:e.description,confirm:!1,isWorkflow:!0,component:Bl})).sort((e,t)=>e.name.localeCompare(t.name))}),this.wfRules}registerCallback(e,t){return this.callbacks[e]=t,()=>{delete this.callbacks[e]}}unregisterCallback(e){delete this.callbacks[e]}findAction(e){let t=this.allActions.find(t=>t.id===e);return t||(t=this.wfRules.find(t=>t.id===e)),t}async run(e){const t=this.findAction(e);if(!t)throw new Error(`Action ${e} not found`);const n={...this.params,action:t},r=this.callbacks[e];if(r)return r(n);throw new Error("No action callback set")}}const Zl=d(void 0);function Ql({children:n}){const r=us(),i=y(),{client:a}=Et(),s=ks(),{data:o,error:c}=L(()=>a.workflows.rules.list().then(e=>e.map(e=>({id:e.id,name:e.name,description:e.description,confirm:!1,isWorkflow:!0,component:Bl})).sort((e,t)=>e.name.localeCompare(t.name))),[]),d=l(()=>{const e=new Yl({selection:r,toast:i,client:a,search:s});return e.wfRules=o,e},[r,o]);return c?e(O,{title:"Failed to fetch workflows",children:c.message}):d&&t(Zl.Provider,{value:d,children:[e(Xl,{}),n]})}function Xl({}){const t=eo(),n=t.params.selection,r=n.getObjectId(),i=n.isSingleSelection()&&r?[r]:n.getObjectIds();return e("div",{style:{display:"none"},children:t.allActions.map(t=>e(t.component,{action:t,objectIds:i,collectionId:n.collectionId},t.id))})}function eo(){const e=u(Zl);if(!e)throw new Error("You cannot use useActionContext outside an ActionProvider");return e}function to(e,t){const n=eo();return c(()=>n.registerCallback(e,t),[n,e,t]),n}function no(e){const t=eo();return c(()=>(t.startWorkflow=e,()=>{t.startWorkflow=void 0}),[e,t]),t}function ro({action:t,objectIds:n}){const[r,i]=o(!1),a=h(()=>(n.length>0&&i(!0),Promise.resolve(!0)),[n]);return to(t.id,a),r&&e(K,{children:e(ao,{objectIds:n,isOpen:r,onClose:()=>{i(!1)}})})}const io={id:"addToCollection",name:"Add to Collection",description:"Add documents to a collection",confirm:!1,component:ro};function ao({isOpen:n,onClose:r,objectIds:i}){return t(q,{isOpen:n,onClose:r,className:"max-w-lg w-full min-w-0 overflow-hidden",children:[e(B,{className:"flex flex-col min-w-0 overflow-hidden",children:"Add to a Collection"}),e(_e,{className:"min-w-0 overflow-hidden",children:"Add the selected objects to an existing collection or create a new one."}),e("div",{className:"min-w-0 max-w-full overflow-hidden",children:e(so,{onClose:r,objectIds:i})})]})}function so({onClose:n,objectIds:r}){const i=y(),{client:a}=Et(),[s,l]=o(),c=({collectionId:e})=>{e&&r?.length&&a.store.collections.addMembers(e,r).then(()=>{i({title:"Add to collection success",status:"success",description:`Added ${r.length} objects to the selected collection`,duration:3e3}),n()}).catch(()=>{i({title:"Add to collection failure",status:"error",description:"Failed to add the selected objects to the collection",duration:5e3})})},d=[{name:"select",label:"Select Collection",content:t("div",{className:"p-4 min-w-0 max-w-full overflow-hidden",children:[e(Te,{level:5,children:"Choose from existing collections"}),e(W,{className:"min-w-0 max-w-full overflow-hidden",children:e("div",{className:"mb-4 min-w-0 max-w-full overflow-hidden",children:e(zl,{onChange:(e,t)=>{"string"==typeof e||void 0===e?l(e):Array.isArray(e)&&e.length>0?l(e[0]):l(void 0)},value:s})})}),e(G,{children:e(v,{isDisabled:!s,onClick:()=>s&&c({collectionId:s}),children:"Add to Collection"})})]})},{name:"create",label:"Create new",content:e("div",{className:"p-4",children:e(ol,{onClose:n,onAddToCollection:e=>c({collectionId:e}),redirect:!1})})}];return t(Ie,{defaultValue:"select",tabs:d,fullWidth:!0,children:[e(Ae,{}),e(ze,{})]})}function lo(){const n=us(),r=n.size(),i=r>1?"s":"",a=n?.hasSelection(),s=n?.isSingleSelection();return e(Ql,{children:t("div",{className:"flex items-center gap-x-2",children:[a&&!s&&t("div",{className:"flex items-center gap-x-1 shrink-0",children:[t("div",{className:"text-sm nowrap",children:[r," document",i," selected"]}),e(v,{title:"Clear selection",variant:"ghost",onClick:()=>{n?.removeAll()},children:e(it,{className:"size-4"})})]}),e(ho,{selection:n,children:e(v,{variant:"ghost",alt:"More action",size:"sm",children:e(jt,{size:16})})}),a&&e(oo,{selection:n})]})})}function oo({}){return e(uo,{})}function co({collectionId:r}){const[i,a]=o([]),s=us(),l=s?.hasSelection();return!l&&t(n,{children:[e(v,{onClick:()=>(()=>{const e=document.createElement("input");e.type="file",e.multiple=!0,e.accept="*",e?.click(),e.onchange=e=>{const t=e.target.files;t&&a(Array.from(t))}})(),children:"Upload"}),e(Is,{collectionId:r??"",isOpen:i.length>0,onClose:()=>a([]),files:i,title:"Upload Files",onUploadComplete:e=>{e&&e.success&&a([])},children:e("div",{className:"text-sm",children:"Select the associated Content Type, or let the system choose or generate the type based on the content."})})]})}function uo(){const t=eo();return t.params.selection.hasSelection()&&e(v,{onClick:()=>t.run(Wl.id),children:"Start Workflow"})}function mo(e){return{label:e.name,className:r("flex-1 px-2 py-2 hover:bg-accent nowrap",e.destructive?"text-destructive":"")}}function ho({selection:n,children:r}){const i=eo();return t(x,{hover:!0,children:[e(w,{children:r}),e(N,{className:"p-0 w-50",align:"end",sideOffset:6,children:e(po,{executeAction:e=>{i.run(e.id)},selection:n})})]})}function po({executeAction:t,selection:n}){const r=eo(),i=n?.hasSelection()?r.actions.filter(e=>!e.hideInList):[Vl];return e("div",{className:"rounded-md shadow-md py-2",children:e("div",{className:"px-1 text-sm",children:e(je,{options:i,optionLayout:mo,onChange:e=>{t(e)},noCheck:!0})})})}function fo({onSend:n,disabled:r=!1,isSending:i=!1,isCompleted:a=!1,activeTaskCount:s=0,placeholder:l="Type your message..."}){const d=m(null),[u,h]=o(""),[p,f]=o(!1);c(()=>{!r&&a&&d.current?.focus()},[r,a]);const g=()=>{const e=u.trim();!e||r||i||(n(e),h(""))};return t("div",{className:"p-3 border-t border-muted flex-shrink-0",style:{minHeight:"90px"},children:[t("div",{className:"flex items-center space-x-2",children:[t("div",{className:"flex flex-1 space-x-1",children:[e(z,{ref:d,value:u,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),g())},onChange:h,disabled:r||i,placeholder:l,className:"pr-12 py-2.5"}),e(v,{variant:"ghost",className:"rounded-full",disabled:!a,onClick:()=>f(!0),alt:"Link Object",children:e(_t,{className:"size-4"})})]}),t(v,{onClick:g,disabled:r||i||!u.trim(),className:"px-4 py-2.5",children:[i?e(V,{size:"sm",className:"mr-2"}):e(Tt,{className:"size-4 mr-2"})," Send"]})]}),e("div",{className:"text-xs text-muted mt-2 text-center",children:s>0?t("div",{className:"flex items-center justify-center",children:[e(It,{className:"h-3 w-3 mr-1 text-attention"}),t("span",{children:["Agent has ",s," active workstream",1!==s?"s":""," running"]})]}):r?"Agent is processing, you can continue once it completes...":"You can send a message at any time"}),t(q,{isOpen:p,onClose:()=>f(!1),className:"min-w-[60vw]",children:[e(B,{children:"Link Object"}),e(W,{className:"pb-6",children:e(Os,{onChange:e=>{const t=`[${e.properties?.title||e.name||"Object"}](store:${e.id})`,n=u||"",r=d.current?.selectionStart||n.length,i=n.substring(0,r)+t+n.substring(r);h(i),f(!1),setTimeout(()=>{if(d.current){d.current.focus();const e=r+t.length;d.current.setSelectionRange(e,e)}},100)}})})]})]})}const go=s.memo(function({plan:r,workstreamStatus:i,isOpen:a,onClose:s,plans:l=[],activePlanIndex:o=0,onChangePlan:c=()=>{}}){return a?t("div",{className:"h-full shadow-xl border border-muted/20 overflow-hidden",children:[t("div",{className:"flex items-center justify-between p-3 border-b border-muted/20",children:[e("h3",{className:"font-bold text-base",children:"Plan"}),t(v,{variant:"ghost",onClick:s,children:[e(it,{className:"size-4"}),e("span",{className:"sr-only",children:"Close"})]})]}),t("div",{className:"p-3 overflow-y-auto",style:{height:"calc(100% - 44px)",maxHeight:"calc(100vh - 150px)"},children:[t("div",{className:"mb-3 p-2 bg-info rounded-md border border-info",children:[e("div",{className:"text-xs font-medium text-info mb-1",children:"Task Progress"}),e("div",{className:"flex items-center gap-2",children:(()=>{const a=r.plan||[],s=a.length;let l=0;s>0&&a.forEach(e=>{if(e&&e.id){const t=e.id.toString();"completed"===i.get(t)&&l++}});const o=s>0?Math.round(l/s*100):0;return t(n,{children:[e("div",{className:"w-full bg-muted rounded-full h-2",children:e("div",{className:"bg-background h-2 rounded-full",style:{width:`${o}%`}})}),e("span",{className:"text-xs text-muted",children:s>0?`${l}/${s}`:"0/0"})]})})()})]}),l.length>1&&t("div",{className:"mb-3 flex items-center justify-between",children:[e(v,{variant:"ghost",onClick:()=>c(Math.min(l.length-1,o+1)),disabled:o>=l.length-1,children:"Older Plan"}),e("div",{className:"text-xs text-muted",children:l[o]?.timestamp?new Date(l[o].timestamp).toLocaleTimeString():"Unknown time"}),e(v,{variant:"ghost",onClick:()=>c(Math.max(0,o-1)),disabled:o<=0,children:"Newer Plan"})]}),t("div",{className:"rounded-md border border-muted/30",children:[e("div",{className:"p-2 border-b border-muted/30 bg-muted",children:e("div",{className:"font-medium text-xs",children:"Step-by-Step Plan"})}),e("div",{className:"divide-y divide-muted/20 max-h-[calc(100vh-350px)] overflow-y-auto",children:r.plan&&r.plan.length>0?r.plan.map((n,r)=>{const a=n.id?n.id.toString():`task-${r}`,s=n.goal||`Task ${r+1}`;let l=n.status||"pending";i.has(a)&&(l=i.get(a));let o=At,c="text-muted";return"in_progress"===l?(o=Me,c="text-info"):"completed"===l&&(o=Ue,c="text-success"),t("div",{className:"flex p-3 my-1",children:[e("div",{className:"mr-2 mt-0.5 flex-shrink-0 text-muted",children:a}),t("div",{className:"w-full",children:[e("div",{className:"text-sm font-medium mb-2 text-muted",children:s}),t("div",{className:"mt-1 flex justify-end items-center",children:[e("div",{className:`mr-2 mt-0.5 flex-shrink-0 ${c}`,children:e(o,{className:"size-3.5"})}),e(b,{variant:"completed"===l?"success":"in_progress"===l?"info":"default",children:"completed"===l?"Completed":"in_progress"===l?"In Progress":"Pending"})]})]})]},r)}):t("div",{className:"p-3 text-center text-muted italic",children:[e(Oe,{className:"size-4 mx-auto mb-2 text-attention"}),e("p",{className:"text-xs",children:"No plan has been detected yet"}),e("p",{className:"text-xs mt-1",children:"Plans will appear here when the agent creates one"})]})})]}),(()=>{const n=new Set((r.plan||[]).filter(e=>e&&e.id).map(e=>e.id.toString())),a=Array.from(i.entries()).filter(([e])=>"main"!==e&&!n.has(e));return a.length>0?t("div",{className:"mt-3 rounded-md border border-gray-200 dark:border-gray-800",children:[e("div",{className:"p-2 border-b border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-900/50",children:e("div",{className:"font-medium text-xs",children:"Workstreams"})}),e("div",{className:"p-3",children:e("div",{className:"grid grid-cols-1 gap-2",children:a.map(([n,r])=>{let i=At,a="text-gray-400",s="bg-gray-100 dark:bg-gray-800",l="Pending";return"in_progress"===r?(i=Me,a="text-info",s="bg-info/20",l="In Progress"):"completed"===r&&(i=Ue,a="text-success",s="bg-success/20",l="Completed"),t("div",{className:`flex items-center p-1.5 rounded ${s}`,children:[e("div",{className:`mr-1.5 ${a}`,children:e(i,{className:"h-3.5 w-3.5"})}),e("div",{className:"flex-1",children:e("span",{className:"text-xs font-medium text-gray-800 dark:text-gray-300",children:n})}),e("span",{className:"text-xs font-medium",children:l})]},n)})})})]}):null})()]})]}):null});function yo(t){const{run:n,startWorkflow:r}=t;if(n){const r="runId"in n?n:{runId:n.run_id,workflowId:n.workflow_id};return e(xo,{...t,run:r})}return r?e(vo,{...t}):e(bo,{})}function bo(){return t(oe,{status:"info",icon:e(De,{className:"size-16 text-muted mb-4"}),children:[e("div",{className:"text-base font-medium text-muted",children:"No agent currently running"}),e("div",{className:"mt-3 text-sm text-muted",children:"Select an interaction and click Start to start an agent"})]})}function vo({initialMessage:n,startWorkflow:r,onClose:i,isModal:a=!1,placeholder:s="Type your message...",startButtonText:l="Start Agent",title:d="Start New Conversation"}){const[u,h]=o(""),[p,f]=o(!1),[g,b]=o(),x=y(),w=m(null);c(()=>{w.current&&w.current.focus()},[]);const N=async()=>{if(!r)return;const e=u.trim();if(e&&!p){f(!0);try{sessionStorage.removeItem("plan-panel-shown"),x({title:"Starting agent...",status:"info",duration:3e3});const t=await r(e);t&&(b({runId:t.run_id,workflowId:t.workflow_id}),h(""),x({title:"Agent started",status:"success",duration:3e3}))}catch(e){x({title:"Error starting workflow",status:"error",duration:3e3,description:e instanceof Error?e.message:"Unknown error"})}finally{f(!1)}}};return g?e(xo,{onClose:i,isModal:a,initialMessage:n,placeholder:s,run:g,title:d}):t("div",{className:"flex flex-col h-full bg-white dark:bg-gray-900 overflow-hidden border-0",children:[t("div",{className:"flex items-center justify-between py-2 px-3 border-b border-gray-100 dark:border-gray-800 bg-white dark:bg-gray-900",children:[t("div",{className:"flex items-center space-x-2",children:[e("div",{className:"p-1",children:e(zt,{className:"size-3.5 text-muted"})}),e("span",{className:"font-medium text-sm text-gray-700 dark:text-gray-300",children:d})]}),i&&!a&&e(v,{size:"xs",variant:"ghost",onClick:i,title:"Close",className:"text-slate-500 hover:text-slate-700",children:e(Ke,{className:"size-4"})})]}),t("div",{className:"flex-1 overflow-y-auto px-4 py-6 bg-white dark:bg-gray-900 flex flex-col items-center justify-center",children:[n&&e("div",{className:"px-4 py-3 mb-4 bg-blue-50/80 dark:bg-blue-900/30 border-l-2 border-blue-400 dark:border-blue-500 text-blue-700 dark:text-blue-300 max-w-md",children:n}),t("div",{className:"bg-white dark:bg-slate-800 p-4 max-w-md border-l-2 border-blue-400 dark:border-blue-500",children:[e("div",{className:"text-base text-slate-600 dark:text-slate-300 font-medium",children:"Enter a message to start a conversation"}),t("div",{className:"mt-3 text-sm text-slate-500 dark:text-slate-400",children:["Type your question below and press Enter or click ",l," ","to begin"]})]})]}),t("div",{className:"py-3 px-3 border-t border-gray-100 dark:border-gray-800 bg-white dark:bg-gray-900",children:[t("div",{className:"flex items-center gap-2",children:[e("div",{className:"flex-1",children:e("input",{ref:w,value:u,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),N())},placeholder:s,disabled:p,className:"w-full py-2 px-3 text-sm border border-gray-200 dark:border-gray-700 dark:bg-gray-800 dark:text-white focus:border-gray-300 dark:focus:border-gray-600 focus:ring-0 rounded-md"})}),t(v,{onClick:N,disabled:!u.trim()||p,className:"px-3 py-2 bg-gray-800 dark:bg-gray-700 hover:bg-gray-700 dark:hover:bg-gray-600 text-white text-xs rounded-md transition-colors",children:[p?e(V,{size:"sm",className:"mr-1.5"}):e(Tt,{className:"size-3.5 mr-1.5"}),l]})]}),e("div",{className:"text-xs text-gray-400 dark:text-gray-500 mt-2 text-center",children:"Type a message to start the conversation"})]})]})}function xo({run:n,title:r,interactive:i=!0,onClose:a,isModal:s=!1,placeholder:d="Type your message...",resetWorkflow:u}){const{client:h}=Et(),p=m(null),f=m(null),[g,b]=o([]),[x,w]=o(!1),[N,k]=o(!1),[C,S]=o("sliding"),[P,j]=o(!s),[_,T]=o([]),[I,A]=o(0),[z,E]=o(new Map),[F,D]=o(0),$=y(),[L,O]=o(i),[R,U]=o(null),M=l(()=>{const e=_[I]||{plan:{plan:[]},timestamp:0},t=z.get(e.timestamp)||new Map;return{plan:e.plan,workstreamStatus:t}},[_,I,z]);c(()=>{if(!x){const e=setInterval(()=>{D(()=>Math.floor(Math.random()*(Sr.length-1)))},4e3);return()=>clearInterval(e)}},[x]);c(()=>(b([]),T([]),A(0),E(new Map),j(!1),U(null),(async()=>{try{const e=await h.store.workflows.getRunDetails(n.runId,n.workflowId);U(e.status)}catch(e){console.error("Failed to check workflow status:",e)}})(),h.store.workflows.streamMessages(n.workflowId,n.runId,e=>{e.message&&b(t=>t.find(t=>t.timestamp===e.timestamp)?t:(function(e,t){const n="number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime(),r=e.findIndex(e=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())>n);-1===r?e.push(t):e.splice(r,0,t)}(t,e),[...t]))}),()=>{b([])}),[n.runId,h.store.workflows]),c(()=>{w(!function(e){if(!e.length)return!0;const t=new Map;if(e.forEach(e=>{const n=jr(e);t.has(n)||t.set(n,[]),t.get(n).push(e)}),console.log("[isInProgress] Workstreams found:",Array.from(t.keys())),1===t.size&&!t.has("main")){const e=t.keys().next().value||"unknown";console.log(`[isInProgress] Only one workstream found (${e}), treating as main`);const n=t.get(e),r=n[n.length-1];return console.log(`[isInProgress] Last message type in only workstream: ${r.type}`),Pr.includes(r.type)?(console.log("[isInProgress] Only workstream is completed"),!1):(console.log("[isInProgress] Only workstream is still in progress"),!0)}if(t.has("main")){const e=t.get("main");if(0===e.length)return console.log("[isInProgress] Main workstream exists but has no messages, still in progress"),!0;const n=e[e.length-1];return console.log(`[isInProgress] Last message type in main workstream: ${n.type}`),Pr.includes(n.type)?(console.log("[isInProgress] Main workstream is completed"),!1):(console.log("[isInProgress] Main workstream is still in progress"),!0)}console.log("[isInProgress] Multiple workstreams but no main, checking if any are still active");for(const[e,n]of t.entries())if(n.length>0){const t=n[n.length-1];if(!Pr.includes(t.type))return console.log(`[isInProgress] Workstream ${e} is still active`),!0}return console.log("[isInProgress] All workstreams are completed"),!1}(g)),0===_.length&&j(!1)},[g,_.length]),c(()=>{if(1===_.length&&!P&&!sessionStorage.getItem("plan-panel-shown")){const e=setTimeout(()=>{j(!0),sessionStorage.setItem("plan-panel-shown","true")},500);return()=>clearTimeout(e)}g.forEach(e=>{if(e.type===Ft.PLAN)try{console.log("PLAN message received:",e.type);let t=null;if(e.details&&"object"==typeof e.details&&e.details.plan&&Array.isArray(e.details.plan)&&(console.log("Valid plan array found in message.details.plan"),t={plan:e.details.plan}),t){const n="number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime();if(-1===_.findIndex(e=>e.timestamp===n)&&t){console.log("Adding new plan to plans array");const e={plan:t,timestamp:n};console.log("Adding plan to plans array:",e),T(t=>{const n=[e,...t];return console.log("New plans array:",n),n}),A(0),console.log("Setting showSlidingPanel to true"),j(!0);const r=new Map;r.set("main","in_progress"),Array.isArray(t.plan)&&t.plan.forEach(e=>{if(e&&"object"==typeof e&&e.id){const t=e.id.toString();r.set(t,e.status||"pending")}}),E(e=>{const t=new Map(e);return t.set(n,r),t})}}}catch(e){console.error("Failed to parse plan from message:",e)}e.type===Ft.UPDATE&&e.details&&e.details.updates&&Array.isArray(e.details.updates)&&console.log("Ignoring UPDATE message with details.updates - waiting for PLAN message with full plan")});const e=g[g.length-1];e&&(e.type===Ft.TERMINATED?(O(!1),U("TERMINATED")):O(!!i||e.type===Ft.REQUEST_INPUT))},[g,_,I]);const V=r||n.workflowId.split(":")[2]||"Agent Conversation",[K,H]=o(!1);return t("div",{className:"flex gap-2 h-full",children:[t("div",{ref:f,className:"flex flex-col h-full min-h-0 border-0 "+(P?"lg:w-2/3 flex-1":"flex-1 mx-auto "+(s?"":"max-w-4xl")),children:[e($r,{title:V,isCompleted:x,onClose:a,isModal:s,run:n,viewMode:C,onViewModeChange:S,showPlanPanel:P,hasPlan:_.length>0,onTogglePlanPanel:()=>{j(!P),P||sessionStorage.setItem("plan-panel-shown","true")},onDownload:async()=>{try{const e=await async function(e,t){return e.files.getDownloadUrl(`agents/${t}/conversation.json`).then(e=>e.url)}(h,n.runId);e&&window.open(e,"_blank")}catch(e){console.error("Failed to download conversation",e),$({status:"error",title:"Failed to download conversation",duration:3e3})}},onCopyRunId:()=>{navigator.clipboard.writeText(n.runId),$({status:"success",title:"Run ID copied",duration:2e3})},resetWorkflow:u,onExportPdf:()=>{f.current?H(!0):$({status:"error",title:"PDF export failed",description:"No conversation content available to export",duration:3e3})}}),0!==g.length||x?e(Ar,{messages:g,bottomRef:p,viewMode:C,isCompleted:x,plan:M.plan,workstreamStatus:M.workstreamStatus,showPlanPanel:P,onTogglePlanPanel:()=>{console.log("Toggle plan panel called, current state:",P),j(!P)},plans:_,activePlanIndex:I,onChangePlan:e=>A(e),taskLabels:M.plan.plan?.reduce((e,t)=>(t.id&&t.goal&&e.set(t.id.toString(),t.goal),e),new Map)}):e("div",{className:"flex-1 flex flex-col items-center justify-center h-full text-center py-6",children:t("div",{className:"p-5 max-w-md border border-info rounded-lg shadow-sm",children:[t("div",{className:"flex items-center space-x-3 mb-3",children:[e(xr,{size:"sm",color:"blue"}),e("div",{className:"text-sm text-muted font-medium",children:Sr[F]})]}),e("div",{className:"mt-4 flex justify-center",children:e(vr,{color:"blue",className:"mt-1"})})]})}),R&&("RUNNING"!==R?t(oe,{status:"COMPLETED"===R?"success":"done",icon:null,className:"flex-shrink-0 m-2",children:["This Workflow is ",R]}):L&&e(fo,{onSend:e=>{const t=e.trim();t&&!N&&(k(!0),h.store.workflows.sendSignal(n.workflowId,n.runId,"UserInput",{message:t}).then(()=>{w(!1),$({status:"success",title:"Message Sent",duration:2e3})}).catch(e=>{$({status:"error",title:"Failed to Send Message",description:e instanceof Error?e.message:"Unknown error",duration:3e3})}).finally(()=>{k(!1)}))},disabled:!1,isSending:N,isCompleted:x,activeTaskCount:(()=>{if(!g.length)return 0;const e=new Map;g.forEach(t=>{const n=jr(t);"main"!==n&&"all"!==n&&(e.has(n)||e.set(n,[]),e.get(n).push(t))});let t=0;for(const[n,r]of e.entries())if(r.length>0){const e=r[r.length-1];[Ft.COMPLETE,Ft.IDLE].includes(e.type)||t++}return t})(),placeholder:d}))]}),P&&e("div",{className:"h-full lg:w-1/3 border-l",children:e(go,{plan:M.plan,workstreamStatus:M.workstreamStatus,isOpen:P,onClose:()=>j(!1),plans:_,activePlanIndex:I,onChangePlan:A})}),t(q,{isOpen:K,onClose:()=>H(!1),children:[e(B,{children:"Export conversation as PDF"}),t(W,{children:[e("p",{className:"mb-2",children:"This will open your browser's print dialog with the current conversation."}),e("p",{className:"text-sm text-muted",children:'To save a PDF, choose "Save as PDF" or a similar option in the print dialog.'})]}),t(G,{align:"right",children:[e(v,{variant:"ghost",size:"sm",onClick:()=>H(!1),children:"Cancel"}),e(v,{size:"sm",onClick:()=>{if(!f.current)return void $({status:"error",title:"PDF export failed",description:"No conversation content available to export",duration:3e3});const e=`${V} - ${n.runId}`,t=function(e,t){if("undefined"==typeof window||"undefined"==typeof document)return!1;const n=document.createElement("iframe");n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.style.width="0",n.style.height="0",n.style.border="0",n.style.visibility="hidden",document.body.appendChild(n);const r=n.contentWindow;if(!r)return n.parentNode?.removeChild(n),!1;const i=r.document;return i.open(),i.write(`<!doctype html><html><head><title>${t}</title></head><body></body></html>`),i.close(),i.title=t,document.querySelectorAll('link[rel="stylesheet"], style').forEach(e=>{i.head.appendChild(e.cloneNode(!0))}),i.body.innerHTML=e.innerHTML,r.focus(),r.print(),setTimeout(()=>{n.parentNode?.removeChild(n)},1e3),!0}(f.current,e);t?($({status:"success",title:"PDF export ready",description:"Use your browser's Print dialog to save as PDF",duration:4e3}),H(!1)):$({status:"error",title:"PDF export failed",description:"Unable to open print preview",duration:4e3})},children:"Open print dialog"})]})]})]})}const wo=["#4f46e5","#06b6d4","#22c55e","#f59e0b","#ef4444","#8b5cf6","#ec4899","#14b8a6"];class No extends p{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`Chart rendering error (${this.props.chartType}):`,e,t)}render(){return this.state.hasError?e("div",{className:"flex items-center justify-center h-full bg-red-50 dark:bg-red-950 rounded-md p-4",children:t("div",{className:"text-center",children:[t("p",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:["Cannot render ",this.props.chartType," chart"]}),e("p",{className:"text-xs text-red-500 dark:text-red-500 mt-1 max-w-xs truncate",children:this.state.error?.message||"Unknown error"})]})}):this.props.children}}function ko(e){if(!isFinite(e))return String(e);const t=Math.abs(e);return t>=1e9?(e/1e9).toFixed(1)+"B":t>=1e6?(e/1e6).toFixed(1)+"M":t>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString()}const Co=f(function({spec:r}){const{chart:i,title:a,description:s,data:l,xKey:c,series:d,yAxis:u,options:p,nameKey:f,valueKey:g,yKey:y,zKey:b,axisKey:v,dataKey:x}=r,[w,N]=o(!1),[k,C]=o(!1),S=m(null),P=h(async()=>{if(S.current&&!k)try{const e=await Pn(S.current,{backgroundColor:"#ffffff",pixelRatio:2}),t=await fetch(e),n=await t.blob();await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),C(!0),setTimeout(()=>C(!1),2e3)}catch(e){console.error("Failed to copy chart:",e)}},[k]),j=h(async()=>{if(S.current&&!w){N(!0);try{const e=await Pn(S.current,{backgroundColor:"#ffffff",pixelRatio:2}),t=document.createElement("a");t.download=`${a||"chart"}.png`,t.href=e,t.click()}catch(e){console.error("Failed to export chart:",e)}finally{N(!1)}}},[a,w]),_=d||[],T=l||[],I=t(n,{children:[e(jn,{dataKey:c,tick:{fontSize:12}}),e(_n,{yAxisId:"left",tickFormatter:ko,label:u?.left?.label?{value:u.left.label,angle:-90,position:"insideLeft"}:void 0}),_.some(e=>"right"===e.yAxisId)&&e(_n,{yAxisId:"right",orientation:"right",tickFormatter:ko,label:u?.right?.label?{value:u.right.label,angle:-90,position:"insideRight"}:void 0})]}),A=t(n,{children:[e(Tn,{strokeDasharray:"3 3"}),e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),e(An,{}),p?.referenceZero&&e(zn,{y:0,stroke:"#999",strokeDasharray:"3 3"})]}),z=()=>_.map((t,n)=>{const r=t.color||wo[n%wo.length],a=t.yAxisId||"left";return"line"===i?e(On,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,dot:t.dot??!1,yAxisId:a},t.key):"area"===i?e(Rn,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,fill:r,fillOpacity:.3,stackId:p?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):"bar"===i||"bar"===t.type?e(Un,{dataKey:t.key,name:t.label||t.key,fill:r,stackId:p?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):"area"===t.type?e(Rn,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,fill:r,fillOpacity:.3,stackId:p?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):e(On,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,dot:t.dot??!1,yAxisId:a},t.key)});return e("div",{className:"bg-white dark:bg-gray-900 rounded-lg border border-gray-200 dark:border-gray-800 shadow-sm",children:t("div",{className:"flex flex-col gap-2 p-3",children:[t("div",{className:"flex items-center justify-between",children:[e("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:a||"Chart"}),t("div",{className:"flex items-center gap-2 print:hidden chart-actions",children:[t("button",{onClick:P,disabled:k,className:"text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 flex items-center gap-1",title:"Copy to clipboard",children:[e(k?Pt:lt,{className:"w-3 h-3"}),k?"Copied":"Copy"]}),t("button",{onClick:j,disabled:w,className:"text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1",title:"Export as PNG",children:[e(rt,{className:"w-3 h-3"}),w?"Exporting...":"Export"]})]})]}),s&&e("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:s}),e("div",{ref:S,className:"bg-white dark:bg-gray-900 rounded",style:{width:"100%",height:280,minWidth:0},children:e(No,{chartType:i,children:e(En,{width:"100%",height:"100%",children:(()=>{switch(i){case"bar":return t(Ln,{data:T,children:[I,A,z()]});case"line":return t($n,{data:T,children:[I,A,z()]});case"area":return t(Dn,{data:T,children:[I,A,z()]});case"composed":default:return t(Fn,{data:T,children:[I,A,z()]});case"pie":return t(Mn,{children:[e(Vn,{data:T,dataKey:g||"value",nameKey:f||"name",cx:"50%",cy:"50%",innerRadius:p?.innerRadius||0,outerRadius:100,label:!1!==p?.showLabels,children:T.map((t,n)=>e(Kn,{fill:wo[n%wo.length]},`cell-${n}`))}),e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),e(An,{})]});case"scatter":return(()=>{const n=c,r=y||"y";return t(qn,{children:[e(Tn,{strokeDasharray:"3 3"}),e(jn,{dataKey:n,name:n,tick:{fontSize:12}}),e(_n,{dataKey:r,name:r,tickFormatter:ko}),e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),e(An,{}),_.length>0?_.map((t,n)=>e(Bn,{name:t.label||t.key,data:T,fill:t.color||wo[n%wo.length]},t.key)):e(Bn,{name:"Data",data:T,fill:wo[0]})]})})();case"radar":return(()=>{const n=v||c||"axis";return t(Wn,{cx:"50%",cy:"50%",outerRadius:100,data:T,children:[e(Gn,{}),e(Hn,{dataKey:n,tick:{fontSize:11}}),e(Jn,{tickFormatter:ko}),_.map((t,n)=>e(Yn,{name:t.label||t.key,dataKey:t.key,stroke:t.color||wo[n%wo.length],fill:t.color||wo[n%wo.length],fillOpacity:.3},t.key)),e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),e(An,{})]})})();case"radialBar":return(()=>{const n=f||"name",r=g||"value",i=p?.startAngle??180,a=p?.endAngle??0;return t(Zn,{cx:"50%",cy:"50%",innerRadius:p?.innerRadius??30,outerRadius:100,barSize:15,data:T,startAngle:i,endAngle:a,children:[e(Qn,{label:{position:"insideStart",fill:"#fff",fontSize:11},background:!0,dataKey:r,children:T.map((t,n)=>e(Kn,{fill:wo[n%wo.length]},`cell-${n}`))}),e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),e(An,{iconSize:10,layout:"vertical",verticalAlign:"middle",align:"right",formatter:(e,t)=>{const i=T.find(i=>i[n]===e||i[r]===t.payload?.value);return i?i[n]:e}})]})})();case"funnel":return(()=>{const n=f||"name",r=g||"value";return t(Xn,{children:[e(In,{formatter:e=>"number"==typeof e?ko(e):String(e)}),t(er,{dataKey:r,data:T,isAnimationActive:!0,children:[T.map((t,n)=>e(Kn,{fill:wo[n%wo.length]},`cell-${n}`)),!1!==p?.showLabels&&e(tr,{position:"center",fill:"#fff",stroke:"none",dataKey:n})]})]})})();case"treemap":return e(nr,{data:T,dataKey:x||g||"value",aspectRatio:4/3,stroke:"#fff",fill:"#4f46e5",content:({x:r,y:i,width:a,height:s,name:l,value:o,index:c})=>t("g",{children:[e("rect",{x:r,y:i,width:a,height:s,style:{fill:wo[c%wo.length],stroke:"#fff",strokeWidth:2}}),a>50&&s>30&&t(n,{children:[e("text",{x:r+a/2,y:i+s/2-7,textAnchor:"middle",fill:"#fff",fontSize:12,children:l}),e("text",{x:r+a/2,y:i+s/2+10,textAnchor:"middle",fill:"#fff",fontSize:11,children:ko(o)})]})]})})}})()})})})]})})},(e,t)=>JSON.stringify(e.spec)===JSON.stringify(t.spec));function So(e){const{title:t,leftLabel:n,rightLabel:r,metrics:i,description:a,collapseInitially:s}=e;return{version:"1.0",library:"recharts",chart:"bar",title:t||"Scenario Comparison",description:a,data:i.map(e=>({label:e.label,left:e.left,right:e.right})),xKey:"label",series:[{key:"left",label:n,type:"bar"},{key:"right",label:r,type:"bar"}],yAxis:{left:{label:"Value"}},options:{stacked:!1,referenceZero:!1,collapseInitially:s}}}function Po(e){const{title:t,metrics:n,description:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"bar",title:t||"Change vs. Baseline (%)",description:r,data:n.map(e=>({label:e.label,deltaPct:0!==e.left?(e.right-e.left)/e.left*100:0})),xKey:"label",series:[{key:"deltaPct",label:"% Change",type:"bar"}],yAxis:{left:{label:"% Change"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function jo(e){return["```chart",JSON.stringify(e,null,2),"```"].join("\n")}function _o(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"composed",title:t||"Cashflow Timeline",description:n,data:r.map(e=>({period:e.period,calls:e.calls,distributions:e.distributions,netCashflow:e.netCashflow??e.distributions-e.calls})),xKey:"period",series:[{key:"calls",label:"Calls",type:"bar",color:"#ef4444"},{key:"distributions",label:"Distributions",type:"bar",color:"#22c55e"},{key:"netCashflow",label:"Net Cashflow",type:"line",color:"#0ea5e9",yAxisId:"right",dot:!1}],yAxis:{left:{label:"Amount"},right:{label:"Net"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function To(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"Performance (J‑Curve)",description:n,data:r.map(e=>({period:e.period,tvpi:e.tvpi??null,dpi:e.dpi??null,rvpi:e.rvpi??null})),xKey:"period",series:[{key:"tvpi",label:"TVPI",type:"line",color:"#4f46e5",dot:!1},{key:"dpi",label:"DPI",type:"line",color:"#16a34a",dot:!1},{key:"rvpi",label:"RVPI",type:"line",color:"#f59e0b",dot:!1}],yAxis:{left:{label:"Multiple (x)"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function Io(e){const{title:t,description:n,rows:r,leftLabel:i,rightLabel:a,collapseInitially:s}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"TVPI Over Time",description:n,data:r,xKey:"period",series:[{key:"tvpi_left",label:`TVPI – ${i}`,type:"line",color:"#4f46e5",dot:!1},{key:"tvpi_right",label:`TVPI – ${a}`,type:"line",color:"#6366f1",dot:!1}],yAxis:{left:{label:"Multiple (x)"}},options:{stacked:!1,referenceZero:!0,collapseInitially:s}}}function Ao(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"NAV Over Time",description:n,data:r.map(e=>({period:e.period,nav:e.nav})),xKey:"period",series:[{key:"nav",label:"NAV",type:"line",color:"#0ea5e9",dot:!1}],yAxis:{left:{label:"NAV"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}const zo={name:"create_chart",description:'Create an interactive chart visualization that will be rendered in the UI.\n\nIMPORTANT: You don\'t actually "call" this tool. Instead, you include a markdown code block with language "chart" in your response.\n\nCharts are created using JSON specifications in markdown code blocks:\n\n```chart\n{\n "chart": "bar|line|area|composed|pie|scatter|radar|radialBar|funnel|treemap",\n "title": "Chart Title",\n "data": [...],\n ...\n}\n```\n\n## CHART TYPES & WHEN TO USE\n\n| Type | Use Case | Data Shape |\n|------|----------|------------|\n| bar | Category comparisons | `[{x, y1, y2}]` |\n| line | Trends over time | `[{x, y1, y2}]` |\n| area | Trends with volume emphasis | `[{x, y1, y2}]` |\n| composed | Mix bars + lines | `[{x, y1, y2}]` with series.type |\n| pie | Part-to-whole (%) | `[{name, value}]` |\n| scatter | Correlation analysis | `[{x, y}]` |\n| radar | Multi-dimensional comparison | `[{axis, A, B}]` |\n| radialBar | Progress/gauges | `[{name, value}]` |\n| funnel | Conversion stages | `[{name, value}]` |\n| treemap | Hierarchical proportions | `[{name, value}]` |\n\n## EXAMPLES\n\n### Bar Chart\n```chart\n{"chart":"bar","title":"Revenue by Quarter","data":[{"quarter":"Q1","revenue":100000},{"quarter":"Q2","revenue":150000}],"xKey":"quarter","series":[{"key":"revenue","label":"Revenue"}]}\n```\n\n### Line Chart\n```chart\n{"chart":"line","title":"Performance","data":[{"period":"Q1","tvpi":1.2},{"period":"Q2","tvpi":1.5}],"xKey":"period","series":[{"key":"tvpi","label":"TVPI","color":"#4f46e5"}]}\n```\n\n### Area Chart\n```chart\n{"chart":"area","title":"Sales Volume","data":[{"month":"Jan","sales":1000},{"month":"Feb","sales":1500}],"xKey":"month","series":[{"key":"sales","label":"Sales"}],"options":{"stacked":true}}\n```\n\n### Composed Chart (Bar + Line)\n```chart\n{"chart":"composed","title":"Cashflow","data":[{"period":"Q1","calls":1000000,"net":-500000}],"xKey":"period","series":[{"key":"calls","type":"bar","color":"#ef4444"},{"key":"net","type":"line","yAxisId":"right"}],"yAxis":{"left":{"label":"Amount"},"right":{"label":"Net"}}}\n```\n\n### Pie Chart\n```chart\n{"chart":"pie","title":"Market Share","data":[{"name":"Product A","value":400},{"name":"Product B","value":300},{"name":"Product C","value":200}],"nameKey":"name","valueKey":"value"}\n```\n\n### Donut Chart (Pie with innerRadius)\n```chart\n{"chart":"pie","title":"Revenue Split","data":[{"name":"Services","value":60},{"name":"Products","value":40}],"nameKey":"name","valueKey":"value","options":{"innerRadius":50}}\n```\n\n### Scatter Chart\n```chart\n{"chart":"scatter","title":"Price vs Volume","data":[{"price":100,"volume":500},{"price":150,"volume":400}],"xKey":"price","yKey":"volume","series":[{"key":"data","label":"Products"}]}\n```\n\n### Radar Chart\n```chart\n{"chart":"radar","title":"Skills Comparison","data":[{"skill":"Speed","A":120,"B":110},{"skill":"Power","A":98,"B":130}],"axisKey":"skill","series":[{"key":"A","label":"Team A"},{"key":"B","label":"Team B"}]}\n```\n\n### RadialBar Chart (Progress)\n```chart\n{"chart":"radialBar","title":"Goal Progress","data":[{"name":"Sales","value":80},{"name":"Users","value":65}],"nameKey":"name","valueKey":"value"}\n```\n\n### Funnel Chart\n```chart\n{"chart":"funnel","title":"Conversion Funnel","data":[{"name":"Visits","value":5000},{"name":"Cart","value":2500},{"name":"Purchase","value":1000}],"nameKey":"name","valueKey":"value"}\n```\n\n### Treemap\n```chart\n{"chart":"treemap","title":"Budget Allocation","data":[{"name":"Engineering","value":500000},{"name":"Marketing","value":200000},{"name":"Sales","value":300000}],"nameKey":"name","dataKey":"value"}\n```\n\n## CONFIGURATION\n\n### Series (for bar/line/area/composed/radar)\n- key: (required) Field name in data\n- label: Display name\n- type: "bar"|"line"|"area" (composed only)\n- color: Hex color\n- yAxisId: "left"|"right"\n- dot: Show dots on lines\n\n### Keys (for pie/scatter/radar/funnel/treemap)\n- nameKey: Field for labels (default: "name")\n- valueKey: Field for values (default: "value")\n- xKey/yKey: For scatter charts\n- axisKey: For radar axis labels\n- dataKey: For treemap values\n\n### Options\n- stacked: Stack bars/areas\n- referenceZero: Show y=0 line\n- innerRadius: For donut charts (0-100)\n- showLabels: Show value labels\n- startAngle/endAngle: For radialBar\n\n## COLORS\n- Blue #4f46e5 - Primary\n- Cyan #06b6d4 - Secondary\n- Green #22c55e - Positive\n- Amber #f59e0b - Warning\n- Red #ef4444 - Negative\n- Purple #8b5cf6 - Accent\n- Pink #ec4899 - Highlight\n- Teal #14b8a6 - Alternative\n\nNumbers auto-format: 1K, 1M, 1B',input_schema:{type:"object",properties:{chart:{type:"string",enum:["bar","line","area","composed","pie","scatter","radar","radialBar","funnel","treemap"],description:"Type of chart to create"},title:{type:"string",description:"Chart title"},description:{type:"string",description:"Optional description shown below the title"},data:{type:"array",description:"Array of data objects",items:{type:"object",additionalProperties:!0}},xKey:{type:"string",description:"Field name to use for X-axis (for bar/line/area/composed/scatter)"},yKey:{type:"string",description:"Field name for Y values (for scatter charts)"},nameKey:{type:"string",description:'Field name for labels (for pie/funnel/radialBar/treemap, default: "name")'},valueKey:{type:"string",description:'Field name for values (for pie/funnel/radialBar, default: "value")'},axisKey:{type:"string",description:"Field name for radar axis labels"},dataKey:{type:"string",description:"Field name for treemap values"},series:{type:"array",description:"Array of series to plot (for bar/line/area/composed/radar)",items:{type:"object",properties:{key:{type:"string",description:"Field name in data"},label:{type:"string",description:"Display name"},type:{type:"string",enum:["bar","line","area"],description:"Series type (for composed charts)"},color:{type:"string",description:"Hex color code"},yAxisId:{type:"string",enum:["left","right"],description:"Which Y-axis to use"},dot:{type:"boolean",description:"Show dots on line (default: false)"}},required:["key"]}},yAxis:{type:"object",description:"Y-axis configuration",properties:{left:{type:"object",properties:{label:{type:"string"}}},right:{type:"object",properties:{label:{type:"string"}}}}},options:{type:"object",description:"Chart options",properties:{stacked:{type:"boolean",description:"Stack bars/areas"},referenceZero:{type:"boolean",description:"Show reference line at y=0"},collapsible:{type:"boolean",description:"Allow user to collapse chart"},collapseInitially:{type:"boolean",description:"Start collapsed"},innerRadius:{type:"number",description:"Inner radius for donut/radialBar charts (0-100)"},showLabels:{type:"boolean",description:"Show value labels on pie/funnel"},startAngle:{type:"number",description:"Start angle for radialBar (default: 180)"},endAngle:{type:"number",description:"End angle for radialBar (default: 0)"}}}},required:["chart","data"]}},Eo='\n# Chart Visualization Capability\n\nYou can create interactive charts by including markdown code blocks with the language "chart".\n\n## Chart Types\n\n| Type | Use Case | Required Fields |\n|------|----------|-----------------|\n| bar | Category comparisons | xKey, series |\n| line | Trends over time | xKey, series |\n| area | Trends with volume | xKey, series |\n| composed | Mix bars + lines | xKey, series with type |\n| pie | Part-to-whole | nameKey, valueKey |\n| scatter | Correlation | xKey, yKey |\n| radar | Multi-dimensional | axisKey, series |\n| radialBar | Progress/gauges | nameKey, valueKey |\n| funnel | Conversion stages | nameKey, valueKey |\n| treemap | Hierarchical data | nameKey, dataKey |\n\n## Quick Examples\n\nBar: `{"chart":"bar","data":[{"x":"A","y":10}],"xKey":"x","series":[{"key":"y"}]}`\nPie: `{"chart":"pie","data":[{"name":"A","value":60},{"name":"B","value":40}]}`\nScatter: `{"chart":"scatter","data":[{"x":1,"y":2}],"xKey":"x","yKey":"y"}`\n\nUse charts when:\n- User requests visualization\n- 3+ data points to display\n- Visual form clarifies comparisons/trends\n\nColors: Blue #4f46e5 (primary), Green #22c55e (positive), Red #ef4444 (negative)\n';function Fo(e){if(!(e.chart&&e.data&&e.xKey&&e.series))throw new Error("Invalid chart spec: missing required fields (chart, data, xKey, series)");if(!Array.isArray(e.data))throw new Error("Invalid chart spec: data must be an array");if(!Array.isArray(e.series)||0===e.series.length)throw new Error("Invalid chart spec: series must be a non-empty array");return`\`\`\`chart\n${JSON.stringify(e,null,2)}\n\`\`\``}function Do(e){const t=/```chart\s*\n([\s\S]*?)\n```/g,n=[];let r;for(;null!==(r=t.exec(e));)try{const e=JSON.parse(r[1]);n.push(e)}catch(e){console.warn("Failed to parse chart spec:",e)}return n}function $o({children:t,fallback:n}){return Lo?e(Lo,{fallback:n,children:t}):e(rr,{FallbackComponent:n,children:t})}let Lo=null;function Oo(e){Lo=e}function Ro({children:t}){return e($o,{fallback:Uo,children:t})}function Uo({error:n}){return t(oe,{status:"error",title:"Sorry, something went wrong...",children:[t("div",{className:"mb-4",children:["Our team has been notified and will be quickly working on resolving it. If you'd like to escalate or simply contact us, please email us at ",e("a",{className:"text-info",href:"mailto:support@vertesiahq.com",children:"support@vertesiahq.com"}),"."]}),n?.message&&e("code",{className:"w-full mt-4 text-sm text-muted break-words",children:n.message})]})}function Mo({children:t}){return e($o,{fallback:Vo,children:t})}function Vo({error:n}){return e("tr",{children:t("td",{colSpan:100,children:[e("span",{className:"text-xs",children:" Cannot display row"}),e("br",{}),e("span",{className:"bg-gray-400",children:n?.message})]})})}function Ko({children:t}){return e($o,{fallback:qo,children:t})}function qo({error:n}){return console.log("WidgetError",n),t("div",{className:"text-sm",children:["Sorry, this area cannot be loaded or rendered.",n?.message&&e("pre",{children:n.message})]})}function Bo({className:n,children:i,title:a,description:s,actions:l,breadcrumbs:o,isCompact:c=!1,useDynamicBreadcrumbs:d=!0}){const u=Yt();function m(e){return e.replace(/[-_]/g," ").split(" ").map(e=>ir(e)).join(" ")}const h=e=>{const t=e?.href||"";if(!t)return"Page";const n=t.split("#")[0].split("?")[0].split("/").filter(e=>e.length>0);if(3===n.length){if(e.title!==document.title&&e.title)return e.title;return`${m(n[1])} Detail (...${n[2].slice(-6)})`}return n.length>=2?m(n[n.length-1]):1===n.length?m(n[0]):"Page"},p=(()=>{const e=[];if(d&&"undefined"!=typeof window&&window.history.state?.historyChain){const t=window.history.state.historyChain;t.forEach((n,r)=>{const i=t.length-r;e.push({label:h(n),href:n.href,onClick:()=>u(n.href,{stepsBack:i})})})}return o&&o.length>0&&o.forEach(t=>{const n="string"==typeof t?.props?.children?t.props.children:"Page";e.push(t?.props?.href?{href:t?.props?.href,label:n,onClick:()=>u(t.props.href,{replace:t.props.clearBreadcrumbs})}:{label:n})}),e})();return t("div",{className:r(c?"pb-0":"pb-2","p-4 flex flex-col",n),children:[t("div",{className:"flex items-start gap-4",children:[t("div",{className:"w-full flex place-content-between h-auto min-h-8 flex-col items-start",children:[e("nav",{className:"flex-1 flex justify-start text-xs",children:p.length>0&&e(Ee,{path:p,separator:e(wt,{className:"w-3.5 h-3.5"}),maxItems:4})}),t("div",{className:"flex gap-2 items-center",children:[e("h1",{className:"text-xl font-semibold break-all",children:a}),s&&e($,{description:s,children:e(Le,{className:"size-4 text-muted"})})]})]}),e("div",{className:"flex gap-x-2 shrink-0",children:l})]}),i&&e("div",{className:"w-full flex items-center",children:i})]})}function Wo({}){return t("div",{className:"text-center pt-32",children:[e("h1",{className:"text-3xl font-bold text-red-500",children:"404"}),e("p",{className:"text-2xl",children:"Page Not Found"})]})}function Go(...e){const t=Array.from(e);return t.__AnyOf__=!0,t}function Ho(...e){return Array.from(e)}function Jo(e){return!0===e.__AnyOf__}class Yo{system_roles;roles;permissions;constructor(e,t){if(!e.authToken)throw new Error("No auth token found in user session");this.system_roles=t;const n=new Set(e.authToken.account_roles||[]);if(e.authToken.project_roles)for(const t of e.authToken.project_roles)n.add(t);this.roles=n;const r={};for(const e of t)r[e.name]=e.permissions;const i=new Set;for(const e of n){const t=r[e];if(t)for(const e of t)i.add(e)}this.permissions=i}hasPermission(e){if("string"==typeof e)return this.permissions.has(e);if(Jo(e))return e.some(e=>this.permissions.has(e));for(const t of e)if(!this.permissions.has(t))return!1;return!0}}const Zo=d(void 0);function Qo(){const e=u(Zo);if(!e)throw new Error("UserPermissionContext cannot be used outside UserPermissionProvider");return e}function Xo({children:t}){const n=Et(),{data:r,error:i,isLoading:a}=L(()=>n.user?n.client.iam.roles.list():Promise.resolve(void 0),[n.user]),s=l(()=>n.authToken&&r&&!a?new Yo(n,r):void 0,[n,r,a]);return i?e(O,{title:"Failed to fetch role mappings",children:i.message}):s&&e(Zo.Provider,{value:s,children:t})}function ec({permission:t,isDisabled:n,title:r,children:i,...a}){return Qo().hasPermission(t)||(n=!0,r="You do not have permission to perform this action"),e(v,{isDisabled:n,title:r,...a,children:i})}function tc({permission:t,...n}){return Qo().hasPermission(t)?e(ar,{...n}):null}function nc({user:n}){return t("div",{className:"flex items-center",children:[e("div",{className:"w-9 h-9",children:(()=>{if(n.picture)return e("img",{className:"inline-block h-9 w-9 rounded-full",src:n.picture,alt:n.name});{const t=n.name.split(" ").map(e=>e[0]).join("");return e("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-full bg-indigo-600",children:e("span",{className:"text-sm font-medium leading-none text-white",children:t})})}})()}),t("div",{className:"ml-3",children:[e("p",{className:"text-sm font-medium text-gray-700 dark:text-slate-50 group-hover:text-gray-900",children:n.name??"Deleted User"}),e("p",{className:"text-xs font-medium text-gray-500 dark:text-slate-300 group-hover:text-gray-700",children:n.email??"Deleted User"})]})]})}export{cr as ActivitiesDoc,ur as ActivityDoc,io as AddToCollectionAction,ro as AddToCollectionActionComponent,Co as AgentChart,Ho as AllOf,vr as AnimatedThinkingDots,Go as AnyOf,Ma as ApiKeyAvatar,al as BrowseCollectionView,$l as ChangeTypeAction,Dl as ChangeTypeActionComponent,os as CollectionsFacetsNav,dl as CollectionsTable,Rr as ContentDispositionButton,xl as ContentObjectTypesSearch,ml as ContentObjectTypesTable,sa as ContentOverview,ol as CreateCollectionForm,cl as CreateCollectionModal,bl as CreateOrUpdateTypeModal,Rl as DeleteObjectsAction,Ol as DeleteObjectsActionComponent,Ul as DeleteObjectsFromCollectionsAction,xs as DocumentGridView,xa as DocumentIcon,va as DocumentIconSkeleton,Ks as DocumentInput,Bs as DocumentPreviewPanel,ws as DocumentSearch,$s as DocumentSearchProvider,Qs as DocumentSearchResults,Zs as DocumentSearchResultsWithDropZone,cs as DocumentSelection,hs as DocumentSelectionProvider,Es as DocumentTable,bs as DocumentTableColumn,vs as DocumentTableView,Is as DocumentUploadModal,Xa as DocumentsFacetsNav,Il as EditCollectionView,qa as EnvironmentFacet,Vl as ExportPropertiesAction,Ml as ExportPropertiesComponent,nl as ExportPropertiesModal,tl as ExportTypes,js as FileUploadAction,Bo as GenericPageNavHeader,ns as InteractionsFacetsNav,br as JumpingDots,Gi as MagicPdfView,yo as ModernAgentConversation,Wo as NotFoundView,Nl as ObjectSchemaEditor,hl as ObjectTypeSearch,pl as ObjectTypeSearchContext,Cl as ObjectTypeSearchProvider,Yl as ObjectsActionContext,Ql as ObjectsActionContextProvider,Ro as PanelErrorBoundary,zr as PayloadBuilder,Fr as PayloadBuilderProvider,Er as PayloadContext,yi as PdfDocumentRenderer,ci as PdfPageRenderer,xi as PdfPageSlider,gi as PdfThumbnailList,as as PromptsFacetsNav,li as PropertiesEditorModal,xr as PulsatingCircle,Nr as PulsingMessageLoader,ql as RemoveFromCollectionAction,Kl as RemoveFromCollectionActionComponent,Mo as RowErrorBoundary,Ga as RunsFacetsNav,si as SaveVersionConfirmModal,Ns as SearchContext,ec as SecureButton,tc as SecureSidebarItem,zl as SelectCollection,ll as SelectContentType,Sl as SelectContentTypeModal,Os as SelectDocument,Ms as SelectDocumentModal,lo as SelectionActions,ui as SharedPdfProvider,El as SharedPropsEditor,pi as SimplePdfPage,Ji as SimplePdfViewer,Wl as StartWorkflowAction,Bl as StartWorkflowComponent,ka as StringFacet,Ca as StringListFacet,Fl as SyncMemberHeadsToggle,jl as TableLayoutEditor,kr as ThinkingBar,Sr as ThinkingMessages,Pa as TypeFacet,wr as TypedDots,co as UploadObjectsButton,nc as UserAvatar,La as UserInfo,Xo as UserPermissionProvider,Yo as UserPermissions,Zo as UserPermissionsContext,ja as VStringFacet,_a as VTypeFacet,Ka as VUserFacet,$o as VertesiaErrorBoundary,Cr as WavyThinking,Ko as WidgetErrorBoundary,Ya as WorkflowExecutionsFacetsNav,_o as buildCashflowComposedChart,Fo as buildChartSpec,Ao as buildNavLineChart,To as buildPerformanceLineChart,So as buildScenarioComparisonBarChart,Po as buildScenarioDeltaPercentChart,Io as buildTvpiOverlayChart,Eo as chartSystemPromptAddition,ul as collectionIcon,zo as createChartToolDefinition,Do as extractChartSpecs,ri as getWorkflowStatusColor,ii as getWorkflowStatusName,Jo as isAnyOf,Gr as isCsv,Hr as isImage,Jr as isPdf,Zr as isPreviewableAsPdf,Yr as isVideo,ni as printElementToPdf,ti as retrieveRendition,Oo as setErrorBoundaryComponent,Ur as shortId,Mr as shortenString,_l as stringifyTableLayout,jo as toChartMarkdown,ss as useCollectionsFilterGroups,ls as useCollectionsFilterHandler,Za as useDocumentFilterGroups,Qa as useDocumentFilterHandler,ks as useDocumentSearch,Ps as useDocumentSearchCount,us as useDocumentSelection,As as useDocumentUploadHandler,qs as useDownloadDocument,za as useFetchGroupInfo,Aa as useFetchUserInfo,es as useInteractionsFilterGroups,ts as useInteractionsFilterHandler,to as useObjectsActionCallback,eo as useObjectsActionContext,ms as useOptionalDocumentSelection,Dr as usePayloadBuilder,rs as usePromptsFilterGroups,is as usePromptsFilterHandler,Ba as useRunsFilterGroups,Wa as useRunsFilterHandler,fl as useSearch,yl as useSearchCount,mi as useSharedPdf,Ts as useSmartFileUploadProcessing,no as useStartWorkflowCallback,Qo as useUserPermissions,Cs as useWatchDocumentSearchFacets,Ss as useWatchDocumentSearchResult,gl as useWatchSearchResult,Ha as useWorkflowExecutionsFilterGroups,Ja as useWorkflowExecutionsFilterHandler};
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import r,{clsx as i}from"clsx";import{AnimatePresence as a,motion as s}from"motion/react";import l,{useMemo as o,useState as c,useEffect as d,createContext as u,useContext as m,useRef as h,useCallback as p,Component as f,memo as g}from"react";import{cn as y,useToast as b,Badge as v,Button as x,Popover as w,PopoverTrigger as N,PopoverContent as k,Command as C,CommandList as S,CommandGroup as j,CommandItem as P,Modal as _,ModalTitle as T,ModalBody as I,RadioGroup as A,FormItem as z,Input as E,ModalFooter as F,RadioOptionAdapter as D,useTheme as $,Center as L,VTooltip as O,useFetch as R,ErrorBox as U,ResizablePanelGroup as M,ResizablePanel as V,ResizableHandle as q,Spinner as K,Portal as B,VModal as W,VModalTitle as G,VModalBody as H,VModalFooter as J,Card as Y,Separator as Z,CardContent as Q,SelectBox as X,InputList as ee,Avatar as te,Table as ne,FilterProvider as re,FilterBtn as ie,FilterBar as ae,FilterClear as se,TBody as le,SharedState as oe,useWatchSharedState as ce,MessageBox as de,VSelectBox as ue,useIntersectionObserver as me,useFlag as he,Styles as pe,Checkbox as fe,NumberInput as ge,SidePanel as ye,Divider as be,Textarea as ve,Switch as xe,TR as we,EmptyCollection as Ne,ConfirmModal as ke,THead as Ce,useDebounce as Se,Panel as je,CommandInput as Pe,CommandEmpty as _e,TagsInput as Te,SelectList as Ie,DialogDescription as Ae,Heading as ze,VTabs as Ee,VTabsBar as Fe,VTabsPanel as De,Breadcrumbs as $e}from"@vertesia/ui/core";import{CopyIcon as Le,Bot as Oe,MessageSquare as Re,Info as Ue,AlertCircle as Me,User as Ve,CheckCircle as qe,Clock as Ke,ClipboardList as Be,XIcon as We,MoreVertical as Ge,ExternalLink as He,DownloadCloudIcon as Je,TableProperties as Ye,LayoutGrid as Ze,Loader2 as Qe,ChevronsUp as Xe,ChevronsDown as et,Minus as tt,Plus as nt,Maximize as rt,Image as it,ScanSearch as at,Download as st,X as lt,Maximize2 as ot,AlertTriangle as ct,Copy as dt,SquarePen as ut,FileSearch as mt,Eye as ht,Users as pt,RefreshCw as ft,UploadIcon as gt,CheckCircleIcon as yt,AlertCircleIcon as bt,FileIcon as vt,XCircleIcon as xt,FolderIcon as wt,ChevronsUpDown as Nt,FileText as kt,ChevronRight as Ct,Settings as St,Trash2 as jt,Search as Pt,FolderClosed as _t,Check as Tt,EllipsisVertical as It,PaperclipIcon as At,SendIcon as zt,Activity as Et,Circle as Ft,Cpu as Dt}from"lucide-react";import{useUserSession as $t}from"@vertesia/ui/session";import{AgentMessageType as Lt,AgentSearchScope as Ot,mergeInCodePromptSchemas as Rt,supportsToolUse as Ut,ImageRenditionFormat as Mt,WorkflowExecutionStatus as Vt,PDF_RENDITION_NAME as qt,MarkdownRenditionFormat as Kt,ContentObjectStatus as Bt,ContentNature as Wt,POSTER_RENDITION_NAME as Gt,PrincipalType as Ht,InteractionStatus as Jt,SearchTypes as Yt,SupportedEmbeddingTypes as Zt}from"@vertesia/common";import{NavLink as Qt,useNavigate as Xt}from"@vertesia/ui/router";import{MarkdownRenderer as en,MonacoEditor as tn,Popover as nn,XMLViewer as rn,JSONCode as an,JSONDisplay as sn,Progress as ln,DropZone as on,UploadSummary as cn,useSchema as dn,SchemaEditor as un,ManagedObject as mn,GeneratedForm as hn}from"@vertesia/ui/widgets";import pn from"dayjs";import fn,{Ajv as gn}from"ajv";import{pdfjs as yn,Document as bn,Page as vn}from"react-pdf";import xn from"dayjs/plugin/localizedFormat";import wn from"dayjs/plugin/relativeTime";import{Md5 as Nn}from"ts-md5";import{UserInfo as kn,SyncMemberHeadsToggle as Cn,SharedPropsEditor as Sn}from"@vertesia/ui/features";import{toPng as jn}from"html-to-image";import{XAxis as Pn,YAxis as _n,CartesianGrid as Tn,Tooltip as In,Legend as An,ReferenceLine as zn,ResponsiveContainer as En,ComposedChart as Fn,AreaChart as Dn,LineChart as $n,BarChart as Ln,Line as On,Area as Rn,Bar as Un,PieChart as Mn,Pie as Vn,Cell as qn,ScatterChart as Kn,Scatter as Bn,RadarChart as Wn,PolarGrid as Gn,PolarAngleAxis as Hn,PolarRadiusAxis as Jn,Radar as Yn,RadialBarChart as Zn,RadialBar as Qn,FunnelChart as Xn,Funnel as er,LabelList as tr,Treemap as nr}from"recharts";import{ErrorBoundary as rr}from"react-error-boundary";import{capitalize as ir}from"lodash-es";import{SidebarItem as ar}from"@vertesia/ui/layout";function sr({children:t,secondary:n=!1}){return e("span",{className:n?"bg-secondary text-primary":"text-foreground bg-muted",children:t})}function lr(e){return e?"array"===e.name?lr(e.innerType):e:void 0}function or({property:n}){return t("div",{className:"flex items-center gap-x-2",children:[e("div",{className:"font-semibold text-gray-600",children:n.name}),n.optional&&e(sr,{children:"optional"}),e(sr,{children:n.type.value})]})}function cr({activities:t}){return e("div",{className:"flex flex-col gap-y-4 divide-y divide-gray-200",children:t.map(t=>e(ur,{activity:t},t.name))})}function dr({code:n,children:r}){return t("div",{className:"flex gap-2 items-center border-b border-b-gray-200 mb-2",children:[e("div",{className:"text-lg font-medium text-gray-900 py-2 ",children:r}),n&&e("div",{children:e(sr,{children:n})})]})}function ur({activity:n,headingClass:r,headingRef:i}){return t("div",{className:r,id:n.name,ref:i,children:[e("div",{className:"text-xl font-semibold pt-8",children:n.title}),e("div",{className:"pb-4",children:e(sr,{children:n.name})}),n.doc&&e("div",{className:"text-gray-700 pb-2",children:n.doc}),t("div",{className:"pb-4",children:[e(dr,{code:n.paramsType,children:"Parameters"}),e("div",{className:"divide-y divide-gray-100",children:n.params.map(t=>e(mr,{property:t},t.name))})]}),t("div",{className:"pb-4",children:[e(dr,{children:"Returns"}),e("div",{children:n.returnType?n.returnType.value:"void"})]})]})}function mr({property:n,className:i}){const a=o(()=>{const t=lr(n.type.innerType)??n.type;return"object"===t.name&&t.members?e(pr,{members:t.members}):"enum"===t.name&&t.enum?e(hr,{values:t.enum}):null},[n.type.innerType]);return t("div",{className:r("py-2",i),children:[e(or,{property:n}),n.doc&&e("div",{className:"text-gray-700 text-sm pt-2",children:n.doc}),a&&e("div",{className:"my-2 overflow-hidden",children:a})]})}function hr({values:t}){return e("div",{className:"flex flex-wrap items-center gap-2",children:t.map((t,n)=>e(sr,{secondary:!0,children:t},n))})}function pr({members:n}){return e(gr,{className:"rounded-md border border-gray-200",button:n=>t("div",{className:"px-4 py-2 flex items-center gap-x-2 text-sm font-medium hover:text-blue-600",children:[e(yr,{isOpen:n}),e("div",n?{children:"Hide child properties"}:{children:"Show child properties"})]}),body:e(fr,{properties:n})})}function fr({properties:t}){return e("div",{className:"border-l-2 border-l-blue-200 flex flex-col divide-y divide-gray-100 border-t border-t-gray-200",children:t.map(t=>e(mr,{property:t,className:"px-4 py-2"},t.name))})}function gr({button:n,body:i,className:l,isInitiallyOpen:o}){const[d,u]=c(o||!1);return t("div",{className:r(d?"block":"inline-block",l),children:[e("button",{className:"p-0 m-0 bg-transparent",onClick:()=>u(!d),children:e(a,{children:n(d)})}),e(a,{children:d&&e(s.div,{className:"overflow-hidden",initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.3,ease:"easeOut"},children:i})})]})}function yr({isOpen:t}){return e(a,{propagate:!0,mode:"wait",children:e(s.div,{className:"font-mono font-semibold text-gray-400 text-lg",initial:{rotate:0},animate:{rotate:t?45:0},transition:{duration:.2},children:"+"},"closeIcon")})}function br({className:n,inline:r=!1}){return t("div",{className:y("flex items-center gap-1",r?"inline-flex":"",n),children:[e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}}),e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_0.3s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}}),e("div",{className:"w-2 h-2 bg-blue-500 rounded-full animate-[jumping_1s_0.6s_infinite_ease-in-out] hover:bg-blue-600",style:{transform:"translateY(0)",animationRange:"0px -8px"}})]})}function vr({className:n,inline:r=!1,color:i="blue"}){const a={blue:"from-blue-400 to-indigo-500 dark:from-blue-500 dark:to-indigo-400",purple:"from-purple-400 to-violet-500 dark:from-purple-500 dark:to-violet-400",teal:"from-teal-400 to-emerald-500 dark:from-teal-500 dark:to-emerald-400",green:"from-green-400 to-emerald-500 dark:from-green-500 dark:to-emerald-400",amber:"from-amber-400 to-orange-500 dark:from-amber-500 dark:to-orange-400"}[i];return t("div",{className:y("flex items-center gap-1.5",r?"inline-flex":"",n),children:[e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_infinite]`}),e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_0.2s_infinite]`}),e("div",{className:`w-2 h-2 bg-gradient-to-r ${a} rounded-full animate-[bounce_1.2s_ease-in-out_0.4s_infinite]`})]})}function xr({className:n,size:r="md",color:i="blue"}){const a={blue:"bg-blue-500 dark:bg-blue-400",purple:"bg-purple-500 dark:bg-purple-400",teal:"bg-teal-500 dark:bg-teal-400",green:"bg-green-500 dark:bg-green-400",amber:"bg-amber-500 dark:bg-amber-400"};return t("span",{className:y("relative flex",n),children:[e("span",{className:y("animate-ping absolute inline-flex h-full w-full rounded-full opacity-60",a[i])}),e("span",{className:y("animate-pulse absolute inline-flex h-[80%] w-[80%] rounded-full opacity-80",a[i]),style:{left:"10%",top:"10%",animationDuration:"2s"}}),e("span",{className:y("relative inline-flex rounded-full",a[i],{sm:"w-3 h-3",md:"w-5 h-5",lg:"w-7 h-7"}[r])})]})}function wr({className:t,color:n="blue"}){const[r,i]=c(".");return d(()=>{const e=setInterval(()=>{i(e=>"."===e?"..":".."===e?"...":".")},500);return()=>clearInterval(e)},[]),e("span",{className:y({blue:"text-blue-600 dark:text-blue-400",purple:"text-purple-600 dark:text-purple-400",teal:"text-teal-600 dark:text-teal-400",green:"text-green-600 dark:text-green-400",amber:"text-amber-600 dark:text-amber-400"}[n],"font-bold",t),children:r})}function Nr({message:n,className:r,color:i="blue"}){const a={blue:{dot:"bg-blue-500 dark:bg-blue-400",text:"text-blue-700 dark:text-blue-300"},purple:{dot:"bg-purple-500 dark:bg-purple-400",text:"text-purple-700 dark:text-purple-300"},teal:{dot:"bg-teal-500 dark:bg-teal-400",text:"text-teal-700 dark:text-teal-300"},green:{dot:"bg-green-500 dark:bg-green-400",text:"text-green-700 dark:text-green-300"},amber:{dot:"bg-amber-500 dark:bg-amber-400",text:"text-amber-700 dark:text-amber-300"}};return t("div",{className:y("flex items-center gap-2 py-1",r),children:[t("div",{className:"flex space-x-1",children:[e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`}),e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`,style:{animationDelay:"0.2s"}}),e("div",{className:`w-1.5 h-1.5 ${a[i].dot} rounded-full animate-bounce`,style:{animationDelay:"0.4s"}})]}),e("div",{className:`${a[i].text} font-medium text-xs`,children:n})]})}function kr({className:n,color:r="blue",width:i="md",message:a}){const[s,l]=c(15),[o,u]=c("increasing"),[m,h]=c(.4);return d(()=>{let e,t=Date.now();const n=()=>{const r=Date.now(),i=r-t;t=r,l(e=>{const t=m*(i/16);let n="increasing"===o?e+t:e-t;return n>=85?(u("decreasing"),h(.3+.2*Math.random()),85):n<=15?(u("increasing"),h(.3+.2*Math.random()),15):(Math.random()>.99&&h(e=>Math.max(.2,Math.min(.5,e+(.1*Math.random()-.05)))),n)}),e=requestAnimationFrame(n)};return e=requestAnimationFrame(n),()=>{cancelAnimationFrame(e)}},[o,m]),t("div",{className:y("flex flex-col gap-1",n),children:[a&&e("div",{className:`text-xs font-medium ${{blue:"text-blue-700 dark:text-blue-300",purple:"text-purple-700 dark:text-purple-300",teal:"text-teal-700 dark:text-teal-300",green:"text-green-700 dark:text-green-300",amber:"text-amber-700 dark:text-amber-300"}[r]} mb-1`,children:a}),e("div",{className:y("h-1.5 rounded-full overflow-hidden shadow-inner",{blue:"bg-blue-200 dark:bg-blue-900/30",purple:"bg-purple-200 dark:bg-purple-900/30",teal:"bg-teal-200 dark:bg-teal-900/30",green:"bg-green-200 dark:bg-green-900/30",amber:"bg-amber-200 dark:bg-amber-900/30"}[r],{sm:"w-24",md:"w-32",lg:"w-48",xl:"w-64",full:"w-full"}[i]),children:e("div",{className:y("h-full rounded-full",{blue:"bg-gradient-to-r from-blue-400 to-blue-500 dark:from-blue-500 dark:to-blue-400",purple:"bg-gradient-to-r from-purple-400 to-purple-500 dark:from-purple-500 dark:to-purple-400",teal:"bg-gradient-to-r from-teal-400 to-teal-500 dark:from-teal-500 dark:to-teal-400",green:"bg-gradient-to-r from-green-400 to-green-500 dark:from-green-500 dark:to-green-400",amber:"bg-gradient-to-r from-amber-400 to-amber-500 dark:from-amber-500 dark:to-amber-400"}[r]),style:{width:`${s}%`,transition:"width 150ms cubic-bezier(0.4, 0.0, 0.2, 1)"}})})]})}function Cr({className:t,color:n="blue",size:r="md"}){const[i,a]=c(Array(7).fill(50)),s={sm:{width:"w-16",height:"h-4",barWidth:"w-0.5",gap:"gap-[2px]"},md:{width:"w-20",height:"h-5",barWidth:"w-1",gap:"gap-[3px]"},lg:{width:"w-24",height:"h-6",barWidth:"w-1.5",gap:"gap-1"}},l={blue:"bg-gradient-to-b from-blue-400 to-blue-500 dark:from-blue-400 dark:to-blue-500",purple:"bg-gradient-to-b from-purple-400 to-purple-500 dark:from-purple-400 dark:to-purple-500",teal:"bg-gradient-to-b from-teal-400 to-teal-500 dark:from-teal-400 dark:to-teal-500",green:"bg-gradient-to-b from-green-400 to-green-500 dark:from-green-400 dark:to-green-500",amber:"bg-gradient-to-b from-amber-400 to-amber-500 dark:from-amber-400 dark:to-amber-500"};return d(()=>{let e;const t=[1.2,1,1.5,.8,1.3,.9,1.1],n=[0,.5,1,1.5,2,2.5,3];let r=0;const s=()=>{r+=.02;const l=i.map((e,i)=>10+40*(Math.sin(r*t[i]+n[i])+1));a(l),e=requestAnimationFrame(s)};return e=requestAnimationFrame(s),()=>{cancelAnimationFrame(e)}},[]),e("div",{className:y("flex items-end justify-center",s[r].width,s[r].height,s[r].gap,t),children:i.map((t,i)=>e("div",{className:y(s[r].barWidth,"rounded-full transform-gpu",l[n]),style:{height:`${t}%`,transition:"height 100ms cubic-bezier(0.4, 0.0, 0.2, 1)",opacity:.9}},i))})}const Sr=["Brewing some code magic...","Doing the robot dance...","Cooking up something good...","Working my gears...","Parsing the possibilities...","Crunching the numbers...","Connecting the digital dots...","Processing at maximum capacity...","Searching through my circuits...","Running advanced algorithms...","Computing optimal solutions...","Loading brilliance.exe...","Scanning the knowledge base...","Optimizing response protocols...","Having a quick brainstorm...","Thinking cap firmly on...","Pondering the digital universe...","Consulting my silicon wisdom...","Untangling the logic knots...","Assembling clever responses...","Mixing thoughtful ingredients...","Polishing the perfect answer...","Taking a momentary mind sprint...","Connecting virtual synapses...","Baking fresh ideas...","Stirring the thought pot...","Simmering solutions slowly...","Whipping up a smart response...","Adding a dash of intelligence...","Preparing a gourmet answer...","Growing brilliant ideas...","Cultivating the perfect response...","Gathering digital nectar...","Planting seeds of solutions...","Exploring the data landscape...","Mapping the solution path...","Navigating through possibilities...","Charting the course to answers...","Embarking on a thought expedition...","Sketching out concepts...","Painting with digital brushstrokes...","Composing my response symphony...","Crafting precision answers...","Weaving threads of information...","Just a moment of processing...","Taking a quick thinking break...","Almost there, final touches...","Putting the pieces together...","Making progress, hold tight..."];const jr=[Lt.COMPLETE,Lt.IDLE,Lt.REQUEST_INPUT,Lt.TERMINATED];function Pr(e){return e.workstream_id?(e.type===Lt.COMPLETE&&console.log("[getWorkstreamId] COMPLETE message with workstream_id:",e.workstream_id),e.workstream_id):(e.type===Lt.COMPLETE&&console.log("[getWorkstreamId] COMPLETE message without workstream_id, defaulting to 'main'"),"main")}function _r({message:n,showPulsatingCircle:r=!1}){const[i,a]=c(!1),[s,l]=c(""),[o,u]=c(!1),{client:m}=$t(),h=b(),p=(()=>{const t={containerClass:"bg-white border-l-4 border-l-muted/30 shadow-sm",iconComponent:e(Oe,{className:"size-4 text-muted"}),sender:""};switch(n.type){case Lt.ANSWER:return{...t,containerClass:"bg-white border-l-4 border-l-muted/30 shadow-sm",iconComponent:e(Oe,{className:"size-4 text-muted"}),sender:"Agent"};case Lt.COMPLETE:return{...t,containerClass:"bg-white border-l-4 border-l-success shadow-sm",iconComponent:e(qe,{className:"size-4 text-success"}),sender:"Completed"};case Lt.TERMINATED:return{...t,containerClass:"bg-white border-l-4 border-l-attention shadow-sm",iconComponent:e(qe,{className:"size-4 text-attention"}),sender:"Terminated"};case Lt.QUESTION:return{...t,iconComponent:e(Ve,{className:"size-4 text-muted"}),sender:"User"};case Lt.THOUGHT:return{...t,iconComponent:r?e(xr,{size:"sm",color:"blue"}):e(Oe,{className:"size-4 text-muted"}),sender:"Agent"};case Lt.ERROR:return{...t,iconComponent:e(Me,{className:"size-4 text-muted"}),sender:"System"};case Lt.UPDATE:return{...t,containerClass:"bg-white border-l-4 border-success shadow-sm",iconComponent:e(Ue,{className:"size-4 text-success"}),sender:"Update"};case Lt.PLAN:return{...t,iconComponent:e(Re,{className:"size-4 text-muted"}),sender:"Agent"};default:return{...t,sender:"Agent"}}})(),f=()=>{let e="";if(n.message&&(e="object"==typeof n.message?JSON.stringify(n.message,null,2):n.message.trim?n.message.trim():String(n.message)),"string"==typeof e&&e.includes("%thinking_message%")){const t=Math.floor(Math.random()*Sr.length);e=e.replace(/%thinking_message%/g,Sr[t])}return e},g=t=>{if("object"==typeof t)return e("pre",{className:"text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-gray-100 dark:bg-gray-800 p-2 rounded text-gray-700 ",children:JSON.stringify(t,null,2)});const r=n.workflow_run_id;return e("div",{className:"vprose prose-sm",children:e(en,{artifactRunId:r,components:{a:({node:t,ref:n,...r})=>{const i=r.href||"";return i.includes("/store/objects")?e(Qt,{href:i,topLevelNav:!0,children:r.children}):e("a",{...r,target:"_blank",rel:"noopener noreferrer"})},img:({node:t,ref:n,...r})=>e("img",{...r,className:"max-w-full h-auto rounded-lg shadow-md my-3 cursor-pointer hover:shadow-lg transition-shadow",loading:"lazy",onClick:()=>r.src&&window.open(r.src,"_blank")})},children:t})})},y=f(),[w,N]=c([]);d(()=>{(async()=>{const e=n.workflow_run_id,t=n.details,r=t&&t.outputFiles;if(e&&Array.isArray(r)&&0!==r.length)try{const t=await Promise.all(r.map(async t=>{if("string"!=typeof t||!t.trim())return null;const n=t.trim(),r=n.startsWith("out/")||n.startsWith("files/")||n.startsWith("scripts/")?n:`out/${n}`,i=r.split(".").pop()?.toLowerCase()||"",a=new Set(["png","jpg","jpeg","gif","webp","bmp","svg"]).has(i);try{const t=a?"inline":"attachment",{url:i}=await m.files.getArtifactDownloadUrl(e,r,t);return{displayName:n,artifactPath:r,url:i,isImage:a}}catch(e){return console.error(`Failed to resolve artifact URL for ${r}`,e),null}}));N(t.filter(e=>!!e))}catch(e){console.error("Error loading artifact URLs from message details",e),N([])}else N([])})()},[n.details,n.timestamp,m]),d(()=>{(async()=>{if(y){u(!0);try{const e=await(async e=>e)((e=>{if("string"!=typeof e)return e;if(n.type===Lt.THOUGHT||"string"==typeof n.message&&(n.message.toLowerCase().includes("thinking about")||n.message.toLowerCase().includes("i'm thinking")||n.message.toLowerCase().includes("💭"))){let t=e;return/\d+\.\s+.+/.test(t)&&(t=t.replace(/(\d+\.\s+.+?)(?=\s+\d+\.\s+|$)/g,"$1\n\n"),t=t.replace(/(\d+\.\s+.+\n)([^\d\n][^:])/g,"$1 $2")),t.includes(":")&&!t.includes("\n\n")&&(t=t.replace(/\b(First|Next|Then|Finally|Lastly|Additionally|Step \d+):\s+/gi,"\n\n$&")),t.includes(" - ")&&(t=t.replace(/\s+-\s+/g,"\n- ")),t}return/\d+\.\s+.+/.test(e)&&!e.includes("\n\n")?e.replace(/(\d+\.\s+.+?)(?=\s+\d+\.\s+|$)/g,"$1\n\n"):e})(y));l(e)}catch(e){console.error("Error processing message content:",e),l(y)}finally{u(!1)}}})()},[y,m]);const k=Pr(n),C=(()=>{switch(n.type){case Lt.ANSWER:return"border-l-info bg-info";case Lt.COMPLETE:return"border-l-success bg-success";case Lt.IDLE:return"border-l-muted bg-muted";case Lt.REQUEST_INPUT:return"border-l-attention bg-attention";case Lt.QUESTION:return"border-l-muted bg-muted";case Lt.THOUGHT:return"border-l-accent dark:border-l-purple-500 bg-purple-50/50 dark:bg-purple-900/10";case Lt.ERROR:return"border-l-destructive bg-destructive";case Lt.UPDATE:return"border-l-success bg-success";case Lt.PLAN:return"border-l-attention bg-attention";case Lt.TERMINATED:return"border-l-muted bg-muted";default:return"border-l-indigo-500 dark:border-l-indigo-400 bg-indigo-50/50 dark:bg-indigo-900/10"}})();return t("div",{className:`border-l-4 shadow-md overflow-hidden bg-white dark:bg-gray-900 mb-5 ${C}`,"data-workstream-id":k,children:[t("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-100/80 dark:border-gray-800/80 bg-white/50 dark:bg-gray-900/50 backdrop-blur-sm",children:[t("div",{className:"flex items-center gap-2",children:[e("div",{className:r?"animate-fadeIn":"",children:(()=>{const t=(()=>{switch(n.type){case Lt.ANSWER:return"text-info";case Lt.COMPLETE:return"text-success";case Lt.IDLE:return"text-muted";case Lt.REQUEST_INPUT:return"text-attention";case Lt.QUESTION:return"text-muted";case Lt.THOUGHT:return"text-purple-600 dark:text-purple-400";case Lt.ERROR:return"text-destructive";case Lt.UPDATE:return"text-success";case Lt.PLAN:return"text-attention";default:return"text-muted"}})(),i=t=>("number"==typeof n.timestamp?n.timestamp:new Date(n.timestamp).getTime())%2==0?e(xr,{size:"sm",color:t}):e(vr,{color:t});switch(n.type){case Lt.ANSWER:return r?i("blue"):e(Oe,{className:`size-4 ${t}`});case Lt.COMPLETE:case Lt.TERMINATED:return e(qe,{className:`size-4 ${t}`});case Lt.IDLE:return e(Ke,{className:`size-4 ${t}`});case Lt.REQUEST_INPUT:case Lt.QUESTION:return e(Ve,{className:`size-4 ${t}`});case Lt.THOUGHT:return r?i("purple"):e(Oe,{className:`size-4 ${t}`});case Lt.ERROR:return e(Me,{className:`size-4 ${t}`});case Lt.UPDATE:return r?i("green"):e(Ue,{className:`size-4 ${t}`});case Lt.PLAN:return r?i("amber"):e(Re,{className:`size-4 ${t}`});default:return r?i("blue"):e(Oe,{className:`size-4 ${t}`})}})()}),e("span",{className:"text-xs font-medium text-muted ",children:p.sender}),"main"!==k&&"all"!==k&&e(v,{variant:"default",className:"text-xs text-muted",children:k})]}),t("div",{className:"flex items-center gap-2 print:hidden",children:[e("span",{className:"text-xs text-muted",children:pn(n.timestamp).format("HH:mm:ss")}),e(x,{variant:"ghost",size:"xs",onClick:()=>{const e=f()||"",t="string"==typeof n.details?n.details:n.details?JSON.stringify(n.details,null,2):"",r=[e,t?"\n\nDetails:\n"+t:""].join("").trim();navigator.clipboard.writeText(r).then(()=>{h({status:"success",title:"Copied to clipboard",duration:2e3})})},className:"text-muted",title:"Copy message",children:e(Le,{className:"size-3"})})]})]}),t("div",{className:"px-4 py-3 bg-white dark:bg-gray-900",children:[y&&e("div",{className:"message-content",children:o?t("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e(vr,{color:"blue"}),e("span",{children:"Loading images..."})]}):g(s||y)}),w.length>0&&t("div",{className:"mt-3 text-xs",children:[e("div",{className:"font-medium text-muted mb-1",children:"Artifacts"}),w.some(e=>e.isImage)&&e("div",{className:"mb-2 flex flex-wrap gap-3",children:w.filter(e=>e.isImage).map(({displayName:n,artifactPath:r,url:i})=>t("div",{className:"max-w-xs cursor-pointer",onClick:()=>window.open(i,"_blank"),children:[e("img",{src:i,alt:n,className:"max-w-full h-auto rounded-lg shadow-sm hover:shadow-md transition-shadow"}),e("div",{className:"mt-1 text-[11px] text-muted truncate",children:n})]},`${r}-preview`))}),e("div",{className:"flex flex-wrap gap-2 print:hidden",children:w.map(({displayName:t,artifactPath:n,url:r})=>e(x,{variant:"outline",size:"xs",className:"px-2 py-1 text-xs",onClick:()=>window.open(r,"_blank"),title:n,children:t},n+r))})]}),n.details&&t("div",{className:"mt-2 print:hidden",children:[t("button",{onClick:()=>a(!i),className:"text-xs text-muted flex items-center",children:[i?"Hide":"Show"," details",e("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-3 w-3 ml-1 transition-transform "+(i?"rotate-180":""),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),i&&e("div",{className:"mt-2 p-2 bg-muted border border-mixer-muted/40 rounded text-sm",children:"string"==typeof n.details?g(n.details):e("pre",{className:"text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-muted p-2 rounded text-muted ",children:JSON.stringify(n.details,null,2)})})]})]})]})}function Tr({workstreams:n,activeWorkstream:r,onSelectWorkstream:i,count:a,completionStatus:s}){const l=new Map;l.set("all","All Messages"),l.set("main","Main"),n.forEach((e,t)=>{"all"!==t&&"main"!==t&&"research_france"!==t&&"statistics"!==t&&l.set(t,e)}),n=l;const o=Array.from(n.entries()).sort(([e],[t])=>"all"===e?-1:"all"===t?1:"main"===e?-1:"main"===t?1:e.localeCompare(t)),c=o.length>2;return e("div",c?{className:"flex overflow-x-auto space-x-1 mb-2 bg-muted border-b-2 border-muted/20 sticky top-0 z-10",children:o.map(([n,l])=>t("button",{className:"px-2 py-1 text-xs font-medium whitespace-nowrap transition-colors flex items-center gap-1.5\n "+(r===n?"bg-info text-info border-b-2 border-info":"text-muted hover:bg-muted border-b-2 border-transparent"),onClick:()=>i(n),title:l.length>20?l:void 0,children:[l.length>20?l.substring(0,18)+"...":l,a&&a.has(n)&&a.get(n)>0&&t("div",{className:"flex items-center space-x-1",children:[e("span",{className:"inline-flex items-center justify-center p-1 text-xs rounded-full\n "+(r===n?"bg-info text-info":"bg-muted text-muted"),children:a.get(n)}),s&&"all"!==n&&(s.get(n)?e(qe,{className:"size-3 text-success"}):e(Ke,{className:"size-3 text-attention"}))]})]},n))}:{className:"py-1"})}function Ir(e,t){return"all"===t?[...e]:"main"===t?e.filter(e=>"main"===Pr(e)):e.filter(e=>Pr(e)===t)}const Ar=l.memo(function({messages:r,bottomRef:i,viewMode:a="stacked",isCompleted:s=!1}){const u=l.useRef(null),[m,h]=c("all");d(()=>{i.current&&i.current.scrollIntoView({behavior:"smooth"})},[r,i]);const p=l.useMemo(()=>[...r].sort((e,t)=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())-("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())),[r]),f=l.useMemo(()=>{const e=function(e){const t=new Map;return t.set("all","All Messages"),t.set("main","Main"),e.forEach(e=>{e.workstream_id&&"main"!==e.workstream_id&&"all"!==e.workstream_id&&!t.has(e.workstream_id)&&(t.set(e.workstream_id,e.workstream_id),console.log(`Found workstream: ${e.workstream_id}`))}),t.size<=2&&!t.has("main")&&t.set("main","Main"),console.log("Final workstreams map:",t),t}(p);return e},[p]),g=l.useMemo(()=>{const e=new Map;e.set("all",p.length);const t=Ir(p,"main");return e.set("main",t.length),p.forEach(t=>{const n=Pr(t);"main"!==n&&e.set(n,(e.get(n)||0)+1)}),e},[p]),y=l.useMemo(()=>"all"===m?p:Ir(p,m),[p,m]),b=o(()=>{const e=new Map,t=new Map;p.forEach(e=>{const n=Pr(e);t.has(n)||t.set(n,[]),t.get(n).push(e)});for(const[n,r]of t.entries())if(r.length>0){const t=r[r.length-1];e.set(n,[Lt.COMPLETE,Lt.IDLE,Lt.REQUEST_INPUT,Lt.TERMINATED].includes(t.type))}return e},[p]);return t("div",{ref:u,className:"flex-1 min-h-0 h-full overflow-y-auto px-4 sm:px-2 lg:px-4 flex flex-col relative","data-testid":"all-messages-mixed",children:[e("div",{className:"sticky top-0 z-10",children:e(Tr,{workstreams:f,activeWorkstream:m,onSelectWorkstream:h,count:g,completionStatus:b})}),0===y.length?e("div",{className:"flex items-center justify-center h-full text-center py-8",children:e("div",{className:"flex items-center px-4 py-3 text-muted",children:"all"===m?"Waiting for agent response...":"No messages in this workstream yet..."})}):t("div",{className:"flex-1 flex flex-col justify-start pb-4 space-y-2",children:["stacked"===a?y.map((t,n)=>{const r=!s&&n===y.length-1&&!jr.includes(t.type);return e(_r,{message:t,showPulsatingCircle:r},`${t.timestamp}-${n}`)}):e(n,{children:(()=>{const t=y.filter(e=>e.type===Lt.ANSWER||e.type===Lt.QUESTION||e.type===Lt.COMPLETE||e.type===Lt.IDLE||e.type===Lt.REQUEST_INPUT||e.type===Lt.TERMINATED),n=s?null:y.filter(e=>e.type===Lt.THOUGHT||e.type===Lt.UPDATE||e.type===Lt.PLAN).sort((e,t)=>{const n="number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime();return("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())-n})[0],r=[...t];return n&&r.push(n),r.sort((e,t)=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())-("number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime())),r.map((t,n)=>{const i=!s&&n===r.length-1&&!jr.includes(t.type);return e(_r,{message:t,showPulsatingCircle:i},`${t.timestamp}-${n}`)})})()}),e("div",{ref:i,className:"h-4"})]})]})});class zr{vertesia;updateState;_interactive=!0;_debug_mode=!1;_collection;_start=!1;_preserveRunValues=!1;_interaction;_environment;_model="";_tool_names=[];_data;_interactionParamsSchema;_inputValidator;constructor(e,t){this.vertesia=e,this.updateState=t}onStateChanged(){const e=this.clone();this.updateState(e)}clone(){const e=new zr(this.vertesia,this.updateState);return e._interactionParamsSchema=this._interactionParamsSchema,e._interaction=this._interaction,e._data=this._data,e._environment=this._environment,e._model=this._model,e._tool_names=[...this._tool_names],e._interactive=this._interactive,e._debug_mode=this._debug_mode,e._inputValidator=this._inputValidator,e._start=this._start,e._collection=this._collection,e._preserveRunValues=this._preserveRunValues,e}get interactive(){return this._interactive}set interactive(e){e!==this._interactive&&(this._interactive=e,this.onStateChanged())}get debug_mode(){return this._debug_mode}set debug_mode(e){e!==this._debug_mode&&(this._debug_mode=e,this.onStateChanged())}get collection(){return this._collection}set collection(e){e!==this._collection&&(this._collection=e,this.onStateChanged())}get search_scope(){return this._collection?Ot.Collection:void 0}async restoreConversation(e){let t=e.interaction;if(e.version){/^[a-fA-F0-9]{24}$/.test(t)||(t=`${t}@${e.version}`)}const n=await this.vertesia.interactions.catalog.resolve(t),r=n.runtime?.environment||e.config?.environment,i=e.config?.model,a=await(r?this.vertesia.environments.retrieve(e.config?.environment):Promise.resolve(void 0));this.interactionParamsSchema=e.interactionParamsSchema??null,this.interaction=n,this._tool_names=e.tool_names||[],this._data=e.data,this._interactive=e.interactive,this._debug_mode=e.debug_mode??!1,this.collection=e.collection_id??void 0,this.environment=a,i&&(this._model=i),this.onStateChanged()}get interaction(){return this._interaction}set interaction(e){if(e?.id!==this._interaction?.id){if(this._interaction=e,this.interactionParamsSchema=e?Rt(e.prompts):void 0,this._inputValidator=void 0,e&&!this._preserveRunValues&&e.runtime?.environment){const t=e.runtime.environment;this.vertesia.environments.retrieve(t).then(e=>this.environment=e)}this.onStateChanged()}}get environment(){return this._environment}set environment(e){if(e?.id!==this._environment?.id){if(this._environment=e,!this._preserveRunValues){const t=this.interaction?.runtime?.model;t&&e&&Ut(t,e.provider)?this._model=t:this._model=e?.default_model&&Ut(e.default_model,e.provider)?e.default_model:""}this.onStateChanged()}}get model(){return this._model}set model(e){e!==this._model&&(this._model=e||"",this.onStateChanged())}get tool_names(){return this._tool_names}set tool_names(e){this._tool_names=e,this.onStateChanged()}get data(){return this._data}set data(e){this._data=e,this.onStateChanged()}set run(e){console.log("run",e),this.onStateChanged()}set start(e){this._start!==e&&(this._start=e,this.onStateChanged())}get start(){return this._start}get preserveRunValues(){return this._preserveRunValues}set preserveRunValues(e){this._preserveRunValues=e}get interactionParamsSchema(){return this._interactionParamsSchema}set interactionParamsSchema(e){this._interactionParamsSchema!==e&&(this._interactionParamsSchema=e,e&&(this._data=this.initializeBooleanDefaults(this._data||{},e)),this.onStateChanged())}initializeBooleanDefaults(e,t){if(!t.properties)return e;const n={...e};for(const[e,r]of Object.entries(t.properties)){const t=r;"boolean"===t.type&&void 0===n[e]?n[e]=!1:"object"===t.type&&t.properties&&(n[e]=this.initializeBooleanDefaults(n[e]||{},t))}return n}reset(){if(this._start=!1,this._interactive=!0,this._debug_mode=!1,this._collection=void 0,this._preserveRunValues=!1,this._model="",this._environment=void 0,this._tool_names=[],this._interaction=void 0,this._data=void 0,this._interactionParamsSchema=null,this._inputValidator=void 0,this.model=void 0,this.environment=void 0,this.onStateChanged(),location.hash){const e=window.location.origin+window.location.pathname+window.location.search;history.replaceState(null,"",e),location.hash=""}}validateInput(){if(!this._interactionParamsSchema)return{isValid:!0};if(!this._inputValidator||this._inputValidator.schema!==this._interactionParamsSchema){const e=new fn({strict:!1});this._inputValidator={validate:e.compile(this._interactionParamsSchema),schema:this._interactionParamsSchema}}const e=this._data||{};if(!this._inputValidator.validate(e)){return{isValid:!1,errorMessage:this._inputValidator.validate.errors?this._inputValidator.validate.errors.map(e=>`${e.instancePath}: ${e.message}`).join(", "):"Invalid payload data"}}return{isValid:!0}}}const Er=u(void 0);function Fr({children:t}){const{client:n}=$t(),[r,i]=c();return d(()=>{i(new zr(n,i))},[]),r&&e(Er.Provider,{value:r,children:t})}function Dr(){const e=m(Er);if(!e)throw new Error("usePayloadBuilder must be used within a PayloadProvider");return e}function $r({title:n,onClose:r,isModal:i,run:a,viewMode:s,onViewModeChange:l,showPlanPanel:o,hasPlan:c=!1,onTogglePlanPanel:d,onDownload:u,onCopyRunId:m,resetWorkflow:h,onExportPdf:p}){return e(Fr,{children:t("div",{className:"flex flex-wrap items-end justify-between py-1.5 px-2 border-b shadow-sm flex-shrink-0",children:[t("div",{className:"flex flex-wrap items-center space-x-2",children:[t("div",{className:"flex items-center space-x-1",children:[e(Oe,{className:"size-5 text-muted"}),e("span",{className:"font-medium",children:n})]}),t("span",{className:"text-xs text-muted ml-1",children:["(Run ID: ",a.runId.substring(0,8),"...)"]})]}),t("div",{className:"flex justify-end items-center space-x-2 ml-auto",children:[t("div",{className:"flex items-center space-x-1 bg-muted rounded p-0.5 mt-2 lg:mt-0",children:[e(x,{variant:"stacked"===s?"outline":"ghost",size:"xs",className:"rounded-l-md",onClick:()=>l("stacked"),children:"Details"}),e(x,{variant:"sliding"===s?"outline":"ghost",size:"xs",className:"rounded-l-md",onClick:()=>l("sliding"),children:"Most Important"})]}),t("div",{className:"relative",children:[c&&!o&&e("span",{className:"absolute -top-1 -right-1 w-2.5 h-2.5 bg-primary rounded-full border border-border z-10"}),t(x,{size:"sm",variant:o?"primary":"secondary",onClick:d,className:"transition-all duration-200 rounded-md",title:"Toggle plan panel",children:[e(Be,{className:"size-4 mr-1.5"}),e("span",{className:"font-medium text-xs",children:o?"Hide Plan":"Show Plan"})]})]}),e(Lr,{run:a,isModal:i,onClose:r,onDownload:u,onCopyRunId:m,resetWorkflow:h,onExportPdf:p}),r&&!i&&e(x,{size:"xs",variant:"ghost",onClick:r,children:e(We,{className:"size-4"})})]})]})})}function Lr({run:n,isModal:r,onClose:i,onDownload:a,onCopyRunId:s,resetWorkflow:l,onExportPdf:o}){const c=b(),{client:d}=$t(),u=Dr();return t(w,{hover:!0,children:[e(N,{children:e(x,{size:"xs",variant:"ghost",title:"More actions",children:e(Ge,{className:"size-4"})})}),e(k,{className:"w-48",align:"end",children:e("div",{className:"rounded-md shadow-lg z-50",children:e("div",{className:"py-1 min-w-36",children:e(C,{children:e(S,{children:t(j,{children:[e("div",{className:"flex items-center px-3 py-1.5 text-xs text-gray-700 dark:text-gray-300",children:e("span",{className:"text-muted",children:"Actions"})}),r&&t(P,{className:"text-xs",onSelect:()=>{return e=`/store/agent-runner?agentId=${n.runId}__${n.workflowId}`,window.open(e,"_blank"),e;var e},children:[e(He,{className:"size-3.5 mr-2 text-muted"})," Open in new tab"]}),t(P,{className:"text-xs",onSelect:()=>{s?s():(navigator.clipboard.writeText(n.runId),c({status:"success",title:"Run ID copied",duration:2e3}))},children:[e(Le,{className:"size-3.5 mr-2 text-muted"})," Copy Run ID"]}),t(P,{className:"text-xs",onSelect:()=>{a?a():async function(e,t){return e.files.getDownloadUrl(`agents/${t}/conversation.json`).then(e=>e.url)}(d,n.runId).then(e=>window.open(e,"_blank"))},children:[e(Je,{className:"size-3.5 mr-2 text-muted"})," Download Conversation"]}),o&&t(P,{className:"text-xs",onSelect:o,children:[e(Je,{className:"size-3.5 mr-2 text-muted"})," Export as PDF"]}),i&&r&&t(P,{className:"text-xs",onSelect:i,children:[e(We,{className:"size-3.5 mr-2 text-muted"})," Close"]}),t(P,{className:"text-xs text-destructive",onSelect:()=>{(async e=>{try{return await d.store.workflows.terminate(e.workflowId,e.runId,"cancel"),c({status:"success",title:"Workflow cancelled",duration:2e3}),u.reset(),l?.(),!0}catch(e){return c({status:"error",title:"Failed to cancel workflow",duration:2e3}),!1}})(n)},children:[e(We,{className:"size-3.5 mr-2 text-destructive"})," Cancel Workflow"]})]})})})})})})]})}const Or="vertesia.content_store.lastDisplayedView";function Rr({onUpdate:t}){const[n,r]=c("grid"===localStorage.getItem(Or)),i=()=>{localStorage.setItem(Or,"grid"),r(!0),t(!0)},a=()=>{localStorage.setItem(Or,"table"),r(!1),t(!1)};return e(x,{variant:"outline",onClick:()=>{n?a():i()},alt:n?"Table View":"Thumbnail View",children:e(n?Ye:Ze,{})})}function Ur(e,t=7){return e?"~"+e.slice(-t):""}function Mr(e,t){return e.length>t?e.substring(0,t)+"...":e}Rr.LAST_DISPLAYED_VIEW=Or;const Vr="text/csv",qr="image/",Kr="application/pdf",Br="video/",Wr=["application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/msword","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-powerpoint"],Gr=e=>e===Vr||Vr.includes(e),Hr=e=>e.startsWith(qr)||qr.includes(e),Jr=e=>e===Kr||Kr.includes(e),Yr=e=>e.startsWith(Br)||Br.includes(e),Zr=e=>Wr.includes(e),Qr=import.meta.env,Xr={max_hw:Qr?.VITE_RENDITION_HW||256,format:Mt.jpeg,generate_if_missing:!0},ei="vertesia.content_store.renditionId";async function ti(e,t,n,r,i){if(!t?.content?.type||!(Hr(t.content.type)||Yr(t.content.type)||Jr(t.content.type)))return void i("No preview available");i("Preparing preview...");const a=(new Date).getTime()/1e3,s=localStorage.getItem(`${ei}_${t.id}_${Xr.max_hw}`),l=localStorage.getItem(`${ei}_${t.id}_${Xr.max_hw}_time`);if(s?.length&&l&&Math.abs(a-parseInt(l))<=900)return n(s),r(`${t.name} Rendition`),i("ready"),s;i("Preparing preview..."),e.objects.getRendition(t.id,Xr).then(a=>{if("generating"===a.status)i("Preparing preview..."),n(""),r(""),setTimeout(()=>ti(e,t,n,r,i),6e4);else{if("failed"===a.status)return i("No preview available"),n(""),void r("");{if(!a?.renditions?.length)return i("No preview available"),n(""),void r("");const e=a.renditions[0];localStorage.setItem(`${ei}_${t.id}_${Xr.max_hw}`,e),localStorage.setItem(`${ei}_${t.id}_${Xr.max_hw}_time`,((new Date).getTime()/1e3).toString()),n(e),r(`${t.name} Rendition`),i("ready"),console.log(`Rendition for document ${t.id} retrieved successfully: ${e}`)}}}).catch(e=>{i("No preview available"),console.warn("Failed to retrieve rendition:",e),n(""),r("")})}function ni(e,t){if("undefined"==typeof window||"undefined"==typeof document)return!1;const n=document.createElement("iframe");n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.style.width="0",n.style.height="0",n.style.border="0",n.style.visibility="hidden",document.body.appendChild(n);const r=n.contentWindow;if(!r)return n.parentNode?.removeChild(n),!1;const i=r.document;i.open(),i.write(`<!doctype html><html><head><title>${t}</title></head><body></body></html>`),i.close(),i.title=t;document.querySelectorAll('link[rel="stylesheet"], style').forEach(e=>{i.head.appendChild(e.cloneNode(!0))});const a=i.createElement("style");return a.textContent='\n@media print {\n body {\n margin: 24px;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: #111827;\n background-color: #ffffff;\n }\n\n .vprose {\n max-width: 800px;\n margin: 0 auto;\n }\n\n .vprose h1 {\n font-size: 24px;\n font-weight: 700;\n margin: 1.5rem 0 0.75rem;\n }\n\n .vprose h2 {\n font-size: 20px;\n font-weight: 600;\n margin: 1.25rem 0 0.75rem;\n }\n\n .vprose h3 {\n font-size: 18px;\n font-weight: 600;\n margin: 1rem 0 0.5rem;\n }\n\n .vprose p {\n margin: 0 0 0.5rem;\n }\n\n .vprose ul,\n .vprose ol {\n margin: 0.5rem 0 0.5rem 1.5rem;\n padding: 0;\n }\n\n .vprose li {\n margin: 0.25rem 0;\n }\n\n .vprose table {\n width: 100%;\n border-collapse: collapse;\n margin: 1rem 0;\n }\n\n .vprose th,\n .vprose td {\n border: 1px solid #d1d5db;\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n\n .vprose thead th {\n background-color: #f3f4f6;\n font-weight: 600;\n }\n\n .vprose pre,\n .vprose code {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-size: 12px;\n }\n\n .vprose pre {\n padding: 0.75rem;\n border-radius: 4px;\n border: 1px solid #e5e7eb;\n background-color: #f9fafb;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n /* Hide chart action buttons when printing */\n .chart-actions {\n display: none !important;\n }\n\n /* Hide interactive elements in agent conversation when printing */\n .print-hidden,\n [class*="print:hidden"],\n button[title="Copy message"],\n button[title="Copy to clipboard"],\n button[title="Export as PNG"],\n .message-actions {\n display: none !important;\n }\n\n /* Prevent page breaks inside elements */\n .vprose table,\n .vprose pre,\n .vprose blockquote,\n .vprose figure,\n .vprose img,\n .recharts-wrapper,\n [class*="chart"],\n [class*="Chart"] {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n\n /* Keep headings with following content */\n .vprose h1,\n .vprose h2,\n .vprose h3,\n .vprose h4,\n .vprose h5,\n .vprose h6 {\n break-after: avoid;\n page-break-after: avoid;\n }\n\n /* Keep list items together when possible */\n .vprose li {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n}\n',i.head.appendChild(a),i.body.innerHTML=e.innerHTML,r.focus(),r.print(),setTimeout(()=>{n.parentNode?.removeChild(n)},1e3),!0}function ri(e){switch(e){case Vt.RUNNING:return"text-info";case Vt.COMPLETED:return"text-success";case Vt.FAILED:return"text-destructive";case Vt.TERMINATED:case Vt.CANCELED:return"text-attention";default:return"text-muted"}}function ii(e){switch(e){case Vt.RUNNING:return"Running";case Vt.COMPLETED:return"Completed";case Vt.FAILED:return"Failed";case Vt.CONTINUED_AS_NEW:return"Continued As New";case Vt.TERMINATED:return"Terminated";case Vt.TIMED_OUT:return"Timed Out";case Vt.CANCELED:return"Canceled";default:return"Unknown"}}class ai extends D{labelOf(e){return e.label}idOf(e){return e.id}renderOption(n){return t("div",{children:[e("div",{className:"font-medium",children:n.label}),e("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:n.description})]})}}function si({isOpen:n,onClose:r,onConfirm:i,isLoading:a,uploadedFileName:s}){const l=[{id:"update",label:"Update current version",description:s?"Replace the content file and modify properties directly in the current revision.":"Modify the properties directly in the current revision."},{id:"new-version",label:"Create new version",description:s?"Create a new revision with the replacement file while preserving the original.":"Create a new revision with these property changes while preserving the original."}],o=s?l[1]:l[0],[u,m]=c(o),[h,p]=c(""),f=new ai;d(()=>{n&&(m(o),p(""))},[n,s]);const g="new-version"===u?.id;return t(_,{isOpen:n,onClose:r,className:"sm:max-w-md",children:[e(T,{children:"Save Changes"}),e(I,{children:t("div",{className:"space-y-4",children:[s&&e("div",{className:"mb-4 p-3 bg-blue-50 dark:bg-blue-900/20 rounded-md",children:t("p",{className:"text-sm text-blue-700 dark:text-blue-300 font-medium",children:["You're about to replace the content file with: ",e("span",{className:"font-bold",children:s})]})}),e("p",{className:"text-sm text-mixer-muted/5",children:"How would you like to save these changes?"}),e(A,{adapter:f,options:l,value:u,onChange:e=>{m(e)},gap:"gap-4"}),g&&e(z,{label:"Version Label (Optional)",description:"Optional label for the new version.",className:"mt-3 pl-8",children:e(E,{value:h,onChange:p,placeholder:"e.g., v1.2, approved, post-review",className:"w-full"})})]})}),t(F,{children:[e(x,{variant:"secondary",onClick:r,disabled:a,children:"Cancel"}),e(x,{variant:"primary",onClick:async()=>{await i(g,g?h:void 0)},isLoading:a,children:"Save"})]})]})}function li({isOpen:r,onClose:i,object:a,refetch:s}){const{client:l,store:o}=$t(),u=b(),{theme:m}=$(),p=Xt(),[f,g]=c(!1),[y,v]=c(""),[w,N]=c(!1),[k,C]=c(null),S=h(void 0),[j,P]=c(null),[A,z]=c(null);d(()=>{r&&(v(JSON.stringify(a.properties||{},null,2)),a.type?.id&&async function(e){try{const t=await o.types.retrieve(e);t.object_schema&&P(t.object_schema)}catch(e){console.error("Failed to fetch JSON schema:",e)}}(a.type.id))},[r,a]);return t(n,{children:[t(_,{isOpen:r,onClose:i,className:"sm:max-w-[90%] md:max-w-[80%] lg:max-w-[75%] xl:max-w-[70%]",children:[e(T,{children:"Edit Properties"}),t(I,{children:[t("div",{className:"mb-2 text-sm text-gray-500",children:[a.type?.name?t("span",{children:["Editing properties for object type: ",e("strong",{children:a.type.name})]}):e("span",{children:"Editing properties for generic document"}),j&&e("span",{className:"ml-2 text-green-600",children:"(JSON schema validation enabled)"})]}),e("div",{className:"h-[75vh] border rounded-md overflow-hidden",children:e(tn,{value:y,language:"json",editorRef:S,onChange:e=>{return t=e.state.doc.toString(),void v(t);var t},beforeMount:e=>{j&&e.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,schemas:[{uri:"http://myserver/object-schema.json",fileMatch:["*"],schema:j}]})},theme:"dark"===m?"vs-dark":"vs",minLines:40})})]}),t(F,{children:[e(x,{variant:"secondary",onClick:i,children:"Cancel"}),e(x,{variant:"primary",onClick:function(){if(!S.current)return;const e=S.current.getValue();try{const t=JSON.parse(e);C(t),N(!0)}catch(e){u({status:"error",title:"Invalid JSON",description:"Please fix the JSON syntax errors before saving.",duration:5e3})}},children:"Save Changes"})]})]}),e(si,{isOpen:w,onClose:function(){N(!1)},onConfirm:async function(e,t){try{g(!0);const n=k||JSON.parse(y);if(e){const e=await l.objects.update(a.id,{properties:n},{createRevision:!0,revisionLabel:t});e.id!==a.id&&z(e.id),u({status:"success",title:"New version created",description:"A new version with updated properties has been created.",duration:2e3}),N(!1),i(),e.id!==a.id&&setTimeout(()=>{p(`/objects/${e.id}`),u({status:"info",title:"Viewing New Version",description:t?`Now viewing version '${t}'`:"Now viewing the new version",duration:3e3})},100)}else await o.objects.update(a.id,{properties:n}),u({status:"success",title:"Properties updated",description:"The object properties have been updated successfully.",duration:2e3}),s&&await s(),N(!1),i()}catch(e){u({status:"error",title:"Error updating properties",description:e.message||"An error occurred while updating the properties.",duration:5e3}),g(!1)}},isLoading:f})]})}function oi({className:t,size:n="md"}){return e("div",{className:`flex items-center justify-center ${t||""}`,children:e(Qe,{className:`${{sm:"w-4 h-4",md:"w-6 h-6",lg:"w-8 h-8"}[n]} animate-spin text-muted-foreground`})})}function ci({pdfUrl:n,pageNumber:r,width:i,className:a,renderTextLayer:s=!1,renderAnnotationLayer:l=!1,onLoadSuccess:o,onError:d}){const[u,m]=c(!0),[h,p]=c(null);return h?e("div",{className:`flex items-center justify-center text-destructive text-sm ${a||""}`,children:"Failed to load PDF"}):t("div",{className:a,children:[u&&e(oi,{className:"py-4",size:"md"}),e(bn,{file:n,onLoadSuccess:({numPages:e})=>{m(!1),o?.(e)},onLoadError:e=>{m(!1),p(e),d?.(e)},loading:null,children:e(vn,{pageNumber:r,width:i,renderTextLayer:s,renderAnnotationLayer:l,loading:e(oi,{className:"py-4",size:"sm"})})})]})}yn.GlobalWorkerOptions.workerSrc=`//unpkg.com/pdfjs-dist@${yn.version}/build/pdf.worker.min.mjs`;const di=u(null);function ui({pdfUrl:t,urlLoading:n=!1,children:r,onLoadSuccess:i}){const[a,s]=c(0),[l,o]=c(!0),[d,u]=c(null),[m,h]=c(null),p={pdfUrl:t,numPages:a,loading:n||!t||l,error:d,pageDimensions:m};return d?e("div",{className:"flex items-center justify-center text-destructive text-sm py-4",children:"Failed to load PDF"}):e(di.Provider,{value:p,children:t?e(bn,{file:t,onLoadSuccess:async e=>{s(e.numPages),i?.(e.numPages);try{const t=(await e.getPage(1)).getViewport({scale:1});h({width:t.width,height:t.height,aspectRatio:t.width/t.height})}catch(e){console.error("Failed to get page dimensions:",e)}o(!1)},onLoadError:e=>{o(!1),u(e)},loading:e(oi,{className:"py-4",size:"md"}),children:r((t,n)=>e(vn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e(oi,{className:"py-4",size:"sm"})},t))}):e(oi,{className:"py-4",size:"md"})})}function mi(){return m(di)}const hi=210/297;function pi({pageNumber:t,width:n,className:r}){const i=mi(),a=i?.pageDimensions?.aspectRatio??hi,s=n?Math.round(n/a):200;return e("div",i?.loading?{className:`flex items-center justify-center bg-muted ${r||""}`,style:{height:s,width:n||"100%"},children:e(oi,{size:"md"})}:{className:r,children:e(vn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e(oi,{className:"py-4",size:"sm"})})})}function fi({pageNumber:t,width:n,isSelected:r,onSelect:i,renderThumbnail:a,aspectRatio:s=hi,rootMargin:l="200px 0px"}){const o=h(null),[u,m]=c(!1);d(()=>{const e=o.current;if(!e)return;const t=new IntersectionObserver(e=>{const t=e[0];t?.isIntersecting&&m(!0)},{rootMargin:l,threshold:0});return t.observe(e),()=>t.disconnect()},[l]);const p=n?Math.round(n/s):200,f=u?e(vn,{pageNumber:t,width:n,renderTextLayer:!1,renderAnnotationLayer:!1,loading:e("div",{className:"flex items-center justify-center bg-muted",style:{height:p},children:e(oi,{size:"sm"})})}):e("div",{className:"flex items-center justify-center bg-muted",style:{height:p,width:n||"100%"},children:e("span",{className:"text-muted-foreground text-xs",children:t})});return e("div",{ref:o,children:a({pageNumber:t,isSelected:r,pageElement:f,onSelect:i})})}function gi({pdfUrl:r,urlLoading:i=!1,pageCount:a,currentPage:s,thumbnailWidth:l,onPageSelect:o,renderThumbnail:u,scrollContainerRef:m,onAspectRatioChange:f,onItemHeightChange:g,calculateItemHeight:y,onPageCountChange:b}){const[v,x]=c(null),[w,N]=c({start:0,end:Math.min(15,a)}),[k,C]=c(null),S=h(null),j=p(e=>{x(e)},[]),P=p(async e=>{b?.(e.numPages);try{const t=(await e.getPage(1)).getViewport({scale:1}),n=t.width/t.height;C(n),f?.(n)}catch(e){console.error("Failed to get page dimensions:",e),C(hi),f?.(hi)}},[f,b]),_=k??hi,T=l?Math.round(l/_):200,I=y?y(T):T+16+24+8;d(()=>{I>0&&null!==k&&g?.(I)},[I,k,g]);if(d(()=>{const e=m?.current||function(e){if(!e)return null;let t=e.parentElement;for(;t;){const e=window.getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)return t;t=t.parentElement}return null}(S.current);if(!e)return;const t=()=>{const t=e.scrollTop,n=e.clientHeight,r=Math.floor(t/I),i=Math.ceil((t+n)/I),s=Math.max(0,r-5),l=Math.min(a,i+5);N(e=>e.start!==s||e.end!==l?{start:s,end:l}:e)};return t(),e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[I,a,m]),v)return e("div",{className:"flex items-center justify-center text-destructive text-sm py-4",children:"Failed to load PDF"});if(i||!r)return e(oi,{className:"py-4",size:"md"});const A=w.start*I,z=(a-w.end)*I,E=null!==k;return e("div",{ref:S,children:e(bn,{file:r,onLoadSuccess:P,onLoadError:j,loading:e(oi,{className:"py-4",size:"md"}),children:E?t(n,{children:[A>0&&e("div",{style:{height:A}}),Array.from({length:w.end-w.start},(t,n)=>{const r=w.start+n+1;return e("div",{"data-page-index":r-1,style:{height:I,overflow:"hidden"},children:e(fi,{pageNumber:r,width:l,isSelected:r===s,onSelect:()=>o(r),renderThumbnail:u,aspectRatio:_})},r)}),z>0&&e("div",{style:{height:z}})]}):e(oi,{className:"py-4",size:"md"})})})}function yi({pdfUrl:n,pageNumber:r,width:i,height:a,className:s,renderTextLayer:l=!1,renderAnnotationLayer:o=!1,onPageChange:u}){const[m,h]=c(0),[p,f]=c(!0),[g,y]=c(null);d(()=>{m>0&&u?.(r,m)},[r,m,u]);return g?e("div",{className:`flex items-center justify-center text-destructive ${s||""}`,children:t("span",{children:["Failed to load PDF: ",g.message]})}):t("div",{className:s,children:[p&&e(oi,{className:"py-8",size:"lg"}),e(bn,{file:n,onLoadSuccess:({numPages:e})=>{h(e),f(!1)},onLoadError:e=>{f(!1),y(e)},loading:null,children:e(vn,{pageNumber:Math.min(r,m||1),width:i,height:a,renderTextLayer:l,renderAnnotationLayer:o,loading:e(oi,{className:"py-8",size:"md"})})})]})}const bi=210/297,vi=[50,75,100,125,150,200,300];function xi({pdfUrl:i,pdfUrlLoading:a=!1,pageCount:s,currentPage:l,onChange:o,onPageCountChange:u,className:m,compact:f=!1,headerExtra:g}){const y=h(null),b=h(null),[v,w]=c(void 0),[N,k]=c(100),[C,S]=c(bi),[j,P]=c(null),_=h(null),T=v?Math.round(v*N/100):void 0,I=p(()=>{let e=vi.findIndex(e=>e>=N);-1===e&&(e=vi.length-1);const t=Math.min(e+1,vi.length-1);k(vi[t])},[N]),A=p(()=>{let e=vi.findIndex(e=>e>=N);-1===e&&(e=vi.length-1);const t=Math.max(e-1,0);k(vi[t])},[N]),z=p(()=>{k(100)},[]),E=p(e=>e+(f?28:48),[f]),F=(e,t)=>{const n=e?Math.round(e/t):200;return E(n)};d(()=>{const e=b.current;if(!e)return;let t=null;const n=()=>e.clientWidth-16-16-4,r=()=>{const t=n();if(t<=0)return;const r=_.current;if(r&&r>0){const n=e.scrollTop,i=Math.round(n/r),a=F(t,C),s=i*a;w(t),requestAnimationFrame(()=>{e.scrollTo({top:s,behavior:"instant"})}),_.current=a}else w(t),_.current=F(t,C)},i=n();i>0&&(w(i),_.current=F(i,C));const a=new ResizeObserver(()=>{t&&clearTimeout(t),t=setTimeout(r,150)});return a.observe(e),()=>{t&&clearTimeout(t),a.disconnect()}},[C]);const D=h(!1),$=h(null),O=h(N);d(()=>{O.current!==N&&(O.current=N,$.current={targetPage:l},D.current=!0)},[N,l]),d(()=>{const e=b.current,t=$.current;if(t&&e&&j){$.current=null;const n=(t.targetPage-1)*j;requestAnimationFrame(()=>{e.scrollTo({top:n,behavior:"instant"}),requestAnimationFrame(()=>{D.current=!1})})}},[j]);const R=h(!1);d(()=>{const e=b.current;if(e&&j&&!R.current)if(l>1){R.current=!0,D.current=!0;const t=(l-1)*j;e.scrollTo({top:t,behavior:"instant"}),requestAnimationFrame(()=>{D.current=!1})}else R.current=!0},[j,l]);const U=h(l);d(()=>{const e=b.current;if(e&&j&&U.current!==l){U.current=l,D.current=!0;const t=(l-1)*j;e.scrollTo({top:t,behavior:"instant"}),requestAnimationFrame(()=>{D.current=!1})}},[l,j]),d(()=>{const e=b.current;if(!e||!j)return;let t=null;const n=()=>{D.current||(t&&clearTimeout(t),t=setTimeout(()=>{const t=e.scrollTop,n=Math.round(t/j)+1,r=Math.max(1,Math.min(n,s));r!==l&&(U.current=r,o(r))},50))};return e.addEventListener("scroll",n,{passive:!0}),()=>{t&&clearTimeout(t),e.removeEventListener("scroll",n)}},[j,s,l,o]);return t("div",{ref:y,className:r("flex flex-col items-stretch",f?"gap-y-1":"gap-y-2",m),children:[t("div",{className:r("relative flex items-center justify-center px-2",f?"h-6":"h-9"),children:[e(x,{variant:"ghost",size:"xs",onClick:()=>{l>1&&o(l-1)},alt:"Previous page",children:e(Xe,{className:"size-4"})}),t("div",{className:"absolute left-2 flex items-center gap-x-1",children:[e(Ni,{zoom:N,onZoomIn:I,onZoomOut:A,onFitToView:z,canZoomIn:N<vi[vi.length-1],canZoomOut:N>vi[0]}),g&&t(n,{children:[e("div",{className:"w-px h-4 bg-border mx-1"}),g]})]}),e("div",{className:"absolute right-2",children:e(wi,{currentPage:l,totalPages:s,onChange:o})})]}),e("div",{ref:b,className:r("flex flex-col items-center flex-1 overflow-y-auto px-2",f?"gap-1":"gap-2"),children:e(gi,{pdfUrl:i,urlLoading:a,pageCount:s,currentPage:l,thumbnailWidth:T,onPageSelect:o,onPageCountChange:u,scrollContainerRef:b,onAspectRatioChange:S,onItemHeightChange:P,calculateItemHeight:E,renderThumbnail:({pageNumber:n,isSelected:i,pageElement:a,onSelect:s})=>t("div",{className:r("hover:bg-muted rounded-md w-full",f?"p-1":"p-2"),children:[e("div",{className:r("relative border-[2px] cursor-pointer overflow-hidden",i?"border-primary":"border-border"),onClick:s,children:a}),e(L,{className:r("text-muted-foreground font-semibold",f?"text-xs pt-0.5":"text-sm pt-1"),children:n})]},n)})}),e("div",{className:r("flex items-center justify-center",f?"h-6":"h-9"),children:e(x,{variant:"ghost",size:"xs",onClick:()=>{l<s&&o(l+1)},alt:"Next page",children:e(et,{className:"size-4"})})})]})}function wi({currentPage:n,totalPages:r,onChange:i}){const a=h(null),[s,l]=c(String(n));d(()=>{l(String(n))},[n]);const o=()=>{const e=parseInt(s,10);!isNaN(e)&&e>=1&&e<=r?i(e):l(String(n))};return t("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e("span",{children:"Page"}),e("input",{ref:a,type:"text",value:s,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key?(o(),a.current?.blur()):"Escape"===e.key&&(l(String(n)),a.current?.blur())},onBlur:()=>{o()},className:"w-8 h-5 text-center text-xs px-1 py-0 bg-background border border-border rounded focus:outline-none focus:border-primary"}),t("span",{children:["/ ",r]})]})}function Ni({zoom:n,onZoomIn:i,onZoomOut:a,onFitToView:s,canZoomIn:l,canZoomOut:o}){return t("div",{className:"flex items-center gap-x-0.5",children:[e(O,{description:"Zoom out",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",o?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:a,disabled:!o,children:e(tt,{className:"size-4"})})}),t("span",{className:"text-xs text-muted-foreground min-w-[32px] text-center",children:[n,"%"]}),e(O,{description:"Zoom in",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",l?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:i,disabled:!l,children:e(nt,{className:"size-4"})})}),e(O,{description:"Fit to width",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",100!==n?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40"),onClick:s,children:e(rt,{className:"size-4"})})})]})}const ki="magic-pdf";var Ci;!function(e){e.original="original",e.instrumented="instrumented"}(Ci||(Ci={}));class Si{client;objectId;totalPages;cache=new Map;pending=new Map;constructor(e,t,n){this.client=e,this.objectId=t,this.totalPages=n}getCacheKey(e,t){return`${t}-${e}`}async getPageImageUrl(e,t){const n=this.getCacheKey(e,t),r=this.cache.get(n);if(r)return r;const i=this.pending.get(n);if(i)return i;const a=this.fetchImageUrl(e,t);this.pending.set(n,a);try{const e=await a;return this.cache.set(n,e),e}finally{this.pending.delete(n)}}async fetchImageUrl(e,t){const n=this.getImagePath(e,t);return(await this.client.files.getDownloadUrl(n)).url}getImagePath(e,t){const n=`${ki}/${this.objectId}/pages`;switch(t){case Ci.original:return`${n}/page-${e}.original.jpg`;case Ci.instrumented:return`${n}/page-${e}.instrumented.jpg`}}}class ji{client;objectId;totalPages;cache=new Map;pending=new Map;constructor(e,t,n){this.client=e,this.objectId=t,this.totalPages=n}async getPageLayout(e){const t=this.cache.get(e);if(void 0!==t)return t;const n=this.pending.get(e);if(n)return n;const r=this.fetchPageLayout(e);this.pending.set(e,r);try{const t=await r;return this.cache.set(e,t),t}finally{this.pending.delete(e)}}async fetchPageLayout(e){const t=`${ki}/${this.objectId}/pages/page-${e}.layout.json`,n=await this.client.files.getDownloadUrl(t),r=await fetch(n.url,{method:"GET"});if(!r.ok)throw new Error("Failed to fetch json layout: "+r.statusText);return r.text()}}class Pi{totalPages;pages=[];constructor(e){this.totalPages=e}initFromContent(e){this.pages=function(e,t){const n=new Array(t).fill(""),r=/<!--\s*\{\s*"page"\s*:\s*(\d+)\s*\}\s*-->/g,i=[];let a;for(;null!==(a=r.exec(e));)i.push({page:parseInt(a[1],10),index:a.index+a[0].length});for(let r=0;r<i.length;r++){const a=i[r],s=a.page-1;if(s<0||s>=t)continue;const l=a.index,o=e.slice(l).match(/<!--\s*\{\s*"page"\s*:\s*\d+\s*\}\s*-->/),c=o?l+o.index:e.length;let d=e.slice(l,c).trim();d=d.replace(/\n---\s*$/,"").trim(),n[s]=d}return n}(e,this.totalPages)}async loadUrls(e,t){}async getPageMarkdown(e){const t=e-1;return t<0||t>=this.pages.length?"":this.pages[t]}}const _i=u(void 0);function Ti({children:t,object:n}){const{client:r}=$t(),i=n.metadata.page_count||10,a="markdown"===n.metadata?.content_processor?.type,[s,l]=c(()=>{const e=new Pi(i);a&&n.text&&e.initFromContent(n.text);const t=n.text?zi(n.text):"";return{count:i,layoutProvider:new ji(r,n.id,i),markdownProvider:e,imageProvider:new Si(r,n.id,i),xml:t,xmlPages:n.text?Ai(t):[],pdfUrl:"",pdfUrlLoading:!0}});return d(()=>{if(a){const e=n.metadata,t=e?.renditions?.find(e=>e.name===qt),i="application/pdf"===n.content?.type,a=t?.content?.source||(i?n.content?.source:void 0);a?r.store.objects.getDownloadUrl(a,void 0,"inline").then(e=>{l(t=>({...t,pdfUrl:e.url,pdfUrlLoading:!1}))}).catch(e=>{console.warn("Failed to get PDF URL:",e),l(e=>({...e,pdfUrlLoading:!1}))}):l(e=>({...e,pdfUrlLoading:!1}))}else l(e=>({...e,pdfUrlLoading:!1}))},[n.id,r,a,i]),e(_i.Provider,{value:s,children:t})}function Ii(){const e=l.useContext(_i);if(!e)throw new Error("useMagicPdfContext must be used within a MagicPdfProvider");return e}function Ai(e){const t=(new DOMParser).parseFromString(zi(e),"text/xml").getElementsByTagName("page"),n=new XMLSerializer;return Array.from(t).map(e=>n.serializeToString(e))}function zi(e){return e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"").replace(/<\?xml.*?\?>/g,"")}const Ei=[50,75,100,125,150,200,300],Fi=11/8.5;function Di({className:n,currentPage:i,onChange:a}){const[s,l]=c(Ci.instrumented),[o,u]=c(Fi),[m,f]=c(new Map),[g,y]=c(100),b=h(new Set),v=h(null),w=h(null),N=h(!1),{imageProvider:k,count:C}=Ii(),S=p(()=>{let e=Ei.findIndex(e=>e>=g);-1===e&&(e=Ei.length-1);const t=Math.min(e+1,Ei.length-1);y(Ei[t])},[g]),j=p(()=>{let e=Ei.findIndex(e=>e>=g);-1===e&&(e=Ei.length-1);const t=Math.max(e-1,0);y(Ei[t])},[g]),P=p(()=>{y(100)},[]);d(()=>{k.getPageImageUrl(1,s).then(e=>{const t=new window.Image;t.onload=()=>{t.width>0&&t.height>0&&u(t.height/t.width)},t.src=e}).catch(()=>{})},[k,s]);const _=h(s);d(()=>{let e=!1;_.current!==s&&(_.current=s,b.current=new Set,f(new Map));const t=function(e,t){const n=[e];let r=1;for(;n.length<t;){const i=e+r,a=e-r;i<=t&&n.push(i),a>=1&&n.push(a),r++}return n}(i,C);return t.forEach(t=>(async t=>{if(!e&&!b.current.has(t))try{const n=await k.getPageImageUrl(t,s);e||(b.current.add(t),f(e=>new Map(e).set(t,n)))}catch{}})(t)),()=>{e=!0}},[i,C,s,k]);const T=h(g);d(()=>{if(T.current!==g&&w.current){T.current=g,N.current=!0;const e=w.current.querySelector(`[data-page="${i}"]`);e?requestAnimationFrame(()=>{e.scrollIntoView({behavior:"instant",block:"center"}),requestAnimationFrame(()=>{N.current=!1})}):N.current=!1}},[g,i]);const I=h(i);d(()=>{if(I.current!==i&&w.current){I.current=i,N.current=!0;const e=w.current.querySelector(`[data-page="${i}"]`);e&&e.scrollIntoView({behavior:"instant",block:"nearest"}),requestAnimationFrame(()=>{N.current=!1})}},[i]),d(()=>{const e=w.current;if(!e)return;let t=null;const n=()=>{N.current||(t&&clearTimeout(t),t=setTimeout(()=>{const t=e.getBoundingClientRect(),n=t.top+t.height/2;let r=i,s=1/0;for(let t=1;t<=C;t++){const i=e.querySelector(`[data-page="${t}"]`);if(i){const e=i.getBoundingClientRect(),a=e.top+e.height/2,l=Math.abs(a-n);l<s&&(s=l,r=t)}}r!==i&&(I.current=r,a(r))},50))};return e.addEventListener("scroll",n,{passive:!0}),()=>{t&&clearTimeout(t),e.removeEventListener("scroll",n)}},[C,i,a]);return t("div",{ref:v,className:r("flex flex-col items-stretch gap-y-2",n),children:[t("div",{className:"relative flex items-center justify-center px-2 h-9",children:[e(x,{variant:"ghost",size:"xs",onClick:()=>{i>1&&a(i-1)},alt:"Previous page",children:e(Xe,{className:"size-4"})}),t("div",{className:"absolute left-2 flex items-center gap-x-1",children:[e($i,{type:Ci.original,currentType:s,onClick:()=>l(Ci.original),icon:e(it,{className:"size-4"}),tooltip:"Original images"}),e($i,{type:Ci.instrumented,currentType:s,onClick:()=>l(Ci.instrumented),icon:e(at,{className:"size-4"}),tooltip:"Instrumented images"}),e("div",{className:"w-px h-4 bg-border mx-1"}),e(Li,{zoom:g,onZoomIn:S,onZoomOut:j,onFitToView:P,canZoomIn:g<Ei[Ei.length-1],canZoomOut:g>Ei[0]})]}),e("div",{className:"absolute right-2",children:e(Ri,{currentPage:i,totalPages:C,onChange:a})})]}),e("div",{ref:w,className:"flex flex-col items-center gap-2 flex-1 overflow-y-auto px-2",children:Array.from({length:C},(t,n)=>e(Oi,{currentPage:i,pageNumber:n+1,aspectRatio:o,zoom:g,url:m.get(n+1),onSelect:()=>a(n+1)},n))}),e("div",{className:"flex items-center justify-center h-9",children:e(x,{variant:"ghost",size:"xs",onClick:()=>{i<C&&a(i+1)},alt:"Next page",children:e(et,{className:"size-4"})})})]})}function $i({type:t,currentType:n,onClick:i,icon:a,tooltip:s}){return e(O,{description:s,placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",t===n?"text-primary bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),onClick:i,children:a})})}function Li({zoom:n,onZoomIn:i,onZoomOut:a,onFitToView:s,canZoomIn:l,canZoomOut:o}){return t("div",{className:"flex items-center gap-x-0.5",children:[e(O,{description:"Zoom out",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",o?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:a,disabled:!o,children:e(tt,{className:"size-4"})})}),t("span",{className:"text-xs text-muted-foreground min-w-[32px] text-center",children:[n,"%"]}),e(O,{description:"Zoom in",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",l?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40 cursor-not-allowed"),onClick:i,disabled:!l,children:e(nt,{className:"size-4"})})}),e(O,{description:"Fit to width",placement:"bottom",size:"xs",children:e("button",{className:r("p-1 rounded cursor-pointer transition-colors",100!==n?"text-muted-foreground hover:text-foreground hover:bg-muted":"text-muted-foreground/40"),onClick:s,children:e(rt,{className:"size-4"})})})]})}function Oi({pageNumber:n,currentPage:i,aspectRatio:a,zoom:s,url:l,onSelect:o}){return t("div",{className:"p-2 hover:bg-muted rounded-md flex flex-col items-center","data-page":n,style:{width:`${s}%`},children:[e("div",{className:r("relative border-[2px] cursor-pointer overflow-hidden flex items-center justify-center bg-muted/50 w-full",n===i?"border-primary":"border-border"),style:{aspectRatio:`1 / ${a}`},onClick:o,children:l?e("img",{src:l,alt:`Page ${n}`,className:"w-full"}):e(Qe,{className:"w-6 h-6 animate-spin text-muted-foreground"})}),e(L,{className:"text-sm text-muted-foreground pt-1 font-semibold",children:n})]})}function Ri({currentPage:n,totalPages:r,onChange:i}){const a=h(null),[s,l]=c(String(n));d(()=>{l(String(n))},[n]);const o=()=>{const e=parseInt(s,10);!isNaN(e)&&e>=1&&e<=r?i(e):l(String(n))};return t("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e("span",{children:"Page"}),e("input",{ref:a,type:"text",value:s,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key?(o(),a.current?.blur()):"Escape"===e.key&&(l(String(n)),a.current?.blur())},onBlur:()=>{o()},className:"w-8 h-5 text-center text-xs px-1 py-0 bg-background border border-border rounded focus:outline-none focus:border-primary"}),t("span",{children:["/ ",r]})]})}function Ui({object:n}){const{client:r}=$t(),i=e=>{(function(e,t,n){return e.files.getDownloadUrl(`${ki}/${t}/${n}`).then(e=>e.url)})(r,n.id,e).then(e=>window.open(e,"_blank"))},a="p-2 cursor-pointer hover:bg-muted text-left text-sm";return"markdown"===(()=>{if("document"===n.metadata?.type){const e=n.metadata;return e.content_processor?.type||"xml"}return"xml"})()?e(x,{variant:"ghost",size:"xs",onClick:()=>i("document.md"),alt:"Download",children:e(st,{className:"size-4"})}):t(nn,{strategy:"absolute",placement:"bottom-start",zIndex:100,offset:8,children:[e(nn.Trigger,{click:!0,children:e(x,{variant:"ghost",size:"xs",alt:"Download",children:e(st,{className:"size-4"})})}),e(nn.Content,{children:t("div",{className:"rounded-md shadow-md border border-border bg-popover min-w-[200px] flex flex-col divide-y divide-border",children:[e("button",{className:a,onClick:()=>i("annotated.pdf"),children:"annotated.pdf"}),e("button",{className:a,onClick:()=>i("document.xml"),children:"document.xml"}),e("button",{className:a,onClick:()=>i("analyzed-pages.json"),children:"analyzed-pages.json"})]})})]})}function Mi({className:t}){return e("div",{className:`flex items-center justify-center ${t||""}`,children:e(Qe,{className:"w-6 h-6 animate-spin text-gray-400"})})}function Vi({viewType:t,pageNumber:n}){switch(t){case"json":return e(Ki,{pageNumber:n});case"markdown":return e(Bi,{pageNumber:n});default:return e(qi,{pageNumber:n})}}function qi({pageNumber:t}){const{xmlPages:n}=Ii();return e("div",{className:"px-4 py-2",children:e(rn,{xml:n[t-1],collapsible:!0})})}function Ki({pageNumber:t}){const[n,r]=c(null),[i,a]=c(!0),[s,l]=c(null),{layoutProvider:o}=Ii();return d(()=>{a(!0),l(null),o.getPageLayout(t).then(e=>{r(e?JSON.parse(e):null),a(!1)}).catch(e=>{console.error(e),l(e.message||"Failed to load layout"),a(!1)})},[t,o]),i?e("div",{className:"px-4 py-8",children:e(Mi,{})}):s?e("div",{className:"px-4 py-2 text-red-500 text-sm",children:s}):n?e(an,{className:"w-full",data:n}):null}function Bi({pageNumber:n}){const[r,i]=c(null),[a,s]=c(!0),[l,o]=c(null),{markdownProvider:u}=Ii();return d(()=>{s(!0),o(null),u.getPageMarkdown(n).then(e=>{i(e),s(!1)}).catch(e=>{console.error(e),o(e.message||"Failed to load markdown"),s(!1)})},[n,u]),a?t("div",{className:"h-full flex flex-col items-center justify-center gap-2",children:[e(Mi,{}),e("span",{className:"text-sm text-muted-foreground",children:"Loading..."})]}):e("div",l?{className:"px-4 py-2 text-red-500 text-sm",children:l}:{className:"px-4 py-2 prose prose-sm max-w-none dark:prose-invert",children:r?e(en,{children:r}):e("div",{children:"No markdown content available"})})}class Wi extends f{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("PDF View error:",e,t)}render(){return this.state.hasError?e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:t("div",{className:"flex flex-col items-center gap-4 p-8 max-w-md",children:[e(U,{title:"Failed to load PDF viewer",children:this.state.error?.message||"An unexpected error occurred"}),this.props.onClose&&e(x,{variant:"outline",onClick:this.props.onClose,children:"Close"})]})}):this.props.children}}function Gi({objectId:n,onClose:r}){const{client:i}=$t(),{data:a,error:s}=R(()=>i.store.objects.retrieve(n,"+text"),[n]);return s?e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:t("div",{className:"flex flex-col items-center gap-4 p-8 max-w-md",children:[e(U,{title:"Fetching document failed",children:s.message}),r&&e(x,{variant:"outline",onClick:r,children:"Close"})]})}):a?e(Wi,{onClose:r,children:e("div",{className:"fixed inset-0 bg-background z-50 flex items-center justify-center",children:e(Ti,{object:a,children:e(Hi,{object:a,onClose:r})})})}):t("div",{className:"fixed inset-0 bg-background z-50 flex flex-col",children:[e("div",{className:"flex h-9 items-center justify-end shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:r&&e(x,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(lt,{className:"size-4"})})}),e("div",{className:"flex-1 flex items-center justify-center",children:e("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"})})]})}function Hi({object:n,onClose:r}){const{count:i,pdfUrl:a,pdfUrlLoading:s}=Ii(),[l,o]=c(1),d=(()=>{if("document"===n.metadata?.type){const e=n.metadata,t=e.content_processor?.type;if("markdown"===t)return"markdown"}return"xml"})();return t(M,"xml"===d?{direction:"horizontal",className:"absolute inset-0",children:[e(V,{defaultSize:50,minSize:20,maxSize:80,className:"bg-muted",children:e(Di,{className:"h-full",currentPage:l,onChange:o})}),e(q,{className:"w-[4px] bg-border cursor-ew-resize"}),t(V,{defaultSize:50,minSize:20,className:"flex flex-col",children:[t("div",{className:"flex h-9 items-center justify-between shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:[e("div",{className:"flex items-center gap-x-2",children:e(Ui,{object:n})}),t("span",{className:"text-xs text-muted-foreground",children:["Page ",l," / ",i]}),e("div",{className:"flex items-center gap-x-2",children:!!r&&e(x,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(lt,{className:"size-4"})})})]}),e("div",{className:"flex-1 overflow-auto px-2",children:e(Vi,{pageNumber:l,viewType:"xml"})})]})]}:{direction:"horizontal",className:"absolute inset-0",children:[e(V,{defaultSize:50,minSize:20,maxSize:80,className:"bg-muted",children:e(xi,{pdfUrl:a,pdfUrlLoading:s,pageCount:i,className:"h-full",currentPage:l,onChange:o})}),e(q,{className:"w-[4px] bg-border cursor-ew-resize"}),t(V,{defaultSize:50,minSize:20,className:"flex flex-col",children:[t("div",{className:"flex h-9 items-center justify-between shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:[e("div",{className:"flex items-center gap-x-2",children:e(Ui,{object:n})}),t("span",{className:"text-xs text-muted-foreground",children:["Page ",l," / ",i]}),e("div",{className:"flex items-center gap-x-2",children:!!r&&e(x,{variant:"ghost",size:"xs",onClick:r,alt:"Close",children:e(lt,{className:"size-4"})})})]}),e("div",{className:"flex-1 overflow-auto px-2",children:e(Vi,{pageNumber:l,viewType:"markdown"})})]})]})}function Ji({object:n,url:r,source:i,className:a}){const{client:s}=$t(),[l,o]=c(1),[u,m]=c(r||""),[h,p]=c(!r),[f,g]=c(0),[y,b]=c(!1);d(()=>{if(r)return m(r),void p(!1);const e=i||n?.content?.source;e?(p(!0),s.files.getDownloadUrl(e).then(e=>{m(e.url)}).catch(e=>{console.error("Failed to get PDF URL:",e)}).finally(()=>{p(!1)})):p(!1)},[r,i,n?.content?.source,s]),d(()=>{const e=n?.metadata,t=e?.pages||e?.page_count||0;t>0&&g(t)},[n?.metadata]);const v=e=>{g(e)};return h?e("div",{className:"flex items-center justify-center h-full",children:e(K,{size:"lg"})}):u?y?t("div",{className:"fixed inset-0 bg-background z-50 flex flex-col overflow-hidden",children:[e("div",{className:"flex h-9 items-center justify-end shrink-0 bg-sidebar px-2 border-b border-sidebar-border",children:e(x,{variant:"ghost",size:"xs",onClick:()=>b(!1),alt:"Close fullscreen",children:e(lt,{className:"size-4"})})}),e(xi,{pdfUrl:u,pdfUrlLoading:h,pageCount:f||100,currentPage:l,onChange:o,onPageCountChange:v,className:"flex-1 min-h-0"})]}):e("div",{className:"relative h-full flex flex-col",children:e(xi,{pdfUrl:u,pdfUrlLoading:h,pageCount:f||100,currentPage:l,onChange:o,onPageCountChange:v,className:a,compact:!0,headerExtra:e(O,{description:"Fullscreen",placement:"bottom",size:"xs",children:e("button",{className:"p-1 rounded cursor-pointer transition-colors text-muted-foreground hover:text-foreground hover:bg-muted",onClick:()=>b(!0),children:e(ot,{className:"size-4"})})})})}):e("div",{className:"flex items-center justify-center h-full text-muted",children:"No PDF available"})}const Yi=131072;const Zi=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/svg+xml"],Qi=["video/mp4","video/webm"],Xi="h-[calc(100vh-208px)]",ea="h-[calc(100vh-228px)]",ta="h-[calc(100vh-218px)]",na="max-h-[calc(100vh-268px)]";function ra(e){return e===Bt.created||e===Bt.processing}function ia(e){return e.metadata?.content_processor?.type}var aa;function sa({object:r,loadText:i,refetch:a}){const s=b(),l=async(e,t)=>{try{await navigator.clipboard.writeText(e),s({status:"success",title:("text"===t?"Content":"Properties")+" copied",description:`Successfully copied ${t} to clipboard`,duration:2e3})}catch(e){console.error(`Failed to copy ${t}:`,e),s({status:"error",title:"Copy failed",description:`Failed to copy ${t} to clipboard`,duration:5e3})}};return e(n,{children:t(M,{direction:"horizontal",className:Xi,children:[e(V,{className:"min-w-[100px]",children:e(la,{object:r,refetch:a??(()=>Promise.resolve()),handleCopyContent:l})}),e(q,{withHandle:!0}),e(V,{className:"min-w-[100px]",children:e(oa,{object:r,loadText:i??!1,handleCopyContent:l,refetch:a})})]})})}function la({object:r,refetch:i,handleCopyContent:a}){const[s,l]=c(!1),[o,d]=c(!1);return t(n,{children:[t("div",{className:"flex justify-between items-center px-2",children:[t("div",{className:"flex items-center gap-1 bg-muted mb-2 p-1 rounded",children:[e(x,{variant:""+(s?"ghost":"primary"),size:"sm",alt:"Preview properties",onClick:()=>l(!s),children:"Properties"}),e(x,{variant:""+(s?"primary":"ghost"),size:"sm",alt:"View in JSON format",onClick:()=>l(!s),children:"JSON"})]}),t("div",{className:"flex items-center gap-2",children:[r.properties&&e(x,{variant:"ghost",size:"sm",title:"Copy properties",onClick:()=>a(JSON.stringify(r.properties,null,2),"properties"),children:e(dt,{className:"size-4"})}),e(x,{variant:"ghost",size:"sm",onClick:()=>{d(!0)},title:"Edit properties",className:"flex items-center gap-2",children:e(ut,{className:"size-4"})})]})]}),r.properties?e("div",{className:`${ea} overflow-auto px-2`,children:e(sn,{value:r.properties,viewCode:s})}):e("div",{className:`${ea} overflow-auto px-2`,children:e("div",{children:"No properties defined"})}),e(li,{isOpen:o,onClose:()=>{d(!1)},object:r,refetch:i})]})}function oa({object:n,loadText:r,handleCopyContent:i,refetch:a}){const s=n?.metadata?.type===Wt.Image,l=n?.metadata?.type===Wt.Video,o="application/pdf"===n?.content?.type,u=!!n?.content?.type&&Zr(n.content.type),m=ra(n?.status),f=n.metadata,g=f?.renditions?.find(e=>e.name===qt),[y,b]=c(l?aa.Video:s?aa.Image:aa.Text),{fullText:v,displayText:w,isLoading:N,isCropped:k}=function(e,t,n=!1){const{store:r}=$t(),[i,a]=c(t),[s,l]=c(()=>t&&t.length>Yi?t.substring(0,Yi):t),[o,u]=c(!1),[m,h]=c(()=>!!t&&t.length>Yi),f=p(()=>{u(!0),r.objects.getObjectText(e).then(e=>{a(e.text),e.text&&e.text.length>Yi?(l(e.text.substring(0,Yi)),h(!0)):(l(e.text),h(!1))}).catch(e=>{console.error("Failed to load text",e)}).finally(()=>{u(!1)})},[e,r]);return d(()=>{n&&!s&&f()},[n,s,f]),{fullText:i,displayText:s,isLoading:o,isCropped:m,loadText:f}}(n.id,n.text,r),C=(o||u)&&m,{progress:S,status:j,outputFormat:P,isComplete:_}=function(e,t){const{client:n}=$t(),[r,i]=c(),[a,s]=c(),[l,o]=c(),[u,m]=c(!1);return d(()=>{if(!t)return;let r=!1;return function t(){r||n.objects.analyze(e).getStatus().then(e=>{i(e.progress),s(e.status),o(e.output_format??e.progress?.output_format),e.status===Vt.RUNNING?r||setTimeout(t,2e3):m(!0)}).catch(()=>{r||setTimeout(t,1e4)})}(),()=>{r=!0}},[t,e,n]),{progress:r,status:a,outputFormat:l,isComplete:u}}(n.id,C),{pdfUrl:T,isConverting:I,error:A,triggerConversion:z}=function(e,t){const{client:n}=$t(),[r,i]=c(),[a,s]=c(!1),[l,o]=c(),d=p(async()=>{if(!t||a)return;s(!0),o(void 0);const r=async t=>{try{const a=await n.objects.getRendition(e,{format:Kt.pdf,generate_if_missing:t,sign_url:!0,block_on_generation:!1});"generating"===a.status?setTimeout(()=>r(!1),5e3):"found"===a.status&&a.renditions?.length?(i(a.renditions[0]),s(!1)):"failed"===a.status&&(o("PDF conversion failed"),s(!1))}catch(e){console.error("Failed to convert Office document to PDF:",e),o("Failed to convert to PDF"),s(!1)}};await r(!0)},[e,t,a,n]);return{pdfUrl:r,isConverting:a,error:l,triggerConversion:d}}(n.id,u);d(()=>{_&&j===Vt.COMPLETED&&a?.()},[_,j,a]);const E=(o||u)&&m&&!_&&j===Vt.RUNNING,F=h(null);return t("div",{className:"flex flex-col h-full",children:[t("div",{className:"flex justify-between items-center px-2 shrink-0",children:[t("div",{className:"flex items-center gap-2 mb-2",children:[t("div",{className:"flex items-center gap-1 bg-muted p-1 rounded",children:[s&&e(x,{variant:y===aa.Image?"primary":"ghost",size:"sm",alt:"View Image",onClick:()=>b(aa.Image),children:"Image"}),l&&e(x,{variant:y===aa.Video?"primary":"ghost",size:"sm",alt:"View Video",onClick:()=>b(aa.Video),children:"Video"}),e(x,{variant:y===aa.Text?"primary":"ghost",size:"sm",alt:"View Text",onClick:()=>b(aa.Text),children:"Text"}),o&&e(x,{variant:y===aa.Pdf?"primary":"ghost",size:"sm",alt:"View PDF",onClick:()=>b(aa.Pdf),children:"PDF"}),u&&e(x,{variant:y===aa.Pdf?"primary":"ghost",size:"sm",alt:"View as PDF",onClick:()=>{b(aa.Pdf),g||T||I||z()},disabled:I,children:I?e(K,{size:"sm"}):"PDF"})]}),e(ha,{object:n})]}),y===aa.Text&&!E&&e(ca,{object:n,text:w,fullText:v,handleCopyContent:i,textContainerRef:F}),y===aa.Pdf&&u&&(g||T)&&e(pa,{object:n,pdfRendition:g,officePdfUrl:T})]}),y===aa.Image&&e(ua,{object:n}),y===aa.Video&&e(ma,{object:n}),y===aa.Pdf&&o&&e(fa,{object:n}),y===aa.Pdf&&u&&e(ga,{pdfRendition:g,officePdfUrl:T,officePdfConverting:I,officePdfError:A,onConvert:z}),y===aa.Text&&E&&e(ya,{progress:S,status:j,outputFormat:P}),y===aa.Text&&!E&&N&&e("div",{className:"flex justify-center items-center flex-1",children:e(K,{size:"lg"})}),y===aa.Text&&!E&&!N&&e(da,{object:n,text:w,isTextCropped:k,textContainerRef:F})]})}function ca({object:r,text:i,fullText:a,handleCopyContent:s,textContainerRef:l}){const{client:o}=$t(),d=b(),[u,m]=c(null),[h,p]=c(!1),f=r.content,g=f&&f.type&&"text/markdown"===f.type,y=ia(r),v=async e=>{if(!u){m(e),d({status:"info",title:`Preparing ${e.toUpperCase()}`,description:"Fetching your document...",duration:2e3});try{const t=await o.objects.getRendition(r.id,{format:e,generate_if_missing:!0,sign_url:!0});if("generating"===t.status)return d({status:"info",title:"Generating document",description:`Please wait while we prepare your ${e.toUpperCase()} file...`,duration:5e3}),void setTimeout(()=>v(e),3e3);if("failed"===t.status)throw new Error("Document generation failed");if(t.renditions&&t.renditions.length>0){const n=t.renditions[0];if("pdf"===e);else{const t=document.createElement("a");t.href=n,t.download=`${r.name||"document"}.${e}`,document.body.appendChild(t),t.click(),document.body.removeChild(t),d({status:"success",title:"Document exported",description:`Successfully exported to ${e.toUpperCase()} format`,duration:2e3})}}}catch(t){console.error(`Failed to export document as ${e}:`,t),d({status:"error",title:"Export failed",description:`Failed to export document to ${e.toUpperCase()} format`,duration:5e3})}finally{m(null)}}};return t(n,{children:[e("div",{className:"h-[41px] text-lg font-semibold flex justify-between items-center px-2",children:t("div",{className:"flex items-center gap-2",children:[a&&t(n,{children:[e(x,{variant:"ghost",size:"sm",title:"Copy text",onClick:()=>s(a,"text"),children:e(dt,{className:"size-4"})}),e(x,{variant:"ghost",size:"sm",title:"Download text",onClick:e=>{if(e.preventDefault(),e.stopPropagation(),!a)return;let t="txt",n="text/plain";"xml"===y?(t="xml",n="text/xml"):("markdown"===y||g)&&(t="md",n="text/markdown");const i=new Blob([a],{type:n}),s=URL.createObjectURL(i),l=`${r.name||"document"}.${t}`,o=document.createElement("a");o.href=s,o.download=l,o.style.display="none",setTimeout(()=>{o.click(),URL.revokeObjectURL(s)},0)},children:e(st,{className:"size-4"})})]}),g&&i&&t(n,{children:[t(x,{variant:"ghost",size:"sm",onClick:()=>v("docx"),disabled:null!==u,className:"flex items-center gap-2",children:["docx"===u?e(K,{size:"sm"}):e(st,{className:"size-4"}),"DOCX"]}),t(x,{variant:"ghost",size:"sm",onClick:()=>{l.current?p(!0):d({status:"error",title:"PDF export failed",description:"No content available to export",duration:3e3})},className:"flex items-center gap-2",children:[e(st,{className:"size-4"}),"PDF"]})]})]})}),t(W,{isOpen:h,onClose:()=>p(!1),children:[e(G,{children:"Export document as PDF"}),t(H,{children:[e("p",{className:"mb-2",children:"This will open your browser's print dialog with the current document content."}),e("p",{className:"text-sm text-muted",children:'To save a PDF, choose "Save as PDF" or a similar option in the print dialog.'})]}),t(J,{align:"right",children:[e(x,{variant:"ghost",size:"sm",onClick:()=>p(!1),children:"Cancel"}),e(x,{size:"sm",onClick:()=>{if(!l.current)return void d({status:"error",title:"PDF export failed",description:"No content available to export",duration:3e3});const e=`${r.name||r.id||"document"} - content`;ni(l.current,e)?(d({status:"success",title:"PDF export ready",description:"Use your browser's Print dialog to save as PDF",duration:4e3}),p(!1)):d({status:"error",title:"PDF export failed",description:"Unable to open print preview",duration:4e3})},children:"Open print dialog"})]})]})]})}!function(e){e.Text="text",e.Image="image",e.Video="video",e.Pdf="pdf"}(aa||(aa={}));const da=g(({object:r,text:i,isTextCropped:a,textContainerRef:s})=>{const l=r.content,o=ra(r?.status),c="xml"===ia(r),d=l&&l.type&&("text/markdown"===l.type||"text/plain"===l.type),u=!c&&(d||function(e){return!!e&&(e.includes("\n# ")||e.includes("\n## ")||e.includes("\n### ")||e.includes("\n* ")||e.includes("\n- ")||e.includes("\n+ ")||e.includes(")}(i));return i?t(n,{children:[a&&e("div",{className:"px-2 py-2 bg-attention/10 border-l-4 border-attention mx-2 mb-2 rounded",children:t("div",{className:"flex items-center gap-2 text-attention",children:[e(ct,{className:"size-4"}),e("span",{className:"text-sm font-semibold",children:"Showing first 128K characters only"})]})}),e("div",{className:`max-w-7xl px-2 ${ta} overflow-auto`,ref:s,children:c?e("div",{className:"px-4 py-2",children:e(rn,{xml:i,collapsible:!0})}):u?e("div",{className:"vprose prose-sm p-1",children:e(en,{components:{a:({node:t,...n})=>{const r=n.href||"";return r.includes("/store/objects/")?e(Qt,{topLevelNav:!0,href:r,className:"text-info",children:n.children}):e("a",{...n,target:"_blank",rel:"noopener noreferrer"})},p:({node:t,...n})=>e("p",{...n,className:"my-0"}),pre:({node:t,...n})=>e("pre",{...n,className:"my-2 p-2 rounded"}),code:({node:t,className:n,children:r,...i})=>{const a=/language-(\w+)/.exec(n||"");return e("code",{...i,className:a?"text-muted":"px-1.5 py-0.5 rounded",children:r})},h1:({node:t,...n})=>e("h1",{...n,className:"font-bold text-2xl my-2"}),h2:({node:t,...n})=>e("h2",{...n,className:"font-bold text-xl my-2"}),h3:({node:t,...n})=>e("h3",{...n,className:"font-bold text-lg my-2"}),li:({node:t,...n})=>e("li",{...n})},children:i})}):e("pre",{className:"text-wrap bg-muted text-muted p-2",children:i})})]}):e("div",{className:"px-2",children:e("div",{children:o?"Extracting content...":"No content"})})});function ua({object:t}){const{client:n}=$t(),[r,i]=c(),a=t.content,s=t.metadata&&t.metadata.type===Wt.Image;return d(()=>{if(s){(async()=>{const e=a?.type&&Zi.includes(a.type);try{const r=await n.objects.getRendition(t.id,{format:Mt.jpeg,generate_if_missing:!1,sign_url:!0});if("found"===r.status&&r.renditions?.length)i(r.renditions[0]);else if(e){const e=await n.files.getDownloadUrl(t.content.source);i(e.url)}}catch(r){if(e){const e=await n.files.getDownloadUrl(t.content.source);i(e.url)}}})()}},[]),e("div",{className:"mb-4 px-2",children:r?e("img",{src:r,alt:t.name,className:"w-full object-contain"}):e(K,{size:"md"})})}function ma({object:n}){const{client:r}=$t(),[i,a]=c(),[s,l]=c(),[o,u]=c(!0),m=n.content,h=n.metadata?.type===Wt.Video,p=n.metadata,f=p?.renditions||[],g=f.find(e=>"video/mp4"===e.content.type)||f.find(e=>"video/webm"===e.content.type),y=m?.type&&Qi.includes(m.type),b=f.find(e=>e.name===Gt);return d(()=>{(async()=>{if(b?.content?.source)try{const e=await r.files.getDownloadUrl(b.content.source);l(e.url)}catch(e){console.error("Failed to load poster image",e)}})()},[b,r]),d(()=>{if(h&&(g?.content?.source||y)){(async()=>{try{let e;g?.content?.source?e=await r.files.getDownloadUrl(g.content.source):y&&m?.source&&(e=await r.files.getDownloadUrl(m.source)),e&&a(e.url)}catch(e){console.error("Failed to get video URL",e)}finally{u(!1)}})()}else u(!1)},[h,g,y,m?.source,r]),e("div",{className:"mb-4 px-2",children:g||y?o?e("div",{className:"flex justify-center items-center h-[400px]",children:e(K,{size:"md"})}):i?e("video",{src:i,poster:s,controls:!0,className:`w-full ${na} object-contain`,children:"Your browser does not support the video tag."}):e("div",{className:"flex justify-center items-center h-[400px] text-muted",children:"Failed to load video"}):e("div",{className:"flex justify-center items-center h-[400px] text-muted",children:t("div",{className:"text-center",children:[e("p",{children:"No web-compatible video rendition available"}),e("p",{className:"text-sm mt-2",children:"MP4 or WebM format required"})]})})})}function ha({object:r}){const[i,a]=c(!1),s=ia(r);return"xml"===s||"markdown"===s?t(n,{children:[e(x,{variant:"ghost",size:"sm",onClick:()=>a(!0),title:"Side by side view",children:e(mt,{className:"size-4"})}),i&&e(B,{children:e(Gi,{objectId:r.id,onClose:()=>a(!1)})})]}):null}function pa({object:t,pdfRendition:n,officePdfUrl:r}){const{client:i}=$t(),a=b(),[s,l]=c(!1);return e("div",{className:"flex items-center gap-2",children:e(x,{variant:"ghost",size:"sm",onClick:async()=>{l(!0);try{let e=r;if(!e&&n?.content?.source){e=(await i.files.getDownloadUrl(n.content.source,`${t.name||"document"}.pdf`,"attachment")).url}e&&window.open(e,"_blank")}catch(e){console.error("Failed to download PDF:",e),a({status:"error",title:"Download failed",description:"Failed to download the PDF file",duration:5e3})}finally{l(!1)}},disabled:s,title:"Download PDF",children:s?e(K,{size:"sm"}):e(st,{className:"size-4"})})})}function fa({object:t}){return e("div",{className:ta,children:e(Ji,{object:t,className:"h-full"})})}function ga({pdfRendition:n,officePdfUrl:r,officePdfConverting:i,officePdfError:a,onConvert:s}){return i?t("div",{className:"flex flex-col justify-center items-center flex-1 gap-2",children:[e(K,{size:"lg"}),e("span",{className:"text-muted",children:"Converting to PDF..."})]}):a?t("div",{className:"flex flex-col justify-center items-center flex-1 gap-2 text-destructive",children:[e(ct,{className:"size-8"}),e("span",{children:a})]}):e("div",n?.content?.source?{className:ta,children:e(Ji,{source:n.content.source,className:"h-full"})}:r?{className:ta,children:e(Ji,{url:r,className:"h-full"})}:{className:"flex flex-col justify-center items-center flex-1 gap-2",children:e(x,{onClick:s,children:"Convert to PDF"})})}function ya({progress:r,status:i,outputFormat:a}){const s=ri(i),l=ii(i),o="xml"===a,c=null==r?.percent||isNaN(r.percent)?0:r.percent;return t("div",{className:"px-4 py-4",children:[r&&t("div",{className:"space-y-2",children:[t("div",{className:"flex flex-col gap-1",children:[e(ba,{name:o?"Analyze Layouts":"Analyze Page",progress:r.pages}),o&&t(n,{children:[e(ba,{name:"Extract Tables",progress:r.tables}),e(ba,{name:"Describe Images",progress:r.images}),e(ba,{name:"Process Visually",progress:r.visuals})]})]}),t("div",{className:"pt-2 text-sm text-muted",children:["Progress: ",c,"%",e("span",{className:"px-2",children:"•"}),e("span",{className:s,children:l}),r.started_at&&t(n,{children:[e("span",{className:"px-2",children:"•"}),t("span",{children:[((Date.now()-r.started_at)/1e3).toFixed(0)," sec. elapsed"]})]})]}),e(ln,{percent:c})]}),!r&&t("div",{className:"flex items-center gap-2 text-muted",children:[e(K,{size:"sm"}),e("span",{children:"Loading processing status..."})]})]})}function ba({name:e,progress:n}){return t("div",{className:"flex gap-2 text-sm",children:[t("span",{className:"text-muted min-w-36",children:[e,":"]}),t("span",{children:[n.processed," of ",n.total]})]})}function va({isLoading:n=!1,counts:r=6}){return n?e("div",{className:"flex flex-wrap gap-2 justify-between",children:Array(r).fill(0).map((n,r)=>e("div",{className:"w-[15vw] animate-pulse",children:t(Y,{className:"relative flex flex-col border h-fit",children:[e("div",{className:"h-48 bg-muted rounded-t-xl flex items-center justify-center text-muted",children:" "}),e(Z,{className:"bg-muted h-[2px]"}),t(Q,{className:"p-2 flex flex-col",children:[t("div",{className:"flex flex-col overflow-hidden",children:[e("div",{className:"h-5 bg-muted rounded w-3/4 mb-2"}),e("div",{className:"h-4 bg-muted rounded w-1/2"})]}),e("div",{className:"text-xs text-muted w-full flex justify-end mt-2",children:e("div",{className:"h-3 bg-muted rounded w-1/4"})})]})]})},r))}):null}function xa({selection:n,document:r,onSelectionChange:i,onRowClick:a,previewObject:s,selectedObject:l}){const{client:o}=$t(),[u,m]=c(void 0),[h,p]=c(void 0),[f,g]=c(void 0);return d(()=>{r?.content&&ti(o,r,m,p,g)},[r]),t(Y,{className:"relative flex flex-col border h-fit w-full "+(l?.id===r.id?"border-attention border-4":""),onClick:()=>a&&a(r),children:[n&&e("div",{className:"absolute top-2 left-2 z-10 flex flex-col items-center gap-1",children:e("input",{checked:n.isSelected(r.id),type:"checkbox",onChange:e=>{e.stopPropagation(),i(r,e)},onClick:e=>e.stopPropagation()})}),e("div",{className:"absolute top-1 right-1 z-10 flex flex-col items-center",children:e(x,{variant:"ghost",size:"sm",title:"Preivew Object",onClick:e=>{e.stopPropagation(),s?.(r.id)},children:e(ht,{className:"size-4 "+("ready"===f?"text-muted":"text-white")})})}),u&&"ready"==f?e("img",{src:u,alt:h,className:"w-auto h-48 object-cover rounded-t-xl"}):e("div",{className:"h-48 bg-gray-700 rounded-t-xl flex items-center justify-center text-muted",children:f}),e(Z,{className:"bg-gray-200 h-[2px]"}),t(Q,{className:"p-2 flex flex-col",children:[t("div",{className:"flex flex-col overflow-hidden",children:[e(O,{placement:"top",description:r.properties?.title??r.name,children:e("h3",{className:"text-start font-medium leading-none truncate",children:r.properties?.title??r.name})}),r?.type?.name?e(O,{placement:"bottom",size:"xs",description:r?.type?.name,children:e("p",{className:"text-start text-xs text-muted truncate",children:r?.type?.name})}):e("p",{className:"text-xs text-muted",children:" "})]}),r.score&&t("div",{className:"text-xs text-muted w-full flex justify-end",children:["Score: ",r.score.toFixed(4)??"-"]})]})]})}function wa(e){return`${e._id} (${e.count})`}function Na(e){return`${e.name} (${e.count})`}function ka({search:t,buckets:n,name:r,placeholder:i,className:a}){const s=t.getFilterValue(r),l=n?.find(e=>JSON.stringify(e._id)===JSON.stringify(s));return e(X,{filterBy:"_id",className:a,isClearable:!0,optionLabel:wa,options:n,value:l,onChange:e=>{t.setFilterValue(r,e?._id)},by:"_id",placeholder:i})}function Ca({search:t,name:n,placeholder:r,className:i}){const[a,s]=c([]);return d(()=>{t.setFilterValue(n,a)},[a]),e(ee,{className:i,value:a,onChange:s,placeholder:r})}function Sa(e){return`${e.name} (${e.count})`}function ja({search:t,buckets:n,placeholder:r="Filter by Type",className:i}){const[a,s]=c([]),{typeRegistry:l}=$t(),o=t.getFilterValue("type");d(()=>{if(l){const e=n.map(e=>{let t;return null==e._id?(e._id="Document",t="Document"):(t=l.getTypeName(e._id),t||(console.warn("Content Object Type not found",e._id),t=e._id)),{...e,name:t}});e.sort((e,t)=>e.name.localeCompare(t.name)),s(e)}},[n,l]);const u=a?.find(e=>e._id===o);return e(X,{filterBy:"name",className:i,isClearable:!0,optionLabel:Sa,options:a,value:u,onChange:e=>{t.setFilterValue("type",e?._id)},by:"_id",placeholder:r})}function Pa({buckets:e,name:t,placeholder:n,type:r,multiple:i}){return function({buckets:e,name:t,placeholder:n,type:r="select",multiple:i=!1}){return{name:t,options:e.map(e=>({label:wa(e),value:e._id})),type:r,multiple:i,placeholder:`${n??`${t.charAt(0).toUpperCase()+t.slice(1)}`}`,allowCreate:!1}}({buckets:e,name:t,placeholder:n,type:r,multiple:i})}function _a({buckets:n,typeRegistry:r,type:i="select",multiple:a=!1}){const s=new Map;r||console.warn("Type names cannot be resolved"),n.forEach(e=>{let t,n=e._id;null==e._id?(n="Document",t="Document"):(t=r?.getTypeName(e._id),t||(console.warn("Content Object Type not found",e._id),t=e._id)),s.set(n,{name:t,count:e.count})});return{name:"types",placeholder:"Types",type:i,multiple:a,options:n.map(e=>{const t=e._id,n=t||"Document",r=s.get(n);return{value:t,label:r?`${r.name} (${r.count})`:`Unknown (${e.count})`}}),labelRenderer:n=>{const r=s.get(n);return r?t("div",{className:"w-full flex items-center",children:[e("span",{className:"text-sm truncate",children:r.name}),t("span",{className:"ml-2 text-xs",children:["(",r.count,")"]})]}):(console.warn(`Type data not found for ${n}`),n)},filterBy:(e,t)=>{const n=s.get(e);return n?n.name.toLowerCase().includes(t.toLowerCase()):(console.warn(`Type name not found for ${e}`),!1)}}}const Ta={},Ia={};function Aa(e){const{client:t}=$t();return R(()=>{let n=Ta[e];return n||(n=t.users.retrieve(e).then(e=>e),Ta[e]=n),n},[e])}function za(e){const{client:t}=$t();return R(()=>{let n=Ia[e];return n||(n=t.iam.groups.retrieve(e).then(e=>e),Ia[e]=n),n},[e])}function Ea(){return e("div",{className:"size-8"})}function Fa({showTitle:n=!1,size:r="md"}){return e(Va,{title:"System User",description:"The system user is used to initialize built-in objects.",children:t("div",{className:"flex gap-2 items-center",children:[e(te,{src:"/icon.svg",size:r}),n&&e("div",{className:"text-sm font-semibold pl-2",children:"System User"})]})})}function Da({accountId:r,showTitle:i=!1,size:a="md"}){const s=t(n,{children:[e("div",{children:"This user is used by robots like workflow workers."}),t("div",{className:"text-gray-800 dark:text-gray-500 text-sm",children:[e("span",{className:"font-semibold",children:"ID:"})," ",r]})]});return e(Va,{title:"Service Account",description:s,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(te,{src:"/cloud.svg",name:"SA",color:"bg-amber-500",className:"px-[5px] text-white",size:a}),i&&t("div",{className:"text-sm font-semibold pl-2 truncate",children:["Service Account : ",r]})]})})}function $a({title:t="Error",error:n,showTitle:r=!1,size:i="md"}){return e(Oa,{title:t,message:"string"==typeof n?n:n.message,color:"bg-red-500",showTitle:r,size:i})}function La({userRef:t,showTitle:n=!1,size:r="md"}){if(!t)return e(Oa,{title:"Unknown User",message:"User information is not available.",showTitle:n,size:r});const[i,a]=t?t.split(":"):["unknown"];switch(i){case Ht.User:return e(Ua,{userId:a,showTitle:n,size:r});case Ht.Group:return e(Ra,{userId:a,showTitle:n,size:r});case"system":return e(Fa,{showTitle:n,size:r});case Ht.ServiceAccount:case Ht.Agent:return e(Da,{accountId:a,showTitle:n,size:r});case Ht.ApiKey:return e(Ma,{keyId:a,size:r,showTitle:n});default:return e($a,{title:"Unknown User",error:`Invalid user ref type: ${i}`,showTitle:n,size:r})}}function Oa({title:n,message:r,color:i,size:a="md",showTitle:s=!1}){return e(Va,{title:n,description:r,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(te,{color:i,size:a}),s&&e("div",{className:"text-sm font-semibold pl-1",children:n})]})})}function Ra({userId:n,showTitle:r=!1,size:i="md"}){const{data:a,error:s}=za(n);if(s)return e($a,{title:"Failed to fetch group",error:s,showTitle:r,size:i});if(!a)return e(Ea,{});const l=t("div",{className:"space-y-1",children:[a.description&&e("div",{className:"text-sm",children:a.description}),t("div",{className:"text-xs text-muted-foreground",children:["Group ID: ",a.id]}),a.tags&&a.tags.length>0&&e("div",{className:"flex flex-wrap gap-1",children:a.tags.map(t=>e("span",{className:"px-1.5 py-0.5 bg-muted rounded text-xs",children:t},t))})]});return e(Va,{title:a.name||"Unnamed Group",description:l,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(pt,{className:"size-6 text-indigo-500",size:i}),r&&e("div",{className:"text-sm font-semibold pl-2",children:a.name||"Unnamed Group"})]})})}function Ua({userId:n,showTitle:r=!1,size:i="md"}){const{data:a,error:s}=Aa(n);if(s)return e($a,{title:"Failed to fetch user",error:s,showTitle:r,size:i});if(!a)return e(Ea,{});const l=e("div",{className:"truncate",title:a.email,children:a.email});return e(Va,{title:a.name||a.email||a.username||"unknown",description:l,children:t("div",{className:"flex flex-row items-center gap-2",children:[e(te,{src:a.picture,name:a.name,color:"bg-indigo-500",size:i}),r&&e("div",{className:"text-sm font-semibold pl-2",children:a.name||a.email||a.username||"unknown"})]})})}function Ma({keyId:n,showTitle:r=!1,size:i="md"}){const{client:a}=$t(),{data:s,error:l}=R(()=>a.apikeys.retrieve(n),[]);if(l)return e($a,{title:"Failed to fetch the apikey",error:l,showTitle:r,size:i});if(!s)return e(Ea,{});const o=e(te,{name:"PK",color:"bg-pink-500",size:i}),c=t(ne,{className:"dark:bg-gray-800 dark:text-gray-200 table-fixed w-full",children:[t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Key:"}),e("td",{className:"truncate max-w-0",children:s?.name})]}),t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Account:"}),e("td",{className:"truncate max-w-0",children:s?.account})]}),t("tr",{children:[e("td",{className:"font-semibold w-20",children:"Project:"}),e("td",{className:"truncate max-w-0",children:s?.project.name})]})]});return e(Va,{title:"Private Key",description:c,children:t("div",{className:"flex flex-row items-center gap-2",children:[o,r&&e("div",{className:"text-sm font-semibold",children:s?.name||s?.account||s?.project.name||"unknown"})]})})}function Va({title:n,description:r,children:i}){return t(w,{hover:!0,children:[e(N,{className:"cursor-pointer flex items-center inline-block",children:e("div",{children:i})}),e(k,{align:"center",sideOffset:8,side:"right",children:t("div",{className:"flex flex-col gap-1 rounded-md shadow-md p-2",children:[e("div",{className:"text-md font-semibold",children:n}),r]})})]})}function qa({buckets:n,name:r,placeholder:i}){return function({buckets:n,name:r,placeholder:i}){const a=n.map(e=>({value:e._id,label:`(${e.count})`}));return{name:r,placeholder:i||`${r.charAt(0).toUpperCase()+r.slice(1)}`,options:a,labelRenderer:r=>{if("Unknown User"===r||!r){const e=n.find(e=>e._id===r);return`Unknown User (${e?.count||0})`}const i=n.find(e=>e._id===r);return t("div",{className:"flex items-center w-full gap-2",children:[e("div",{className:"flex-1 min-w-0 flex items-center truncate",children:e(La,{userRef:r,showTitle:!0,size:"sm"})}),t("span",{className:"text-muted-foreground flex-shrink-0",children:["(",i?.count||0,")"]})]})}}}({buckets:n,name:r,placeholder:i})}function Ka({search:t,buckets:n,placeholder:r="All Environments",className:i}){const{client:a}=$t(),[s,l]=c([]),o=t.getFilterValue("environment");d(()=>{if(a){const e=n.map(async e=>{let t;return await a.environments.retrieve(e._id).then(e=>{t=e.name}).catch(()=>{t=`${e._id} (deleted)`}),t||(t=e._id),{...e,name:t}});Promise.all(e).then(e=>{e.sort((e,t)=>e.name.localeCompare(t.name)),l(e)})}},[n,a]);const u=s?.find(e=>e._id===o);return e(X,{filterBy:"name",className:i,isClearable:!0,optionLabel:Na,options:s,value:u,onChange:e=>{t.setFilterValue("environment",e?._id)},by:"_id",placeholder:r})}function Ba(n){const r=[];if(r.push({name:"run_ids",placeholder:"Run ID",type:"text",multiple:!1}),n.interactions){const i=function({buckets:n,name:r,placeholder:i}){return{name:r,placeholder:i,options:n.map(e=>({label:`(${e.count})`,value:e._id})),type:"select",labelRenderer:r=>{const i=n.find(e=>e._id===r),a=i?.name||r;let s="success";if(i?.status)switch(i.status){case Jt.published:s="success";break;case Jt.archived:s="destructive";break;default:s="attention"}const l=i?.version&&i?.status?`v${i.version} ${i.status}`:i?.status||(i?.version?`v${i.version}`:"");return t("div",{className:"w-full flex items-center justify-between",children:[t("div",{className:"flex flex-row flex-wrap items-center gap-2 min-w-0 flex-1",children:[e("span",{className:"text-sm truncate",children:a}),l&&e(v,{variant:s,className:"text-xs w-fit",children:l})]}),t("span",{className:"ml-2 text-xs shrink-0",children:["(",i?.count||0,")"]})]})},filterBy:(e,t)=>{const r=n.find(t=>t._id===e);return(r?.name||e).toLowerCase().includes(t.toLowerCase())}}}({buckets:n.interactions||[],name:"interaction",placeholder:"Interactions"});r.push(i)}if(n.environments){const i=function({buckets:n,name:r}){const i=n.map(e=>({label:`(${e.count})`,value:e._id}));return{name:"environment",placeholder:r.charAt(0).toUpperCase()+r.slice(1),options:i,type:"select",labelRenderer:r=>{const i=n.find(e=>e._id===r);return t("div",{className:"w-full flex items-center",children:[e("span",{className:"text-sm truncate",children:i?.name||r}),t("span",{className:"ml-2 text-xs",children:["(",i?.count||0,")"]})]})},filterBy:(e,t)=>{const r=n.find(t=>t._id===e);return(r?.name||e).toLowerCase().includes(t.toLowerCase())}}}({buckets:n.environments||[],name:"environments"});r.push(i)}if(r.push({name:"tags",placeholder:"Tags",type:"stringList",multiple:!0}),n.models){const e=Pa({buckets:n.models||[],name:"model"});r.push(e)}if(n.statuses){const e=Pa({buckets:n.statuses||[],name:"status"});r.push(e)}if(n.finish_reason){const e=Pa({buckets:n.finish_reason.map(e=>({...e,_id:null===e._id?"none":e._id})),name:"finish_reason",placeholder:"Finish Reason"});r.push(e)}if(n.created_by){const e=qa({buckets:n.created_by||[],name:"created_by",placeholder:"Created By"});r.push(e)}r.push({name:"start",placeholder:"Date After",type:"date",multiple:!1});r.push({name:"end",placeholder:"Date Before",type:"date",multiple:!1});return r.push({name:"workflow_run_ids",placeholder:"Workflow Run ID",type:"text",multiple:!1}),r}function Wa(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,"run_ids"!==n&&"workflow_run_ids"!==n||Array.isArray(r)||(r=[r]),e.query[n]=r}}),e.search()):e.clearFilters(!0,!1)}}function Ga({facets:n,search:r}){const[i,a]=c([]),s=Ba(n),l=Wa(r);return t(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:[t("div",{className:"flex justify-between mb-1",children:[e(ie,{}),e(x,{onClick:()=>{r.search()},variant:"outline",title:"Refresh",children:e(ft,{className:"size-5"})})]}),t("div",{className:"flex gap-2 items-center",children:[e(ae,{}),e(se,{})]})]})}function Ha(e){const t=[];if(t.push({placeholder:"Workflow or Run ID",name:"name",type:"text",options:[]}),e.status){const n=Pa({buckets:e.status||[],name:"status",placeholder:"Status"});t.push(n)}if(e.initiated_by){const n=qa({buckets:e.initiated_by||[],name:"initiated_by",placeholder:"Initiated By"});t.push(n)}t.push({name:"start",placeholder:"Date After",type:"date",multiple:!1});return t.push({name:"end",placeholder:"Date Before",type:"date",multiple:!1}),t}function Ja(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,"name"===n?(e.query.search_term=r,e.query.name=r):e.query[n]=r}}),e.search()):e.clearFilters()}}function Ya({facets:n,search:r}){const[i,a]=c([]),s=Ha(n),l=Ja(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]})})}function Za(e){const{typeRegistry:t}=$t(),n=[];if(n.push({placeholder:"ID",name:"id",type:"text",options:[]}),n.push({placeholder:"Name",name:"name",type:"text",options:[]}),e.type){const r=_a({buckets:e.type||[],typeRegistry:t,type:"select",multiple:!0});n.push(r)}if(e.status){const t=Pa({buckets:e.status||[],name:"status",placeholder:"Status",type:"select",multiple:!0});n.push(t)}return e.tags&&n.push({name:"tags",placeholder:"Tags",type:"stringList",options:e.tags.map(e=>({label:e,value:e}))}),n.push({name:"created_at",placeholder:"Created Date",type:"date",multiple:!0,options:[]}),n.push({name:"updated_at",placeholder:"Updated Date",type:"date",multiple:!0,options:[]}),n}function Qa(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;if("date"===t.type&&t.multiple){if(Array.isArray(t.value)&&t.value.length>0)if(1===t.value.length){const e="object"==typeof t.value[0]?t.value[0].value:t.value[0];r={gte:e,lte:e}}else if(2===t.value.length){r={gte:"object"==typeof t.value[0]?t.value[0].value:t.value[0],lte:"object"==typeof t.value[1]?t.value[1].value:t.value[1]}}}else if(t.multiple)if(Array.isArray(t.value))r=t.value.map(e=>"object"==typeof e&&e.value?e.value:e);else{r=["object"==typeof t.value&&t.value.value?t.value.value:t.value]}else r=Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value;"name"===n?e.query.name=r:"id"===n?e.query.id=r:e.query[n]=r}}),e.search()):e.clearFilters()}}function Xa({facets:n,search:r}){const[i,a]=c([]),s=Za(n),l=Qa(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]})})}function es(e){const t=[];t.push({name:"name",placeholder:"Name",type:"text",multiple:!1});t.push({name:"prompt",placeholder:"Prompt Name",type:"text",multiple:!1});t.push({name:"model",placeholder:"Model",type:"text",multiple:!1});return t.push({name:"tags",placeholder:"Tags",type:"stringList",multiple:!0}),t}function ts(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search(!0)):e.clearFilters(!0,!0)}}function ns({facets:n,search:r}){const[i,a]=c([]),s=es(),l=ts(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]})})}function rs(e){const t=[];if(t.push({name:"name",placeholder:"Name",type:"text",multiple:!1}),e.role&&e.role.length>0){const n={name:"role",placeholder:"Role",type:"select",options:e.role.map(e=>({label:e._id,value:e._id,count:e.count}))};t.push(n)}return t}function is(e){return t=>{0!==t.length?(e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search()):e.clearFilters(!0,!1)}}function as({facets:n,search:r}){const[i,a]=c([]),s=rs(n),l=is(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]})})}function ss(e){const{typeRegistry:t}=$t(),n=[];if(n.push({name:"name",placeholder:"Name",type:"text",multiple:!1}),t){const e=t.types.map(e=>({label:e.name,value:e.id})),r={name:"types",placeholder:"Type",type:"select",multiple:!0,options:e,filterBy:(t,n)=>{const r=e.find(e=>e.value===t);return r?.label?.toLowerCase().includes(n.toLowerCase())??!1}};n.push(r)}return n}function ls(e){return t=>{0!==t.length?(e.clearFilters(!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r="stringList"===t.type?t.value.map(e=>"string"==typeof e?e:e.value):t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search()):e.clearFilters(!0)}}function os({facets:n,search:r}){const[i,a]=c([]),s=ss(),l=ls(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]})})}function cs(e){const t=[];if(e.statuses){const n=Pa({buckets:e.statuses||[],name:"status",placeholder:"Status"});t.push(n)}if(e.initiated_by){const n=qa({buckets:e.initiated_by||[],name:"initiated_by",placeholder:"Initiated By"});t.push(n)}t.push({name:"start",placeholder:"Started After",type:"date",multiple:!1});return t.push({name:"end",placeholder:"Started Before",type:"date",multiple:!1}),t}function ds(e){return t=>{e.clearFilters(!1,!1),t.forEach(t=>{if(t.value&&t.value.length>0){const n=t.name;let r;r=t.multiple?Array.isArray(t.value)?t.value.map(e=>"object"==typeof e&&e.value?e.value:e):["object"==typeof t.value&&t.value.value?t.value.value:t.value]:Array.isArray(t.value)&&t.value[0]&&"object"==typeof t.value[0]?t.value[0].value:Array.isArray(t.value)&&t.value[0]?t.value[0]:t.value,e.query[n]=r}}),e.search()}}function us({facets:n,search:r}){const[i,a]=c([]),s=cs(n),l=ds(r);return e(re,{filterGroups:s,filters:i,setFilters:e=>{const t="function"==typeof e?e(i):e;a(t),l(t)},children:t("div",{className:"flex justify-between mb-1",children:[t("div",{className:"flex gap-2 items-center",children:[e(ie,{}),e(ae,{}),e(se,{})]}),e(x,{onClick:()=>{r.search()},variant:"outline",title:"Refresh",children:e(ft,{className:"size-5"})})]})})}class ms{object;objects;setState;collectionId;singleSelection=!1;constructor(e,t,n,r){this.object=e,this.objects=n,this.setState=r,this.singleSelection=0===Object.keys(this.objects).length,this.collectionId=t}isSingleSelection(){return this.singleSelection}hasSelection(){return void 0!==this.object||0!==this.size()}size(){return Object.keys(this.objects).length}getObjectIds(){return Object.keys(this.objects)}getObjectId(){return this.object?.id}clone(){return new ms(this.object,this.collectionId,this.objects,this.setState)}add(e){this.objects[e.id]=e,this.singleSelection=0===Object.keys(this.objects).length,this.setState(this.clone())}remove(e){delete this.objects[e],this.singleSelection=0===Object.keys(this.objects).length,this.setState(this.clone())}addAll(e){for(const t of e)this.objects[t.id]=t;this.setState(this.clone())}isSelected(e){return void 0!==this.objects[e]}removeAll(){this.objects={},this.singleSelection=!0,this.setState(this.clone())}}const hs=u(void 0);function ps(){const e=m(hs);if(!e)throw new Error("useObjectSelection must be used within a ObjectSelectionProvider");return e}function fs(){return m(hs)}function gs({value:t,collectionId:n,children:r}){const[i,a]=c();return d(()=>{const e=new ms(t,n,{},a);a(e)},[t]),i&&e(hs.Provider,{value:i,children:r})}pn.extend(wn),pn.extend(xn);const ys={string(t,n){let r=[];if(t){const e=t.get("slice");e&&r.push(t=>t.slice(parseInt(e)));const n=t.get("max_length");n&&r.push(e=>e.slice(0,parseInt(n))),t.has("upper")&&r.push(e=>e.toUpperCase()),t.has("lower")&&r.push(e=>e.toLowerCase()),t.has("capitalize")&&r.push(e=>e[0].toUpperCase()+e.substring(1)),t.has("ellipsis")&&r.push(e=>e+"...")}return(t,n)=>{let i;if(t){if(i=String(t),r.length>0)for(const e of r)i=e(i)}else i="";return e("td",{children:i},n)}},fileSize:(t,n)=>(t,n)=>{let r="";if(t){const e=Number(t);if(isNaN(e))r=String(t);else{const t=["Bytes","KB","MB","GB","TB"];if(0===e)r="0 Bytes";else{const n=Math.floor(Math.log(e)/Math.log(1024));r=`${(e/Math.pow(1024,n)).toFixed(2)} ${t[n]}`}}}return e("td",{children:r},n)},number(t,n){let r,i;t&&(r=t.get("currency")||void 0,i=t.get("decimals")||void 0);const a=i?parseInt(i):2;return(t,n)=>{let i=new Intl.NumberFormat("en-US",{style:r?"currency":"decimal",currency:r,maximumFractionDigits:a}).format(t);return e("td",{children:i},n)}},objectId(n,r){let i=[],a=!1;if(n){const e=n.get("slice");e&&(a=!0,i.push(t=>t.slice(parseInt(e))))}return(n,s)=>{const l=i.reduce((e,t)=>t(e),n.id);return t("td",{className:"flex justify-between items-center gap-2",children:[a?"~":"",l,e(x,{variant:"ghost",alt:"Preview Object",onClick:e=>{e.stopPropagation(),r?.(n.id)},children:e(ht,{className:"size-4"})})]},s)}},objectName(t,n){let r="title";return t&&(r=t.get("title")||"title"),(t,n)=>e("td",{children:t.properties?.[r]||t.name||Ur(t.id)},n)},objectLink(n,r){const i=[];return i.push(e=>e.slice(-7)),(n,a)=>{const s=i.reduce((e,t)=>t(e),n.id);return t("td",{className:"flex justify-between items-center gap-2 max-w-48",children:["~",s,e(x,{variant:"ghost",alt:"Preview Object",onClick:e=>{e.stopPropagation(),r?.(n.id)},children:e(ht,{className:"size-4"})})]},a)}},typeLink:(t,n)=>(t,n)=>e("td",{children:t?.name||"n/a"},n),date(t,n){let r="format",i="LLL";if(t){const e=t.get("localized");if(e)i=e;else{const e=t.get("relative");e&&(r=e,i=void 0)}}return(t,n)=>e("td",{children:pn(t)[r](i)},n)}},bs=ys.string();function vs(e,t){let n=e;if(!n)return;if(!t.length)return n;const r=t.length-1;for(let e=0;e<r;e++)if(n=n[t[e]],!n)return;return n[t[r]]}function xs(e){return e&&"."!==e?e.split("."):[]}class ws{layout;renderer=bs;path;fallbackPath;previewObject;constructor(e,t){if(this.layout=e,this.path=xs(e.field||""),this.fallbackPath=e.fallback?xs(e.fallback):void 0,this.previewObject=t,e.render)this.renderer=(e,t)=>null;else{const t=e.type||"string",n=t.indexOf("?");if(n>0){const e=t.substring(0,n),r=new URLSearchParams(t.substring(n+1));this.renderer=ys[e](r)}else this.renderer=ys[t]()}}get name(){return this.layout.name}resolveValue(e){let t=vs(e,this.path);return void 0===t&&this.fallbackPath&&(t=vs(e,this.fallbackPath)),void 0===t&&(t=this.layout.default),t}render(t,n){if(this.layout.render)return e("td",{className:"whitespace-nowrap px-3 py-4 text-sm",children:this.layout.render(t)},n);const r=this.layout.type||"string",i=r.indexOf("?")>0?r.substring(0,r.indexOf("?")):r;if(("objectId"===i||"objectLink"===i)&&this.previewObject){const e=r.indexOf("?"),a=e>0?new URLSearchParams(r.substring(e+1)):void 0;return ys[i](a,e=>{this.previewObject(t.id)})(t,n)}return this.renderer(this.resolveValue(t),n)}}function Ns({objects:n,selection:r,isLoading:i,columns:a,onRowClick:s,selectedObject:l,toggleAll:o,onSelectionChange:c}){return t(ne,{className:"w-full border-t",children:[e("thead",{children:t("tr",{children:[r&&e("th",{children:e("input",{type:"checkbox",onChange:o})}),a.map(t=>e("th",{children:t.name},t.name))]})}),t(le,{isLoading:i,columns:a.length+1,children:[n?.map(n=>t("tr",{className:"cursor-pointer hover:bg-muted group "+(l?.id===n.id?"bg-muted":""),onClick:()=>{s&&s(n)},children:[r&&e("td",{onClick:e=>e.stopPropagation(),children:e("input",{checked:r.isSelected(n.id),type:"checkbox",className:""+(r.isSelected(n.id)?"":"hidden group-hover:block"),onChange:e=>c(n,e)})}),a.map((e,t)=>e.render(n,t))]},n.id)),0===n.length&&e("tr",{children:e("td",{colSpan:a.length+(r?1:0),className:"text-center",children:"No objects. Just drag and drop documents or images here to create content objects."})})]})]})}function ks({objects:r,selection:i,isLoading:a,onSelectionChange:s,onRowClick:l,previewObject:o,selectedObject:c}){return t(n,{children:[e(va,{isLoading:a}),e("div",{className:"w-full gap-2 grid xs:grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-6 @xs:grid-cols-1 @sm:grid-cols-2 @md:grid-cols-3 @lg:grid-cols-4",children:r.map(t=>e(xa,{document:t,selection:i,onSelectionChange:s,onRowClick:l,previewObject:o,selectedObject:c},t.id))})]})}class Cs{client;limit;collectionId;facets=new oe({});result=new oe({objects:[],isLoading:!1});facetSpecs=[];query={};constructor(e,t=100){this.client=e,this.limit=t}withFacets(e){return this.facetSpecs=e,this}get objects(){return this.result.value.objects}get error(){return this.result.value.error}get isRunning(){return this.result.value.isLoading}get hasMore(){return this.result.value.hasMore||!1}getFilterValue(e){return this.query[e]}setFilterValue(e,t){this.query[e]=t,this.search()}setDefaultKeys(e){}clearFilters(e=!0){const{parent:t,full_text:n,vector:r,weights:i,score_aggregation:a,dynamic_scaling:s,limit:l,all_revisions:o}=this.query;this.query={parent:t,...void 0!==n&&{full_text:n},...void 0!==r&&{vector:r},...void 0!==i&&{weights:i},...void 0!==a&&{score_aggregation:a},...void 0!==s&&{dynamic_scaling:s},...void 0!==o&&{all_revisions:o},...void 0!==l&&{limit:l}},e&&this.search()}getFacetBuckets(e){return this.facets.value[e]?.buckets||[]}resetFacets(){this.query={}}reset(e=!1){this.result.value={objects:[],isLoading:e,hasMore:!0}}_updateRunningState(e){const t=this.result.value;this.result.value={objects:t.objects,isLoading:e,error:t.error,hasMore:t.hasMore}}_searchRequest(e,t,n,r=!0){const i={limit:t,offset:n,query:e,facets:r?this.facetSpecs:void 0};return this.collectionId?this.client.collections.searchMembers(this.collectionId,i):this.client.objects.search(i)}_facetsRequest(){const e={facets:this.facetSpecs,query:this.query};return this.collectionId?this.client.collections.computeFacets(this.collectionId,e):this.client.objects.computeFacets(e)}computeFacets(e){this._facetsRequest().then(e=>{this.facets.value=e})}_search(e=!1,t=!1){if(this.isRunning&&e)return Promise.resolve(!1);this.result.value={isLoading:!0,objects:e?this.objects:[],hasMore:!e||this.result.value.hasMore};const n=this.limit,r=e?this.objects.length:0;return this._searchRequest(this.query,n,r,!t).then(async r=>{const i=r.results||[],a=r.facets||{};return this.result.value={isLoading:!1,objects:e?this.objects.concat(i):i,hasMore:i.length===n},!t&&a&&Object.keys(a).length>0&&(this.facets.value=a),!0}).catch(e=>{throw this.result.value={error:e,isLoading:!1,objects:this.objects,hasMore:this.result.value.hasMore},e})}search(e=!1){return this.isRunning&&this.objects.length>0?Promise.resolve(!1):this._search(!1,e)}loadMore(e=!1){return this.isRunning||!this.hasMore||this.query.vector?Promise.resolve(!1):(this.objects.length>0&&(e=!0),this._search(!0,e))}}const Ss=u(void 0);function js(){return m(Ss)}function Ps(){return ce(js().facets)}function _s(){const e=js();return{...ce(e.result),search:e}}function Ts(){const e=js();return ce(e.facets).total}var Is;async function As(e){try{const t=await e.arrayBuffer(),n=new Nn;n.appendByteArray(new Uint8Array(t));const r=n.end();return r?.toString()}catch(e){return void console.error("Error calculating file hash:",e)}}function zs(){const{client:e}=$t(),t=b();return{checkDocumentProcessing:async(n,r,i)=>{try{console.log(`Preparing metadata for ${n.length} files...`);const t=await async function(e,t){const n=[];for(let r=0;r<e.length;r+=5){const i=e.slice(r,r+5),a=await Promise.all(i.map(async e=>{let n=t||"/";if(e.webkitRelativePath){const r=e.webkitRelativePath.split("/");if(r.length>1){const e=r.slice(0,-1).join("/");n=t?`${t}/${e}`:e}}return{file:e,hash:await As(e),name:e.name,size:e.size,location:n}}));n.push(...a)}return n}(n,r),a=async()=>{let n;const r={query:{match:{"content.etag":{$in:t.map(e=>e.hash)}}},select:"id content.etag"};n=i?(await e.store.collections.searchMembers(i,r)).results:(await e.store.objects.search(r)).results;for(const e of n){const n=t.find(t=>t.hash===e.content.etag);n&&(n.existingId=e.id,n.action=Is.SKIP)}},s=async()=>{const n=t.filter(e=>e.action!==Is.SKIP),r=n.map(e=>e.location),a=Array.from(new Set(r)),s=[];for(const t of a){const r={"content.name":{$in:n.filter(e=>e.location===t).map(e=>e.name)},location:t||"/"};if(i){const t=e.store.collections.searchMembers(i,{query:{match:r},select:"id content.name location"}).then(e=>e.results);s.push(t)}else{const t=e.store.objects.find({query:r,select:"id content.name location"});s.push(t)}}const l=(await Promise.all(s)).flat();console.log(`Found ${l.length} document to update`,l);for(const e of l){const n=t.find(t=>t.name===e.content.name&&(t.location?t.location===e.location:"/"===e.location));n&&(n.existingId=e.id,n.action=Is.UPDATE)}console.log(`Reconciled ${t.filter(e=>e.action===Is.UPDATE).length}`)};return await a(),await s(),t.forEach(e=>{e.action||(e.action=Is.CREATE)}),console.log("Document processing check results:",{totalFiles:n.length,toCreate:t.filter(e=>e.action===Is.CREATE).length,toUpdate:t.filter(e=>e.action===Is.UPDATE).length,toSkip:t.filter(e=>e.action===Is.SKIP).length}),t}catch(e){throw t({title:"Error in file upload processing check",status:"error",description:e.message}),console.log("Error in file upload processing check",e),new Error("Error in file upload processing check: "+e.message)}}}}function Es({isOpen:r,onClose:i,files:a,collectionId:s,selectedFolder:l,title:u="Upload Files",children:m,onUploadComplete:h,hideFileSelection:p=!1,showTypeSelectionOnly:f=!1,allowFolders:g=!0}){const{client:y,typeRegistry:v}=$t(),w=b(),[N,k]=c([]),[C,S]=c([]),[j,P]=c(!1),[_,T]=c(null),[I,A]=c([]),[z,E]=c(!1),[F,D]=c(!1),[$,L]=c(0),[R,U]=c(Date.now()),[M,V]=c(void 0),[q,B]=c(null),[Y,Z]=c(u),[Q,X]=c("");d(()=>{s&&y.store.collections.retrieve(s).then(V)},[s]),d(()=>{z?(Z("Uploading Files"),X(`${Math.round($)}% complete`)):F?(Z("Upload Complete"),X("")):j?(Z("File Analysis Results"),X(`${N.length} file${1!==N.length?"s":""}`)):N.length>0?(Z(u),X("Checking for duplicates and updates")):(Z(u),X(""))},[z,F,j,u,$,N.length]);const ee=()=>M||l?t(de,{className:"mb-4",status:"default",icon:e(wt,{className:"size-5"}),children:[e("div",{className:"flex items-center",children:e("span",{className:"font-medium",children:"Upload Location:"})}),t("div",{className:"text-sm mt-1",children:[M&&t("div",{className:"flex items-center",children:[e("span",{className:"mr-1",children:"Collection:"}),e("span",{className:"font-medium",children:M.name})]}),l&&t("div",{className:"flex items-center mt-1",children:[e("span",{className:"mr-1",children:"Folder:"}),e("span",{className:"font-medium",children:l})]})]})]}):null,[te,ne]=c({toCreate:0,toUpdate:0,toSkip:0}),{checkDocumentProcessing:re}=zs(),ie=o(()=>v?.types||[],[v?.types]);d(()=>{r&&(S([]),P(!1),T(null),A([]),E(!1),D(!1),L(0),ne({toCreate:0,toUpdate:0,toSkip:0}),B(null),Z(u),X(""),a&&a.length>0?(k(a),le(a)):k([]),U(Date.now()))},[r,a]);const ae=()=>{k([]),S([]),P(!1),T(null),A([]),E(!1),D(!1),L(0),ne({toCreate:0,toUpdate:0,toSkip:0}),B(null),Z(u),X(""),U(Date.now()),i()},se=e=>{e&&e.length>0&&(k(e),le(e))},le=async e=>{if(e.length)try{console.log(`Processing ${e.length} files to determine required actions...`);const t=await re(e,l,s);S(t);const n=t.filter(e=>e.action===Is.CREATE).length,r=t.filter(e=>e.action===Is.UPDATE).length,i=t.filter(e=>e.action===Is.SKIP).length;ne({toCreate:n,toUpdate:r,toSkip:i}),w({title:"Files analyzed",description:`${e.length} file(s): ${n} new, ${r} to update, ${i} to skip`,status:"info",duration:4e3}),P(!0)}catch(e){console.error("Error processing files:",e),w({title:"Error",description:"There was an error analyzing the files",status:"error",duration:5e3})}},oe=async()=>{if(!C.length)return;const e=_?.id||null,t=C.map(e=>({file:e.file,status:"pending",progress:0,action:e.action===Is.CREATE?"create":e.action===Is.UPDATE?"update":"skip"}));A(t),E(!0),D(!1);const n=C.filter(e=>e.action===Is.SKIP),r=C.filter(e=>e.action===Is.UPDATE),i=C.filter(e=>e.action===Is.CREATE),a={success:!0,objectIds:[],uploadedFiles:[],skippedFiles:[],failedFiles:[]};for(const t of n)t.existingId&&(a.objectIds.push(t.existingId),a.skippedFiles.push({id:t.existingId,name:t.name,type:e,status:"skipped",location:t.location}),A(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:t.existingId}:e)));const l=async(t,n)=>{const r=[];for(let e=0;e<t.length;e+=50)r.push(t.slice(e,e+50));for(let i=0;i<r.length;i++){const l=r[i];if(console.log(`Processing ${n} batch ${i+1}/${r.length} (${l.length} files)`),t.length>50){w({title:`Processing files (${n})`,description:`Processed ${50*i}/${t.length} files...`,status:"info",duration:2e3})}let o=0;await Promise.all(l.map(async t=>{try{if(A(e=>e.map(e=>e.file===t.file?{...e,status:"uploading",progress:20}:e)),"update"===n&&t.existingId)await y.store.objects.update(t.existingId,{type:e||void 0,content:t.file,location:t.location,name:t.name},{createRevision:!0,revisionLabel:"upload on "+(new Date).toISOString()}),A(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:t.existingId}:e)),a.objectIds.push(t.existingId),a.uploadedFiles.push({id:t.existingId,name:t.name,type:e,status:"updated",location:t.location});else{const n=await y.store.objects.create({type:e||void 0,content:t.file,location:t.location||t.file.webkitRelativePath||t.name},{collection_id:s});A(e=>e.map(e=>e.file===t.file?{...e,status:"success",progress:100,id:n.id}:e)),a.objectIds.push(n.id),a.uploadedFiles.push({id:n.id,name:t.name,type:e,status:"created",location:t.location})}}catch(n){console.error(`Failed to process file ${t.name}:`,n),A(e=>e.map(e=>e.file===t.file?{...e,status:"error",progress:100,message:n.message||"Unknown error"}:e)),a.failedFiles.push({name:t.name,error:n.message||"Unknown error",status:"failed",location:t.location,type:e}),a.success=!1}o++,o%5!=0&&o!==l.length||A(e=>{const t=e.filter(e=>"success"===e.status||"error"===e.status).length,n=e.length,r=n>0?Math.round(t/n*100):0;return L(r),e})}))}};r.length>0&&await l(r,"update"),i.length>0&&await l(i,"create"),A(e=>{const t=e.filter(e=>"pending"===e.status).map(e=>({...e,status:"error",progress:100,message:"Upload process interrupted"}));return t.length>0?(t.forEach(e=>{a.failedFiles.push({name:e.file.name,error:"Upload process interrupted",status:"failed",type:_?.id||null})}),a.success=!1,e.map(e=>"pending"===e.status?{...e,status:"error",progress:100,message:"Upload process interrupted"}:e)):e}),E(!1),D(!0);const o=a.uploadedFiles.filter(e=>"created"===e.status).length,c=a.uploadedFiles.filter(e=>"updated"===e.status).length,d=a.skippedFiles.length,u=a.failedFiles.length;let m="";o>0&&(m+=`${o} file${1!==o?"s":""} uploaded`),c>0&&(m+=m?", ":"",m+=`${c} file${1!==c?"s":""} updated`),d>0&&(m+=m?", ":"",m+=`${d} file${1!==d?"s":""} skipped`),u>0&&(m+=m?", ":"",m+=`${u} file${1!==u?"s":""} failed`),w({title:"Upload Complete",description:m,status:u>0?"warning":"success",duration:5e3}),B(a)},ce=()=>t("div",{className:"mb-4",children:[t("label",{className:"block text-sm font-medium mb-2",children:["Content Type ",e("span",{className:"text-muted font-normal",children:"(Optional)"}),e(O,{description:"Select a content type to apply to the uploaded files. If left empty, Vertesia will automatically detect the type based on file content.",placement:"top",size:"xs",children:e(Ue,{className:"size-3 ml-2"})})]}),e(ue,{options:ie,value:_,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type or leave empty for automatic detection",onChange:e=>T(void 0===e?null:e),filterBy:"name",isClearable:!0}),_?e(n,{}):e("div",{className:"p-2 rounded-md",children:t("div",{className:"flex items-center text-attention",children:[e(yt,{className:"size-4 mr-1"}),"Automatic Type Detection",e(O,{description:"Vertesia will analyze the content and select the most appropriate type. This is recommended for most uploads and ensures optimal processing.",placement:"top",size:"xs",children:e(Ue,{className:"size-3 ml-2"})})]})})]});return t(W,{isOpen:r,onClose:ae,className:"mx-auto",disableCloseOnClickOutside:!0,children:[e(G,{description:Q,children:Y}),f?t(H,{children:[m,ee(),ce()]}):0!==N.length||p?z||F?z?t(H,{children:[ee(),e("div",{className:"mb-4",children:e("div",{className:"h-2 bg-muted/20 rounded-full overflow-hidden",children:e("div",{className:"h-full bg-primary rounded-full",style:{width:`${$}%`}})})}),e("div",{className:"max-h-96 overflow-y-auto",children:I.map((n,r)=>t("div",{className:"flex items-center py-2 border-b border-border last:border-b-0",children:[t("div",{className:"mr-3",children:["pending"===n.status&&e(vt,{className:"size-5 text-muted"}),"uploading"===n.status&&e(K,{size:"sm"}),"success"===n.status&&e(yt,{className:"size-5 text-success"}),"error"===n.status&&e(xt,{className:"size-5 text-destructive"})]}),t("div",{className:"flex-1 min-w-0",children:[e("div",{className:"truncate font-medium",children:n.file.name}),t("div",{className:"text-xs text-muted",children:["pending"===n.status&&"Waiting...","uploading"===n.status&&"Uploading...","success"===n.status&&("create"===n.action?"Created":"update"===n.action?"Updated":"Skipped"),"error"===n.status&&n.message]})]})]},`${n.file.name}-${r}`))})]}):e(H,{children:t("div",{className:"mb-4",children:[ee(),e(cn,{files:I.map(e=>{let t;return t="success"===e.status?"create"===e.action?"success":"update"===e.action?"updated":"skipped":"failed",{name:e.file.name,status:t,error:"error"===e.status?e.message:void 0}}),location:l||void 0,collection:M?.name})]})}):e(H,{children:j?t(n,{children:[ee(),e("div",{className:"mb-4",children:e("div",{className:"p-4 rounded-md mb-4",children:t("div",{className:"grid grid-cols-3 gap-4",children:[t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(gt,{className:"size-5 text-primary"}),e("span",{className:"font-medium",children:"New"})]}),e("div",{className:"text-2xl font-semibold",children:te.toCreate})]}),t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(yt,{className:"size-5 text-success"}),e("span",{className:"font-medium",children:"Update"})]}),e("div",{className:"text-2xl font-semibold",children:te.toUpdate})]}),t("div",{className:"flex flex-col items-center",children:[t("div",{className:"flex items-center gap-2",children:[e(bt,{className:"size-5 text-mixer-attention/40"}),e("span",{className:"font-medium",children:"Skip"})]}),e("div",{className:"text-2xl font-semibold",children:te.toSkip})]})]})})}),ce(),e(de,{className:"mb-4",status:"info",children:te.toCreate+te.toUpdate>0?t("div",{className:"space-y-1",children:[t("p",{children:[te.toCreate+te.toUpdate," file",te.toCreate+te.toUpdate>1?"s are":" is"," ready to process"]}),e("p",{children:te.toSkip>0&&`${te.toSkip} file${te.toSkip>1?"s are":" is"} already in the system and will be skipped.`})]}):te.toSkip>0?t("span",{children:["All ",te.toSkip," file(s) already exist in the system and will be skipped. You can proceed to view the results."]}):e("span",{children:"No files to process."})})]}):t("div",{className:"flex flex-col items-center justify-center py-4",children:[e(K,{size:"lg",className:"mb-4"}),e("div",{className:"text-lg font-medium",children:"Analyzing files..."})]})}):t(H,{className:"flex flex-col items-center justify-center p-8",children:[ee(),e(on,{onDrop:se,message:"Drag and drop files here or click to select",buttonLabel:"Select Files",className:"w-full h-64",allowFolders:g}),m]}),(()=>{if(f)return t(J,{children:[e(x,{variant:"ghost",onClick:ae,children:"Cancel"}),e(x,{onClick:()=>{h&&h({success:!0,objectIds:[],uploadedFiles:[{name:"type-selection",type:_?.id||null,status:"created"}],skippedFiles:[],failedFiles:[]}),ae()},children:_?`Use ${_.name}`:"Use Automatic Type Detection"})]});if(0===N.length&&!p)return e(J,{children:e(x,{variant:"ghost",onClick:ae,children:"Cancel"})});if(!z&&!F){const n=j;return t(J,{children:[e(x,{variant:"ghost",onClick:ae,children:"Cancel"}),e(x,{disabled:!n,onClick:oe,children:te.toCreate+te.toUpdate>0?"Upload":"Continue"})]})}return z?e(J,{children:e(x,{variant:"ghost",disabled:!0,children:"Uploading..."})}):t(J,{children:[e(x,{variant:"ghost",onClick:()=>{k([]),S([]),P(!1),T(null),A([]),E(!1),D(!1),L(0),ne({toCreate:0,toUpdate:0,toSkip:0})},children:"Upload More"}),e(x,{onClick:()=>{h&&q&&h(q),ae()},children:"Close"})]})})()]},R)}function Fs(e){const t="function"==typeof e?e:e.onUploadDone,{client:n,project:r,store:i}=$t(),a=js(),s=b(),{checkDocumentProcessing:l}=zs();return async(e,o,c)=>{const d={success:!1,objectIds:[],uploadedFiles:[],skippedFiles:[],failedFiles:[]};if(!r)return s({status:"error",title:"No project selected",duration:3e3}),d;if(!e||0===e.length)return s({status:"warning",title:"No files selected",duration:3e3}),d;const u=Array.from(e).filter(e=>e.size>0);if(0===u.length)return s({status:"error",title:"No valid files selected",description:"Please select files with valid content.",duration:5e3}),d;const m=[],h=[],p=[];console.log(`Processing ${u.length} files with smart file processing...`);const f=await l(u,null,c),g=f.filter(e=>e.action===Is.CREATE).length,y=f.filter(e=>e.action===Is.UPDATE).length,b=f.filter(e=>e.action===Is.SKIP).length;s({title:"Files analyzed",description:`${u.length} file(s): ${g} new, ${y} to update, ${b} to skip`,status:"info",duration:4e3});for(const e of f.filter(e=>e.action===Is.SKIP&&e.existingId))m.push({id:e.existingId,name:e.name,type:o,status:"skipped",location:e.location});const v=f.filter(e=>(e.action===Is.CREATE||e.action===Is.UPDATE)&&e.file);if(v.length>0){console.log(`Processing ${v.length} files (${v.filter(e=>e.action===Is.CREATE).length} create, ${v.filter(e=>e.action===Is.UPDATE).length} update)...`);const e=50,t=[];for(let n=0;n<v.length;n+=e)t.push(v.slice(n,n+e));for(let r=0;r<t.length;r++){const a=t[r],l=r*e;console.log(`Processing batch ${r+1}/${t.length} (${a.length} files)`),v.length>e&&s({title:"Processing files",description:`Processed ${l}/${v.length} files...`,status:"info",duration:2e3});const u=await Promise.all(a.map(async e=>{try{if(e.action===Is.UPDATE&&e.existingId){const t=await n.store.objects.update(e.existingId,{type:o||void 0,content:e.file,location:e.location,name:e.name},{createRevision:!0,revisionLabel:"upload on "+(new Date).toISOString()});return h.push({id:e.existingId,name:e.name,type:o,status:"updated",location:e.location}),d.objectIds.push(e.existingId),{success:!0,id:t.id,name:e.name,action:"update"}}{const t=c?{collection_id:c}:void 0,n=await i.objects.create({type:o||void 0,content:e.file,location:e.location||e.file.webkitRelativePath||e.name},t);h.push({id:n.id,name:e.name,type:o,status:"created",location:e.location})}}catch(t){console.error(`Failed to process file ${e.name}:`,t),p.push({name:e.name,error:t.message||"Unknown error",status:"failed",location:e.location,type:o}),s({status:"error",title:`Processing failed for ${e.name}`,description:t.message,duration:4e3})}})),m=h.filter(e=>"created"===e.status),f=h.filter(e=>"updated"===e.status),g=h.filter(e=>"failed"===e.status);console.log(`Batch ${r+1} results:`,{creates:m,updates:f,failures:g,total:u.length})}}const x=h.filter(e=>"created"===e.status).length,w=h.filter(e=>"updated"===e.status).length,N=h.filter(e=>"failed"===e.status).length,k=h.filter(e=>"skipped"===e.status).length;t&&(console.log("Upload complete:",{totalObjectIds:d.objectIds.length,uploadedFiles:x,updatedFiles:w,skippedFiles:k,failedFiles:N}),await t(d.objectIds));let C="";return x>0&&(C+=`${x} file${1!==x?"s":""} uploaded`),w>0&&(C+=C?", ":"",C+=`${w} file${1!==w?"s":""} updated`),k>0&&(C+=C?", ":"",C+=`${k} file${1!==k?"s":""} skipped (already existed)`),N>0&&(C+=C?", ":"",C+=`${N} file${1!==N?"s":""} failed`),C&&s({status:N>0?"warning":"success",title:C,duration:4e3}),a.search(),d}}!function(e){e.CREATE="create",e.SKIP="skip",e.UPDATE="update"}(Is||(Is={}));const Ds=[{name:"ID",field:"id",type:"objectId?slice=-7"},{name:"Name",field:".",type:"objectName"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Updated At",field:"updated_at",type:"date"}];function $s({isGridView:t=!1,onUpload:n,collectionId:r,...i}){return n?e(Ls,{...i,onUpload:n,isGridView:t,collectionId:r}):e(Os,{...i,isGridView:t})}function Ls({isGridView:n,onUpload:i,collectionId:a,skipTypeModal:s=!1,...l}){const[o,d]=c(!1),[u,m]=c([]),[h,p]=c(!1),[f,g]=c(null),[y,v]=c(!1),x=js(),w=b(),{checkDocumentProcessing:N}=zs(),k=async(e,t)=>{console.log("Files dropped on ObjectTable:",e.length,t),d(!0);try{if(a){const t=await N(e,null,a);g(t);const n=t.filter(e=>"create"===e.action).length,r=t.filter(e=>"update"===e.action).length,i=t.filter(e=>"skip"===e.action).length;w({title:"Files ready to process",description:`${e.length} file(s): ${n} new, ${r} to update, ${i} to skip`,status:"info",duration:4e3})}else g(null)}catch(e){console.error("Error processing files:",e),w({title:"Error processing files",description:"There was an error checking for duplicate files",status:"error",duration:4e3}),g(null)}finally{if(d(!1),m(e),p(!1),s){console.log("Skipping type modal and calling onUpload directly",{filesLength:e.length,processedFilesLength:f?.length});const t=i(e,null,a);t&&"object"==typeof t&&(t.processedFiles=f)}else console.log("Setting typeSelectionOpen to true",{filesLength:e.length}),v(!0)}},C=e=>{const t=[...u];m([]),g(null),v(!1),t.length>0&&void 0!==e&&(d(!0),console.log("Starting upload with",{typeId:e,filesCount:t.length,hasProcessingResults:!!f,collectionId:a}),i(t,e,a).finally(()=>{d(!1),x.search()}))},S=e=>{e.preventDefault(),e.stopPropagation(),p(!0)};return t("div",{className:"min-h-[400px] relative",onDragOver:S,onDragEnter:S,onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),e.currentTarget.contains(e.relatedTarget)||p(!1)},onDrop:e=>{if(e.preventDefault(),e.stopPropagation(),p(!1),e.dataTransfer.items){const t=[];for(let n=0;n<e.dataTransfer.items.length;n++){const r=e.dataTransfer.items[n];if("file"===r.kind){const e=r.getAsFile();e&&t.push(e)}}if(t.length>0){const e={count:t.length,message:`Preparing to upload ${t.length} file${1===t.length?"":"s"}...`};k(t,e)}}},children:[e("div",{className:r("bg-white dark:bg-gray-800 opacity-40 absolute inset-0 z-50 flex justify-center items-center",o?"block":"hidden"),children:e(K,{size:"xl"})}),e(Os,{...l,isGridView:n}),e("div",{className:r("absolute inset-0 pointer-events-none",h?"z-40":"-z-10"),children:e("div",{className:"w-full h-full relative",children:e(on,{onDrop:k,message:"Drop files or folders here to upload",className:r("absolute inset-0 bg-white/90 dark:bg-gray-800/90 pointer-events-auto",h?"flex":"hidden"),buttonLabel:"Select Files or Folders",allowFolders:!0})})}),e(Es,{isOpen:y&&u.length>0,onClose:()=>{m([]),g(null),v(!1),C(void 0)},files:u,collectionId:a,selectedFolder:null,title:"Upload Files",onUploadComplete:e=>{if(e){if(e.failedFiles&&e.failedFiles.length>0&&w({title:"Upload Issues",description:`${e.failedFiles.length} file(s) failed to upload`,status:"warning",duration:5e3}),e.success){const t=e.uploadedFiles.filter(e=>"created"===e.status).length,n=e.uploadedFiles.filter(e=>"updated"===e.status).length,r=e.skippedFiles.length;(t>0||n>0)&&w({title:"Upload Complete",description:`${t>0?`${t} created`:""}${t>0&&n>0?", ":""}${n>0?`${n} updated`:""}${r>0?`, ${r} skipped`:""}`,status:"success",duration:5e3})}x.search()}m([]),g(null),v(!1),e&&e.success&&e.objectIds.length>0?C(null):C(void 0)}})]})}function Os({objects:t,layout:n=Ds,isLoading:r,onRowClick:i,onSelectionChange:a,previewObject:s,selectedObject:l,isGridView:c}){const d=fs(),u=(e,n)=>{if(d){const r=n.nativeEvent.shiftKey;if(n.target.checked){if(d.add(e),r){const n=t.findIndex(t=>t.id===e.id),r=function(e,t,n){for(let r=t-1;r>=0;r--)if(n.isSelected(e[r].id))return r;return-1}(t,n,d);if(r>-1&&r<n-1){const e=[];for(let i=r+1;i<n;i++)e.push(t[i]);d.addAll(e)}else{const e=function(e,t,n){const r=e.length;for(let i=t+1;i<r;i++)if(n.isSelected(e[i].id))return i;return-1}(t,n,d);if(e>-1&&e>n+1){const r=[];for(let i=n+1;i<e;i++)r.push(t[i]);d.addAll(r)}}}}else d.remove(e.id);a&&a(d)}},m=e=>{if(d){e.target.checked?d.addAll(t):d.removeAll()}},h=o(()=>(n.length>0?n:Ds).map(e=>new ws(e,s)),[n,s]);return e(c?ks:Ns,{objects:t,isLoading:r,columns:h,onRowClick:i,previewObject:s,selectedObject:l,selection:d,toggleAll:m,onSelectionChange:u})}function Rs({children:t,limit:n,parent:r,typeId:i,facets:a,name:s,collectionId:l}){const{store:c}=$t(),d=o(()=>{let e;a?e=a:(e=[{name:"status",field:"status"},{name:"location",field:"location"}],i||e.unshift({name:"type",field:"type"}));const t=new Cs(c,n).withFacets(e);return t.collectionId=l,t.query.type=i,t.query.parent=r,t.query.name=s,t},[i,n,l]);return e(Ss.Provider,{value:d,children:t})}const Us=[{name:"Name",field:"properties.title",type:"string",fallback:"name"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Created At",field:"created_at",type:"date"}];function Ms({onChange:t}){return e(Rs,{children:e(Vs,{onRowClick:e=>{t(e||void 0)}})})}function Vs({onRowClick:n}){const[r,a]=c(!1),[s,l]=c("grid"===localStorage.getItem("vertesia.content_store.lastDisplayedView")),{search:o,isLoading:u,error:m,objects:p,hasMore:f}=_s(),g=h(null);me(g,()=>{r&&f&&!u&&(a(!1),o.loadMore(!0).finally(()=>{a(!0)}))},{threshold:.1,deps:[r,f,u]}),d(()=>{o.search().finally(()=>{a(!0)})},[]);const y=Ps(),b=js();return m?e(U,{title:"Search failed",children:m.message}):t("div",{className:"flex flex-col gap-2 h-full w-full",children:[t("div",{className:"flex justify-between items-center flex-shrink-0",children:[e(Xa,{facets:y,search:b}),t("div",{className:"flex items-center gap-2",children:[e(x,{variant:"outline",onClick:()=>{a(!1),o.search().then(()=>a(!0))},alt:"Refresh",children:e(ft,{size:16})}),e(Rr,{onUpdate:l})]})]}),t("div",{className:"@container flex-1 overflow-y-auto",children:[e($s,{objects:p||[],isLoading:!1,layout:Us,onRowClick:n,isGridView:s}),e("div",{ref:g,className:"h-4 w-full"}),e("div",{className:i("bg-white dark:bg-gray-800 opacity-80 absolute inset-0 z-50 flex justify-center items-center rounded",u?"block":"hidden"),children:e(K,{size:"xl"})})]})]})}function qs({isOpen:n,onClose:r}){return t(W,{onClose:()=>r(),isOpen:!!n,className:"min-w-[60vw]",children:[e(G,{children:"Select Content"}),e(H,{className:"pt-0 overflow-y-auto max-h-[80vh] min-h-[80vh]",children:n&&e(Ms,{onChange:r})})]})}const Ks=/store:([a-f0-9]+)/;function Bs({object:n}){const{client:i}=$t(),{off:a,on:s,isOn:l}=he(),[o,u]=c(null!=n.value?String(n.value):""),[m,h]=c(void 0),p=()=>{u(""),n.value="",h(void 0)};return d(()=>{if(!o||m)return;const e=o.match(Ks);e&&i.objects.get(e[1]).then(e=>{h(e)}).catch(()=>{p()})},[o]),t("div",{children:[t("div",{className:"relative",children:[e("input",{value:o,onChange:e=>{const t=e.target.value;u(t),n.value=t},className:r(pe.INPUT,"pr-10 w-full")}),m&&e("div",{className:"absolute inset-y-0 right-10 flex items-center justify-center ",children:e(x,{onClick:p,variant:"unstyled",className:"hover:text-red-500 hover:bg-gray-100 dark:hover:bg-gray-600",children:e(lt,{className:"size-5"})})}),e("div",{className:"absolute inset-y-0 right-0 flex items-center justify-center",children:e(x,{onClick:s,variant:"unstyled",className:"hover:bg-gray-100 dark:hover:bg-gray-600",children:e(Nt,{className:"size-5"})})}),e(qs,{value:o,isOpen:l,onClose:e=>{if(e){const t="store:"+e.id;u(t),h(e||void 0),n.value=t}a()}})]}),m&&e("div",{className:"p-1 semibold text-sm text-gray-600 dark:text-slate-300",children:m.properties?.title||m.name})]})}function Ws(e,t,n,r){return()=>{n&&e.files.getDownloadUrlWithOptions({file:n,name:r}).then(e=>{window.open(e.url,"_blank")}).catch(e=>{t({status:"error",title:"Failed to get download URL",description:e.message,duration:5e3})})}}function Gs({objectId:n,isOpen:r,onClose:i}){const a=Xt(),{client:s,store:l}=$t(),[o,u]=c(null),[m,h]=c(!1),[p,f]=c(!1),[g,y]=c(),[v,w]=c(),[N,k]=c("preview"),C=b();d(()=>{n&&r?(h(!0),l.objects.retrieve(n,"+embeddings").then(e=>{u(e),e.text?y(e.text):S(e.id);const t=e.content;t&&t.source&&t.type&&t.type.startsWith("image/")&&j(e)}).catch(e=>{console.error("Error loading object:",e),C({title:"Error",description:"Failed to load document",status:"error",duration:3e3})}).finally(()=>{h(!1)})):(u(null),y(void 0),w(void 0))},[n,r,l.objects]);const S=async e=>{f(!0);try{const t=await l.objects.getObjectText(e);y(t.text)}catch(e){console.error("Error loading text:",e)}finally{f(!1)}},j=async e=>{try{"found"===(await s.objects.getRendition(e.id,{format:Mt.jpeg,generate_if_missing:!1})).status&&console.log("Found rendition");const t=await s.files.getDownloadUrl(e.content.source);w(t.url)}catch(e){console.error("Error loading image:",e)}},P=()=>{o&&(a(`/legal/objects/${o.id}`),i())},_=g&&(g.startsWith("#")||g.includes("\n#")||g.includes("\n*")),T=o?.content?.type&&o.content.type.startsWith("image/"),I="application/pdf"===o?.content?.type;return r?t("div",{className:"fixed inset-y-0 right-0 w-2/5 dark:bg-slate-900 shadow-xl z-50 flex flex-col transition-transform duration-300 transform "+(r?"translate-x-0":"translate-x-full"),children:[t("div",{className:"flex items-center justify-between px-4 py-3 border-b dark:border-gray-700 bg-gradient-to-r from-indigo-50 to-gray-50 dark:from-gray-800 dark:to-gray-900",children:[t("div",{className:"flex items-center",children:[e(kt,{className:"h-5 w-5 text-indigo-600 mr-2"}),e("h2",{className:"text-lg font-semibold text-gray-800 dark:text-gray-200 truncate",children:m?"Loading document...":o?.name||"Document Preview"})]}),t("div",{className:"flex items-center space-x-2",children:[t(x,{variant:"ghost",size:"sm",onClick:P,className:"flex items-center gap-1 text-indigo-600 hover:text-indigo-800",children:[e(ot,{className:"h-4 w-4"}),e("span",{children:"Full View"})]}),e(x,{variant:"ghost",size:"sm",onClick:i,className:"flex items-center text-gray-600 hover:text-gray-800 dark:text-gray-300 dark:hover:text-gray-100",children:e(lt,{className:"h-5 w-5"})})]})]}),m?e("div",{className:"flex-1 flex items-center justify-center",children:t("div",{className:"text-center",children:[e(K,{size:"lg",className:"text-indigo-600 dark:text-indigo-400 mb-2"}),e("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading document..."})]})}):t("div",{className:"flex-1 flex flex-col h-full",children:[e("div",{className:"border-b",children:t("div",{className:"flex px-4",children:[e("button",{className:"py-2 px-4 font-medium border-b-2 "+("preview"===N?"border-indigo-600 text-indigo-700 dark:text-indigo-300":"border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"),onClick:()=>k("preview"),children:t("div",{className:"flex items-center gap-1",children:[e(Ze,{className:"h-4 w-4"}),e("span",{children:"Preview"})]})}),e("button",{className:"py-2 px-4 font-medium border-b-2 "+("properties"===N?"border-indigo-600 text-indigo-700 dark:text-indigo-300":"border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"),onClick:()=>k("properties"),children:t("div",{className:"flex items-center gap-1",children:[e(Ue,{className:"h-4 w-4"}),e("span",{children:"Properties"})]})})]})}),t("div",{className:"flex-1 overflow-auto p-4",children:["preview"===N&&t("div",{className:"h-full",children:[p?e("div",{className:"flex items-center justify-center h-40",children:e(K,{size:"md",className:"text-indigo-600 dark:text-indigo-400"})}):g?e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:_?e("div",{className:"prose prose-sm max-w-none prose-p:my-2 prose-pre:bg-gray-800 prose-pre:my-2 prose-headings:text-indigo-700 dark:prose-invert dark:prose-headings:text-indigo-300",children:e(en,{children:g})}):e("pre",{className:"text-wrap whitespace-pre-wrap dark:text-gray-200",children:g})}):null,T&&e("div",{className:"mt-4",children:e("div",v?{className:"border border-gray-200 dark:border-gray-700 rounded-md p-2 bg-white dark:bg-gray-800",children:e("img",{src:v,alt:o?.name,className:"mx-auto max-h-[70vh] object-contain"})}:{className:"flex items-center justify-center h-40",children:e(K,{size:"md",className:"text-indigo-600 dark:text-indigo-400"})})}),I&&t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(kt,{className:"h-16 w-16 text-indigo-300 dark:text-indigo-400 mb-4"}),t("p",{className:"text-gray-600 dark:text-gray-400 text-center mb-4",children:["PDF document preview is available in full view. TODO"," "]}),e(x,{onClick:P,className:"bg-indigo-600 hover:bg-indigo-700 text-white",children:"Open Full Document View"})]}),!T&&!g&&!I&&!p&&t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(kt,{className:"h-16 w-16 text-gray-300 dark:text-gray-600 mb-4"}),e("p",{className:"text-gray-600 dark:text-gray-400 text-center",children:"No preview available for this document type."})]})]}),"properties"===N&&o&&t("div",{className:"h-full",children:[o.properties?e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:e(sn,{value:o.properties})}):t("div",{className:"flex flex-col items-center justify-center h-64 border border-gray-200 dark:border-gray-700 rounded-md p-4 bg-gray-50 dark:bg-gray-800",children:[e(Ue,{className:"h-16 w-16 text-gray-300 dark:text-gray-600 mb-4"}),e("p",{className:"text-gray-600 dark:text-gray-400 text-center",children:"No properties available for this document."})]}),t("div",{className:"mt-4",children:[e("h3",{className:"text-sm font-semibold text-gray-700 dark:text-gray-300 mb-2",children:"Document Information"}),e("div",{className:"shadow rounded-md p-4 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800",children:t("div",{className:"grid grid-cols-2 gap-y-2 gap-x-4 text-sm",children:[e("div",{className:"text-gray-500 dark:text-gray-400",children:"ID"}),e("div",{className:"font-medium dark:text-gray-200",children:o.id}),e("div",{className:"text-gray-500 dark:text-gray-400",children:"Type"}),e("div",{className:"font-medium dark:text-gray-200",children:o.type?.name||"Unknown"}),e("div",{className:"text-gray-500 dark:text-gray-400",children:"Content Type"}),e("div",{className:"font-medium dark:text-gray-200",children:o.content?.type||"N/A"}),e("div",{className:"text-gray-500",children:"Size"}),e("div",{className:"font-medium",children:o.content&&"size"in o.content?Hs(o.content.size):"Unknown"}),e("div",{className:"text-gray-500",children:"Created"}),e("div",{className:"font-medium",children:o.created_at?new Date(o.created_at).toLocaleString():"N/A"}),e("div",{className:"text-gray-500",children:"Updated"}),e("div",{className:"font-medium",children:o.updated_at?new Date(o.updated_at).toLocaleString():"N/A"})]})})]})]})]})]}),t("div",{className:"flex items-center justify-between p-4 border-t bg-gray-50 dark:bg-gray-800 dark:border-gray-700",children:[e("div",{children:o?.content?.source&&t(x,{onClick:()=>{o?.content?.source&&s.files.getDownloadUrl(o.content.source).then(e=>{window.open(e.url,"_blank")}).catch(e=>{console.error("Error getting download URL:",e),C({title:"Error",description:"Failed to download file",status:"error",duration:3e3})})},variant:"outline",className:"text-indigo-600 border-indigo-300 hover:bg-indigo-50",children:[e(st,{className:"h-4 w-4 mr-2"}),"Download"]})}),t(x,{onClick:P,className:"bg-indigo-600 hover:bg-indigo-700 text-white",children:["Open Full Document",e(Ct,{className:"h-4 w-4 ml-2"})]})]})]}):null}function Hs(e){if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB","TB"][t]}const Js=Object.values(Yt),Ys=Object.values(Zt);function Zs({onChange:n,isLoading:r,refresh:i,searchTypes:a}){const{client:s,project:l}=$t(),o=b(),[u,m]=c(void 0),[h,p]=c(void 0),f=!(!l||!h?.embeddings.text&&!h?.embeddings.image),[g,y]=c(void 0),[v,w]=c(!1),[N,k]=c(a||Js),[C,S]=c(100);d(()=>{a&&k(a)},[a]);const j={};let P=!1,A=!1;N.forEach(e=>{e===Yt.full_text?P=!0:A=!0,Ys.includes(e)&&(j[e]=!0)}),d(()=>{m(void 0),y(void 0)},[i]),d(()=>{l&&s.projects.retrieve(l.id).then(e=>{p(e.configuration)})},[l]),d(()=>{g&&o({title:g,status:"success",duration:2e3})},[g]),d(()=>{u&&0!==u.length||n(void 0)},[u]);const z=()=>{if(!f||!u)return;n({vector:A?{text:u,config:j}:void 0,full_text:P?u:void 0,limit:C}),y("Searching...")},D=e=>t=>{k(t?t=>Array.from(new Set([...t,e])):t=>t.filter(t=>t!==e))};return t("div",{className:"flex gap-1 items-center w-1/2",children:[e(E,{placeholder:"Type what you are looking for, or select a filter",value:u,onChange:m,onKeyDown:e=>{"Enter"===e.key&&z()}}),e(x,{variant:"ghost",onClick:()=>w(!0),alt:"Semantic search settings",className:"ml-1",children:e(St,{size:18})}),t(_,{isOpen:v,onClose:()=>w(!1),children:[e(T,{children:"Search Types"}),e(I,{children:t("div",{className:"flex flex-col gap-2",children:[t("label",{className:"flex items-center gap-2",children:[e(fe,{checked:N.includes(Yt.full_text),onCheckedChange:D(Yt.full_text)}),e("span",{children:"Full Text"})]}),e("div",{className:"font-semibold mt-2 mb-1",children:"Embeddings"}),Ys.map(n=>t("label",{className:"flex items-center gap-2",children:[e(fe,{checked:N.includes(n),onCheckedChange:D(n)}),e("span",{children:n.charAt(0).toUpperCase()+n.slice(1)})]},n)),t("div",{className:"mt-3",children:[e("span",{className:"mr-2",children:"Limit"}),e(ge,{type:"number",min:1,value:C,onChange:e=>S(Number(e??100)),style:{width:80}})]})]})}),e(F,{children:e(x,{variant:"outline",onClick:()=>w(!1),children:"Close"})})]}),e(x,{variant:"secondary",isLoading:r,onClick:z,isDisabled:!f,alt:"Semantic search",children:"Search"})]})}const Qs=[{name:"ID",field:"id",type:"objectId?slice=-7"},{name:"Name",field:".",type:"objectName"},{name:"Type",field:"type.name",type:"string"},{name:"Status",field:"status",type:"string"},{name:"Updated At",field:"updated_at",type:"date"}];function Xs({onUploadDone:t=async()=>{},layout:n}){const r=js(),i=b(),a=Fs(async e=>{await t(e),setTimeout(()=>{console.log("Delayed refresh after upload to ensure backend consistency"),r.search().then(()=>{i({title:"Document list refreshed",description:"The document list has been updated with your uploaded files.",status:"info",duration:3e3})}).catch(e=>{console.error("Failed to refresh search results:",e)})},1e3)});return e(el,{layout:n,onUpload:(e,t)=>{const n=r.collectionId;return a(e,t,n)}})}function el({layout:n,onUpload:r,allowFilter:i=!0,allowSearch:a=!0}){const s=js(),[l,o]=c(!1),[u,m]=c(null),{typeRegistry:p}=$t(),{search:f,isLoading:g,error:y,objects:b,hasMore:v}=_s(),[x,w]=c(p?n||(N=p,((k=f.query.type)?N.getTypeLayout(k):Qs)??Qs):Qs);var N,k;const[C,S]=c(0),[j,P]=c(0),[_,T]=c("grid"===localStorage.getItem(Rr.LAST_DISPLAYED_VIEW)),[I,A]=c([]),z=h(null);d(()=>{l||0!==b.length||(P(0),f._updateRunningState(!0),f.search().then(()=>{o(!0)}).catch(e=>{console.error("Initial search failed:",e),f._updateRunningState(!1)}))},[]),d(()=>{b.length<j&&P(b.length)},[b.length,j]),me(z,()=>{l&&b.length>0&&b.length!=j&&(o(!1),f.loadMore().finally(()=>{P(b.length),o(!0)}))},{deps:[l,b.length]});const E=Ps(),F=js(),D=Za(E),$=Qa(F),L=new URL(window.location.href),O=L.searchParams.get("filters");if(O)try{const e=O.split(";"),t=e.filter(e=>{const[t]=e.split(":"),n=decodeURIComponent(t);return"start"!==n&&"end"!==n});if(t.length!==e.length){const e=t.length>0?t.join(";"):"";e?L.searchParams.set("filters",e):L.searchParams.delete("filters"),window.history.replaceState(window.history.state||{},"",L.toString())}}catch(y){console.error("Failed to clean start/end filters from URL:",y)}const R=Xt();return t("div",{className:"flex flex-col gap-y-2",children:[e(nl,{object:u,onClose:()=>m(null)}),y&&e(U,{title:"Error",children:y.message}),e(tl,{isLoading:g,refreshTrigger:C,allowFilter:i,allowSearch:a,filterGroups:D,filters:I,handleFilterChange:e=>{const t="function"==typeof e?e(I):e;A(t),$(t)},handleVectorSearch:e=>{if(e&&e.vector){if(f.query.vector=e.vector,f.query.full_text=e.full_text,f.query.weights=e.weights,f.query.score_aggregation=e.score_aggregation,f.query.dynamic_scaling=e.dynamic_scaling,void 0!==e.limit&&(f.limit=e.limit,f.query.limit=e.limit),!x.find(e=>"Search Score"===e.name)){const e=[...x,{name:"Search Score",field:"score",render:e=>e.score?.toFixed(4)||"0.0000"}];w(e)}f.search().then(()=>o(!0))}else e&&e.full_text?(f.query.full_text=e.full_text,void 0!==e.limit&&(f.limit=e.limit,f.query.limit=e.limit),f.search().then(()=>o(!0))):void 0===e&&l&&(delete f.query.vector,delete f.query.full_text,f.search().then(()=>o(!0)))},handleRefetch:()=>{f.search().then(()=>o(!0))},setIsGridView:T}),e($s,{objects:b,isLoading:!b.length&&g,layout:x,onRowClick:e=>{R(`/objects/${e.id}`)},previewObject:e=>{const t=b.find(t=>t.id===e)||null;m(t)},selectedObject:u,onUpload:r,isGridView:_,collectionId:s.collectionId}),e("div",v?{ref:z,className:"w-full flex justify-center",children:e(K,{size:"xl"})}:{className:"text-muted text-center text-sm py-1",children:`All ${b.length} objects loaded.`})]})}function tl(n){const{isLoading:r,refreshTrigger:i,allowFilter:a,allowSearch:s,filterGroups:l,filters:o,handleFilterChange:c,handleVectorSearch:d,handleRefetch:u,setIsGridView:m}=n;return t("div",{className:"sticky top-0 z-10 bg-background py-2",children:[a&&t(re,{filterGroups:l,filters:o,setFilters:c,children:[t("div",{className:"flex flex-row gap-4 items-center justify-between w-full",children:[t("div",{className:"flex gap-2 items-center w-2/3",children:[s&&e(Zs,{onChange:d,isLoading:r,refresh:i,className:"w-full"}),e(ie,{})]}),t("div",{className:"flex gap-1 items-center",children:[e(x,{variant:"outline",onClick:u,alt:"Refresh",children:e(ft,{size:16})}),e(Rr,{onUpdate:m})]})]}),t("div",{className:"flex gap-2 items-center pt-2",children:[e(ae,{}),e(se,{})]})]}),!a&&t("div",{className:"flex flex-row gap-4 items-center justify-between w-full",children:[e("div",{className:"flex gap-2 items-center w-2/3",children:s&&e(Zs,{onChange:d,isLoading:r,refresh:i})}),t("div",{className:"flex gap-1 items-center",children:[e(x,{variant:"outline",onClick:u,alt:"Refresh",children:e(ft,{size:16})}),e(Rr,{onUpdate:m})]})]})]})}function nl({object:n,onClose:r}){const{store:i}=$t(),a=b(),s=Xt(),l=Ws(i,a,n?.content?.source,n?.name||n?.content?.name);return n?t(ye,{title:n.properties?.title||n.name,isOpen:!0,onClose:r,children:[t("div",{className:"flex items-center gap-x-2",children:[e(x,{variant:"ghost",size:"sm",title:"Open Object",onClick:()=>s(`/objects/${n.id}`),children:e(He,{className:"size-4"})}),n.content?.source&&e(x,{variant:"ghost",size:"sm",title:"Download",onClick:l,children:e(st,{className:"size-4"})})]}),e(be,{className:"my-2"}),e("div",{className:"pt-2",children:e(sa,{object:n,loadText:!0},n.id)})]}):null}var rl;function il({isExporting:n,isOpen:r,onClose:i}){return t(_,{onClose:()=>i(void 0),isOpen:r,className:"relative overflow-visible",children:[e(T,{children:"Export Object Properties"}),!n&&e(al,{onClose:i}),n&&e(sl,{})]})}function al({onClose:n}){const[r,i]=c(void 0),[a,s]=c(void 0),l=["Export selected objects","Export all objects"];return t(I,{className:"min-h-[104px] pt-0 flex flex-col gap-y-4",children:[e("div",{className:"h-1/3",children:e(X,{options:l,value:a,onChange:s,placeholder:"Choose what to export",className:"h-full w-full text-sm",filterBy:"name",isClearable:!0})}),t("div",{className:"h-1/2 flex flex-col gap-y-8 content-between",children:[e(X,{options:Object.values(rl),value:r,onChange:i,placeholder:"Choose a format",className:"h-full w-full text-sm",filterBy:"name",isClearable:!0}),e(x,{className:"w-full",isDisabled:!r||!a,onClick:()=>{n(r,a==l[1])},children:"Export Properties"})]})]})}function sl({}){return e(I,{className:"min-h-[84px] pt-0",children:t("div",{className:"h-full grid flex-col gap-y-2 content-between justify-items-center",children:[t("div",{className:"text-sm flex flex-col gap-x-2",children:[e("p",{children:"EXPORT IS IN PROGRESS"}),e("p",{className:"pt-2 grid justify-items-center",children:"PLEASE WAIT"})]}),e(K,{size:"lg"})]})})}function ll({collection:t}){const n=b(),{client:r,typeRegistry:i}=$t();js().query.all_revisions=!0;const a=function(e,t){let n=e.table_layout;if(n&&n.length>0)return n;e.type&&t&&(n=t?.getTypeLayout(e.type.id));return n&&n.length>0?n:void 0}(t,i);return t.dynamic?e(el,{layout:a}):e(Xs,{onUploadDone:async e=>{e.length>0&&await r.store.collections.addMembers(t.id,e).catch(e=>{n({title:"Failed to add objects to collection",description:e.message,status:"error"})})},layout:a})}!function(e){e.CSV="CSV",e.JSON="JSON"}(rl||(rl={}));const ol=n=>null===n?"None":t("div",{children:[e("div",{className:"text-sm",children:n.name}),e("div",{className:"text-xs text-gray-500",children:n.description})]});function cl({className:t,defaultValue:n,onChange:r,isClearable:i,multiple:a}){const s=$t(),[l,o]=c(!1),[u,m]=c(),[h,p]=c([]);d(()=>{if(!l&&(o(!0),s.typeRegistry&&n)){if(a&&Array.isArray(n)){const e=s.typeRegistry.types.filter(e=>n.includes(e.id));p(e)}const e=s.typeRegistry.types.find(e=>e.id===n);e&&m(e)}},[s.typeRegistry,n,a]);const f=e=>{p(e),r(e)};return e("div",a?{className:"flex flex-col gap-4 content-between",children:e(ue,{options:s.typeRegistry?.types||[],value:h,onChange:f,placeholder:"Choose Content Types...",optionLabel:ol,className:t||"text-sm bg-background",filterBy:"name",isClearable:i||!1,multiple:!0})}:{className:"flex flex-col gap-4 content-between",children:e(ue,{options:s.typeRegistry?.types||[],value:u,onChange:e=>{m(e||void 0),r(e)},placeholder:"Choose a Content Type...",optionLabel:ol,className:t||"text-sm bg-background",filterBy:"name",isClearable:i||!1})})}function dl({onClose:n,redirect:r=!0,onAddToCollection:i}){const a=Xt(),s=b(),[l,o]=c(!1),{client:d}=$t(),[u,m]=c({dynamic:!1,name:"",description:""});function h(e,t){m({...u,[e]:t})}return t("form",{onSubmit:e=>e.preventDefault(),children:[t(H,{children:[e(z,{label:"Name",required:!0,children:e(E,{type:"text",value:u.name||"",onChange:e=>h("name",e)})}),e(z,{label:"Description",className:"mt-2",children:e(ve,{value:u.description||"",onChange:e=>h("description",e.target.value)})}),e(z,{label:"Dynamic Collection",className:"mt-2",direction:"row",description:"Dynamically fetch content for the collection based on a query. If not enabled, then content must be added by users or agents.",children:e(xe,{value:u.dynamic||!1,onChange:e=>h("dynamic",e)})}),!u.dynamic&&e(z,{label:"Allowed Content Types",className:"mt-4",description:"Optionally select which content types can be added to the collection. If not set, then all content types are allowed.",children:e(cl,{defaultValue:u.allowed_types||null,onChange:e=>{Array.isArray(e)?h("allowed_types",e.map(e=>e.id)):h("allowed_types",e?[e.id]:[])},isClearable:!0,multiple:!0})}),e(z,{label:"Type",className:"mt-2",description:"Optionally select a content type to assign custom properties and data to the collection.",children:e(cl,{defaultValue:u.type||null,onChange:e=>{Array.isArray(e)?h("type",e.length>0?e[0].id:null):h("type",e?.id||null)},isClearable:!0})})]}),e(J,{children:e(x,{isDisabled:l,onClick:()=>{u?.name&&u.name.trim()?(u.name=u.name.trim(),u.description&&(u.description=u.description.trim()),null==u.dynamic&&(u.dynamic=!1),o(!0),d.store.collections.create(u).then(e=>{n(),s({title:"Collection created",description:`Collection "${e.name}" created successfully`,status:"success",duration:3e3}),r&&a(`/collections/${e.id}`),i&&i(e.id)}).catch(e=>{s({title:"Failed to create collection",description:e.message,status:"error",duration:5e3})}).finally(()=>o(!1))):s({title:"Name is required",description:"Please provide a name for the collection",status:"error",duration:5e3})},children:"Create Collection"})})]})}function ul({isOpen:n,onClose:r}){return t(W,{onClose:r,isOpen:n,children:[e(G,{children:"Create a Collection"}),e(dl,{onClose:r})]})}function ml({}){const{client:r}=$t(),i=b(),[a,s]=c(),[l,o]=c(!0),[u,m]=c(!1),{data:h,error:p,refetch:f}=R(()=>r.store.collections.search({}),[]);if(d(()=>{(h||p)&&o(!1)},[h,p]),p)return e(U,{title:"Collections fetch failed",children:p.message});return t(n,{children:[h&&(h.length>0?t(ne,{className:"w-full",children:[e("thead",{children:t("tr",{children:[e("th",{children:"Name"}),e("th",{children:"Type"}),e("th",{children:"Created"}),e("th",{})]})}),e(le,{columns:4,isLoading:l,children:h.map(n=>t(we,{children:[e("td",{children:t("div",{className:"flex items-center gap-2",children:[hl(n.dynamic),e(Qt,{href:`/collections/${n.id}`,children:n.name})]})}),e("td",{children:n.type?.name||"-"}),e("td",{children:pn(n.created_at).fromNow()}),e("td",{className:"text-right",children:e(x,{variant:"destructive",size:"sm",onClick:()=>s(n.id),children:e(jt,{className:"size-4"})})})]},n.id))})]}):e(Ne,{title:"No Collections",buttonLabel:"New Collections",onClick:()=>m(!0),children:"Get started by creating a new Collections."})),e(ul,{isOpen:u,onClose:()=>m(!1)}),e(ke,{isOpen:!!a,title:"Delete Collection",content:"Are you sure you want to delete this collection? This action cannot be undone.",onConfirm:async()=>{if(a)try{await r.store.collections.delete(a),i({title:"Collection deleted",status:"success",duration:3e3}),f()}catch(e){console.error("Failed to delete collection:",e),i({title:"Failed to delete collection",description:e.message||"An error occurred",status:"error",duration:5e3})}finally{s(void 0)}},onCancel:()=>s(void 0)})]})}function hl(t){const n=t?"Dynamic Collection":"Static Collection",r=e(t?Pt:_t,{className:"size-5"});return e(O,{description:n,className:"mr-2",children:r})}function pl({objects:n,isLoading:r}){const i=Xt();return t(ne,{className:"w-full",children:[e(Ce,{children:t("tr",{children:[e("th",{children:"Name"}),e("th",{children:"Strict Mode"}),e("th",{children:"Semantic Chunking"}),e("th",{children:"Updated At"})]})}),e(le,{isLoading:r&&(!n||0===n.length),columns:4,children:n?.map(n=>t("tr",{onClick:()=>i(`/types/${n.id}`),className:"cursor-pointer hover:bg-muted",children:[e("td",{children:n.name}),e("td",{children:n.strict_mode?"Yes":"No"}),e("td",{children:n.is_chunkable?"Yes":"No"}),e("td",{children:pn(n.updated_at).fromNow()})]},n.id))})]})}pn.extend(wn),pn.extend(wn);class fl{client;limit;result=new oe({objects:[],isLoading:!1});query={};constructor(e,t=100){this.client=e,this.limit=t}get objects(){return this.result.value.objects}get error(){return this.result.value.error}get isRunning(){return this.result.value.isLoading}getFilterValue(e){return this.query[e]}setFilterValue(e,t){this.query[e]=t,this.search()}reset(e=!1){this.result.value={objects:[],isLoading:e}}_updateRunningState(e){const t=this.result.value;this.result.value={objects:t.objects,isLoading:e,error:t.error}}async _search(e=!1){if(this.isRunning)return Promise.resolve(!1);this.result.value={isLoading:!0,objects:e?this.objects:[]};const t=this.limit,n=this.objects.length;return this.client.types.list({limit:t,offset:n,query:this.query}).then(async e=>(this.result.value={isLoading:!1,objects:this.objects.concat(e)},!0)).catch(e=>{throw this.result.value={error:e,isLoading:!1,objects:this.objects},e})}search(){return this.isRunning?Promise.resolve(!1):this._search(!1)}loadMore(){return this.isRunning?Promise.resolve(!1):this._search(!0)}}const gl=u(void 0);function yl(){return m(gl)}function bl(){const e=yl();return{...ce(e.result),search:e}}function vl(){return yl().objects.length}function xl({title:n,isOpen:r,onClose:i,okLabel:a,initialPayload:s}){const l=b(),[o,d]=c(s?.name),[u,m]=c(s?.description),[h,p]=c(s?.strict_mode??!1);return t(_,{isOpen:r,onClose:()=>i(),children:[e(T,{children:n}),e(I,{className:"pt-0",children:t("div",{className:"h-full flex flex-col gap-4 content-between",children:[t("div",{children:[e("label",{className:"block text-sm font-medium text-muted",children:"Name"}),e(E,{value:o,onChange:d})]}),t("div",{children:[e("label",{className:"block text-sm font-medium text-muted",children:"Description"}),e(ve,{value:u,onChange:e=>m(e.target.value)})]})]})}),e(F,{children:t("div",{className:"flex justify-end gap-4",children:[e(x,{variant:"secondary",onClick:()=>i(),children:"Cancel"}),e(x,{variant:"primary",onClick:()=>(()=>{if(!o)return void l({status:"error",title:"Name is required",duration:5e3});i({name:o,description:u,strict_mode:h}).then(()=>i()),d(void 0),m(void 0),p(!1)})(),children:a})]})})]})}var wl;function Nl({isDirty:n=!1}){const r=$t(),{store:i}=r,a=b(),[s,l]=c(!1),{search:o,isLoading:u,error:m,objects:p}=bl(),[f,g]=c(""),y=Se(f,500),v=h(null);me(v,()=>{s&&o.loadMore()},{deps:[s]}),d(()=>{o.search().then(()=>l(!0))},[]),d(()=>{o.query.name=f,o.search().then(()=>l(!0))},[y]);const[x,w]=c(void 0);d(()=>{o.query.chunkable=x?"Yes"==x:void 0,o.search().then(()=>l(!0))},[x]),d(()=>{n&&s&&o.search().then(()=>l(!0))},[n]);const[N,k]=c(!1);if(m)return e(U,{title:"Failed to fetch ObjectTypes",children:m.message});return t("div",{className:"flex flex-col gap-4 h-full",children:[t("div",{className:"flex flex-shrink-0 gap-4",children:[e(E,{placeholder:"Filter by Name",value:f,onChange:g}),e(X,{className:"w-60",isClearable:!0,options:Object.values(wl),value:x,onChange:e=>{w(e)},placeholder:"Is Chunkable"})]}),t("div",{className:"flex-1 overflow-y-auto",children:[u||0!==p?.length?e(pl,{objects:p,isLoading:u}):e(Ne,{title:"No Type",buttonLabel:"Create Type",onClick:()=>{k(!0)},children:"Get started by creating a new Type."}),e(xl,{okLabel:"Create",title:"Create Type",isOpen:N,onClose:async e=>e?i.types.create(e).then(async()=>{a({status:"success",title:"Type created",duration:2e3}),r.reloadTypes(),o.search().then(()=>l(!0))}).catch(e=>{a({status:"error",title:"Error creating type",description:e.message,duration:5e3})}):(k(!1),Promise.resolve())})]})]})}function kl({objectType:n,onSchemaUpdate:r}){const{store:i}=$t(),a=b(),{theme:s}=$(),[l,d]=c(!1),u=dn(n.object_schema),m=h(void 0),[p,f]=c(!1),g=o(()=>function(e){if(!e)return"";return JSON.stringify(e,null,2)}(u.schema),[u]),y=()=>{if(m.current){const e=m.current.getValue();try{const t=function(e){if(!e?.trim())return;return JSON.parse(e.trim())}(e);Cl(t),u.replaceSchema(t)}catch(e){return a({status:"error",title:"Invalid JSON Schema",description:e.message,duration:5e3}),!1}}return!0};return t("div",{className:"mx-2 my-2 rounded-2xl border border-solid shadow-md border-spacing-2",children:[t("div",{className:"flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2",children:[e("div",{className:"text-base font-semibold",children:"Schema Editor"}),e("div",{children:e(x,{variant:"outline",size:"sm",onClick:()=>{p&&!y()||f(e=>!e)},children:p?"Edit Schema":"Edit Json"})}),e("div",{className:"ml-auto flex gap-x-2",children:e(x,{isLoading:l,variant:"outline",size:"sm",onClick:()=>{p&&!y()||(d(!0),i.types.update(n.id,{object_schema:u.schema}).then(()=>{r(u),a({status:"success",title:"Schema updated",description:"The schema has been updated successfully",duration:2e3})}).catch(e=>{a({status:"error",title:"Failed to update schema",description:e.message,duration:5e3})}).finally(()=>{d(!1)}))},children:"Save Changes"})})]}),e("div",{className:"px-4 py-2",children:p?e(tn,{value:g,language:"json",editorRef:m,theme:"dark"===s?"vs-dark":"vs"}):e(un,{schema:u})})]})}!function(e){e.true="Yes",e.false="No"}(wl||(wl={}));const Cl=e=>{try{new gn({strict:!1}).compile(e)}catch(e){throw new Error(`Invalid JSON Schema definition: ${e.message}`)}};function Sl({children:t,limit:n,name:r,chunkable:i}){const{store:a}=$t(),s=o(()=>{const e=new fl(a,n);return e.query.name=r,e.query.chunkable=i,e},[n]);return e(gl.Provider,{value:s,children:t})}function jl({isOpen:n,onClose:r,title:i="Select Content Type",children:a,initialSelectedType:s=null,confirmLabel:l="Select Type",allowNone:o=!0}){const{typeRegistry:d}=$t(),[u,m]=c(s),h=d?.types||[],p=()=>{r(void 0)};return t(_,{isOpen:n,onClose:p,className:"w-full max-w-xl mx-auto",children:[e(T,{children:i}),t(I,{className:"p-6",children:[a,t("div",{className:"mb-4 mt-4",children:[t("label",{className:"block text-sm font-medium mb-2",children:["Content Type ",o&&e("span",{className:"text-gray-500 font-normal",children:"(Optional)"})]}),e(X,o?{options:h,value:u,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type or leave empty for automatic detection",onChange:e=>m(e||null),filterBy:"name",isClearable:!0}:{options:h,value:u,optionLabel:e=>e?e.name:"Select a content type",placeholder:"Select a content type",onChange:e=>m(e||null),filterBy:"name"}),o&&t("div",{className:"mt-2 text-sm text-blue-600 flex items-center",children:[e(yt,{className:"h-4 w-4 mr-1"}),t("span",{children:[e("strong",{children:"Type selection is optional."})," Leave empty to let Vertesia choose the appropriate type"]})]})]}),u?t("div",{className:"text-sm text-gray-500 bg-gray-50 p-3 rounded-md mb-4",children:[e("div",{className:"font-medium",children:u.name}),u.description&&e("div",{className:"mt-1",children:u.description})]}):o&&t("div",{className:"text-sm text-blue-600 bg-blue-50 p-3 rounded-md mb-4",children:[e("div",{className:"font-medium",children:"Automatic Type Detection"}),t("div",{className:"mt-1",children:["Vertesia will analyze each file's content and automatically select the most appropriate type.",e("br",{}),e("span",{className:"mt-1 block font-medium",children:"This is recommended for most uploads."})]})]})]}),t(F,{children:[e(x,{variant:"ghost",onClick:p,children:"Cancel"}),e(x,{onClick:()=>{r(u?.id??null)},children:u?`${l}: ${u.name}`:o?"Let Vertesia Choose":l})]})]})}function Pl({objectType:n,onLayoutUpdate:r}){const i=b(),{theme:a}=$(),[s,l]=c(!1),{store:d}=$t(),u=h(void 0),m=o(()=>_l(n.table_layout),[n.table_layout]),p=(e,t)=>{i({status:"error",title:e,description:t,duration:5e3})};return t("div",{className:"mx-2 my-2 rounded-2xl border border-solid shadow-xs",children:[t("div",{className:"flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2",children:[e("div",{className:"text-base font-semibold ",children:"Table Layout Editor"}),e("div",{className:"ml-auto flex gap-x-2",children:e(x,{isLoading:s,variant:"outline",size:"sm",onClick:()=>{if(!u.current)return;const e=u.current.getValue();let t;if(e)try{t=JSON.parse(e)}catch(e){return p("Invalid JSON",e.message)}else t=null;return Array.isArray(t)?t.some(e=>!e||!e.name||!e.field)?p("Invalid JSON","A table layout entry must contain the following properties:] {field, name, converter?}"):(l(!0),void d.types.update(n.id,{table_layout:t}).then(e=>{i({status:"success",title:"Table Layout updated",description:"The table layout has been updated successfully",duration:2e3}),r(e.table_layout)}).catch(e=>{i({status:"error",title:"Failed to update table layout",description:e.message,duration:5e3})}).finally(()=>{l(!1)})):p("Invalid JSON","The table layout must be an array")},children:"Save Changes"})})]}),e("div",{className:"px-4 py-2",children:e(tn,{value:m,language:"json",editorRef:u,theme:"dark"===a?"vs-dark":"vs"})})]})}function _l(e){return e?JSON.stringify(e,null,2):"[\n\n]"}function Tl({refetch:r,collection:i}){const a=i.type?.id,s=h(void 0),l=b(),{theme:d}=$(),{client:u}=$t(),[m,p]=c(!1),[f,g]=c({name:i.name,description:i.description||"",query:i.query?JSON.stringify(i.query,null,2):"",tags:i.tags||[],type:i.type?.id||"",allowed_types:i.allowed_types||[]}),y=o(()=>_l(i.table_layout),[i.table_layout]),v=(e,t)=>{g({...f,[e]:t})};return t("div",{className:"flex flex-col gap-4 py-2",children:[t(je,{title:"Configuration",action:e(x,{size:"lg",isDisabled:m,onClick:()=>{let e;try{e=f.query?JSON.parse(f.query):void 0}catch(e){return void l({title:"Invalid Query JSON",description:e.message,status:"error",duration:5e3})}const t={name:f.name,description:f.description,query:e,tags:f.tags,type:f.type,allowed_types:f.allowed_types};let n;if(t.name||(n="Name is required"),t.type||(t.type=null),n)l({title:"Validation failed",description:n,status:"error",duration:5e3});else{if(s.current){const e=s.current.getValue();if(e)try{t.table_layout=JSON.parse(e)}catch(e){return void l({title:"Invalid Table Layout",description:e.message,status:"error",duration:5e3})}else t.table_layout=null}p(!0),u.store.collections.update(i.id,t).then(()=>{r(),l({title:"Collection updated",description:"Collection has been updated successfully",status:"success",duration:3e3})}).catch(e=>{l({title:"Failed to update collection",description:e.message,status:"error",duration:5e3})}).finally(()=>{p(!1)})}},children:"Save"}),children:[t("div",{className:"flex justify-between mb-2",children:[t("div",{className:"w-1/2 gap-2 flex flex-col",children:[e("div",{className:"text-sm font-medium mb-1",children:"Created By"}),t("div",{className:"gap-2 flex items-center",children:[e(kn,{userRef:i.created_by,showTitle:!0}),t("span",{children:["at ",pn(i.created_at).format("YYYY-MM-DD HH:mm:ss")]})]})]}),t("div",{className:"w-1/2 gap-2 flex flex-col",children:[e("div",{className:"text-sm font-medium mb-1",children:"Updated By"}),t("div",{className:"gap-2 flex items-center",children:[e(kn,{userRef:i.updated_by,showTitle:!0}),t("span",{children:["at ",pn(i.updated_at).format("YYYY-MM-DD HH:mm:ss")]})]})]})]}),e(z,{label:"Name",required:!0,children:e(E,{value:f.name,onChange:e=>v("name",e)})}),e(z,{label:"Description",children:e(ve,{value:f.description,onChange:e=>v("description",e.target.value)})}),!i.dynamic&&e(z,{label:"Allowed Content Types",description:"Select which content types can be added to the collection. If not set, then all content types are allowed.",children:e(cl,{defaultValue:f.allowed_types||null,onChange:e=>{Array.isArray(e)?v("allowed_types",e.map(e=>e.id)):v("allowed_types",e?[e.id]:[])},isClearable:!0,multiple:!0})}),i.dynamic&&e(z,{label:"Query",description:"Define the query to dynamically fetch content for the collection.",children:e(ve,{className:pe.INPUT,value:f.query,onChange:e=>v("query",e.target.value)})}),e(z,{label:"Table Layout",description:"Define a custom layout for displaying the collection in tables.",children:e(tn,{className:"border-1 rounded-md border-border",value:y,language:"json",editorRef:s,theme:"dark"===d?"vs-dark":"vs"})}),e(z,{label:"Type",description:"Select a content type to assign custom properties and data to the collection.",children:e(cl,{defaultValue:f.type||null,onChange:e=>{Array.isArray(e)?v("type",e.length>0?e[0].id:null):v("type",e?.id||null)},isClearable:!0})})]}),a&&e(Il,{typeId:a,collection:i}),!i.dynamic&&t(n,{children:[e(Cn,{collection:i}),e(Sn,{collection:i})]})]})}function Il({typeId:t,collection:n}){const[r,i]=c({}),a=b(),{client:s}=$t(),[l,d]=c(!1),{data:u,error:m}=R(()=>s.store.types.retrieve(t),[t]),h=u?.object_schema||{},p=o(()=>new mn(h,n.properties||{}),[h,n.properties]);if(m)return e(U,{title:"Failed to load type",children:m.message});if(!u)return null;return e(je,{title:"Properties",action:e(x,{size:"lg",isLoading:l,type:"submit",onClick:()=>(e=>{if(!e||!Object.keys(e).length)return;const t={properties:e||{}};d(!0),s.store.collections.update(n.id,t).then(()=>{a({title:"Collection properties updated",description:"Collection has been updated successfully",status:"success",duration:3e3})}).catch(e=>{a({title:"Failed to update collection properties",description:e.message,status:"error",duration:5e3})}).finally(()=>{d(!1)})})(r),children:"Save"}),children:e(hn,{object:p,onChange:e=>{e instanceof mn&&i(e.value)}})})}function Al({onChange:n,value:r,disabled:i=!1,placeholder:a="Select a collection",searchPlaceholder:s="Search collections",filterOut:l,allowDynamic:d=!0,multiple:u=!1}){const{client:m}=$t(),[h,f]=c(""),[g,b]=c(!1),[v,S]=c(!1),_=Se(h,300),T=p(async e=>{b(!0);const t=e.trim(),n=await m.store.collections.search({dynamic:!!d&&void 0,name:v&&t||void 0});return b(!1),!v&&n.length>=1e3&&S(!0),l&&l.length>0?n.filter(e=>!l.includes(e.id)):n},[m,d,l,v]),{data:I,error:A}=R(()=>T(v?_:""),[v?_:"",T]),z=o(()=>I?u&&Array.isArray(r)?I.filter(e=>r.includes(e.id)):u||"string"!=typeof r?u?[]:void 0:I.find(e=>e.id===r):u?[]:void 0,[I,r,u]),E=p(e=>{if(u){const t=Array.isArray(r)?r:[];if(t.includes(e.id)){const r=t.filter(t=>t!==e.id),i=I?.filter(e=>r.includes(e.id))||[];n(r,i)}else{const r=[...t,e.id],i=I?.filter(e=>r.includes(e.id))||[];n(r,i)}}else n(e.id,e)},[n,r,I,u]),F=p(()=>{n(void 0,void 0)},[n]),D=p(e=>{f(e)},[]),$=h.trim().length>0,L=o(()=>{if(!I)return[];if(v)return I;if(!$)return I;const e=h.toLowerCase();return I.filter(t=>t.name.toLowerCase().includes(e))},[I,v,$,h]),O=z&&$;if(A)return e(U,{title:"Collection fetch failed",children:A.message});return t(w,{children:[e(N,{asChild:!0,children:t(x,{variant:"outline",role:"combobox","aria-haspopup":"listbox",className:y("w-full justify-between min-w-0"),disabled:i,children:[e("span",{className:"truncate flex-1 text-left min-w-0",children:u&&Array.isArray(z)&&z.length>0?1===z.length?z[0].name:`${z.length} collections selected`:u||!z||Array.isArray(z)?a:z.name}),e(Nt,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e(k,{className:"mt-2 mb-2 w-[var(--radix-popover-trigger-width)] p-0",align:"start",children:t(C,{shouldFilter:!1,children:[t("div",{className:"flex justify-between items-center border-b px-3","cmdk-input-wrapper":"",children:[e(Pe,{placeholder:s,value:h,onValueChange:D,className:"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"}),g&&e("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"})]}),e(_e,{children:g?"Searching...":$?"No collections found.":"No collections available."}),t(j,{className:"max-h-[300px] overflow-auto",children:[O&&!u&&e(P,{value:"__clear__",onSelect:F,className:"text-muted-foreground",children:"Clear selection"}),L.map(n=>{const i=u&&Array.isArray(r)?r.includes(n.id):r===n.id;return t(P,{value:n.id,onSelect:()=>E(n),className:"flex items-center justify-between",children:[e("span",{className:"truncate",children:n.name}),i&&e(Tt,{className:"ml-2 h-4 w-4 shrink-0"})]},n.id)})]})]})})]})}function zl({collection:t}){const{client:n}=$t(),[r,i]=c(void 0),[a,s]=c(t.shared_properties||[]),l=b();d(()=>{t.type?.id&&n.store.types.retrieve(t.type.id).then(i)},[t.type?.id]);const o=r?Object.keys(r.object_schema?.properties||{}):[];return e(je,{title:"Shared Properties",description:"Add properties to share across all members in the collection. This feature requires to enable shared property synchronization on the project.",action:e(x,{size:"lg",isLoading:!1,onClick:()=>{n.store.collections.update(t.id,{shared_properties:a}).then(()=>{l({title:"Updated shared properties",status:"success"})}).catch(e=>{l({title:"Failed to update shared properties",description:e.message,status:"error"})})},children:"Save"}),children:e("div",{className:"",children:e(Te,{value:a,onChange:e=>{s(e)},options:o,placeholder:"Select properties to share"})})})}function El({collection:t}){const{client:n}=$t(),[r,i]=c(t.skip_head_sync??!1),[a,s]=c(!1),l=b();return e(je,{title:"Synchronize Member Heads",description:"When a new HEAD version of a member is created the colleciton will be updated to point to the new HEAD.",children:e(xe,{disabled:a,value:!r,onChange:e=>{const r=!e;s(!0),n.store.collections.update(t.id,{skip_head_sync:r}).then(()=>{l({title:"Updated skip head sync setting",status:"success"}),i(r)}).catch(e=>{l({title:"Failed to update skip head sync",description:e.message,status:"error"})}).finally(()=>{s(!1)})},children:"Enable synchronizing member heads"})})}function Fl({action:n,objectIds:r,children:i}){const{store:a}=$t(),s=b(),[l,o]=c(!1),d=p(()=>(o(!0),Promise.resolve(!0)),[]);eo(n.id,d);return t("div",{children:[i,e(jl,{isOpen:l,onClose:e=>{o(!1),void 0!==e&&a.runOperation({name:"change_type",ids:r,params:{typeId:e}}).then(e=>{s({status:"success",title:"Change Type",description:`Change the type of ${r.length} objects is ${"in_progress"===e.status?"in progress":"completed"}`,duration:2e3})}).catch(e=>{s({status:"error",title:"Error changing type",description:e.message,duration:5e3})})},title:"Change Content Type",confirmLabel:"Change Type",children:t("div",{className:"text-sm flex flex-col gap-x-2",children:[t("p",{children:["Choose a new Content Type for the selected object",r.length>1?"s":" ","or let the system choose or generate a type based on the content."]}),t("p",{className:"pt-2 text-xs",children:["Note: This action will raise the ",e("code",{children:"change_type"})," event and will trigger the standard intake workflows which may reset the object properties."]})]})})]})}const Dl={id:"changeType",name:"Change Content Type",description:"Change the Content Type of the selected documents",confirm:!1,component:Fl};function $l({action:r,callback:i,children:a}){const[s,l]=c(!1),o=r.confirmationText||`Are you sure you want to ${r.name}?`,d=p(e=>r.confirm?(l(!0),Promise.resolve(!0)):i(e),[r.confirm,i]),u=eo(r.id,d);return t(n,{children:[a,e(ke,{onConfirm:()=>{l(!1),i({...u.params,action:r})},onCancel:()=>l(!1),title:"Are you sure?",content:o,isOpen:s})]})}function Ll({action:t,objectIds:n,children:r}){const i=Xl(),a=b(),{client:s}=$t(),l=js(),o=Xt(),c=p(()=>{if(!n||!n.length)return a({status:"error",title:"No objects selected",description:"Please select objects to delete",duration:3e3}),Promise.resolve(!1);function e(e,t){if(e.length<=t)return e;const n=e.lastIndexOf("."),r=-1!==n?e.substring(n):"";return`${(-1!==n?e.substring(0,n):e).substring(0,t-r.length-3)}...${r}`}return Promise.all(n.map(e=>s.store.objects.delete(e))).then(t=>{const r=t.length>1?"s":"";if(a({status:"success",title:`${t.length} object${r} deleted`,description:`Objects ${e(t.map(e=>e.id).join(", "),100)} have been deleted`,duration:2e3}),l){i.params?.selection?.removeAll();const e=JSON.parse(JSON.stringify(l.facets));n.length===e._value.total&&l.resetFacets(),l.search()}else o("/objects")}).catch(e=>{a({status:"error",title:"Error deleting objects",description:e.message,duration:5e3})})},[n]);return e($l,{action:t,callback:c,children:r})}const Ol={id:"delete",name:"Delete",description:"Delete the selected objects",confirm:!0,confirmationText:"Are you sure you want to delete all the selected objects? This action cannot be undone.",component:Ll,destructive:!0},Rl={id:"deleteFromCollections",name:"Delete Objects",description:"Delete the selected objects",confirm:!0,confirmationText:"Are you sure you want to delete the selected objects?\nThis is not removable from collections.",component:Ll,destructive:!0};function Ul({action:t,objectIds:n}){const{store:r}=$t(),i=b(),[a,s]=c(!1),[l,o]=c(!1),d=p(()=>(s(!0),Promise.resolve(!0)),[]),u=eo(t.id,d);return e("div",{children:e(il,{isExporting:l,isOpen:a,onClose:(e,t)=>{if(e&&(t||n.length>0)){o(!0);const a=u.params?.search?.query||{},l=u.params?.search?.result?.value?.objects?.map(e=>e.id)||void 0,c=async e=>r.objects.list({query:{parent:e}}).then(e=>e.map(e=>e.id));(async()=>t?l?a.vector?l:[]:0===n.length?[]:(await c(n[0])).concat(n):n)().then(l=>{r.objects.exportProperties({objectIds:l,type:e,query:t&&!a.vector?a:{type:a.type}}).then(r=>{let a;if(e===rl.CSV)a=new Blob([r.data],{type:r.type});else if(e===rl.JSON)a=new Blob([JSON.stringify(r.data)],{type:r.type});else{const e=r.data;a=new Blob([new Uint8Array(e.data)],{type:r.type})}const s=window.URL.createObjectURL(a),l=document.createElement("a");l.download=r.name,l.href=s,l.click(),i({status:"success",title:"Export Properties",description:t?"Export the properties of all objects completed":`Export the properties of ${n.length} object${n.length>1?"s":""} is completed`,duration:2e3})}).catch(e=>{i({status:"error",title:"Error Export Properties",description:e.message,duration:5e3})}).finally(()=>{o(!1),s(!1)})})}else s(!1)}})})}const Ml={id:"exportProperties",name:"Export Properties",description:"Export all Object Properties",confirm:!1,component:Ul};function Vl({action:t,objectIds:n,collectionId:r}){const i=Xl(),a=b(),{client:s}=$t(),l=js(),o=p(()=>n&&n.length?r?s.store.collections.deleteMembers(r,n).then(()=>{const e=n.length>1?"s":"";a({status:"success",title:`${n.length} object${e} removed from collection`,description:"Objects have been removed from the collection",duration:2e3}),l&&(i.params?.selection?.removeAll(),l.search())}).catch(e=>{a({status:"error",title:"Error removing objects from collection",description:e.message,duration:5e3})}):(a({status:"error",title:"No collection context",description:"Cannot remove objects: no collection specified",duration:3e3}),Promise.resolve(!1)):(a({status:"error",title:"No objects selected",description:"Please select objects to remove from collection",duration:3e3}),Promise.resolve(!1)),[n,r]);return e($l,{action:t,callback:o})}const ql={id:"removeFromCollection",name:"Remove from Collection",description:"Remove the selected objects from this collection",confirm:!0,confirmationText:"Are you sure you want to remove the selected objects from this collection?",component:Vl,destructive:!0};function Kl({action:t,objectIds:n,collectionId:r}){const i=b(),{client:a}=$t(),[s,l]=c(!1),o=p(()=>(l(!0),Promise.resolve(!0)),[]);return eo(t.id,o),e(Wl,{isOpen:s,onClose:e=>{if(l(!1),e)return a.store.workflows.rules.execute(e,n,{collection_id:r}).then(()=>{i({title:"Workflow started",status:"success",duration:3e3})}).catch(e=>{i({title:"Error starting workflow",status:"error",description:e.message,duration:9e3})})}})}const Bl={id:"startWorkflow",name:"Start Workflow",description:"Start an workflow on the selected objects",confirm:!1,hideInList:!0,component:Kl};function Wl({isOpen:n,onClose:r}){return t(W,{onClose:()=>r(void 0),isOpen:n,className:"",children:[e(G,{children:"Start a Workflow by Rule"}),e(Hl,{onClose:r})]})}function Gl(n){return{label:t("div",{children:[e("div",{children:n.name}),e("div",{className:"text-sm text-muted",children:n.description})]}),reverse:!0}}function Hl({onClose:n}){const[r,i]=c(void 0),a=Xl();return t("div",{children:[t(H,{children:[e("div",{className:"pb-2",children:"Choose a workflow rule to start:"}),e("div",{className:"max-h-[420px] overflow-y-scroll border-border border rounded-md",children:e(Ie,{options:a.wfRules,optionLayout:Gl,onChange:e=>{i(e)},value:r})})]}),t(J,{children:[e(x,{variant:"secondary",onClick:()=>n(),children:"Cancel"}),e(x,{onClick:()=>{r&&n(r.id)},isDisabled:!r,children:"Start"})]})]})}class Jl{params;allActions=[Ml,Dl,Bl,ro,Ol,ql,Rl];wfRules=[];callbacks={};startWorkflow;constructor(e){this.params=e}get actions(){return!!this.params.selection?.collectionId?this.allActions.filter(e=>"addToCollection"!==e.id&&"delete"!==e.id):this.allActions.filter(e=>"removeFromCollection"!==e.id&&"deleteFromCollections"!==e.id)}async loadWorkflows(){return this.params.client.workflows.rules.list().then(e=>{this.wfRules=e.map(e=>({id:e.id,name:e.name,description:e.description,confirm:!1,isWorkflow:!0,component:Kl})).sort((e,t)=>e.name.localeCompare(t.name))}),this.wfRules}registerCallback(e,t){return this.callbacks[e]=t,()=>{delete this.callbacks[e]}}unregisterCallback(e){delete this.callbacks[e]}findAction(e){let t=this.allActions.find(t=>t.id===e);return t||(t=this.wfRules.find(t=>t.id===e)),t}async run(e){const t=this.findAction(e);if(!t)throw new Error(`Action ${e} not found`);const n={...this.params,action:t},r=this.callbacks[e];if(r)return r(n);throw new Error("No action callback set")}}const Yl=u(void 0);function Zl({children:n}){const r=ps(),i=b(),{client:a}=$t(),s=js(),{data:l,error:c}=R(()=>a.workflows.rules.list().then(e=>e.map(e=>({id:e.id,name:e.name,description:e.description,confirm:!1,isWorkflow:!0,component:Kl})).sort((e,t)=>e.name.localeCompare(t.name))),[]),d=o(()=>{const e=new Jl({selection:r,toast:i,client:a,search:s});return e.wfRules=l,e},[r,l]);return c?e(U,{title:"Failed to fetch workflows",children:c.message}):d&&t(Yl.Provider,{value:d,children:[e(Ql,{}),n]})}function Ql({}){const t=Xl(),n=t.params.selection,r=n.getObjectId(),i=n.isSingleSelection()&&r?[r]:n.getObjectIds();return e("div",{style:{display:"none"},children:t.allActions.map(t=>e(t.component,{action:t,objectIds:i,collectionId:n.collectionId},t.id))})}function Xl(){const e=m(Yl);if(!e)throw new Error("You cannot use useActionContext outside an ActionProvider");return e}function eo(e,t){const n=Xl();return d(()=>n.registerCallback(e,t),[n,e,t]),n}function to(e){const t=Xl();return d(()=>(t.startWorkflow=e,()=>{t.startWorkflow=void 0}),[e,t]),t}function no({action:t,objectIds:n}){const[r,i]=c(!1),a=p(()=>(n.length>0&&i(!0),Promise.resolve(!0)),[n]);return eo(t.id,a),r&&e(B,{children:e(io,{objectIds:n,isOpen:r,onClose:()=>{i(!1)}})})}const ro={id:"addToCollection",name:"Add to Collection",description:"Add documents to a collection",confirm:!1,component:no};function io({isOpen:n,onClose:r,objectIds:i}){return t(W,{isOpen:n,onClose:r,className:"max-w-lg w-full min-w-0 overflow-hidden",children:[e(G,{className:"flex flex-col min-w-0 overflow-hidden",children:"Add to a Collection"}),e(Ae,{className:"min-w-0 overflow-hidden",children:"Add the selected objects to an existing collection or create a new one."}),e("div",{className:"min-w-0 max-w-full overflow-hidden",children:e(ao,{onClose:r,objectIds:i})})]})}function ao({onClose:n,objectIds:r}){const i=b(),{client:a}=$t(),[s,l]=c(),o=({collectionId:e})=>{e&&r?.length&&a.store.collections.addMembers(e,r).then(()=>{i({title:"Add to collection success",status:"success",description:`Added ${r.length} objects to the selected collection`,duration:3e3}),n()}).catch(()=>{i({title:"Add to collection failure",status:"error",description:"Failed to add the selected objects to the collection",duration:5e3})})},d=[{name:"select",label:"Select Collection",content:t("div",{className:"p-4 min-w-0 max-w-full overflow-hidden",children:[e(ze,{level:5,children:"Choose from existing collections"}),e(H,{className:"min-w-0 max-w-full overflow-hidden",children:e("div",{className:"mb-4 min-w-0 max-w-full overflow-hidden",children:e(Al,{onChange:(e,t)=>{"string"==typeof e||void 0===e?l(e):Array.isArray(e)&&e.length>0?l(e[0]):l(void 0)},value:s})})}),e(J,{children:e(x,{isDisabled:!s,onClick:()=>s&&o({collectionId:s}),children:"Add to Collection"})})]})},{name:"create",label:"Create new",content:e("div",{className:"p-4",children:e(dl,{onClose:n,onAddToCollection:e=>o({collectionId:e}),redirect:!1})})}];return t(Ee,{defaultValue:"select",tabs:d,fullWidth:!0,children:[e(Fe,{}),e(De,{})]})}function so(){const n=ps(),r=n.size(),i=r>1?"s":"",a=n?.hasSelection(),s=n?.isSingleSelection();return e(Zl,{children:t("div",{className:"flex items-center gap-x-2",children:[a&&!s&&t("div",{className:"flex items-center gap-x-1 shrink-0",children:[t("div",{className:"text-sm nowrap",children:[r," document",i," selected"]}),e(x,{title:"Clear selection",variant:"ghost",onClick:()=>{n?.removeAll()},children:e(lt,{className:"size-4"})})]}),e(mo,{selection:n,children:e(x,{variant:"ghost",alt:"More action",size:"sm",children:e(It,{size:16})})}),a&&e(lo,{selection:n})]})})}function lo({}){return e(co,{})}function oo({collectionId:r,allowFolders:i=!0}){const[a,s]=c([]),[l,o]=c(!1),d=ps(),u=d?.hasSelection();return!u&&t(n,{children:[e(x,{onClick:()=>o(!0),children:"Upload"}),e(Es,{collectionId:r??"",isOpen:l,onClose:()=>{o(!1),s([])},files:a,title:"Upload Files",onUploadComplete:e=>{e&&e.success&&s([])},allowFolders:i})]})}function co(){const t=Xl();return t.params.selection.hasSelection()&&e(x,{onClick:()=>t.run(Bl.id),children:"Start Workflow"})}function uo(e){return{label:e.name,className:r("flex-1 px-2 py-2 hover:bg-accent nowrap",e.destructive?"text-destructive":"")}}function mo({selection:n,children:r}){const i=Xl();return t(w,{hover:!0,children:[e(N,{children:r}),e(k,{className:"p-0 w-50",align:"end",sideOffset:6,children:e(ho,{executeAction:e=>{i.run(e.id)},selection:n})})]})}function ho({executeAction:t,selection:n}){const r=Xl(),i=n?.hasSelection()?r.actions.filter(e=>!e.hideInList):[Ml];return e("div",{className:"rounded-md shadow-md py-2",children:e("div",{className:"px-1 text-sm",children:e(Ie,{options:i,optionLayout:uo,onChange:e=>{t(e)},noCheck:!0})})})}function po({onSend:n,disabled:r=!1,isSending:i=!1,isCompleted:a=!1,activeTaskCount:s=0,placeholder:l="Type your message..."}){const o=h(null),[u,m]=c(""),[p,f]=c(!1);d(()=>{!r&&a&&o.current?.focus()},[r,a]);const g=()=>{const e=u.trim();!e||r||i||(n(e),m(""))};return t("div",{className:"p-3 border-t border-muted flex-shrink-0 fixed lg:sticky bottom-0 left-0 right-0 lg:left-auto lg:right-auto w-full bg-background z-10",style:{minHeight:"90px"},children:[t("div",{className:"flex items-center space-x-2",children:[t("div",{className:"flex flex-1 space-x-1",children:[e(E,{ref:o,value:u,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),g())},onChange:m,disabled:r||i,placeholder:l,className:"pr-12 py-2.5"}),e(x,{variant:"ghost",className:"rounded-full",disabled:!a,onClick:()=>f(!0),alt:"Link Object",children:e(At,{className:"size-4"})})]}),t(x,{onClick:g,disabled:r||i||!u.trim(),className:"px-4 py-2.5",children:[i?e(K,{size:"sm",className:"mr-2"}):e(zt,{className:"size-4 mr-2"})," Send"]})]}),e("div",{className:"text-xs text-muted mt-2 text-center",children:s>0?t("div",{className:"flex items-center justify-center",children:[e(Et,{className:"h-3 w-3 mr-1 text-attention"}),t("span",{children:["Agent has ",s," active workstream",1!==s?"s":""," running"]})]}):r?"Agent is processing, you can continue once it completes...":"You can send a message at any time"}),t(W,{isOpen:p,onClose:()=>f(!1),className:"min-w-[60vw]",children:[e(G,{children:"Link Object"}),e(H,{className:"pb-6",children:e(Ms,{onChange:e=>{const t=`[${e.properties?.title||e.name||"Object"}](store:${e.id})`,n=u||"",r=o.current?.selectionStart||n.length,i=n.substring(0,r)+t+n.substring(r);m(i),f(!1),setTimeout(()=>{if(o.current){o.current.focus();const e=r+t.length;o.current.setSelectionRange(e,e)}},100)}})})]})]})}const fo=l.memo(function({plan:r,workstreamStatus:i,isOpen:a,onClose:s,plans:l=[],activePlanIndex:o=0,onChangePlan:c=()=>{}}){return a?t("div",{className:"h-full shadow-xl border border-muted/20 overflow-hidden",children:[t("div",{className:"flex items-center justify-between p-3 border-b border-muted/20",children:[e("h3",{className:"font-bold text-base",children:"Plan"}),t(x,{variant:"ghost",onClick:s,children:[e(lt,{className:"size-4"}),e("span",{className:"sr-only",children:"Close"})]})]}),t("div",{className:"p-3 overflow-y-auto",style:{height:"calc(100% - 44px)",maxHeight:"calc(100vh - 150px)"},children:[t("div",{className:"mb-3 p-2 bg-info rounded-md border border-info",children:[e("div",{className:"text-xs font-medium text-info mb-1",children:"Task Progress"}),e("div",{className:"flex items-center gap-2",children:(()=>{const a=r.plan||[],s=a.length;let l=0;s>0&&a.forEach(e=>{if(e&&e.id){const t=e.id.toString();"completed"===i.get(t)&&l++}});const o=s>0?Math.round(l/s*100):0;return t(n,{children:[e("div",{className:"w-full bg-muted rounded-full h-2",children:e("div",{className:"bg-background h-2 rounded-full",style:{width:`${o}%`}})}),e("span",{className:"text-xs text-muted",children:s>0?`${l}/${s}`:"0/0"})]})})()})]}),l.length>1&&t("div",{className:"mb-3 flex items-center justify-between",children:[e(x,{variant:"ghost",onClick:()=>c(Math.min(l.length-1,o+1)),disabled:o>=l.length-1,children:"Older Plan"}),e("div",{className:"text-xs text-muted",children:l[o]?.timestamp?new Date(l[o].timestamp).toLocaleTimeString():"Unknown time"}),e(x,{variant:"ghost",onClick:()=>c(Math.max(0,o-1)),disabled:o<=0,children:"Newer Plan"})]}),t("div",{className:"rounded-md border border-muted/30",children:[e("div",{className:"p-2 border-b border-muted/30 bg-muted",children:e("div",{className:"font-medium text-xs",children:"Step-by-Step Plan"})}),e("div",{className:"divide-y divide-muted/20 max-h-[calc(100vh-350px)] overflow-y-auto",children:r.plan&&r.plan.length>0?r.plan.map((n,r)=>{const a=n.id?n.id.toString():`task-${r}`,s=n.goal||`Task ${r+1}`;let l=n.status||"pending";i.has(a)&&(l=i.get(a));let o=Ft,c="text-muted";return"in_progress"===l?(o=Ke,c="text-info"):"completed"===l&&(o=qe,c="text-success"),t("div",{className:"flex p-3 my-1",children:[e("div",{className:"mr-2 mt-0.5 flex-shrink-0 text-muted",children:a}),t("div",{className:"w-full",children:[e("div",{className:"text-sm font-medium mb-2 text-muted",children:s}),t("div",{className:"mt-1 flex justify-end items-center",children:[e("div",{className:`mr-2 mt-0.5 flex-shrink-0 ${c}`,children:e(o,{className:"size-3.5"})}),e(v,{variant:"completed"===l?"success":"in_progress"===l?"info":"default",children:"completed"===l?"Completed":"in_progress"===l?"In Progress":"Pending"})]})]})]},r)}):t("div",{className:"p-3 text-center text-muted italic",children:[e(Me,{className:"size-4 mx-auto mb-2 text-attention"}),e("p",{className:"text-xs",children:"No plan has been detected yet"}),e("p",{className:"text-xs mt-1",children:"Plans will appear here when the agent creates one"})]})})]}),(()=>{const n=new Set((r.plan||[]).filter(e=>e&&e.id).map(e=>e.id.toString())),a=Array.from(i.entries()).filter(([e])=>"main"!==e&&!n.has(e));return a.length>0?t("div",{className:"mt-3 rounded-md border border-gray-200 dark:border-gray-800",children:[e("div",{className:"p-2 border-b border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-900/50",children:e("div",{className:"font-medium text-xs",children:"Workstreams"})}),e("div",{className:"p-3",children:e("div",{className:"grid grid-cols-1 gap-2",children:a.map(([n,r])=>{let i=Ft,a="text-gray-400",s="bg-gray-100 dark:bg-gray-800",l="Pending";return"in_progress"===r?(i=Ke,a="text-info",s="bg-info/20",l="In Progress"):"completed"===r&&(i=qe,a="text-success",s="bg-success/20",l="Completed"),t("div",{className:`flex items-center p-1.5 rounded ${s}`,children:[e("div",{className:`mr-1.5 ${a}`,children:e(i,{className:"h-3.5 w-3.5"})}),e("div",{className:"flex-1",children:e("span",{className:"text-xs font-medium text-gray-800 dark:text-gray-300",children:n})}),e("span",{className:"text-xs font-medium",children:l})]},n)})})})]}):null})()]})]}):null});function go(t){const{run:n,startWorkflow:r}=t;if(n){const r="runId"in n?n:{runId:n.run_id,workflowId:n.workflow_id};return e(vo,{...t,run:r})}return r?e(bo,{...t}):e(yo,{})}function yo(){return t(de,{status:"info",icon:e(Oe,{className:"size-16 text-muted mb-4"}),children:[e("div",{className:"text-base font-medium text-muted",children:"No agent currently running"}),e("div",{className:"mt-3 text-sm text-muted",children:"Select an interaction and click Start to start an agent"})]})}function bo({initialMessage:n,onClose:r,isModal:i=!1,startButtonText:a="Start Agent",title:s="Start New Conversation"}){const l=h(null);return d(()=>{l.current&&l.current.focus()},[]),t("div",{className:"flex flex-col h-full bg-white dark:bg-gray-900 overflow-hidden border-0",children:[t("div",{className:"flex items-center justify-between py-2 px-3 border-b border-gray-100 dark:border-gray-800 bg-white dark:bg-gray-900",children:[t("div",{className:"flex items-center space-x-2",children:[e("div",{className:"p-1",children:e(Dt,{className:"size-3.5 text-muted"})}),e("span",{className:"font-medium text-sm text-gray-700 dark:text-gray-300",children:s})]}),r&&!i&&e(x,{size:"xs",variant:"ghost",onClick:r,title:"Close",className:"text-slate-500 hover:text-slate-700",children:e(We,{className:"size-4"})})]}),t("div",{className:"flex-1 overflow-y-auto px-4 py-6 bg-white dark:bg-gray-900 flex flex-col items-center justify-center",children:[n&&e("div",{className:"px-4 py-3 mb-4 bg-blue-50/80 dark:bg-blue-900/30 border-l-2 border-blue-400 dark:border-blue-500 text-blue-700 dark:text-blue-300 max-w-md",children:n}),t("div",{className:"bg-white dark:bg-slate-800 p-4 max-w-md border-l-2 border-blue-400 dark:border-blue-500",children:[e("div",{className:"text-base text-slate-600 dark:text-slate-300 font-medium",children:"Enter a message to start a conversation"}),t("div",{className:"mt-3 text-sm text-slate-500 dark:text-slate-400",children:["Type your question below and press Enter or click ",a," ","to begin"]})]})]})]})}function vo({run:n,title:r,interactive:i=!0,onClose:a,isModal:s=!1,placeholder:l="Type your message...",resetWorkflow:u}){const{client:m}=$t(),p=h(null),f=h(null),[g,y]=c([]),[v,w]=c(!1),[N,k]=c(!1),[C,S]=c("sliding"),[j,P]=c(!s),[_,T]=c([]),[I,A]=c(0),[z,E]=c(new Map),[F,D]=c(0),$=b(),[L,O]=c(i),[R,U]=c(null),M=o(()=>{const e=_[I]||{plan:{plan:[]},timestamp:0},t=z.get(e.timestamp)||new Map;return{plan:e.plan,workstreamStatus:t}},[_,I,z]);d(()=>{if(!v){const e=setInterval(()=>{D(()=>Math.floor(Math.random()*(Sr.length-1)))},4e3);return()=>clearInterval(e)}},[v]);d(()=>(y([]),T([]),A(0),E(new Map),P(!1),U(null),(async()=>{try{const e=await m.store.workflows.getRunDetails(n.runId,n.workflowId);U(e.status)}catch(e){console.error("Failed to check workflow status:",e)}})(),m.store.workflows.streamMessages(n.workflowId,n.runId,e=>{e.message&&y(t=>t.find(t=>t.timestamp===e.timestamp)?t:(function(e,t){const n="number"==typeof t.timestamp?t.timestamp:new Date(t.timestamp).getTime(),r=e.findIndex(e=>("number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime())>n);-1===r?e.push(t):e.splice(r,0,t)}(t,e),[...t]))}),()=>{y([])}),[n.runId,m.store.workflows]),d(()=>{w(!function(e){if(!e.length)return!0;const t=new Map;if(e.forEach(e=>{const n=Pr(e);t.has(n)||t.set(n,[]),t.get(n).push(e)}),console.log("[isInProgress] Workstreams found:",Array.from(t.keys())),1===t.size&&!t.has("main")){const e=t.keys().next().value||"unknown";console.log(`[isInProgress] Only one workstream found (${e}), treating as main`);const n=t.get(e),r=n[n.length-1];return console.log(`[isInProgress] Last message type in only workstream: ${r.type}`),jr.includes(r.type)?(console.log("[isInProgress] Only workstream is completed"),!1):(console.log("[isInProgress] Only workstream is still in progress"),!0)}if(t.has("main")){const e=t.get("main");if(0===e.length)return console.log("[isInProgress] Main workstream exists but has no messages, still in progress"),!0;const n=e[e.length-1];return console.log(`[isInProgress] Last message type in main workstream: ${n.type}`),jr.includes(n.type)?(console.log("[isInProgress] Main workstream is completed"),!1):(console.log("[isInProgress] Main workstream is still in progress"),!0)}console.log("[isInProgress] Multiple workstreams but no main, checking if any are still active");for(const[e,n]of t.entries())if(n.length>0){const t=n[n.length-1];if(!jr.includes(t.type))return console.log(`[isInProgress] Workstream ${e} is still active`),!0}return console.log("[isInProgress] All workstreams are completed"),!1}(g)),0===_.length&&P(!1)},[g,_.length]),d(()=>{if(1===_.length&&!j&&!sessionStorage.getItem("plan-panel-shown")){const e=setTimeout(()=>{P(!0),sessionStorage.setItem("plan-panel-shown","true")},500);return()=>clearTimeout(e)}g.forEach(e=>{if(e.type===Lt.PLAN)try{console.log("PLAN message received:",e.type);let t=null;if(e.details&&"object"==typeof e.details&&e.details.plan&&Array.isArray(e.details.plan)&&(console.log("Valid plan array found in message.details.plan"),t={plan:e.details.plan}),t){const n="number"==typeof e.timestamp?e.timestamp:new Date(e.timestamp).getTime();if(-1===_.findIndex(e=>e.timestamp===n)&&t){console.log("Adding new plan to plans array");const e={plan:t,timestamp:n};console.log("Adding plan to plans array:",e),T(t=>{const n=[e,...t];return console.log("New plans array:",n),n}),A(0),console.log("Setting showSlidingPanel to true"),P(!0);const r=new Map;r.set("main","in_progress"),Array.isArray(t.plan)&&t.plan.forEach(e=>{if(e&&"object"==typeof e&&e.id){const t=e.id.toString();r.set(t,e.status||"pending")}}),E(e=>{const t=new Map(e);return t.set(n,r),t})}}}catch(e){console.error("Failed to parse plan from message:",e)}e.type===Lt.UPDATE&&e.details&&e.details.updates&&Array.isArray(e.details.updates)&&console.log("Ignoring UPDATE message with details.updates - waiting for PLAN message with full plan")});const e=g[g.length-1];e&&(e.type===Lt.TERMINATED?(O(!1),U("TERMINATED")):O(!!i||e.type===Lt.REQUEST_INPUT))},[g,_,I]);const V=r||n.workflowId.split(":")[2]||"Agent Conversation",[q,K]=c(!1);return t("div",{className:"flex flex-col lg:flex-row gap-2 h-full",children:[t("div",{ref:f,className:"flex flex-col min-h-0 border-0 "+(j?"w-full lg:w-2/3 flex-1 min-h-[50vh]":"flex-1 mx-auto "+(s?"":"max-w-4xl")),children:[e($r,{title:V,isCompleted:v,onClose:a,isModal:s,run:n,viewMode:C,onViewModeChange:S,showPlanPanel:j,hasPlan:_.length>0,onTogglePlanPanel:()=>{P(!j),j||sessionStorage.setItem("plan-panel-shown","true")},onDownload:async()=>{try{const e=await async function(e,t){return e.files.getDownloadUrl(`agents/${t}/conversation.json`).then(e=>e.url)}(m,n.runId);e&&window.open(e,"_blank")}catch(e){console.error("Failed to download conversation",e),$({status:"error",title:"Failed to download conversation",duration:3e3})}},onCopyRunId:()=>{navigator.clipboard.writeText(n.runId),$({status:"success",title:"Run ID copied",duration:2e3})},resetWorkflow:u,onExportPdf:()=>{f.current?K(!0):$({status:"error",title:"PDF export failed",description:"No conversation content available to export",duration:3e3})}}),0!==g.length||v?e(Ar,{messages:g,bottomRef:p,viewMode:C,isCompleted:v,plan:M.plan,workstreamStatus:M.workstreamStatus,showPlanPanel:j,onTogglePlanPanel:()=>{console.log("Toggle plan panel called, current state:",j),P(!j)},plans:_,activePlanIndex:I,onChangePlan:e=>A(e),taskLabels:M.plan.plan?.reduce((e,t)=>(t.id&&t.goal&&e.set(t.id.toString(),t.goal),e),new Map)}):e("div",{className:"flex-1 flex flex-col items-center justify-center h-full text-center py-6",children:t("div",{className:"p-5 max-w-md border border-info rounded-lg shadow-sm",children:[t("div",{className:"flex items-center space-x-3 mb-3",children:[e(xr,{size:"sm",color:"blue"}),e("div",{className:"text-sm text-muted font-medium",children:Sr[F]})]}),e("div",{className:"mt-4 flex justify-center",children:e(vr,{color:"blue",className:"mt-1"})})]})}),R&&("RUNNING"!==R?t(de,{status:"COMPLETED"===R?"success":"done",icon:null,className:"flex-shrink-0 m-2",children:["This Workflow is ",R]}):L&&e(po,{onSend:e=>{const t=e.trim();t&&!N&&(k(!0),m.store.workflows.sendSignal(n.workflowId,n.runId,"UserInput",{message:t}).then(()=>{w(!1),$({status:"success",title:"Message Sent",duration:2e3})}).catch(e=>{$({status:"error",title:"Failed to Send Message",description:e instanceof Error?e.message:"Unknown error",duration:3e3})}).finally(()=>{k(!1)}))},disabled:!1,isSending:N,isCompleted:v,activeTaskCount:(()=>{if(!g.length)return 0;const e=new Map;g.forEach(t=>{const n=Pr(t);"main"!==n&&"all"!==n&&(e.has(n)||e.set(n,[]),e.get(n).push(t))});let t=0;for(const[n,r]of e.entries())if(r.length>0){const e=r[r.length-1];[Lt.COMPLETE,Lt.IDLE].includes(e.type)||t++}return t})(),placeholder:l}))]}),j&&e("div",{className:"w-full lg:w-1/3 min-h-[50vh] lg:h-full border-t lg:border-t-0 lg:border-l",children:e(fo,{plan:M.plan,workstreamStatus:M.workstreamStatus,isOpen:j,onClose:()=>P(!1),plans:_,activePlanIndex:I,onChangePlan:A})}),t(W,{isOpen:q,onClose:()=>K(!1),children:[e(G,{children:"Export conversation as PDF"}),t(H,{children:[e("p",{className:"mb-2",children:"This will open your browser's print dialog with the current conversation."}),e("p",{className:"text-sm text-muted",children:'To save a PDF, choose "Save as PDF" or a similar option in the print dialog.'})]}),t(J,{align:"right",children:[e(x,{variant:"ghost",size:"sm",onClick:()=>K(!1),children:"Cancel"}),e(x,{size:"sm",onClick:()=>{if(!f.current)return void $({status:"error",title:"PDF export failed",description:"No conversation content available to export",duration:3e3});const e=`${V} - ${n.runId}`,t=function(e,t){if("undefined"==typeof window||"undefined"==typeof document)return!1;const n=document.createElement("iframe");n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.style.width="0",n.style.height="0",n.style.border="0",n.style.visibility="hidden",document.body.appendChild(n);const r=n.contentWindow;if(!r)return n.parentNode?.removeChild(n),!1;const i=r.document;return i.open(),i.write(`<!doctype html><html><head><title>${t}</title></head><body></body></html>`),i.close(),i.title=t,document.querySelectorAll('link[rel="stylesheet"], style').forEach(e=>{i.head.appendChild(e.cloneNode(!0))}),i.body.innerHTML=e.innerHTML,r.focus(),r.print(),setTimeout(()=>{n.parentNode?.removeChild(n)},1e3),!0}(f.current,e);t?($({status:"success",title:"PDF export ready",description:"Use your browser's Print dialog to save as PDF",duration:4e3}),K(!1)):$({status:"error",title:"PDF export failed",description:"Unable to open print preview",duration:4e3})},children:"Open print dialog"})]})]})]})}const xo=["#4f46e5","#06b6d4","#22c55e","#f59e0b","#ef4444","#8b5cf6","#ec4899","#14b8a6"];class wo extends f{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`Chart rendering error (${this.props.chartType}):`,e,t)}render(){return this.state.hasError?e("div",{className:"flex items-center justify-center h-full bg-red-50 dark:bg-red-950 rounded-md p-4",children:t("div",{className:"text-center",children:[t("p",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:["Cannot render ",this.props.chartType," chart"]}),e("p",{className:"text-xs text-red-500 dark:text-red-500 mt-1 max-w-xs truncate",children:this.state.error?.message||"Unknown error"})]})}):this.props.children}}function No(e){if(!isFinite(e))return String(e);const t=Math.abs(e);return t>=1e9?(e/1e9).toFixed(1)+"B":t>=1e6?(e/1e6).toFixed(1)+"M":t>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString()}const ko=g(function({spec:r}){const{chart:i,title:a,description:s,data:l,xKey:o,series:d,yAxis:u,options:m,nameKey:f,valueKey:g,yKey:y,zKey:b,axisKey:v,dataKey:x}=r,[w,N]=c(!1),[k,C]=c(!1),S=h(null),j=p(async()=>{if(S.current&&!k)try{const e=await jn(S.current,{backgroundColor:"#ffffff",pixelRatio:2}),t=await fetch(e),n=await t.blob();await navigator.clipboard.write([new ClipboardItem({"image/png":n})]),C(!0),setTimeout(()=>C(!1),2e3)}catch(e){console.error("Failed to copy chart:",e)}},[k]),P=p(async()=>{if(S.current&&!w){N(!0);try{const e=await jn(S.current,{backgroundColor:"#ffffff",pixelRatio:2}),t=document.createElement("a");t.download=`${a||"chart"}.png`,t.href=e,t.click()}catch(e){console.error("Failed to export chart:",e)}finally{N(!1)}}},[a,w]),_=d||[],T=l||[],I=t(n,{children:[e(Pn,{dataKey:o,tick:{fontSize:12}}),e(_n,{yAxisId:"left",tickFormatter:No,label:u?.left?.label?{value:u.left.label,angle:-90,position:"insideLeft"}:void 0}),_.some(e=>"right"===e.yAxisId)&&e(_n,{yAxisId:"right",orientation:"right",tickFormatter:No,label:u?.right?.label?{value:u.right.label,angle:-90,position:"insideRight"}:void 0})]}),A=t(n,{children:[e(Tn,{strokeDasharray:"3 3"}),e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),e(An,{}),m?.referenceZero&&e(zn,{y:0,stroke:"#999",strokeDasharray:"3 3"})]}),z=()=>_.map((t,n)=>{const r=t.color||xo[n%xo.length],a=t.yAxisId||"left";return"line"===i?e(On,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,dot:t.dot??!1,yAxisId:a},t.key):"area"===i?e(Rn,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,fill:r,fillOpacity:.3,stackId:m?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):"bar"===i||"bar"===t.type?e(Un,{dataKey:t.key,name:t.label||t.key,fill:r,stackId:m?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):"area"===t.type?e(Rn,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,fill:r,fillOpacity:.3,stackId:m?.stacked?t.stackId||"stack":void 0,yAxisId:a},t.key):e(On,{type:"monotone",dataKey:t.key,name:t.label||t.key,stroke:r,dot:t.dot??!1,yAxisId:a},t.key)});return e("div",{className:"bg-white dark:bg-gray-900 rounded-lg border border-gray-200 dark:border-gray-800 shadow-sm",children:t("div",{className:"flex flex-col gap-2 p-3",children:[t("div",{className:"flex items-center justify-between",children:[e("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100",children:a||"Chart"}),t("div",{className:"flex items-center gap-2 print:hidden chart-actions",children:[t("button",{onClick:j,disabled:k,className:"text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 flex items-center gap-1",title:"Copy to clipboard",children:[e(k?Tt:dt,{className:"w-3 h-3"}),k?"Copied":"Copy"]}),t("button",{onClick:P,disabled:w,className:"text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1",title:"Export as PNG",children:[e(st,{className:"w-3 h-3"}),w?"Exporting...":"Export"]})]})]}),s&&e("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:s}),e("div",{ref:S,className:"bg-white dark:bg-gray-900 rounded",style:{width:"100%",height:280,minWidth:0},children:e(wo,{chartType:i,children:e(En,{width:"100%",height:"100%",children:(()=>{switch(i){case"bar":return t(Ln,{data:T,children:[I,A,z()]});case"line":return t($n,{data:T,children:[I,A,z()]});case"area":return t(Dn,{data:T,children:[I,A,z()]});case"composed":default:return t(Fn,{data:T,children:[I,A,z()]});case"pie":return t(Mn,{children:[e(Vn,{data:T,dataKey:g||"value",nameKey:f||"name",cx:"50%",cy:"50%",innerRadius:m?.innerRadius||0,outerRadius:100,label:!1!==m?.showLabels,children:T.map((t,n)=>e(qn,{fill:xo[n%xo.length]},`cell-${n}`))}),e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),e(An,{})]});case"scatter":return(()=>{const n=o,r=y||"y";return t(Kn,{children:[e(Tn,{strokeDasharray:"3 3"}),e(Pn,{dataKey:n,name:n,tick:{fontSize:12}}),e(_n,{dataKey:r,name:r,tickFormatter:No}),e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),e(An,{}),_.length>0?_.map((t,n)=>e(Bn,{name:t.label||t.key,data:T,fill:t.color||xo[n%xo.length]},t.key)):e(Bn,{name:"Data",data:T,fill:xo[0]})]})})();case"radar":return(()=>{const n=v||o||"axis";return t(Wn,{cx:"50%",cy:"50%",outerRadius:100,data:T,children:[e(Gn,{}),e(Hn,{dataKey:n,tick:{fontSize:11}}),e(Jn,{tickFormatter:No}),_.map((t,n)=>e(Yn,{name:t.label||t.key,dataKey:t.key,stroke:t.color||xo[n%xo.length],fill:t.color||xo[n%xo.length],fillOpacity:.3},t.key)),e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),e(An,{})]})})();case"radialBar":return(()=>{const n=f||"name",r=g||"value",i=m?.startAngle??180,a=m?.endAngle??0;return t(Zn,{cx:"50%",cy:"50%",innerRadius:m?.innerRadius??30,outerRadius:100,barSize:15,data:T,startAngle:i,endAngle:a,children:[e(Qn,{label:{position:"insideStart",fill:"#fff",fontSize:11},background:!0,dataKey:r,children:T.map((t,n)=>e(qn,{fill:xo[n%xo.length]},`cell-${n}`))}),e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),e(An,{iconSize:10,layout:"vertical",verticalAlign:"middle",align:"right",formatter:(e,t)=>{const i=T.find(i=>i[n]===e||i[r]===t.payload?.value);return i?i[n]:e}})]})})();case"funnel":return(()=>{const n=f||"name",r=g||"value";return t(Xn,{children:[e(In,{formatter:e=>"number"==typeof e?No(e):String(e)}),t(er,{dataKey:r,data:T,isAnimationActive:!0,children:[T.map((t,n)=>e(qn,{fill:xo[n%xo.length]},`cell-${n}`)),!1!==m?.showLabels&&e(tr,{position:"center",fill:"#fff",stroke:"none",dataKey:n})]})]})})();case"treemap":return e(nr,{data:T,dataKey:x||g||"value",aspectRatio:4/3,stroke:"#fff",fill:"#4f46e5",content:({x:r,y:i,width:a,height:s,name:l,value:o,index:c})=>t("g",{children:[e("rect",{x:r,y:i,width:a,height:s,style:{fill:xo[c%xo.length],stroke:"#fff",strokeWidth:2}}),a>50&&s>30&&t(n,{children:[e("text",{x:r+a/2,y:i+s/2-7,textAnchor:"middle",fill:"#fff",fontSize:12,children:l}),e("text",{x:r+a/2,y:i+s/2+10,textAnchor:"middle",fill:"#fff",fontSize:11,children:No(o)})]})]})})}})()})})})]})})},(e,t)=>JSON.stringify(e.spec)===JSON.stringify(t.spec));function Co(e){const{title:t,leftLabel:n,rightLabel:r,metrics:i,description:a,collapseInitially:s}=e;return{version:"1.0",library:"recharts",chart:"bar",title:t||"Scenario Comparison",description:a,data:i.map(e=>({label:e.label,left:e.left,right:e.right})),xKey:"label",series:[{key:"left",label:n,type:"bar"},{key:"right",label:r,type:"bar"}],yAxis:{left:{label:"Value"}},options:{stacked:!1,referenceZero:!1,collapseInitially:s}}}function So(e){const{title:t,metrics:n,description:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"bar",title:t||"Change vs. Baseline (%)",description:r,data:n.map(e=>({label:e.label,deltaPct:0!==e.left?(e.right-e.left)/e.left*100:0})),xKey:"label",series:[{key:"deltaPct",label:"% Change",type:"bar"}],yAxis:{left:{label:"% Change"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function jo(e){return["```chart",JSON.stringify(e,null,2),"```"].join("\n")}function Po(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"composed",title:t||"Cashflow Timeline",description:n,data:r.map(e=>({period:e.period,calls:e.calls,distributions:e.distributions,netCashflow:e.netCashflow??e.distributions-e.calls})),xKey:"period",series:[{key:"calls",label:"Calls",type:"bar",color:"#ef4444"},{key:"distributions",label:"Distributions",type:"bar",color:"#22c55e"},{key:"netCashflow",label:"Net Cashflow",type:"line",color:"#0ea5e9",yAxisId:"right",dot:!1}],yAxis:{left:{label:"Amount"},right:{label:"Net"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function _o(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"Performance (J‑Curve)",description:n,data:r.map(e=>({period:e.period,tvpi:e.tvpi??null,dpi:e.dpi??null,rvpi:e.rvpi??null})),xKey:"period",series:[{key:"tvpi",label:"TVPI",type:"line",color:"#4f46e5",dot:!1},{key:"dpi",label:"DPI",type:"line",color:"#16a34a",dot:!1},{key:"rvpi",label:"RVPI",type:"line",color:"#f59e0b",dot:!1}],yAxis:{left:{label:"Multiple (x)"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}function To(e){const{title:t,description:n,rows:r,leftLabel:i,rightLabel:a,collapseInitially:s}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"TVPI Over Time",description:n,data:r,xKey:"period",series:[{key:"tvpi_left",label:`TVPI – ${i}`,type:"line",color:"#4f46e5",dot:!1},{key:"tvpi_right",label:`TVPI – ${a}`,type:"line",color:"#6366f1",dot:!1}],yAxis:{left:{label:"Multiple (x)"}},options:{stacked:!1,referenceZero:!0,collapseInitially:s}}}function Io(e){const{title:t,description:n,rows:r,collapseInitially:i}=e;return{version:"1.0",library:"recharts",chart:"line",title:t||"NAV Over Time",description:n,data:r.map(e=>({period:e.period,nav:e.nav})),xKey:"period",series:[{key:"nav",label:"NAV",type:"line",color:"#0ea5e9",dot:!1}],yAxis:{left:{label:"NAV"}},options:{stacked:!1,referenceZero:!0,collapseInitially:i}}}const Ao={name:"create_chart",description:'Create an interactive chart visualization that will be rendered in the UI.\n\nIMPORTANT: You don\'t actually "call" this tool. Instead, you include a markdown code block with language "chart" in your response.\n\nCharts are created using JSON specifications in markdown code blocks:\n\n```chart\n{\n "chart": "bar|line|area|composed|pie|scatter|radar|radialBar|funnel|treemap",\n "title": "Chart Title",\n "data": [...],\n ...\n}\n```\n\n## CHART TYPES & WHEN TO USE\n\n| Type | Use Case | Data Shape |\n|------|----------|------------|\n| bar | Category comparisons | `[{x, y1, y2}]` |\n| line | Trends over time | `[{x, y1, y2}]` |\n| area | Trends with volume emphasis | `[{x, y1, y2}]` |\n| composed | Mix bars + lines | `[{x, y1, y2}]` with series.type |\n| pie | Part-to-whole (%) | `[{name, value}]` |\n| scatter | Correlation analysis | `[{x, y}]` |\n| radar | Multi-dimensional comparison | `[{axis, A, B}]` |\n| radialBar | Progress/gauges | `[{name, value}]` |\n| funnel | Conversion stages | `[{name, value}]` |\n| treemap | Hierarchical proportions | `[{name, value}]` |\n\n## EXAMPLES\n\n### Bar Chart\n```chart\n{"chart":"bar","title":"Revenue by Quarter","data":[{"quarter":"Q1","revenue":100000},{"quarter":"Q2","revenue":150000}],"xKey":"quarter","series":[{"key":"revenue","label":"Revenue"}]}\n```\n\n### Line Chart\n```chart\n{"chart":"line","title":"Performance","data":[{"period":"Q1","tvpi":1.2},{"period":"Q2","tvpi":1.5}],"xKey":"period","series":[{"key":"tvpi","label":"TVPI","color":"#4f46e5"}]}\n```\n\n### Area Chart\n```chart\n{"chart":"area","title":"Sales Volume","data":[{"month":"Jan","sales":1000},{"month":"Feb","sales":1500}],"xKey":"month","series":[{"key":"sales","label":"Sales"}],"options":{"stacked":true}}\n```\n\n### Composed Chart (Bar + Line)\n```chart\n{"chart":"composed","title":"Cashflow","data":[{"period":"Q1","calls":1000000,"net":-500000}],"xKey":"period","series":[{"key":"calls","type":"bar","color":"#ef4444"},{"key":"net","type":"line","yAxisId":"right"}],"yAxis":{"left":{"label":"Amount"},"right":{"label":"Net"}}}\n```\n\n### Pie Chart\n```chart\n{"chart":"pie","title":"Market Share","data":[{"name":"Product A","value":400},{"name":"Product B","value":300},{"name":"Product C","value":200}],"nameKey":"name","valueKey":"value"}\n```\n\n### Donut Chart (Pie with innerRadius)\n```chart\n{"chart":"pie","title":"Revenue Split","data":[{"name":"Services","value":60},{"name":"Products","value":40}],"nameKey":"name","valueKey":"value","options":{"innerRadius":50}}\n```\n\n### Scatter Chart\n```chart\n{"chart":"scatter","title":"Price vs Volume","data":[{"price":100,"volume":500},{"price":150,"volume":400}],"xKey":"price","yKey":"volume","series":[{"key":"data","label":"Products"}]}\n```\n\n### Radar Chart\n```chart\n{"chart":"radar","title":"Skills Comparison","data":[{"skill":"Speed","A":120,"B":110},{"skill":"Power","A":98,"B":130}],"axisKey":"skill","series":[{"key":"A","label":"Team A"},{"key":"B","label":"Team B"}]}\n```\n\n### RadialBar Chart (Progress)\n```chart\n{"chart":"radialBar","title":"Goal Progress","data":[{"name":"Sales","value":80},{"name":"Users","value":65}],"nameKey":"name","valueKey":"value"}\n```\n\n### Funnel Chart\n```chart\n{"chart":"funnel","title":"Conversion Funnel","data":[{"name":"Visits","value":5000},{"name":"Cart","value":2500},{"name":"Purchase","value":1000}],"nameKey":"name","valueKey":"value"}\n```\n\n### Treemap\n```chart\n{"chart":"treemap","title":"Budget Allocation","data":[{"name":"Engineering","value":500000},{"name":"Marketing","value":200000},{"name":"Sales","value":300000}],"nameKey":"name","dataKey":"value"}\n```\n\n## CONFIGURATION\n\n### Series (for bar/line/area/composed/radar)\n- key: (required) Field name in data\n- label: Display name\n- type: "bar"|"line"|"area" (composed only)\n- color: Hex color\n- yAxisId: "left"|"right"\n- dot: Show dots on lines\n\n### Keys (for pie/scatter/radar/funnel/treemap)\n- nameKey: Field for labels (default: "name")\n- valueKey: Field for values (default: "value")\n- xKey/yKey: For scatter charts\n- axisKey: For radar axis labels\n- dataKey: For treemap values\n\n### Options\n- stacked: Stack bars/areas\n- referenceZero: Show y=0 line\n- innerRadius: For donut charts (0-100)\n- showLabels: Show value labels\n- startAngle/endAngle: For radialBar\n\n## COLORS\n- Blue #4f46e5 - Primary\n- Cyan #06b6d4 - Secondary\n- Green #22c55e - Positive\n- Amber #f59e0b - Warning\n- Red #ef4444 - Negative\n- Purple #8b5cf6 - Accent\n- Pink #ec4899 - Highlight\n- Teal #14b8a6 - Alternative\n\nNumbers auto-format: 1K, 1M, 1B',input_schema:{type:"object",properties:{chart:{type:"string",enum:["bar","line","area","composed","pie","scatter","radar","radialBar","funnel","treemap"],description:"Type of chart to create"},title:{type:"string",description:"Chart title"},description:{type:"string",description:"Optional description shown below the title"},data:{type:"array",description:"Array of data objects",items:{type:"object",additionalProperties:!0}},xKey:{type:"string",description:"Field name to use for X-axis (for bar/line/area/composed/scatter)"},yKey:{type:"string",description:"Field name for Y values (for scatter charts)"},nameKey:{type:"string",description:'Field name for labels (for pie/funnel/radialBar/treemap, default: "name")'},valueKey:{type:"string",description:'Field name for values (for pie/funnel/radialBar, default: "value")'},axisKey:{type:"string",description:"Field name for radar axis labels"},dataKey:{type:"string",description:"Field name for treemap values"},series:{type:"array",description:"Array of series to plot (for bar/line/area/composed/radar)",items:{type:"object",properties:{key:{type:"string",description:"Field name in data"},label:{type:"string",description:"Display name"},type:{type:"string",enum:["bar","line","area"],description:"Series type (for composed charts)"},color:{type:"string",description:"Hex color code"},yAxisId:{type:"string",enum:["left","right"],description:"Which Y-axis to use"},dot:{type:"boolean",description:"Show dots on line (default: false)"}},required:["key"]}},yAxis:{type:"object",description:"Y-axis configuration",properties:{left:{type:"object",properties:{label:{type:"string"}}},right:{type:"object",properties:{label:{type:"string"}}}}},options:{type:"object",description:"Chart options",properties:{stacked:{type:"boolean",description:"Stack bars/areas"},referenceZero:{type:"boolean",description:"Show reference line at y=0"},collapsible:{type:"boolean",description:"Allow user to collapse chart"},collapseInitially:{type:"boolean",description:"Start collapsed"},innerRadius:{type:"number",description:"Inner radius for donut/radialBar charts (0-100)"},showLabels:{type:"boolean",description:"Show value labels on pie/funnel"},startAngle:{type:"number",description:"Start angle for radialBar (default: 180)"},endAngle:{type:"number",description:"End angle for radialBar (default: 0)"}}}},required:["chart","data"]}},zo='\n# Chart Visualization Capability\n\nYou can create interactive charts by including markdown code blocks with the language "chart".\n\n## Chart Types\n\n| Type | Use Case | Required Fields |\n|------|----------|-----------------|\n| bar | Category comparisons | xKey, series |\n| line | Trends over time | xKey, series |\n| area | Trends with volume | xKey, series |\n| composed | Mix bars + lines | xKey, series with type |\n| pie | Part-to-whole | nameKey, valueKey |\n| scatter | Correlation | xKey, yKey |\n| radar | Multi-dimensional | axisKey, series |\n| radialBar | Progress/gauges | nameKey, valueKey |\n| funnel | Conversion stages | nameKey, valueKey |\n| treemap | Hierarchical data | nameKey, dataKey |\n\n## Quick Examples\n\nBar: `{"chart":"bar","data":[{"x":"A","y":10}],"xKey":"x","series":[{"key":"y"}]}`\nPie: `{"chart":"pie","data":[{"name":"A","value":60},{"name":"B","value":40}]}`\nScatter: `{"chart":"scatter","data":[{"x":1,"y":2}],"xKey":"x","yKey":"y"}`\n\nUse charts when:\n- User requests visualization\n- 3+ data points to display\n- Visual form clarifies comparisons/trends\n\nColors: Blue #4f46e5 (primary), Green #22c55e (positive), Red #ef4444 (negative)\n';function Eo(e){if(!(e.chart&&e.data&&e.xKey&&e.series))throw new Error("Invalid chart spec: missing required fields (chart, data, xKey, series)");if(!Array.isArray(e.data))throw new Error("Invalid chart spec: data must be an array");if(!Array.isArray(e.series)||0===e.series.length)throw new Error("Invalid chart spec: series must be a non-empty array");return`\`\`\`chart\n${JSON.stringify(e,null,2)}\n\`\`\``}function Fo(e){const t=/```chart\s*\n([\s\S]*?)\n```/g,n=[];let r;for(;null!==(r=t.exec(e));)try{const e=JSON.parse(r[1]);n.push(e)}catch(e){console.warn("Failed to parse chart spec:",e)}return n}function Do({children:t,fallback:n}){return $o?e($o,{fallback:n,children:t}):e(rr,{FallbackComponent:n,children:t})}let $o=null;function Lo(e){$o=e}function Oo({children:t}){return e(Do,{fallback:Ro,children:t})}function Ro({error:n}){return t(de,{status:"error",title:"Sorry, something went wrong...",children:[t("div",{className:"mb-4",children:["Our team has been notified and will be quickly working on resolving it. If you'd like to escalate or simply contact us, please email us at ",e("a",{className:"text-info",href:"mailto:support@vertesiahq.com",children:"support@vertesiahq.com"}),"."]}),n?.message&&e("code",{className:"w-full mt-4 text-sm text-muted break-words",children:n.message})]})}function Uo({children:t}){return e(Do,{fallback:Mo,children:t})}function Mo({error:n}){return e("tr",{children:t("td",{colSpan:100,children:[e("span",{className:"text-xs",children:" Cannot display row"}),e("br",{}),e("span",{className:"bg-gray-400",children:n?.message})]})})}function Vo({children:t}){return e(Do,{fallback:qo,children:t})}function qo({error:n}){return console.log("WidgetError",n),t("div",{className:"text-sm",children:["Sorry, this area cannot be loaded or rendered.",n?.message&&e("pre",{children:n.message})]})}function Ko({className:n,children:i,title:a,description:s,actions:l,breadcrumbs:o,isCompact:c=!1,useDynamicBreadcrumbs:d=!0}){const u=Xt();function m(e){return e.replace(/[-_]/g," ").split(" ").map(e=>ir(e)).join(" ")}const h=e=>{const t=e?.href||"";if(!t)return"Page";const n=t.split("#")[0].split("?")[0].split("/").filter(e=>e.length>0);if(3===n.length){if(e.title!==document.title&&e.title)return e.title;return`${m(n[1])} Detail (...${n[2].slice(-6)})`}return n.length>=2?m(n[n.length-1]):1===n.length?m(n[0]):"Page"},p=(()=>{const e=[];if(d&&"undefined"!=typeof window&&window.history.state?.historyChain){const t=window.history.state.historyChain;t.forEach((n,r)=>{const i=t.length-r;e.push({label:h(n),href:n.href,onClick:()=>u(n.href,{stepsBack:i})})})}return o&&o.length>0&&o.forEach(t=>{const n="string"==typeof t?.props?.children?t.props.children:"Page";e.push(t?.props?.href?{href:t?.props?.href,label:n,onClick:()=>u(t.props.href,{replace:t.props.clearBreadcrumbs})}:{label:n})}),e})();return t("div",{className:r(c?"pb-0":"pb-2","p-4 flex flex-col",n),children:[t("div",{className:"flex items-start gap-4",children:[t("div",{className:"w-full flex place-content-between h-auto min-h-8 flex-col items-start",children:[e("nav",{className:"flex-1 flex justify-start text-xs",children:p.length>0&&e($e,{path:p,separator:e(Ct,{className:"w-3.5 h-3.5"}),maxItems:4})}),t("div",{className:"flex gap-2 items-center",children:[e("h1",{className:"text-xl font-semibold break-all",children:a}),s&&e(O,{description:s,children:e(Ue,{className:"size-4 text-muted"})})]})]}),e("div",{className:"flex gap-x-2 shrink-0",children:l})]}),i&&e("div",{className:"w-full flex items-center",children:i})]})}function Bo({}){return t("div",{className:"text-center pt-32",children:[e("h1",{className:"text-3xl font-bold text-red-500",children:"404"}),e("p",{className:"text-2xl",children:"Page Not Found"})]})}function Wo(...e){const t=Array.from(e);return t.__AnyOf__=!0,t}function Go(...e){return Array.from(e)}function Ho(e){return!0===e.__AnyOf__}class Jo{system_roles;roles;permissions;constructor(e,t){if(!e.authToken)throw new Error("No auth token found in user session");this.system_roles=t;const n=new Set(e.authToken.account_roles||[]);if(e.authToken.project_roles)for(const t of e.authToken.project_roles)n.add(t);this.roles=n;const r={};for(const e of t)r[e.name]=e.permissions;const i=new Set;for(const e of n){const t=r[e];if(t)for(const e of t)i.add(e)}this.permissions=i}hasPermission(e){if("string"==typeof e)return this.permissions.has(e);if(Ho(e))return e.some(e=>this.permissions.has(e));for(const t of e)if(!this.permissions.has(t))return!1;return!0}}const Yo=u(void 0);function Zo(){const e=m(Yo);if(!e)throw new Error("UserPermissionContext cannot be used outside UserPermissionProvider");return e}function Qo({children:t}){const n=$t(),{data:r,error:i,isLoading:a}=R(()=>n.user?n.client.iam.roles.list():Promise.resolve(void 0),[n.user]),s=o(()=>n.authToken&&r&&!a?new Jo(n,r):void 0,[n,r,a]);return i?e(U,{title:"Failed to fetch role mappings",children:i.message}):s&&e(Yo.Provider,{value:s,children:t})}function Xo({permission:t,isDisabled:n,title:r,children:i,...a}){return Zo().hasPermission(t)||(n=!0,r="You do not have permission to perform this action"),e(x,{isDisabled:n,title:r,...a,children:i})}function ec({permission:t,...n}){return Zo().hasPermission(t)?e(ar,{...n}):null}function tc({user:n}){return t("div",{className:"flex items-center",children:[e("div",{className:"w-9 h-9",children:(()=>{if(n.picture)return e("img",{className:"inline-block h-9 w-9 rounded-full",src:n.picture,alt:n.name});{const t=n.name.split(" ").map(e=>e[0]).join("");return e("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-full bg-indigo-600",children:e("span",{className:"text-sm font-medium leading-none text-white",children:t})})}})()}),t("div",{className:"ml-3",children:[e("p",{className:"text-sm font-medium text-gray-700 dark:text-slate-50 group-hover:text-gray-900",children:n.name??"Deleted User"}),e("p",{className:"text-xs font-medium text-gray-500 dark:text-slate-300 group-hover:text-gray-700",children:n.email??"Deleted User"})]})]})}export{cr as ActivitiesDoc,ur as ActivityDoc,ro as AddToCollectionAction,no as AddToCollectionActionComponent,ko as AgentChart,us as AgentRunnerFacetsNav,Go as AllOf,vr as AnimatedThinkingDots,Wo as AnyOf,Ma as ApiKeyAvatar,ll as BrowseCollectionView,Dl as ChangeTypeAction,Fl as ChangeTypeActionComponent,os as CollectionsFacetsNav,ml as CollectionsTable,Rr as ContentDispositionButton,Nl as ContentObjectTypesSearch,pl as ContentObjectTypesTable,sa as ContentOverview,dl as CreateCollectionForm,ul as CreateCollectionModal,xl as CreateOrUpdateTypeModal,Ol as DeleteObjectsAction,Ll as DeleteObjectsActionComponent,Rl as DeleteObjectsFromCollectionsAction,ks as DocumentGridView,xa as DocumentIcon,va as DocumentIconSkeleton,Bs as DocumentInput,Gs as DocumentPreviewPanel,Cs as DocumentSearch,Rs as DocumentSearchProvider,el as DocumentSearchResults,Xs as DocumentSearchResultsWithDropZone,ms as DocumentSelection,gs as DocumentSelectionProvider,$s as DocumentTable,ws as DocumentTableColumn,Ns as DocumentTableView,Es as DocumentUploadModal,Xa as DocumentsFacetsNav,Tl as EditCollectionView,Ka as EnvironmentFacet,Ml as ExportPropertiesAction,Ul as ExportPropertiesComponent,il as ExportPropertiesModal,rl as ExportTypes,Is as FileUploadAction,Ko as GenericPageNavHeader,ns as InteractionsFacetsNav,br as JumpingDots,Gi as MagicPdfView,go as ModernAgentConversation,Bo as NotFoundView,kl as ObjectSchemaEditor,fl as ObjectTypeSearch,gl as ObjectTypeSearchContext,Sl as ObjectTypeSearchProvider,Jl as ObjectsActionContext,Zl as ObjectsActionContextProvider,Oo as PanelErrorBoundary,zr as PayloadBuilder,Fr as PayloadBuilderProvider,Er as PayloadContext,yi as PdfDocumentRenderer,ci as PdfPageRenderer,xi as PdfPageSlider,gi as PdfThumbnailList,as as PromptsFacetsNav,li as PropertiesEditorModal,xr as PulsatingCircle,Nr as PulsingMessageLoader,ql as RemoveFromCollectionAction,Vl as RemoveFromCollectionActionComponent,Uo as RowErrorBoundary,Ga as RunsFacetsNav,si as SaveVersionConfirmModal,Ss as SearchContext,Xo as SecureButton,ec as SecureSidebarItem,Al as SelectCollection,cl as SelectContentType,jl as SelectContentTypeModal,Ms as SelectDocument,qs as SelectDocumentModal,so as SelectionActions,ui as SharedPdfProvider,zl as SharedPropsEditor,pi as SimplePdfPage,Ji as SimplePdfViewer,Bl as StartWorkflowAction,Kl as StartWorkflowComponent,ka as StringFacet,Ca as StringListFacet,El as SyncMemberHeadsToggle,Pl as TableLayoutEditor,kr as ThinkingBar,Sr as ThinkingMessages,ja as TypeFacet,wr as TypedDots,oo as UploadObjectsButton,tc as UserAvatar,La as UserInfo,Qo as UserPermissionProvider,Jo as UserPermissions,Yo as UserPermissionsContext,Pa as VStringFacet,_a as VTypeFacet,qa as VUserFacet,Do as VertesiaErrorBoundary,Cr as WavyThinking,Vo as WidgetErrorBoundary,Ya as WorkflowExecutionsFacetsNav,Po as buildCashflowComposedChart,Eo as buildChartSpec,Io as buildNavLineChart,_o as buildPerformanceLineChart,Co as buildScenarioComparisonBarChart,So as buildScenarioDeltaPercentChart,To as buildTvpiOverlayChart,zo as chartSystemPromptAddition,hl as collectionIcon,Ao as createChartToolDefinition,Fo as extractChartSpecs,ri as getWorkflowStatusColor,ii as getWorkflowStatusName,Ho as isAnyOf,Gr as isCsv,Hr as isImage,Jr as isPdf,Zr as isPreviewableAsPdf,Yr as isVideo,ni as printElementToPdf,ti as retrieveRendition,Lo as setErrorBoundaryComponent,Ur as shortId,Mr as shortenString,_l as stringifyTableLayout,jo as toChartMarkdown,cs as useAgentRunnerFilterGroups,ds as useAgentRunnerFilterHandler,ss as useCollectionsFilterGroups,ls as useCollectionsFilterHandler,Za as useDocumentFilterGroups,Qa as useDocumentFilterHandler,js as useDocumentSearch,Ts as useDocumentSearchCount,ps as useDocumentSelection,Fs as useDocumentUploadHandler,Ws as useDownloadDocument,za as useFetchGroupInfo,Aa as useFetchUserInfo,es as useInteractionsFilterGroups,ts as useInteractionsFilterHandler,eo as useObjectsActionCallback,Xl as useObjectsActionContext,fs as useOptionalDocumentSelection,Dr as usePayloadBuilder,rs as usePromptsFilterGroups,is as usePromptsFilterHandler,Ba as useRunsFilterGroups,Wa as useRunsFilterHandler,yl as useSearch,vl as useSearchCount,mi as useSharedPdf,zs as useSmartFileUploadProcessing,to as useStartWorkflowCallback,Zo as useUserPermissions,Ps as useWatchDocumentSearchFacets,_s as useWatchDocumentSearchResult,bl as useWatchSearchResult,Ha as useWorkflowExecutionsFilterGroups,Ja as useWorkflowExecutionsFilterHandler};
|
|
2
2
|
//# sourceMappingURL=vertesia-ui-features.js.map
|