@livx.cc/bare-v3 0.1.0-alpha.149 → 0.1.0-alpha.151

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.
@@ -340,4 +340,4 @@ b3-board [data-b3-drop="before"]{box-shadow:0 -3px 0 -1px var(--b3-color-accent)
340
340
  `).map((d)=>di(d,o.schemes)).find((d)=>d.trim())?.trim()??(fr(l,o.schemes).some((d)=>typeof d!=="string"&&d.image)?"Image":"")},plain(s){return di(o.label(s),o.schemes)},rich(s,l){ka(s,String(l??""),o.schemes)},keyText(s,l,c,d){if(s.target!==s.currentTarget||s.key!=="Enter"&&s.key!==" ")return;s.preventDefault(),s.stopPropagation(),o.edit(l,c,d)},isOpen(s){let l=o.viewed[String(s.id)];return o.readonly&&l!==void 0?l:s.expanded??(o.hasDetails(s)&&dr(o.expandIn,o.columns.find((c)=>c.cards.some((d)=>x(d.id,s.id)))))},expanded(s){return String(o.isOpen(s))},isSelected(s){return x(o.selected,s.id)||o.picked.includes(String(s.id))},deleteLabel(s){let l=n.#b(s.id).length;return l>1?`Delete ${l}?`:"Delete?"},isEditing(s,l){return!!o.editing&&o.editing.field===s&&o.editing.id===l},focusEditor(s){queueMicrotask(()=>n.#K(s))},blurEditor(s,l){if(o.isEditing(s,l))o.commit()},tokens(){let s=new Set;for(let l of o.columns)for(let c of l.cards)for(let d of at(c))s.add(d);return[...s].sort()},visible(s){let l=pi(o.search);if(!o.filter.length&&!l.length)return s.cards;let c=o.editing&&n.#a(o.editing.id);return s.cards.filter((d)=>{if(d===c||o.kept.some((h)=>x(d.id,h)))return!0;let u=at(d),f=l.length?ya(d):"";return o.filter.every((h)=>u.includes(h))&&l.every((h)=>f.includes(h))})},count(s){let l=o.visible(s).length;return l===s.cards.length?String(l):`${l}/${s.cards.length}`},done(s){return C(s).filter((l)=>l.done).length},disclosable(s){return!!(o.hasDetails(s)||!o.readonly)},toggleFilter(s){o.kept=[],o.filter=o.filter.includes(s)?o.filter.filter((l)=>l!==s):[...o.filter,s]},setFilter(s){o.kept=[],o.filter=s},searchShown(){return o.searching||!!o.search},openSearch(){o.searching=!0;let s=n.querySelector(".b3-board-search-input");if(!s)return;s.hidden=!1,s.closest(".b3-board-filters").hidden=!1,s.focus(),s.select()},typeSearch(s){n.search=s.target.value},keySearch(s){if(s.isComposing||s.keyCode===229)return;if(s.key!=="Escape"&&s.key!=="Enter")return;s.preventDefault(),s.stopPropagation();let l=s.target;if(s.key==="Escape")l.value="",n.search="";l.blur()},blurSearch(){o.searching=!1},toggleStar(s){if(o.readonly)return;if(o.editing)o.commit();let l=a(s.id),c=l?.card;if(!l||!c)return;if(c.starred)delete c.starred;else c.starred=!0;l.column.cards=hi(l.column.cards);let d=!!c.starred;o.announcement=`${c.title??""} ${d?"starred":"unstarred"}`,i({type:"star",card:c.id,starred:d}),n.#I(c.id)},toggle(s){if(o.readonly){o.viewed={...o.viewed,[String(s.id)]:!o.isOpen(s)};return}s.expanded=!o.isOpen(s),i({type:"toggle",card:s.id,expanded:s.expanded})},edit(s,l,c,d=!1,u=!1,f=!1){if(o.readonly||n.#r?.started)return;if(o.editing&&!o.isEditing(s,l))o.commit();o.editing={field:s,id:l,draft:c??"",fresh:d,opened:u,atEnd:f},n.#F()},addDetails(s,l=!1){if(o.readonly)return;let c=!o.isOpen(s);s.expanded=!0,o.edit("description",s.id,String(s.description??""),!1,c,l)},keyEditor(s,l){if(s.stopPropagation(),s.key==="Escape")s.preventDefault(),o.cancel();else if(s.key==="Enter"&&!(l&&s.shiftKey)&&!s.isComposing)s.preventDefault(),o.commit(!0);else if(s.key==="Tab"&&!s.altKey&&!s.metaKey&&!s.ctrlKey&&!s.isComposing&&!n.hasAttribute("compact")){let c=o.editing,d=c?.field==="title"&&!s.shiftKey?"description":c?.field==="description"&&s.shiftKey?"title":null;if(!d)return;s.preventDefault(),o.commit();let u=n.#a(c.id);if(!u||o.readonly)return;if(d==="description")o.addDetails(u,!0);else o.edit("title",u.id,String(u.title??""))}},pasteEditor(s,l,c){let d=[...s.clipboardData?.files??[]].filter((u)=>u.type.startsWith("image/"));if(o.readonly||!n.upload||!["title","description","comment"].includes(l)||!d.length)return;if(s.clipboardData?.getData("text/plain").trim())return;s.preventDefault();for(let u of d)n.#u(c,u,l==="title"?null:s.target,l==="comment"?"comment":"description")},cancel(){let s=o.editing;if(o.editing=null,s?.fresh)o.discard(s);if(s?.opened)o.close(s);n.#R(s)},close(s){let l=n.#a(s.id);if(l&&!o.hasDetails(l))l.expanded=!1},commit(s=!1){let l=o.editing;if(!l)return;if(o.editing=null,o.readonly)return;let c=l.field==="description"||l.field==="comment"?l.draft.trim():l.draft.replace(/\s+/g," ").trim(),d=n.#a(l.id);if(!d)return;if(!c&&l.fresh)return o.discard(l);if(!c&&l.opened)o.close(l);let u=null;if(l.field==="comment"){let h=d;if(c){let b={id:Be(),at:new Date().toISOString(),by:n.getAttribute("author")||"you",text:c};h.comments=[...V(h),b],u={type:"comment",card:h.id,comment:b.id,op:"add"}}}else if(l.field==="name"){let h=d;if(c&&c!==h.name)h.name=c,u={type:"edit",column:h.id,field:"name"};if(l.fresh)u={type:"add",column:h.id}}else if(l.field==="subtask"){let h=d,b=C(h).find((p)=>x(p.id,l.id));if(!c)return o.removeSubtask(h,b);if(c!==b.title)b.title=c,u={type:"edit",card:h.id,field:"subtask",subtask:b.id};if(l.fresh)u={type:"subtask",card:h.id,subtask:b.id,op:"add"}}else{let h=d,b=l.field;if((c||b==="description")&&c!==(h[b]??""))h[b]=c,u={type:"edit",card:h.id,field:b};if(l.fresh)u={type:"add",card:h.id,column:a(h.id).column.id},o.kept=[...o.kept,h.id]}if(u)i(u);let f=n.#a(l.id)??d;if(l.fresh&&l.field==="subtask"&&s)o.addSubtask(f);else if(l.fresh&&l.field==="title"&&s&&!n.hasAttribute("compact"))o.addDetails(f,!0);else n.#R(l)},discard(s){si(o.columns,s)},settle(){if(o.editing)o.commit()},addCard(s){if(o.readonly)return;o.settle();let l={id:Be(),title:""};if(n.onTop(s)){let c=s.cards.findIndex((d)=>!d.starred);s.cards.splice(c<0?s.cards.length:c,0,l)}else s.cards.push(l);o.edit("title",l.id,"",!0)},addColumn(){if(o.readonly)return;o.settle();let s={id:Be(),name:"",cards:[]};o.columns.push(s),o.edit("name",s.id,"",!0)},addSubtask(s){if(o.readonly)return;o.settle();let l={id:Be(),title:"",done:!1};if(s.expanded=!0,!Array.isArray(s.subtasks))s.subtasks=[];s.subtasks.push(l),o.edit("subtask",l.id,"",!0)},removeCard(s,l){if(o.readonly)return;let c=n.#b(l.id);n.#M(()=>{for(let d of c){let u=a(d);if(!u)continue;u.column.cards=u.column.cards.filter((f)=>f!==u.card),i({type:"remove",card:u.card.id,column:u.column.id})}}),o.picked=[]},removeColumn(s){if(o.readonly)return;o.columns=o.columns.filter((l)=>l!==s),i({type:"remove",column:s.id})},removeSubtask(s,l){if(o.readonly)return;s.subtasks=C(s).filter((c)=>c!==l),i({type:"subtask",card:s.id,subtask:l.id,op:"remove"})},removeComment(s,l){if(o.readonly)return;s.comments=V(s).filter((c)=>c!==l),i({type:"comment",card:s.id,comment:l.id,op:"remove"})},check(s,l,c){if(o.readonly)return;l.done=c,i({type:"check",card:s.id,subtask:l.id,done:c})},keyTags(s){n.#Y(s)},keyCard(s,l){if(s.target!==s.currentTarget)return;if(s.key==="Enter")return s.preventDefault(),o.edit("title",l.id,l.title);if(s.metaKey||s.ctrlKey)return;if(s.key==="Escape"&&o.picked.length){s.preventDefault(),s.stopPropagation(),o.picked=[];return}if(!s.altKey)return void n.#V(s,l);if(o.readonly)return;let c=a(l.id);if(!c)return;let d=getComputedStyle(n).direction==="rtl",u={ArrowUp:-1,ArrowDown:1,ArrowLeft:d?1:-1,ArrowRight:d?-1:1}[s.key];if(!u)return;s.preventDefault();let f=n.#b(l.id);if(f.length>1)return void n.#D(s,l,f,u);if(s.key==="ArrowUp"||s.key==="ArrowDown"){let b=o.visible(c.column),p=b[b.indexOf(c.card)+u];if(p&&!p.starred===!l.starred)n.moveCard(l.id,c.column.id,c.column.cards.indexOf(p));else n.#L(s.currentTarget,u,!p?u<0?"Already first":"Already last":l.starred?"Starred cards stay above the others — unstar it to move it lower":"Starred cards stay on top — star it to move it among them");return}let h=o.columns[o.columns.indexOf(c.column)+u];if(h)n.moveCard(l.id,h.id,Math.min(c.index,h.cards.length));else n.#L(s.currentTarget,0,"No column there")},keySubtask(s,l,c){o.keyText(s,"subtask",c.id,c.title);let d=s.key==="ArrowUp"?-1:s.key==="ArrowDown"?1:0;if(!s.altKey||!d||o.readonly)return;s.preventDefault(),s.stopPropagation(),n.#P(l,c.id,C(l).indexOf(c)+d)},keyColumn(s,l){if(s.metaKey||s.ctrlKey||s.shiftKey)return;let c=getComputedStyle(n).direction==="rtl",d=s.key==="ArrowLeft"?c?1:-1:s.key==="ArrowRight"?c?-1:1:0;if(!s.altKey){let f=s.currentTarget.closest(".b3-board-column"),h=[...n.querySelectorAll(".b3-board-column")],b=s.key==="ArrowDown"?f.querySelector(".b3-board-card"):d?h[h.indexOf(f)+d]?.querySelector(".b3-board-column-name"):void 0;if(b===void 0)return;if(s.preventDefault(),b)n.#O(b);return}if(!d||o.readonly)return;s.preventDefault();let u=o.columns.indexOf(l)+d;if(u>=0&&u<o.columns.length)n.moveColumn(l.id,u)}});return o}async#u(e,t,r,n="description"){let i=this.#e,a=()=>i.editing?.field===n&&x(i.editing.id,e)?i.editing:null,o=`![Uploading image ${this.#E}-${++this.#A}…]()`,s="",l=a();if(l&&r){let{selectionStart:y,selectionEnd:k}=r;s=y&&r.value[y-1]!==`
341
341
  `?`
342
342
  ${o}`:o,l.draft=r.value=r.value.slice(0,y)+s+r.value.slice(k),r.setSelectionRange(y+s.length,y+s.length),this.#f(r)}let c=i.columns.find((y)=>y.cards.some((k)=>x(k.id,e))),d=null;try{d=await this.#w?.(t,{card:e,column:c?.id})}catch(y){console.warn("b3-board: image upload failed",y)}let u=d?`![](${String(d).replace(/[\s()]/g,(y)=>`%${y.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`)})`:"";if(!u)this.#s("Image not added");while(this.#x)await new Promise((y)=>this.#C.push(y));let f=(y)=>{if(!s)return null;let k=y.indexOf(s),M=k>=0?k:y.indexOf(o);if(M<0)return null;let j=k>=0?s:o;return[M,M+j.length,u?j.replace(o,u):""]},h=(y)=>{if(!s)return u?y.trim()?`${y.replace(/\s+$/,"")}
343
- ${u}`:u:y;let k=f(y);return k?y.slice(0,k[0])+k[2]+y.slice(k[1]):y},b=a();if(b){let y=this.querySelector("textarea.b3-board-editor"),k=y?.value===b.draft&&f(y.value);if(y&&k){let[M,j,lt]=k,{selectionStart:mi,selectionEnd:gi,selectionDirection:yi}=y,hr=(Ne)=>Ne>=j?Ne+lt.length-(j-M):Ne>M?M+lt.length:Ne;y.setRangeText(lt,M,j),y.setSelectionRange(hr(mi),hr(gi),yi??void 0),b.draft=y.value,this.#f(y)}else if(h(b.draft)!==b.draft)b.draft=h(b.draft);else if(u)this.#s("Image not added");return}if(n==="comment"){let y=i.columns.flatMap((M)=>M.cards).find((M)=>V(M).some((j)=>String(j.text??"").includes(o))),k=y&&V(y).find((M)=>String(M.text??"").includes(o));if(!y||!k||this.readonly){if(u)this.#s("Image not added");return}k.text=h(String(k.text)).trim(),this.#p({type:"edit",card:y.id,field:"comment",comment:k.id});return}let p=this.#a(e);if(s&&!String(p?.description??"").includes(o))p=i.columns.flatMap((y)=>y.cards).find((y)=>String(y.description??"").includes(o))??p;let m=String(p?.description??""),g=h(m).trim();if(!p||this.readonly||g===m.trim()){if(u)this.#s("Image not added");return}p.description=g,p.expanded=!0,this.#p({type:"edit",card:p.id,field:"description"});let S=p.id;requestAnimationFrame(()=>this.#f(this.querySelector(`[data-card="${CSS.escape(String(S))}"]`)))}#f(e){requestAnimationFrame(()=>e?.isConnected&&e.scrollIntoView({block:"nearest",inline:"nearest"}))}#s(e){let t=this.#e;t.announcement="",requestAnimationFrame(()=>{if(!t.announcement)t.announcement=e})}moveCard(e,t,r){let n=this.#e;if(!n||this.readonly)return!1;let i=n.columns.find((u)=>u.cards.some((f)=>x(f.id,e))),a=n.columns.find((u)=>x(u.id,t));if(!i||!a)return!1;let o=i.cards.findIndex((u)=>x(u.id,e)),[s]=i.cards.splice(o,1),l=a.cards.filter((u)=>u.starred).length,c=Math.max(0,Math.min(a.cards.length,r)),d=s.starred?Math.min(c,l):Math.max(c,l);if(a.cards.splice(d,0,s),i===a&&o===d)return!1;if(dr(n.expandIn,i)!==dr(n.expandIn,a))delete s.expanded;return n.announcement=`${s.title??""} moved to ${a.name??""}, position ${d+1} of ${a.cards.length}`,this.#p({type:"move",card:s.id,from:i.id,to:a.id,index:d}),this.#I(s.id),!0}#b(e){let t=this.#e,r=String(e);if(!t?.picked.length)return[r];let n=new Set([...t.picked,...t.selected!=null?[String(t.selected)]:[]]);if(!n.has(r))return[r];return t.columns.flatMap((i)=>i.cards.map((a)=>String(a.id)).filter((a)=>n.has(a)))}#v=!1;#M(e){let t=this.#l,r=t.now;this.#v=!0;try{e()}finally{this.#v=!1}if(r&&t.now!==r){if(t.past.push(r),t.past.length>100)t.past.shift();t.key=""}}#S(e,t,r){let n=this.#e,i=n.columns.find((o)=>x(o.id,t));if(!i)return;let a=0;if(this.#M(()=>{for(let o of e){let s=n.columns.find((c)=>c.cards.some((d)=>x(d.id,o))),l=r==null?i.cards.length:i.cards.findIndex((c)=>x(c.id,r));if(l<0)l=i.cards.length;if(s===i&&s.cards.findIndex((c)=>x(c.id,o))<l)l-=1;if(this.moveCard(o,i.id,l))a++}}),a)n.announcement=`${e.length} cards moved to ${i.name??""}`}#D(e,t,r,n){let i=this.#e,a=e.currentTarget,o=(l)=>i.columns.find((c)=>c.cards.some((d)=>x(d.id,l))),s=o(String(t.id));if(e.key==="ArrowUp"||e.key==="ArrowDown"){if(r.some((h)=>o(h)!==s))return this.#L(a,0,"The selected cards are in different columns");let l=i.visible(s),c=l.findIndex((h)=>x(h.id,n<0?r[0]:r.at(-1))),d=(h)=>l.slice(h).find((b)=>!r.includes(String(b.id))),u=n<0?l.slice(0,c).reverse().find((h)=>!r.includes(String(h.id))):d(c+1);if(!u)return this.#L(a,n,n<0?"Already first":"Already last");let f=n<0?u.id:s.cards[s.cards.indexOf(u)+1]?.id??null;this.#S(r,s.id,f)}else{let l=i.columns[i.columns.indexOf(s)+n];if(!l)return this.#L(a,0,"No column there");let c=o(r[0]).cards.findIndex((d)=>x(d.id,r[0]));this.#S(r,l.id,l.cards.filter((d)=>!r.includes(String(d.id)))[c]?.id??null)}this.#I(t.id)}moveColumn(e,t){let r=this.#e;if(!r||this.readonly)return!1;let n=r.columns.findIndex((o)=>x(o.id,e));if(n<0)return!1;let[i]=r.columns.splice(n,1),a=Math.max(0,Math.min(r.columns.length,t));if(r.columns.splice(a,0,i),n===a)return!1;return r.announcement=`${i.name??""} moved to position ${a+1} of ${r.columns.length}`,this.#p({type:"reorder",column:i.id,index:a}),queueMicrotask(()=>this.querySelector(`[data-column="${CSS.escape(String(i.id))}"] .b3-board-column-name`)?.focus()),!0}#P(e,t,r){let n=this.#e,i=C(e),a=i.findIndex((l)=>x(l.id,t));if(!n||this.readonly||a<0)return!1;let o=Math.max(0,Math.min(i.length-1,r));if(a===o)return!1;let[s]=i.splice(a,1);return i.splice(o,0,s),n.announcement=`${s.title??""} moved to position ${o+1} of ${i.length}`,this.#p({type:"subtask",card:e.id,subtask:s.id,op:"move",index:o}),requestAnimationFrame(()=>this.querySelector(`[data-subtask="${CSS.escape(String(s.id))}"] .b3-board-title`)?.focus()),!0}#K(e){if(!e.isConnected)return;if(e.focus({preventScroll:!0}),this.#e?.editing?.atEnd)e.setSelectionRange(e.value.length,e.value.length);else e.select();let t=e.closest(".b3-board-card-head")?e.closest(".b3-board-card"):e.closest(".b3-board-column-header")?e.closest(".b3-board-column"):e.parentElement?.matches(".b3-board-body")?e.parentElement:e,r=()=>t.scrollIntoView({block:"nearest",inline:"nearest"});requestAnimationFrame(r);let n=this.ownerDocument.defaultView;if(!n)return;let i=new AbortController,a=()=>({height:n.visualViewport?.height??n.innerHeight,scale:n.visualViewport?.scale??1}),o=a(),s=()=>{if(!e.isConnected||this.ownerDocument.activeElement!==e)return i.abort();let l=a(),c=l.scale===o.scale&&l.height<o.height;if(o=l,!c)return;if(r(),t!==e)e.scrollIntoView({block:"nearest",inline:"nearest"})};for(let l of[n,n.visualViewport])l?.addEventListener("resize",s,{signal:i.signal});e.addEventListener("blur",()=>i.abort(),{signal:i.signal,once:!0})}#F(){let e=this.ownerDocument,t=e.activeElement;if(!e.defaultView?.matchMedia("(pointer: coarse)").matches||t?.matches("textarea, input"))return;let r=this.#t?.querySelector(":scope > .b3-board-holder");if(!r)r=e.createElement("textarea"),r.className="b3-board-holder",r.tabIndex=-1,r.setAttribute("aria-hidden","true"),this.#t?.append(r);r.focus({preventScroll:!0}),requestAnimationFrame(()=>requestAnimationFrame(()=>{if(e.activeElement===r)r.blur()}))}#O(e){e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest",inline:"nearest"})}#V(e,t){let r=this.#e,n=e.currentTarget,i=(c)=>[...c.querySelectorAll(".b3-board-cards > .b3-board-card")],a=n.closest(".b3-board-column"),o=i(a),s=o.indexOf(n),l;if(e.shiftKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){if(e.preventDefault(),l=o[s+(e.key==="ArrowUp"?-1:1)],!l)return;let c=String(t.id),d=l.dataset.card;return r.picked=r.picked.includes(d)?r.picked.filter((u)=>u!==c&&u!==d):[...r.picked.filter((u)=>u!==c),c],this.#s(`${r.picked.length+1} cards selected`),void this.#O(l)}if(/^(Arrow|Home$|End$)/.test(e.key))r.picked=[];switch(e.key){case"ArrowUp":if(l=o[s-1],!l&&this.#W())return void e.preventDefault();break;case"ArrowDown":l=o[s+1];break;case"Home":l=o[0];break;case"End":l=o.at(-1);break;case"ArrowLeft":case"ArrowRight":{let c=[...this.querySelectorAll(".b3-board-column")],d=e.key==="ArrowLeft"!==(getComputedStyle(this).direction==="rtl")?-1:1;for(let u=c.indexOf(a)+d;u>=0&&u<c.length&&!l;u+=d){let f=i(c[u]);l=f[Math.min(s,f.length-1)]}break}case" ":if(e.preventDefault(),!this.hasAttribute("compact")&&r.disclosable(t))r.toggle(t);return;case"Delete":case"Backspace":{if(r.readonly||e.shiftKey)return;e.preventDefault();let c=this.#b(t.id),d=(f)=>f.find((h)=>!c.includes(h.dataset.card)),u=(d(o.slice(s+1))??d(o.slice(0,s).reverse()))?.dataset.card;n.querySelector(":scope > .b3-board-card-head .b3-board-remove")?.click(),requestAnimationFrame(()=>{if(n.isConnected)return;let f=u!==void 0&&this.querySelector(`[data-card="${CSS.escape(u)}"]`),h=this.querySelector(`[data-column="${CSS.escape(a.dataset.column??"")}"] .b3-board-column-name`),b=f||h;if(b)this.#O(b)});return}default:return}if(e.preventDefault(),l)this.#O(l)}#W(){let e=[...this.querySelectorAll(".b3-board-filters > .b3-board-chip")],t=e.find((r)=>r.textContent===this.#B)??e[0];return t?.focus(),!!t}#B=null;#Y(e){let t=e.target;if(!t.matches(".b3-board-chip")||e.altKey||e.metaKey||e.ctrlKey)return;let r=[...this.querySelectorAll(".b3-board-filters > .b3-board-chip")],n=r.indexOf(t);if(this.#B=t.textContent,e.key==="ArrowDown"||e.key==="Escape"){e.preventDefault(),this.focusCard();return}if(e.key===" "||e.key==="Enter"){if(e.preventDefault(),!e.repeat)t.click();return}if(e.key!=="ArrowLeft"&&e.key!=="ArrowRight")return;e.preventDefault();let i=e.key==="ArrowLeft"!==(getComputedStyle(this).direction==="rtl")?-1:1,a=r[n+i];if(a)this.#B=a.textContent,a.focus()}focusCard(e){let t=(n)=>n!=null&&this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(String(n))}"]`),r=t(e)||t(this.#e?.selected)||this.querySelector(".b3-board-cards > .b3-board-card");if(!r)return!1;return this.#O(r),!0}shortcuts=[];showShortcuts(e=!0){let t=this.#t;if(!t)return!1;let r=t.querySelector(":scope > .b3-board-keys");if(!e){if(r)this.focusCard(),r.remove();return!0}if(r)return!0;let n=/Mac|iP(hone|ad|od)/.test(this.ownerDocument.defaultView?.navigator.platform??""),i=n?"⌥":"Alt+",a=n?"⌘":"Ctrl+",o=[["↑ ↓","Previous / next card"],["↑ (top card)","Filter tags: ← → pick, Space toggle, ↓ back"],["← →","Card in the next column"],["Home End","First / last card"],["Space","Expand / collapse"],["Enter","Edit the title"],...this.readonly?[]:[["⇧↑ ⇧↓","Select more cards (moves and Delete act on all; Esc drops)"],[`${a}click ⇧click`,"Select cards with the mouse"],[`${i}↑ ${i}↓`,"Move the card up / down"],[`${i}← ${i}→`,"Move the card to the next column"],["Tab ⇧Tab","Editing: title ⇄ details"],["Delete","Delete the card (press twice)"],[`${a}Z ${n?"⇧⌘Z":"Ctrl+Y"}`,"Undo / redo"]],...this.shortcuts,["Esc","Cancel / close"],["?","This list"]];r=this.ownerDocument.createElement("div"),r.className="b3-board-keys",r.tabIndex=-1,r.setAttribute("role","dialog"),r.setAttribute("aria-label","Keyboard shortcuts");let s=this.ownerDocument.createElement("dl");for(let[l,c]of o){let d=this.ownerDocument.createElement("div"),u=this.ownerDocument.createElement("dt"),f=this.ownerDocument.createElement("dd");for(let h of l.split(" ")){let b=this.ownerDocument.createElement("kbd");b.textContent=h,u.append(b)}f.textContent=c,d.append(u,f),s.append(d)}return r.append(s),r.addEventListener("keydown",(l)=>{if(l.key!=="Escape"&&l.key!=="?")return;l.preventDefault(),l.stopPropagation(),this.showShortcuts(!1)}),r.addEventListener("focusout",(l)=>{if(!r.contains(l.relatedTarget))queueMicrotask(()=>r.remove())}),t.append(r),r.focus({preventScroll:!0}),!0}#J(){let e=this.ownerDocument.activeElement;if(!e?.matches(".b3-board-card")||!this.contains(e))return null;let t=e.closest(".b3-board-column");return{id:e.dataset.card,column:t.dataset.column,index:[...t.querySelectorAll(".b3-board-cards > .b3-board-card")].indexOf(e)}}#G(e){requestAnimationFrame(()=>{let t=this.ownerDocument.activeElement;if(t&&t!==this.ownerDocument.body&&t.isConnected)return;let r=[...this.querySelectorAll(`[data-column="${CSS.escape(e.column)}"] .b3-board-cards > .b3-board-card`)];(this.querySelector(`[data-card="${CSS.escape(e.id)}"]`)??r[Math.min(e.index,r.length-1)])?.focus({preventScroll:!0})})}#L(e,t,r){e.style.setProperty("--b3-board-bump",String(t)),e.removeAttribute("data-b3-bump"),e.offsetWidth,e.setAttribute("data-b3-bump",""),e.addEventListener("animationend",()=>e.removeAttribute("data-b3-bump"),{once:!0}),this.#s(r)}#$(){let e=this.ownerDocument,t=e.activeElement;if(!this.#N||!this.#e?.selected||t&&t!==e.body&&t!==e.documentElement)return;this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(String(this.#e.selected))}"]`)?.focus({preventScroll:!0})}#I(e){requestAnimationFrame(()=>this.querySelector(`[data-card="${CSS.escape(String(e))}"]`)?.focus({preventScroll:!1}))}#R(e){if(!e)return;let t=CSS.escape(String(e.id));requestAnimationFrame(()=>{if(this.contains(this.ownerDocument.activeElement)&&this.ownerDocument.activeElement!==this.ownerDocument.body)return;let r=e.field==="name"?`[data-column="${t}"] .b3-board-column-name`:e.field==="subtask"?null:`[data-card="${t}"]`;if(r)this.querySelector(r)?.focus({preventScroll:!0})})}#N=!1;#X(){this.#d?.abort(),this.#d=new AbortController;let e=this.#d.signal,t=this.ownerDocument.defaultView,r=t.setInterval(()=>{if(this.#e)this.#e.now=Date.now()},60000);e.addEventListener("abort",()=>t.clearInterval(r)),this.addEventListener("pointerdown",(s)=>this.#ee(s),{signal:e}),this.addEventListener("mousedown",(s)=>{if(this.#e?.editing&&s.target.closest?.(".b3-board-actions > button, .b3-board-star")&&this.contains(this.ownerDocument.activeElement))s.preventDefault()},{signal:e,capture:!0}),t.addEventListener("pointermove",(s)=>this.#te(s),{signal:e}),t.addEventListener("pointerup",(s)=>this.#re(s),{signal:e}),t.addEventListener("pointercancel",(s)=>{if(s.pointerId===this.#r?.pointerId)this.#m()},{signal:e}),t.addEventListener("keydown",(s)=>{if(s.key==="Escape"&&this.#r?.started)s.preventDefault(),this.#m()},{signal:e}),this.addEventListener("touchmove",(s)=>{if(this.#r?.started)s.preventDefault()},{signal:e,passive:!1}),this.addEventListener("contextmenu",(s)=>{if(this.#r)s.preventDefault()},{signal:e}),this.addEventListener("focusin",(s)=>{let l=s.target,c=l.parentElement;if(!c?.matches(".b3-board-filters"))return;c.style.scrollPaddingInlineEnd=`${c.querySelector(":scope > .b3-board-search")?.offsetWidth??0}px`,l.scrollIntoView({inline:"nearest",block:"nearest"})},{signal:e}),this.addEventListener("focusin",(s)=>{this.#N=!0;let l=s.target.closest?.(".b3-board-card"),c=this.#e;if(!l||!c||!this.contains(l))return;let d=l.dataset.card??null;if(d!=null&&c.picked.includes(d)&&c.selected!=null)c.picked=[...c.picked.filter((u)=>u!==d),String(c.selected)];c.selected=d},{signal:e}),this.addEventListener("focusout",(s)=>{let l=s.relatedTarget;if(l&&!this.contains(l)){this.#N=!1;return}if(!l)requestAnimationFrame(()=>requestAnimationFrame(()=>this.#$()))},{signal:e}),t.addEventListener("focus",()=>queueMicrotask(()=>this.#$()),{signal:e}),this.addEventListener("click",(s)=>{let l=this.ownerDocument.getSelection(),c=s.target;if(!this.#y&&l&&!l.isCollapsed&&(c.contains(l.anchorNode)||l.containsNode(c,!0))&&!c.closest?.("button, .b3-board-grip, .b3-board-card-head>.b3-board-title")){s.preventDefault(),s.stopImmediatePropagation();return}if(!this.#y)return;this.#y=!1,s.preventDefault(),s.stopImmediatePropagation()},{signal:e,capture:!0});let n='button, a, input, textarea, select, [contenteditable]:not([contenteditable="false"])',i=(s)=>{let l=s.target,c=l.closest?.(".b3-board-card");return c&&this.contains(c)&&!l.closest(n)&&(s.metaKey||s.ctrlKey||s.shiftKey)&&!s.altKey?c:null};this.addEventListener("mousedown",(s)=>{if(i(s))s.preventDefault()},{signal:e,capture:!0}),this.addEventListener("click",(s)=>{let l=this.#e,c=i(s);if(!l)return;if(!c){if(l.picked.length&&s.target.closest?.(".b3-board-card")&&!s.target.closest(n))l.picked=[];return}s.preventDefault(),s.stopImmediatePropagation();let d=c.dataset.card,u=l.selected!=null?String(l.selected):null,f=new Set(l.picked);if(s.shiftKey&&u!=null){let h=[...c.closest(".b3-board-cards").querySelectorAll(":scope > .b3-board-card")].map((m)=>m.dataset.card),b=h.indexOf(u),p=h.indexOf(d);for(let m of b<0?[u]:h.slice(Math.min(b,p),Math.max(b,p)+1))f.add(m)}else if(d===u||f.has(d)){f.delete(d);let h=[...f].at(-1);if(d===u&&h!==void 0)return f.delete(h),l.picked=[...f],void this.focusCard(h);l.picked=[...f];return}else if(u!=null)f.add(u);f.delete(d),l.picked=[...f],this.#s(`${f.size+1} cards selected`),c.focus({preventScroll:!0})},{signal:e,capture:!0}),this.addEventListener("keydown",(s)=>{if(s.key!=="?"||s.defaultPrevented||s.metaKey||s.ctrlKey||s.altKey||s.isComposing)return;if(s.target.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"]), .b3-board-keys'))return;s.preventDefault(),this.showShortcuts()},{signal:e}),this.addEventListener("keydown",(s)=>{if(s.defaultPrevented||s.altKey||!(s.metaKey||s.ctrlKey))return;if(s.target.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"])'))return;let l=s.key.toLowerCase(),c=l==="y"||l==="z"&&s.shiftKey;if(l!=="z"&&l!=="y")return;if(s.preventDefault(),c)this.redo();else this.undo()},{signal:e});let a=(s)=>this.#Z(s);this.addEventListener("click",a,{signal:e,capture:!0}),this.addEventListener("auxclick",(s)=>{if(s.button===1)a(s)},{signal:e,capture:!0});let o=()=>this.#H();this.addEventListener("compositionstart",()=>{this.#x=!0},{signal:e}),this.addEventListener("compositionend",o,{signal:e}),this.addEventListener("focusout",o,{signal:e})}#H(){this.#x=!1;for(let e of this.#C.splice(0))e()}#Z(e){let t=e.target.closest?.("a.b3-board-ref");if(!t||!this.contains(t))return;e.stopPropagation();let r=(c)=>t.closest(c),n=this.#e?.columns.find((c)=>x(c.id,r("[data-column]")?.dataset.column)),i=n?.cards.find((c)=>x(c.id,r("[data-card]")?.dataset.card)),a=i&&C(i).find((c)=>x(c.id,r("[data-subtask]")?.dataset.subtask)),o={href:t.dataset.href??"",text:t.textContent??"",file:t.hasAttribute("data-file"),newTab:e.metaKey||e.ctrlKey||e.shiftKey||e.button===1,card:i?.id,column:n?.id};if(a)o.subtask=a.id;let s=t.querySelector("img");if(s&&!o.newTab&&e.type==="click"){e.preventDefault(),this.#Q(t,s,o);return}if(!t.dispatchEvent(new CustomEvent("b3-link",{bubbles:!0,cancelable:!0,detail:o}))||o.file)e.preventDefault()}#Q(e,t,r){let n=this.ownerDocument;n.body.querySelector(":scope > .b3-board-lightbox")?.dispatchEvent(new CustomEvent("b3-close")),ar();let i=n.createElement("b3-image-viewer");i.className="b3-board-lightbox",i.setAttribute("alt",t.alt||"Image"),i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true");let a=n.createElement("img");a.src=t.currentSrc||t.src,a.alt=t.alt;let o=n.createElement("button");o.type="button",o.className="b3-board-lightbox-open",o.textContent="Open",i.append(a,o);let s=n.activeElement,l=[...n.body.children].filter((d)=>d instanceof HTMLElement&&!d.inert),c=()=>{i.remove();for(let d of l)d.inert=!1;if(e.isConnected)e.focus({preventScroll:!0});else s?.focus?.({preventScroll:!0})};i.addEventListener("b3-close",c),i.addEventListener("click",(d)=>{if(d.target===i)c()}),o.addEventListener("pointerdown",(d)=>d.stopPropagation()),o.addEventListener("click",(d)=>{if(d.stopPropagation(),c(),e.dispatchEvent(new CustomEvent("b3-link",{bubbles:!0,cancelable:!0,detail:{...r}}))&&!r.file)this.ownerDocument.defaultView?.open(r.href,"_blank","noopener")}),n.body.append(i);for(let d of l)d.inert=!0;i.setAttribute("open",""),i.focus({preventScroll:!0})}#ee(e){if(this.readonly||this.#r||!e.isPrimary||e.button!==0||this.#e?.editing)return;let t=e.target,r=t.closest(".b3-board-subtask-grip")?.closest(".b3-board-subtask"),n;if(r)n={kind:"subtask",id:r.dataset.subtask,card:r.closest(".b3-board-card").dataset.card,node:r,pointerId:e.pointerId,x:e.clientX,y:e.clientY,started:!1,hold:0};else{if(t.closest("input, textarea, select, a, .b3-board-quiet, .b3-board-chip, .b3-board-link, .b3-board-toggle, .b3-board-description"))return;let i=t.closest(".b3-board-grip, .b3-board-card-head>.b3-board-title")?t.closest(".b3-board-card"):null;if(!i&&t.closest(".b3-board-card"))return;let a=!i&&t.closest(".b3-board-column-header")?t.closest(".b3-board-column"):null,o=i??a;if(!o)return;if(n={kind:i?"card":"column",id:i?i.dataset.card:a.dataset.column,node:o,pointerId:e.pointerId,x:e.clientX,y:e.clientY,started:!1,hold:0},i)n.ids=this.#b(n.id)}if(!this.contains(n.node))return;if(this.#r=n,e.pointerType!=="mouse")n.hold=window.setTimeout(()=>{if(this.#r===n)this.#z(e.clientX,e.clientY)},ba)}#z(e,t){let r=this.#r;r.started=!0;let n=r.node.getBoundingClientRect(),i=r.node.cloneNode(!0);i.classList.add("b3-board-ghost"),i.removeAttribute("data-b3-dragging");for(let o of[i,...i.querySelectorAll("[id]")])o.removeAttribute("id");i.setAttribute("aria-hidden","true"),Object.assign(i.style,{inlineSize:`${n.width}px`,left:`${n.left}px`,top:`${n.top}px`}),r.dx=e-n.left,r.dy=t-n.top,r.ghost=i,this.#t.append(i),r.node.setAttribute("data-b3-dragging","");for(let o of this.#j(r))o.setAttribute("data-b3-dragging","");if((r.ids?.length??0)>1)i.dataset.b3Count=String(r.ids.length);this.ownerDocument.getSelection()?.removeAllRanges(),r.px=e,r.py=t;let a=()=>{if(this.#r!==r)return;this.#ie(r.px,r.py),this.#ne(this.#U(r.px,r.py)),r.frame=requestAnimationFrame(a)};r.frame=requestAnimationFrame(a)}#te(e){let t=this.#r;if(!t||e.pointerId!==t.pointerId)return;if(!t.started){let r=Math.hypot(e.clientX-t.x,e.clientY-t.y);if(e.pointerType!=="mouse"){if(r>8)this.#m();return}if(r<5)return;this.#z(e.clientX,e.clientY)}e.preventDefault(),t.ghost.style.left=`${e.clientX-t.dx}px`,t.ghost.style.top=`${e.clientY-t.dy}px`,t.px=e.clientX,t.py=e.clientY}#re(e){let t=this.#r;if(!t||e.pointerId!==t.pointerId)return;if(!t.started)return this.#m();let r=this.#U(e.clientX,e.clientY);if(this.#m(),this.#y=!0,setTimeout(()=>{this.#y=!1},0),!r)return;let n=this.#e;if(t.kind==="card")this.#S(t.ids??[t.id],r.column,r.before),this.#I(t.id);else if(t.kind==="subtask"){let i=this.#a(t.card);if(!i)return;let a=C(i),o=r.before?a.findIndex((s)=>x(s.id,r.before)):a.length;if(a.findIndex((s)=>x(s.id,t.id))<o)o-=1;this.#P(i,t.id,o)}else{let i=r.before?n.columns.findIndex((o)=>x(o.id,r.before)):n.columns.length;if(n.columns.findIndex((o)=>x(o.id,t.id))<i)i-=1;this.moveColumn(t.id,i)}}#U(e,t){let r=this.#r,n=this.ownerDocument.elementFromPoint(e,t);if(!n||!this.contains(n))return null;if(r.kind==="card"){let l=this.#q(e,n);if(!l)return null;let c=l.querySelector(".b3-board-cards"),d=[...c.querySelectorAll(":scope > .b3-board-card:not([data-b3-dragging])")],u=d.find((h)=>{let b=h.getBoundingClientRect();return t<b.top+b.height/2}),f=(h)=>!!(h!=null&&this.#a(h)?.starred);if(f(u?.dataset.card)!==f(r.id)&&(u||f(r.id)))u=d.find((h)=>!f(h.dataset.card));return{column:l.dataset.column,before:u?.dataset.card??null,list:c}}if(r.kind==="subtask"){let l=r.node.parentElement;return{column:"",before:[...l.querySelectorAll(":scope > .b3-board-subtask:not([data-b3-dragging])")].find((u)=>{let f=u.getBoundingClientRect();return t<f.top+f.height/2})?.dataset.subtask??null,list:l}}let i=this.querySelector(".b3-board-columns"),a=[...i.querySelectorAll(":scope > .b3-board-column:not([data-b3-dragging])")],o=getComputedStyle(this).direction==="rtl";return{column:"",before:a.find((l)=>{let c=l.getBoundingClientRect();return o?e>c.left+c.width/2:e<c.left+c.width/2})?.dataset.column??null,list:i}}#ne(e){for(let n of this.querySelectorAll("[data-b3-drop]"))n.removeAttribute("data-b3-drop");if(!e)return;let t=`[data-${this.#r.kind}="${CSS.escape(e.before??"")}"]`,r=e.before?e.list.querySelector(t):null;(r??e.list).setAttribute("data-b3-drop",r?"before":"end")}#q(e,t){return t?.closest(".b3-board-column")??[...this.querySelectorAll(".b3-board-column")].find((r)=>{let n=r.getBoundingClientRect();return e>=n.left&&e<=n.right})}#ie(e,t){let r=(o,s,l)=>o<s+40?-12:o>l-40?12:0,n=this.querySelector(".b3-board-columns");if(n){let o=n.getBoundingClientRect();n.scrollLeft+=r(e,o.left,o.right)}let i=this.#r?.kind==="card"?this.#q(e,this.ownerDocument.elementFromPoint(e,t))?.querySelector(".b3-board-cards"):null;if(i&&i.scrollHeight>i.clientHeight){let o=i.getBoundingClientRect();i.scrollTop+=r(t,o.top,o.bottom)}let a=this.ownerDocument.defaultView;a.scrollBy(0,r(t,0,a.innerHeight))}#j(e){return(e.ids??[]).map((t)=>this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(t)}"]`)).filter((t)=>!!t)}#m(){let e=this.#r;if(!e)return;this.#r=null,clearTimeout(e.hold),cancelAnimationFrame(e.frame??0),e.ghost?.remove(),e.node.removeAttribute("data-b3-dragging");for(let t of this.#j(e))t.removeAttribute("data-b3-dragging");for(let t of this.querySelectorAll("[data-b3-drop]"))t.removeAttribute("data-b3-drop")}}br("b3-board",bi);export{bi as B3Board};
343
+ ${u}`:u:y;let k=f(y);return k?y.slice(0,k[0])+k[2]+y.slice(k[1]):y},b=a();if(b){let y=this.querySelector("textarea.b3-board-editor"),k=y?.value===b.draft&&f(y.value);if(y&&k){let[M,j,lt]=k,{selectionStart:mi,selectionEnd:gi,selectionDirection:yi}=y,hr=(Ne)=>Ne>=j?Ne+lt.length-(j-M):Ne>M?M+lt.length:Ne;y.setRangeText(lt,M,j),y.setSelectionRange(hr(mi),hr(gi),yi??void 0),b.draft=y.value,this.#f(y)}else if(h(b.draft)!==b.draft)b.draft=h(b.draft);else if(u)this.#s("Image not added");return}if(n==="comment"){let y=i.columns.flatMap((M)=>M.cards).find((M)=>V(M).some((j)=>String(j.text??"").includes(o))),k=y&&V(y).find((M)=>String(M.text??"").includes(o));if(!y||!k||this.readonly){if(u)this.#s("Image not added");return}k.text=h(String(k.text)).trim(),this.#p({type:"edit",card:y.id,field:"comment",comment:k.id});return}let p=this.#a(e);if(s&&!String(p?.description??"").includes(o))p=i.columns.flatMap((y)=>y.cards).find((y)=>String(y.description??"").includes(o))??p;let m=String(p?.description??""),g=h(m).trim();if(!p||this.readonly||g===m.trim()){if(u)this.#s("Image not added");return}p.description=g,p.expanded=!0,this.#p({type:"edit",card:p.id,field:"description"});let S=p.id;requestAnimationFrame(()=>this.#f(this.querySelector(`[data-card="${CSS.escape(String(S))}"]`)))}#f(e){requestAnimationFrame(()=>e?.isConnected&&e.scrollIntoView({block:"nearest",inline:"nearest"}))}#s(e){let t=this.#e;t.announcement="",requestAnimationFrame(()=>{if(!t.announcement)t.announcement=e})}moveCard(e,t,r){let n=this.#e;if(!n||this.readonly)return!1;let i=n.columns.find((u)=>u.cards.some((f)=>x(f.id,e))),a=n.columns.find((u)=>x(u.id,t));if(!i||!a)return!1;let o=i.cards.findIndex((u)=>x(u.id,e)),[s]=i.cards.splice(o,1),l=a.cards.filter((u)=>u.starred).length,c=Math.max(0,Math.min(a.cards.length,r)),d=s.starred?Math.min(c,l):Math.max(c,l);if(a.cards.splice(d,0,s),i===a&&o===d)return!1;if(dr(n.expandIn,i)!==dr(n.expandIn,a))delete s.expanded;return n.announcement=`${s.title??""} moved to ${a.name??""}, position ${d+1} of ${a.cards.length}`,this.#p({type:"move",card:s.id,from:i.id,to:a.id,index:d}),this.#I(s.id),!0}#b(e){let t=this.#e,r=String(e);if(!t?.picked.length)return[r];let n=new Set([...t.picked,...t.selected!=null?[String(t.selected)]:[]]);if(!n.has(r))return[r];return t.columns.flatMap((i)=>i.cards.map((a)=>String(a.id)).filter((a)=>n.has(a)))}#v=!1;#M(e){let t=this.#l,r=t.now;this.#v=!0;try{e()}finally{this.#v=!1}if(r&&t.now!==r){if(t.past.push(r),t.past.length>100)t.past.shift();t.key=""}}#S(e,t,r){let n=this.#e,i=()=>n.columns.find((o)=>x(o.id,t));if(!i())return;let a=0;if(this.#M(()=>{for(let o of e){let s=i();if(!s)return;let l=n.columns.find((d)=>d.cards.some((u)=>x(u.id,o))),c=r==null?s.cards.length:s.cards.findIndex((d)=>x(d.id,r));if(c<0)c=s.cards.length;if(l===s&&l.cards.findIndex((d)=>x(d.id,o))<c)c-=1;if(this.moveCard(o,s.id,c))a++}}),a)n.announcement=`${e.length} cards moved to ${i()?.name??""}`}#D(e,t,r,n){let i=this.#e,a=e.currentTarget,o=(l)=>i.columns.find((c)=>c.cards.some((d)=>x(d.id,l))),s=o(String(t.id));if(e.key==="ArrowUp"||e.key==="ArrowDown"){if(r.some((h)=>o(h)!==s))return this.#L(a,0,"The selected cards are in different columns");let l=i.visible(s),c=l.findIndex((h)=>x(h.id,n<0?r[0]:r.at(-1))),d=(h)=>l.slice(h).find((b)=>!r.includes(String(b.id))),u=n<0?l.slice(0,c).reverse().find((h)=>!r.includes(String(h.id))):d(c+1);if(!u)return this.#L(a,n,n<0?"Already first":"Already last");let f=n<0?u.id:s.cards[s.cards.indexOf(u)+1]?.id??null;this.#S(r,s.id,f)}else{let l=i.columns[i.columns.indexOf(s)+n];if(!l)return this.#L(a,0,"No column there");let c=o(r[0]).cards.findIndex((d)=>x(d.id,r[0]));this.#S(r,l.id,l.cards.filter((d)=>!r.includes(String(d.id)))[c]?.id??null)}this.#I(t.id)}moveColumn(e,t){let r=this.#e;if(!r||this.readonly)return!1;let n=r.columns.findIndex((o)=>x(o.id,e));if(n<0)return!1;let[i]=r.columns.splice(n,1),a=Math.max(0,Math.min(r.columns.length,t));if(r.columns.splice(a,0,i),n===a)return!1;return r.announcement=`${i.name??""} moved to position ${a+1} of ${r.columns.length}`,this.#p({type:"reorder",column:i.id,index:a}),queueMicrotask(()=>this.querySelector(`[data-column="${CSS.escape(String(i.id))}"] .b3-board-column-name`)?.focus()),!0}#P(e,t,r){let n=this.#e,i=C(e),a=i.findIndex((l)=>x(l.id,t));if(!n||this.readonly||a<0)return!1;let o=Math.max(0,Math.min(i.length-1,r));if(a===o)return!1;let[s]=i.splice(a,1);return i.splice(o,0,s),n.announcement=`${s.title??""} moved to position ${o+1} of ${i.length}`,this.#p({type:"subtask",card:e.id,subtask:s.id,op:"move",index:o}),requestAnimationFrame(()=>this.querySelector(`[data-subtask="${CSS.escape(String(s.id))}"] .b3-board-title`)?.focus()),!0}#K(e){if(!e.isConnected)return;if(e.focus({preventScroll:!0}),this.#e?.editing?.atEnd)e.setSelectionRange(e.value.length,e.value.length);else e.select();let t=e.closest(".b3-board-card-head")?e.closest(".b3-board-card"):e.closest(".b3-board-column-header")?e.closest(".b3-board-column"):e.parentElement?.matches(".b3-board-body")?e.parentElement:e,r=()=>t.scrollIntoView({block:"nearest",inline:"nearest"});requestAnimationFrame(r);let n=this.ownerDocument.defaultView;if(!n)return;let i=new AbortController,a=()=>({height:n.visualViewport?.height??n.innerHeight,scale:n.visualViewport?.scale??1}),o=a(),s=()=>{if(!e.isConnected||this.ownerDocument.activeElement!==e)return i.abort();let l=a(),c=l.scale===o.scale&&l.height<o.height;if(o=l,!c)return;if(r(),t!==e)e.scrollIntoView({block:"nearest",inline:"nearest"})};for(let l of[n,n.visualViewport])l?.addEventListener("resize",s,{signal:i.signal});e.addEventListener("blur",()=>i.abort(),{signal:i.signal,once:!0})}#F(){let e=this.ownerDocument,t=e.activeElement;if(!e.defaultView?.matchMedia("(pointer: coarse)").matches||t?.matches("textarea, input"))return;let r=this.#t?.querySelector(":scope > .b3-board-holder");if(!r)r=e.createElement("textarea"),r.className="b3-board-holder",r.tabIndex=-1,r.setAttribute("aria-hidden","true"),this.#t?.append(r);r.focus({preventScroll:!0}),requestAnimationFrame(()=>requestAnimationFrame(()=>{if(e.activeElement===r)r.blur()}))}#O(e){e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest",inline:"nearest"})}#V(e,t){let r=this.#e,n=e.currentTarget,i=(c)=>[...c.querySelectorAll(".b3-board-cards > .b3-board-card")],a=n.closest(".b3-board-column"),o=i(a),s=o.indexOf(n),l;if(e.shiftKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){if(e.preventDefault(),l=o[s+(e.key==="ArrowUp"?-1:1)],!l)return;let c=String(t.id),d=l.dataset.card;return r.picked=r.picked.includes(d)?r.picked.filter((u)=>u!==c&&u!==d):[...r.picked.filter((u)=>u!==c),c],this.#s(`${r.picked.length+1} cards selected`),void this.#O(l)}if(/^(Arrow|Home$|End$)/.test(e.key))r.picked=[];switch(e.key){case"ArrowUp":if(l=o[s-1],!l&&this.#W())return void e.preventDefault();break;case"ArrowDown":l=o[s+1];break;case"Home":l=o[0];break;case"End":l=o.at(-1);break;case"ArrowLeft":case"ArrowRight":{let c=[...this.querySelectorAll(".b3-board-column")],d=e.key==="ArrowLeft"!==(getComputedStyle(this).direction==="rtl")?-1:1;for(let u=c.indexOf(a)+d;u>=0&&u<c.length&&!l;u+=d){let f=i(c[u]);l=f[Math.min(s,f.length-1)]}break}case" ":if(e.preventDefault(),!this.hasAttribute("compact")&&r.disclosable(t))r.toggle(t);return;case"Delete":case"Backspace":{if(r.readonly||e.shiftKey)return;e.preventDefault();let c=this.#b(t.id),d=(f)=>f.find((h)=>!c.includes(h.dataset.card)),u=(d(o.slice(s+1))??d(o.slice(0,s).reverse()))?.dataset.card;n.querySelector(":scope > .b3-board-card-head .b3-board-remove")?.click(),requestAnimationFrame(()=>{if(n.isConnected)return;let f=u!==void 0&&this.querySelector(`[data-card="${CSS.escape(u)}"]`),h=this.querySelector(`[data-column="${CSS.escape(a.dataset.column??"")}"] .b3-board-column-name`),b=f||h;if(b)this.#O(b)});return}default:return}if(e.preventDefault(),l)this.#O(l)}#W(){let e=[...this.querySelectorAll(".b3-board-filters > .b3-board-chip")],t=e.find((r)=>r.textContent===this.#B)??e[0];return t?.focus(),!!t}#B=null;#Y(e){let t=e.target;if(!t.matches(".b3-board-chip")||e.altKey||e.metaKey||e.ctrlKey)return;let r=[...this.querySelectorAll(".b3-board-filters > .b3-board-chip")],n=r.indexOf(t);if(this.#B=t.textContent,e.key==="ArrowDown"||e.key==="Escape"){e.preventDefault(),this.focusCard();return}if(e.key===" "||e.key==="Enter"){if(e.preventDefault(),!e.repeat)t.click();return}if(e.key!=="ArrowLeft"&&e.key!=="ArrowRight")return;e.preventDefault();let i=e.key==="ArrowLeft"!==(getComputedStyle(this).direction==="rtl")?-1:1,a=r[n+i];if(a)this.#B=a.textContent,a.focus()}focusCard(e){let t=(n)=>n!=null&&this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(String(n))}"]`),r=t(e)||t(this.#e?.selected)||this.querySelector(".b3-board-cards > .b3-board-card");if(!r)return!1;return this.#O(r),!0}shortcuts=[];showShortcuts(e=!0){let t=this.#t;if(!t)return!1;let r=t.querySelector(":scope > .b3-board-keys");if(!e){if(r)this.focusCard(),r.remove();return!0}if(r)return!0;let n=/Mac|iP(hone|ad|od)/.test(this.ownerDocument.defaultView?.navigator.platform??""),i=n?"⌥":"Alt+",a=n?"⌘":"Ctrl+",o=[["↑ ↓","Previous / next card"],["↑ (top card)","Filter tags: ← → pick, Space toggle, ↓ back"],["← →","Card in the next column"],["Home End","First / last card"],["Space","Expand / collapse"],["Enter","Edit the title"],...this.readonly?[]:[["⇧↑ ⇧↓","Select more cards (moves and Delete act on all; Esc drops)"],[`${a}click ⇧click`,"Select cards with the mouse"],[`${i}↑ ${i}↓`,"Move the card up / down"],[`${i}← ${i}→`,"Move the card to the next column"],["Tab ⇧Tab","Editing: title ⇄ details"],["Delete","Delete the card (press twice)"],[`${a}Z ${n?"⇧⌘Z":"Ctrl+Y"}`,"Undo / redo"]],...this.shortcuts,["Esc","Cancel / close"],["?","This list"]];r=this.ownerDocument.createElement("div"),r.className="b3-board-keys",r.tabIndex=-1,r.setAttribute("role","dialog"),r.setAttribute("aria-label","Keyboard shortcuts");let s=this.ownerDocument.createElement("dl");for(let[l,c]of o){let d=this.ownerDocument.createElement("div"),u=this.ownerDocument.createElement("dt"),f=this.ownerDocument.createElement("dd");for(let h of l.split(" ")){let b=this.ownerDocument.createElement("kbd");b.textContent=h,u.append(b)}f.textContent=c,d.append(u,f),s.append(d)}return r.append(s),r.addEventListener("keydown",(l)=>{if(l.key!=="Escape"&&l.key!=="?")return;l.preventDefault(),l.stopPropagation(),this.showShortcuts(!1)}),r.addEventListener("focusout",(l)=>{if(!r.contains(l.relatedTarget))queueMicrotask(()=>r.remove())}),t.append(r),r.focus({preventScroll:!0}),!0}#J(){let e=this.ownerDocument.activeElement;if(!e?.matches(".b3-board-card")||!this.contains(e))return null;let t=e.closest(".b3-board-column");return{id:e.dataset.card,column:t.dataset.column,index:[...t.querySelectorAll(".b3-board-cards > .b3-board-card")].indexOf(e)}}#G(e){requestAnimationFrame(()=>{let t=this.ownerDocument.activeElement;if(t&&t!==this.ownerDocument.body&&t.isConnected)return;let r=[...this.querySelectorAll(`[data-column="${CSS.escape(e.column)}"] .b3-board-cards > .b3-board-card`)];(this.querySelector(`[data-card="${CSS.escape(e.id)}"]`)??r[Math.min(e.index,r.length-1)])?.focus({preventScroll:!0})})}#L(e,t,r){e.style.setProperty("--b3-board-bump",String(t)),e.removeAttribute("data-b3-bump"),e.offsetWidth,e.setAttribute("data-b3-bump",""),e.addEventListener("animationend",()=>e.removeAttribute("data-b3-bump"),{once:!0}),this.#s(r)}#$(){let e=this.ownerDocument,t=e.activeElement;if(!this.#N||!this.#e?.selected||t&&t!==e.body&&t!==e.documentElement)return;this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(String(this.#e.selected))}"]`)?.focus({preventScroll:!0})}#I(e){requestAnimationFrame(()=>this.querySelector(`[data-card="${CSS.escape(String(e))}"]`)?.focus({preventScroll:!1}))}#R(e){if(!e)return;let t=CSS.escape(String(e.id));requestAnimationFrame(()=>{if(this.contains(this.ownerDocument.activeElement)&&this.ownerDocument.activeElement!==this.ownerDocument.body)return;let r=e.field==="name"?`[data-column="${t}"] .b3-board-column-name`:e.field==="subtask"?null:`[data-card="${t}"]`;if(r)this.querySelector(r)?.focus({preventScroll:!0})})}#N=!1;#X(){this.#d?.abort(),this.#d=new AbortController;let e=this.#d.signal,t=this.ownerDocument.defaultView,r=t.setInterval(()=>{if(this.#e)this.#e.now=Date.now()},60000);e.addEventListener("abort",()=>t.clearInterval(r)),this.addEventListener("pointerdown",(s)=>this.#ee(s),{signal:e}),this.addEventListener("mousedown",(s)=>{if(this.#e?.editing&&s.target.closest?.(".b3-board-actions > button, .b3-board-star")&&this.contains(this.ownerDocument.activeElement))s.preventDefault()},{signal:e,capture:!0}),t.addEventListener("pointermove",(s)=>this.#te(s),{signal:e}),t.addEventListener("pointerup",(s)=>this.#re(s),{signal:e}),this.ownerDocument.addEventListener("selectstart",(s)=>{if(this.#r)s.preventDefault()},{signal:e}),t.addEventListener("pointercancel",(s)=>{if(s.pointerId===this.#r?.pointerId)this.#m()},{signal:e}),t.addEventListener("keydown",(s)=>{if(s.key==="Escape"&&this.#r?.started)s.preventDefault(),this.#m()},{signal:e}),this.addEventListener("touchmove",(s)=>{if(this.#r?.started)s.preventDefault()},{signal:e,passive:!1}),this.addEventListener("contextmenu",(s)=>{if(this.#r)s.preventDefault()},{signal:e}),this.addEventListener("focusin",(s)=>{let l=s.target,c=l.parentElement;if(!c?.matches(".b3-board-filters"))return;c.style.scrollPaddingInlineEnd=`${c.querySelector(":scope > .b3-board-search")?.offsetWidth??0}px`,l.scrollIntoView({inline:"nearest",block:"nearest"})},{signal:e}),this.addEventListener("focusin",(s)=>{this.#N=!0;let l=s.target.closest?.(".b3-board-card"),c=this.#e;if(!l||!c||!this.contains(l))return;let d=l.dataset.card??null;if(d!=null&&c.picked.includes(d)&&c.selected!=null)c.picked=[...c.picked.filter((u)=>u!==d),String(c.selected)];c.selected=d},{signal:e}),this.addEventListener("focusout",(s)=>{let l=s.relatedTarget;if(l&&!this.contains(l)){this.#N=!1;return}if(!l)requestAnimationFrame(()=>requestAnimationFrame(()=>this.#$()))},{signal:e}),t.addEventListener("focus",()=>queueMicrotask(()=>this.#$()),{signal:e}),this.addEventListener("click",(s)=>{let l=this.ownerDocument.getSelection(),c=s.target;if(!this.#y&&l&&!l.isCollapsed&&(c.contains(l.anchorNode)||l.containsNode(c,!0))&&!c.closest?.("button, .b3-board-grip, .b3-board-card-head>.b3-board-title")){s.preventDefault(),s.stopImmediatePropagation();return}if(!this.#y)return;this.#y=!1,s.preventDefault(),s.stopImmediatePropagation()},{signal:e,capture:!0});let n='button, a, input, textarea, select, [contenteditable]:not([contenteditable="false"])',i=(s)=>{let l=s.target,c=l.closest?.(".b3-board-card");return c&&this.contains(c)&&!l.closest(n)&&(s.metaKey||s.ctrlKey||s.shiftKey)&&!s.altKey?c:null};this.addEventListener("mousedown",(s)=>{if(i(s))s.preventDefault()},{signal:e,capture:!0}),this.addEventListener("click",(s)=>{let l=this.#e,c=i(s);if(!l)return;if(!c){if(l.picked.length&&s.target.closest?.(".b3-board-card")&&!s.target.closest(n))l.picked=[];return}s.preventDefault(),s.stopImmediatePropagation();let d=c.dataset.card,u=l.selected!=null?String(l.selected):null,f=new Set(l.picked);if(s.shiftKey&&u!=null){let h=[...c.closest(".b3-board-cards").querySelectorAll(":scope > .b3-board-card")].map((m)=>m.dataset.card),b=h.indexOf(u),p=h.indexOf(d);for(let m of b<0?[u]:h.slice(Math.min(b,p),Math.max(b,p)+1))f.add(m)}else if(d===u||f.has(d)){f.delete(d);let h=[...f].at(-1);if(d===u&&h!==void 0)return f.delete(h),l.picked=[...f],void this.focusCard(h);l.picked=[...f];return}else if(u!=null)f.add(u);f.delete(d),l.picked=[...f],this.#s(`${f.size+1} cards selected`),c.focus({preventScroll:!0})},{signal:e,capture:!0}),this.addEventListener("keydown",(s)=>{if(s.key!=="?"||s.defaultPrevented||s.metaKey||s.ctrlKey||s.altKey||s.isComposing)return;if(s.target.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"]), .b3-board-keys'))return;s.preventDefault(),this.showShortcuts()},{signal:e}),this.addEventListener("keydown",(s)=>{if(s.defaultPrevented||s.altKey||!(s.metaKey||s.ctrlKey))return;if(s.target.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"])'))return;let l=s.key.toLowerCase(),c=l==="y"||l==="z"&&s.shiftKey;if(l!=="z"&&l!=="y")return;if(s.preventDefault(),c)this.redo();else this.undo()},{signal:e});let a=(s)=>this.#Z(s);this.addEventListener("click",a,{signal:e,capture:!0}),this.addEventListener("auxclick",(s)=>{if(s.button===1)a(s)},{signal:e,capture:!0});let o=()=>this.#H();this.addEventListener("compositionstart",()=>{this.#x=!0},{signal:e}),this.addEventListener("compositionend",o,{signal:e}),this.addEventListener("focusout",o,{signal:e})}#H(){this.#x=!1;for(let e of this.#C.splice(0))e()}#Z(e){let t=e.target.closest?.("a.b3-board-ref");if(!t||!this.contains(t))return;e.stopPropagation();let r=(c)=>t.closest(c),n=this.#e?.columns.find((c)=>x(c.id,r("[data-column]")?.dataset.column)),i=n?.cards.find((c)=>x(c.id,r("[data-card]")?.dataset.card)),a=i&&C(i).find((c)=>x(c.id,r("[data-subtask]")?.dataset.subtask)),o={href:t.dataset.href??"",text:t.textContent??"",file:t.hasAttribute("data-file"),newTab:e.metaKey||e.ctrlKey||e.shiftKey||e.button===1,card:i?.id,column:n?.id};if(a)o.subtask=a.id;let s=t.querySelector("img");if(s&&!o.newTab&&e.type==="click"){e.preventDefault(),this.#Q(t,s,o);return}if(!t.dispatchEvent(new CustomEvent("b3-link",{bubbles:!0,cancelable:!0,detail:o}))||o.file)e.preventDefault()}#Q(e,t,r){let n=this.ownerDocument;n.body.querySelector(":scope > .b3-board-lightbox")?.dispatchEvent(new CustomEvent("b3-close")),ar();let i=n.createElement("b3-image-viewer");i.className="b3-board-lightbox",i.setAttribute("alt",t.alt||"Image"),i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true");let a=n.createElement("img");a.src=t.currentSrc||t.src,a.alt=t.alt;let o=n.createElement("button");o.type="button",o.className="b3-board-lightbox-open",o.textContent="Open",i.append(a,o);let s=n.activeElement,l=[...n.body.children].filter((d)=>d instanceof HTMLElement&&!d.inert),c=()=>{i.remove();for(let d of l)d.inert=!1;if(e.isConnected)e.focus({preventScroll:!0});else s?.focus?.({preventScroll:!0})};i.addEventListener("b3-close",c),i.addEventListener("click",(d)=>{if(d.target===i)c()}),o.addEventListener("pointerdown",(d)=>d.stopPropagation()),o.addEventListener("click",(d)=>{if(d.stopPropagation(),c(),e.dispatchEvent(new CustomEvent("b3-link",{bubbles:!0,cancelable:!0,detail:{...r}}))&&!r.file)this.ownerDocument.defaultView?.open(r.href,"_blank","noopener")}),n.body.append(i);for(let d of l)d.inert=!0;i.setAttribute("open",""),i.focus({preventScroll:!0})}#ee(e){if(this.readonly||this.#r||!e.isPrimary||e.button!==0||this.#e?.editing)return;let t=e.target,r=t.closest(".b3-board-subtask-grip")?.closest(".b3-board-subtask"),n;if(r)n={kind:"subtask",id:r.dataset.subtask,card:r.closest(".b3-board-card").dataset.card,node:r,pointerId:e.pointerId,x:e.clientX,y:e.clientY,started:!1,hold:0};else{if(t.closest("input, textarea, select, a, .b3-board-quiet, .b3-board-chip, .b3-board-link, .b3-board-toggle, .b3-board-description"))return;let i=t.closest(".b3-board-grip, .b3-board-card-head>.b3-board-title")?t.closest(".b3-board-card"):null;if(!i&&t.closest(".b3-board-card"))return;let a=!i&&t.closest(".b3-board-column-header")?t.closest(".b3-board-column"):null,o=i??a;if(!o)return;if(n={kind:i?"card":"column",id:i?i.dataset.card:a.dataset.column,node:o,pointerId:e.pointerId,x:e.clientX,y:e.clientY,started:!1,hold:0},i)n.ids=this.#b(n.id)}if(!this.contains(n.node))return;if(this.#r=n,e.pointerType!=="mouse")n.hold=window.setTimeout(()=>{if(this.#r===n)this.#z(e.clientX,e.clientY)},ba)}#z(e,t){let r=this.#r;r.started=!0;let n=r.node.getBoundingClientRect(),i=r.node.cloneNode(!0);i.classList.add("b3-board-ghost"),i.removeAttribute("data-b3-dragging");for(let o of[i,...i.querySelectorAll("[id]")])o.removeAttribute("id");i.setAttribute("aria-hidden","true"),Object.assign(i.style,{inlineSize:`${n.width}px`,left:`${n.left}px`,top:`${n.top}px`}),r.dx=e-n.left,r.dy=t-n.top,r.ghost=i,this.#t.append(i),r.node.setAttribute("data-b3-dragging","");for(let o of this.#j(r))o.setAttribute("data-b3-dragging","");if((r.ids?.length??0)>1)i.dataset.b3Count=String(r.ids.length);this.ownerDocument.getSelection()?.removeAllRanges(),r.px=e,r.py=t;let a=()=>{if(this.#r!==r)return;this.#ie(r.px,r.py),this.#ne(this.#U(r.px,r.py)),r.frame=requestAnimationFrame(a)};r.frame=requestAnimationFrame(a)}#te(e){let t=this.#r;if(!t||e.pointerId!==t.pointerId)return;if(!t.started){let n=Math.hypot(e.clientX-t.x,e.clientY-t.y);if(e.pointerType!=="mouse"){if(n>8)this.#m();return}if(n<5)return;this.#z(e.clientX,e.clientY)}e.preventDefault();let r=this.ownerDocument.getSelection();if(r&&!r.isCollapsed)r.removeAllRanges();t.ghost.style.left=`${e.clientX-t.dx}px`,t.ghost.style.top=`${e.clientY-t.dy}px`,t.px=e.clientX,t.py=e.clientY}#re(e){let t=this.#r;if(!t||e.pointerId!==t.pointerId)return;if(!t.started)return this.#m();let r=this.#U(e.clientX,e.clientY);if(this.#m(),this.#y=!0,setTimeout(()=>{this.#y=!1},0),!r)return;let n=this.#e;if(t.kind==="card")this.#S(t.ids??[t.id],r.column,r.before),this.#I(t.id);else if(t.kind==="subtask"){let i=this.#a(t.card);if(!i)return;let a=C(i),o=r.before?a.findIndex((s)=>x(s.id,r.before)):a.length;if(a.findIndex((s)=>x(s.id,t.id))<o)o-=1;this.#P(i,t.id,o)}else{let i=r.before?n.columns.findIndex((o)=>x(o.id,r.before)):n.columns.length;if(n.columns.findIndex((o)=>x(o.id,t.id))<i)i-=1;this.moveColumn(t.id,i)}}#U(e,t){let r=this.#r,n=this.ownerDocument.elementFromPoint(e,t);if(!n||!this.contains(n))return null;if(r.kind==="card"){let l=this.#q(e,n);if(!l)return null;let c=l.querySelector(".b3-board-cards"),d=[...c.querySelectorAll(":scope > .b3-board-card:not([data-b3-dragging])")],u=d.find((h)=>{let b=h.getBoundingClientRect();return t<b.top+b.height/2}),f=(h)=>!!(h!=null&&this.#a(h)?.starred);if(f(u?.dataset.card)!==f(r.id)&&(u||f(r.id)))u=d.find((h)=>!f(h.dataset.card));return{column:l.dataset.column,before:u?.dataset.card??null,list:c}}if(r.kind==="subtask"){let l=r.node.parentElement;return{column:"",before:[...l.querySelectorAll(":scope > .b3-board-subtask:not([data-b3-dragging])")].find((u)=>{let f=u.getBoundingClientRect();return t<f.top+f.height/2})?.dataset.subtask??null,list:l}}let i=this.querySelector(".b3-board-columns"),a=[...i.querySelectorAll(":scope > .b3-board-column:not([data-b3-dragging])")],o=getComputedStyle(this).direction==="rtl";return{column:"",before:a.find((l)=>{let c=l.getBoundingClientRect();return o?e>c.left+c.width/2:e<c.left+c.width/2})?.dataset.column??null,list:i}}#ne(e){for(let n of this.querySelectorAll("[data-b3-drop]"))n.removeAttribute("data-b3-drop");if(!e)return;let t=`[data-${this.#r.kind}="${CSS.escape(e.before??"")}"]`,r=e.before?e.list.querySelector(t):null;(r??e.list).setAttribute("data-b3-drop",r?"before":"end")}#q(e,t){return t?.closest(".b3-board-column")??[...this.querySelectorAll(".b3-board-column")].find((r)=>{let n=r.getBoundingClientRect();return e>=n.left&&e<=n.right})}#ie(e,t){let r=(o,s,l)=>o<s+40?-12:o>l-40?12:0,n=this.querySelector(".b3-board-columns");if(n){let o=n.getBoundingClientRect();n.scrollLeft+=r(e,o.left,o.right)}let i=this.#r?.kind==="card"?this.#q(e,this.ownerDocument.elementFromPoint(e,t))?.querySelector(".b3-board-cards"):null;if(i&&i.scrollHeight>i.clientHeight){let o=i.getBoundingClientRect();i.scrollTop+=r(t,o.top,o.bottom)}let a=this.ownerDocument.defaultView;a.scrollBy(0,r(t,0,a.innerHeight))}#j(e){return(e.ids??[]).map((t)=>this.querySelector(`.b3-board-cards > [data-card="${CSS.escape(t)}"]`)).filter((t)=>!!t)}#m(){let e=this.#r;if(!e)return;this.#r=null,clearTimeout(e.hold),cancelAnimationFrame(e.frame??0),e.ghost?.remove(),e.node.removeAttribute("data-b3-dragging");for(let t of this.#j(e))t.removeAttribute("data-b3-dragging");for(let t of this.querySelectorAll("[data-b3-drop]"))t.removeAttribute("data-b3-drop")}}br("b3-board",bi);export{bi as B3Board};
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0-alpha.149",
2
+ "version": "0.1.0-alpha.151",
3
3
  "cssSha256": "a1e97a6aa21ed495e8de168d029455630332805d056b112c8e40fe7127611142",
4
4
  "classes": [
5
5
  "b3-accordion",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livx.cc/bare-v3",
3
- "version": "0.1.0-alpha.149",
3
+ "version": "0.1.0-alpha.151",
4
4
  "type": "module",
5
5
  "thirdPartyNotices": "./dist/third-party.json",
6
6
  "files": [