@bud.sh/app 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/bud/design.js +1 -1
- package/dist/client/assets/canvas-C8hyPWoT.js +1 -0
- package/dist/client/assets/difference-worker-BfF4_N3e.js +8 -0
- package/dist/client/assets/files-D_Tm7gCK.js +1 -0
- package/dist/client/assets/i18n-BtfXum8P.js +1 -0
- package/dist/client/assets/index-Dpxjiok1.js +2 -0
- package/dist/client/assets/pages-B-_CKvDS.js +1 -0
- package/dist/client/assets/project-branches-DzXdaT9L.js +1 -0
- package/dist/client/assets/project-comments-CQkB2jbE.js +1 -0
- package/dist/client/assets/project-thread-links-BN7zL0AX.js +1 -0
- package/dist/client/assets/{project-threads-DezXiVK6.js → project-threads-CHGG-6fo.js} +104 -104
- package/dist/client/assets/{project-work-CB1JHqGW.js → project-work-L5fYMSOu.js} +1 -1
- package/dist/client/assets/task-design-DYqcqq1b.js +23 -0
- package/dist/client/assets/tasks-A2FKo3_h.js +1 -0
- package/dist/client/assets/tasks-request-DGigNdyK.js +1 -0
- package/dist/client/assets/workspace-CvWmU2RK.js +2 -0
- package/dist/client/index.html +2 -1
- package/dist/hosted/assets/{canvas-C69-96GR.js → canvas-MWtOwaWm.js} +69 -41
- package/dist/hosted/assets/{comment-data-CiDuvXi2.js → comment-data-DsgJWq4n.js} +7195 -1067
- package/dist/hosted/assets/{files-DQL5hzs3.js → files-Wvo11G2A.js} +92 -89
- package/dist/hosted/assets/{pages-DFs7jB6M.js → pages-BAmRFVtU.js} +31 -22
- package/dist/hosted/assets/{project-branches-CffV4IS1.js → project-branches-BNloVosX.js} +5 -5
- package/dist/hosted/assets/{project-thread-links-B1Y2bDUx.js → project-thread-links-BmY8HQXt.js} +12 -12
- package/dist/hosted/assets/{screen-BroBb1Z_.js → screen-QmqmI2Aq.js} +18 -18
- package/dist/hosted/assets/{tasks-mzmNhe2d.js → tasks-C8iWPrWg.js} +29 -29
- package/dist/hosted/assets/{tasks-request-Dcrpd2_8.js → tasks-request-C89fN1dK.js} +7 -7
- package/dist/hosted/hosted.js +48 -29
- package/dist/node/design.js +6235 -139
- package/dist/node/index.js +4 -2
- package/dist/node-host/assets/{canvas-BZhzizzt.js → canvas-D_F8SIlm.js} +70 -42
- package/dist/node-host/assets/{comment-data-nUlI0szN.js → comment-data-q_8INiZz.js} +7221 -1093
- package/dist/node-host/assets/{files-CTzcWGjb.js → files-xazOrNCX.js} +92 -89
- package/dist/node-host/assets/{pages-0aWH7z1j.js → pages-D6VkmdfQ.js} +31 -22
- package/dist/node-host/assets/{project-branches-1zs_0J_y.js → project-branches-C26hwmo3.js} +5 -5
- package/dist/node-host/assets/{project-thread-links-LpUAGcDr.js → project-thread-links-BOzjws5W.js} +12 -12
- package/dist/node-host/assets/{screen-DQoTOWYR.js → screen-Dog-YByu.js} +18 -18
- package/dist/node-host/assets/{tasks-C0WqnM7Q.js → tasks-A1_bpb3_.js} +30 -30
- package/dist/node-host/assets/{tasks-request-Bwky5ORf.js → tasks-request-Bie1PpQP.js} +7 -7
- package/dist/node-host/node-host.js +48 -29
- package/dist/server/assets/{branch-previews-BryeA_kA.js → branch-previews-ClkoJ0lM.js} +4 -2
- package/dist/server/assets/{canvas-D6tIkONI.js → canvas-Dn4RYoU2.js} +70 -42
- package/dist/server/assets/{comment-data-BuArfgcc.js → comment-data-B0OLHBGp.js} +7219 -1091
- package/dist/server/assets/{files-DkrEB48U.js → files-C5Vilfe4.js} +92 -89
- package/dist/server/assets/{listener-oKd5ETMj.js → listener-o1STuLju.js} +43 -29
- package/dist/server/assets/{pages-iEdmK_o2.js → pages-BNa0MHEc.js} +31 -22
- package/dist/server/assets/{project-branches-B7rtrvMl.js → project-branches-GtQYyOH5.js} +5 -5
- package/dist/server/assets/{project-thread-links-ue_ad9IX.js → project-thread-links-Nfz9NIny.js} +12 -12
- package/dist/server/assets/{project-work-6aOyja4v.js → project-work-Cy_BpHwR.js} +2 -2
- package/dist/server/assets/{screen-DMUB9a-K.js → screen-BtcJmZwj.js} +18 -18
- package/dist/server/assets/{server-DN5uwE4k.js → server-CYvuOSBA.js} +1 -1
- package/dist/server/assets/{services-Ber8opFE.js → services-DK4fqrlF.js} +2 -2
- package/dist/server/assets/{tasks-C2oa2wSC.js → tasks-B82tHwyQ.js} +31 -31
- package/dist/server/assets/{tasks-request-Bk5EoY_p.js → tasks-request-BtJBlkxV.js} +7 -6
- package/dist/server/capture.js +1 -1
- package/dist/server/migration.js +3 -3
- package/dist/server/runtime.js +4 -4
- package/dist/server/server.js +3 -3
- package/dist/types/assets/{config-Cuauq8xY.d.ts → config-DIC2cf_S.d.ts} +3 -0
- package/dist/types/assets/{contract-BsCQbbxD.d.ts → contract-CAT-XFNq.d.ts} +3 -1
- package/dist/types/companion.d.ts +1 -1
- package/dist/types/hosted.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/node-host.d.ts +2 -2
- package/dist/types/screen.d.ts +1 -1
- package/package.json +1 -1
- package/dist/client/assets/canvas-DxaIItAs.js +0 -1
- package/dist/client/assets/difference-worker-BpqPBs5g.js +0 -8
- package/dist/client/assets/files-C-7xoSt4.js +0 -1
- package/dist/client/assets/index-GPPa1XPO.js +0 -2
- package/dist/client/assets/pages-BVrTX_Eq.js +0 -1
- package/dist/client/assets/project-branches-DpxQx-T4.js +0 -1
- package/dist/client/assets/project-comments-D897aU5O.js +0 -1
- package/dist/client/assets/project-thread-links-Bp_TseD0.js +0 -1
- package/dist/client/assets/task-design-bktfn_Ok.js +0 -23
- package/dist/client/assets/tasks-Cqfj4fQN.js +0 -1
- package/dist/client/assets/tasks-request-mWMk9pBo.js +0 -1
- package/dist/client/assets/workspace-CznMN7F6.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
export{r as ActionsDefault,i as ColumnDefault,t as PropertiesDefault,a as SectionsDefault,rt as TaskCardDefault,et as TaskField,n as TaskPageDefault,Z as defineTaskDesign,En as fieldByRole,tt as taskFieldRenderers,wn as valueByRole}from"../task-design-
|
|
1
|
+
export{r as ActionsDefault,i as ColumnDefault,t as PropertiesDefault,a as SectionsDefault,rt as TaskCardDefault,et as TaskField,n as TaskPageDefault,Z as defineTaskDesign,En as fieldByRole,tt as taskFieldRenderers,wn as valueByRole}from"../task-design-DYqcqq1b.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./i18n-BtfXum8P.js";import{t}from"./jsx-B4XNFIzB.js";import{t as n}from"./component-DWct-Tq6.js";import{n as r}from"./on-mixin-iWnqUzq5.js";import{n as i}from"./attrs-mixin-CmlG_FtV.js";import{c as a,l as o,t as s}from"./loader-Q6-HPKft.js";import{t as c}from"./screen-Dfvzj6n2.js";import{A as l,L as u,R as d,j as f,u as p,xt as m}from"./task-design-DYqcqq1b.js";import{At as h,G as g,H as _,U as v,jt as y,s as b,st as x}from"./project-threads-CHGG-6fo.js";import{i as S,n as C,t as w}from"./project-comments-CQkB2jbE.js";import{i as T,n as E,t as D}from"./project-branches-DzXdaT9L.js";import{t as O}from"./project-thread-links-BN7zL0AX.js";var k=760,A=r(`pointerdown`,e=>e.stopPropagation());function j(e,t,n){let r=e.capture.width*t,i=e.capture.thumbnails.map(e=>e.width),a=e=>{let t=i.findIndex(t=>r<=t*e);return t<0?`slices`:t},o=e=>e===`slices`?i.length:e,s=a(1);return n===void 0||o(s)>=o(n)||o(a(.85))<o(n)?s:n}function M(e,t){return e?.get(t)??{visible:!0,top:0,bottom:1/0,density:1}}function N(e,t){let n=0;return e.capture.tiles.map((r,i)=>{let a={tile:r,index:i,top:n,src:e.srcs[i]};return n+=r.height,{...a,shownTo:Math.min(n,t)}})}function P(n){let{route:i,previews:c}=n.props,l=i.pageId??i.id,u=()=>T(n.props.theme,n.props.size),d=``,f,p,h=``;function g(e){return n.props.topOnly?e.capture.tiles[0]?.height??e.capture.height:e.capture.height}function _(){let{preview:e,images:t}=c.get(l),r=t[u()]??p,i=r?g(r):e?.captures[0]?.height??(e?.state===`failed`?k:0);if(!e||!i)return;let a=`${i}:${e.path}:${r?.capture.hash??``}`;d!==a&&(d=a,n.props.onLayout({height:i,path:e.path,pins:r?.capture.pins}))}function y(e){let t=M(n.props.viewport,i.id);if(!t.visible||f===void 0)return{thumbnail:void 0,slices:[]};if(f===`slices`&&e.srcs.length){let n=Math.min(t.bottom,g(e));return{thumbnail:e.thumbnails.at(-1),slices:N(e,n).filter(({src:e,top:n,shownTo:r})=>e&&n<r&&r>t.top)}}let r=f===`slices`?e.thumbnails.length-1:f;return{thumbnail:e.thumbnails[r]??e.thumbnails.at(-1),slices:[]}}function b(){let e=c.get(l).images[u()];if(!e||e===p)return;if(!p||p.capture.hash===e.capture.hash){p=e;return}if(f===`slices`&&!e.srcs.length){c.slices(l,n.props.theme,n.props.size);return}let t=`${e.capture.hash}:${f}`;if(h===t)return;h=t;let r=e,{thumbnail:i,slices:a}=y(r);Promise.all([i,...a.map(({src:e})=>e)].flatMap(e=>{if(!e)return[];let t=new Image;return t.src=e,[t.decode().catch(()=>{})]})).then(()=>{h!==t||n.signal.aborted||(h=``,p=c.get(l).images[u()]??r,_(),n.update())})}let x=c.watch(l,()=>{b(),_(),n.update()}),S=n.props.viewport?.watch(i.id,()=>void n.update());return n.signal.addEventListener(`abort`,()=>{x(),S?.()},{once:!0}),()=>{let{mode:u,origin:d,theme:h,viewport:x,size:S}=n.props,{preview:C,images:w,refreshing:E,error:D}=c.get(l);n.queueTask(()=>{c.show(l,h,S),_()});let O=w[T(h,S)]??w[T(h===`dark`?`light`:`dark`,S)];O&&(!p||p.capture.theme!==O.capture.theme)?p=O:b();let k=p,N=D||(C?.captures.length?null:C?.error),P=new URL(i.path,d).href;if(k){let a=M(x,i.id);if(f=j(k,a.density,f),a.visible&&f===`slices`&&!k.srcs.length){let{theme:e}=k.capture;n.queueTask(()=>c.slices(l,e,S))}let o=g(k),{width:s}=k.capture,{thumbnail:d,slices:p}=y(k);return t(`div`,{role:`img`,"aria-label":e(`app.client.previewImage.preview`,{title:i.title}),"data-detail":a.visible?p.length?`slices`:d?`thumbnail`:`pending`:`hidden`,class:`relative select-none overflow-hidden ${u===`comment`?`cursor-crosshair`:``}`,style:{height:o},mix:[r(`pointerdown`,e=>{u!==`pan`&&e.stopPropagation()}),r(`click`,e=>{if(u!==`comment`||C?.path!==i.path)return;e.stopPropagation();let t=e.currentTarget.getBoundingClientRect(),r={x:(e.clientX-t.left)*s/t.width,y:(e.clientY-t.top)*o/t.height};n.props.onPick({element:null,path:i.path,...v(r,s),found:c.describe(l,k.capture,r.x,r.y)})})],children:[d?t(`img`,{src:d,alt:``,decoding:`async`,draggable:!1,class:`absolute inset-x-0 top-0 block w-full max-w-none`,style:{height:k.capture.height}}):null,p.map(({tile:e,index:n,top:r,src:i})=>t(`img`,{src:i,alt:``,decoding:`async`,draggable:!1,class:`absolute inset-x-0 block w-full max-w-none`,style:{top:r,height:e.height+ +(n<k.capture.tiles.length-1)}},e.hash))]})}return C?.state===`failed`||N&&!E?t(`div`,{class:`absolute inset-0 flex flex-col items-center justify-center gap-3 p-12 text-center`,role:`status`,children:[t(m,{name:`circle-alert`,size:24,class:`text-muted`}),t(o,{variant:`title`,weight:`semibold`,class:`text-ink`,children:e(`app.client.previewImage.captureFailed`,{title:i.title})}),N?t(o,{variant:`ui`,class:`max-w-md text-muted`,children:N}):null,t(`div`,{class:`mt-2 flex gap-2`,children:[t(a,{variant:`secondary`,disabled:E,mix:[A,r(`click`,()=>void c.refresh(l))],children:t(o,{variant:`ui`,children:e(`app.client.previewImage.tryAgain`)})}),t(`a`,{href:P,target:`_blank`,rel:`noreferrer`,class:`bud-interaction bud-control flex h-control items-center rounded-lg px-3 text-ink`,mix:A,children:t(o,{variant:`ui`,children:e(`app.client.previewImage.openPage`)})})]})]}):t(`div`,{class:`absolute inset-0 flex items-center justify-center`,children:t(s,{label:e(`app.client.previewImage.capturing`,{title:i.title})})})}}function ee(i){let{route:a,previews:o}=i.props,s=a.pageId??a.id,c=o.watch(s,()=>void i.update());return i.signal.addEventListener(`abort`,c,{once:!0}),()=>{let{preview:i,refreshing:c}=o.get(s),l=c||!!i?.updating,f=i?.state===`ready`?i.error:null;return t(n,{children:[f?t(d,{label:f,children:t(`span`,{tabIndex:0,role:`img`,"aria-label":f,class:`pointer-events-auto ms-1 inline-flex text-amber-500`,mix:A,children:t(m,{name:`circle-alert`,size:13})})}):null,t(u,{icon:`sync`,label:e(`app.client.previewImage.refresh`,{title:a.title}),tooltip:!0,size:`small`,iconSize:13,disabled:c,"aria-busy":l?`true`:void 0,class:`pointer-events-auto ms-0.5 text-muted hover:text-ink ${l?`[&_svg]:animate-spin`:``}`,mix:[A,r(`click`,()=>void o.refresh(s))]})]})}}var F=new Map;function I(){return new Worker(new URL(`/assets/difference-worker-BfF4_N3e.js`,``+import.meta.url),{type:`module`})}function L(t){let{routes:n,before:r,after:i,theme:a,signal:o}=t,s=new Map,c={get:e=>s.get(e)??{state:`pending`,regions:[]},progress:{compared:0,total:n.length},done:n.length===0},l,u=0,d=new Map;function f(e){l??=I(),l.onmessage=e=>{d.get(e.data.id)?.(e.data),d.delete(e.data.id)};let t=u++;return new Promise(n=>{d.set(t,n),l.postMessage({...e,id:t})})}o.addEventListener(`abort`,()=>l?.terminate(),{once:!0});async function p(e,t){let[n,o]=await Promise.all([r.picture(e,a,t),i.picture(e,a,t)]);if(!n||!o)return{state:`missing`,regions:[],before:n?.capture,after:o?.capture};let s={before:n.capture,after:o.capture};if(n.capture.hash===o.capture.hash)return{state:`same`,regions:[],...s};let c=`${n.capture.hash}\0${o.capture.hash}`,l=F.get(c);if(!l){let e=e=>({images:e.images,heights:e.capture.tiles.map(e=>e.height),scale:e.capture.scale}),t=await f({width:n.capture.width,before:e(n),after:e(o)});if(`error`in t)return{state:`failed`,regions:[],error:t.error,...s};l=t.regions,F.set(c,l)}return{state:l.length?`different`:`same`,regions:l,...s}}return(async()=>{for(let r of n){if(o.aborted)return;let i=await p(r.page,r.size).catch(t=>({state:`failed`,regions:[],error:t instanceof Error?t.message:e(`app.client.projectDifferences.comparisonFailed`)}));if(o.aborted)return;s.set(r.id,i),c.progress={compared:c.progress.compared+1,total:n.length},t.onChange(r.id)}c.done=!0,l?.terminate(),l=void 0,t.onChange(null)})(),c}var R=40,z=48;function B(e){let t=0;return{slots:e.map(e=>{let n={top:t,height:R+Math.max(e.before.height,e.after.height,1)};return t+=n.height+z,n}),height:Math.max(1,t-z)}}function V(t){return e(t===`changed`?`app.client.differenceView.changed`:t===`added`?`app.client.differenceView.added`:`app.client.differenceView.removed`)}function H(e){let t=new Map;return e.addEventListener(`abort`,()=>{for(let e of t.values())URL.revokeObjectURL(e)},{once:!0}),e=>{let n=t.get(e);return n||t.set(e,n=URL.createObjectURL(e)),n}}function te(n){let r=H(n.signal),i=0;return()=>{let{route:a,side:s,label:c,regions:l,viewport:u}=n.props,{slots:d,height:f}=B(l);i!==f&&(i=f,n.queueTask(()=>n.props.onLayout({height:f,path:a.path})));let p=u?.get(a.id)?.visible??!0;return t(`div`,{role:`img`,"aria-label":e(`app.client.differenceView.artboardLabel`,{title:a.title,label:c}),"data-difference":s,"data-changes":l.length,class:`relative select-none bg-[var(--bud-main)]`,style:{height:`${f}px`},children:l.map((n,i)=>{let a=n[s],l=n.crops[s],u=d[i];return t(`div`,{"data-kind":n.kind,"data-span":`${a.y} ${a.height}`,class:`absolute inset-x-0`,style:{top:`${u.top}px`,height:`${u.height}px`},children:[t(`div`,{class:`flex items-center gap-2 px-1`,style:{height:`${R}px`},children:[t(o,{variant:`ui`,weight:`medium`,children:e(`app.client.differenceView.changeNumber`,{count:i+1})}),t(o,{variant:`ui`,tone:`muted`,children:V(n.kind)})]}),l&&a.height>0?t(`div`,{class:`relative overflow-hidden`,style:{height:`${a.height}px`},children:[p?t(`img`,{alt:``,src:r(l),draggable:!1,class:`block h-full w-full`}):null,n.kind===`changed`?t(`div`,{"aria-hidden":`true`,class:`pointer-events-none absolute inset-y-0 rounded-sm outline-2 outline-red-500/70`,style:{left:`${n.x}px`,width:`${Math.max(2,n.width)}px`}}):null]}):t(`div`,{class:`grid h-24 place-items-center rounded-lg border border-dashed border-line`,children:t(o,{variant:`ui`,tone:`muted`,children:e(`app.client.differenceView.notIn`,{label:c})})})]},i)})})}}function ne(n){let a=H(n.signal),s=e=>{let{slides:t,index:r}=n.props;t.length&&n.props.onIndex((r+e+t.length)%t.length)};return()=>{let{slides:c,index:l,beforeLabel:d,afterLabel:f}=n.props,p=c[Math.min(l,c.length-1)],m=(n,r)=>{let i=p?.region.crops[n];return t(`figure`,{class:`m-0 flex min-w-0 flex-col gap-2`,children:[t(`figcaption`,{children:t(o,{variant:`ui`,tone:`muted`,children:r})}),i&&p.region[n].height>0?t(`div`,{class:`relative`,children:[t(`img`,{alt:e(`app.client.differenceView.artboardLabel`,{title:p.route.title,label:r}),src:a(i),class:`block w-full rounded-lg ring-1 ring-line`}),p.region.kind===`changed`?t(`div`,{"aria-hidden":`true`,class:`pointer-events-none absolute inset-y-0 rounded-sm outline-2 outline-red-500/70`,style:{left:`${p.region.x/p.width*100}%`,width:`max(2px, ${p.region.width/p.width*100}%)`}}):null]}):t(`div`,{class:`grid h-32 place-items-center rounded-lg border border-dashed border-line`,children:t(o,{variant:`ui`,tone:`muted`,children:e(`app.client.differenceView.notIn`,{label:r})})})]})};return t(`section`,{role:`dialog`,"aria-label":e(`app.client.differenceView.slideshowLabel`),class:`bud-surface absolute inset-0 z-40 flex flex-col bg-[var(--bud-main)]`,mix:i((e,t)=>{e.focus(),e.ownerDocument.addEventListener(`keydown`,e=>{if(e.key===`ArrowRight`)s(1);else if(e.key===`ArrowLeft`)s(-1);else if(e.key===`Escape`)n.props.onClose();else return;e.preventDefault()},{signal:t})}),tabindex:-1,children:[t(`header`,{class:`flex h-12 shrink-0 items-center gap-2 border-b border-line ps-4 pe-2`,children:[t(`div`,{class:`flex min-w-0 flex-1 items-baseline gap-2`,children:[t(o,{variant:`ui`,weight:`medium`,class:`truncate`,children:p?.route.title??e(`app.client.differenceView.noDifferences`)}),p?t(o,{variant:`ui`,tone:`muted`,class:`shrink-0 tabular-nums`,role:`status`,children:e(`app.client.differenceView.slideStatus`,{kind:V(p.region.kind),change:p.index+1,count:p.count,index:l+1,total:c.length})}):null]}),t(u,{tooltip:!0,icon:`chevron-left`,label:e(`app.client.differenceView.previousChange`),disabled:c.length<2,mix:r(`click`,()=>s(-1))}),t(u,{tooltip:!0,icon:`chevron-right`,label:e(`app.client.differenceView.nextChange`),disabled:c.length<2,mix:r(`click`,()=>s(1))}),t(u,{tooltip:!0,icon:`close`,label:e(`app.client.differenceView.closeSlideshow`),shortcut:`escape`,mix:r(`click`,()=>n.props.onClose())})]}),t(`div`,{class:`min-h-0 flex-1 overflow-auto p-4`,children:p?t(`div`,{class:`grid gap-4 md:grid-cols-2`,children:[m(`before`,d),m(`after`,f)]}):null})]})}}function U(e){return!(!e.anchor||`type`in e.anchor)}function W(e,t){let{themes:n}=e.previews,r=h(t),i=document.documentElement.dataset.theme;return n.find(e=>e===r)??n.find(e=>e===i)??n[0]}function G(i){let a=i.props.project,o,c=w({store:b(a),token:a.token,signal:i.signal,initial:i.props.comments,onChange:()=>{i.update()}});i.props.comments.stored&&c.load();let d=a.workingTree?null:a.main??`main`,m=`bud:canvas-branch:${a.id}`,v=h(m),C=typeof v==`string`?v:d,T=!0,k=!1,A=D({project:a,signal:i.signal,onChange:()=>{C&&C!==d&&A.loaded&&!A.list.branches.some(e=>e.name===C&&e.active)?N(d):i.update()}}),j=new AbortController;i.signal.addEventListener(`abort`,()=>j.abort(),{once:!0});let M=E({project:a,signal:j.signal,branch:C});function N(e){if(k=!1,e===C)return void i.update();C=e,y(m,e),j.abort(),j=new AbortController,M=E({project:a,signal:j.signal,branch:e}),i.update()}let F=`bud:preview-theme:${a.id}`,I=W(a,F),R=`bud:preview-top-only:${a.id}`,z=h(R)===!0,B=a.previews.viewports,V=B.length>1,H=`bud:canvas-viewport:${a.id}`,G=h(H),K=V&&typeof G==`string`&&(G===`all`||B.some(e=>e.id===G))?G:V?`all`:B[0].id;function q(e){e!==K&&(K=e,y(H,e),i.update())}function J(){let e=K===`all`?B:B.filter(e=>e.id===K);return a.routes.flatMap(t=>e.map(e=>({route:t,size:e,artboard:V?{...t,id:`${t.id}@${e.id}`,pageId:t.id,width:e.width,caption:String(e.width)}:t})))}let Y=`bud:canvas-compare:${a.id}`,X=null,Z,Q;function $(){let t=a.workingTree?[{value:``,label:e(`app.client.projectCanvas.workingTree`)}]:[];for(let e of A.list.branches)e.active&&e.captured&&t.push({value:e.name,label:e.name});return t.filter(e=>e.value!==(C??``))}function re(t){return t||e(`app.client.projectCanvas.workingTree`)}function ie(){let e=$(),t=h(Y);X=e.find(e=>e.value===t)?.value??e.find(e=>e.value===(A.list.main??`main`))?.value??e[0]?.value??null,Q=void 0,i.update()}function ae(){X=null,Q=void 0,Z?.controller.abort(),Z=void 0,i.update()}function oe(e){if(X===null||($().some(e=>e.value===X)||(X=$()[0]?.value??null),X===null))return;let t=`${X}\0${C??``}\0${I}\0${K}`;if(Z?.key===t)return Z.result;Z?.controller.abort();let n=new AbortController;i.signal.addEventListener(`abort`,()=>n.abort(),{once:!0});let r=E({project:a,signal:n.signal,branch:X||null}),o=L({routes:J().map(({route:e,size:t,artboard:n})=>({id:n.id,page:e.id,size:t})),before:r,after:e,theme:I,signal:n.signal,onChange:()=>{i.update()}});return Z={key:t,controller:n,result:o},o}function se(e){return!V||K===`all`||(B.find(t=>t.width===e.anchor.viewport)??B[0]).id===K}function ce(e){return e.filter(U).filter(e=>(e.anchor.branch??d)===C).filter(se)}return()=>{if(o!==i.props.threadId){o=i.props.threadId;let e=o;e&&i.queueTask(()=>{c.loadThread(e)})}if(!A.loaded&&!A.error)return t(s,{label:e(`app.client.projectCanvas.loadingBranches`)});let d=`${a.id}:${a.targetOrigin}:${a.routes.map(e=>e.path).join(`|`)}`,m={...c.snapshot,threads:ce(c.snapshot.threads)},h=J(),v=new Map(h.map(({artboard:e,size:t})=>[e.id,t])),b=oe(M),w=re(X),E=re(C),D=b?h.map(({artboard:e})=>e).filter(e=>b.get(e.id).state===`different`):[],j=new Map,L=D.flatMap(e=>[`before`,`after`].map(t=>{let n=`${e.id}#${t}`;return j.set(n,{route:e,side:t}),{id:n,path:e.path,title:e.title,width:e.width,caption:e.caption,compare:{groupId:e.id,groupTitle:e.title,versionLabel:t===`before`?w:E}}})),H=D.flatMap(e=>{let{regions:t,after:n}=b.get(e.id),r=n?.width??e.width??B[0].width;return t.map((n,i)=>({route:e,region:n,index:i,count:t.length,width:r}))}),U=``;if(b){let{compared:t,total:n}=b.progress,r=h.filter(({artboard:e})=>b.get(e.id).state===`missing`).length;U=b.done?D.length?r?e(`app.client.projectCanvas.differentPagesWithMissing`,{changed:D.length,count:n,name:w,missing:r}):e(`app.client.projectCanvas.differentPages`,{changed:D.length,count:n,name:w}):r?e(`app.client.projectCanvas.noDifferencesWithMissing`,{name:w,count:r}):e(`app.client.projectCanvas.noDifferences`,{name:w}):e(`app.client.projectCanvas.comparingPages`,{name:w,done:t,count:n})}let W=$(),G=e=>e.mobile||e.width<600?`mobile`:e.width<1100?`tablet`:`desktop`,se=t(n,{children:[V?t(n,{children:[B.map(n=>t(u,{tooltip:!0,icon:G(n),label:e(`app.client.projectCanvas.showViewport`,{name:n.name,width:n.width}),active:K===n.id,mix:r(`click`,()=>q(n.id))})),t(u,{tooltip:!0,icon:`columns`,label:e(`app.client.projectCanvas.showEveryViewport`),active:K===`all`,mix:r(`click`,()=>q(`all`))}),t(l,{})]}):null,t(u,{tooltip:!0,icon:`compare`,label:e(b?`app.client.projectCanvas.stopComparing`:`app.client.projectCanvas.showDifferences`),active:!!b,disabled:!b&&!W.length,mix:r(`click`,()=>b?ae():ie())}),b?t(n,{children:[t(p,{label:e(`app.client.projectCanvas.compareWith`),value:X??``,options:W,class:`max-w-48`,onChange:e=>{X=e,Q=void 0,y(Y,e),i.update()}}),t(u,{tooltip:!0,icon:`play`,label:e(`app.client.projectCanvas.stepThroughDifferences`),disabled:!H.length,mix:r(`click`,()=>{Q=0,i.update()})})]}):null]});return t(f,{class:`h-full min-h-0`,sidebarLabel:e(`app.client.projectCanvas.branches`),mainLabel:e(`app.client.projectCanvas.canvas`),drawerOpen:k,onDrawerOpenChange:e=>{k=e,i.update()},onWideChange:e=>{T!==e&&(T=e,i.update())},sidebar:t(g,{working:A.list.working,workingTree:a.workingTree,branches:A.list.branches,selected:C,busy:A.busy||!A.loaded,loaded:A.loaded,error:A.error,mobile:!T,onSelect:N,onActivate:(e,t)=>{A.activate(e,t)},onCapture:e=>{A.capture(e)},onClose:()=>{k=!1,i.update()}}),children:t(_,{artboards:b?L:h.map(({artboard:e})=>e),width:B[0].width,storageKey:b?`bud:camera:${d}:differences:${K}`:`bud:camera:${d}:${V?K:B[0].width}`,tools:se,overlay:b&&Q!==void 0?t(ne,{slides:H,index:Q,beforeLabel:w,afterLabel:E,onIndex:e=>{Q=e,i.update()},onClose:()=>{Q=void 0,i.update()}}):null,snapshot:m,capabilities:c.snapshot.capabilities,commentsUnavailable:b?U:(c.loaded?!c.ready:a.storage.threads?.state!==`ready`)?S:void 0,onLoadThread:c.loadThread,renderThreadLinks:e=>t(O,{part:`links`,project:a,thread:e,canLink:c.snapshot.capabilities.link,busy:c.busy,onChange:async()=>{await c.load(),await c.loadThread(e.id,!0)}}),renderThreadActions:e=>t(O,{part:`action`,project:a,thread:e,canLink:c.snapshot.capabilities.link,busy:c.busy,onChange:async()=>{await c.load(),await c.loadThread(e.id,!0)}}),initialThreadId:o,loaded:c.loaded,busy:c.busy,error:c.error,now:c.now,onWrite:async e=>{let t=await c.write(e);return{...t,threads:ce(t.threads)}},onSync:()=>c.sync().catch(()=>{}),onReload:c.load,onCopyThreadLink:e=>navigator.clipboard.writeText(new URL(x(e.id),window.location.origin).href),interactive:!1,branch:C,theme:I,onThemeChange:a.previews.themes.length>1?e=>{I=e,y(F,e),i.update()}:void 0,topOnly:z,onTopOnlyChange:b?void 0:e=>{z=e,y(R,e),i.update()},onShowSidebar:T?void 0:()=>{k=!0,i.update()},sidebarLabel:e(`app.client.projectCanvas.branches`),renderArtboard:(e,n)=>{let r=j.get(e.id);return r?t(te,{route:e,side:r.side,label:r.side===`before`?w:E,regions:b.get(r.route.id).regions,...n},`${Z?.key??``}\0${e.id}`):t(P,{route:e,origin:a.targetOrigin,theme:I,size:v.get(e.id)??B[0],topOnly:z,previews:M,...n},`${C??``}\0${e.id}`)},renderArtboardActions:e=>C||b?null:t(ee,{route:e,previews:M})},`${b?`${d}:differences`:d}:${K}`)})}}var K=c({load:({project:e,signal:t})=>C(e,t),render:(e,{project:n,conversation:r})=>t(G,{project:n,comments:e,threadId:r?.id})});export{K as default};
|