ryugi-artifacts 1.18.2 → 1.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/server.cjs +1 -1
- package/dist/viewer/{CloudLiveDocument-DqaD5LQi.js → CloudLiveDocument-DS85XF0L.js} +1 -1
- package/dist/viewer/DocumentPage-0GGJlY-j.js +1 -0
- package/dist/viewer/index.js +2 -2
- package/dist/viewer/index2.css +33 -20
- package/package.json +1 -1
- package/dist/viewer/DocumentPage-BG_gTOK2.js +0 -1
package/dist/viewer/index2.css
CHANGED
|
@@ -67,6 +67,10 @@
|
|
|
67
67
|
padding: 32px;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
.x9ms5i6 {
|
|
71
|
+
padding: 3px;
|
|
72
|
+
}
|
|
73
|
+
|
|
70
74
|
.x1o8uwn5 {
|
|
71
75
|
padding: 48px;
|
|
72
76
|
}
|
|
@@ -269,6 +273,10 @@
|
|
|
269
273
|
margin-inline: -14px;
|
|
270
274
|
}
|
|
271
275
|
|
|
276
|
+
.xj3msbq {
|
|
277
|
+
margin-inline: 3px;
|
|
278
|
+
}
|
|
279
|
+
|
|
272
280
|
.xjgtzcg {
|
|
273
281
|
margin-inline: 4px;
|
|
274
282
|
}
|
|
@@ -583,10 +591,6 @@
|
|
|
583
591
|
background-color: var(--lobe-color-bg-layout);
|
|
584
592
|
}
|
|
585
593
|
|
|
586
|
-
.xnntjla {
|
|
587
|
-
background-color: var(--lobe-color-bg-spotlight);
|
|
588
|
-
}
|
|
589
|
-
|
|
590
594
|
.xh6qj2i {
|
|
591
595
|
background-color: var(--lobe-color-border-secondary);
|
|
592
596
|
}
|
|
@@ -739,10 +743,6 @@
|
|
|
739
743
|
color: var(--lobe-color-success-text);
|
|
740
744
|
}
|
|
741
745
|
|
|
742
|
-
.xus9egd {
|
|
743
|
-
color: var(--lobe-color-text-light-solid);
|
|
744
|
-
}
|
|
745
|
-
|
|
746
746
|
.xc7n51q {
|
|
747
747
|
color: var(--lobe-color-text-quaternary);
|
|
748
748
|
}
|
|
@@ -763,6 +763,10 @@
|
|
|
763
763
|
color: var(--lobe-color-warning-text);
|
|
764
764
|
}
|
|
765
765
|
|
|
766
|
+
.x17nrqe2 {
|
|
767
|
+
color: var(--x1uagi31);
|
|
768
|
+
}
|
|
769
|
+
|
|
766
770
|
.xwaa2ar {
|
|
767
771
|
column-gap: 48px;
|
|
768
772
|
}
|
|
@@ -1043,10 +1047,6 @@
|
|
|
1043
1047
|
opacity: .28;
|
|
1044
1048
|
}
|
|
1045
1049
|
|
|
1046
|
-
.x1ks1olk {
|
|
1047
|
-
opacity: .7;
|
|
1048
|
-
}
|
|
1049
|
-
|
|
1050
1050
|
.xg01cxk {
|
|
1051
1051
|
opacity: 0;
|
|
1052
1052
|
}
|
|
@@ -1079,6 +1079,10 @@
|
|
|
1079
1079
|
outline-color: var(--lobe-color-border);
|
|
1080
1080
|
}
|
|
1081
1081
|
|
|
1082
|
+
.x1y3gkto {
|
|
1083
|
+
outline-offset: 1px;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1082
1086
|
.x8wkva7 {
|
|
1083
1087
|
outline-offset: 6px;
|
|
1084
1088
|
}
|
|
@@ -1273,6 +1277,10 @@
|
|
|
1273
1277
|
z-index: 9;
|
|
1274
1278
|
}
|
|
1275
1279
|
|
|
1280
|
+
.x1fkwv27:focus-visible {
|
|
1281
|
+
outline-color: var(--x1uagi31);
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1276
1284
|
.xiqg2am:disabled {
|
|
1277
1285
|
color: var(--lobe-color-text-quaternary);
|
|
1278
1286
|
}
|
|
@@ -1293,10 +1301,6 @@
|
|
|
1293
1301
|
background-color: #8b7cf824;
|
|
1294
1302
|
}
|
|
1295
1303
|
|
|
1296
|
-
.x1h20h33:hover {
|
|
1297
|
-
background-color: #ffffff1f;
|
|
1298
|
-
}
|
|
1299
|
-
|
|
1300
1304
|
.x9jwiqo:hover {
|
|
1301
1305
|
background-color: var(--lobe-color-fill-quaternary);
|
|
1302
1306
|
}
|
|
@@ -1337,6 +1341,10 @@
|
|
|
1337
1341
|
color: var(--lobe-color-text);
|
|
1338
1342
|
}
|
|
1339
1343
|
|
|
1344
|
+
.x2230gt:active {
|
|
1345
|
+
background-color: var(--lobe-color-fill-secondary);
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1340
1348
|
.xch2mbi:active {
|
|
1341
1349
|
cursor: grabbing;
|
|
1342
1350
|
}
|
|
@@ -1525,6 +1533,10 @@
|
|
|
1525
1533
|
height: 44px;
|
|
1526
1534
|
}
|
|
1527
1535
|
|
|
1536
|
+
.xqvfhly {
|
|
1537
|
+
height: 45px;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1528
1540
|
.xsdox4t {
|
|
1529
1541
|
height: 48px;
|
|
1530
1542
|
}
|
|
@@ -1537,10 +1549,6 @@
|
|
|
1537
1549
|
height: 52px;
|
|
1538
1550
|
}
|
|
1539
1551
|
|
|
1540
|
-
.xnnlda6 {
|
|
1541
|
-
height: 56px;
|
|
1542
|
-
}
|
|
1543
|
-
|
|
1544
1552
|
.xols6we {
|
|
1545
1553
|
height: 6px;
|
|
1546
1554
|
}
|
|
@@ -1939,3 +1947,8 @@
|
|
|
1939
1947
|
transform: none;
|
|
1940
1948
|
}
|
|
1941
1949
|
}
|
|
1950
|
+
|
|
1951
|
+
:root, .x9kpgza {
|
|
1952
|
+
--x1uagi31: #c65d3b;
|
|
1953
|
+
--xv7xkn9: #b4512f;
|
|
1954
|
+
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{n as t,t as n}from"./jsx-runtime-CldxteV5.js";import{a as r,d as i,f as a,ga as o,h as s,m as c,ni as l,o as u,p as d,s as f}from"./useSandboxFrame-3fuBOs0A.js";import{a as p,b as m,c as h,f as g,h as _,i as v,l as y,m as b,n as x,o as S,p as C,r as w,s as T,t as E,v as D,x as O,y as k}from"./DocumentLayout-BmFhvhLU.js";import{a as A,c as j,d as M,i as N,l as P,n as F,o as ee,r as I,s as L,u as R}from"./index.js";var z={name:`message-square`,size:24,node:[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]};z.node;var B=l(z),V=e(t(),1),H=n();function U({left:e,top:t,quote:n,initial:r,restored:a,leaving:o,onChange:s,onSubmit:c,onCancel:l,ref:u}){return(0,H.jsx)(`div`,{ref:u,...{0:{className:`x10l6tqk x1u8a7rm xj6ak53 xowlrko xllfotl xatqbsq x1u6ievf`},1:{className:`x10l6tqk x1u8a7rm xj6ak53 x1u6ievf xxp0q0x x12l1aco xn0cd8s x47corl`}}[!!o|0],style:{left:e,top:t},children:(0,H.jsxs)(x,{active:!0,children:[(0,H.jsxs)(`div`,{className:`x78zum5 x1pha0wt x167g77z xz9dl7a x1hr3lfm xqfszdh x1j6dyjg`,children:[(0,H.jsxs)(`span`,{className:`x98rzlu xeuugli xb3r6kr xuxw1ft xlyipyv xddlp02`,children:[`“`,n,`”`]}),a?(0,H.jsx)(`span`,{className:`x2lah0s x7zghnd`,children:`已恢复上次的草稿`}):null]}),(0,H.jsx)(i,{autoFocus:!0,initial:r,placeholder:`写下你的问题或意见…`,onChange:s,onSubmit:c,onCancel:l})]})})}function W({left:e,top:t,onComment:n,onCopy:r,ref:i}){return(0,H.jsxs)(`div`,{ref:i,className:`x10l6tqk x1u8a7rm x78zum5 x195vfkc xc9qbxq x9f619 xfawy5m x1q4ynmn xnntjla x1d5q07e xi1bcxy x773k2o xa3vuyk`,style:{left:e,top:t},onMouseDown:e=>e.preventDefault(),children:[n?(0,H.jsxs)(`button`,{type:`button`,onClick:n,className:`x78zum5 x6s0dn4 x17d4w8g xt970qd x1awh872 xc342km xu4hgxq xjbqb8w x1h20h33 xus9egd xqfszdh xfifm61 x1ypdohk`,children:[(0,H.jsx)(B,{size:14}),`评论`]}):null,(0,H.jsx)(`button`,{type:`button`,onClick:r,className:`x78zum5 x6s0dn4 x17d4w8g xt970qd x1awh872 xc342km xu4hgxq xjbqb8w x1h20h33 xus9egd xqfszdh xfifm61 x1ypdohk x1ks1olk`,children:`复制`})]})}var G=(e,t)=>`${e}\n${t}`;function K(){let e=new Map;return{save(t,n){n.trim()?e.set(t,n):e.delete(t)},take(t){return e.get(t)??``}}}function q(e){let t=(0,V.useMemo)(K,[]),[n,r]=(0,V.useState)(null),[i,a]=(0,V.useState)(!1),o=(0,V.useRef)(``),s=(0,V.useRef)(0),c=(0,V.useRef)(null),l=(0,V.useRef)(null);p(i?null:n?.target.range??null);let u=(0,V.useCallback)(n=>{window.clearTimeout(s.current);let i=t.take(G(n.blockId,n.quote));o.current=i,a(!1),r({target:n,initial:i}),window.getSelection()?.removeAllRanges(),e()},[t,e]),d=(0,V.useCallback)(e=>{n&&(t.save(G(n.target.blockId,n.target.quote),e?o.current:``),a(!0),s.current=window.setTimeout(()=>{r(null),a(!1)},120))},[n,t]);return(0,V.useEffect)(()=>{if(!n||i)return;let e=e=>{let t=e.target;c.current?.contains(t)||l.current?.contains(t)||d(!0)};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[n,i,d]),(0,V.useEffect)(()=>()=>window.clearTimeout(s.current),[]),{draft:n,leaving:i,restored:!!n?.initial,open:u,close:d,onText:e=>{o.current=e},panelRef:c,toolbarRef:l}}function J(e){return{left:e.offsetLeft,right:Math.min(e.offsetLeft+e.offsetWidth,window.innerWidth-16)}}function te({editor:e,threads:t,actions:n,agent:r,canComment:i,selection:a,clearSelection:o,onCreate:s,onMain:c,children:l}){let u=q(o),{draft:d}=u;return(0,H.jsx)(E,{editor:e,threads:t,actions:n,agent:r,onMain:c,overlay:e=>(0,H.jsxs)(H.Fragment,{children:[a&&!d?(0,H.jsx)(W,{ref:u.toolbarRef,...h(a,J(e),138,36,8),onComment:i?()=>u.open(a):void 0,onCopy:()=>{navigator.clipboard?.writeText(a.quote),window.getSelection()?.removeAllRanges(),o()}}):null,d?(0,H.jsx)(U,{ref:u.panelRef,...T(d.target,J(e),340,8),quote:d.target.quote,initial:d.initial,restored:u.restored,leaving:u.leaving,onChange:u.onText,onSubmit:e=>s(d.target,e).then(e=>(e&&u.close(!1),e)),onCancel:()=>u.close(!0)},`${d.target.blockId}:${d.target.quote}`):null]}),children:l})}function ne({id:e,title:t,agentEditing:n,agentSection:i,offline:a,openComments:o,cloud:s,compact:c=!1,onDone:l,agent:u=`Agent`}){return r(e,s?{...t?{title:t}:{},online:s.online,comments:o,activity:n?`${u} 正在编辑${i?` ${i}`:``}`:null,retrying:a,reason:s.reason}:null)&&!c?null:(0,H.jsxs)(`header`,{...{0:{className:`x7wzq59 x13vifvy x1n327nk xdd8jsf x78zum5 x6s0dn4 x1v2ro7d x4l9tsp x1rozbrz xqfszdh`},1:{className:`x7wzq59 x13vifvy x1n327nk xdd8jsf x78zum5 x6s0dn4 x1rozbrz xqfszdh x1hr3lfm x883omv`}}[!!c|0],children:[c?null:(0,H.jsxs)(`span`,{className:`xddlp02 xfifm61 xuxw1ft`,children:[`document / `,(0,H.jsx)(`span`,{className:`xo2rkog x1s688f`,children:e})]}),n?(0,H.jsxs)(`span`,{className:`x78zum5 x6s0dn4 x17d4w8g xj8oexa x1awh872 x1e6avla xlssvyo x19ay2w6 x1j6dyjg xuxw1ft`,children:[(0,H.jsx)(`i`,{className:`x1v4s8kt xols6we x16rqkct xtwfq29`}),u,` 正在编辑`,i?` ${i}`:``]}):null,a?(0,H.jsx)(`span`,{className:`x78zum5 x6s0dn4 x17d4w8g xj8oexa x1awh872 x1e6avla x1j6dyjg xuxw1ft xqdcvd7 x7zghnd`,children:`未同步,正在重试`}):null,s?.reason&&!c?(0,H.jsx)(`span`,{className:`xb3r6kr xddlp02 xfifm61 xuxw1ft xlyipyv`,children:s.reason}):null,(0,H.jsx)(`span`,{className:`x98rzlu`}),s?(0,H.jsxs)(`span`,{className:`x78zum5 x6s0dn4 x17d4w8g x1bo0w0s xfifm61 xuxw1ft`,children:[(0,H.jsx)(`i`,{...{0:{className:`xci0xqf x1hagigm x16rqkct xxwmxtg`},1:{className:`xci0xqf x1hagigm x16rqkct xux1nz0`}}[!!s.online|0]}),s.online?`电脑在线`:`电脑离线`]}):null,c?null:(0,H.jsxs)(`span`,{className:`xddlp02 xfifm61 xuxw1ft`,children:[`评论 `,o]}),l?(0,H.jsx)(`button`,{type:`button`,onClick:l,className:`x12ulsxz xaope02 xc342km x1kogg8i x19ckca5 xs0jrwl xqfszdh x4z9k3i x1s688f x1ypdohk`,children:`完成`}):s||c?null:(0,H.jsx)(R,{artifact:`document/${e}`})]})}function Y(e,t,n){let[r,i]=t<=n?[t,n]:[n,t];return{blockIds:e.slice(r,i+1).flatMap(e=>e.id?[e.id]:[]).slice(0,j.blockIds),heading:e.slice(0,r+1).filter(e=>e.heading).pop()?.text??``}}var X=crypto.randomUUID(),re=300,Z={quote:``,blockIds:[],heading:``};function ie(e){let t=window.getSelection(),n=e.getRootElement();if(!t||t.isCollapsed||!n?.contains(t.anchorNode)||!n.contains(t.focusNode))return Z;let r=t.toString().trim().slice(0,j.quote);return r?e.read(()=>{let e=m().getChildren(),n=t=>{let n=t&&k(t)?.getTopLevelElement();return n?e.findIndex(e=>e.is(n)):-1},i=n(t.anchorNode),a=n(t.focusNode);if(i<0||a<0)return{...Z,quote:r};let o=e.map(e=>({id:O(e,D)||``,heading:e.getType()===`heading`,text:e.getTextContent().slice(0,j.heading)}));return{quote:r,...Y(o,i,a)}}):Z}function ae(e,t,n,r){let i=(0,V.useRef)(Z);(0,V.useEffect)(()=>{if(!e)return;let n=0,a=()=>{let n=ie(e);JSON.stringify(n)!==JSON.stringify(i.current)&&(i.current=n,r({type:`selection`,artifact:t,tab:X,human:!0,...n}))},o=()=>{clearTimeout(n),n=window.setTimeout(a,re)};return document.addEventListener(`selectionchange`,o),()=>{clearTimeout(n),document.removeEventListener(`selectionchange`,o)}},[e,t,r]),(0,V.useEffect)(()=>{n&&i.current.quote&&r({type:`selection`,artifact:t,tab:X,human:!1,...i.current})},[n,t,r])}var oe=e=>{let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)};function se({id:e,channel:t,send:n}){let r=(t,n,r)=>fetch(`/api/document/${e}/${t}`,{method:`POST`,headers:{"Content-Type":r},body:n});return{artifact:`document/${e}`,channel:t,send:n,async meta(){let t=await fetch(`/api/artifacts/document/${e}`,{cache:`no-store`});return t.ok?await t.json():null},async state(){let t=await fetch(`/api/document/${e}/state`,{cache:`no-store`}),n=await t.json();if(!t.ok||!n.snapshot)throw Error(n.error??`load failed (${t.status})`);return n},async update(e){let t=await r(`update`,e,`application/octet-stream`);if(!t.ok)throw Error(`update failed (${t.status})`)},async comment(e){let t=await r(`comments`,JSON.stringify(e),`application/json`);if(!t.ok)throw Error(`comment failed (${t.status})`);return(await t.json()).comments}}}function ce(e){let t=_(),n=(e.connect??N)({url:e.url,artifact:e.artifact,WebSocket:e.WebSocket,retryMs:e.retryMs,onPresence:e.onPresence,onEvent:e=>t.emit(e),onOnline:()=>t.emit({type:`open`})});return{artifact:e.artifact,channel:t,close:n.close,async meta(){let t=await n.request({op:`meta`});return/^https?:\/\//.test(t.contentBase??``)?t:{...t,contentBase:e.contentBase}},state:()=>n.request({op:`state`}),async update(e){await n.request({op:`update`,bytes:oe(e)})},async comment(e){return(await n.request({op:`comment`,comment:e})).comments},send(e){let{type:t}=e;t===`selection`?n.request({op:`selection`,selection:e}).catch(()=>{}):(t===`loaded`||t===`runtime-error`)&&n.request({op:`client`,message:e}).catch(()=>{})}}}function le(e){let t=(0,V.useMemo)(_,[]),n=`document/${e}`,{live:r,send:i}=P(e=>{e.artifact===n&&t.emit(e)},()=>t.emit({type:`open`}));return{transport:(0,V.useMemo)(()=>se({id:e,channel:t,send:i}),[e,t,i]),live:r}}function ue(e,t){let[n,r]=(0,V.useState)(null),[i,a]=(0,V.useState)(null);return(0,V.useEffect)(()=>{let n=ce({url:F(e),artifact:`document/${e}`,contentBase:t,onPresence:a,connect:t=>I({...t,cloudId:e,known:A()})});return r(n),()=>{n.close(),r(null),a(null)}},[e,t]),{transport:n,presence:i}}function de({left:e,top:t,canComment:n,canEdit:r,onComment:i,onCopy:a,onEdit:o}){let s=[n?{label:`评论`,run:i,primary:!0}:null,{label:`复制`,run:a,primary:!1},r?{label:`改字`,run:o,primary:!1}:null].filter(e=>e!==null);return(0,H.jsx)(`div`,{"data-edit-menu":!0,className:`x10l6tqk x1u8a7rm x78zum5 x90ne7k xb3r6kr xur7f20 xf6xdpg`,style:{left:e,top:t},onMouseDown:e=>e.preventDefault(),children:s.map((e,t)=>(0,H.jsx)(`button`,{type:`button`,onClick:e.run,...{0:{className:`xt970qd x1l730wp xc342km xjbqb8w xfungia xqfszdh x4z9k3i x1ypdohk`},2:{className:`xt970qd x1l730wp xc342km xjbqb8w xfungia xqfszdh x4z9k3i x1ypdohk xe0pwq x19ypqd9 xi2uw60`},1:{className:`xt970qd x1l730wp xc342km xjbqb8w xfungia xqfszdh x4z9k3i x1ypdohk x1s688f`},3:{className:`xt970qd x1l730wp xc342km xjbqb8w xfungia xqfszdh x4z9k3i x1ypdohk xe0pwq x19ypqd9 xi2uw60 x1s688f`}}[(t>0)<<1|!!e.primary],children:e.label},e.label))})}var Q={state:{kmuXW:`x2lah0s`,kGuDYH:`xfifm61`,$$css:!0},waitingAgent:{kMwMTN:`x7zghnd`,$$css:!0},answered:{kMwMTN:`xh0clw4`,$$css:!0},resolved:{kMwMTN:`xddlp02`,$$css:!0}},fe=e=>new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`});function pe({thread:e,agent:t=`Agent`,actions:n,active:r=!1,offline:c=!1}){let l=s(e),u=e.status===`resolved`,f=u?{label:`已解决`,tone:Q.resolved}:l===`agent`?{label:`等 ${t} 回复`,tone:Q.waitingAgent}:l===`human`?{label:`${t} 已回复`,tone:Q.answered}:null;return(0,H.jsxs)(`div`,{"data-thread":e.id,...{0:{className:`xxlmvz2 x178xt8z x13fuv20 xxu5053 xqfszdh xo2rkog`},1:{className:`xxlmvz2 x178xt8z x13fuv20 xxu5053 xqfszdh xo2rkog xggygye`}}[!!r|0],children:[(0,H.jsxs)(`div`,{className:`x78zum5 x1pha0wt x167g77z x1lqa7cf x1vo0akb x19ypqd9 x13ym6ox x4z9k3i`,children:[(0,H.jsx)(`span`,{className:`x98rzlu xeuugli xb3r6kr xuxw1ft xlyipyv x1bo0w0s`,children:e.anchor.quote||`整段`}),f?(0,H.jsx)(`span`,{...o(Q.state,f.tone),children:f.label}):null]}),u&&!r?null:e.messages.map(e=>{let{label:t,initial:n}=d(e);return(0,H.jsxs)(`div`,{className:`x14vqqas`,children:[(0,H.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x167g77z x4z9k3i x1s688f`,children:[(0,H.jsx)(a,{human:e.author===`human`,initial:n,name:e.name,src:e.avatar}),t,(0,H.jsx)(`span`,{className:`xddlp02 xo1l8bm xfifm61`,children:fe(e.editedAt??e.at)})]}),(0,H.jsx)(`div`,{...{0:{className:`x1gslohp xxpkpgd x1jvydc1 x1dbl2gt x126k92a xj0a0fe`},1:{className:`x1gslohp xxpkpgd x1jvydc1 x1dbl2gt x126k92a xj0a0fe xc7n51q`}}[!!e.deleted|0],children:e.deleted?`已删除`:e.text})]},e.id)}),n?(0,H.jsxs)(`div`,{className:`x78zum5 x6s0dn4 xou54vl x1anpbxc xxpkpgd`,children:[u?null:(0,H.jsx)(`div`,{className:`x98rzlu xeuugli x1qyh8g1 xso031l x1q0q8m5 x1iz93xd`,children:(0,H.jsx)(i,{placeholder:`回复…`,onSubmit:t=>n.reply(e.id,t)})}),c?null:(0,H.jsx)(`button`,{type:`button`,onClick:()=>u?n.reopen(e.id):n.resolve(e.id),className:`x2lah0s x1717udv xc342km xjbqb8w x1bo0w0s xqfszdh x4z9k3i x1ypdohk`,children:u?`重新打开`:`解决`})]}):null]})}var $=.5,me=e=>e===78?$:e;function he({threads:e,agent:t=`Agent`,actions:n,offline:r,draft:a,onCreate:o,onCancelDraft:c,activeId:l,snap:u,onSnap:d}){let f=(0,V.useRef)(null),p=L([78,$,1],u,d),m=e.filter(e=>!e.messages.every(e=>e.deleted)),h=m.filter(e=>s(e)===`agent`).length,g=r?`电脑离线,暂时不能评论`:h>0?`${h} 条等 ${t} 回复`:null;return(0,V.useEffect)(()=>{l&&f.current?.querySelector(`[data-thread="${CSS.escape(l)}"]`)?.scrollIntoView({block:`start`,behavior:`smooth`})},[l]),(0,H.jsx)(M,{open:!0,className:`ryugi-phone-sheet`,dismissible:!1,variant:`embedded`,mode:`overlay`,minHeight:78,maxHeight:1,snapPoints:[78,$,1],activeSnapPoint:u,onSnapPointChange:d,title:(0,H.jsxs)(`span`,{...p,className:`x78zum5 x1pha0wt x17d4w8g xqfszdh x1jvydc1 x1s688f`,children:[`评论 `,m.length,g?(0,H.jsxs)(`span`,{className:`xddlp02 xfifm61 xo1l8bm`,children:[`· `,g]}):null]}),children:(0,H.jsxs)(`div`,{ref:f,className:`x17qtykl xwxc41k`,children:[a&&n?(0,H.jsxs)(`div`,{className:`x10dr8xq xqfszdh`,children:[(0,H.jsxs)(`div`,{className:`x78zum5 x1pha0wt x167g77z x4z9k3i`,children:[(0,H.jsx)(`span`,{className:`x98rzlu xeuugli x1lqa7cf x1vo0akb x19ypqd9 x13ym6ox xb3r6kr xuxw1ft xlyipyv x1bo0w0s`,children:a.quote}),(0,H.jsx)(`button`,{type:`button`,onClick:c,className:`x1717udv xc342km xjbqb8w xddlp02 x4z9k3i x1ypdohk`,children:`取消`})]}),(0,H.jsx)(`div`,{className:`x1xmf6yo x1qyh8g1 xso031l x1q0q8m5 x1iz93xd`,children:(0,H.jsx)(i,{autoFocus:!0,placeholder:`写给 agent 的评论…`,onSubmit:e=>o(a,e).then(e=>(e&&c(),e))})})]}):null,m.length===0&&!a?(0,H.jsx)(`div`,{className:`xr9q8rw xddlp02 xqfszdh x4z9k3i x2b8uid`,children:`还没有评论。选中文字就能评论。`}):null,m.map(e=>(0,H.jsx)(pe,{thread:e,agent:t,actions:n,active:e.id===l,offline:r},e.id))]})})}function ge({editor:e,threads:t,actions:n,agent:r,canComment:i,canEdit:a,offline:o,selection:s,clearSelection:c,onCreate:l,onEdit:u,onMain:d,children:f}){let[m,g]=(0,V.useState)(null),[_,y]=(0,V.useState)(null),[b,x]=(0,V.useState)(78),[C,T]=(0,V.useState)(null),E=v(e,t,m);S(E,t,_),p(C?.range??null);let D=()=>{window.getSelection()?.removeAllRanges(),c()};return(0,H.jsxs)(`main`,{ref:e=>{g(e),d?.(e)},className:`x1n2onr6 x1cnzs8 x17qtykl x1ffnkcp`,children:[(0,H.jsx)(`article`,{onClick:e=>{let t=w(E,e.clientX,e.clientY);y(t),t&&x(me)},children:f}),s&&!C?(0,H.jsx)(de,{...h(s,{left:8,right:(m?.clientWidth??0)-8},150,34,8),canComment:i,canEdit:a,onComment:()=>{T(s),x($),D()},onCopy:()=>{navigator.clipboard?.writeText(s.quote),D()},onEdit:()=>{u(s),c()}}):null,(0,H.jsxs)(`div`,{className:`xixxii4 x1ozmhy9 xu96u03 x3m8u43 x1ey2m1c x1355qak x47corl`,children:[(0,H.jsx)(`div`,{...{0:{className:`x10l6tqk x10a8y8t xf6xdpg xg01cxk x19991ni x1d8287x`},1:{className:`x10l6tqk x10a8y8t xf6xdpg x19991ni x1d8287x xs9930i x67bb7w`}}[b===1|0],onClick:()=>x($)}),(0,H.jsx)(he,{threads:t,agent:r,actions:n,offline:o,draft:C,onCreate:l,onCancelDraft:()=>T(null),activeId:_,snap:b,onSnap:x})]})]})}var _e=200;function ve(e,t){let[n,r]=(0,V.useState)(null);return(0,V.useEffect)(()=>{if(!e||!t)return;let n=0,i=()=>{let n=window.getSelection(),i=e.getRootElement();if(!n||n.isCollapsed||n.rangeCount===0||!i?.contains(n.anchorNode)){r(null);return}let a=n.toString().trim(),o=e.read(()=>{let e=n.anchorNode&&k(n.anchorNode)?.getTopLevelElement(),t=n.focusNode&&k(n.focusNode)?.getTopLevelElement();return!e||!t||!e.is(t)?null:O(e,D)||null});if(!o||!a){r(null);return}let s=n.getRangeAt(0),c=[...s.getClientRects()],l=c[0]??s.getBoundingClientRect(),u=c.at(-1)??l,d=t.getBoundingClientRect();r({blockId:o,quote:a.slice(0,500),left:l.left-d.left,bottom:u.bottom-d.top,top:l.top-d.top,right:u.right-d.left,range:s.cloneRange()})},a=()=>{clearTimeout(n),n=window.setTimeout(i,_e)};return document.addEventListener(`selectionchange`,a),()=>{clearTimeout(n),document.removeEventListener(`selectionchange`,a)}},[e,t]),[n,()=>r(null)]}function ye(){let e=(0,V.useMemo)(()=>window.matchMedia(`(prefers-color-scheme: dark)`),[]),[t,n]=(0,V.useState)(e.matches);return(0,V.useEffect)(()=>{let t=()=>n(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[e]),t}function be(e){(0,V.useEffect)(()=>{if(!e)return;let t=document.createElement(`base`);return t.href=e,document.head.prepend(t),()=>t.remove()},[e])}function xe({id:e}){let{transport:t,live:n}=le(e);return(0,H.jsx)(Se,{id:e,transport:t,live:n})}function Se({id:e,transport:t,live:n,cloud:r}){let[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(null),[l,d]=(0,V.useState)(c),[p,m]=(0,V.useState)(null),[h,_]=(0,V.useState)(!1),[v,x]=(0,V.useState)(null),[S,w]=(0,V.useState)(!1),[T,E]=(0,V.useState)(null),[D,O]=(0,V.useState)(null),k=ye(),{artifact:A,channel:j}=t,M=!r||r.online,N=!r||r.canEdit,P=f(u),[F,I]=(0,V.useState)(!1),L=P?F&&N:N,R=(0,V.useCallback)(async()=>{let e=await t.meta();e&&a(e)},[t]);(0,V.useEffect)(()=>{let e=!1;return(async()=>{try{await R();let n=await t.state();if(e)return;let r=new C;r.setRecordTimestamp(!0),r.setChangeMergeInterval(20),r.import(g(n.snapshot)),_(!!n.streaming),d(n.comments??c()),s(r)}catch(t){e||m(t.message)}})(),()=>{e=!0}},[t,R]),(0,V.useEffect)(()=>j.subscribe(e=>{e.type===`change`?R():e.type===`doc-status`?_(e.streaming):e.type===`doc-comments`&&d(e.comments)}),[j,R]),(0,V.useEffect)(()=>{T?.setEditable(L)},[T,L]),(0,V.useEffect)(()=>{N||I(!1)},[N]);let z=(0,V.useCallback)(e=>{_(!!e.streaming),e.comments&&d(e.comments)},[]);be(i?.contentBase),ae(T,A,n,t.send);let B=(0,V.useMemo)(()=>({artifact:A,contentBase:i?.contentBase??``,channel:j,send:t.send}),[A,i?.contentBase,j,t]);(0,V.useEffect)(()=>{document.title=i?.title||e},[i?.title,e]);let U=l.threads.filter(e=>e.status===`open`).length,[W,G]=ve(T,D),K=(0,V.useCallback)(async e=>{try{return d(await t.comment(e)),!0}catch{return!1}},[t]),q=(0,V.useMemo)(()=>({reply:(e,t)=>K({op:`reply`,threadId:e,text:t}),edit:(e,t,n)=>void K({op:`edit`,threadId:e,messageId:t,text:n}),remove:(e,t)=>void K({op:`delete`,threadId:e,messageId:t}),resolve:e=>void K({op:`resolve`,threadId:e}),reopen:e=>void K({op:`reopen`,threadId:e})}),[K]),J=(0,V.useCallback)((e,t)=>K({op:`create`,blockId:e.blockId,quote:e.quote,text:t}),[K]),Y=(0,V.useCallback)(e=>{if(!T)return;T.setEditable(!0),I(!0),T.getRootElement()?.focus({preventScroll:!0});let t=window.getSelection();t?.removeAllRanges(),t?.addRange(e.range)},[T]);if(p)return(0,H.jsx)(`div`,{className:`x1o8uwn5 x2b8uid x1bo0w0s xqfszdh xif65rj`,children:p});if(!o)return(0,H.jsx)(`div`,{className:`x1o8uwn5 x2b8uid x1bo0w0s xqfszdh xif65rj`,children:`Loading…`});let X=(0,H.jsx)(b.Provider,{value:B,children:(0,H.jsx)(y,{transport:t,agent:i?.agent,doc:o,theme:k?`dark`:`light`,onAgentSection:x,onOffline:w,onState:z,onEditorReady:E})});return(0,H.jsxs)(`div`,{className:`x1us19tq x1rozbrz xo2rkog`,className:`ryugi-doc ${{className:`x1us19tq x1rozbrz xo2rkog`}.className??``}`,children:[(0,H.jsx)(ne,{id:e,title:i?.title||e,agent:i?.agent,agentEditing:h,agentSection:v,offline:S,openComments:U,cloud:r,compact:P,onDone:P&&F?()=>I(!1):void 0}),P?(0,H.jsx)(ge,{editor:T,threads:l.threads,actions:q,agent:i?.agent,canComment:M,canEdit:N,offline:!(!r||r.online),selection:F?null:W,clearSelection:G,onCreate:J,onEdit:Y,onMain:O,children:X}):(0,H.jsx)(te,{editor:T,threads:l.threads,actions:q,agent:i?.agent,canComment:M,selection:W,clearSelection:G,onCreate:J,onMain:O,children:X}),(0,H.jsx)(ee,{warnings:i?.warnings??[]})]})}export{Se as DocumentView,xe as default,ue as t};
|