@livx.cc/bare-v3 0.1.0-alpha.96 → 0.1.0-alpha.97
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/components/board.js +1 -1
- package/dist/manifest.json +1 -1
- package/package.json +1 -1
package/dist/components/board.js
CHANGED
|
@@ -40,7 +40,7 @@ ${r?'Expression: "'+r+`"
|
|
|
40
40
|
.b3-image-viewer>.b3-image-viewer-fit{inset-inline-start:var(--b3-space,1rem);}
|
|
41
41
|
`;class ir extends Ne{static observedAttributes=["src","alt","max-scale","open"];#t=1;#e=0;#n=0;#l=!1;#s=null;#i=new Map;#c=!1;#p=0;#r=0;#y=0;#v=0;#k=!1;#w=null;#m=null;#A=new WeakSet;#d=null;get scale(){return this.#t}get fitted(){return this.#t<=fe}get src(){return this.#d??this.getAttribute("src")}set src(e){if(e&&typeof e==="object")this.#d=e.src??e.default??String(e);else if(this.#d=null,e==null)this.removeAttribute("src");else this.setAttribute("src",e);this.#_()}get alt(){return this.getAttribute("alt")??""}set alt(e){this.setAttribute("alt",e??"")}get maxScale(){let e=Number(this.getAttribute("max-scale"));return e>=1?e:8}set maxScale(e){this.setAttribute("max-scale",String(e))}get open(){return this.hasAttribute("open")}set open(e){this.toggleAttribute("open",Boolean(e))}connectedCallback(){if(this.#k)return;if(this.#k=!0,Be(this.ownerDocument,ca,da),this.classList.add("b3-image-viewer"),!this.hasAttribute("tabindex"))this.tabIndex=0;if(!this.hasAttribute("role"))this.setAttribute("role","group");this.#E(),this.#_(),this.#M(),this.#m=new MutationObserver(()=>{this.#S(),this.#f()}),this.#m.observe(this,{childList:!0}),this.#S(),this.#f()}disconnectedCallback(){this.#w?.abort(),this.#w=null,this.#m?.disconnect(),this.#m=null;for(let e of this.#i.keys())if(this.hasPointerCapture?.(e))this.releasePointerCapture(e);this.#i.clear(),this.#s=null,this.#c=!1,this.#k=!1}attributeChangedCallback(e,t,r){if(t===r)return;if(e==="src")this.#_(),this.reset();if(e==="alt"){let n=this.#h();if(n)n.alt=this.alt;this.#E()}if(e==="open"){if(this.#S(),this.reset(),this.open)this.focus({preventScroll:!0})}if(e==="max-scale"&&this.#t>this.maxScale)this.zoomTo(this.maxScale)}#h(){return this.querySelector(":scope > img, :scope > svg, :scope > canvas")}#_(){let e=this.#h(),t=this.src,r=!1;if(!e&&t)e=this.ownerDocument.createElement("img"),r=!0,this.prepend(e);if(!e)return;if(t&&e.tagName==="IMG"&&e.getAttribute("src")!==t)e.setAttribute("src",t);if(e.tagName==="IMG"&&(r||this.hasAttribute("alt")))e.alt=this.alt;if(this.#E(),e.tagName==="IMG")this.#o(e)}#E(){if(this.hasAttribute("aria-labelledby"))return;let e=this.getAttribute("alt");if(e)this.setAttribute("aria-label",e);else if(!this.hasAttribute("aria-label"))this.setAttribute("aria-label","Zoomable image")}#o(e){if(this.#A.has(e))return;if(this.#A.add(e),e.addEventListener("load",()=>{this.removeAttribute("data-b3-error"),this.reset()}),e.addEventListener("error",()=>this.#g(e)),e.complete&&e.naturalWidth===0&&e.getAttribute("src"))setTimeout(()=>{if(e.isConnected&&e.complete&&e.naturalWidth===0)this.#g(e)},0)}#g(e){if(this.hasAttribute("data-b3-error"))return;this.setAttribute("data-b3-error",""),this.dispatchEvent(new CustomEvent("b3-error",{bubbles:!0,composed:!0,detail:{src:e.getAttribute("src")??this.src??null}}))}#S(){if(!this.open){for(let t of this.querySelectorAll(":scope > .b3-image-viewer-close"))t.remove();return}if(this.querySelector(":scope > .b3-image-viewer-close"))return;let e=this.ownerDocument.createElement("button");e.type="button",e.className="b3-image-viewer-close",e.setAttribute("aria-label","Close"),e.textContent="×",e.addEventListener("click",(t)=>{t.preventDefault(),t.stopPropagation(),this.requestClose()}),e.addEventListener("pointerdown",(t)=>t.stopPropagation()),this.append(e)}#u(){let e=this.#h();if(!e)return null;let t=e.style.transform;e.style.transform="none";let r=this.getBoundingClientRect(),n=e.getBoundingClientRect();return e.style.transform=t,this.#l=n.width>r.width+1||n.height>r.height+1,{element:e,vw:r.width,vh:r.height,x:n.left-r.left,y:n.top-r.top,w:n.width,h:n.height}}#a(e){if(this.#t<=fe&&!this.#l){this.#e=0,this.#n=0;return}let t=e.w*this.#t,r=e.h*this.#t;this.#e=t<=e.vw?(e.vw-t)/2-e.x:Math.min(-e.x,Math.max(-e.x-(t-e.vw),this.#e)),this.#n=r<=e.vh?(e.vh-r)/2-e.y:Math.min(-e.y,Math.max(-e.y-(r-e.vh),this.#n))}#f(e){let t=e?.element??this.#h();if(!t)return;let r=this.#t<=fe,n=!r||this.#l;t.style.transformOrigin="0 0",t.style.transform=r&&!this.#e&&!this.#n?"":`translate(${this.#e}px, ${this.#n}px) scale(${this.#t})`,t.style.setProperty("--b3-zoom",String(this.#t)),this.toggleAttribute("data-b3-zoomed",!r),this.toggleAttribute("data-b3-pannable",n),this.style.touchAction=n||this.open?"none":"pan-y";let i=this.querySelector(":scope > .b3-image-viewer-fit");if(i)i.hidden=r}#C(e,t,r,n=this.#u()){if(!n)return;let i=this.#t;e=Math.max(1,Math.min(this.maxScale,e));let a=(t-this.#e)/this.#t,s=(r-this.#n)/this.#t;if(this.#e=t-a*e,this.#n=r-s*e,this.#t=e,this.#a(n),this.#f(n),i!==this.#t)this.#T()}#T(){this.dispatchEvent(new CustomEvent("b3-zoom",{bubbles:!0,composed:!0,detail:{scale:this.#t,fitted:this.fitted,src:this.src}}))}reset(){let e=this.#t!==1;this.#t=1,this.#e=0,this.#n=0;let t=this.#u();if(t)this.#a(t);if(this.#f(t),e)this.#T()}zoomTo(e){let t=this.#u();if(t)this.#C(e,t.vw/2,t.vh/2,t)}requestClose(){this.dispatchEvent(new CustomEvent("b3-close",{bubbles:!0,composed:!0,detail:{src:this.src}}))}#x(){let e=0,t=0;for(let r of this.#i.values())e+=r.x,t+=r.y;return{x:e/this.#i.size,y:t/this.#i.size}}#O(){let[e,t]=[...this.#i.values()];return Math.hypot(e.x-t.x,e.y-t.y)}#M(){this.#w=new AbortController;let e={signal:this.#w.signal},t={...e,passive:!1};this.addEventListener("pointerdown",(n)=>{if(n.pointerType==="mouse"&&n.button!==0)return;if(!this.#h())return;if(this.#i.set(n.pointerId,{x:n.clientX,y:n.clientY}),this.#s=this.#u(),this.#i.size>1||this.#t>fe||this.#l)this.setPointerCapture(n.pointerId),n.preventDefault()},e),this.addEventListener("pointermove",(n)=>{if(!this.#i.has(n.pointerId))return;let i=this.#i.size===2;if(!i&&this.#t<=fe&&!this.#l){this.#i.set(n.pointerId,{x:n.clientX,y:n.clientY});return}if(this.#s??=this.#u(),!this.#s)return;n.preventDefault();let a=this.#x(),s=i?this.#O():0;this.#i.set(n.pointerId,{x:n.clientX,y:n.clientY});let o=this.#x(),l=i?this.#O():0,c=this.getBoundingClientRect(),d=this.#t,u=i&&s>0?Math.max(1,Math.min(this.maxScale,this.#t*(l/s))):this.#t,f=(a.x-c.left-this.#e)/this.#t,b=(a.y-c.top-this.#n)/this.#t;if(this.#e=o.x-c.left-f*u,this.#n=o.y-c.top-b*u,this.#t=u,this.#a(this.#s),this.#f(this.#s),this.#c=!0,d!==this.#t)this.#T()},t);let r=(n)=>{if(!this.#i.delete(n.pointerId))return;if(this.hasPointerCapture?.(n.pointerId))this.releasePointerCapture(n.pointerId);if(this.#i.size){this.#s=this.#u();return}if(this.#s=null,this.#c){this.#p=performance.now(),this.#c=!1;return}if(n.type!=="pointerup")return;let i=performance.now(),a=Math.hypot(n.clientX-this.#y,n.clientY-this.#v)<aa;if(i-this.#r<oa&&a){this.#r=0;let s=this.getBoundingClientRect();this.#C(this.#t>fe?1:2.5,n.clientX-s.left,n.clientY-s.top),this.#p=i}else this.#r=i,this.#y=n.clientX,this.#v=n.clientY};this.addEventListener("pointerup",r,e),this.addEventListener("pointercancel",r,e),this.addEventListener("click",(n)=>{if(n.target.closest?.(".b3-image-viewer-close, .b3-image-viewer-fit"))return;if(performance.now()-this.#p<la){n.preventDefault(),n.stopPropagation();return}if(this.open&&this.fitted&&n.target===this)this.requestClose()},{...e,capture:!0}),this.addEventListener("wheel",(n)=>{let i=this.getBoundingClientRect();if(n.ctrlKey){n.preventDefault(),this.#C(this.#t*Math.exp(-n.deltaY/180),n.clientX-i.left,n.clientY-i.top);return}let a=this.#u();if(!a||a.h*this.#t<=a.vh&&!this.#l)return;let s=this.#n;if(this.#n-=n.deltaY,this.#a(a),this.#n===s)return;n.preventDefault(),this.#f(a)},t);for(let n of["gesturestart","gesturechange","gestureend"])this.addEventListener(n,(i)=>i.preventDefault(),t);this.addEventListener("keydown",(n)=>{if(n.metaKey||n.altKey)return;let i=n.shiftKey?80:40,a=(s,o)=>{let l=this.#u();if(!l||this.fitted)return!1;return this.#e+=s,this.#n+=o,this.#a(l),this.#f(l),!0};switch(n.key){case"+":case"=":this.zoomTo(this.#t*1.5);break;case"-":case"_":this.zoomTo(this.#t/1.5);break;case"0":this.reset();break;case"Enter":case" ":this.zoomTo(this.fitted?2.5:1);break;case"Escape":if(!this.open)return;this.requestClose();break;case"ArrowLeft":if(!a(i,0))return;break;case"ArrowRight":if(!a(-i,0))return;break;case"ArrowUp":if(!a(0,i))return;break;case"ArrowDown":if(!a(0,-i))return;break;default:return}n.preventDefault()},e),this.ownerDocument.defaultView.addEventListener("resize",()=>{let n=this.#u();if(n)this.#a(n),this.#f(n)},e)}}var ri=ir;function sr(e="b3-image-viewer"){if(typeof customElements>"u")return null;let t=customElements.get?.(e);if(t)return t;let r=ri;return ri=class extends ir{},customElements.define(e,r),r}sr();var ua=/(^|\s)([#@][\p{L}\p{N}_-]+)/gu,fa=/(?:\s+[#@][\p{L}\p{N}_-]+)+\s*$/u,ha=350,Ie=()=>globalThis.crypto?.randomUUID?.()??Math.random().toString(36).slice(2,11),or=(e)=>JSON.parse(JSON.stringify(nr(e))),y=(e,t)=>e!=null&&String(e)===String(t),rt=(e)=>!!e&&typeof e==="object",A=(e)=>Array.isArray(e.subtasks)?e.subtasks:[],he=(e)=>Array.isArray(e.comments)?e.comments:[];function ba(e,t){if(e==null||e==="")return"";let r=new Date(typeof e==="string"?e.replace(" ","T"):e).getTime();if(!Number.isFinite(r))return"";let n=Math.max(0,Math.round((t-r)/60000));if(n<1)return"just now";for(let[i,a]of[["y",525600],["mo",43200],["w",10080],["d",1440],["h",60]])if(n>=a)return`${Math.floor(n/a)}${i} ago`;return`${n}m ago`}var ui=(e)=>[...e.filter((t)=>t.starred),...e.filter((t)=>!t.starred)];function ar(e){if(!Array.isArray(e))return[];let t=new Set,r=(n)=>{let{id:i}=n;if(!(typeof i==="string"&&i!==""||typeof i==="number"&&Number.isFinite(i))||t.has(String(i)))n.id=Ie();t.add(String(n.id))};return e.filter(rt).map((n)=>{r(n),n.cards=ui(Array.isArray(n.cards)?n.cards.filter(rt):[]);for(let i of n.cards){if(r(i),Array.isArray(i.subtasks)){for(let a of i.subtasks)if(rt(a))r(a)}if(Array.isArray(i.comments)){for(let a of i.comments)if(rt(a))r(a)}}return n})}function ni(e,{field:t,id:r}){if(t==="name"){let n=e.findIndex((i)=>y(i.id,r));if(n>=0)e.splice(n,1);return}for(let n of e){let i=n.cards.findIndex((a)=>y(a.id,r));if(t==="title"&&i>=0)return void n.cards.splice(i,1);if(t==="subtask")for(let a of n.cards){let s=A(a),o=s.findIndex((l)=>y(l.id,r));if(o>=0)return void s.splice(o,1)}}}function pa(e,t,r){let{field:n,id:i}=r,a=(s,o,l)=>s.splice(Math.min(l,s.length),0,nr(o));if(n==="name"){let s=e.findIndex((o)=>y(o.id,i));if(s>=0&&!t.some((o)=>y(o.id,i)))a(t,e[s],s);return}for(let s of e){let o=s.cards.findIndex((l)=>y(l.id,i));if(n==="title"&&o>=0){let l=t.find((c)=>y(c.id,s.id));if(l&&!l.cards.some((c)=>y(c.id,i)))a(l.cards,s.cards[o],o);return}if(n==="subtask")for(let l of s.cards){let c=A(l).findIndex((u)=>y(u.id,i));if(c<0)continue;let d=t.flatMap((u)=>u.cards).find((u)=>y(u.id,l.id));if(d&&!A(d).some((u)=>y(u.id,i))){if(!Array.isArray(d.subtasks))d.subtasks=[];a(d.subtasks,A(l)[c],c)}return}}}var fi=(e)=>e.toLowerCase().split(/\s+/).filter(Boolean);function ma(e){return[e.title??"",e.description??"",...A(e).map((t)=>t.title??""),...st(e),...he(e).map((t)=>t.text??"")].join(`
|
|
42
42
|
`).toLowerCase()}var ii=(e,t)=>{let r=String(t.text??"").toLowerCase();return fi(e).some((n)=>r.includes(n))};function st(e){let t=new Set((e.tags??[]).map((n)=>(/^[#@]/.test(n)?n:`#${n}`).toLowerCase())),r=[e.title??"",e.description??"",...A(e).map((n)=>n.title??"")].join(`
|
|
43
|
-
`);for(let[,,n]of r.matchAll(ua))t.add(n.toLowerCase());return[...t]}var si=String.raw`(<[^<>\n]+>|(?:[^()\n]|\([^()\n]*\))+)`,ga=new RegExp(String.raw`!\[([^\]\n]*)\]\(${si}\)|\[([^\]\n]+)\]\(${si}\)|\bhttps?:\/\/[^\s<>]+`,"giu"),ya=new Set(["javascript","data","vbscript","file","blob","about"]),xa=(e)=>{let t=e.trim();return t.startsWith("<")&&t.endsWith(">")?t.slice(1,-1):t.replace(/\s+"[^"\n]*"$/,"")};function va(e,t=[]){if(/[\u0000-\u001f\u007f\\]/.test(e)||/\s/.test(e.replaceAll(" ",""))||e!==e.trim()||!e)return null;let r=/^([a-z][a-z\d+.-]*):/i.exec(e)?.[1].toLowerCase();if(r==="http"||r==="https"||r==="mailto")return{href:e,file:!1};if(r)return!ya.has(r)&&t.includes(r)?{href:e,file:!1}:null;return e.startsWith("//")?null:{href:e,file:!0}}var oi=(e)=>(e??"").toLowerCase().split(/[\s,]+/).map((t)=>t.replace(/:$/,"")).filter(Boolean),ai=(e)=>(e??"").toLowerCase().split(",").map((t)=>t.trim()).filter(Boolean),lr=(e,t)=>!!t&&e.includes(String(t.name??"").trim().toLowerCase());function dr(e,t=[]){let r=[],n=0;for(let i of e.matchAll(ga)){let a=i[2]!==void 0,[s]=i,o=a?i[1]:i[3],l=a?i[2]:i[4],c=i.index+s.length;if(!l){let u=s;for(;;){if(u=u.replace(/[.,;:!?'"\]]+$/u,""),!u.endsWith(")")||u.split("(").length>=u.split(")").length)break;u=u.slice(0,-1)}c-=s.length-u.length,s=o=l=u}else l=xa(l);let d=va(l,t);if(!d||a&&!d.file&&!/^https?:/i.test(d.href))continue;if(i.index>n)r.push(e.slice(n,i.index));r.push({text:o,...d,...a?{image:a}:{}}),n=c}if(n<e.length)r.push(e.slice(n));return r}var li=(e,t=[])=>dr(e,t).map((r)=>typeof r==="string"?r:r.text).join(""),cr=null;function wa(e,t,r=[]){let n=e.ownerDocument;e.replaceChildren(...dr(t,r).map((i)=>{if(typeof i==="string")return n.createTextNode(i);let a=n.createElement("a");if(a.className="b3-board-ref",a.href=i.href,a.dataset.href=i.href,a.draggable=!1,i.image){let s=n.createElement("img");if(s.src=i.href,s.alt=i.text,s.loading="lazy",s.draggable=!1,a.classList.add("b3-board-image"),a.append(s),i.file)a.dataset.file="";else a.target="_blank",a.rel="noopener noreferrer";return a}if(i.file){if(a.dataset.file="",!cr){let s=n.createElement("template");s.innerHTML=Aa,cr=s.content.firstElementChild}a.append(cr.cloneNode(!0))}else if(/^https?:/i.test(i.href))a.target="_blank",a.rel="noopener noreferrer";return a.append(i.text),a}))}var _a="b3-board-style",Ea=`
|
|
43
|
+
`);for(let[,,n]of r.matchAll(ua))t.add(n.toLowerCase());return[...t]}var si=String.raw`(<[^<>\n]+>|(?:[^()\n]|\([^()\n]*\))+)`,ga=new RegExp(String.raw`!\[([^\]\n]*)\]\(${si}\)|\[([^\]\n]+)\]\(${si}\)|\[([^[\]\s]*\/[^[\]\s]*\.[a-z][a-z\d]{0,7}|[^[\]\s\/]+\.(?:md|markdown|txt|json|ya?ml|csv|log|pdf|png|jpe?g|gif|webp|svg|html|kanban))\](?![(\[])|\bhttps?:\/\/[^\s<>]+`,"giu"),ya=new Set(["javascript","data","vbscript","file","blob","about"]),xa=(e)=>{let t=e.trim();return t.startsWith("<")&&t.endsWith(">")?t.slice(1,-1):t.replace(/\s+"[^"\n]*"$/,"")};function va(e,t=[]){if(/[\u0000-\u001f\u007f\\]/.test(e)||/\s/.test(e.replaceAll(" ",""))||e!==e.trim()||!e)return null;let r=/^([a-z][a-z\d+.-]*):/i.exec(e)?.[1].toLowerCase();if(r==="http"||r==="https"||r==="mailto")return{href:e,file:!1};if(r)return!ya.has(r)&&t.includes(r)?{href:e,file:!1}:null;return e.startsWith("//")?null:{href:e,file:!0}}var oi=(e)=>(e??"").toLowerCase().split(/[\s,]+/).map((t)=>t.replace(/:$/,"")).filter(Boolean),ai=(e)=>(e??"").toLowerCase().split(",").map((t)=>t.trim()).filter(Boolean),lr=(e,t)=>!!t&&e.includes(String(t.name??"").trim().toLowerCase());function dr(e,t=[]){let r=[],n=0;for(let i of e.matchAll(ga)){let a=i[2]!==void 0,[s]=i,o=a?i[1]:i[3]??i[5],l=a?i[2]:i[4]??i[5],c=i.index+s.length;if(!l){let u=s;for(;;){if(u=u.replace(/[.,;:!?'"\]]+$/u,""),!u.endsWith(")")||u.split("(").length>=u.split(")").length)break;u=u.slice(0,-1)}c-=s.length-u.length,s=o=l=u}else l=xa(l);let d=va(l,t);if(!d||a&&!d.file&&!/^https?:/i.test(d.href))continue;if(i.index>n)r.push(e.slice(n,i.index));r.push({text:o,...d,...a?{image:a}:{}}),n=c}if(n<e.length)r.push(e.slice(n));return r}var li=(e,t=[])=>dr(e,t).map((r)=>typeof r==="string"?r:r.text).join(""),cr=null;function wa(e,t,r=[]){let n=e.ownerDocument;e.replaceChildren(...dr(t,r).map((i)=>{if(typeof i==="string")return n.createTextNode(i);let a=n.createElement("a");if(a.className="b3-board-ref",a.href=i.href,a.dataset.href=i.href,a.draggable=!1,i.image){let s=n.createElement("img");if(s.src=i.href,s.alt=i.text,s.loading="lazy",s.draggable=!1,a.classList.add("b3-board-image"),a.append(s),i.file)a.dataset.file="";else a.target="_blank",a.rel="noopener noreferrer";return a}if(i.file){if(a.dataset.file="",!cr){let s=n.createElement("template");s.innerHTML=Aa,cr=s.content.firstElementChild}a.append(cr.cloneNode(!0))}else if(/^https?:/i.test(i.href))a.target="_blank",a.rel="noopener noreferrer";return a.append(i.text),a}))}var _a="b3-board-style",Ea=`
|
|
44
44
|
:where(b3-board){--b3-board-hit:var(--b3-d-control,var(--b3-touch,2.75rem));--b3-board-chip:var(--b3-d-control-small,2rem);
|
|
45
45
|
--b3-board-tag:var(--b3-color-accent);--b3-board-mention:var(--b3-color-info);--b3-board-star:var(--b3-color-warning);
|
|
46
46
|
--b3-board-line:color-mix(in srgb,var(--b3-color-border) 70%,transparent);--b3-board-soft:color-mix(in srgb,var(--b3-color-text) 5%,var(--b3-color-surface));}
|
package/dist/manifest.json
CHANGED