pi-roundtable-web 0.26.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +23 -7
- package/dist/chunk-account-ghq105t4.js +1 -0
- package/dist/{chunk-action-menu-rm5cyqkj.js → chunk-action-menu-me0g9qsc.js} +1 -1
- package/dist/{chunk-agent-b017vswv.js → chunk-agent-rdv7ekrt.js} +1 -1
- package/dist/chunk-arranged-rooms-81rqhx9x.js +1 -0
- package/dist/chunk-character-creator-bd426yjw.js +1 -0
- package/dist/chunk-codeeditor-ajhgd33t.js +2 -0
- package/dist/chunk-confirm-p3mts8mx.js +1 -0
- package/dist/{chunk-connectors-hrm06nx8.js → chunk-connectors-bkv3xn83.js} +1 -1
- package/dist/{chunk-conversations-e26rrf01.js → chunk-conversations-0e0vbxwr.js} +1 -1
- package/dist/{chunk-drag-v41gx2mc.js → chunk-drag-peyb8t0k.js} +1 -1
- package/dist/{chunk-entry-jxxb3ath.js → chunk-entry-mv7q8br0.js} +1 -1
- package/dist/chunk-folder-list-era3tksh.js +1 -0
- package/dist/chunk-folds-hvws0bd5.js +1 -0
- package/dist/{chunk-gate-8k61stsc.js → chunk-gate-hc7dd0fx.js} +1 -1
- package/dist/chunk-group-scene-dkbpmbh5.js +1 -0
- package/dist/chunk-group-table-fqmxgdfw.js +1 -0
- package/dist/chunk-host-icons-4xde9ntk.js +1 -0
- package/dist/chunk-host-picture-014yzk20.js +1 -0
- package/dist/chunk-host-state-t56e5sdy.js +1 -0
- package/dist/chunk-host-ui-p1zy9nmp.js +1 -0
- package/dist/chunk-index-0fmmvgee.js +2 -0
- package/dist/chunk-index-0q15ysrb.js +1 -0
- package/dist/chunk-index-0xh24y25.js +2 -0
- package/dist/chunk-index-2yebd9tb.js +426 -0
- package/dist/chunk-index-4t0r3t3b.js +2 -0
- package/dist/chunk-index-5yzfrf7b.js +138 -0
- package/dist/{chunk-index-2d0kg096.js → chunk-index-6twb7ccd.js} +2 -2
- package/dist/chunk-index-73gh7kgr.js +920 -0
- package/dist/chunk-index-7xffskfa.js +8 -0
- package/dist/chunk-index-aqw7cy5j.js +1 -0
- package/dist/{chunk-index-d1prgfbp.js → chunk-index-b6ca02e8.js} +2 -2
- package/dist/chunk-index-b8nvhcx5.js +2 -0
- package/dist/{chunk-index-014rjv9k.js → chunk-index-cvbdf2ca.js} +2 -2
- package/dist/chunk-index-czdketze.js +2 -0
- package/dist/{chunk-index-y8rnq8zf.js → chunk-index-dt9775ka.js} +3 -3
- package/dist/chunk-index-eg55mqqe.js +1 -0
- package/dist/{chunk-index-xgkd15n3.js → chunk-index-gr6e0hse.js} +1 -1
- package/dist/chunk-index-gyary7np.js +13 -0
- package/dist/chunk-index-j214tczc.js +1 -0
- package/dist/chunk-index-jd6632ef.js +2 -0
- package/dist/chunk-index-jw7dtshr.js +2 -0
- package/dist/{chunk-index-wnjp6wv0.js → chunk-index-k7t14rwa.js} +2 -2
- package/dist/{chunk-index-c07p8k0x.js → chunk-index-kwcx62wb.js} +3 -3
- package/dist/{chunk-index-hby0ap91.js → chunk-index-m7fvw92f.js} +2 -2
- package/dist/chunk-index-mmg788a1.js +2 -0
- package/dist/chunk-index-mq0dacwr.js +2 -0
- package/dist/chunk-index-p53ak25v.js +2 -0
- package/dist/{chunk-index-rhtvcbsq.js → chunk-index-pk1yxkv4.js} +2 -2
- package/dist/{chunk-index-2stynxw6.css → chunk-index-rbcz9jd4.css} +1 -1
- package/dist/{chunk-index-km40bhsz.js → chunk-index-rmxbdmn2.js} +2 -2
- package/dist/chunk-index-rnxj3z8k.js +2 -0
- package/dist/{chunk-index-hssjbr1k.js → chunk-index-snzzfhk3.js} +2 -2
- package/dist/chunk-index-v3bmr0nw.js +2 -0
- package/dist/{chunk-index-awx6nnta.js → chunk-index-vcyzwtk2.js} +1 -1
- package/dist/{chunk-index-nqfkwkfp.js → chunk-index-w2j3njb6.js} +2 -2
- package/dist/{chunk-index-e5sd30xy.js → chunk-index-w31c4yjv.js} +2 -2
- package/dist/chunk-index-wrm8w165.js +2 -0
- package/dist/chunk-index-xh0mg9cw.js +2 -0
- package/dist/chunk-index-ybtvvx85.js +2 -0
- package/dist/{chunk-index-dhpt8qr9.js → chunk-index-yzsgsvnp.js} +2 -2
- package/dist/{chunk-index-66nskrdj.js → chunk-index-z9x4cnzf.js} +2 -2
- package/dist/chunk-index-zrvg23jd.js +2 -0
- package/dist/chunk-index-zynq0b0w.js +50 -0
- package/dist/chunk-lang-css-88v3hp3d.js +1 -0
- package/dist/{chunk-lang-dockerfile-hrav55t7.js → chunk-lang-dockerfile-k728ewsf.js} +1 -1
- package/dist/{chunk-lang-go-x9ahv6e5.js → chunk-lang-go-wjwgay4v.js} +2 -2
- package/dist/chunk-lang-html-07d47es4.js +1 -0
- package/dist/chunk-lang-javascript-fmhhgzwd.js +1 -0
- package/dist/{chunk-lang-json-hsemyd0r.js → chunk-lang-json-7gd89mvs.js} +1 -1
- package/dist/{chunk-lang-markdown-zkwb4c9n.js → chunk-lang-markdown-b6qbe8bt.js} +5 -5
- package/dist/{chunk-lang-python-tewx7006.js → chunk-lang-python-3v56y31b.js} +2 -2
- package/dist/{chunk-lang-rust-0ydx84s1.js → chunk-lang-rust-kh0z74d1.js} +1 -1
- package/dist/{chunk-lang-shell-gq1tmdz4.js → chunk-lang-shell-9zv0zvbx.js} +1 -1
- package/dist/{chunk-lang-sql-xt1qyycg.js → chunk-lang-sql-yw6bf3t7.js} +2 -2
- package/dist/{chunk-lang-toml-0hamc5fc.js → chunk-lang-toml-tg1r96nq.js} +1 -1
- package/dist/chunk-lang-typescript-etjjvr2g.js +1 -0
- package/dist/{chunk-lang-xml-wf6h5pt2.js → chunk-lang-xml-ev1mndd4.js} +1 -1
- package/dist/{chunk-lang-yaml-7vk521h1.js → chunk-lang-yaml-fz5qpb3r.js} +1 -1
- package/dist/chunk-layout-actions-48ecgtkg.js +1 -0
- package/dist/{chunk-menu-items-1n9qargb.js → chunk-menu-items-1epy3h0t.js} +2 -2
- package/dist/chunk-mode-toggle-fxmfxsa4.js +1 -0
- package/dist/chunk-note-row-kd0fy7ee.js +75 -0
- package/dist/{chunk-notes-t15bh04m.js → chunk-notes-yb8f057c.js} +1 -1
- package/dist/chunk-notice-bell-wr4f1rph.js +1 -0
- package/dist/chunk-notices-x07da5bb.js +1 -0
- package/dist/chunk-onboarding-csrkbh9z.js +1 -0
- package/dist/{chunk-overview-km5vq375.js → chunk-overview-avc2d30t.js} +1 -1
- package/dist/{chunk-palette-a8txdgd0.js → chunk-palette-9nhp95bz.js} +1 -1
- package/dist/chunk-placement-items-q694dpgk.js +1 -0
- package/dist/chunk-profile-6qemf3m7.js +1 -0
- package/dist/{chunk-prompt-history-wm9dsy6s.js → chunk-prompt-history-7enzp2p3.js} +1 -1
- package/dist/chunk-prompts-nv6mrn0q.js +1 -0
- package/dist/chunk-room-confirms-zz7n61y7.js +1 -0
- package/dist/{chunk-room-menu-2tm2xtfx.js → chunk-room-menu-rr6nzap1.js} +1 -1
- package/dist/{chunk-rooms-menu-button-wxnsxjwc.js → chunk-rooms-menu-button-zbtwj47d.js} +1 -1
- package/dist/chunk-schedules-rw57nr0m.js +1 -0
- package/dist/{chunk-seat-menu-d3npdtx1.js → chunk-seat-menu-ys5v9abz.js} +1 -1
- package/dist/chunk-sheet-hosts-jhvaacst.js +1 -0
- package/dist/chunk-skill-editor-sz8an8qr.js +8 -0
- package/dist/{chunk-skills-shkdwes8.js → chunk-skills-tnr1h16h.js} +1 -1
- package/dist/chunk-switcher-list-17enhrse.js +1 -0
- package/dist/chunk-tab-dot-r6brdbmw.js +1 -0
- package/dist/chunk-table-r12cja6p.js +1 -0
- package/dist/chunk-table-seats-g3t392zz.js +1 -0
- package/dist/{chunk-table2d-n26b7gd0.js → chunk-table2d-p3ezsdcj.js} +1 -1
- package/dist/{chunk-table3d-8aysyf56.js → chunk-table3d-4x2n2b00.js} +20 -20
- package/dist/chunk-thread-actions-qc6ezkha.js +1 -0
- package/dist/chunk-transcript-n2s6dher.js +1 -0
- package/dist/chunk-where-f3scdydc.js +1 -0
- package/dist/chunk-workspace-xs023bxm.js +1 -0
- package/dist/chunk-zh-tw-efvmk3fd.js +1 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +2 -2
- package/src/api-types.ts +58 -3
- package/src/app/app.ts +5 -0
- package/src/app/room-log.ts +16 -4
- package/src/app/rooms.ts +39 -0
- package/src/app/routes.ts +44 -2
- package/src/app/socket.ts +45 -9
- package/src/app/threads.ts +31 -2
- package/src/auth/authenticator.ts +10 -4
- package/src/auth/login-page.ts +4 -2
- package/src/auth/oidc-pages.ts +2 -0
- package/src/auth/oidc.ts +39 -1
- package/src/authz.ts +2 -1
- package/src/console-server.ts +32 -6
- package/src/host/cards.ts +18 -5
- package/src/host/context.ts +72 -25
- package/src/host/forms.ts +3 -0
- package/src/host/frames.ts +8 -1
- package/src/host/host-app.ts +6 -4
- package/src/host/host-routes.ts +36 -3
- package/src/host/room-views.ts +6 -6
- package/src/host/rooms-service.ts +16 -1
- package/src/host/views.ts +3 -0
- package/src/i18n/zh-tw.ts +9 -2
- package/src/index.ts +15 -1
- package/src/options.ts +36 -0
- package/src/page-presentation.ts +47 -2
- package/src/pwa.ts +32 -4
- package/src/web-app.ts +47 -3
- package/src/web-plugin.ts +20 -9
- package/dist/chunk-account-hw49gd0d.js +0 -1
- package/dist/chunk-arranged-rooms-q5v3dm1r.js +0 -1
- package/dist/chunk-character-creator-5dxcvd16.js +0 -1
- package/dist/chunk-codeeditor-pyt09fwg.js +0 -2
- package/dist/chunk-confirm-521yqmta.js +0 -1
- package/dist/chunk-folder-list-b97xk12b.js +0 -1
- package/dist/chunk-folds-b8q7eags.js +0 -1
- package/dist/chunk-group-scene-dx6wt19m.js +0 -1
- package/dist/chunk-group-table-e4jr8r3a.js +0 -1
- package/dist/chunk-host-state-g7e7c0k5.js +0 -1
- package/dist/chunk-host-ui-x7k6n07v.js +0 -939
- package/dist/chunk-index-2qd81wbx.js +0 -2
- package/dist/chunk-index-459drsft.js +0 -2
- package/dist/chunk-index-4mfj596y.js +0 -2
- package/dist/chunk-index-bbsytycb.js +0 -2
- package/dist/chunk-index-cq1e9xdz.js +0 -2
- package/dist/chunk-index-g351921r.js +0 -1
- package/dist/chunk-index-k2qq1gdj.js +0 -2
- package/dist/chunk-index-ke9ynm0n.js +0 -2
- package/dist/chunk-index-kpscvg85.js +0 -2
- package/dist/chunk-index-m0d100mg.js +0 -2
- package/dist/chunk-index-mb72snk9.js +0 -2
- package/dist/chunk-index-mjqqver5.js +0 -4
- package/dist/chunk-index-nwqk447w.js +0 -2
- package/dist/chunk-index-pcfhpm8v.js +0 -302
- package/dist/chunk-index-q8h8xzbm.js +0 -2
- package/dist/chunk-index-r5vszgfs.js +0 -2
- package/dist/chunk-index-rjv7vrwd.js +0 -13
- package/dist/chunk-index-v23m38p6.js +0 -50
- package/dist/chunk-index-va0g7d88.js +0 -1
- package/dist/chunk-index-z3k18atc.js +0 -2
- package/dist/chunk-lang-css-6bepqpnx.js +0 -1
- package/dist/chunk-lang-html-8jc72zt4.js +0 -1
- package/dist/chunk-lang-javascript-2p2qtbnf.js +0 -1
- package/dist/chunk-lang-typescript-82xf7z2e.js +0 -1
- package/dist/chunk-layout-actions-zh7bezk7.js +0 -1
- package/dist/chunk-notice-bell-w3y0h0sr.js +0 -1
- package/dist/chunk-notices-fa3g7qze.js +0 -1
- package/dist/chunk-onboarding-34v3nr17.js +0 -1
- package/dist/chunk-placement-items-wgaxsbvs.js +0 -1
- package/dist/chunk-profile-ypxdbsk1.js +0 -1
- package/dist/chunk-prompts-7mhhq7zs.js +0 -1
- package/dist/chunk-room-confirms-t11a1gsw.js +0 -1
- package/dist/chunk-schedules-2ft6xxyw.js +0 -1
- package/dist/chunk-sheet-hosts-vngvp7wv.js +0 -1
- package/dist/chunk-skill-editor-65n2hsq4.js +0 -8
- package/dist/chunk-switcher-list-g6hhmr1t.js +0 -1
- package/dist/chunk-table-1b6bsq2y.js +0 -1
- package/dist/chunk-table-seats-vy1qhdks.js +0 -1
- package/dist/chunk-transcript-355faceq.js +0 -1
- package/dist/chunk-where-j5qdt8a4.js +0 -1
- package/dist/chunk-workspace-vrbs6zx1.js +0 -1
- package/dist/chunk-zh-tw-zeg600bk.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{J,X,a,D,yt,A,o,r,t,xe,m,e,n,s,S,Wn,b,d,oe,u,O,x,p,_,P,Vt,Sn,Pt,k,rr,De,qt,yi,rn,sn,Mt,ne,un,Te,lr,Pe}from"./chunk-index-zynq0b0w.js";import{vn}from"./chunk-index-yzsgsvnp.js";import{pi,cs,ze,mi}from"./chunk-index-0fmmvgee.js";import{j}from"./chunk-index-w31c4yjv.js";import{Qe,pr,mr,Ci,Ai,Or}from"./chunk-index-rnxj3z8k.js";import{je,Ke}from"./chunk-index-73gh7kgr.js";import{Vi}from"./chunk-index-5yzfrf7b.js";import"./chunk-index-eg55mqqe.js";import{ue}from"./chunk-index-ybtvvx85.js";import"./chunk-index-vcyzwtk2.js";function Be(l){let i={};for(let c of l)if(c.type==="multiselect")i[c.name]=[...He(c.initial)];else i[c.name]=He(c.initial)[0]??"";return i}var He=(l)=>l===void 0?[]:typeof l==="string"?[l]:[...l];function Ge(l,i){let c={};for(let f of l){let y=i[f.name];if(y===void 0||y===""||y.length===0)continue;c[f.name]=y}return c}function We(l){let{field:i,value:c}=l,[f,y]=r(""),w=i.search?i.options.filter((g)=>g.label.toLowerCase().includes(f.trim().toLowerCase())):i.options,v=i.search?e("input",{type:"search",value:f,placeholder:t("Search…"),"aria-label":t("Search {name}",{name:i.label}),onChange:(g)=>y(g.target.value)}):null;if(i.type==="select")return n(m,{children:[v,n("select",{id:l.id,value:String(c),required:i.required===!0,"aria-describedby":l.described,...i.search?{size:6}:{},onChange:(g)=>l.onChange(g.target.value),children:[i.required?null:e("option",{value:"",children:t("None")}),w.map((g)=>e("option",{value:g.value,children:g.label},g.value))]})]});let h=new Set(Array.isArray(c)?c:[]);return n(m,{children:[v,e("fieldset",{"aria-describedby":l.described,children:w.map((g)=>n("label",{children:[e("input",{type:"checkbox",checked:h.has(g.value),onChange:(R)=>{let H=new Set(h);if(R.target.checked)H.add(g.value);else H.delete(g.value);l.onChange(i.options.filter((F)=>H.has(F.value)).map((F)=>F.value))}}),g.label]},g.value))})]})}function Ze(l){let{field:i,value:c}=l,f=D(),y="hint"in i?i.hint:void 0,w=l.error||y?`${f}-note`:void 0,v;if("options"in i)v=e(We,{field:i,id:f,value:c,described:w,onChange:l.onChange});else if(i.type==="textarea")v=e("textarea",{id:f,rows:5,value:String(c),maxLength:i.max??8000,required:i.required===!0,"aria-describedby":w,onChange:(h)=>l.onChange(h.target.value)});else v=e("input",{id:f,type:i.type==="url"?"url":"text",value:String(c),maxLength:i.max??500,required:i.required===!0,"aria-describedby":w,onChange:(h)=>l.onChange(h.target.value)});return n("div",{className:"host-field",children:[i.type==="multiselect"?e("span",{className:"field-label",children:i.label}):e("label",{htmlFor:f,children:i.label}),v,l.error||y?e("span",{id:`${f}-note`,className:l.error?"field-error":"hint",role:l.error?"alert":void 0,children:l.error??y}):null]})}function ie(l){let{spec:i}=l,[c,f]=r(()=>Be(i.fields)),[y,w]=r(!1),[v,h]=r();return n("form",{className:"host-form",onSubmit:async(R)=>{if(R.preventDefault(),y)return;w(!0),h(void 0);try{h(await l.onSubmit(Ge(i.fields,c)))}catch(H){h({error:u(H)})}finally{w(!1)}},children:[i.fields.map((R)=>e(Ze,{field:R,value:c[R.name]??"",error:v?.field===R.name?v.error:void 0,onChange:(H)=>f((F)=>({...F,[R.name]:H}))},R.name)),v&&!i.fields.some((R)=>R.name===v.field)?e(p,{message:v.error}):null,n("div",{className:"actions",children:[l.onCancel?e("button",{type:"button",className:"secondary",disabled:y,onClick:l.onCancel,children:t("Cancel")}):null,e("button",{type:"submit",disabled:y,children:i.submit})]})]})}function Ye(l){if(!l.ok)return{error:pi(l.error),...l.field?{field:l.field}:{}};if(l.notice)O(l.notice);if(l.open)mi(l.open);return}function Z(l){let[i,c]=r(),[f,y]=r(!1),w=async(h,g)=>Ye(await l.run(h,g)),v=async(h)=>{if(h.form||h.confirm){c(h);return}y(!0);try{let g=await w(h,{});if(g)O(g.error,"danger")}catch(g){O(u(g),"danger")}finally{y(!1)}};if(l.actions.length===0)return null;return n("div",{className:l.className??"host-actions",children:[l.actions.map((h)=>e("button",{type:"button",className:h.style==="danger"?"danger":h.style==="secondary"?"secondary":"",disabled:f,onClick:()=>v(h),children:h.label},h.id)),i?.form?e(ue,{open:!0,title:i.form.title,onClose:()=>c(void 0),children:e(ie,{spec:i.form,onCancel:()=>c(void 0),onSubmit:async(h)=>{let g=await w(i,h);if(!g)c(void 0);return g}})}):i?e(j,{open:!0,title:i.label,confirmLabel:i.label,tone:i.style==="danger"?"danger":"primary",onConfirm:async()=>{let h=await w(i,{});if(h)throw Error(h.error)},onClose:()=>c(void 0),children:e("p",{children:i.confirm})}):null]})}var Re=/^file:([A-Za-z0-9_-]{1,64})$/;function Ae(l){let i=URL.parse(l,document.baseURI);return i!==null&&i.origin===window.location.origin}function Xe({id:l,alt:i}){return e("img",{className:"file-image",src:`api/files/${encodeURIComponent(l)}`,alt:i,loading:"lazy",decoding:"async",onError:(c)=>{let f=document.createElement("span");f.textContent=i||t("Image"),c.currentTarget.replaceWith(f)}})}var G=J(function({source:i}){return e("div",{className:"prose",children:e(Vt,{remarkPlugins:[Pt],urlTransform:(c)=>Re.test(c)?c:Sn(c),components:{a:({href:c,children:f})=>c&&/^https?:\/\//.test(c)&&!Ae(c)?e("a",{href:c,target:"_blank",rel:"noreferrer noopener",children:f}):c&&Ae(c)?e("a",{href:c,children:f}):e("span",{children:f}),img:({src:c,alt:f})=>{let y=typeof c==="string"?Re.exec(c):null;return y?.[1]?e(Xe,{id:y[1],alt:f??""}):e("span",{children:f})},pre:rr,table:({children:c})=>e("div",{className:"table-wrap",children:e("table",{children:c})})},children:i})})});function Je(l){switch(l??"open"){case"working":return t("Working…");case"done":return t("Done");case"superseded":return t("Replaced");case"expired":return t("Expired");default:return""}}var ge=(l)=>(l.state??"open")==="open";function ee(l){let{card:i}=l,c=Je(i.state);return n("article",{className:"host-card","data-tone":i.tone??"note","data-state":i.state??"open",children:[n("header",{children:[e("h3",{children:i.title}),c?e(P,{tone:i.state==="working"?"busy":"plain",children:c}):null]}),i.body?e(G,{source:i.body}):null,i.links?.length?e("div",{className:"host-card-links",children:i.links.map((f)=>e("a",{href:f.url,...f.url.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:f.label},`${f.url}`))}):null,ge(i)&&i.buttons?.length?e(Z,{actions:i.buttons,run:l.run}):null]})}je();function et(){let[l,i]=r(()=>vn().toString());return a(()=>{let c=()=>i(vn().toString());return window.addEventListener("popstate",c),window.addEventListener("hashchange",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("hashchange",c)}},[]),l}function tt(l){if(!l.ok)return{error:pi(l.error),...l.field?{field:l.field}:{}};if(l.notice)O(l.notice);if(l.open)mi(l.open);return}function nt(l){let{section:i}=l;switch(i.kind){case"markdown":return e(G,{source:i.text});case"card":return e(ee,{card:i.card,run:l.run});case"form":return n("section",{className:"stack",children:[e("h2",{className:"section-title",children:i.form.title}),e(ie,{spec:i.form,onSubmit:(c)=>l.submit(i.action,c)})]});case"list":return n("section",{className:"stack",children:[i.title?e("h2",{className:"section-title",children:i.title}):null,i.rows.length===0?e(_,{children:t("Nothing here.")}):null,e("ul",{className:"host-list",children:ot(i.rows).map(([c,f])=>n("li",{children:[f.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null,n("div",{className:"host-list-main",children:[f.open?e("a",{href:f.open,...f.open.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:f.title}):e("strong",{children:f.title}),f.subtitle?e("span",{children:f.subtitle}):null]}),f.actions?.length?e(Z,{actions:f.actions,run:l.run}):null]},c))})]})}}function rt({routeKey:l}){let i=l??"",c=et(),f=Qe((H)=>H.pages[i]??0),[y,w]=r(0),[v,h]=r({});a(()=>{let H=!0;return ze.page(i,Object.fromEntries(new URLSearchParams(c))).then((F)=>H&&h({page:F}),(F)=>{if(!H)return;let C=F instanceof oe&&F.status===404;h((L)=>({...C||!L.page?{}:{page:L.page},error:u(F),gone:C}))}),()=>{H=!1}},[i,c,f,y]);let g=async(H,F)=>{let C=await ze.pageAct(i,{action:H,input:F}),L=tt(C);if(!L)w((V)=>V+1);return L},R=async(H,F)=>{let C=await ze.pageAct(i,{action:H.id,input:F});if(C.ok)w((L)=>L+1);return C};if(v.gone)return e("div",{className:"page",children:e(_,{children:t("This page is not available.")})});if(!v.page)return e("div",{className:"page",children:v.error?e(p,{message:v.error}):e(x,{})});return n("div",{className:"page",children:[e("header",{className:"page-head",children:e("h1",{children:v.page.title})}),v.error?e(p,{message:v.error}):null,v.page.sections.map((H,F)=>e(nt,{section:H,run:R,submit:g},F))]})}function ot(l){let i=new Map;return l.map((c)=>{let f=i.get(c.title)??0;return i.set(c.title,f+1),[`${c.title}:${f}`,c]})}var st=/https?:\/\/[^\s<>"']+/g,it=/[.,;:!?)\]}\u3001\u3002\uff0c\uff1b\uff1a\uff01\uff1f\uff09\u300d\u300f]+$/;function at(l){let i=l.replace(it,""),c=URL.parse(i);return c&&(c.protocol==="https:"||c.protocol==="http:")?i:""}function Ce({text:l}){let i=[],c=0;for(let f of l.matchAll(st)){let y=at(f[0]);if(y==="")continue;let w=f.index;if(w>c)i.push(l.slice(c,w));i.push(e("a",{href:y,target:"_blank",rel:"noreferrer noopener",children:y},`${w}`)),c=w+y.length}if(c<l.length)i.push(l.slice(c));return e("span",{className:"plain",children:i})}var Se=J(function(i){let{message:c}=i,f=c.authorKind??"external";if(f==="notice")return n("li",{className:"host-notice","data-mid":c.id,"data-highlight":i.highlighted||void 0,"data-enter":i.enter||void 0,children:[e(s,{name:"bell",size:14}),e(G,{source:c.text}),e("time",{dateTime:c.at,children:qt(c.at,i.timeZone)})]});let y=f==="member"&&c.principalId!==void 0&&c.principalId===i.me;return n("li",{className:"message","data-mid":c.id,"data-author":f,"data-mine":y||void 0,"data-header":i.header||void 0,"data-enter":i.enter||void 0,"data-highlight":i.highlighted||void 0,children:[y?null:e("span",{className:"message-avatar",children:i.header?e(Ke,{picture:c.picture,name:c.author}):null}),n("div",{className:"message-main",children:[i.header?n("div",{className:"message-meta",children:[e("strong",{children:c.author}),c.authorLabel?e("span",{className:"label-chip",children:c.authorLabel}):null,e("time",{dateTime:c.at,children:qt(c.at,i.timeZone)})]}):null,n("div",{className:"bubble",children:[c.text?f==="assistant"?e(G,{source:c.text}):e(Ce,{text:c.text}):null,e(Mt,{files:c.files}),c.expiredFiles?e("p",{className:"message-expired",children:xe(c.expiredFiles,"{count} file was removed","{count} files were removed")}):null]}),c.edited?e("span",{className:"message-edited",children:t("edited")}):null]})]})});je();var lt=3;function ct({marks:l}){let[i,c]=r(!1);return n("li",{className:"seen",children:[n("button",{type:"button",className:"seen-toggle","aria-expanded":i,onClick:()=>c((f)=>!f),children:[l.slice(0,lt).map((f)=>e(Ke,{picture:{principal:f.principal},name:f.name,size:16},f.principal)),e("span",{children:t("Seen by {count}",{count:l.length})})]}),i?e("span",{className:"seen-names",children:l.map((f)=>f.name).join(t(", "))}):null]})}function dt(l,i){let c=Pe(),f=d((y)=>y.connects);a(()=>{let y=i.current;if(!y)return;let w=0,v=0,h,g,R=()=>{if(g=void 0,document.visibilityState!=="visible")return;let C=y.getBoundingClientRect(),L=0;for(let U of y.querySelectorAll("[data-mid]")){let q=U.getBoundingClientRect();if(q.bottom>C.top&&q.top<C.bottom-4)L=Math.max(L,Number(U.dataset.mid))}if(L<=w)return;let V=v+1000-Date.now();if(V>0){clearTimeout(h),h=setTimeout(H,V);return}if(c.send({type:"read",room:l,upTo:L}))w=L,v=Date.now()},H=()=>{if(g===void 0)g=requestAnimationFrame(R)};y.addEventListener("scroll",H,{passive:!0}),document.addEventListener("visibilitychange",H),window.addEventListener("resize",H);let F=new MutationObserver(H);return F.observe(y,{childList:!0,subtree:!0}),H(),()=>{if(y.removeEventListener("scroll",H),document.removeEventListener("visibilitychange",H),window.removeEventListener("resize",H),F.disconnect(),clearTimeout(h),g!==void 0)cancelAnimationFrame(g)}},[c,l,i,f])}function ae(l){let{roomKey:i}=l;dt(i,l.scroller);let c=d((g)=>g.principal?.id),f=d((g)=>g.rooms[i]?.messages),y=Qe((g)=>g.reads[i]??pr),w=Qe((g)=>g.cursor[i]),v=o(void 0);if(v.current===void 0&&w!==void 0)v.current=w;let h=A(()=>{let R=(f??[]).filter((C)=>C.kind!=="system"),H=v.current===void 0?void 0:R.find((C)=>C.id>(v.current??0)&&(C.principalId===void 0||C.principalId!==c))?.id,F=new Map;for(let C of y){if(C.principal===c)continue;let L=R.findLast((V)=>V.id<=C.upTo);if(L)F.set(L.id,[...F.get(L.id)??[],C])}return{before:(C)=>C.id===H?e("li",{className:"new-divider",children:e("span",{children:t("New messages")})}):null,after:(C)=>{let L=F.get(C.id);return L?e(ct,{marks:L}):null},...l.host?{message:(C,L)=>C.kind==="system"&&C.authorKind===void 0?void 0:e(Se,{message:C,header:L.header,enter:L.enter,timeZone:L.timeZone,me:c,highlighted:l.highlight===C.id})}:{}}},[f,y,c,l.host,l.highlight]);return e(un,{roomKey:i,enterAfter:l.enterAfter,quotable:l.quotable,decor:h})}je();var ut=20,mt=2600,Ee;function ft(l,i,c){let f=d((h)=>h.connects),y=Qe((h)=>h.rooms[l]??0),[w,v]=r({view:void 0,error:void 0,gone:!1});return a(()=>{let h=!0;return ze.open(i,c).then((g)=>{if(!h)return;b.dispatch({type:"history_loaded",room:l,messages:g.messages,more:g.more,older:!1}),Ai(l,g.reads,g.cursor),Or(l,g.cards),v({view:g,error:void 0,gone:!1})},(g)=>{if(!h)return;let R=g instanceof oe&&g.status===404;v((H)=>({view:R?void 0:H.view,error:u(g),gone:R}))}),()=>{h=!1}},[l,i,c,f,y]),w}function pt(l){let{header:i}=l;return n(m,{children:[i.banner?e("p",{className:"host-banner","data-tone":i.banner.tone,role:"status",children:i.banner.text}):null,i.fields.length?e("dl",{className:"host-head-fields",children:i.fields.map((c)=>n("div",{children:[e("dt",{children:c.label}),e("dd",{children:c.link?e("a",{href:c.link,...c.link.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:c.value}):c.value})]},`${c.label}:${c.value}`))}):null,e(Z,{className:"host-actions bar",actions:i.actions,run:l.run})]})}function gt(l){let i=Qe((R)=>R.cards[l.room]??mr),c=Te("(min-width: 720px) and (min-height: 760px)"),[f,y]=r();if(i.length===0)return null;let w=i.filter((R)=>ge(R)||R.state==="working"),v=i.filter((R)=>!w.includes(R)),h=f??(c&&w.length>0),g=w[0];return n("div",{className:"host-cards","data-open":h||void 0,children:[n("button",{type:"button",className:"host-cards-toggle","aria-expanded":h,onClick:()=>y(!h),children:[e(s,{name:"chevron",size:14}),g?n("span",{children:[e("strong",{children:xe(w.length,"{count} card waiting","{count} cards waiting")}),`: ${g.title}`]}):e("span",{children:t("Earlier cards ({count})",{count:v.length})})]}),h?n("div",{className:"host-cards-body",children:[w.map((R)=>e(ee,{card:R,run:l.run(R.id)},R.id)),v.length?n("details",{className:"host-cards-older",children:[e("summary",{children:t("Earlier cards ({count})",{count:v.length})}),v.map((R)=>e(ee,{card:R,run:l.run(R.id)},R.id))]}):null]}):null]})}function ht({roomKey:l}){let i=Pe(),c=cs(l),f=c?.kind??"",y=c?.id??"",{view:w,error:v,gone:h}=ft(l,f,y),g=d((N)=>N.rooms[l]),R=d((N)=>N.limits),H=d((N)=>N.connects),F=d((N)=>N.connection==="open"),C=o(null),L=o(null),{away:V,onScroll:U,onGrow:q,toEnd:W}=lr(C),[te,E]=r(!1),[M,Q]=r(),[ce,Me]=r(Ee),[Ve,Ie]=r(!1),[Oe,be]=r(),de=o(void 0),Y=o(void 0),I=w!==void 0;if(a(()=>{if(!c||h||!I)return;return i.send({type:"subscribe",room:l}),i.focus(l),()=>{i.focus(void 0),i.send({type:"unsubscribe",room:l})}},[i,l,H,h,I]),I&&de.current===void 0)de.current=g?.messages.at(-1)?.id??0;yt(()=>{if(I)W(!1)},[I]),yt(()=>{let N=C.current;if(N&&Y.current!==void 0)N.scrollTop+=N.scrollHeight-Y.current,Y.current=void 0},[g?.messages[0]?.id]),a(()=>{let N=L.current;if(!N||typeof ResizeObserver>"u")return;let T=new ResizeObserver(q);return T.observe(N),()=>T.disconnect()},[q]);let me=X(async()=>{let N=b.getState().rooms[l]?.messages[0];if(!N)return!1;let T=await ze.older(f,y,N.id,Wn);return b.dispatch({type:"history_loaded",room:l,messages:T.messages,more:T.more,older:!0}),Ai(l,T.reads,void 0),T.more},[l,f,y]),re=o(void 0);a(()=>{let N=()=>{let T=Number(vn().get("message"));re.current=Number.isSafeInteger(T)&&T>0?T:void 0};return N(),window.addEventListener("popstate",N),()=>window.removeEventListener("popstate",N)},[]);let fe=g?.messages[0]?.id,ye=g?.more===!0;a(()=>{let N=re.current,T=C.current;if(!I||N===void 0||!T)return;let z=T.querySelector(`[data-mid="${N}"]`);if(z){re.current=void 0,z.scrollIntoView({block:"center"}),be(N),requestAnimationFrame(()=>T.dispatchEvent(new Event("scroll"))),setTimeout(()=>be(void 0),mt);return}if(fe!==void 0&&N<fe&&ye){let K=0;(async()=>{if(K+=1,!await me().catch(()=>!1)||K>=ut)re.current=void 0})()}},[I,fe,ye,g?.messages.length,me]);let ve=(N,T={},z)=>ze.act(f,y,{action:N.id,...z===void 0?{}:{card:z},input:T}),qe=(N,T)=>ve(N,T),_e=(N)=>(T,z)=>ve(T,z,N);if(h||!I&&!v&&!c)return e("section",{className:"room",children:n("div",{className:"page",children:[e(_,{children:t("This room is not available.")}),e("a",{className:"back",href:S("rooms"),children:t("Back to rooms")})]})});let B=w?.access.send??[],pe=B.length>1,we=pe&&Ve,ke=ce&&B.includes(ce)?ce:B.includes("turn")?"turn":B[0],Ne=we||ke==="turn",Ue=Ne?w?.wording?.turn?.placeholder??t("Ask AI…"):w?.wording?.note?.placeholder??t("Write an internal note…"),se=w?.header.title??l,$e=g?.messages??[];return n("section",{className:"room",onDragOver:(N)=>{if(B.length&&N.dataTransfer.types.includes("Files"))N.preventDefault()},onDrop:(N)=>{if(!B.length||!N.dataTransfer.files.length)return;N.preventDefault(),Q([...N.dataTransfer.files])},children:[n("header",{className:"room-head",children:[e("a",{className:"icon-button room-back",href:S("rooms"),"aria-label":t("Back to rooms"),children:e(s,{name:"back"})}),e(Ke,{name:se,size:40}),n("div",{className:"room-title",children:[e("h1",{children:se}),e("span",{className:"room-status","data-working":g?.typing||void 0,children:g?.typing?t("Working…"):t("Host room")})]})]}),!F?n("div",{className:"offline-banner",role:"status",children:[e("span",{className:"spinner","aria-hidden":"true"}),t("Reconnecting… messages wait here until it is back.")]}):null,w?e(pt,{header:w.header,run:qe}):null,e("div",{className:"room-scroll",ref:C,onScroll:U,children:n("div",{className:"room-content",ref:L,children:[v?e(p,{message:v}):null,!I&&!v?e(x,{}):null,g?.more?e("button",{type:"button",className:"secondary older",disabled:te,onClick:async()=>{E(!0),Y.current=C.current?.scrollHeight;try{await me()}catch(N){Y.current=void 0,O(u(N),"danger")}finally{E(!1)}},children:te?t("Loading…"):t("Load earlier messages")}):null,I&&$e.length===0?e(_,{children:t("No messages yet.")}):null,e(ae,{roomKey:l,enterAfter:de.current,quotable:!1,scroller:C,host:!0,highlight:Oe}),g?.typing?e(sn,{name:se,progress:g.progress}):null]})}),V?n("button",{type:"button",className:"to-end",onClick:()=>W(!0),children:[e(s,{name:"send",size:16,style:{transform:"rotate(180deg)"}}),t("Latest")]}):null,w?e(gt,{room:l,run:_e}):null,w&&B.length===0?e("p",{className:"room-note",children:t("You can read this room but not write in it.")}):null,w&&B.length>0?e(m,{children:e(rn,{draftKey:l,name:se,placeholder:Ue,onAddressed:Ie,...pe?{above:e(Vi,{on:Ne,label:w?.wording?.turn?.label??t("@AI"),...we?{locked:t("The message starts with @AI, so the agent answers.")}:{},onChange:(N)=>{let T=N?"turn":"note";Ee=T,Me(T)}})}:{},limits:R,stoppable:Boolean(g?.stoppable),onSend:(N,T,z)=>{if(pe&&z){let K=yi(N);i.say(l,K===""&&T.length===0?N:K,T,"turn")}else i.say(l,N,T,ke);W(!0)},onStop:()=>i.send({type:"stop",room:l}),...M?{incoming:M,onIncomingTaken:()=>Q(void 0)}:{}},l)}):null]})}je();function le({room:l}){let i=Qe((c)=>c.unread[l]??0);if(i<=0)return null;return e("span",{className:"unread-mark",role:"img","aria-label":xe(i,"{count} unread message","{count} unread messages"),children:i>99?"99+":i})}je();var bt=6,vt=250;function he(l){let{kind:i}=l,{timeZone:c}=k(),{now:f}=ne(),y=d((E)=>E.connects),w=Qe((E)=>E.lists[i]??0),[v,h]=r(""),[g,R]=r(""),[H,F]=r(),[C,L]=r(),[V,U]=r(),[q,W]=r(!1);a(()=>{let E=setTimeout(()=>R(v.trim()),vt);return()=>clearTimeout(E)},[v]),a(()=>{let E=!0;return ze.list(i,g||void 0).then((M)=>{if(!E)return;Ci(Object.fromEntries(M.rooms.map((Q)=>[Q.key,Q.unread??0]))),F(M.rooms),L(M.cursor),U(void 0)},(M)=>E&&U(u(M))),()=>{E=!1}},[i,g,y,w]);let te=async()=>{if(!C||q)return;W(!0);try{let E=await ze.list(i,g||void 0,C);Ci(Object.fromEntries(E.rooms.map((M)=>[M.key,M.unread??0]))),F((M)=>[...M??[],...E.rooms]),L(E.cursor)}catch(E){U(u(E))}finally{W(!1)}};return n("section",{className:"stack",children:[n("h2",{className:"section-title",children:[l.icon?e(s,{name:l.icon,size:14,className:"section-icon"}):null,l.label]}),H&&(H.length>=bt||g||v)?e("input",{type:"search",className:"kind-filter",value:v,placeholder:t("Search {name}",{name:l.label}),"aria-label":t("Search {name}",{name:l.label}),onChange:(E)=>h(E.target.value)}):null,V?e(p,{message:V}):null,!H&&!V?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,H&&H.length===0?e(_,{children:g?t("Nothing matches."):t("No rooms yet.")}):null,H&&H.length>0?e("ul",{className:"room-list",children:H.map((E)=>e("li",{children:n("a",{className:"room-row",href:S("room",E.key),"aria-current":E.key===l.active?"page":void 0,children:[n("span",{className:"kind-row-picture",children:[e(Ke,{picture:E.picture,name:E.title,size:44}),E.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null]}),n("span",{className:"room-row-main",children:[n("span",{className:"room-row-top",children:[e("strong",{children:E.title}),e(le,{room:E.key}),e("span",{className:"room-row-time",children:E.lastAt?De(E.lastAt,f,c):""})]}),e("span",{className:"room-row-preview",children:e("span",{children:E.subtitle??""})})]}),e(s,{name:"chevron",size:16,className:"room-row-chevron"})]})},E.key))}):null,C?e("button",{type:"button",className:"secondary",disabled:q,onClick:te,children:q?t("Loading…"):t("Show more")}):null]})}function Le(l){return l.kinds.map((i)=>e(he,{kind:i.kind,label:i.label,...i.icon?{icon:i.icon}:{},active:l.active},i.kind))}function Fe(){let l=(k().pages??[]).filter((i)=>i.place==="settings");if(l.length===0)return null;return n("section",{className:"card stack",children:[e("h2",{children:t("More settings")}),l.map((i)=>n("a",{className:"menu-item menu-link",href:S("p",i.id),children:[e("span",{className:"menu-text",children:e("strong",{children:i.label})}),e(s,{name:"chevron",size:16})]},i.id))]})}export{Le as HostKinds,rt as HostPage,ht as HostRoomPage,Fe as HostSettingsPages,ae as ReadLog,le as UnreadMark};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t,c,S,f}from"./chunk-index-zynq0b0w.js";import{Ji}from"./chunk-index-yzsgsvnp.js";var n=encodeURIComponent,a=new Set([c("This action takes no form."),c("The form has no such field."),c("This field is required."),c("Choose from the list."),c("This field takes one value."),c("This field is too long."),c("Give a web address."),c("The action could not be done.")]),pi=(e)=>a.has(e)?t(e):e;function cs(e){let s=e.indexOf(":"),o=e.lastIndexOf(".");if(s<0||o<s+2||o===e.length-1)return;return{kind:e.slice(s+1,o),id:e.slice(o+1)}}var ze={list:(e,s,o)=>{let i=new URLSearchParams;if(s)i.set("filter",s);if(o)i.set("cursor",o);let r=i.toString();return f(`host/${n(e)}${r?`?${r}`:""}`)},open:(e,s)=>f(`host/${n(e)}/${n(s)}`),older:(e,s,o,i)=>f(`host/${n(e)}/${n(s)}/messages?before=${o}&limit=${i}`),act:(e,s,o)=>f(`host/${n(e)}/${n(s)}/act`,{method:"POST",body:JSON.stringify(o)}),page:(e,s)=>{let o=new URLSearchParams(s).toString();return f(`pages/${n(e)}${o?`?${o}`:""}`)},pageAct:(e,s)=>f(`pages/${n(e)}/act`,{method:"POST",body:JSON.stringify(s)})};function g(e){if("room"in e){let o=e.message===void 0?"":`?message=${e.message}`;return`${S("room",e.room)}${o}`}let s=new URLSearchParams(e.query??{}).toString();return`${S("p",e.page)}${s?`?${s}`:""}`}function mi(e){Ji(new URL(g(e),document.baseURI))}
|
|
2
|
+
export{pi,cs,ze,mi};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var r="./account-zk4efb87.css";if(typeof document<"u"&&!document.getElementById("account-styles")){let e=document.createElement("link");e.id="account-styles",e.rel="stylesheet",e.href=new URL(r,import.meta.url).href,document.head.append(e)}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f}from"./chunk-index-zynq0b0w.js";var le={pushTest:()=>f("push/test",{method:"POST"}),pushPrefs:()=>f("push/prefs"),setPushPrefs:(e)=>f("push/prefs",{method:"PUT",body:JSON.stringify({quiet:e})}),notices:()=>f("notices"),ackNotice:(e)=>f(`notices/${encodeURIComponent(e)}/ack`,{method:"POST"}),onboarding:()=>f("onboarding"),waive:(e)=>f(`onboarding/${encodeURIComponent(e)}/waive`,{method:"POST"}),profile:()=>f("profile"),chooseSource:(e)=>f("profile/source",{method:"PUT",body:JSON.stringify({provider:e})}),links:()=>f("links"),issueLink:(e)=>f(`links/${encodeURIComponent(e)}/issue`,{method:"POST"}),confirmLink:(e,i)=>f(`links/${encodeURIComponent(e)}/confirm`,{method:"POST",body:JSON.stringify({request:i})}),cancelLink:(e)=>f(`links/${encodeURIComponent(e)}/cancel`,{method:"POST"}),unlink:(e)=>f(`links/${encodeURIComponent(e)}`,{method:"DELETE"})};
|
|
2
|
+
export{le};
|
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
import{h,a,o,B,ye,vi,or}from"./chunk-index-zynq0b0w.js";var w=!1;function In(){if(w||typeof document>"u")return;if(w=!0,typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype)try{let t=new CSSStyleSheet;t.replaceSync(`
|
|
2
|
+
.folder-body[hidden] {
|
|
3
|
+
display: none;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/* An empty place to drop (the pinned list, a folder of the drawer) shows only while a row is lifted. */
|
|
7
|
+
[data-empty] {
|
|
8
|
+
display: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-reordering] [data-empty] {
|
|
12
|
+
display: block;
|
|
13
|
+
min-height: 2.75rem;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Folders of the room list, and the lifted row or folder while it is dragged. */
|
|
17
|
+
.folder {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: var(--space-2);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* An ordinary folder is a light section header, tappable, like the Home and Pinned labels: no box. */
|
|
24
|
+
.folder-head {
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
gap: var(--space-2);
|
|
28
|
+
min-height: 2.75rem;
|
|
29
|
+
padding: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/*
|
|
33
|
+
* The fold button wears the section label. It sits under the base "button:hover:not(:disabled)"
|
|
34
|
+
* (an accent fill), which a plain class would lose to; so each state is named here, and none of them
|
|
35
|
+
* changes the text colour away from the page's own text.
|
|
36
|
+
*/
|
|
37
|
+
.folder-head .folder-toggle {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex: 1;
|
|
40
|
+
align-items: center;
|
|
41
|
+
justify-content: flex-start;
|
|
42
|
+
gap: var(--space-2);
|
|
43
|
+
min-width: 0;
|
|
44
|
+
min-height: 2.75rem;
|
|
45
|
+
padding: 0 var(--space-2);
|
|
46
|
+
border: 0;
|
|
47
|
+
border-radius: var(--radius);
|
|
48
|
+
background: transparent;
|
|
49
|
+
color: var(--muted);
|
|
50
|
+
font-weight: var(--weight-medium);
|
|
51
|
+
text-align: left;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.folder-head .folder-toggle:hover:not(:disabled),
|
|
55
|
+
.folder-head .folder-toggle:active:not(:disabled),
|
|
56
|
+
.folder-head .folder-toggle:focus-visible {
|
|
57
|
+
border: 0;
|
|
58
|
+
background: color-mix(in srgb, var(--text) 8%, transparent);
|
|
59
|
+
color: var(--text);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.folder-head .folder-toggle:active:not(:disabled) {
|
|
63
|
+
transform: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.folder-toggle strong {
|
|
67
|
+
overflow: hidden;
|
|
68
|
+
color: inherit;
|
|
69
|
+
font-size: var(--text-xs);
|
|
70
|
+
letter-spacing: 0.06em;
|
|
71
|
+
text-overflow: ellipsis;
|
|
72
|
+
text-transform: uppercase;
|
|
73
|
+
white-space: nowrap;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.folder-toggle .meta {
|
|
77
|
+
flex: none;
|
|
78
|
+
color: inherit;
|
|
79
|
+
font-size: var(--text-xs);
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* The pictures of a folded folder's rooms, overlapping, then how many more. */
|
|
84
|
+
.folder-stack {
|
|
85
|
+
display: flex;
|
|
86
|
+
flex: none;
|
|
87
|
+
align-items: center;
|
|
88
|
+
margin-left: var(--space-1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.folder-stack > * + * {
|
|
92
|
+
margin-left: -0.5rem;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.folder-stack-item,
|
|
96
|
+
.folder-stack-more {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
flex: none;
|
|
99
|
+
align-items: center;
|
|
100
|
+
justify-content: center;
|
|
101
|
+
width: 1.75rem;
|
|
102
|
+
height: 1.75rem;
|
|
103
|
+
overflow: hidden;
|
|
104
|
+
border-radius: 50%;
|
|
105
|
+
background: var(--surface);
|
|
106
|
+
box-shadow: 0 0 0 2px var(--bg);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.folder-stack-more {
|
|
110
|
+
background: var(--surface-2);
|
|
111
|
+
color: var(--muted);
|
|
112
|
+
font-size: var(--text-xs);
|
|
113
|
+
font-weight: var(--weight-medium);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.folder-chevron {
|
|
117
|
+
flex: none;
|
|
118
|
+
transition: transform var(--dur-fast) var(--ease-out);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.folder-chevron[data-open] {
|
|
122
|
+
transform: rotate(90deg);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.folder-head .muted-mark[data-partial] {
|
|
126
|
+
opacity: 0.55;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.folder-more,
|
|
130
|
+
.row-more {
|
|
131
|
+
flex: none;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.folder-body {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
gap: var(--space-2);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.folder-empty {
|
|
141
|
+
margin: 0;
|
|
142
|
+
padding: var(--space-2) var(--space-3);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.room-list > li {
|
|
146
|
+
position: relative;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* The menu button sits over the row's right edge: the row keeps that strip clear of its chevron and time. */
|
|
150
|
+
.room-list > li[data-arranging] > .room-row {
|
|
151
|
+
padding-right: 3.75rem;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.room-list .row-more {
|
|
155
|
+
position: absolute;
|
|
156
|
+
top: var(--space-2);
|
|
157
|
+
right: var(--space-2);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.arrange-bar {
|
|
161
|
+
display: flex;
|
|
162
|
+
align-items: center;
|
|
163
|
+
justify-content: space-between;
|
|
164
|
+
gap: var(--space-3);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
[data-drop-zone] {
|
|
168
|
+
position: relative;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
[data-lifted] {
|
|
172
|
+
position: relative;
|
|
173
|
+
z-index: 5;
|
|
174
|
+
box-shadow: var(--shadow-3);
|
|
175
|
+
transition: none;
|
|
176
|
+
touch-action: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
[data-reordering] {
|
|
180
|
+
-webkit-user-select: none;
|
|
181
|
+
user-select: none;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
[data-reordering] [data-drop-item]:not([data-lifted]),
|
|
185
|
+
[data-reordering] [data-folder-block]:not([data-lifted]) {
|
|
186
|
+
transition: transform var(--dur-fast) var(--ease-out);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
[data-drop-target] {
|
|
190
|
+
outline: 2px dashed var(--accent);
|
|
191
|
+
outline-offset: 4px;
|
|
192
|
+
border-radius: var(--radius-lg);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.drop-line {
|
|
196
|
+
position: absolute;
|
|
197
|
+
left: 0;
|
|
198
|
+
right: 0;
|
|
199
|
+
height: 3px;
|
|
200
|
+
margin-top: -2px;
|
|
201
|
+
border-radius: 2px;
|
|
202
|
+
background: var(--accent);
|
|
203
|
+
pointer-events: none;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
@media (prefers-reduced-motion: reduce) {
|
|
207
|
+
.folder-chevron,
|
|
208
|
+
[data-reordering] [data-drop-item]:not([data-lifted]),
|
|
209
|
+
[data-reordering] [data-folder-block]:not([data-lifted]) {
|
|
210
|
+
transition: none;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t];return}catch{}let n=document.createElement("style");n.textContent=`
|
|
214
|
+
.folder-body[hidden] {
|
|
215
|
+
display: none;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* An empty place to drop (the pinned list, a folder of the drawer) shows only while a row is lifted. */
|
|
219
|
+
[data-empty] {
|
|
220
|
+
display: none;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
[data-reordering] [data-empty] {
|
|
224
|
+
display: block;
|
|
225
|
+
min-height: 2.75rem;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* Folders of the room list, and the lifted row or folder while it is dragged. */
|
|
229
|
+
.folder {
|
|
230
|
+
display: flex;
|
|
231
|
+
flex-direction: column;
|
|
232
|
+
gap: var(--space-2);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* An ordinary folder is a light section header, tappable, like the Home and Pinned labels: no box. */
|
|
236
|
+
.folder-head {
|
|
237
|
+
display: flex;
|
|
238
|
+
align-items: center;
|
|
239
|
+
gap: var(--space-2);
|
|
240
|
+
min-height: 2.75rem;
|
|
241
|
+
padding: 0;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/*
|
|
245
|
+
* The fold button wears the section label. It sits under the base "button:hover:not(:disabled)"
|
|
246
|
+
* (an accent fill), which a plain class would lose to; so each state is named here, and none of them
|
|
247
|
+
* changes the text colour away from the page's own text.
|
|
248
|
+
*/
|
|
249
|
+
.folder-head .folder-toggle {
|
|
250
|
+
display: flex;
|
|
251
|
+
flex: 1;
|
|
252
|
+
align-items: center;
|
|
253
|
+
justify-content: flex-start;
|
|
254
|
+
gap: var(--space-2);
|
|
255
|
+
min-width: 0;
|
|
256
|
+
min-height: 2.75rem;
|
|
257
|
+
padding: 0 var(--space-2);
|
|
258
|
+
border: 0;
|
|
259
|
+
border-radius: var(--radius);
|
|
260
|
+
background: transparent;
|
|
261
|
+
color: var(--muted);
|
|
262
|
+
font-weight: var(--weight-medium);
|
|
263
|
+
text-align: left;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.folder-head .folder-toggle:hover:not(:disabled),
|
|
267
|
+
.folder-head .folder-toggle:active:not(:disabled),
|
|
268
|
+
.folder-head .folder-toggle:focus-visible {
|
|
269
|
+
border: 0;
|
|
270
|
+
background: color-mix(in srgb, var(--text) 8%, transparent);
|
|
271
|
+
color: var(--text);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.folder-head .folder-toggle:active:not(:disabled) {
|
|
275
|
+
transform: none;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.folder-toggle strong {
|
|
279
|
+
overflow: hidden;
|
|
280
|
+
color: inherit;
|
|
281
|
+
font-size: var(--text-xs);
|
|
282
|
+
letter-spacing: 0.06em;
|
|
283
|
+
text-overflow: ellipsis;
|
|
284
|
+
text-transform: uppercase;
|
|
285
|
+
white-space: nowrap;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.folder-toggle .meta {
|
|
289
|
+
flex: none;
|
|
290
|
+
color: inherit;
|
|
291
|
+
font-size: var(--text-xs);
|
|
292
|
+
white-space: nowrap;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* The pictures of a folded folder's rooms, overlapping, then how many more. */
|
|
296
|
+
.folder-stack {
|
|
297
|
+
display: flex;
|
|
298
|
+
flex: none;
|
|
299
|
+
align-items: center;
|
|
300
|
+
margin-left: var(--space-1);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.folder-stack > * + * {
|
|
304
|
+
margin-left: -0.5rem;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.folder-stack-item,
|
|
308
|
+
.folder-stack-more {
|
|
309
|
+
display: inline-flex;
|
|
310
|
+
flex: none;
|
|
311
|
+
align-items: center;
|
|
312
|
+
justify-content: center;
|
|
313
|
+
width: 1.75rem;
|
|
314
|
+
height: 1.75rem;
|
|
315
|
+
overflow: hidden;
|
|
316
|
+
border-radius: 50%;
|
|
317
|
+
background: var(--surface);
|
|
318
|
+
box-shadow: 0 0 0 2px var(--bg);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.folder-stack-more {
|
|
322
|
+
background: var(--surface-2);
|
|
323
|
+
color: var(--muted);
|
|
324
|
+
font-size: var(--text-xs);
|
|
325
|
+
font-weight: var(--weight-medium);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.folder-chevron {
|
|
329
|
+
flex: none;
|
|
330
|
+
transition: transform var(--dur-fast) var(--ease-out);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.folder-chevron[data-open] {
|
|
334
|
+
transform: rotate(90deg);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.folder-head .muted-mark[data-partial] {
|
|
338
|
+
opacity: 0.55;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.folder-more,
|
|
342
|
+
.row-more {
|
|
343
|
+
flex: none;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.folder-body {
|
|
347
|
+
display: flex;
|
|
348
|
+
flex-direction: column;
|
|
349
|
+
gap: var(--space-2);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.folder-empty {
|
|
353
|
+
margin: 0;
|
|
354
|
+
padding: var(--space-2) var(--space-3);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.room-list > li {
|
|
358
|
+
position: relative;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/* The menu button sits over the row's right edge: the row keeps that strip clear of its chevron and time. */
|
|
362
|
+
.room-list > li[data-arranging] > .room-row {
|
|
363
|
+
padding-right: 3.75rem;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.room-list .row-more {
|
|
367
|
+
position: absolute;
|
|
368
|
+
top: var(--space-2);
|
|
369
|
+
right: var(--space-2);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.arrange-bar {
|
|
373
|
+
display: flex;
|
|
374
|
+
align-items: center;
|
|
375
|
+
justify-content: space-between;
|
|
376
|
+
gap: var(--space-3);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
[data-drop-zone] {
|
|
380
|
+
position: relative;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
[data-lifted] {
|
|
384
|
+
position: relative;
|
|
385
|
+
z-index: 5;
|
|
386
|
+
box-shadow: var(--shadow-3);
|
|
387
|
+
transition: none;
|
|
388
|
+
touch-action: none;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
[data-reordering] {
|
|
392
|
+
-webkit-user-select: none;
|
|
393
|
+
user-select: none;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
[data-reordering] [data-drop-item]:not([data-lifted]),
|
|
397
|
+
[data-reordering] [data-folder-block]:not([data-lifted]) {
|
|
398
|
+
transition: transform var(--dur-fast) var(--ease-out);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
[data-drop-target] {
|
|
402
|
+
outline: 2px dashed var(--accent);
|
|
403
|
+
outline-offset: 4px;
|
|
404
|
+
border-radius: var(--radius-lg);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.drop-line {
|
|
408
|
+
position: absolute;
|
|
409
|
+
left: 0;
|
|
410
|
+
right: 0;
|
|
411
|
+
height: 3px;
|
|
412
|
+
margin-top: -2px;
|
|
413
|
+
border-radius: 2px;
|
|
414
|
+
background: var(--accent);
|
|
415
|
+
pointer-events: none;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
@media (prefers-reduced-motion: reduce) {
|
|
419
|
+
.folder-chevron,
|
|
420
|
+
[data-reordering] [data-drop-item]:not([data-lifted]),
|
|
421
|
+
[data-reordering] [data-folder-block]:not([data-lifted]) {
|
|
422
|
+
transition: none;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
`,document.head.append(n)}var k=()=>(h("48ecgtkg"),import("./chunk-layout-actions-48ecgtkg.js")),Dn=(n)=>({mode:"room",key:n,item:(t)=>t.closest("[data-drop-item]"),root:(t)=>t.closest("[data-drop-root]"),onDrop:(t)=>{if(t.type==="room")k().then((i)=>i.dropRoom(n,t.drop))},open:(t)=>void (h("hvws0bd5"),import("./chunk-folds-hvws0bd5.js")).then((i)=>i.expandFolder(t))});var g=!1,{emit:T,use:D}=B(),Un=()=>D(()=>g);function Zi(n){if(g===n)return;g=n,T()}var H=6,E=()=>(h("peyb8t0k"),import("./chunk-drag-peyb8t0k.js"));var M=()=>{return},S=0;function C(){if(S++===0)window.addEventListener("touchmove",M,{passive:!1});return()=>{if(--S===0)window.removeEventListener("touchmove",M)}}function Xt(n,t){let i=o(t);i.current=t;let v=t!==void 0;a(()=>v?C():void 0,[v]);let d=o(void 0),u=o(void 0),p=o(!1),L=(e,r,s)=>n(e).then((c)=>{if(c)ye({...c,at:r,via:s,source:e})},()=>{return}),y=(e,r,s,c)=>{let f=i.current,x=f?.item(e),b=f?.root(e);if(!f||!x||!b)return!1;return u.current??=E(),u.current.then(({lift:P})=>{if(d.current?.id!==r)return c();P({mode:f.mode,key:f.key,item:x,root:b,pointerId:r,y:s(),open:f.open,done:(m)=>{if(m.type==="tap")c();else if(m.type!=="cancel")f.onDrop(m)}})},c),!0},l=vi((e)=>{let r=()=>L(e.source,e.at,e.via),s=d.current;if(!(e.via==="hold"||e.via==="contextmenu"&&s?.touch)||!s)return void r();if(!y(e.source,s.id,()=>s.y,r))return void r();if(e.via==="contextmenu")p.current=!0});return{...l,onPointerDown(e){if(p.current=!1,d.current={id:e.pointerId,x:e.clientX,y:e.clientY,touch:e.pointerType!=="mouse"},e.pointerType!=="mouse"&&or(e.clientX,window.innerWidth))d.current=void 0;else if(i.current)u.current??=E();l.onPointerDown(e)},onPointerMove(e){let r=d.current;if(r?.id===e.pointerId){if(e.pointerType==="mouse"&&e.buttons===1&&!p.current&&i.current&&Math.hypot(e.clientX-r.x,e.clientY-r.y)>H)p.current=y(e.currentTarget,e.pointerId,()=>e.clientY,()=>{return});r.y=e.clientY}l.onPointerMove(e)},onPointerUp(e){if(d.current?.id===e.pointerId)d.current=void 0;l.onPointerUp(e)},onPointerCancel(e){if(d.current?.id===e.pointerId)d.current=void 0;l.onPointerCancel(e)},onContextMenu:l.onContextMenu,onKeyDown:l.onKeyDown,onClickCapture(e){if(p.current){p.current=!1,e.preventDefault(),e.stopPropagation();return}l.onClickCapture(e)},onDragStart(e){e.preventDefault()}}}
|
|
426
|
+
export{In,Dn,Un,Zi,Xt};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Me}from"./chunk-index-wrm8w165.js";import{t,ye,Ss,Kn}from"./chunk-index-zynq0b0w.js";function Ln(e){let n=e.getBoundingClientRect(),o=Ss();ye({title:t("Rooms"),items:[{id:"new-folder",label:t("Add a folder"),icon:"plus",run:()=>Me({kind:"new"})},{id:"arrange",label:o?t("Done"):t("Arrange"),icon:o?"check":"list",run:()=>Kn(!o)}],at:{x:n.left,y:n.bottom},via:"key",source:e})}
|
|
2
|
+
export{Ln};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import{e,n}from"./chunk-index-zynq0b0w.js";var r=!1;function a(){if(r||typeof document>"u")return;if(r=!0,typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype)try{let o=new CSSStyleSheet;o.replaceSync(`
|
|
2
|
+
/* One choice of how to write, in the composer's column over the bar, wherever the pane is wide. */
|
|
3
|
+
.mode-toggle {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
align-self: flex-start;
|
|
7
|
+
gap: var(--space-2);
|
|
8
|
+
min-height: var(--touch);
|
|
9
|
+
padding: 0 var(--space-3) 0 var(--space-1);
|
|
10
|
+
border: 1px solid transparent;
|
|
11
|
+
border-radius: var(--radius-full);
|
|
12
|
+
background: none;
|
|
13
|
+
color: var(--muted);
|
|
14
|
+
font-size: var(--text-sm);
|
|
15
|
+
font-weight: var(--weight-medium);
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.mode-toggle[aria-checked="true"] {
|
|
20
|
+
color: var(--text);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.mode-toggle:hover:not(:disabled) {
|
|
24
|
+
background: var(--surface);
|
|
25
|
+
border-color: transparent;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.mode-toggle:disabled {
|
|
29
|
+
cursor: default;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.mode-toggle-track {
|
|
33
|
+
position: relative;
|
|
34
|
+
flex: none;
|
|
35
|
+
width: 2.25rem;
|
|
36
|
+
height: 1.35rem;
|
|
37
|
+
border: 1px solid var(--control-border);
|
|
38
|
+
border-radius: var(--radius-full);
|
|
39
|
+
background: var(--surface-3);
|
|
40
|
+
transition:
|
|
41
|
+
background-color var(--dur) var(--ease-out),
|
|
42
|
+
border-color var(--dur) var(--ease-out);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.mode-toggle-track::after {
|
|
46
|
+
content: "";
|
|
47
|
+
position: absolute;
|
|
48
|
+
left: 2px;
|
|
49
|
+
top: 50%;
|
|
50
|
+
width: 1rem;
|
|
51
|
+
height: 1rem;
|
|
52
|
+
margin-top: -0.5rem;
|
|
53
|
+
border-radius: var(--radius-full);
|
|
54
|
+
background: var(--control-border);
|
|
55
|
+
transition:
|
|
56
|
+
transform var(--dur) var(--ease-out),
|
|
57
|
+
background-color var(--dur) var(--ease-out);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.mode-toggle[aria-checked="true"] .mode-toggle-track {
|
|
61
|
+
border-color: var(--accent);
|
|
62
|
+
background: var(--accent);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.mode-toggle[aria-checked="true"] .mode-toggle-track::after {
|
|
66
|
+
background: var(--bg);
|
|
67
|
+
transform: translateX(0.9rem);
|
|
68
|
+
}
|
|
69
|
+
`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,o];return}catch{}let t=document.createElement("style");t.textContent=`
|
|
70
|
+
/* One choice of how to write, in the composer's column over the bar, wherever the pane is wide. */
|
|
71
|
+
.mode-toggle {
|
|
72
|
+
display: inline-flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
align-self: flex-start;
|
|
75
|
+
gap: var(--space-2);
|
|
76
|
+
min-height: var(--touch);
|
|
77
|
+
padding: 0 var(--space-3) 0 var(--space-1);
|
|
78
|
+
border: 1px solid transparent;
|
|
79
|
+
border-radius: var(--radius-full);
|
|
80
|
+
background: none;
|
|
81
|
+
color: var(--muted);
|
|
82
|
+
font-size: var(--text-sm);
|
|
83
|
+
font-weight: var(--weight-medium);
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.mode-toggle[aria-checked="true"] {
|
|
88
|
+
color: var(--text);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.mode-toggle:hover:not(:disabled) {
|
|
92
|
+
background: var(--surface);
|
|
93
|
+
border-color: transparent;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.mode-toggle:disabled {
|
|
97
|
+
cursor: default;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.mode-toggle-track {
|
|
101
|
+
position: relative;
|
|
102
|
+
flex: none;
|
|
103
|
+
width: 2.25rem;
|
|
104
|
+
height: 1.35rem;
|
|
105
|
+
border: 1px solid var(--control-border);
|
|
106
|
+
border-radius: var(--radius-full);
|
|
107
|
+
background: var(--surface-3);
|
|
108
|
+
transition:
|
|
109
|
+
background-color var(--dur) var(--ease-out),
|
|
110
|
+
border-color var(--dur) var(--ease-out);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.mode-toggle-track::after {
|
|
114
|
+
content: "";
|
|
115
|
+
position: absolute;
|
|
116
|
+
left: 2px;
|
|
117
|
+
top: 50%;
|
|
118
|
+
width: 1rem;
|
|
119
|
+
height: 1rem;
|
|
120
|
+
margin-top: -0.5rem;
|
|
121
|
+
border-radius: var(--radius-full);
|
|
122
|
+
background: var(--control-border);
|
|
123
|
+
transition:
|
|
124
|
+
transform var(--dur) var(--ease-out),
|
|
125
|
+
background-color var(--dur) var(--ease-out);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.mode-toggle[aria-checked="true"] .mode-toggle-track {
|
|
129
|
+
border-color: var(--accent);
|
|
130
|
+
background: var(--accent);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.mode-toggle[aria-checked="true"] .mode-toggle-track::after {
|
|
134
|
+
background: var(--bg);
|
|
135
|
+
transform: translateX(0.9rem);
|
|
136
|
+
}
|
|
137
|
+
`,document.head.append(t)}a();function Vi(t){return n("button",{type:"button",role:"switch","aria-checked":t.on,className:"mode-toggle",disabled:t.locked!==void 0,title:t.locked,onClick:()=>t.onChange(!t.on),children:[e("span",{className:"mode-toggle-track","aria-hidden":"true"}),t.label]})}
|
|
138
|
+
export{Vi};
|