@shumai-one/shumai 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/bin/{chunk-e7ndw3hg.js → chunk-0p333kh7.js} +3 -3
  2. package/bin/chunk-1wz0dge4.js +3 -0
  3. package/bin/{chunk-gtrc5ka2.js → chunk-1yqar2gz.js} +1 -1
  4. package/bin/{chunk-fz88kkk1.js → chunk-1zpw2mbj.js} +2 -2
  5. package/bin/{chunk-46ar48f9.js → chunk-28egv700.js} +1 -1
  6. package/bin/{chunk-0xbf8bcg.js → chunk-2m2saan7.js} +2 -2
  7. package/bin/chunk-2p0rg6xs.js +1 -0
  8. package/bin/{chunk-w88219ex.js → chunk-2xmsa8wv.js} +1 -1
  9. package/bin/{chunk-mzg1h07d.js → chunk-36wf2dq0.js} +1 -1
  10. package/bin/{chunk-ta7bfdrn.js → chunk-3g54qkv5.js} +1 -1
  11. package/bin/chunk-3ge0s4k2.js +1 -0
  12. package/bin/{chunk-hr97a5j5.js → chunk-449feg7g.js} +1 -1
  13. package/bin/{chunk-hkbybhww.js → chunk-48ebezek.js} +1 -1
  14. package/bin/{chunk-8qg47kj6.js → chunk-4gbs9swm.js} +1 -1
  15. package/bin/{chunk-thsbcbay.js → chunk-4tt3jvm1.js} +1 -1
  16. package/bin/{chunk-15sefy5t.js → chunk-5jhrqbk2.js} +2 -2
  17. package/bin/{chunk-dm2w12rc.js → chunk-5x1ppya9.js} +2 -2
  18. package/bin/{chunk-nrwna4ha.js → chunk-652x28v2.js} +1 -1
  19. package/bin/{chunk-0qkj838r.js → chunk-6f1twjf6.js} +1 -1
  20. package/bin/{chunk-8dqq1fk0.js → chunk-6ks4277t.js} +1 -1
  21. package/bin/{chunk-0rxhc7ka.js → chunk-6wa075zh.js} +2 -2
  22. package/bin/{chunk-qksb0v3c.js → chunk-736tcjve.js} +2 -2
  23. package/bin/chunk-80d6p55n.js +1 -0
  24. package/bin/{chunk-gswbc6y9.js → chunk-8a9k4qj6.js} +2 -2
  25. package/bin/{chunk-jqh8kavv.js → chunk-8g1s0pq1.js} +1 -1
  26. package/bin/chunk-8gkm2ysh.js +1 -0
  27. package/bin/chunk-8nvybmyv.js +2 -0
  28. package/bin/{chunk-srn8t0v7.js → chunk-8rkp0fc5.js} +1 -1
  29. package/bin/{chunk-1wm57c6y.js → chunk-8sr8ff6a.js} +3 -3
  30. package/bin/{chunk-2aamsc5v.js → chunk-93jcw0pn.js} +1 -1
  31. package/bin/{chunk-3rmc8nz6.js → chunk-9bvwwj5y.js} +1 -1
  32. package/bin/{chunk-925q4paa.js → chunk-9fefn2st.js} +1 -1
  33. package/bin/{chunk-262hkppb.js → chunk-9h3c60vw.js} +2 -2
  34. package/bin/{chunk-b73ktdmd.js → chunk-9jd3d3f3.js} +1 -1
  35. package/bin/chunk-9nwjhams.js +1 -0
  36. package/bin/{chunk-7b17fb36.js → chunk-9q32g9jd.js} +1 -1
  37. package/bin/{chunk-0aj303as.js → chunk-9zy0a8kt.js} +2 -2
  38. package/bin/{chunk-w7dn1m95.js → chunk-a06432s3.js} +1 -1
  39. package/bin/{chunk-g21jxrt9.js → chunk-a1mtpcrd.js} +2 -2
  40. package/bin/{chunk-3hzj13pj.js → chunk-a2njf6av.js} +1 -1
  41. package/bin/{chunk-5d2q46mx.js → chunk-a6dvjjce.js} +1 -1
  42. package/bin/{chunk-s46zwr4p.js → chunk-aa2tkqg0.js} +1 -1
  43. package/bin/{chunk-fbte2rmd.js → chunk-ab45988z.js} +1 -1
  44. package/bin/chunk-af3nys0r.js +1 -0
  45. package/bin/{chunk-29tx9qe2.js → chunk-agd2jevj.js} +1 -1
  46. package/bin/{chunk-9h027f50.js → chunk-bf5a4yc8.js} +1 -1
  47. package/bin/{chunk-ybhgmvxa.js → chunk-bjfwz2m7.js} +2 -2
  48. package/bin/{chunk-e52nga6c.js → chunk-bnpw72vt.js} +2 -2
  49. package/bin/{chunk-c45rh4hk.js → chunk-c003q4v6.js} +1 -1
  50. package/bin/{chunk-dgat7wqv.js → chunk-cfamv4b2.js} +2 -2
  51. package/bin/{chunk-922nnh39.js → chunk-cm25nm9t.js} +1 -1
  52. package/bin/{chunk-9h3ds7rn.js → chunk-cmcsxkh1.js} +2 -2
  53. package/bin/{chunk-zemrvz79.js → chunk-cspp4n1d.js} +2 -2
  54. package/bin/{chunk-kfhtk3eh.js → chunk-cwebycwv.js} +1 -1
  55. package/bin/chunk-cx1ebj9k.js +1 -0
  56. package/bin/chunk-d1p9qz3y.js +7 -0
  57. package/bin/{chunk-wfx81mfv.js → chunk-d3cqp0tb.js} +2 -2
  58. package/bin/{chunk-97jzve52.js → chunk-d5fapvnp.js} +2 -2
  59. package/bin/{chunk-e3s3rz2e.js → chunk-ddag2ezv.js} +2 -2
  60. package/bin/{chunk-7hsgmjpa.js → chunk-dk45f6mp.js} +2 -2
  61. package/bin/{chunk-9ab6k4rq.js → chunk-e0kw3bst.js} +1 -1
  62. package/bin/{chunk-bd71dp4j.js → chunk-e56nza63.js} +1 -1
  63. package/bin/{chunk-re0b7sj7.js → chunk-e66j69wz.js} +1 -1
  64. package/bin/{chunk-crt1e1w1.js → chunk-ea0fh29m.js} +1 -1
  65. package/bin/{chunk-s1n39qte.js → chunk-en4m76fw.js} +1 -1
  66. package/bin/{chunk-jyzegph4.js → chunk-epsctccj.js} +1 -1
  67. package/bin/{chunk-qwg2e3wr.js → chunk-evzxjqr3.js} +2 -2
  68. package/bin/{chunk-ymeycphq.js → chunk-f4x2dxe5.js} +3 -3
  69. package/bin/{chunk-pxw97qbq.js → chunk-fr3dg9aj.js} +1 -1
  70. package/bin/{chunk-fcvtgx1y.js → chunk-fvf7j1qj.js} +1 -1
  71. package/bin/{chunk-bs0fjz3w.js → chunk-fwcm78s9.js} +2 -2
  72. package/bin/{chunk-xcwbg4w9.js → chunk-fytbcgak.js} +2 -2
  73. package/bin/{chunk-wc8sc9r9.js → chunk-gc7b9j22.js} +1 -1
  74. package/bin/{chunk-b8js74jk.js → chunk-h1hj60fr.js} +2 -2
  75. package/bin/{chunk-9avkn3x1.js → chunk-h3y7szbm.js} +2 -2
  76. package/bin/{chunk-j8qtab70.js → chunk-hdqvbds8.js} +1 -1
  77. package/bin/{chunk-q09dfja5.js → chunk-he4h8e9e.js} +2 -2
  78. package/bin/{chunk-d2vxmn9v.js → chunk-hktggc90.js} +1 -1
  79. package/bin/{chunk-mnfqdxms.js → chunk-jh6pw37a.js} +1 -1
  80. package/bin/{chunk-ygz6pawn.js → chunk-jjgwrvdb.js} +1 -1
  81. package/bin/{chunk-2dsmsa6a.js → chunk-jmh934ca.js} +1 -1
  82. package/bin/{chunk-dghtwyq1.js → chunk-jtwvd0te.js} +2 -2
  83. package/bin/{chunk-4qpa7b5t.js → chunk-jxxq76at.js} +1 -1
  84. package/bin/chunk-jyr3g5m4.js +1 -0
  85. package/bin/{chunk-zzx99j8t.js → chunk-k0s6gfg6.js} +1 -1
  86. package/bin/chunk-ky3dx324.js +2 -0
  87. package/bin/{chunk-6zascpcz.js → chunk-mw0rc5m7.js} +1 -1
  88. package/bin/chunk-mzre12bp.js +1 -0
  89. package/bin/{chunk-s8t74q9m.js → chunk-n0cn0xfg.js} +1 -1
  90. package/bin/{chunk-88fg1sw7.js → chunk-nd6psyzq.js} +2 -2
  91. package/bin/{chunk-m4zpf9gg.js → chunk-nmzvxgd6.js} +2 -2
  92. package/bin/{chunk-891h8br6.js → chunk-nxhzchen.js} +1 -1
  93. package/bin/{chunk-yj4x7tpw.js → chunk-phc9efjf.js} +2 -2
  94. package/bin/{chunk-n4meg9wb.js → chunk-pna93n17.js} +1 -1
  95. package/bin/{chunk-d3wmdjze.js → chunk-pvx55h1v.js} +1 -1
  96. package/bin/{chunk-g8th86na.js → chunk-pzehf31g.js} +1 -1
  97. package/bin/{chunk-nyhqy6q2.js → chunk-q0dhm16d.js} +5 -5
  98. package/bin/chunk-q11m2cp3.js +2 -0
  99. package/bin/{chunk-31baz5n0.js → chunk-qjf561n2.js} +1 -1
  100. package/bin/chunk-qs5k9j8s.js +1 -0
  101. package/bin/{chunk-ztmj61z9.js → chunk-qt9efp9y.js} +1 -1
  102. package/bin/{chunk-1xpec5r8.js → chunk-qwxt1cha.js} +2 -2
  103. package/bin/{chunk-5t6c3038.js → chunk-r8vrfefa.js} +1 -1
  104. package/bin/{chunk-cxhmr356.js → chunk-rybbss5f.js} +1 -1
  105. package/bin/{chunk-t3t6021k.js → chunk-sa4gc1f5.js} +2 -2
  106. package/bin/{chunk-898q6x3q.js → chunk-sprpjp4t.js} +2 -2
  107. package/bin/{chunk-nnkkem25.js → chunk-swa43tzr.js} +2 -2
  108. package/bin/{chunk-14fh4s1a.js → chunk-szs8dy1s.js} +2 -2
  109. package/bin/{chunk-3qks722n.js → chunk-t0detvbj.js} +2 -2
  110. package/bin/chunk-t0fq8b99.js +2 -0
  111. package/bin/{chunk-wsyg4rwg.js → chunk-vdn3jymh.js} +1 -1
  112. package/bin/{chunk-8wqfkm4c.js → chunk-vjxgv3r6.js} +1 -1
  113. package/bin/{chunk-dqgv5yy1.js → chunk-w3m9g3e9.js} +1 -1
  114. package/bin/{chunk-js9yf457.js → chunk-wcfpdfgy.js} +2 -2
  115. package/bin/{chunk-rtngbgpk.js → chunk-wv8xk7n7.js} +1 -1
  116. package/bin/{chunk-nhsqp8jc.js → chunk-wwsvnz4v.js} +1 -1
  117. package/bin/{chunk-6xg65n5y.js → chunk-y132jbf0.js} +1 -1
  118. package/bin/{chunk-2aascrtb.js → chunk-yaydmgcg.js} +1 -1
  119. package/bin/{chunk-7we7ex0m.js → chunk-yvgs4kmv.js} +1 -1
  120. package/bin/{chunk-3n1rezd0.js → chunk-z5p39kpk.js} +2 -2
  121. package/bin/{chunk-77r8w95d.js → chunk-zct68gc7.js} +2 -2
  122. package/bin/{chunk-mqjzmn0e.js → chunk-zy2sqtt9.js} +1 -1
  123. package/bin/shumai-app.html +1 -1
  124. package/bin/shumai-app.js +260 -208
  125. package/package.json +8 -8
  126. package/prisma/migrations/20260728024147_add_agent_session_entry_columns/migration.sql +14 -0
  127. package/prisma/migrations/20260728024205_migrate_agent_session_entry_data/migration.sql +12 -0
  128. package/prisma/migrations/20260728031230_remove_agent_session_entry_legacy_entry_column/migration.sql +8 -0
  129. package/prisma/schema.prisma +12 -6
  130. package/bin/chunk-23d3968z.js +0 -2
  131. package/bin/chunk-2a9n3dhx.js +0 -1
  132. package/bin/chunk-5vkf99sk.js +0 -1
  133. package/bin/chunk-6z65xd0w.js +0 -3
  134. package/bin/chunk-8tf6kgdj.js +0 -2
  135. package/bin/chunk-av71yjaa.js +0 -1
  136. package/bin/chunk-carknytp.js +0 -1
  137. package/bin/chunk-chkx04mw.js +0 -1
  138. package/bin/chunk-hnhq0dh9.js +0 -1
  139. package/bin/chunk-j0c7d9y1.js +0 -1
  140. package/bin/chunk-kr06nrbx.js +0 -2
  141. package/bin/chunk-se8rgwp8.js +0 -1
  142. package/bin/chunk-wckjyvtb.js +0 -5
  143. package/bin/chunk-wtjc4565.js +0 -1
  144. package/bin/chunk-y79r28gd.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shumai-one/shumai",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
4
4
  "description": "A fullstack AI-powered media workspace and workflow engine",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,7 +15,7 @@
15
15
  "@prisma/client": "7.8.0",
16
16
  "@prisma/adapter-pg": "7.8.0",
17
17
  "pg": "8.21.0",
18
- "sharp": "0.35.3",
18
+ "sharp": "0.34.5",
19
19
  "pino": "10.3.1",
20
20
  "pino-pretty": "13.1.3",
21
21
  "@temporalio/activity": "1.17.2",
@@ -27,12 +27,12 @@
27
27
  "zod": "4.4.3"
28
28
  },
29
29
  "optionalDependencies": {
30
- "@shumai-one/shumai-darwin-arm64": "0.2.3",
31
- "@shumai-one/shumai-darwin-x64": "0.2.3",
32
- "@shumai-one/shumai-linux-arm64": "0.2.3",
33
- "@shumai-one/shumai-linux-x64": "0.2.3",
34
- "@shumai-one/shumai-win32-arm64": "0.2.3",
35
- "@shumai-one/shumai-win32-x64": "0.2.3"
30
+ "@shumai-one/shumai-darwin-arm64": "0.3.0",
31
+ "@shumai-one/shumai-darwin-x64": "0.3.0",
32
+ "@shumai-one/shumai-linux-arm64": "0.3.0",
33
+ "@shumai-one/shumai-linux-x64": "0.3.0",
34
+ "@shumai-one/shumai-win32-arm64": "0.3.0",
35
+ "@shumai-one/shumai-win32-x64": "0.3.0"
36
36
  },
37
37
  "repository": {
38
38
  "type": "git",
@@ -0,0 +1,14 @@
1
+ -- AlterTable
2
+ ALTER TABLE "agent_session_entries" ADD COLUMN "asset_id" TEXT,
3
+ ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
4
+ ADD COLUMN "data" JSONB,
5
+ ADD COLUMN "parent_id" TEXT,
6
+ ADD COLUMN "type" TEXT,
7
+ ALTER COLUMN "session_id" DROP NOT NULL,
8
+ ALTER COLUMN "entry" DROP NOT NULL;
9
+
10
+ -- CreateIndex
11
+ CREATE INDEX "agent_session_entries_parent_id_idx" ON "agent_session_entries"("parent_id");
12
+
13
+ -- CreateIndex
14
+ CREATE INDEX "agent_session_entries_asset_id_idx" ON "agent_session_entries"("asset_id");
@@ -0,0 +1,12 @@
1
+ -- Migrate existing entry JSON data to new columns
2
+ UPDATE agent_session_entries
3
+ SET
4
+ type = entry->>'type',
5
+ parent_id = entry->>'parentId',
6
+ asset_id = (SELECT s.asset_id FROM agent_sessions s WHERE s.id = agent_session_entries.session_id),
7
+ created_at = CASE
8
+ WHEN entry->>'timestamp' IS NOT NULL THEN (entry->>'timestamp')::timestamptz
9
+ ELSE created_at
10
+ END,
11
+ data = (entry::jsonb - 'id' - 'type' - 'parentId' - 'timestamp')::text::json
12
+ WHERE entry IS NOT NULL;
@@ -0,0 +1,8 @@
1
+ /*
2
+ Warnings:
3
+
4
+ - You are about to drop the column `entry` on the `agent_session_entries` table. All the data in the column will be lost.
5
+
6
+ */
7
+ -- AlterTable
8
+ ALTER TABLE "agent_session_entries" DROP COLUMN "entry";
@@ -722,14 +722,20 @@ model AgentSession {
722
722
  }
723
723
 
724
724
  model AgentSessionEntry {
725
- id String @id // Uses ULID generated by pi-coding-agent
726
- sessionId String @map("session_id")
727
- session AgentSession @relation(fields: [sessionId], references: [id], onDelete: Cascade)
728
- /// [PiSessionEntry]
729
- entry Json
725
+ id String @id // Uses ULID generated by pi-coding-agent
726
+ sessionId String? @map("session_id")
727
+ session AgentSession? @relation(fields: [sessionId], references: [id], onDelete: Cascade)
728
+ assetId String? @map("asset_id")
729
+ type String?
730
+ parentId String? @map("parent_id")
731
+ /// [PiSessionEntryData]
732
+ data Json?
733
+ createdAt DateTime @default(now()) @map("created_at")
730
734
 
731
- @@map("agent_session_entries")
732
735
  @@index([sessionId])
736
+ @@index([parentId])
737
+ @@index([assetId])
738
+ @@map("agent_session_entries")
733
739
  }
734
740
 
735
741
  model UserMetadata {
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Pb as a}from"./chunk-e52nga6c.js";import"./chunk-0qkj838r.js";export default a();
@@ -1 +0,0 @@
1
- import{g as v}from"./chunk-6xg65n5y.js";import"./chunk-6zascpcz.js";import"./chunk-b73ktdmd.js";import"./chunk-wckjyvtb.js";import"./chunk-crt1e1w1.js";import"./chunk-wsyg4rwg.js";import"./chunk-nhsqp8jc.js";import"./chunk-srn8t0v7.js";import"./chunk-kfhtk3eh.js";import"./chunk-kr06nrbx.js";import"./chunk-b8js74jk.js";import"./chunk-0xbf8bcg.js";import"./chunk-dm2w12rc.js";import"./chunk-15sefy5t.js";import"./chunk-77r8w95d.js";import"./chunk-t3t6021k.js";import"./chunk-nnkkem25.js";import"./chunk-1xpec5r8.js";import"./chunk-0rxhc7ka.js";import"./chunk-3n1rezd0.js";import"./chunk-fz88kkk1.js";import"./chunk-dghtwyq1.js";import"./chunk-gswbc6y9.js";import{Gh as q,oh as k}from"./chunk-nyhqy6q2.js";import"./chunk-0qkj838r.js";function B(){let{shareId:w,folderId:A}=C.useParams();return k(v,{shareId:w,initialFolderId:A})}var C=q("/share/$shareId/folders/$folderId")({component:B});export{C as Route};
@@ -1 +0,0 @@
1
- import{a as r,b as a,c as s,d as E,e as $,f as q}from"./chunk-wc8sc9r9.js";import{fa as j}from"./chunk-nhsqp8jc.js";import{Va as t}from"./chunk-srn8t0v7.js";import"./chunk-kfhtk3eh.js";import{Za as x}from"./chunk-b8js74jk.js";import"./chunk-0xbf8bcg.js";import{jf as l}from"./chunk-wfx81mfv.js";import{zf as o}from"./chunk-3qks722n.js";import{og as d,pg as i}from"./chunk-3n1rezd0.js";import{Qg as m,bh as h}from"./chunk-gswbc6y9.js";import{Bh as C,Gh as P,Gi as b,Ki as g,Qh as B,Sh as A,Xi as I,ai as f,hk as p,ik as c,jk as n,mh as qG,mk as X,nh as k,oh as G,ph as K,qh as y,ti as T,uh as L,uj as u,vh as F,wh as S}from"./chunk-nyhqy6q2.js";import{Vk as $G}from"./chunk-0qkj838r.js";var _=$G(qG(),1);var OG=(Y)=>{if(!Y)return"??";return Y.split(" ").map((O)=>O[0]).slice(0,2).join("").toUpperCase()};function zG(){let{projectId:Y}=BG.useParams(),{teamId:O,ensureTeamIdForProject:U}=h(),e=y(),GG=C();_.useEffect(()=>{U(Y)},[Y,U]);let{data:M}=L(l(Y)),D=M?.rootFolder,[JG,KG]=_.useState(240),{shareConfigLeftSidebarCollapsed:Q,setShareConfigLeftSidebarCollapsed:XG}=i(),{data:V,isLoading:YG,fetchNextPage:R,hasNextPage:v,isFetchingNextPage:W}=S({queryKey:["shares",Y],queryFn:async({pageParam:J})=>{let Z=await A.api.projects[":projectId"].shares.$get({param:{projectId:Y},query:{first:"20",after:J}});if(!Z.ok)throw Error("Failed to fetch share links");return await Z.json()},initialPageParam:"",getNextPageParam:(J)=>J.pageInfo?.cursor||void 0,enabled:!!Y}),{ref:ZG,inView:w}=d();_.useEffect(()=>{if(w&&v&&!W)R()},[w,v,W,R]);let H=_.useMemo(()=>V?.pages.flatMap((J)=>J.data)||[],[V]),{mutate:_G}=F({mutationFn:async({id:J,isDisabled:Z})=>{let z=await A.api.shares[":shareId"].$put({param:{shareId:J},json:{isDisabled:Z}});if(!z.ok)throw Error("Failed to update share link");return await z.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["shares",Y]}),B.success(X.share_link_status_updated())},onError:(J)=>{B.error(X.error_message({message:J.message}))}});if(!O||!D||!M)return G(o,{});let N=(J)=>{let Z=`${window.location.origin}/share/${J}`;navigator.clipboard.writeText(Z),B.success(X.link_copied())};return G("div",{className:"flex flex-1 flex-col bg-background min-h-0",children:K("div",{className:"flex flex-1 overflow-hidden relative",children:[!Q&&G("div",{className:"md:hidden fixed inset-0 bg-black/50 z-40",onClick:()=>XG(!0)}),!Q&&K(k,{children:[G("div",{className:"bg-background",style:{width:JG},children:G(j,{teamId:O,projectId:Y,projectName:M.name??"",rootFolderId:D})}),G(t,{onResize:(J)=>{KG((Z)=>Math.max(180,Math.min(400,Z+J)))},className:"hidden md:block"})]}),K("div",{className:"flex-1 flex flex-col min-h-0 bg-card overflow-hidden",children:[G("header",{className:"h-14 border-b flex items-center justify-between px-6 shrink-0 bg-background/50 backdrop-blur-sm sticky top-0 z-10",children:K("div",{className:"flex items-center gap-2",children:[G(u,{className:"h-5 w-5 text-primary"}),G("h1",{className:"font-bold text-lg text-foreground",children:X.all_share_links()})]})}),G("div",{className:"flex-1 overflow-y-auto p-6",children:YG?G("div",{className:"flex justify-center items-center h-64",children:G("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"})}):H.length===0?K("div",{className:"flex flex-col items-center justify-center h-64 text-muted-foreground gap-3",children:[G(I,{className:"h-10 w-10 text-muted-foreground/50"}),G("p",{children:X.no_share_links_yet()})]}):K("div",{className:"border border-border rounded-xl bg-background overflow-hidden shadow-xs",children:[K(r,{children:[G(a,{children:K(E,{className:"hover:bg-transparent bg-muted/20",children:[G($,{className:"font-semibold px-4 py-3",children:X.name()}),G($,{className:"font-semibold px-4 py-3",children:X.public_link()}),G($,{className:"font-semibold px-4 py-3",children:X.creator()}),G($,{className:"font-semibold px-4 py-3 w-[150px]",children:X.created_date()}),G($,{className:"font-semibold px-4 py-3 text-right w-[120px]",children:X.active()})]})}),G(s,{children:H.map((J)=>{let Z=`${window.location.origin}/share/${J.id}`;return K(E,{className:"hover:bg-muted/10 transition-colors",children:[G(q,{className:"font-medium px-4 py-3.5",children:G("span",{className:"cursor-pointer hover:underline text-foreground",onClick:()=>GG({to:"/projects/$projectId/shares/$shareId",params:{projectId:Y,shareId:J.id}}),children:J.name})}),G(q,{className:"px-4 py-3.5 max-w-[300px]",children:K("div",{className:"flex items-center gap-2 group",children:[G("span",{className:"truncate text-xs font-mono bg-muted/50 text-muted-foreground px-2 py-1 rounded-md border border-border cursor-pointer hover:bg-muted transition-colors flex-1",onClick:()=>N(J.id),title:X.click_to_copy_link(),children:Z}),G(m,{variant:"ghost",size:"icon-sm",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>N(J.id),children:G(b,{className:"h-3.5 w-3.5"})}),G("a",{href:Z,target:"_blank",rel:"noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center",children:G(g,{className:"h-3.5 w-3.5"})})]})}),G(q,{className:"px-4 py-3.5",children:K("div",{className:"flex items-center gap-2",children:[K(p,{className:"h-6 w-6",children:[J.creator?.image&&G(c,{src:J.creator.image,alt:J.creator.name,className:"object-cover"}),G(n,{className:"text-[10px]",children:OG(J.creator?.name)})]}),G("span",{className:"text-sm font-medium text-foreground truncate max-w-[150px]",children:J.creator?.name||X.unknown()})]})}),G(q,{className:"px-4 py-3.5 text-muted-foreground text-sm",children:K("div",{className:"flex items-center gap-2",children:[G(T,{className:"h-3.5 w-3.5 text-muted-foreground/70"}),G("span",{children:new Date(J.createdAt).toLocaleDateString()})]})}),G(q,{className:"px-4 py-3.5 text-right",children:G("div",{className:"flex justify-end",children:G(x,{checked:!J.isDisabled,onCheckedChange:(z)=>_G({id:J.id,isDisabled:!z})})})})]},J.id)})})]}),G("div",{ref:ZG,className:"h-10 w-full flex items-center justify-center",children:W&&G(f,{className:"h-6 w-6 animate-spin text-primary"})})]})})]})]})})}var BG=P("/projects/$projectId/shares/")({component:zG});export{BG as Route};