@flexkit/studio 0.2.20 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/activity-nav-button-7RLCHOFV.js +2 -0
  2. package/dist/{activity-nav-button-V5DFHADL.js.map → activity-nav-button-7RLCHOFV.js.map} +1 -1
  3. package/dist/astro.js +1 -1
  4. package/dist/chat-page-WLKJ3QNZ.js +4 -0
  5. package/dist/chat-page-WLKJ3QNZ.js.map +1 -0
  6. package/dist/{chunk-D5WYD5M4.js → chunk-4LVMCUHR.js} +2 -2
  7. package/dist/{chunk-D5WYD5M4.js.map → chunk-4LVMCUHR.js.map} +1 -1
  8. package/dist/{chunk-ME55YNBF.js → chunk-4PUMSUJL.js} +2 -2
  9. package/dist/{chunk-ME55YNBF.js.map → chunk-4PUMSUJL.js.map} +1 -1
  10. package/dist/{chunk-B7QMGBK5.js → chunk-6AI7322C.js} +3 -3
  11. package/dist/{chunk-B7QMGBK5.js.map → chunk-6AI7322C.js.map} +1 -1
  12. package/dist/{chunk-BMX4URYN.js → chunk-7ERLYAPR.js} +2 -2
  13. package/dist/{chunk-BMX4URYN.js.map → chunk-7ERLYAPR.js.map} +1 -1
  14. package/dist/chunk-7KLXWCDS.js +3 -0
  15. package/dist/chunk-7KLXWCDS.js.map +1 -0
  16. package/dist/chunk-BM7INZL3.js +3 -0
  17. package/dist/chunk-BM7INZL3.js.map +1 -0
  18. package/dist/chunk-ELOJGLAR.js +2 -0
  19. package/dist/chunk-ELOJGLAR.js.map +1 -0
  20. package/dist/{chunk-GFAOY74A.js → chunk-GGC75EMC.js} +2 -0
  21. package/dist/{chunk-HLHLBMLJ.js → chunk-HBTMGDOM.js} +2 -2
  22. package/dist/{chunk-HLHLBMLJ.js.map → chunk-HBTMGDOM.js.map} +1 -1
  23. package/dist/{chunk-MKK65RQB.js → chunk-HGXYSP47.js} +5 -5
  24. package/dist/{chunk-MKK65RQB.js.map → chunk-HGXYSP47.js.map} +1 -1
  25. package/dist/chunk-HKN6BX5U.js +2 -0
  26. package/dist/chunk-HKN6BX5U.js.map +1 -0
  27. package/dist/chunk-JIB4PRLH.js +3 -0
  28. package/dist/chunk-JIB4PRLH.js.map +1 -0
  29. package/dist/{chunk-2P2QV3K6.js → chunk-K2KW6UYG.js} +2 -2
  30. package/dist/{chunk-2P2QV3K6.js.map → chunk-K2KW6UYG.js.map} +1 -1
  31. package/dist/{chunk-ZZRA4567.js → chunk-LIMXKPEK.js} +2 -2
  32. package/dist/{chunk-ZZRA4567.js.map → chunk-LIMXKPEK.js.map} +1 -1
  33. package/dist/chunk-MHVZXDVL.js +2 -0
  34. package/dist/{chunk-BXN72PW2.js.map → chunk-MHVZXDVL.js.map} +1 -1
  35. package/dist/chunk-MLHXPTBT.js +2 -0
  36. package/dist/chunk-MLHXPTBT.js.map +1 -0
  37. package/dist/{chunk-UOR437J2.js → chunk-QCVQJN5O.js} +2 -2
  38. package/dist/{chunk-UOR437J2.js.map → chunk-QCVQJN5O.js.map} +1 -1
  39. package/dist/{chunk-F2DT6NRK.js → chunk-QTFFVG7C.js} +2 -2
  40. package/dist/{chunk-F2DT6NRK.js.map → chunk-QTFFVG7C.js.map} +1 -1
  41. package/dist/chunk-RPLKJVDQ.js +7 -0
  42. package/dist/{chunk-NYSQU73M.js.map → chunk-RPLKJVDQ.js.map} +1 -1
  43. package/dist/{chunk-RY6PECIT.js → chunk-SE4HJCGA.js} +2 -2
  44. package/dist/{chunk-RY6PECIT.js.map → chunk-SE4HJCGA.js.map} +1 -1
  45. package/dist/{chunk-DHVKE36X.js → chunk-SY67F62K.js} +3 -3
  46. package/dist/{chunk-DHVKE36X.js.map → chunk-SY67F62K.js.map} +1 -1
  47. package/dist/chunk-UCHWUGRT.js +378 -0
  48. package/dist/chunk-UCHWUGRT.js.map +1 -0
  49. package/dist/{chunk-JWBER5NX.js → chunk-UJEDL3IZ.js} +2 -2
  50. package/dist/{chunk-JWBER5NX.js.map → chunk-UJEDL3IZ.js.map} +1 -1
  51. package/dist/chunk-YXUEPR7K.js +4 -0
  52. package/dist/{chunk-LK67JOQA.js.map → chunk-YXUEPR7K.js.map} +1 -1
  53. package/dist/electron.js +1 -1
  54. package/dist/{entry-XVLXKEQV.js → entry-GWZ7DELK.js} +2 -2
  55. package/dist/{entry-XVLXKEQV.js.map → entry-GWZ7DELK.js.map} +1 -1
  56. package/dist/index.css +21 -0
  57. package/dist/index.js +10 -8
  58. package/dist/index.js.map +1 -1
  59. package/dist/list-FQZII7QD.js +3 -0
  60. package/dist/{list-4OJMI4CB.js.map → list-FQZII7QD.js.map} +1 -1
  61. package/dist/list-LMIKCT2W.js +2 -0
  62. package/dist/{list-RABV2F3H.js.map → list-LMIKCT2W.js.map} +1 -1
  63. package/dist/nextjs.js +1 -1
  64. package/dist/{pages-7LWBCW2X.js → pages-NKE7FV34.js} +3 -3
  65. package/dist/{pages-7LWBCW2X.js.map → pages-NKE7FV34.js.map} +1 -1
  66. package/dist/plugin-pages-4HTADSK3.js +2 -0
  67. package/dist/{plugin-pages-PQWTH7P5.js.map → plugin-pages-4HTADSK3.js.map} +1 -1
  68. package/dist/record-links-FDWV4X5W.js +2 -0
  69. package/dist/{record-links-BFHPBOAL.js.map → record-links-FDWV4X5W.js.map} +1 -1
  70. package/dist/{root-COI626G2.js → root-GYJGAS22.js} +2 -2
  71. package/dist/{root-COI626G2.js.map → root-GYJGAS22.js.map} +1 -1
  72. package/dist/root-OSXC52GL.js +2 -0
  73. package/dist/{root-PDSTTPHO.js.map → root-OSXC52GL.js.map} +1 -1
  74. package/dist/root-VL4EM2IS.js +23 -0
  75. package/dist/{root-FTT4XDCE.js.map → root-VL4EM2IS.js.map} +1 -1
  76. package/dist/{root-RXMRNU4M.js → root-X3V4NC2D.js} +2 -2
  77. package/dist/{root-RXMRNU4M.js.map → root-X3V4NC2D.js.map} +1 -1
  78. package/dist/root-YDHREGTF.js +14 -0
  79. package/dist/root-YDHREGTF.js.map +1 -0
  80. package/dist/{root-BS6QCYLO.js → root-ZYUSZZWR.js} +3 -3
  81. package/dist/{root-BS6QCYLO.js.map → root-ZYUSZZWR.js.map} +1 -1
  82. package/dist/{search-VPS2UHPQ.js → search-UW7WE2CS.js} +2 -2
  83. package/dist/{search-VPS2UHPQ.js.map → search-UW7WE2CS.js.map} +1 -1
  84. package/dist/skills-pages-Q4YSUQVZ.js +2 -0
  85. package/dist/skills-pages-Q4YSUQVZ.js.map +1 -0
  86. package/dist/source-PGSWL4DQ.js +2 -0
  87. package/dist/{source-MNHZQD4T.js.map → source-PGSWL4DQ.js.map} +1 -1
  88. package/dist/tanstack-start.js +1 -1
  89. package/dist/{user-nav-36ACWXOW.js → user-nav-B37OEVQN.js} +2 -2
  90. package/dist/{user-nav-36ACWXOW.js.map → user-nav-B37OEVQN.js.map} +1 -1
  91. package/package.json +9 -6
  92. package/dist/activity-nav-button-V5DFHADL.js +0 -2
  93. package/dist/chat-page-4G4XQ26P.js +0 -4
  94. package/dist/chat-page-4G4XQ26P.js.map +0 -1
  95. package/dist/chunk-2HYQVMP3.js +0 -3
  96. package/dist/chunk-2HYQVMP3.js.map +0 -1
  97. package/dist/chunk-445XKMAG.js +0 -379
  98. package/dist/chunk-445XKMAG.js.map +0 -1
  99. package/dist/chunk-A7XHA2P6.js +0 -3
  100. package/dist/chunk-A7XHA2P6.js.map +0 -1
  101. package/dist/chunk-BMO7JFAX.js +0 -2
  102. package/dist/chunk-BMO7JFAX.js.map +0 -1
  103. package/dist/chunk-BXN72PW2.js +0 -2
  104. package/dist/chunk-LK67JOQA.js +0 -4
  105. package/dist/chunk-NYSQU73M.js +0 -7
  106. package/dist/list-4OJMI4CB.js +0 -3
  107. package/dist/list-RABV2F3H.js +0 -2
  108. package/dist/plugin-pages-PQWTH7P5.js +0 -2
  109. package/dist/record-links-BFHPBOAL.js +0 -2
  110. package/dist/root-FTT4XDCE.js +0 -23
  111. package/dist/root-PDSTTPHO.js +0 -2
  112. package/dist/root-TZYOIXVG.js +0 -2
  113. package/dist/root-TZYOIXVG.js.map +0 -1
  114. package/dist/skills-pages-G6JK7KKQ.js +0 -2
  115. package/dist/skills-pages-G6JK7KKQ.js.map +0 -1
  116. package/dist/source-MNHZQD4T.js +0 -2
@@ -1,7 +0,0 @@
1
- import'./index.css';import {b}from'./chunk-CAZ6EUR2.js';import {b as b$2}from'./chunk-2DXR5NJV.js';import {u,o,p}from'./chunk-445XKMAG.js';import {g as g$1,b as b$5}from'./chunk-2HYQVMP3.js';import {Tc,Uc,Vc,$,aa,da,ea,ba,fa,o as o$1}from'./chunk-DGIY4SKN.js';import {e,g,h,j}from'./chunk-SZEGGBOC.js';import {c as c$1,h as h$1,i,k,l,b as b$4}from'./chunk-32ZU4MLE.js';import {a,b as b$3,c,d,e as e$1}from'./chunk-USNXQOMJ.js';import {b as b$1}from'./chunk-6NRQMG26.js';import {a as a$1}from'./chunk-O2QMYUPS.js';import {AlertCircle,X,ChevronDown,ArrowUp,ArrowDown,Star,CircleCheck,CircleX,Check,Copy}from'lucide-react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useRef,useState,useEffect,useCallback,useMemo}from'react';import {useReactTable,getSortedRowModel,getPaginationRowModel,getFilteredRowModel,getCoreRowModel,flexRender}from'@tanstack/react-table';import {useVirtualizer}from'@tanstack/react-virtual';import {gql}from'@apollo/client';import {useMutation}from'@apollo/client/react';import {getText,getSchema,getTextSerializersFromSchema}from'@tiptap/core';import {Node}from'@tiptap/pm/model';import {TiptapLink,TiptapImage,UploadImagesPlugin,TaskList,TaskItem,HorizontalRule,StarterKit,CodeBlockLowlight,Youtube,Twitter,Mathematics,CharacterCount,Placeholder,AIHighlight,TiptapUnderline,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle}from'novel';import {Markdown}from'tiptap-markdown';import {cx}from'class-variance-authority';import {createLowlight,common}from'lowlight';import {defaultStyles,FileIcon}from'react-file-icon';import {isValid,format}from'date-fns';function Xr(){return jsxs(Tc,{variant:"destructive",children:[jsx(AlertCircle,{className:"fk:h-4 fk:w-4"}),jsx(Uc,{children:"Project Paused"}),jsxs(Vc,{children:["This project has been paused. To troubleshoot this error, please"," ",jsx("a",{className:"fk:text-blue-500 fk:underline",href:"https://flexkit.io/docs/errors/project-paused",target:"_blank",rel:"noopener noreferrer",children:"follow these steps"}),"."]})]})}function Kr(){let{schemaErrorMessage:e}=u();if(!e)return jsx(Fragment,{});let[t,n,...r]=e.split(`
2
- `);return jsxs(Tc,{className:"fk:mb-4",variant:"destructive",children:[jsx(AlertCircle,{className:"fk:h-4 fk:w-4"}),jsx(Uc,{children:"Schema mismatch"}),jsxs(Vc,{children:[jsx("p",{children:t}),n?jsx("p",{className:"fk:mt-1",children:n}):null,r.length>0?jsx("ul",{className:"fk:mt-2 fk:list-disc fk:pl-4",children:r.map(o=>jsx("li",{children:o.replace(/^- /,"")},o))}):null]})]})}function lt({scrollHeight:e,scrollTop:t,clientHeight:n}){if(n<=0)return false;let r=t>0?Math.max(600,n):1;return e-t-n<r}var ln=36,cn=15,fn=2,ut=40;function pt(e){if(!e)return;let t=e.split(/\s+/);if(t.includes("fk:h-20"))return 80;if(t.includes("fk:h-10"))return 40;if(t.includes("fk:h-9"))return 36}function un(e,t){return e??pt(t)??ln}function lo({classNames:e,columns:t,data:n,entityName:r,hasMore:o=false,initialSelectionState:l,isLoadingMore:s=false,onEntitySelectionChange:b$1,onLoadMore:u$1,onScroll:k,onSortingChange:S,pageSize:M,rowHeightEstimate:g,rowAdditionState:i,rowDeletionState:T,scrollToTopKey:X,sorting:de,toolbarComponent:j}){let y=useRef(null),{schemaErrorMessage:N}=u(),[C,me]=useState(l??{}),[Ot,Ut]=useState({}),[zt,Bt]=useState([]),[Xt,jt]=useState([]),$t=de??Xt;useEffect(()=>{y.current?.scrollTo({top:0,left:0});},[r,X]),useEffect(()=>{if(!l)return;let a=Object.keys(C).sort().join(","),c=Object.keys(l).sort().join(",");a!==c&&me(l);},[l,C]);function Jt(a){if(S){S(a);return}jt(a);}let V=useReactTable({data:n,columns:t,state:{sorting:$t,columnVisibility:Ot,rowSelection:C,columnFilters:zt},initialState:{pagination:{pageSize:M??50}},enableRowSelection:true,onRowSelectionChange:Kt,onSortingChange:Jt,onColumnFiltersChange:Bt,onColumnVisibilityChange:Ut,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getRowId:a=>a._id,manualFiltering:true,manualPagination:true,manualSorting:true,meta:{getRowBackground:a=>mn(a,T,i)}}),{rows:$$1}=V.getRowModel(),Pe=un(g,e?.row),qt=pt(e?.row)!=null,Le=useVirtualizer({count:$$1.length,estimateSize:()=>Pe,getItemKey:a=>$$1[a]?.id??a,getScrollElement:()=>y.current,overscan:cn,scrollMargin:ut}),F=V.getVisibleLeafColumns(),Ie=V.getHeaderGroups(),R=Ie.length===1,K=useVirtualizer({horizontal:true,count:F.length,estimateSize:a=>F[a].getSize(),getItemKey:a=>F[a].id,getScrollElement:()=>y.current,overscan:fn,enabled:R}),Gt=JSON.stringify(F.map(a=>[a.id,a.getSize()]));useEffect(()=>{K.measure();},[Gt,K]);let H=K.getVirtualItems(),W=R?H[0]?.index??0:0,_e=R?(H[H.length-1]?.index??-1)+1:F.length,Y=R?H[0]?.start??0:0,Q=R?Math.max(0,K.getTotalSize()-(H[H.length-1]?.end??0)):0,Ve=Le.getVirtualItems(),{paddingTop:Fe,paddingBottom:He}=dn(Ve,Le.getTotalSize(),ut),pe=useRef(u$1),Oe=useRef(o),ge=useRef(s);pe.current=u$1,Oe.current=o,ge.current=s;let ke=useCallback(a=>{if(!pe.current||!Oe.current||ge.current)return;let c=a??y.current;c&&lt(c)&&(ge.current=true,pe.current());},[]),Ue=b();useEffect(()=>{Ue&&ke();},[ke,$$1.length,o,s,Ue]);function Kt(a){let c=Object.keys(typeof a=="function"?a(C):a);me(a),b$1?.(c);}function Wt(a){k?.(a),ke(a.currentTarget);}return N?jsx(Fragment,{}):jsxs("div",{className:a$1("fk:flex fk:h-full fk:min-h-0 fk:w-full fk:min-w-0 fk:flex-col fk:gap-4",e?.wrapper),children:[j&&j(V),jsx("div",{className:"fk:relative fk:min-h-0 fk:min-w-0 fk:flex-1 fk:-mb-px",children:jsx(a,{delayDuration:400,children:jsxs($,{className:a$1("fk:grid fk:pb-20",e?.table),"aria-colcount":F.length,style:{minWidth:V.getTotalSize()},containerClassName:e?.tableContainer,onScroll:Wt,ref:y,children:[jsx(aa,{className:"fk:sticky fk:top-0 fk:z-20 fk:grid",children:Ie.map(a=>jsxs(da,{className:"fk:flex fk:w-full",children:[Y>0?jsx(le,{width:Y,header:true}):null,(R?a.headers.slice(W,_e):a.headers).map((c,P)=>jsxs(ea,{"aria-colindex":R?W+P+1:void 0,className:a$1("fk:flex fk:shrink-0 fk:items-center",c.column.id==="actions"&&"fk:pl-0"),colSpan:c.colSpan,style:c.getSize()?{width:`${c.getSize().toString()}px`}:{},children:[c.isPlaceholder?null:flexRender(c.column.columnDef.header,c.getContext()),s?jsx("div",{"aria-hidden":true,className:"fk:pointer-events-none fk:absolute fk:top-10.25 fk:right-px fk:left-px fk:z-20 fk:h-0.5 fk:overflow-hidden fk:opacity-4",children:jsx("div",{className:"fk:animate-progress fk:h-full fk:w-full fk:bg-foreground"})}):null]},c.id)),Q>0?jsx(le,{width:Q,header:true}):null]},a.id))}),jsx(ba,{className:"fk:grid fk:relative",children:$$1.length===0?jsx(da,{children:jsx(fa,{className:"fk:h-24 fk:text-center",colSpan:t.length,children:"No results."})}):jsxs(Fragment,{children:[Fe>0?jsx(dt,{height:Fe}):null,Ve.map(a=>{let c=$$1[a.index];return jsxs(da,{className:a$1(V.options.meta.getRowBackground(c),"fk:flex fk:w-full fk:overflow-hidden fk:transition-none",!qt&&g==null&&"fk:h-9",e?.row),"data-index":a.index,"data-state":c.getIsSelected()&&"selected",style:{height:`${Pe.toString()}px`},children:[Y>0?jsx(le,{width:Y}):null,c.getVisibleCells().slice(W,_e).map((P,Yt)=>jsx(fa,{className:a$1("fk:flex fk:shrink-0 fk:items-center fk:truncate",P.column.id==="actions"&&"fk:pl-1!"),"aria-colindex":W+Yt+1,style:{width:P.column.getSize()},children:flexRender(P.column.columnDef.cell,P.getContext())},P.id)),Q>0?jsx(le,{width:Q}):null]},a.key)}),He>0?jsx(dt,{height:He}):null]})})]})})})]})}function dn(e,t,n){if(e.length===0)return {paddingTop:0,paddingBottom:0};let r=e[0]?.start??0,o=e[e.length-1]?.end??0;return {paddingTop:Math.max(0,r-n),paddingBottom:Math.max(0,t-(o-n))}}function le({width:e,header:t=false}){return jsx(t?"th":"td",{"aria-hidden":true,style:{width:e,flexShrink:0,padding:0,border:0}})}function dt({height:e}){return jsx("tr",{"aria-hidden":true,className:"fk:pointer-events-none fk:border-0",style:{display:"block",height:`${e.toString()}px`},children:jsx("td",{className:"fk:p-0 fk:border-0"})})}function mn(e,t,n){return t?.includes(e.original._id)?"fk:bg-row-removed fk:hover:bg-row-removed-hover":n?.some(r=>r._id===e.original._id)?"fk:bg-row-added fk:hover:bg-row-added-hover":""}function po({table:e}){let[t]=e.getState().sorting;if(!t)return null;let r=e.getColumn(t.id)?.columnDef.meta?.label??t.id,o=t.desc?"desc":"asc";return jsxs(b$1,{"aria-label":`Clear sorting by ${r}`,className:"fk:h-8 fk:px-2 fk:lg:px-3 fk:text-success fk:border-none",onClick:()=>{e.resetSorting();},size:"sm",variant:"outline",children:["Sorted by ",r," ",o,jsx(X,{className:"fk:ml-1 fk:h-4 fk:w-4"})]})}function So(){let[e,t]=useState(false),[n,r]=useState(gql`
3
- mutation updateEntity($any: Any) {
4
- any
5
- }
6
- `),[o$1,l]=useState({}),[s,{data:b,loading:u,error:k}]=useMutation(n,o$1),S=o(k),{isProjectDisabled:M,isProjectReadOnly:g}=(()=>{if(S?.statusCode===403){let i=p(S.bodyText);if(i&&typeof i.code=="string"){if(i.code==="PROJECT_PAUSED")return {isProjectDisabled:true,isProjectReadOnly:false};if(i.code==="READ_ONLY_MODE")return {isProjectDisabled:false,isProjectReadOnly:true}}return {isProjectDisabled:true,isProjectReadOnly:false}}return {isProjectDisabled:false,isProjectReadOnly:false}})();return useEffect(()=>{e&&(s(),t(false));},[e,s]),[t,r,l,{data:b,loading:u,error:k,isProjectDisabled:M,isProjectReadOnly:g}]}function Se({column:e$1,title:t,className:n}){if(!e$1.getCanSort())return jsx("div",{className:a$1("fk:flex fk:items-center",n),children:t});let r=e$1.getIsSorted()==="asc",o=e$1.getIsSorted()==="desc";return jsxs("div",{className:a$1("fk:flex fk:w-full fk:items-center fk:justify-between fk:gap-1",n),children:[jsx("span",{className:"fk:truncate",children:t}),jsxs(e,{children:[jsx(g,{asChild:true,children:jsx("button",{"aria-label":`Sort ${t}`,className:"fk:inline-flex fk:shrink-0 fk:items-center fk:justify-center fk:rounded-sm fk:p-0.5 fk:text-muted-foreground fk:outline-hidden fk:hover:bg-accent fk:hover:text-accent-foreground fk:focus-visible:ring-1 fk:focus-visible:ring-ring fk:corner-squircle",type:"button",children:jsx(ChevronDown,{className:"fk:h-3.5 fk:w-3.5"})})}),jsxs(h,{align:"end",className:"fk:w-44",children:[jsxs(j,{"aria-checked":r,className:a$1(r&&"fk:bg-accent fk:text-accent-foreground"),onSelect:()=>{if(r){e$1.clearSorting();return}e$1.toggleSorting(false);},role:"menuitemcheckbox",children:[jsx(ArrowUp,{className:a$1("fk:h-4 fk:w-4",r&&"fk:text-white")}),"Sort Ascending"]}),jsxs(j,{"aria-checked":o,className:a$1(o&&"fk:bg-accent fk:text-accent-foreground"),onSelect:()=>{if(o){e$1.clearSorting();return}e$1.toggleSorting(true);},role:"menuitemcheckbox",children:[jsx(ArrowDown,{className:a$1("fk:h-4 fk:w-4",o&&"fk:text-white")}),"Sort Descending"]})]})]})]})}function xe({value:e}){return jsx("div",{className:"fk:flex fk:w-full fk:justify-center",children:e?jsx(CircleCheck,{className:"fk:w-4 fk:h-4 fk:text-emerald-500"}):jsx(CircleX,{className:"fk:w-4 fk:h-4 fk:text-muted-foreground"})})}var ht=500,En=3e3;function w({value:e}){let t=useRef(null),n=useRef(null),[r,o]=useState(false),[l,s]=useState(false);useEffect(()=>()=>{n.current&&clearTimeout(n.current);},[]);function b(){let g=t.current;return g?g.scrollWidth>g.clientWidth:false}async function u(g){if(g.preventDefault(),g.stopPropagation(),!!e){try{await navigator.clipboard.writeText(e);}catch{return}o(true),s(true),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{o(false),s(false);},En);}}function k(){b();}function S(g){if(!r){if(g){s(b());return}s(false);}}if(!e)return jsx("div",{className:"fk:truncate"});let M=e.length>ht?`${e.slice(0,ht)}\u2026`:e;return jsxs(b$3,{open:l,onOpenChange:S,children:[jsx(c,{asChild:true,children:jsxs("button",{"aria-label":"Copy value",className:a$1("fk:group/copyable fk:relative fk:flex fk:w-full fk:min-w-0 fk:items-center fk:rounded-sm fk:border-0 fk:bg-transparent fk:px-0.5 fk:-mx-0.5 fk:py-0.5 fk:text-left fk:text-inherit fk:font-inherit fk:corner-squircle","fk:cursor-pointer fk:transition-[transform,background-color] fk:duration-75 fk:ease-out","fk:hover:bg-muted/50 fk:active:translate-y-px fk:active:scale-[0.98] fk:active:bg-muted/70","fk:focus-visible:outline-hidden fk:focus-visible:ring-1 fk:focus-visible:ring-ring"),onClick:u,onPointerEnter:k,type:"button",children:[jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate fk:pr-4",ref:t,children:e}),jsx("span",{"aria-hidden":true,className:a$1("fk:pointer-events-none fk:absolute fk:right-0.5 fk:top-1/2 fk:flex fk:-translate-y-1/2 fk:items-center fk:justify-center","fk:rounded-sm fk:bg-muted/80 fk:p-0.5 fk:text-muted-foreground fk:shadow-sm fk:ring-1 fk:ring-border/60 fk:corner-squircle","fk:transition-opacity fk:duration-100",r?"fk:opacity-100 fk:text-foreground":"fk:opacity-0 fk:group-hover/copyable:opacity-100 fk:group-focus-visible/copyable:opacity-100"),children:r?jsx(Check,{className:"fk:size-3"}):jsx(Copy,{className:"fk:size-3"})})]})}),jsx(e$1,{className:"fk:max-w-xs fk:wrap-break-word",children:r?"Copied to clipboard":M})]})}function B({value:e}){let t=typeof e=="object"||Array.isArray(e)?JSON.stringify(e):e;return t=t==="null"||t==null?"":String(t),jsx(w,{value:t})}var Zn=AIHighlight,er=Placeholder,tr=TiptapLink.configure({HTMLAttributes:{class:cx("fk:text-muted-foreground fk:underline fk:underline-offset-[3px] fk:hover:text-primary fk:transition-colors fk:cursor-pointer")}}),nr=Markdown.configure({html:true,tightLists:true,tightListClass:"tight",bulletListMarker:"-",linkify:false,breaks:false,transformPastedText:false,transformCopiedText:false}),rr=TiptapImage.extend({addProseMirrorPlugins(){return [UploadImagesPlugin({imageClass:cx("fk:opacity-40 fk:rounded-lg fk:border fk:border-stone-200 fk:corner-squircle")})]}}).configure({allowBase64:true,HTMLAttributes:{class:cx("fk:rounded-lg fk:border fk:border-muted fk:corner-squircle")}}),or=TaskList.configure({HTMLAttributes:{class:cx("fk:not-prose fk:pl-2 ")}}),ir=TaskItem.configure({HTMLAttributes:{class:cx("fk:flex gap-2 fk:items-start fk:my-2")},nested:true}),ar=HorizontalRule.configure({HTMLAttributes:{class:cx("mt-4 mb-6 border-t border-muted-foreground")}}),sr=StarterKit.configure({bulletList:{HTMLAttributes:{class:cx("fk:list-disc fk:list-outside fk:leading-3 fk:-mt-2")}},orderedList:{HTMLAttributes:{class:cx("fk:list-decimal fk:list-outside fk:leading-3 fk:-mt-2")}},listItem:{HTMLAttributes:{class:cx("fk:leading-normal fk:-mb-2")}},blockquote:{HTMLAttributes:{class:cx("fk:border-l-4 fk:border-primary")}},codeBlock:false,code:{HTMLAttributes:{class:cx("fk:rounded-md fk:bg-muted fk:px-1.5 fk:py-1 fk:font-mono fk:font-medium fk:corner-squircle"),spellcheck:"false"}},horizontalRule:false,dropcursor:{color:"#DBEAFE",width:4},gapcursor:false}),lr=CodeBlockLowlight.configure({lowlight:createLowlight(common)}),cr=Youtube.configure({HTMLAttributes:{class:cx("fk:rounded-lg fk:border fk:border-muted fk:corner-squircle")},inline:false}),fr=Twitter.configure({HTMLAttributes:{class:cx("fk:not-prose")},inline:false}),ur=Mathematics.configure({HTMLAttributes:{class:cx("fk:text-foreground fk:rounded-sm fk:p-1 fk:hover:bg-muted fk:cursor-pointer fk:corner-squircle")},katexOptions:{throwOnError:false}}),dr=CharacterCount.configure(),Tt=[sr,er,tr,rr,or,ir,ar,Zn,lr,cr,fr,ur,dr,TiptapUnderline,nr,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle];var ve;function hr(){let e=getSchema(Tt);return {schema:e,textSerializers:getTextSerializersFromSchema(e)}}function yt(e,t=100){if(!e)return "";try{let n=JSON.parse(e);return ve??=hr(),getText(Node.fromJSON(ve.schema,n),{textSerializers:ve.textSerializers}).substring(0,t)}catch{return e.substring(0,t)}}function St({value:e}){let t=useMemo(()=>yt(e),[e]);return jsx(w,{value:t})}var wt=250,xr=25e5,v=new Map,Ce=new Map,Ae=new Set,xt=new Map;function ce(e){if(xt.has(e))return;let t=new Image;t.decoding="async",t.src=e,xt.set(e,t);}function fe(e){let t=v.get(e);t&&v.set(e,{...t,lastUsedAt:Date.now()});}function vr(){if(v.size<=wt)return;let e=Array.from(v.entries()).sort((n,r)=>n[1].lastUsedAt-r[1].lastUsedAt),t=Math.max(1,Math.ceil(wt*.1));for(let n=0;n<t&&n<e.length;n+=1){let[r,o]=e[n];v.delete(r),URL.revokeObjectURL(o.objectUrl);}}async function Cr(e){if(Ae.has(e)){ce(e);return}if(v.has(e)){fe(e);return}let t=Ce.get(e);if(t){await t;return}let n=(async()=>{try{let r=await fetch(e,{mode:"cors",cache:"force-cache"});if(!r.ok){ce(e);return}let o=await r.blob();if(o.size>xr)return;let l=URL.createObjectURL(o);v.set(e,{objectUrl:l,byteSize:o.size,lastUsedAt:Date.now()}),vr();}catch(r){r instanceof TypeError&&Ae.add(e),ce(e);}})();Ce.set(e,n),await n,Ce.delete(e);}function vt(e){let t=useMemo(()=>{if(!e)return null;let o=v.get(e);return o?(fe(e),o.objectUrl):null},[e]),[n,r]=useState(t);return useEffect(()=>{if(!e){r(null);return}if(Ae.has(e)){ce(e),r(null);return}let o=v.get(e);if(o){fe(e),r(o.objectUrl);return}r(null);let l=false;return Cr(e).then(()=>{let s=v.get(e);s&&(l||(fe(e),r(s.objectUrl)));}),()=>{l=true;}},[e]),n}var De="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function Ct({value:e}){return Array.isArray(e)?jsx(Mr,{value:e}):jsx(Er,{value:e})}function Er({value:e}){let t=e?.path??"",n=!!t,r=n&&/\.(png|jpe?g|gif|webp|avif|svg)$/i.test(t),o=u=>{let[k]=u.split("?"),S=k.split(".");return S.length>1?S.pop().toLowerCase():"file"},l=n?t.endsWith(".svg")?`${b$5}${t}`:`${b$5}${t}?w=84&h=84&f=webp`:null,s=n?t.endsWith(".svg")?`${b$5}${t}`:`${b$5}${t}?w=624&h=624&f=webp`:"",b=vt(l);return n?jsx("div",{className:"fk:z-10",children:r?jsxs(b$3,{children:[jsx(c,{asChild:true,children:jsx("img",{alt:"asset",className:`fk:w-7 fk:h-7 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${De} fk:corner-squircle`,decoding:"async",src:b??void 0})}),jsx(d,{children:jsx(e$1,{children:jsx("img",{alt:"asset",className:`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${De} fk:corner-squircle`,decoding:"async",src:s})})})]}):jsxs(b$3,{children:[jsx(c,{asChild:true,children:jsx("div",{className:"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle",children:(()=>{let u=o(t),k=defaultStyles[u];return jsx(FileIcon,{extension:u,...k||{}})})()})}),jsx(d,{children:jsx(e$1,{children:jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Preview not available"})})})]})}):null}function Mr({value:e}){let t=e.filter(o=>!!o.path).slice(0,3),n=Math.max(e[0]?.totalCount??0,e.length);if(t.length===0)return n>0?jsx("div",{className:"fk:flex fk:items-center",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:n===1?"1 asset":`${n} assets`})}):null;let r=n-t.length;return jsxs("div",{className:"fk:flex fk:items-center",children:[jsx("div",{className:"fk:flex fk:-space-x-2",children:t.map(o=>jsx("img",{alt:"asset",className:`fk:h-7 fk:w-7 fk:overflow-hidden fk:rounded-md fk:object-contain ${De} fk:corner-squircle`,decoding:"async",src:`${b$5}${o.path}?w=84&h=84&f=webp`},o._id))}),r>0?jsxs("span",{className:"fk:ml-2 fk:text-xs fk:text-muted-foreground",children:["+",r]}):null]})}function Me({value:e}){if(e==null||e===""||typeof e!="string")return jsx(w,{value:""});let t=new Date(e);if(!isValid(t))return jsx(w,{value:""});let n=format(t,"MMM d, yyyy")+" at "+format(t,"HH:mm");return jsx(w,{value:n})}function Rr(e){return "groupLabel"in e}function Pr(e){return e.flatMap(t=>Rr(t)?t.items:[t])}function Lr(e,t){if(!t)return e;let n=Pr(t).find(r=>String(r.value)===e);return n?n.label:e}function Et({value:e,options:t}){if(e==null)return jsx(w,{value:""});let n=String(e),r=Lr(n,t?.list);return jsx(w,{value:r})}function Nt({value:e}){return !e||!e.split(",").length?null:jsx("div",{className:"fk:flex fk:flex-wrap fk:gap-1 fk:max-w-full truncate",children:e.split(",").map(t=>jsx(b$4,{className:"fk:px-2.5 fk:py-0 fk:font-normal fk:text-[0.6875rem] fk:leading-4",variant:"secondary",children:t},t))})}function Rt(e,t=5){let n=Number.isFinite(t)&&t>=1?Math.floor(t):5,r=typeof e=="string"&&e.trim()!==""?Number(e):e;if(typeof r!="number"||!Number.isFinite(r))return null;let o=Math.min(n,Math.max(0,Math.round(r)));return {filled:o,max:n,label:`${String(o)} out of ${String(n)} stars`}}function Pt({value:e,options:t}){let n=Rt(e,t?.max);return n?jsx("span",{"aria-label":n.label,className:"fk:inline-flex fk:items-center fk:gap-0.5",role:"img",title:n.label,children:Array.from({length:n.max},(r,o)=>jsx(Star,{"aria-hidden":true,className:o<n.filled?"fk:h-3.5 fk:w-3.5 fk:fill-amber-400 fk:text-amber-400":"fk:h-3.5 fk:w-3.5 fk:fill-transparent fk:text-muted-foreground/40",strokeWidth:1.5},o))}):jsx("span",{})}var _r=/\.(png|jpe?g|gif|webp|avif|svg)$/i;function Lt(e){try{let{pathname:t}=new URL(e);return t.split("/").pop()||t}catch{let[t]=e.split("?");return t}}function It(e){return e.originalFilename?e.originalFilename:e.path?e.path:e.url?Lt(e.url):""}function _t(e){let t=It(e),[n]=t.split("?"),r=n.split(".");return r.length>1?r.pop().toLowerCase():"file"}function Vt(e){return e.mimeType?e.mimeType.startsWith("image/"):_r.test(It(e))}function Re(e,t){if(!e||!t||Lt(e).toLowerCase().endsWith(".svg"))return e;let n=new URLSearchParams({f:"webp",h:String(t.height),w:String(t.width)}),r=e.includes("?")?"&":"?";return `${e}${r}${n.toString()}`}var Or=FileIcon,Ft="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function Ht({value:e}){let[t,n]=useState(false),r=e?.url??"";if(!e||!r&&!e.path&&!e.originalFilename)return null;if(!(Vt(e)&&!!r)){let u=_t(e),k=defaultStyles[u];return jsx("div",{className:"fk:z-10",children:jsx(a,{children:jsxs(b$3,{children:[jsx(c,{asChild:true,children:jsx("div",{className:"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle",children:jsx(Or,{extension:u,...k||{}})})}),jsx(d,{children:jsx(e$1,{children:jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Preview not available"})})})]})})})}let l$1=Re(r,{width:84,height:84}),s=Re(r,{width:624,height:624});function b(u){u.stopPropagation(),n(true);}return jsx("div",{className:"fk:z-10",children:jsxs(a,{children:[jsxs(b$3,{children:[jsx(c,{asChild:true,children:jsx("img",{src:l$1,alt:"asset",className:`fk:w-12 fk:h-12 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${Ft} fk:corner-squircle`,onClick:b})}),jsx(d,{children:jsx(e$1,{children:jsx("img",{src:s,alt:"asset",className:`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${Ft} fk:corner-squircle`})})})]}),jsx(c$1,{open:t,onOpenChange:n,children:jsxs(h$1,{className:"fk:sm:max-w-4xl fk:p-3",children:[jsxs(i,{children:[jsx(k,{className:"fk:sr-only",children:"Asset preview"}),jsx(l,{className:"fk:sr-only",children:"Enlarged asset preview"})]}),jsx("img",{src:r,alt:"asset",className:"fk:max-h-[85vh] fk:w-full fk:overflow-hidden fk:rounded-md fk:object-contain fk:corner-squircle"})]})})]})})}var Ur=new Set(["text","number","datetime","switch","select"]);function Xi({attributesSchema:e,checkboxSelect:t,actionsComponent:n,enableColumnSorting:r=false}){let[,o]=g$1(),l=b$2(e,o.user?.spaces),s={datetime:"datetime",editor:"editor",asset:"asset",number:"text",relationship:"text",select:"select",switch:"boolean",text:"text",textarea:"text"},b={boolean:xe,date:B,datetime:Me,editor:St,asset:Ct,number:B,relationship:B,select:Et,switch:xe,text:B,textarea:B,tags:Nt,rating:Pt,assetPreviewField:Ht},u=l.map(i=>{if(i.name==="_updatedAt")return null;let T=(i.inputType==="relationship"&&i.relationship?.entity==="_asset"?"asset":void 0)??i.previewType??s[i.inputType],X=b[T]??b.text;if(i.hidden===true)return null;let de=T==="tags",j=r&&i.scope==="global"&&Ur.has(i.inputType);return {accessorKey:i.name,filterFn:(y,N,C)=>de?true:(Array.isArray(C)?C:[C]).includes(y.getValue(N)),header:({column:y})=>j?jsx(Se,{column:y,title:i.label}):jsx("div",{className:"fk:flex fk:items-center",children:i.label}),cell:({row:y})=>{let N=X;return T==="select"||T==="rating"?jsx(N,{value:y.getValue(i.name),options:i.options}):T==="assetPreviewField"?jsx(N,{value:y.original}):jsx(N,{value:y.getValue(i.name)})},enableSorting:j,enableHiding:true,meta:{label:i.label},size:i.options?.size??150}}).filter(i=>i!==null),k={id:"actions",cell:({row:i})=>n?n(i):null,size:80},S={accessorKey:"_updatedAt",header:({column:i})=>r?jsx(Se,{column:i,title:"Updated At"}):jsx("div",{className:"fk:flex fk:items-center",children:"Updated At"}),cell:({row:i})=>jsx(Me,{value:i.getValue("_updatedAt")}),enableSorting:r,enableHiding:false,meta:{label:"Updated At"},size:220},M={id:"select",cell:({row:i,table:T})=>jsx(o$1,{"aria-label":"Select row",checked:i.getIsSelected(),onCheckedChange:X=>{T.toggleAllPageRowsSelected(false),i.toggleSelected(!!X);}}),enableSorting:false,enableHiding:false,size:50},g={id:"select",header:({table:i})=>jsx(o$1,{className:"fk:dark:bg-white/15","aria-label":"Select all",checked:i.getIsAllPageRowsSelected()||i.getIsSomePageRowsSelected()&&"indeterminate",onCheckedChange:T=>{i.toggleAllPageRowsSelected(!!T);}}),cell:({row:i})=>jsx(o$1,{"aria-label":"Select row",checked:i.getIsSelected(),onCheckedChange:T=>{i.toggleSelected(!!T);}}),enableSorting:false,enableHiding:false,size:50};return [...t==="single"?[M]:[],...t==="multiple"?[g]:[],...n?[k]:[],...u,S]}export{Xr as a,Kr as b,lt as c,lo as d,po as e,So as f,Tt as g,It as h,_t as i,Vt as j,Re as k,Se as l,Xi as m};//# sourceMappingURL=chunk-NYSQU73M.js.map
7
- //# sourceMappingURL=chunk-NYSQU73M.js.map
@@ -1,3 +0,0 @@
1
- import'./index.css';import {a as a$1}from'./chunk-CLCIE5RF.js';import {a}from'./chunk-EMFHKTAV.js';import {e,b as b$1,j,n,c as c$2,i as i$1,h as h$1,l as l$2,o,k as k$2}from'./chunk-2P2QV3K6.js';import'./chunk-2NXQF2F7.js';import {c}from'./chunk-CAZ6EUR2.js';import {b}from'./chunk-ZZRA4567.js';import {x,k,e as e$1,y,d as d$1,b as b$4,f,l as l$1,j as j$2,g,h as h$2}from'./chunk-A7XHA2P6.js';import'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {Tc,Vc,s,c as c$1,d,na,$,aa,da,ea,ba,O,e as e$3,qa,fa}from'./chunk-DGIY4SKN.js';import {t}from'./chunk-SZEGGBOC.js';import {v,c as c$4,h,i,k as k$1,l,j as j$1,b as b$5}from'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import {b as b$3,c as c$3,e as e$2}from'./chunk-USNXQOMJ.js';import {b as b$2}from'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useState,useRef,useMemo,useEffect}from'react';import {formatDistance,format}from'date-fns';import {SearchIcon,XIcon,ListIcon,LayoutGridIcon,LinkIcon,UploadIcon,LoaderCircle}from'lucide-react';import {useNavigate,Link}from'react-router-dom';import st from'swr/infinite';import {jsx,jsxs}from'react/jsx-runtime';var He=25,it=3e3,rt=250;function ft(t,a){let[o,s]=useState(t);return useEffect(()=>{let r=setTimeout(()=>s(t),a);return ()=>clearTimeout(r)},[a,t]),o}var dt={failed:"No document failed to index.",processing:"No document is being indexed right now.",ready:"No document is ready yet."};function ct({viewMode:t$1}){let a=["a","b","c","d","e","f"];return t$1==="grid"?jsxs("div",{"aria-busy":"true",className:Oe,children:[jsx("span",{className:"fk:sr-only",children:"Loading documents"}),a.map(o=>jsxs("div",{className:"fk:flex fk:flex-col fk:gap-3 fk:rounded-xl fk:border fk:p-3 fk:corner-squircle",children:[jsxs("span",{className:"fk:flex fk:items-center fk:gap-2",children:[jsx(t,{className:"fk:size-6 fk:rounded-md"}),jsx(t,{className:"fk:h-4 fk:flex-1"})]}),jsx(t,{className:"fk:aspect-[4/3] fk:w-full fk:rounded-lg"})]},o))]}):jsxs("div",{"aria-busy":"true",className:"fk:flex fk:flex-col",children:[jsx("span",{className:"fk:sr-only",children:"Loading documents"}),a.map(o=>jsxs("div",{className:"fk:flex fk:h-12 fk:items-center fk:gap-3 fk:border-b fk:px-3",children:[jsx(t,{className:"fk:size-6 fk:shrink-0 fk:rounded-md"}),jsx(t,{className:"fk:h-4 fk:w-1/3"}),jsx(t,{className:"fk:ml-auto fk:h-4 fk:w-16"}),jsx(t,{className:"fk:hidden fk:h-4 fk:w-24 fk:md:block"})]},o))]})}function kt(t,a){let[o,s]=useState([]),r=useRef(Promise.resolve());function m(p){if(t)for(let f$1 of p){let u=f(f$1);if(u){qa.error(u);continue}let d={id:`${f$1.name}-${String(Date.now())}-${String(Math.random())}`,name:f$1.name};s(i=>[...i,d]),r.current=r.current.then(async()=>{try{let i=await t.addFile(f$1);i$1(i,f$1.name),a();}catch(i){qa.error(h$1(i,`${f$1.name} could not be added.`));}finally{s(i=>i.filter(w=>w.id!==d.id));}}).catch(()=>{});}}return {addFiles:m,pending:o}}function ut({api:t,onOpenChange:a,onRegistered:o,open:s$1}){let[r,m]=useState(""),[p,f]=useState(""),[u,d]=useState(""),[i$2,w]=useState(false);function N(){a(false),m(""),f(""),d("");}async function K(c){c.preventDefault();let x=h$2(r);if("error"in x){d(x.error);return}w(true),d("");try{let E=await t.addUrl({title:p.trim()||void 0,url:x.url});i$1(E,x.url),o(),N();}catch(E){d(h$1(E,"The page could not be added."));}finally{w(false);}}return jsx(c$4,{open:s$1,onOpenChange:c=>c?a(true):N(),children:jsx(h,{children:jsxs("form",{className:"fk:flex fk:flex-col fk:gap-4",onSubmit:c=>{K(c);},children:[jsxs(i,{children:[jsx(k$1,{children:"Add a web page"}),jsx(l,{children:"The page is fetched and indexed now, and again whenever you re-index it. Only public pages work."})]}),jsxs("div",{className:"fk:flex fk:flex-col fk:gap-1.5",children:[jsx(e$3,{htmlFor:"knowledge-url",children:"Address"}),jsx(s,{autoFocus:true,id:"knowledge-url",inputMode:"url",placeholder:"https://example.com/help/returns",value:r,onChange:c=>{m(c.target.value),d("");}})]}),jsxs("div",{className:"fk:flex fk:flex-col fk:gap-1.5",children:[jsx(e$3,{htmlFor:"knowledge-url-title",children:"Title (optional)"}),jsx(s,{id:"knowledge-url-title",maxLength:b$4,placeholder:"Defaults to the page address",value:p,onChange:c=>f(c.target.value)})]}),u?jsx("p",{className:"fk:text-sm fk:text-destructive",children:u}):null,jsxs(j$1,{children:[jsx(b$2,{disabled:i$2,size:"sm",type:"button",variant:"outline",onClick:N,children:"Cancel"}),jsxs(b$2,{disabled:i$2||!r.trim(),size:"sm",type:"submit",children:[i$2?jsx(LoaderCircle,{className:"fk:size-4 fk:animate-spin"}):jsx(LinkIcon,{className:"fk:size-4"}),"Add page"]})]})]})})})}var Oe="fk:grid fk:grid-cols-[repeat(auto-fill,minmax(14rem,1fr))] fk:gap-4";function mt(t){return format(new Date(t),"MMM d, yyyy")}function Ue(){return jsx(b$5,{className:"fk:shrink-0 fk:corner-squircle",variant:"outline",children:"Hidden from agent"})}function Ge(){return jsx(b$5,{className:"fk:shrink-0 fk:corner-squircle","data-knowledge-content-match":true,variant:"secondary",children:"In content"})}function pt(t,a){let o=t.target;t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||!t.currentTarget.contains(o)||o.closest("a, button")||a();}function gt({source:t,...a}){let o$1=l$1(t),s=o$1.tone==="ready"?"fk:hidden fk:xl:inline":"fk:hidden fk:md:inline";return jsxs(da,{className:"fk:h-12 fk:cursor-pointer","data-knowledge-row":true,onClick:r=>pt(r,()=>a.onOpen(t)),children:[jsx(fa,{className:"fk:max-w-0 fk:w-full",children:jsxs("span",{className:"fk:flex fk:min-w-0 fk:items-center fk:gap-3",children:[jsx(l$2,{source:t}),jsx(Link,{className:"fk:truncate fk:text-sm fk:font-medium fk:hover:underline fk:underline-offset-2 fk:focus-visible:outline-none fk:focus-visible:underline",to:t.id,children:t.title}),t.matchedIn==="content"?jsx(Ge,{}):null,t.agentVisible?null:jsx(Ue,{})]})}),jsx(fa,{className:"fk:whitespace-nowrap",children:jsxs("span",{className:"fk:flex fk:items-center fk:gap-2",children:[jsx(k$2,{label:o$1.label,tone:o$1.tone}),jsx("span",{className:`${s} fk:max-w-64 fk:truncate fk:text-xs fk:text-muted-foreground`,title:o$1.detail,children:o$1.detail})]})}),jsx(fa,{className:"fk:hidden fk:whitespace-nowrap fk:text-muted-foreground fk:md:table-cell",children:j$2(t)}),jsx(fa,{className:"fk:hidden fk:whitespace-nowrap fk:text-right fk:tabular-nums fk:text-muted-foreground fk:md:table-cell",children:t.size===null?"\u2014":g(t.size)}),jsx(fa,{className:"fk:hidden fk:whitespace-nowrap fk:text-muted-foreground fk:sm:table-cell",children:jsxs(b$3,{children:[jsx(c$3,{asChild:true,children:jsx("span",{children:mt(t.createdAt)})}),jsxs(e$2,{children:["Updated ",formatDistance(new Date(t.updatedAt),new Date,{addSuffix:true})]})]})}),jsx(fa,{className:"fk:w-12 fk:pr-2 fk:text-right",children:jsx(o,{source:t,onOpen:()=>a.onOpen(t),onRemoved:()=>a.onRemoved(t)})})]})}function ht({sources:t,...a}){return jsxs($,{"data-knowledge-list":true,children:[jsx(aa,{children:jsxs(da,{className:"fk:hover:bg-transparent",children:[jsx(ea,{children:"Name"}),jsx(ea,{children:"Status"}),jsx(ea,{className:"fk:hidden fk:md:table-cell",children:"Type"}),jsx(ea,{className:"fk:hidden fk:text-right fk:md:table-cell",children:"Size"}),jsx(ea,{className:"fk:hidden fk:sm:table-cell",children:"Added"}),jsx(ea,{className:"fk:w-12",children:jsx("span",{className:"fk:sr-only",children:"Actions"})})]})}),jsx(ba,{children:t.map(o=>jsx(gt,{source:o,...a},o.id))})]})}function bt({source:t}){let a=t.preview?.trim();return jsx("div",{className:"fk:relative fk:aspect-[4/3] fk:overflow-hidden fk:rounded-lg fk:bg-muted fk:corner-squircle",children:a?jsxs("div",{"aria-hidden":true,className:"fk:absolute fk:inset-x-4 fk:top-3 fk:bottom-0 fk:overflow-hidden fk:rounded-t-sm fk:bg-background fk:px-3 fk:pt-3 fk:shadow-sm",children:[jsx("p",{className:"fk:whitespace-pre-line fk:text-[9px] fk:leading-[1.45] fk:text-foreground/80 fk:select-none",children:a}),jsx("span",{className:"fk:pointer-events-none fk:absolute fk:inset-x-0 fk:bottom-0 fk:h-10 fk:bg-gradient-to-t fk:from-background fk:to-transparent"})]}):jsx("div",{className:"fk:flex fk:h-full fk:items-center fk:justify-center",children:jsx(l$2,{size:56,source:t})})})}function vt({source:t,...a}){let o$1=l$1(t),s=[j$2(t)];return t.size!==null&&s.push(g(t.size)),s.push(o$1.detail),jsxs("div",{className:"fk:relative fk:flex fk:min-w-0 fk:flex-col fk:gap-3 fk:rounded-xl fk:border fk:bg-card fk:p-3 fk:transition-colors fk:hover:bg-accent/60 fk:has-[>a:focus-visible]:ring-2 fk:has-[>a:focus-visible]:ring-ring fk:corner-squircle","data-knowledge-card":true,title:t.title,children:[jsx(Link,{"aria-label":`Open ${t.title}`,className:"fk:absolute fk:inset-0 fk:rounded-xl fk:focus-visible:outline-none fk:corner-squircle",to:t.id}),jsxs("span",{className:"fk:pointer-events-none fk:relative fk:flex fk:min-w-0 fk:items-center fk:gap-2",children:[jsx(l$2,{source:t}),jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate fk:text-sm fk:font-medium",children:t.title}),jsx("span",{className:"fk:pointer-events-auto fk:-my-1 fk:-mr-1.5",children:jsx(o,{source:t,onOpen:()=>a.onOpen(t),onRemoved:()=>a.onRemoved(t)})})]}),jsx("span",{className:"fk:pointer-events-none fk:relative",children:jsx(bt,{source:t})}),jsxs("span",{className:"fk:pointer-events-none fk:relative fk:flex fk:min-w-0 fk:items-center fk:gap-2",children:[jsx(k$2,{label:o$1.label,tone:o$1.tone}),jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate fk:text-xs fk:text-muted-foreground",children:s.join(" \xB7 ")}),t.matchedIn==="content"?jsx(Ge,{}):null,t.agentVisible?null:jsx(Ue,{})]})]})}function wt({sources:t,...a}){return jsx("div",{className:Oe,"data-knowledge-grid":true,children:t.map(o=>jsx(vt,{source:o,...a},o.id))})}function Nt(){return jsxs("div",{className:"fk:mb-2 fk:flex fk:shrink-0 fk:items-center fk:gap-2 fk:pr-4",children:[jsxs(b$3,{children:[jsx(c$3,{asChild:true,children:jsx(O,{className:"fk:-ml-1 fk:h-4 fk:w-4"})}),jsx(e$2,{children:"Toggle Sidebar"})]}),jsx(v,{orientation:"vertical",className:"fk:h-4"}),jsx("h1",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:"Knowledge"})]})}function Pt(){let{api:t,projectId:a$2}=e(),o=useNavigate(),s$1=b(),r=c(),m=a(),[p,f]=useState(""),u=ft(p.trim(),rt),[d$2,i]=useState(()=>x()),[w,N]=useState(false),K=useRef(null),c$3=useRef(null),[x$1,E]=useState(false),Ve=(l,T)=>!a$2||T&&!T.hasMore?null:c$2(a$2).sources({limit:He,offset:l*He,search:u||void 0,status:m}),{data:h,isLoading:Xe,mutate:L,setSize:A,size:Je}=st(Ve,b$1,{refreshInterval:r&&x$1?it:0}),S=useMemo(()=>h?.flatMap(l=>l.sources)??[],[h]),z=h?.[0]?.count??0,qe=h?.[h.length-1]?.hasMore??false,te=h!==void 0&&Je>h.length,$e=Xe&&S.length===0,{addFiles:ne,pending:ae}=kt(t,()=>{L();}),oe=useRef(L);oe.current=L,useEffect(()=>{oe.current();},[]),useEffect(()=>{E(S.some(l=>k(l)));},[S]);let le=useRef(A);if(le.current=A,useEffect(()=>{le.current(1);},[u]),!a$2||!t)return jsx(j,{children:"Select a project to manage its knowledge."});function je(l){let T=Array.from(l.target.files??[]);l.target.value="",ne(T);}let P=`No documents yet. Upload ${e$1} files, or add a public web page, and the agent will search and cite them.`;u?P="No document title or content matches your search.":m&&(P=dt[m]);let se={onOpen:l=>{o(l.id);},onRemoved:l=>{L(T=>T?.map(F=>({...F,count:Math.max(0,F.count-1),sources:F.sources.filter(We=>We.id!==l.id)})),{revalidate:true});}},R=d$2==="grid"?jsx(wt,{sources:S,...se}):jsx(ht,{sources:S,...se});return $e?R=jsx(ct,{viewMode:d$2}):S.length===0&&(R=jsx(Tc,{children:jsx(Vc,{children:P})})),jsxs("main",{className:"fk:flex fk:min-h-0 fk:flex-1 fk:flex-col",children:[jsx(Nt,{}),jsx(a$1,{disabled:!s$1,onDropFiles:ne,children:jsx("div",{className:"fk:min-h-0 fk:flex-1 fk:overflow-auto",children:jsxs("div",{className:"fk:flex fk:w-full fk:flex-col fk:gap-5 fk:py-4 fk:pl-4 fk:pr-6",children:[jsxs("div",{children:[jsx("h2",{className:"fk:text-2xl fk:font-semibold",children:"Documents"}),jsx("p",{className:"fk:mt-1 fk:text-sm fk:text-muted-foreground",children:"Policies, manuals, specs and other reference material for your team and agents. The agent searches them when a question needs them and cites the passage it used."})]}),jsxs("div",{className:"fk:flex fk:flex-wrap fk:items-center fk:gap-3",children:[jsxs("div",{className:"fk:relative fk:w-full fk:max-w-sm",children:[jsx(SearchIcon,{className:"fk:pointer-events-none fk:absolute fk:left-2.5 fk:top-1/2 fk:size-4 fk:-translate-y-1/2 fk:text-muted-foreground"}),jsx(s,{"aria-label":"Search documents",className:"fk:pl-8 fk:pr-9",placeholder:"Search by title or content\u2026",ref:c$3,value:p,onChange:l=>f(l.target.value)}),p?jsx(b$2,{"aria-label":"Clear search",className:"fk:absolute fk:right-1.5 fk:top-1/2 fk:flex fk:size-6 fk:-translate-y-1/2 fk:items-center fk:justify-center fk:rounded-full fk:bg-transparent fk:text-muted-foreground fk:hover:bg-foreground/10 fk:hover:text-foreground fk:corner-squircle","data-knowledge-clear-search":true,type:"button",onClick:()=>{f(""),c$3.current?.focus();},children:jsx(XIcon,{className:"fk:size-4"})}):null]}),z>0?jsxs("span",{className:"fk:text-sm fk:text-muted-foreground",children:[z.toLocaleString()," ",z===1?"document":"documents"]}):null,jsxs("div",{className:"fk:ml-auto fk:flex fk:items-center fk:gap-2",children:[jsxs(c$1,{"aria-label":"Layout",size:"sm",type:"single",value:d$2,variant:"outline",onValueChange:l=>{(l==="list"||l==="grid")&&(i(l),y(l));},children:[jsx(d,{"aria-label":"List layout",value:"list",children:jsx(ListIcon,{className:"fk:size-4"})}),jsx(d,{"aria-label":"Grid layout",value:"grid",children:jsx(LayoutGridIcon,{className:"fk:size-4"})})]}),jsx(na,{disabled:!s$1,children:jsxs(b$2,{disabled:!s$1,size:"sm",variant:"outline",onClick:()=>N(true),children:[jsx(LinkIcon,{}),"Add web page"]})}),jsx(na,{disabled:!s$1,children:jsxs(b$2,{disabled:!s$1,size:"sm",onClick:()=>K.current?.click(),children:[jsx(UploadIcon,{}),"Upload documents"]})}),jsx("input",{accept:d$1,className:"fk:hidden",multiple:true,ref:K,type:"file",onChange:je})]})]}),ae.length>0?jsx("div",{className:"fk:flex fk:flex-col fk:gap-1 fk:text-sm fk:text-muted-foreground",children:ae.map(l=>jsxs("span",{className:"fk:flex fk:items-center fk:gap-2",children:[jsx(LoaderCircle,{className:"fk:size-4 fk:animate-spin"}),"Uploading ",l.name,"\u2026"]},l.id))}):null,R,qe&&!te?jsx(n,{onVisible:()=>{A(l=>l+1);}}):null,te?jsxs("div",{className:"fk:flex fk:items-center fk:justify-center fk:gap-2 fk:py-4 fk:text-sm fk:text-muted-foreground",children:[jsx(LoaderCircle,{className:"fk:size-4 fk:animate-spin"}),jsx("span",{children:"Loading more documents..."})]}):null]})})}),jsx(ut,{api:t,open:w,onOpenChange:N,onRegistered:()=>{L();}})]})}
2
- export{Pt as List};//# sourceMappingURL=list-4OJMI4CB.js.map
3
- //# sourceMappingURL=list-4OJMI4CB.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';import {c as c$2,a as a$1}from'./chunk-LK67JOQA.js';import {m as m$2,a,b,d as d$1}from'./chunk-NYSQU73M.js';import'./chunk-CAZ6EUR2.js';import'./chunk-2DXR5NJV.js';import {u,m as m$1,d,w}from'./chunk-445XKMAG.js';import'./chunk-ZZRA4567.js';import'./chunk-BMO7JFAX.js';import {c}from'./chunk-XMOSCJOI.js';import'./chunk-A7XHA2P6.js';import'./chunk-YDVO6XWD.js';import'./chunk-ERDARDGB.js';import {f}from'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {O}from'./chunk-DGIY4SKN.js';import {t}from'./chunk-SZEGGBOC.js';import {v}from'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import {b as b$1,c as c$1,e}from'./chunk-USNXQOMJ.js';import'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useState,useMemo,useCallback}from'react';import {useParams,useLocation,Outlet}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var m=36,ct=[{_updatedAt:"DESC"},{_id:"DESC"}];function vt(){let{entity:t}=useParams(),{search:a$1}=useLocation(),g=new URLSearchParams(a$1).get("id"),{scope:j}=c(),{schemaErrorMessage:G}=u(),{currentProject:Q}=f(),h=Q?.schema??[],n=m$1(h,t??""),[r,S]=useState([]),[W,B]=useState(0),[O$1,F]=useState(t);t!==O$1&&(F(t),S([]));let k=m$2({attributesSchema:n?.attributes??[],actionsComponent:o=>ut({entityName:n?.name??"",entityNamePlural:t??"",row:o}),checkboxSelect:"multiple",enableColumnSorting:true}),f$1=useMemo(()=>{if(r.length===0)return ct;let o=r.map(({id:u,desc:it})=>({[u]:it?"DESC":"ASC"}));return o.some(u=>"_id"in u)?o:[...o,{_id:"DESC"}]},[r]),y=useMemo(()=>{if(r.length!==0)return d(f$1,n)},[n,f$1,r.length]),H=g?{where:{_id:{eq:g}}}:{offset:0,limit:m,sort:f$1,...y?{where:y}:{}},{isLoading:Y,isLoadingMore:Z,fetchMore:b$2,reload:C,count:i,data:l,isProjectDisabled:$}=w({entityNamePlural:t??"",schema:h,scope:j,variables:H,selection:"list"});function tt(o){S(o);}let N=l?.length??0,et=i>0&&N>0&&N<i,ot=useCallback(()=>{b$2({variables:{offset:0,limit:m}});},[b$2]),nt=useCallback(()=>{B(o=>o+1),C();},[C]),rt=Array(m).fill({}),at=pt(k),s=Y&&(l==null||l.length===0);return $?jsx("div",{className:"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3",children:jsx(a,{})}):jsxs("div",{className:"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3",children:[jsx(b,{}),jsxs("div",{className:"fk:flex fk:items-center fk:mb-4 fk:gap-2",children:[jsxs(b$1,{children:[jsx(c$1,{asChild:true,children:jsx(O,{className:"fk:-ml-1 fk:w-4 fk:h-4"})}),jsx(e,{children:"Toggle Sidebar"})]}),jsx(v,{orientation:"vertical",className:"fk:h-4"}),jsx("h2",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:ft(n?.menu?.label??n?.plural??"")}),s?null:jsxs("span",{className:"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground",children:[i.toLocaleString()," ",i===1?"record":"records"]})]}),G?null:jsx(d$1,{columns:s?at:k,data:s?rt:l??[],entityName:n?.name??"",hasMore:et,isLoadingMore:Z,pageSize:m,scrollToTopKey:W,sorting:r,onLoadMore:ot,onSortingChange:tt,toolbarComponent:o=>jsx(c$2,{entityName:n?.name??"",isReloading:s,onReload:nt,table:o})}),jsx(Outlet,{})]})}function ft(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ut({entityName:t,entityNamePlural:a,row:d}){return jsx(a$1,{entityName:t,entityNamePlural:a,row:d})}function pt(t$1){return t$1.map(a=>({...a,cell:()=>jsx(t,{className:"fk:h-4 fk:w-full",style:{marginTop:"7px",marginBottom:"6px"}})}))}export{vt as List};//# sourceMappingURL=list-RABV2F3H.js.map
2
- //# sourceMappingURL=list-RABV2F3H.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';export{b as CatalogHeader,d as InstalledPluginsPage,a as PluginConnectControl,e as PluginDetailPage,c as PluginsPage}from'./chunk-F2DT6NRK.js';import'./chunk-UOR437J2.js';import'./chunk-DHVKE36X.js';import'./chunk-A7XHA2P6.js';import'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import'./chunk-DGIY4SKN.js';import'./chunk-SZEGGBOC.js';import'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import'./chunk-USNXQOMJ.js';import'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';//# sourceMappingURL=plugin-pages-PQWTH7P5.js.map
2
- //# sourceMappingURL=plugin-pages-PQWTH7P5.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';export{a as EntityKnowledgeButton,c as LinkedRecordsSection,b as RecordKnowledgePanel}from'./chunk-BXN72PW2.js';import'./chunk-2P2QV3K6.js';import'./chunk-2NXQF2F7.js';import'./chunk-445XKMAG.js';import'./chunk-ZZRA4567.js';import'./chunk-BMO7JFAX.js';import'./chunk-XMOSCJOI.js';import'./chunk-A7XHA2P6.js';import'./chunk-YDVO6XWD.js';import'./chunk-ERDARDGB.js';import'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import'./chunk-DGIY4SKN.js';import'./chunk-SZEGGBOC.js';import'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import'./chunk-USNXQOMJ.js';import'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';//# sourceMappingURL=record-links-BFHPBOAL.js.map
2
- //# sourceMappingURL=record-links-BFHPBOAL.js.map
@@ -1,23 +0,0 @@
1
- import'./index.css';import {a as a$1}from'./chunk-CLCIE5RF.js';import {c as c$4,a as a$5}from'./chunk-JWBER5NX.js';import {a as a$4}from'./chunk-54AXLGAK.js';import {a as a$3}from'./chunk-RY6PECIT.js';import {m,a,b as b$1,d,f as f$1,e as e$3,c as c$6,h as h$3,j as j$3,i as i$1,k as k$1}from'./chunk-NYSQU73M.js';import {b as b$5}from'./chunk-CAZ6EUR2.js';import'./chunk-2DXR5NJV.js';import {u,w,j,e,h,g}from'./chunk-445XKMAG.js';import {b as b$2}from'./chunk-ZZRA4567.js';import {c as c$3}from'./chunk-BMO7JFAX.js';import {c}from'./chunk-XMOSCJOI.js';import'./chunk-YDVO6XWD.js';import'./chunk-ERDARDGB.js';import {f,b}from'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {x,y,z,s,na,c as c$5,d as d$2,o as o$2}from'./chunk-DGIY4SKN.js';import {e as e$2,g as g$1,h as h$2,j as j$2,o,t}from'./chunk-SZEGGBOC.js';import {c as c$2,d as d$1,h as h$1,i,k,l,j as j$1,w as w$1,n,o as o$1,p,q,r,t as t$1,s as s$1}from'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import {a as a$2,b as b$3,c as c$1,e as e$1}from'./chunk-USNXQOMJ.js';import {b as b$4}from'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useState,useMemo,useCallback,useRef,useEffect}from'react';import {TagIcon,PlusIcon,Loader2,Ellipsis,Check,Copy,Link,MinusIcon,Trash2,LoaderCircle,Search,X,ImagePlayIcon,ImageIcon,FilePlayIcon,LayersIcon,SplinePointerIcon,ListChecks,Trash2Icon,LayoutGrid,List}from'lucide-react';import {gql}from'@apollo/client';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useLocation,Outlet,useParams}from'react-router-dom';import {useReactTable,getSortedRowModel,getPaginationRowModel,getFilteredRowModel,getCoreRowModel}from'@tanstack/react-table';import {defaultStyles,FileIcon}from'react-file-icon';var be={where:{},limit:500,offset:0,sort:[{name:"ASC"}]},Y={selection:"display",includeCount:false};function Pt(){let{scope:e$3}=c(),{currentProjectSchema:n}=f(),[t,s$1,r]=f$1(),[f$2,l$1]=useState(""),[u,D]=useState(false),[v,g$2]=useState(false),[I,i$1]=useState(null),[A,d]=useState(false),[_,x]=useState(null),[J,M]=useState(""),[P,O]=useState(false),[R,B]=useState(false),k$1=b$2(),w$2="_tag",c$3="_tags",{data:b,isLoading:T}=w({entityNamePlural:c$3,schema:n,scope:e$3,variables:be,...Y}),z=(Array.isArray(b)?b:[]).map(a=>{let U=a;return {_id:U._id,name:U.name}}),L=useCallback(async()=>{let a=f$2.trim();if(!a)return;O(true);let U=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}`,F=j(c$3,n,{name:{value:a,disabled:false,scope:"default"}},U),j$1=e(c$3,e$3,n,Y),K=gql`
2
- ${j$1.query}
3
- `;await new Promise(h=>{s$1(gql`
4
- ${F}
5
- `),r({refetchQueries:[K],onCompleted:()=>{l$1(""),D(false),h();}}),t(true);}),O(false);},[c$3,t,n,e$3,s$1,r,f$2]),q=useCallback(async a=>{B(true);let U=h(w$2,n,a),Z=e(c$3,e$3,n,Y),F=gql`
6
- ${Z.query}
7
- `;await new Promise((j,K)=>{s$1(gql`
8
- ${U}
9
- `),r({variables:{where:{_id:{eq:a}}},refetchQueries:[F],onCompleted:()=>{j();},onError:h=>{K(h);}}),t(true);}),B(false);},[w$2,c$3,t,n,e$3,s$1,r]),y=useCallback(async()=>{let a=J.trim();if(!a||!_)return;O(true);let U={name:{value:a,disabled:false,scope:"default"}},Z={},F=g(c$3,_._id,e$3,n,Z,U),j=e(c$3,e$3,n,Y),K=gql`
10
- ${j.query}
11
- `;await new Promise(h=>{s$1(gql`
12
- ${F}
13
- `),r({variables:{where:{_id:{eq:_._id}}},refetchQueries:[K],onCompleted:()=>{d(false),x(null),M(""),h();}}),t(true);}),O(false);},[J,c$3,t,n,e$3,s$1,r,_]);return jsxs("div",{className:"fk:flex fk:h-full fk:max-h-screen fk:flex-col fk:gap-2",children:[jsxs("div",{className:"fk:flex fk:h-12 fk:items-center fk:border-b fk:border-b-border fk:px-4 fk:lg:px-6",children:[jsx(TagIcon,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:px-4 fk:text-sm fk:font-semibold fk:tracking-tight",children:"Tags"}),k$1?jsx(a$2,{children:jsxs(b$3,{children:[jsx(c$1,{asChild:true,children:jsxs(c$2,{open:u,onOpenChange:D,children:[jsx(d$1,{asChild:true,children:jsxs(b$4,{variant:"secondary",size:"icon",className:"fk:ml-auto fk:h-8 fk:w-8",children:[jsx(PlusIcon,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:sr-only",children:"Add tag"})]})}),jsxs(h$1,{children:[jsxs(i,{children:[jsx(k,{children:"New tag"}),jsx(l,{className:"fk:sr-only",children:"Create a new tag"})]}),jsx("div",{className:"fk:flex fk:gap-2",children:jsx(s,{autoFocus:true,value:f$2,placeholder:"New tag name",onChange:a=>l$1(a.target.value),onKeyDown:a=>{a.key==="Enter"&&L();}})}),jsx(j$1,{children:jsxs(b$4,{disabled:P,onClick:L,variant:"default",children:[P?jsx(Loader2,{className:"fk:h-4 fk:w-4 fk:mr-2 fk:animate-spin"}):null,"Add"]})})]})]})}),jsx(e$1,{children:jsx("p",{children:"Add tag"})})]})}):jsx("div",{className:"fk:ml-auto",children:jsx(na,{disabled:true,children:jsxs(b$4,{disabled:true,variant:"secondary",size:"icon",className:"fk:h-8 fk:w-8",children:[jsx(PlusIcon,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:sr-only",children:"Add tag"})]})})})]}),jsx(w$1,{className:"fk:h-full",children:jsx("div",{className:"fk:flex fk:flex-col fk:gap-2 fk:px-4 fk:py-2",children:T?jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Loading..."}):z.length===0?jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"No tags yet"}):z.map(a=>jsxs("div",{className:"fk:group fk:flex fk:items-center fk:justify-between fk:rounded-sm fk:border fk:border-border fk:bg-card fk:px-3 fk:py-1 fk:corner-squircle",children:[jsx("span",{className:"fk:text-sm",children:a.name}),jsxs(e$2,{children:[jsx(na,{disabled:!k$1,children:jsx(g$1,{asChild:true,children:jsx(b$4,{"aria-label":`Actions for ${a.name}`,disabled:!k$1,title:k$1?`Actions for ${a.name}`:void 0,variant:"ghost",size:"icon",className:"fk:h-7 fk:w-7 fk:text-muted-foreground fk:hover:text-foreground",children:jsx(Ellipsis,{className:"fk:h-4 fk:w-4"})})})}),jsxs(h$2,{align:"end",className:"w-[160px]",children:[jsx(j$2,{onClick:()=>{x(a),M(a.name),d(true);},children:"Edit"}),jsx(o,{}),jsx(j$2,{className:"fk:text-destructive",onClick:()=>{i$1(a),g$2(true);},children:"Remove"})]})]})]},a._id))})}),jsx(c$2,{open:A,onOpenChange:d,children:jsxs(h$1,{children:[jsxs(i,{children:[jsx(k,{children:"Edit tag"}),jsx(l,{className:"fk:sr-only",children:"Rename an existing tag"})]}),jsx("div",{className:"fk:flex fk:gap-2",children:jsx(s,{autoFocus:true,value:J,placeholder:"Tag name",onChange:a=>M(a.target.value),onKeyDown:a=>{a.key==="Enter"&&y();}})}),jsxs(j$1,{children:[jsx(b$4,{disabled:P,variant:"secondary",onClick:()=>{d(false),x(null);},children:"Cancel"}),jsxs(b$4,{disabled:P,onClick:y,variant:"default",children:[P?jsx(Loader2,{className:"fk:h-4 fk:w-4 fk:mr-2 fk:animate-spin"}):null,"Save"]})]})]})}),jsx(c$2,{open:v,onOpenChange:g$2,children:jsxs(h$1,{children:[jsxs(i,{children:[jsx(k,{children:"Delete tag"}),jsx(l,{className:"fk:sr-only",children:"Confirm deletion of a tag"})]}),jsxs("div",{className:"fk:text-sm fk:text-muted-foreground",children:["Are you sure you want to delete the tag"," ",jsx("span",{className:"fk:font-semibold fk:text-foreground",children:I?.name}),"?"]}),jsxs(j$1,{children:[jsx(b$4,{disabled:R,variant:"secondary",onClick:()=>{g$2(false),i$1(null);},children:"Cancel"}),jsxs(b$4,{disabled:R,variant:"destructive",onClick:()=>{I&&(async()=>(await q(I._id),g$2(false),i$1(null)))();},children:[R?jsx(Loader2,{className:"fk:h-4 fk:w-4 fk:mr-2 fk:animate-spin"}):null,"Delete"]})]})]})})]})}var Ft=`_updatedAt
14
- tags(limit: 3, offset: 0) {
15
- _id
16
- name
17
- }
18
- `;function Le({assetIds:e,mode:n$1,onModeChange:t,onCompleted:s}){let{scope:r$1}=c(),f$2=a$5("_assets"),[l,u,D]=f$1(),{currentProjectSchema:v}=f(),[g$1,I]=useState([]),[i,A]=useState(false),{data:d}=w({entityNamePlural:"_tags",schema:v,scope:r$1,variables:be,...Y}),_=useMemo(()=>(Array.isArray(d)?d:[]).map(w=>({_id:w._id,name:w.name})),[d]),x=useCallback(()=>{I([]);},[]),J=useCallback(k=>{!k&&!i&&(t(null),x());},[i,t,x]),M=useCallback(k=>{let c=(k?.update_assets?._assets??[]).filter(b=>typeof b?._id=="string").map(b=>{let T=(Array.isArray(b.tags)?b.tags:[]).map(z=>z.name).filter(Boolean).slice(0,3).join(", ");return {_id:b._id,attributes:{tags:T,...typeof b._updatedAt=="string"?{_updatedAt:b._updatedAt}:{}}}});c.length>0&&f$2(c);},[f$2]),P=useCallback(async()=>{if(!(e.length===0||g$1.length===0||i)){A(true);try{let k={tags:{relationships:{connect:g$1.map(c=>({_id:c}))},disabled:!1,scope:r$1}},w=g("_assets",e[0]??"",r$1,v,{},k,{responseFields:Ft});await new Promise((c,b)=>{u(gql`
19
- ${w}
20
- `),D({variables:{where:{_id:{in:e}}},onCompleted:T=>{M(T),c();},onError:T=>b(T)}),l(!0);}),s?.(),x(),t(null);}catch{}finally{A(false);}}},[M,e,i,s,t,x,l,v,r$1,g$1,u,D]),O=useCallback(async()=>{if(!(e.length===0||g$1.length===0||i)){A(true);try{let k={tags:{relationships:{disconnect:g$1},disabled:!1,scope:r$1}},w=g("_assets",e[0]??"",r$1,v,{},k,{responseFields:Ft});await new Promise((c,b)=>{u(gql`
21
- ${w}
22
- `),D({variables:{where:{_id:{in:e}}},onCompleted:T=>{M(T),c();},onError:T=>b(T)}),l(!0);}),s?.(),x(),t(null);}catch{}finally{A(false);}}},[M,e,i,s,t,x,l,v,r$1,g$1,u,D]),R=n$1==="remove",B=R?"Remove tag(s)":"Add tag(s)";return e.length>1&&(B=R?"Remove tag(s) from selected assets":"Add tag(s) to selected assets"),jsxs(n,{open:n$1!==null,onOpenChange:J,children:[jsx(o$1,{placeholder:"Search tags..."}),jsxs(p,{className:"fk:h-75",children:[jsx(q,{children:"No tags found."}),jsx(r,{heading:"Tags",children:_.map(k=>{let w=g$1.includes(k._id);return jsxs(t$1,{disabled:i,onSelect:()=>{i||I(c=>w?c.filter(b=>b!==k._id):[...c,k._id]);},children:[jsx("input",{className:"fk:mr-2",checked:w,onChange:()=>{},type:"checkbox"}),k.name]},k._id)})})]}),jsx(s$1,{}),jsx("div",{className:"fk:p-2",children:jsxs(b$4,{className:"fk:w-full",disabled:g$1.length===0||i,onClick:R?O:P,children:[i?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,B]})})]})}function Ve({overlay:e=false,row:n}){let[t,s]=useState(null),[r,f]=useState(null),l=c$3(),u=b$2(),D=n.original,v=D._id??"",g=D.url??"";function I(){l({type:"DeleteEntity",payload:{entityId:v,entityName:b.name}});}function i(d,_){navigator.clipboard.writeText(_),s(d),window.setTimeout(()=>s(null),1500);}return jsxs(Fragment,{children:[jsxs(e$2,{children:[jsx(g$1,{asChild:true,children:jsxs(b$4,{className:e?"fk:flex fk:h-7 fk:w-7 fk:p-0 fk:text-white fk:group-hover:bg-background/10 fk:group-hover:text-white! fk:data-[state=open]:bg-background/15":"fk:flex fk:h-8 fk:w-8 fk:p-0 fk:data-[state=open]:bg-muted",onClick:d=>d.stopPropagation(),variant:"ghost",children:[jsx(Ellipsis,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:sr-only",children:"Open menu"})]})}),jsxs(h$2,{align:"start",className:"fk:w-45",children:[jsxs(j$2,{disabled:!v,onClick:d=>{d.stopPropagation(),i("id",v);},children:[t==="id"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Copy,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy ID"]}),jsxs(j$2,{disabled:!g,onClick:d=>{d.stopPropagation(),i("url",g);},children:[t==="url"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Link,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy URL"]}),jsx(o,{}),jsxs(j$2,{disabled:!v||!u,onClick:d=>{d.stopPropagation(),f("add");},children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Add tag"]}),jsxs(j$2,{disabled:!v||!u,onClick:d=>{d.stopPropagation(),f("remove");},children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Remove tag"]}),jsx(o,{}),jsxs(j$2,{className:"fk:text-destructive",disabled:!v||!u,onClick:d=>{d.stopPropagation(),I();},children:[jsx(Trash2,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Delete"]})]})]}),r!==null?jsx(Le,{assetIds:v?[v]:[],mode:r,onModeChange:f}):null]})}var ho=FileIcon,yo="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function vo(e){return e==null||Number.isNaN(e)?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Ut({columns:e,data:n,entityName:t$1,hasMore:s=false,isLoading:r=false,isLoadingMore:f=false,onLoadMore:l,onSortingChange:u$1,pageSize:D,sorting:v,toolbarComponent:g}){let I=useRef(null),{schemaErrorMessage:i}=u(),[A,d]=useState({}),[_,x]=useState({}),[J,M]=useState([]),[P,O]=useState([]),R=v??P;useEffect(()=>{I.current?.scrollTo({top:0});},[t$1]);function B(y){if(u$1){u$1(y);return}O(y);}let k=useReactTable({data:n,columns:e,state:{sorting:R,columnVisibility:_,rowSelection:A,columnFilters:J},initialState:{pagination:{pageSize:D??50}},enableRowSelection:true,onRowSelectionChange:d,onSortingChange:B,onColumnFiltersChange:M,onColumnVisibilityChange:x,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getRowId:y=>y._id,manualFiltering:true,manualPagination:true,manualSorting:true}),{rows:w}=k.getRowModel(),c=useRef(l),b=useRef(s),T=useRef(f);c.current=l,b.current=s,T.current=f;let z=useCallback(y=>{if(!c.current||!b.current||T.current)return;let a=y??I.current;a&&c$6(a)&&(T.current=true,c.current());},[]),L=b$5();useEffect(()=>{L&&z();},[z,w.length,s,f,L]);function q(y){z(y.currentTarget);}return i?jsx(Fragment,{}):jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:w-full fk:min-w-0 fk:flex-col fk:gap-4",children:[g?g(k):null,jsxs("div",{className:"fk:relative fk:min-h-0 fk:min-w-0 fk:flex-1",children:[f?jsx("div",{"aria-hidden":true,className:"fk:pointer-events-none fk:absolute fk:top-0 fk:right-px fk:left-px fk:z-20 fk:h-0.5 fk:overflow-hidden fk:opacity-40",children:jsx("div",{className:"fk:animate-progress fk:h-full fk:w-full fk:bg-foreground"})}):null,jsxs("div",{className:"fk:h-full fk:overflow-auto fk:pt-px fk:pb-20 fk:-ml-0.5 fk:pr-3",onScroll:q,ref:I,children:[r?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:gap-3",children:Array.from({length:D??50},(y,a)=>jsxs("div",{className:"fk:rounded-md fk:border fk:border-border fk:p-2 fk:corner-squircle",children:[jsx(t,{className:"fk:aspect-square fk:w-full fk:rounded-sm fk:corner-squircle"}),jsx(t,{className:"fk:mt-2 fk:h-3 fk:w-[75%]"}),jsx(t,{className:"fk:mt-1.5 fk:h-3 fk:w-[50%]"})]},`skeleton-${a}`))}):null,!r&&w.length===0?jsx("div",{className:"fk:flex fk:h-24 fk:items-center fk:justify-center fk:text-sm fk:text-muted-foreground",children:"No results."}):null,!r&&w.length>0?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:pl-0.5 fk:gap-3",children:w.map(y=>jsx(wo,{row:y},y.id))}):null]})]})]})}function wo({row:e}){let n=e.original,t=h$3(n)||"Untitled",s=n.mimeType??"",r=vo(n.size),f=e.getIsSelected(),l=[s,r].filter(Boolean).join(" \xB7 ");return jsxs("div",{className:`fk:relative fk:rounded-md fk:border fk:p-2 fk:transition-colors ${f?"fk:border-primary fk:ring-1 fk:ring-primary/40 fk:bg-muted/40":"fk:border-border fk:bg-background fk:hover:border-muted-foreground/30"} fk:corner-squircle`,"data-state":f?"selected":void 0,children:[jsx("div",{className:"fk:absolute fk:left-3 fk:top-3 fk:z-10 fk:mix-blend-difference",children:jsx(o$2,{className:"fk:border-white!","aria-label":`Select ${t}`,checked:f,onCheckedChange:u=>{e.toggleSelected(!!u);},onClick:u=>u.stopPropagation()})}),jsx("div",{className:"fk:group fk:absolute fk:right-2 fk:top-2 fk:z-10 fk:mix-blend-difference",children:jsx(Ve,{overlay:true,row:e})}),jsx(bo,{asset:n,filename:t}),jsx("div",{className:"fk:mt-2 fk:truncate fk:text-xs fk:font-medium",title:t,children:t}),l?jsx("div",{className:"fk:mt-0.5 fk:truncate fk:text-[11px] fk:text-muted-foreground",title:l,children:l}):null]})}function bo({asset:e,filename:n}){let[t,s]=useState(false),[r,f]=useState(false),l$1=e.url??"";if(!l$1&&!e.path)return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:corner-squircle",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:"No preview"})});if(!j$3(e)||!l$1){let i=i$1(e),A=defaultStyles[i];return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:[&>svg]:h-12 fk:[&>svg]:w-auto fk:corner-squircle",children:jsx(ho,{extension:i,...A||{}})})}let D=k$1(l$1,{width:320,height:320}),v=l$1;function g(i){i.stopPropagation(),f(false),s(true);}function I(i){s(i),i||f(false);}return jsxs(Fragment,{children:[jsx("button",{className:`fk:aspect-square fk:w-full fk:cursor-zoom-in fk:overflow-hidden fk:rounded-sm fk:border-0 fk:p-0 ${yo} fk:corner-squircle`,onClick:g,type:"button",children:jsx("img",{alt:n,className:"fk:h-full fk:w-full fk:object-contain",src:D})}),jsx(c$2,{open:t,onOpenChange:I,children:jsxs(h$1,{className:"fk:sm:max-w-4xl fk:p-3",children:[jsxs(i,{children:[jsx(k,{className:"fk:sr-only",children:"Asset preview"}),jsx(l,{className:"fk:sr-only",children:"Enlarged asset preview"})]}),jsxs("div",{className:"fk:relative fk:flex fk:h-[min(85vh,56rem)] fk:w-full fk:items-center fk:justify-center fk:overflow-hidden fk:rounded-md fk:corner-squircle",children:[r?null:jsx(LoaderCircle,{"aria-label":"Loading image",className:"fk:absolute fk:h-8 fk:w-8 fk:animate-spin fk:text-muted-foreground"}),jsx("img",{alt:n,className:`fk:max-h-full fk:max-w-full fk:object-contain fk:transition-opacity ${r?"fk:opacity-100":"fk:opacity-0"}`,onError:()=>f(true),onLoad:()=>f(true),src:v})]})]})})]})}var Fo=[{value:"image/gif",label:"GIF",icon:ImagePlayIcon},{value:"image/jpeg",label:"JPEG",icon:ImageIcon},{value:"video/mp4",label:"MP4",icon:FilePlayIcon},{value:"image/png",label:"PNG",icon:LayersIcon},{value:"image/svg+xml",label:"SVG",icon:SplinePointerIcon},{value:"image/webp",label:"WebP",icon:ImageIcon}];function je({entityName:e,isUploading:n=false,table:t,viewMode:s$1,onUploadClick:r,onViewModeChange:f$1,onSearchLoadingChange:l,onSearchWhereChange:u}){let D=t.getState().columnFilters.length>0,{projectId:v}=useParams(),g=c$3(),{scope:I}=c(),[i,A]=useState(null),{currentProjectSchema:d}=f(),_=b$2(),[x,J]=useState(""),M=useRef({}),P=useRef({});function O(){return {searchRequests:{searches:[{collection:"_assets"},{collection:"_tags"}]},commonParams:{q:""}}}let R=useMemo(()=>O(),[]),[B,k]=useState(R),{results:w$1,isLoading:c$1}=a$3(v??"",B),b=useRef(""),T=x.trim(),z=B.commonParams.q??"",L=T.length>0&&(c$1||z!==T),q=useMemo(()=>Lo(m=>{k({...R,commonParams:{q:m}});},300),[R]);useEffect(()=>()=>{q.cancel();},[q]);let y=t.getSelectedRowModel().rows.map(m=>m.original._id),{data:a}=w({entityNamePlural:"_tags",schema:d,scope:I,variables:be,...Y}),U=useMemo(()=>(Array.isArray(a)?a:[]).map(S=>({_id:S._id,name:S.name})),[a]),Z=useMemo(()=>U.map(m=>({value:m._id,label:m.name})),[U]),F=useCallback(()=>{if(!u)return;let m=[];Object.keys(M.current).length>0&&m.push(M.current),Object.keys(P.current).length>0&&m.push(P.current);let S=m.length===0?{}:m.length===1?m[0]:{AND:m},H=JSON.stringify(S);b.current!==H&&(b.current=H,u(S));},[u]);function j(){q.cancel(),J(""),k({...R,commonParams:{q:""}}),M.current={},F();}async function K(){g({type:"AlertDialog",payload:{options:{dialogTitle:`Delete ${y.length} asset${y.length>1?"s":""}`,dialogMessage:y.length>1?"Are you sure you want to delete the selected assets? They will be deleted permanently.":"Are you sure you want to delete the selected asset? The item will be deleted permanently.",dialogCancelTitle:"Cancel",dialogActionLabel:"Delete",isDestructive:true,dialogActionCancel:()=>{},dialogActionSubmit:()=>{g({type:"DeleteEntity",_id:`delete-batch-${Date.now()}`,payload:{entityId:y,entityName:e,silent:true}}),t.resetRowSelection();}}}});}useEffect(()=>{l?.(L);},[L,l]),useEffect(()=>{if(!u)return;if(T.length===0){M.current={},F();return}if(L)return;let m=w$1??[],S={};if(m.length===0)S={_id:{in:[]}};else {let H=m.filter(V=>V._entityNamePlural==="_assets").map(V=>V._id),xe=m.filter(V=>V._entityNamePlural==="_tags").map(V=>({tags:{some:{_id:{eq:V._id}}}})),Q=[];H.length>0&&Q.push({_id:{in:H}}),Q.push(...xe),Q.length===0?S={_id:{in:[]}}:Q.length===1?S=Q[0]:S={OR:Q};}M.current=S,F();},[F,L,u,w$1,T]);let h=JSON.stringify(t.getState().columnFilters);return useEffect(()=>{if(!u)return;let m=t.getState().columnFilters.find(V=>V.id==="mimeType"),S=Array.isArray(m?.value)?m?.value:[],H=t.getState().columnFilters.find(V=>V.id==="tags"),xe=Array.isArray(H?.value)?H?.value:[],Q=[];if(S.length>0&&Q.push({mimeType:{in:S}}),xe.length>0){let V=xe.map(jt=>({tags:{some:{_id:{eq:jt}}}}));Q.push(V.length===1?V[0]:{OR:V});}Q.length===0?P.current={}:Q.length===1?P.current=Q[0]:P.current={AND:Q},F();},[h,F,u,t]),jsxs("div",{className:"fk:flex fk:items-center fk:justify-between fk:pr-3",children:[jsxs("div",{className:"fk:flex fk:flex-1 fk:items-center fk:space-x-2",children:[jsxs("div",{className:"fk:relative",children:[c$1?jsx(LoaderCircle,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin"}):jsx(Search,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50"}),jsx(s,{placeholder:"Search assets...",name:"search-assets",value:x,onChange:m=>{let{value:S}=m.target;if(J(S),S.trim().length===0){j();return}q(S.trim());},className:"fk:h-8 fk:w-37.5 fk:lg:w-70 fk:px-7"}),x?jsx(b$4,{"aria-label":"Clear search",className:"fk:absolute fk:right-1 fk:top-1 fk:h-6 fk:w-6 fk:text-muted-foreground fk:hover:text-foreground fk:hover:bg-foreground/10 fk:cursor-pointer fk:rounded-full fk:bg-transparent fk:corner-squircle",onClick:j,type:"button",children:jsx(X,{className:"fk:h-4 fk:w-4"})}):null]}),t.getColumn("mimeType")&&jsx(a$4,{column:t.getColumn("mimeType"),options:Fo,title:"File type"}),t.getColumn("tags")&&jsx(a$4,{column:t.getColumn("tags"),options:Z,title:"Tags"}),D&&jsxs(b$4,{variant:"ghost",onClick:()=>{t.resetColumnFilters(),P.current={},F();},className:"fk:h-8 fk:px-2 fk:lg:px-3",children:["Reset",jsx(X,{className:"fk:ml-2 fk:h-4 fk:w-4"})]}),jsx(e$3,{table:t})]}),y.length>0?jsx("div",{className:"fk:flex fk:items-center fk:gap-2",children:jsxs(e$2,{children:[jsx(na,{disabled:!_,children:jsx(g$1,{asChild:true,children:jsxs(b$4,{className:"fk:h-8 fk:mr-2 fk:lg:flex",disabled:!_,size:"sm",variant:"secondary",children:["Actions ",jsx(ListChecks,{className:"fk:ml-2 fk:h-4 fk:w-4"})]})})}),jsxs(h$2,{align:"end",className:"fk:w-[240px]",children:[jsxs(j$2,{onClick:()=>A("add"),children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Add tag"]}),jsxs(j$2,{onClick:()=>A("remove"),children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Remove tag"]}),jsx(o,{}),jsxs(j$2,{onClick:K,className:"fk:text-destructive",children:[jsx(Trash2Icon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Delete asset",y.length>1?"s":""," (",y.length,")"]})]})]})}):null,jsxs("div",{className:"fk:ml-auto fk:flex fk:items-center fk:gap-2",children:[jsxs(c$5,{size:"sm",type:"single",value:s$1,onValueChange:m=>{(m==="list"||m==="grid")&&f$1(m);},children:[jsx(d$2,{"aria-label":"Grid view",value:"grid",children:jsx(LayoutGrid,{className:"fk:h-4 fk:w-4"})}),jsx(d$2,{"aria-label":"List view",value:"list",children:jsx(List,{className:"fk:h-4 fk:w-4"})})]}),jsx(na,{disabled:!_,children:jsxs(b$4,{"aria-busy":n,className:"fk:h-8 fk:lg:flex",disabled:!_||n,onClick:r,size:"sm",variant:"default",children:[n?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,"Upload assets"]})})]}),i!==null?jsx(Le,{assetIds:y,mode:i,onCompleted:()=>t.resetRowSelection(),onModeChange:A}):null]})}function Lo(e,n=300){let t,s=function(...r){t!==void 0&&clearTimeout(t),t=setTimeout(()=>{t=void 0,e.apply(this,r);},n);};return s.cancel=()=>{t!==void 0&&(clearTimeout(t),t=void 0);},s}var Uo=4*1024*1024;function Gt(){let{projectId:e}=useParams(),n=c$4(),t=b$2(),[s,r]=useState(false);async function f(l){if(!(!t||s)&&!(l&&l.length===0))try{await n({files:l,maxBytes:Uo,multiple:!0,onUploadStart:()=>{r(!0);},projectId:e});}finally{r(false);}}return {canMutate:t,isUploading:s,uploadFiles:l=>f(l),uploadFromDialog:()=>f()}}var Wt="flexkit-asset-manager:viewMode";function $t(){if(typeof localStorage>"u")return "grid";try{let e=localStorage.getItem(Wt);if(e==="list"||e==="grid")return e}catch{}return "grid"}function Jt(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Wt,e);}catch{}}var Me=36,Qo=[{_updatedAt:"DESC"},{_id:"DESC"}];function Xt(){let e="_assets",{search:n}=useLocation(),s=new URLSearchParams(n).get("id"),{scope:r}=c(),{schemaErrorMessage:f$1}=u(),{currentProject:l}=f(),u$1=l?.schema??[],[D,v]=useState([]),[g,I]=useState(()=>$t()),i=m({attributesSchema:b.attributes,actionsComponent:h=>jsx(Ve,{row:h}),checkboxSelect:"multiple",enableColumnSorting:true}),[A,d$1]=useState({}),[_,x]=useState(false),{canMutate:J,isUploading:M,uploadFiles:P,uploadFromDialog:O}=Gt(),R=useMemo(()=>{let h=s?{_id:{eq:s}}:{NOT:{path:{eq:null}}};return !A||Object.keys(A).length===0||s?h:{AND:[h,A]}},[s,A]),B=useMemo(()=>{if(D.length===0)return Qo;let h=D.map(({id:S,desc:H})=>({[S]:H?"DESC":"ASC"}));return h.some(S=>"_id"in S)?h:[...h,{_id:"DESC"}]},[D]),k=useMemo(()=>({where:R,offset:0,limit:Me,sort:B}),[R,B]);function w$1(h){v(h);}function c$1(h){I(h),Jt(h);}let{isLoading:b$2,isLoadingMore:T,fetchMore:z,count:L,data:q,isProjectDisabled:y}=w({entityNamePlural:e,schema:u$1,scope:r,variables:k,selection:"list"}),a$2=_||b$2&&(q==null||q.length===0),U=q?.length??0,Z=!_&&L>0&&U>0&&U<L,F=useCallback(()=>{z({variables:{offset:0,limit:Me}});},[z]),j=useMemo(()=>Array.from({length:Me},(h,m)=>({_id:`loading-${m}`})),[]),K=useMemo(()=>Go(i),[i]);return y?jsx("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:jsx(a,{})}):jsxs("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:[jsx(b$1,{}),jsxs("div",{className:"fk:mb-4 fk:flex fk:items-center fk:gap-2 fk:pr-3",children:[jsx("h2",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:"Asset Manager"}),a$2?null:jsxs("span",{className:"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground",children:[L.toLocaleString()," ",L===1?"record":"records"]})]}),f$1?null:jsx(a$1,{disabled:!J||M,onDropFiles:P,children:g==="list"?jsx(d,{classNames:{row:"fk:h-20"},columns:a$2?K:i,data:a$2?j:q??[],entityName:b.name,hasMore:Z,isLoadingMore:T,pageSize:Me,sorting:D,onLoadMore:F,onSortingChange:w$1,toolbarComponent:h=>jsx(je,{entityName:b.name,isUploading:M,table:h,viewMode:g,onSearchLoadingChange:x,onSearchWhereChange:d$1,onUploadClick:O,onViewModeChange:c$1})}):jsx(Ut,{columns:i,data:a$2?[]:q??[],entityName:b.name,hasMore:Z,isLoading:a$2,isLoadingMore:T,pageSize:Me,sorting:D,onLoadMore:F,onSortingChange:w$1,toolbarComponent:h=>jsx(je,{entityName:b.name,isUploading:M,table:h,viewMode:g,onSearchLoadingChange:x,onSearchWhereChange:d$1,onUploadClick:O,onViewModeChange:c$1})})}),jsx(Outlet,{})]})}function Go(e){return e.map(n=>({...n,cell:()=>jsx(t,{className:"fk:h-4 fk:w-full",style:{marginTop:"7px",marginBottom:"6px"}})}))}function Rn(){return jsxs(x,{orientation:"horizontal",className:"fk:h-full",children:[jsx(y,{className:"fk:p-3",defaultSize:"82%",children:jsx("div",{className:"fk:flex fk:flex-col fk:h-full",children:jsx(Xt,{})})}),jsx(z,{className:"fk:hover:bg-blue-500 fk:transition-colors",withHandle:true}),jsx(y,{defaultSize:"18%",minSize:"10%",children:jsx("div",{className:"fk:sm:hidden fk:md:block",children:jsx(Pt,{})})})]})}export{Rn as Root};//# sourceMappingURL=root-FTT4XDCE.js.map
23
- //# sourceMappingURL=root-FTT4XDCE.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';import {b,c}from'./chunk-HLHLBMLJ.js';import'./chunk-MKK65RQB.js';import'./chunk-UOR437J2.js';import {a}from'./chunk-BMX4URYN.js';import {g,f as f$1}from'./chunk-DHVKE36X.js';import'./chunk-2P2QV3K6.js';import'./chunk-2NXQF2F7.js';import'./chunk-ZZRA4567.js';import'./chunk-A7XHA2P6.js';import {f}from'./chunk-B7QMGBK5.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {K,M,Q,N,S,U as U$1,s as s$1,R,V as V$1,W,X,P}from'./chunk-DGIY4SKN.js';import'./chunk-SZEGGBOC.js';import {b as b$1}from'./chunk-32ZU4MLE.js';import'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import'./chunk-USNXQOMJ.js';import'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {Outlet,useLocation,NavLink}from'react-router-dom';import {useState}from'react';import {SearchIcon,XIcon,SquarePenIcon,BellIcon,BotIcon,HistoryIcon,InboxIcon,PlugIcon}from'lucide-react';import T from'swr';import {jsxs,jsx}from'react/jsx-runtime';var U=300,s=NavLink;function V(){let{currentProjectId:a}=f(),{data:e}=T(a?g(a).approvalsCount:null,f$1,{refreshInterval:3e4}),n=e?.pendingCount??0;return n===0?null:jsx(b$1,{className:"fk:ml-auto fk:h-5 fk:min-w-5 fk:justify-center fk:rounded-full fk:bg-amber-500/20 fk:px-1.5 fk:text-[0.6875rem] fk:text-amber-600 fk:border-none fk:corner-squircle",children:n>99?"99+":n.toString()})}function F(){let{currentProjectId:a$1}=f(),e=a(a$1),n=e?.needsActionCount??0,l=n>0?n:e?.unreadCount??0;return l===0?null:jsx(b$1,{className:`fk:ml-auto fk:h-5 fk:min-w-5 fk:justify-center fk:rounded-full fk:px-1.5 fk:text-[0.6875rem] fk:border-none fk:corner-squircle ${n>0?"fk:bg-amber-500/20 fk:text-amber-600":"fk:bg-muted fk:text-muted-foreground"}`,children:l>99?"99+":l.toString()})}function B(){let e=useLocation().pathname.replace(/\/$/,""),n=e.endsWith("/ai/agent"),l=e.endsWith("/ai/runs"),P$1=e.endsWith("/ai/approvals"),R$1=e.endsWith("/ai/activity")||e.includes("/ai/activity/"),W$1=e.includes("/ai/plugins")||e.includes("/ai/skills"),L=e.includes("/ai/automations"),[d,k]=useState(""),E=b(d.trim(),U);return jsxs(N,{collapsible:"icon",variant:"inset",children:[jsx(S,{className:"fk:shrink-0 fk:pb-1.5 fk:group-data-[collapsible=icon]:hidden",children:jsxs(U$1,{className:"fk:relative",children:[jsx(SearchIcon,{className:"fk:absolute fk:left-2 fk:top-1/2 fk:size-3.5 fk:-translate-y-1/2 fk:text-muted-foreground"}),jsx(s$1,{className:"fk:h-8 fk:bg-background fk:pl-7 fk:pr-7 fk:text-sm",placeholder:"Search chats...",value:d,onChange:G=>k(G.target.value)}),d?jsx("button",{"aria-label":"Clear search",className:"fk:absolute fk:right-2 fk:top-1/2 fk:-translate-y-1/2 fk:cursor-pointer fk:text-muted-foreground fk:hover:text-foreground",type:"button",onClick:()=>k(""),children:jsx(XIcon,{className:"fk:size-3.5"})}):null]})}),jsxs(R,{children:[jsx(S,{children:jsxs(V$1,{children:[jsx(W,{children:jsx(X,{asChild:true,isActive:n,tooltip:"New chat",children:jsxs(s,{to:"agent",children:[jsx(SquarePenIcon,{className:"fk:h-4 fk:w-4",strokeWidth:2}),jsx("span",{children:"New chat"})]})})}),jsx(W,{children:jsx(X,{asChild:true,isActive:R$1,tooltip:"Activity",children:jsxs(s,{to:"activity",children:[jsx(BellIcon,{className:"fk:h-4 fk:w-4",strokeWidth:2}),jsx("span",{children:"Activity"}),jsx(F,{})]})})}),jsx(W,{children:jsx(X,{asChild:true,isActive:L,tooltip:"Automations",children:jsxs(s,{to:"automations",children:[jsx(BotIcon,{className:"fk:h-4 fk:w-4",strokeWidth:2}),jsx("span",{children:"Automations"})]})})}),jsx(W,{children:jsx(X,{asChild:true,isActive:l,tooltip:"Run History",children:jsxs(s,{to:"runs",children:[jsx(HistoryIcon,{className:"fk:h-4 fk:w-4",strokeWidth:2}),jsx("span",{children:"Run History"})]})})}),jsx(W,{children:jsx(X,{asChild:true,isActive:P$1,tooltip:"Approvals",children:jsxs(s,{to:"approvals",children:[jsx(InboxIcon,{className:"fk:h-4 fk:w-4",strokeWidth:2}),jsx("span",{children:"Approvals"}),jsx(V,{})]})})}),jsx(W,{children:jsx(X,{asChild:true,isActive:W$1,tooltip:"Plugins",children:jsxs(s,{to:"plugins",children:[jsx(PlugIcon,{className:"fk:size-4"}),jsx("span",{children:"Plugins"})]})})})]})}),jsx(S,{className:"fk:mt-4 fk:group-data-[collapsible=icon]:hidden",children:jsx(U$1,{children:jsx(c,{query:E})})})]}),jsx(P,{})]})}function pt(){let{currentProjectId:a}=f(),e=K();return a?jsxs(M,{className:"fk:h-full",defaultOpen:e,children:[jsx(B,{}),jsx(Q,{className:"fk:min-w-0",children:jsx("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:min-w-0 fk:flex-col fk:overflow-hidden fk:pl-4 fk:pt-3",children:jsx("div",{className:"fk:flex fk:min-h-0 fk:min-w-0 fk:flex-1 fk:flex-col",children:jsx(Outlet,{})})})})]}):jsx("main",{className:"fk:flex fk:h-full fk:flex-1 fk:items-center fk:justify-center fk:p-8 fk:text-sm fk:text-muted-foreground",children:"Select a project to manage automations and skills."})}export{pt as Root};//# sourceMappingURL=root-PDSTTPHO.js.map
2
- //# sourceMappingURL=root-PDSTTPHO.js.map
@@ -1,2 +0,0 @@
1
- import'./index.css';import {a as a$1}from'./chunk-RY6PECIT.js';import {f as f$1,i,g as g$1,v,j,b as b$1,e as e$1,k,t,s,d,a,l,h,o as o$2,m,n,r as r$1,c as c$4,p,q as q$1}from'./chunk-ME55YNBF.js';import {c as c$2}from'./chunk-2DXR5NJV.js';import {c as c$1}from'./chunk-BMO7JFAX.js';import {c}from'./chunk-XMOSCJOI.js';import'./chunk-YDVO6XWD.js';import {a as a$2}from'./chunk-ERDARDGB.js';import {f}from'./chunk-B7QMGBK5.js';import {g}from'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {K,M,Q,O,qa,N,R,S,s as s$1,T,V,W,X,o,P}from'./chunk-DGIY4SKN.js';import {e as e$2,g as g$2,h as h$1,j as j$1,q,r,s as s$2,o as o$1}from'./chunk-SZEGGBOC.js';import {v as v$1}from'./chunk-32ZU4MLE.js';import {b}from'./chunk-U45E5X3H.js';import'./chunk-HDOIOXMP.js';import {b as b$2,c as c$3,e}from'./chunk-USNXQOMJ.js';import {b as b$3}from'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useMemo,useRef,useState,useCallback,useEffect,useReducer}from'react';import {useLocation}from'react-router-dom';import Bt from'graphology';import Ft from'graphology-layout-forceatlas2';import Jt from'graphology-layout-forceatlas2/worker';import Yt,{DEFAULT_STYLES}from'sigma';import {jsxs,jsx}from'react/jsx-runtime';import {gql}from'@apollo/client';import {useApolloClient,useQuery}from'@apollo/client/react';import {formatDistance}from'date-fns';import {SearchIcon,ScanIcon,LoaderCircleIcon,ExpandIcon,EyeOffIcon,EraserIcon,XIcon,SquareArrowOutUpRightIcon}from'lucide-react';import {useDebounce}from'use-debounce';function ue(e){return Math.min(2e4,2e3+e*9)}function gt({mean:e,max:t,diagonal:n}){let r=Math.max(.05,n*.0015);return e<r&&t<r*20}var Qt=40,$t=400,Ut=1200,Vt=2;function Zt(e){return 5+Math.min(10,Math.sqrt(e)*2)}function bt(e){return Qt*(.8+Math.sqrt(e)*.6)}function yt(e,t,n){let r=Math.random()*Math.PI*2;return Array.from({length:t},(i,a)=>{let o=r+a/t*Math.PI*2+Math.random()*.3,b=n*(.9+Math.random()*.2);return {x:e.x+Math.cos(o)*b,y:e.y+Math.sin(o)*b}})}function St(e,t){return !Number.isNaN(e.getNodeAttribute(t,"x"))}function Kt(e,t){if(t.length===0)return {center:{x:0,y:0},reach:0};let n=t.reduce((i,a)=>({x:i.x+e.getNodeAttribute(a,"x"),y:i.y+e.getNodeAttribute(a,"y")}),{x:0,y:0});n.x/=t.length,n.y/=t.length;let r=t.reduce((i,a)=>Math.max(i,Math.hypot(e.getNodeAttribute(a,"x")-n.x,e.getNodeAttribute(a,"y")-n.y)),0);return {center:n,reach:r}}function Wt(e,t){let n=new Map;t.forEach(r=>{let i=e.neighbors(r).find(a=>!t.has(a)&&St(e,a))??null;n.set(i,[...n.get(i)??[],r]);}),n.forEach((r,i)=>{let a;if(i){let o={x:e.getNodeAttribute(i,"x"),y:e.getNodeAttribute(i,"y")};a=yt(o,r.length,bt(r.length));}else {let o=e.nodes().filter(A=>!t.has(A)&&St(e,A)),b=Kt(e,o);a=yt(b.center,r.length,b.reach+bt(r.length));}a.forEach((o,b)=>e.mergeNodeAttributes(r[b],o));});}var Ne=class{constructor(t){this.graph=t;this.positions=new Float64Array(t.order*2);let n=0;this.graph.forEachNode((r,i)=>{this.positions[n]=i.x,this.positions[n+1]=i.y,n+=2;});}positions;measure(){let{graph:t,positions:n}=this,r=0,i=0,a=0,o=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,_=Number.NEGATIVE_INFINITY,f=0;return t.forEachNode((s,p)=>{let{x:E,y:S}=p;if(f+1<n.length&&!p.fixed){let x=Math.hypot(E-n[f],S-n[f+1]);r+=x,i=Math.max(i,x),a+=1;}n[f]=E,n[f+1]=S,f+=2,o=Math.min(o,E),b=Math.min(b,S),A=Math.max(A,E),_=Math.max(_,S);}),{mean:a>0?r/a:0,max:i,diagonal:t.order>0?Math.hypot(A-o,_-b):0}}};function en(e,t,n){let r=false,i=new Set,a=e.order>0;return e.forEachNode(o=>{t.nodes[o]||(e.dropNode(o),r=true);}),Object.values(t.nodes).forEach(o=>{e.hasNode(o.key)||(e.addNode(o.key,{entity:o.entity,label:o.label,color:n[o.entity]??"#71717a",size:5,x:Number.NaN,y:Number.NaN}),i.add(o.key),r=true);}),e.forEachEdge(o=>{t.edges[o]||(e.dropEdge(o),r=true);}),Object.values(t.edges).forEach(o=>{e.hasEdge(o.key)||(e.addEdgeWithKey(o.key,o.source,o.target,{size:1}),r=true);}),Wt(e,i),r&&e.forEachNode(o=>{e.setNodeAttribute(o,"size",Zt(e.degree(o)));}),{changed:r,added:i,hadNodes:a}}function xt({scene:e,colors:t,theme:n,apiRef:r,onSelect:i,onContextMenu:a,onExpand:o,onPin:b,onLayoutChange:A}){let _=useRef(null),f=useRef(null),s=useRef(null),p=useRef(null),E=useRef(null),S=useRef(null),x=useRef(null),c=useRef(null),N=useRef(null),d=useRef(new Set),C=useRef(e.pinned);C.current=e.pinned;let w=useRef({key:null,nodes:[]}),T=useRef({onSelect:i,onContextMenu:a,onExpand:o,onPin:b,onLayoutChange:A}),[U,M]=useState(0);T.current={onSelect:i,onContextMenu:a,onExpand:o,onPin:b,onLayoutChange:A},f.current||(f.current=new Bt({type:"undirected",multi:true}));let I=useCallback(()=>{E.current!==null&&(window.clearTimeout(E.current),E.current=null),c.current!==null&&(window.clearInterval(c.current),c.current=null),p.current&&(p.current.kill(),p.current=null,N.current=null,T.current.onLayoutChange(false));let l=f.current;d.current.forEach(g=>{l?.hasNode(g)&&l.setNodeAttribute(g,"fixed",C.current[g]===true);}),d.current=new Set;},[]),L=useCallback((l,g=[])=>{let h=f.current;if(I(),!h||h.order===0)return;if(d.current=new Set(g.filter(k=>h.hasNode(k))),d.current.forEach(k=>h.setNodeAttribute(k,"fixed",true)),!h.someNode((k,P)=>!P.fixed)){I();return}let y=Ft.inferSettings(h),v=new Jt(h,{settings:{...y,adjustSizes:true,gravity:.2,slowDown:(y.slowDown??1)*2},outputReducer:(k,P)=>{let ne=S.current;return ne&&ne.node===k&&(P.x=ne.x,P.y=ne.y),P}}),D=performance.now(),q=new Ne(h),Y=false,z=0;p.current=v,N.current=D+l,v.start(),T.current.onLayoutChange(true);let u=()=>{S.current?(N.current=performance.now()+l,E.current=window.setTimeout(u,l)):I();};E.current=window.setTimeout(u,l),c.current=window.setInterval(()=>{let k=q.measure();if(S.current){z=0;return}Y=Y||k.max>0,z=Y&&gt(k)?z+1:0,z>=Vt&&performance.now()-D>=Ut&&I();},$t);},[I]),$=useCallback(l=>{let g=f.current,h=s.current;if(!g||!h)return;let y=w.current;if(h.setNodesState(y.nodes.filter(v=>g.hasNode(v)),{isNeighbour:false}),l&&g.hasNode(l)){let v=g.neighbors(l);h.setNodesState(v,{isNeighbour:true}),w.current={key:l,nodes:v};}else w.current={key:null,nodes:[]};},[]);return useEffect(()=>{let l=_.current,g=f.current;if(!l||!g)return;if(l.clientWidth===0||l.clientHeight===0){let u=new ResizeObserver(()=>{l.clientWidth>0&&l.clientHeight>0&&(u.disconnect(),M(k=>k+1));});return u.observe(l),()=>u.disconnect()}let h=n==="dark",y=new Yt(g,l,{customNodeState:{isNeighbour:false},customEdgeState:{},customGraphState:{isDense:g.order>300,isZoomedIn:false},settings:{allowInvalidContainer:true,itemSizesReference:"screen",enableNodeDrag:true,renderEdgeLabels:false,labelRenderedSizeThreshold:7,labelDensity:.1,labelGridCellSize:80},styles:{nodes:[{...DEFAULT_STYLES.nodes,size:{whenState:"isHighlighted",then:u=>u.size+5,else:{whenState:"isHovered",then:u=>u.size+2,else:{attribute:"size"}}},cursor:"pointer",labelColor:h?"#e4e4e7":"#18181b",labelSize:12,labelFont:"ui-sans-serif, system-ui, sans-serif",labelVisibility:(u,k,P)=>k.isHovered||k.isHighlighted?"visible":P.isDense&&!P.isZoomedIn&&!k.isNeighbour?"hidden":"auto",backdropColor:h?"#27272a":"#ffffff",backdropShadowColor:h?"rgba(0, 0, 0, 0.6)":"rgba(0, 0, 0, 0.25)"}],edges:[{...DEFAULT_STYLES.edges,color:h?"#3f3f46":"#d4d4d8",size:1}]}});s.current=y,y.on("clickNode",({node:u})=>{T.current.onSelect(u);}),y.on("clickStage",()=>{T.current.onSelect(null);}),y.on("doubleClickNode",({node:u,event:k})=>{k.preventSigmaDefault(),T.current.onExpand(u);}),y.on("rightClickNode",({node:u,event:k})=>{k.preventSigmaDefault();let P=k.original;P.preventDefault(),T.current.onSelect(u),T.current.onContextMenu(u,{x:P.clientX,y:P.clientY});}),y.on("enterNode",({node:u})=>$(u)),y.on("leaveNode",()=>$(null));let v=u=>{let k=new Set([u,...g.neighbors(u)]);return g.nodes().filter(P=>P===u||!k.has(P))};y.on("nodeDragStart",({node:u})=>{S.current={node:u,x:g.getNodeAttribute(u,"x"),y:g.getNodeAttribute(u,"y")},g.size>0?(L(ue(g.order),v(u)),x.current=p.current):(I(),g.setNodeAttribute(u,"fixed",true));}),y.on("nodeDrag",({node:u})=>{S.current?.node===u&&(S.current.x=g.getNodeAttribute(u,"x"),S.current.y=g.getNodeAttribute(u,"y"));}),y.on("nodeDragEnd",({node:u})=>{let k=S.current!==null&&p.current!==null&&p.current===x.current;S.current=null,x.current=null,T.current.onPin(u),k&&L(ue(g.order),v(u));});let D=y.getCamera(),q=({ratio:u})=>{let k=u<.45;y.getGraphState().isZoomedIn!==k&&y.setGraphState({isZoomedIn:k});};D.on("updated",q);let Y=u=>u.preventDefault();l.addEventListener("contextmenu",Y);let z=new ResizeObserver(()=>{l.clientWidth>0&&l.clientHeight>0&&(y.resize(),y.scheduleRefresh());});return z.observe(l),r.current={fit:()=>{D.reset({duration:300});}},()=>{z.disconnect(),D.off("updated",q),l.removeEventListener("contextmenu",Y),r.current=null,s.current=null,w.current={key:null,nodes:[]},y.kill();}},[n,U,r,L,I,$]),useEffect(()=>{let l=f.current;if(!l)return;I();let{changed:g,added:h,hadNodes:y}=en(l,e,t);if(!g)return;if(s.current?.setGraphState({isDense:l.order>300}),$(l.hasNode(w.current.key??"")?w.current.key:null),l.size===0){I();return}let v=y&&h.size>0?l.nodes().filter(D=>!h.has(D)):[];L(ue(v.length>0?h.size:l.order),v);},[e.version]),useEffect(()=>{let l=f.current;l&&l.forEachNode((g,h)=>{l.setNodeAttribute(g,"color",t[h.entity]??"#71717a");});},[t]),useEffect(()=>{let l=f.current,g=s.current;if(!l||!g)return;let h=new Set(e.hiddenEntities),y=false;l.forEachNode((v,D)=>{g.setNodeState(v,{isHidden:h.has(D.entity),isHighlighted:v===e.selected});let q=e.pinned[v]===true||d.current.has(v);(D.fixed??false)!==q&&(l.setNodeAttribute(v,"fixed",q),y=true);}),y&&N.current!==null&&L(Math.max(500,N.current-performance.now()),[...d.current]),l.forEachEdge((v,D,q,Y)=>{g.setEdgeState(v,{isHidden:h.has(l.getNodeAttribute(q,"entity"))||h.has(l.getNodeAttribute(Y,"entity"))});});},[e.hiddenEntities,e.selected,e.pinned,e.version,U,n,L]),useEffect(()=>I,[I]),jsx("div",{className:"fk:h-full fk:w-full fk:min-h-0",ref:_})}function Nt({menu:e,relationships:t,isPinned:n,onClose:r$1,onExpandAll:i,onExpandAttribute:a,onHide:o,onHideOthers:b,onTogglePin:A,onOpenRecord:_}){let f=e?.key??"";return jsxs(e$2,{onOpenChange:s=>{s||r$1();},open:e!==null,children:[jsx(g$2,{asChild:true,children:jsx("span",{"aria-hidden":"true",className:"fk:fixed fk:size-0",style:{left:e?.x??0,top:e?.y??0}})}),jsxs(h$1,{align:"start",className:"fk:w-52","data-testid":"graph-context-menu",side:"bottom",children:[jsx(j$1,{onSelect:()=>i(f),children:"Expand all"}),t.length>0?jsxs(q,{children:[jsx(r,{children:"Expand"}),jsx(s$2,{className:"fk:max-h-80 fk:overflow-y-auto",children:t.map(s=>jsx(j$1,{onSelect:()=>a(f,s),children:s.label},s.name))})]}):null,jsx(o$1,{}),jsx(j$1,{onSelect:()=>o(f),children:"Hide"}),jsx(j$1,{onSelect:()=>b(f),children:"Hide others"}),jsx(j$1,{onSelect:()=>A(f),children:n?"Unpin position":"Pin position"}),jsx(o$1,{}),jsx(j$1,{onSelect:()=>_(f),children:"Open record"})]})]})}var ve={nodes:{},edges:{},counts:{},fetched:{},hiddenEntities:[],pinned:{},selected:null,notice:null,version:0};function nn(e,t){if(!t)return e;let n={...e};return Object.entries(t).forEach(([r,i])=>{n[r]={...n[r],...i};}),n}function rn(e,t){if(!t)return e;let n={...e};return Object.entries(t).forEach(([r,i])=>{let a={...n[r]};Object.entries(i).forEach(([o,b])=>{a[o]=Math.max(a[o]??0,b);}),n[r]=a;}),n}function Et(e,t){let n=Object.fromEntries(Object.entries(e.nodes).filter(([a])=>!t.has(a))),r=Object.fromEntries(Object.entries(e.edges).filter(([,a])=>!t.has(a.source)&&!t.has(a.target))),i=Object.fromEntries(Object.entries(e.pinned).filter(([a])=>!t.has(a)));return {...e,nodes:n,edges:r,pinned:i,selected:e.selected&&t.has(e.selected)?null:e.selected,version:e.version+1}}function vt(e,t){switch(t.type){case "merge":{let n={...e.nodes},r=Object.keys(n).length,i=0;t.data.nodes.forEach(o=>{if(!n[o.key]){if(r>=c$4){i+=1;return}n[o.key]=o,r+=1;}});let a={...e.edges};return t.data.edges.forEach(o=>{n[o.source]&&n[o.target]&&(a[o.key]=o);}),{...e,nodes:n,edges:a,counts:nn(e.counts,t.data.counts),fetched:rn(e.fetched,t.fetched),notice:i>0?`The canvas holds ${c$4.toLocaleString()} nodes at most; ${i.toLocaleString()} were left out. Hide some nodes to make room.`:e.notice,version:e.version+1}}case "remove":return Et(e,new Set(t.keys));case "keepOnly":{let n=new Set(t.keys);return Et(e,new Set(Object.keys(e.nodes).filter(r=>!n.has(r))))}case "clear":return {...ve,hiddenEntities:e.hiddenEntities,version:e.version+1};case "toggleEntity":return {...e,hiddenEntities:e.hiddenEntities.includes(t.entity)?e.hiddenEntities.filter(n=>n!==t.entity):[...e.hiddenEntities,t.entity]};case "select":return e.selected===t.key?e:{...e,selected:t.key};case "togglePin":{let n={...e.pinned};return n[t.key]?delete n[t.key]:n[t.key]=true,{...e,pinned:n}}case "notice":return {...e,notice:t.message};default:return e}}function At(e){return Object.values(e.nodes).reduce((t,n)=>(t[n.entity]=(t[n.entity]??0)+1,t),{})}function Ct(e,t){return Object.values(e.edges).reduce((n,r)=>(r.source===t?n[r.sourceAttribute]=(n[r.sourceAttribute]??0)+1:r.target===t&&(n[r.targetAttribute]=(n[r.targetAttribute]??0)+1),n),{})}function wt(e,t){return Object.values(e.edges).flatMap(n=>n.source===t?[n.target]:n.target===t?[n.source]:[])}function un(e){let[t,n,r]=[1,3,5].map(a=>{let o=parseInt(e.slice(a,a+2),16)/255;return o<=.03928?o/12.92:((o+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r>.3?"#0a0a0a":"#ffffff"}function Tt({node:e$2,schema:t,scope:n$1,scene:r,colors:i,isLoading:a,onClose:o,onOpenRecord:b,onExpandAll:A,onExpandAttribute:_,onHide:f}){let s=g$1(t,e$2.entity),p=useMemo(()=>gql(s?o$2({entity:s,scope:n$1}):"query GraphDetails { __typename }"),[s,n$1]),E=useMemo(()=>gql(s?m({entity:s}):"query GraphCounts { __typename }"),[s]),S=useQuery(p,{variables:{id:e$2.id},skip:!s}),x=useQuery(E,{variables:{id:e$2.id},skip:!s}),c=s?S.data?.[s.plural]?.[0]:void 0,N=s?x.data?.[s.plural]?.[0]:void 0,d=useMemo(()=>Ct(r,e$2.key),[r,e$2.key]),C=s?e$1(s):[],w=s?n(s):[],T=c?._updatedAt?new Date(c._updatedAt):null,U=i[e$2.entity]??"#71717a";return jsxs("aside",{"aria-label":"Selected record",className:"fk:flex fk:w-72 fk:shrink-0 fk:flex-col fk:gap-5 fk:overflow-y-auto fk:border-l fk:bg-background fk:p-4 fk:text-sm","data-testid":"graph-inspector",children:[jsxs("div",{className:"fk:flex fk:flex-col fk:gap-2",children:[jsxs("div",{className:"fk:flex fk:items-center fk:justify-between fk:gap-2",children:[jsx("span",{className:"fk:inline-flex fk:items-center fk:rounded-full fk:px-2 fk:py-0.5 fk:text-xs fk:font-medium",style:{backgroundColor:U,color:un(U)},children:s?h(s):e$2.entity}),jsx(b$3,{"aria-label":"Close",className:"fk:size-7",onClick:o,size:"icon",variant:"ghost",children:jsx(XIcon,{className:"fk:size-4"})})]}),jsx("h2",{className:"fk:text-base fk:font-semibold fk:leading-snug fk:break-words",children:e$2.label}),jsxs("div",{className:"fk:flex fk:gap-1.5",children:[jsxs(b$3,{onClick:()=>b(e$2.key),size:"xs",children:[jsx(SquareArrowOutUpRightIcon,{}),"Open record"]}),jsxs(b$2,{children:[jsx(c$3,{asChild:true,children:jsxs(b$3,{"aria-label":"Expand every relationship",disabled:a,onClick:()=>A(e$2.key),size:"xs",variant:"outline",children:[a?jsx(LoaderCircleIcon,{className:"fk:animate-spin"}):jsx(ExpandIcon,{}),"Expand"]})}),jsx(e,{children:"Load the first related records of every relationship"})]}),jsxs(b$3,{"aria-label":"Hide this node",onClick:()=>f(e$2.key),size:"xs",variant:"outline",children:[jsx(EyeOffIcon,{}),"Hide"]})]})]}),jsxs("section",{className:"fk:flex fk:flex-col fk:gap-2",children:[jsx("h3",{className:"fk:text-xs fk:font-medium fk:text-muted-foreground",children:"Attributes"}),S.loading&&!c?jsx("span",{className:"fk:text-muted-foreground",children:"Loading\u2026"}):jsxs("dl",{className:"fk:grid fk:grid-cols-[minmax(0,2fr)_minmax(0,3fr)] fk:gap-x-3 fk:gap-y-1.5",children:[w.map(M=>jsxs("div",{className:"fk:contents",children:[jsx("dt",{className:"fk:truncate fk:text-muted-foreground",title:M.label,children:M.label}),jsx("dd",{className:"fk:min-w-0 fk:break-words",children:c&&r$1(c[M.name],n$1)||"\u2014"})]},M.name)),T?jsxs("div",{className:"fk:contents",children:[jsx("dt",{className:"fk:text-muted-foreground",children:"Updated"}),jsx("dd",{children:formatDistance(T,new Date,{addSuffix:true})})]}):null]})]}),C.length>0?jsxs("section",{className:"fk:flex fk:flex-col fk:gap-1",children:[jsx("h3",{className:"fk:mb-1 fk:text-xs fk:font-medium fk:text-muted-foreground",children:"Relationships"}),C.map(M=>{let I=g$1(t,M.relationship?.entity??""),L=N?.[`${M.name}Connection`]?.aggregate?.count?.nodes,$=d[M.name]??0,l=r.fetched[e$2.key]?.[M.name]??0,g=typeof L=="number"&&l>=L;return jsxs("div",{className:"fk:flex fk:h-8 fk:items-center fk:gap-2",children:[jsx("span",{"aria-hidden":"true",className:"fk:size-2 fk:shrink-0 fk:rounded-full",style:{backgroundColor:i[M.relationship?.entity??""]??"#71717a"}}),jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate",title:I?h(I):void 0,children:M.label}),jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:typeof L=="number"?`${$} of ${L.toLocaleString()}`:$}),L===0||g?null:jsx(b$3,{className:"fk:h-6 fk:px-2 fk:text-xs",disabled:a,onClick:()=>_(e$2.key,M),size:"xs",variant:"outline",children:l>0?"More":"Expand"})]},M.name)})]}):null]})}var kn=250,bn=5;function yn(e,t){let n=t.trim();return !n||e.length===0?null:{searchRequests:{searches:e.map(r=>({collection:r.plural}))},commonParams:{q:n,limit:bn}}}function Sn(e){let t=useMemo(()=>p(e),[e]),n=useMemo(()=>gql(t.length>0?q$1(t):"query GraphTotals { __typename }"),[t]),{data:r}=useQuery(n,{skip:t.length===0});return useMemo(()=>Object.fromEntries(t.map(i=>[i.plural,r?.[`${i.plural}Total`]]).filter(i=>typeof i[1]=="number")),[t,r])}function Gt({projectId:e,entities:t,colors:n,onCanvas:r,hiddenEntities:i,onStart:a,onHit:o$1,onToggleEntity:b}){let[A,_]=useState(""),[f]=useDebounce(A,kn),s=useMemo(()=>t.filter(d=>d.attributes.some(C=>C.searchable)),[t]),p=useMemo(()=>yn(s,f),[s,f]),{results:E,isLoading:S$1}=a$1(e,p),x=Sn(t),c=useMemo(()=>new Map(t.map(d=>[d.name,d])),[t]),N$1=Object.keys(r).sort();return jsxs(N,{collapsible:"icon",variant:"inset",children:[jsxs(R,{children:[jsxs(S,{className:"fk:group-data-[collapsible=icon]:hidden",children:[jsxs("div",{className:"fk:relative",children:[jsx(SearchIcon,{className:"fk:pointer-events-none fk:absolute fk:left-2 fk:top-1/2 fk:size-4 fk:-translate-y-1/2 fk:text-muted-foreground"}),jsx(s$1,{"aria-label":"Search records to add to the canvas",className:"fk:h-8 fk:bg-background fk:pl-8 fk:shadow-none",onChange:d=>_(d.target.value),placeholder:s.length>0?"Search records\u2026":"No searchable entity",disabled:s.length===0,value:A})]}),p?jsxs("ul",{className:"fk:mt-2 fk:flex fk:flex-col fk:gap-0.5","data-testid":"graph-search-results",children:[E.map(d=>{let C=c.get(d._entityName),w=d[a$2(C)?.name??""];return jsx("li",{children:jsxs("button",{className:"fk:flex fk:w-full fk:items-center fk:gap-2 fk:rounded-md fk:px-2 fk:py-1.5 fk:text-left fk:text-sm fk:hover:bg-sidebar-accent",onClick:()=>o$1(d._entityName,d._id),type:"button",children:[jsx("span",{"aria-hidden":"true",className:"fk:size-2.5 fk:shrink-0 fk:rounded-full",style:{backgroundColor:n[d._entityName]??"#71717a"}}),jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate",children:String(w??d._id)})]})},`${d._entityName}:${d._id}`)}),!S$1&&E.length===0?jsx("li",{className:"fk:px-2 fk:py-1.5 fk:text-sm fk:text-muted-foreground",children:"Nothing found"}):null]}):null]}),jsxs(S,{children:[jsx(T,{children:"Nodes"}),jsx(V,{children:t.map(d=>jsx(W,{children:jsxs(X,{onClick:()=>a(d),tooltip:h(d),children:[jsx("span",{"aria-hidden":"true",className:"fk:size-2.5 fk:shrink-0 fk:rounded-full",style:{backgroundColor:n[d.name]??"#71717a"}}),jsx("span",{className:"fk:truncate",children:h(d)}),x[d.plural]!==void 0?jsx("span",{className:"fk:ml-auto fk:text-xs fk:text-muted-foreground",children:x[d.plural]?.toLocaleString()}):null]})},d.name))})]}),N$1.length>0?jsxs(S,{className:"fk:group-data-[collapsible=icon]:hidden",children:[jsx(T,{children:"On canvas"}),jsx("ul",{className:"fk:flex fk:flex-col","data-testid":"graph-legend",children:N$1.map(d=>{let C=c.get(d),w=!i.includes(d),T=`graph-legend-${d}`;return jsxs("li",{className:"fk:flex fk:h-8 fk:items-center fk:gap-2 fk:px-2 fk:text-sm",children:[jsx("span",{"aria-hidden":"true",className:"fk:size-2.5 fk:shrink-0 fk:rounded-full",style:{backgroundColor:n[d]??"#71717a",opacity:w?1:.35}}),jsx("label",{className:"fk:min-w-0 fk:flex-1 fk:cursor-pointer fk:truncate",htmlFor:T,children:C?h(C):d}),jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:r[d]?.toLocaleString()}),jsx(o,{"aria-label":`Show ${C?h(C):d}`,checked:w,id:T,onCheckedChange:()=>b(d)})]},d)})})]}):null]}),jsx(P,{})]})}function fe({label:e$1,icon:t,disabled:n,onClick:r}){return jsxs(b$2,{children:[jsx(c$3,{asChild:true,children:jsxs(b$3,{className:"fk:h-8 fk:gap-1.5 fk:px-2.5",disabled:n,onClick:r,size:"sm",variant:"ghost",children:[t,jsx("span",{className:"fk:text-xs",children:e$1})]})}),jsx(e,{children:e$1})]})}function It({hasSelection:e,hasNodes:t,isLoading:n,onFit:r,onExpand:i,onHide:a,onClear:o}){return jsxs("div",{className:"fk:flex fk:items-center fk:gap-0.5 fk:rounded-lg fk:border fk:bg-background fk:p-1 fk:shadow-xs","data-testid":"graph-toolbar",children:[jsx(fe,{disabled:!t,icon:jsx(ScanIcon,{className:"fk:size-3.5"}),label:"Fit",onClick:r}),jsx(v$1,{className:"fk:mx-0.5 fk:h-4",orientation:"vertical"}),jsx(fe,{disabled:!e||n,icon:n?jsx(LoaderCircleIcon,{className:"fk:size-3.5 fk:animate-spin"}):jsx(ExpandIcon,{className:"fk:size-3.5"}),label:"Expand",onClick:i}),jsx(fe,{disabled:!e,icon:jsx(EyeOffIcon,{className:"fk:size-3.5"}),label:"Hide",onClick:a}),jsx(v$1,{className:"fk:mx-0.5 fk:h-4",orientation:"vertical"}),jsx(fe,{disabled:!t,icon:jsx(EraserIcon,{className:"fk:size-3.5"}),label:"Clear",onClick:o})]})}function Pt(e){return e instanceof Error?e.message:"The records could not be loaded."}function Ot({schema:e,scope:t$1}){let n=useApolloClient(),[r,i]=useReducer(vt,ve),[a$1,o]=useState(0),b=useCallback(async(f,s$1)=>{let p="ids"in s$1?s$1.ids:void 0,E="ids"in s$1?s$1.expand:false,S="limit"in s$1?s$1.limit:p?.length;o(x=>x+1);try{let c=(await n.query({query:gql(k({entity:f,schema:e,scope:t$1,expand:E})),variables:{where:p?{_id:{in:p}}:void 0,limit:S},fetchPolicy:"network-only"})).data?.[f.plural]??[];return i({type:"merge",data:s({records:c,entity:f,schema:e,scope:t$1}),fetched:t(c,f)}),c.map(N=>d(f.name,N._id))}catch(x){return qa.error(Pt(x)),[]}finally{o(x=>x-1);}},[n,e,t$1]),A=useCallback(async f=>{let s=r.nodes[f],p=s?g$1(e,s.entity):void 0;!s||!p||await b(p,{ids:[s.id],expand:true});},[b,e,r.nodes]),_=useCallback(async(f,s$1)=>{let p=r.nodes[f],E=p?g$1(e,p.entity):void 0;if(!p||!E)return;let S=r.fetched[f]?.[s$1.name]??0;o(x=>x+1);try{let c=(await n.query({query:gql(l({entity:E,schema:e,scope:t$1,attribute:s$1})),variables:{id:p.id,offset:S,limit:a},fetchPolicy:"network-only"})).data?.[E.plural]??[],N=c.reduce((d,C)=>{let w=C[s$1.name];return d+(Array.isArray(w)?w.length:0)},0);i({type:"merge",data:s({records:c,entity:E,schema:e,scope:t$1}),fetched:{[f]:{[s$1.name]:S+N}}});}catch(x){qa.error(Pt(x));}finally{o(x=>x-1);}},[n,e,t$1,r.fetched,r.nodes]);return {state:r,dispatch:i,isLoading:a$1>0,loadRecords:b,expandAll:A,expandAttribute:_}}function jr(){let{currentProjectId:e$2,currentProject:t,currentProjectSchema:n}=f(),[,r]=g(),{scope:i$1}=c(),{resolvedTheme:a}=b(),o=useLocation(),b$3=c$1(),A=a==="dark"?"dark":"light",_=t?.scopes?.find(m=>m.isDefault)?.name??"default",f$2=i$1||_,s=r.user?.spaces,p=useMemo(()=>c$2(n,s),[n,s]),E=useMemo(()=>f$1(p),[p]),S=useMemo(()=>i(p,A),[p,A]),x=Ot({schema:p,scope:f$2}),{state:c$4,dispatch:N,isLoading:d,loadRecords:C,expandAll:w,expandAttribute:T}=x,U=useRef(null),[M$1,I]=useState(null),[L,$]=useState(false),l=useRef(null),g$2=useMemo(()=>At(c$4),[c$4]),h=c$4.selected?c$4.nodes[c$4.selected]:void 0,y=M$1?c$4.nodes[M$1.key]:void 0,v$1=y?g$1(p,y.entity):void 0,D=Object.keys(c$4.nodes).length,q=Object.keys(c$4.edges).length,Y=K(),z=useCallback(m=>N({type:"select",key:m}),[N]),u=useCallback(m=>{let O=c$4.nodes[m],ee=O?g$1(p,O.entity):void 0;O&&ee&&b$3({type:"EditEntity",payload:{entityId:O.id,entityNamePlural:ee.plural}});},[b$3,p,c$4.nodes]),k=useCallback(m=>N({type:"remove",keys:[m]}),[N]),P=useCallback(m=>N({type:"keepOnly",keys:[m,...wt(c$4,m)]}),[N,c$4]),ne=useCallback(m=>N({type:"togglePin",key:m}),[N]),zt=useCallback(m=>{c$4.pinned[m]||N({type:"togglePin",key:m});},[N,c$4.pinned]),Ht=useCallback(async(m,O)=>{let ee=g$1(p,m);if(!ee)return;let[ae]=await C(ee,{ids:[O],expand:true});ae&&z(ae);},[C,p,z]),jt=useCallback((m,O)=>{I(null),T(m,O);},[T]);return useEffect(()=>{let m=v(o.search);if(!m||l.current===o.key)return;let O=g$1(p,m.entity);if(!O||p.length===0)return;l.current=o.key;let ee=m.ids.length>0?{ids:m.ids,expand:m.ids.length<=j}:{limit:b$1};C(O,ee).then(ae=>{m.ids.length===1&&ae[0]&&z(ae[0]);});},[o.key,o.search,p,C,z]),e$2?jsxs(M,{className:"fk:h-full",defaultOpen:Y,children:[jsx(Gt,{colors:S,entities:E,hiddenEntities:c$4.hiddenEntities,onCanvas:g$2,onHit:(m,O)=>{Ht(m,O);},onStart:m=>{C(m,{limit:b$1});},onToggleEntity:m=>N({type:"toggleEntity",entity:m}),projectId:e$2}),jsx(Q,{className:"fk:min-w-0",children:jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:min-w-0","data-testid":"graph-app",children:[jsxs("div",{className:"fk:relative fk:min-w-0 fk:flex-1 fk:overflow-hidden fk:bg-background",children:[jsxs("div",{className:"fk:absolute fk:left-3 fk:top-3 fk:z-10 fk:flex fk:items-center fk:gap-2",children:[jsxs(b$2,{children:[jsx(c$3,{asChild:true,children:jsx(O,{className:"fk:h-8 fk:w-8 fk:rounded-lg fk:hover:bg-transparent fk:dark:hover:bg-transparent"})}),jsx(e,{children:"Toggle Sidebar"})]}),jsx(It,{hasNodes:D>0,hasSelection:h!==void 0,isLoading:d,onClear:()=>N({type:"clear"}),onExpand:()=>{c$4.selected&&w(c$4.selected);},onFit:()=>U.current?.fit(),onHide:()=>{c$4.selected&&k(c$4.selected);}})]}),D>0?null:jsx("div",{className:"fk:pointer-events-none fk:absolute fk:inset-0 fk:flex fk:items-center fk:justify-center fk:p-8 fk:text-center fk:text-sm fk:text-muted-foreground",children:d?"Loading records\u2026":"Search a record or start from an entity to draw its graph."}),jsx(xt,{apiRef:U,colors:S,onContextMenu:(m,O)=>I({key:m,...O}),onExpand:m=>{w(m);},onLayoutChange:$,onPin:zt,onSelect:z,scene:c$4,theme:A}),jsxs("div",{className:"fk:absolute fk:bottom-3 fk:left-3 fk:flex fk:max-w-[calc(100%-1.5rem)] fk:items-center fk:gap-2 fk:rounded-lg fk:border fk:bg-background fk:px-2.5 fk:py-1.5 fk:text-xs fk:text-muted-foreground fk:shadow-xs","data-testid":"graph-status",children:[jsxs("span",{children:[D.toLocaleString()," ",D===1?"node":"nodes"," \xB7 ",q.toLocaleString()," ",q===1?"relationship":"relationships"]}),L?jsx("span",{children:"\xB7 laying out\u2026"}):null,c$4.notice?jsxs("span",{className:"fk:truncate fk:text-foreground",children:["\xB7 ",c$4.notice]}):null]}),jsx(Nt,{isPinned:M$1?c$4.pinned[M$1.key]===true:false,menu:M$1,onClose:()=>I(null),onExpandAll:m=>{w(m);},onExpandAttribute:jt,onHide:k,onHideOthers:P,onOpenRecord:u,onTogglePin:ne,relationships:v$1?e$1(v$1):[]})]}),h?jsx(Tt,{colors:S,isLoading:d,node:h,onClose:()=>z(null),onExpandAll:m=>{w(m);},onExpandAttribute:(m,O)=>{T(m,O);},onHide:k,onOpenRecord:u,scene:c$4,schema:p,scope:f$2}):null]})})]}):jsx("main",{className:"fk:flex fk:h-full fk:flex-1 fk:items-center fk:justify-center fk:p-8 fk:text-sm fk:text-muted-foreground",children:"Select a project to explore its graph."})}export{jr as Root};//# sourceMappingURL=root-TZYOIXVG.js.map
2
- //# sourceMappingURL=root-TZYOIXVG.js.map