@adia-ai/web-modules 0.8.21 → 0.8.22

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 CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog — @adia-ai/web-modules
2
2
 
3
+ ## [0.8.22] — 2026-07-29
4
+
5
+ ### Fixed
6
+ - **`form-popover-ui`'s summary tracks programmatic `checked` mutations** (independent-review finding, 2026-07-29). The module listened only to bubbling change/input, but `el.checked = true` reflects the attribute without any event — so the trigger text went stale, contradicting the module's own "DOM is the source of truth" rule. A MutationObserver on the body element (subtree, `[checked]` filter + childList) now covers the non-event paths, including check-ui rows added or removed after stamping; scoped to the body so the module's own trigger writes can't feed back. Disconnect symmetric. Tests 11 → 13.
7
+
8
+ ### Maintenance
9
+ - **`dist/` bundles rebuilt** in this cut's window (1 file(s)) — regenerated from the source changes described above, not independent edits.
10
+
3
11
  ## [0.8.21] — 2026-07-28
4
12
 
5
13
  ### Changed
@@ -140,7 +140,7 @@ parent-template-re-read pattern that works across frameworks.`);return}if(this.d
140
140
  <icon-ui name="caret-down" slot="caret"></icon-ui>
141
141
  </span>
142
142
  ${o}
143
- `,this.hint&&this.setAttribute("aria-describedby",n);let a=this.querySelector("[data-clear-all]");a&&(a.removeEventListener("click",this.#y),a.addEventListener("click",this.#y)),this.searchable&&(this.#o&&(this.#o.removeEventListener("input",this.#I),this.#o.removeEventListener("focus",this.#c),this.#o.removeEventListener("click",this.#u)),this.#o=this.querySelector('input[slot="display"]'),this.#o&&(this.#o.addEventListener("input",this.#I),this.#o.addEventListener("focus",this.#c),this.#o.addEventListener("click",this.#u))),e&&this.appendChild(e)}this.#k(),this.multiple&&this.#R();let t=this.querySelector("[data-clear-all]");if(t&&(this.multiple&&this.clearable&&this.#f().length>0&&!this.disabled&&!this.readonly?t.removeAttribute("hidden"):t.setAttribute("hidden","")),this.#r||(this.#r=this.querySelector('[slot="listbox"]'),this.#r||(this.#r=document.createElement("div"),this.#r.setAttribute("slot","listbox"),this.#r.setAttribute("role","listbox"),this.#r.setAttribute("popover","manual"),this.appendChild(this.#r)),this.#E()),this.#r){let e=this.multiple?new Set(this.value.split(",").map(i=>i.trim()).filter(Boolean)):null;for(let i of this.#r.querySelectorAll('[role="option"]')){let r=i.getAttribute("data-value");(e?e.has(r):r===this.value)?i.setAttribute("aria-selected","true"):i.removeAttribute("aria-selected")}}if(this.setAttribute("aria-expanded",String(this.open)),this.open){this.#r?.showPopover?.();let e=this.querySelector('[slot="trigger"]')||this;this.#r.style.minWidth=`${e.getBoundingClientRect().width}px`,this.#r.style.width="max-content",this.#n=ut(e,this.#r,{placement:this.getAttribute("placement")||"bottom-start",gap:4,matchWidth:!1}),this.#l=requestAnimationFrame(()=>{this.#l=null,document.addEventListener("pointerdown",this.#L,{once:!0})})}else this.#n?.(),this.#n=null,this.#r?.hidePopover?.(),this.#l!=null&&(cancelAnimationFrame(this.#l),this.#l=null),document.removeEventListener("pointerdown",this.#L)}#S(){let t=[],e=i=>{for(let r of i.children)if(!r.hasAttribute("slot")){if(r.tagName==="OPTION"||r.tagName==="OPTGROUP"){t.push(r);continue}if(r.matches('[role="presentation"]')||r.style?.display==="contents"){e(r);continue}t.push(r)}};return e(this),t}#w(){this.#i=[];let t=new Set,e=[];for(let i of this.#S())if(i.tagName==="OPTGROUP"){let r={label:i.label||i.getAttribute("label")||"",options:[]};for(let n of i.querySelectorAll("option"))r.options.push({value:n.value,label:n.textContent.trim(),disabled:n.disabled,icon:n.getAttribute("icon")||"",avatar:n.getAttribute("avatar")||"",mark:n.hasAttribute("mark")}),n.hasAttribute("selected")&&e.push(n.value);this.#i.push(r)}else i.tagName==="OPTION"?(this.#i.push({value:i.value,label:i.textContent.trim(),disabled:i.disabled,icon:i.getAttribute("icon")||"",avatar:i.getAttribute("avatar")||"",mark:i.hasAttribute("mark")}),i.hasAttribute("selected")&&e.push(i.value)):i.hasAttribute("slot")||t.add(i.tagName.toLowerCase());for(let i of[...this.querySelectorAll("option, optgroup")])i.remove();!this.value&&e.length&&(this.value=this.multiple?e.join(","):e[0]),t.size>0&&!s.#t.has(this)&&(s.#t.add(this),console.warn(`<select-ui>: ignoring unrecognized child element(s) [${[...t].join(", ")}]. Consumer-authored children must be native <option> or <optgroup>, NOT <select-option> or other <*-ui> shapes. Or set element.options = [...] programmatically. (Once-per-element warn; see select.yaml usage: for details.)`))}set options(t){F(()=>{this.#i=t,this.#r||(this.#r=this.querySelector('[slot="listbox"]'),this.#r||(this.#r=document.createElement("div"),this.#r.setAttribute("slot","listbox"),this.#r.setAttribute("role","listbox"),this.#r.setAttribute("popover","manual"),this.appendChild(this.#r))),this.#E();let e=this.querySelector('[slot="display"]');e&&(e.textContent=this.#C()),this.#k()})}get options(){return this.#i}static#A(t){return t?t.mark?'<adia-mark-ui data-select-mark size="sm"></adia-mark-ui>':t.avatar?`<img data-option-avatar src="${Mt(t.avatar)}" alt="" />`:t.icon?`<icon-ui name="${Mt(t.icon)}"></icon-ui>`:"":""}#k(){if(this.multiple||!this.#s)return;let t=this.querySelector('[slot="trigger"]');if(!t)return;let i=this.#i.flatMap(u=>u.options||[u]).find(u=>!u.header&&!u.separator&&u.value===this.value),r=i&&i.mark||this.mark||!1,n=i&&i.avatar||this.avatar||"",o=i&&i.icon||this.icon||"",a=t.querySelector(":scope > [data-select-leading]"),l="";if(r?l='<adia-mark-ui slot="leading" data-select-leading size="sm"></adia-mark-ui>':n?l=`<img slot="leading" data-select-leading src="${Mt(n)}" alt="" />`:o&&(l=`<icon-ui slot="leading" data-select-leading name="${Mt(o)}"></icon-ui>`),!l){a?.remove();return}let h=document.createElement("template");h.innerHTML=l;let c=h.content.firstElementChild;a?a.tagName===c.tagName?c.tagName==="IMG"?a.getAttribute("src")!==c.getAttribute("src")&&a.setAttribute("src",c.getAttribute("src")):a.getAttribute("name")!==c.getAttribute("name")&&a.setAttribute("name",c.getAttribute("name")):a.replaceWith(c):t.insertBefore(c,t.firstChild)}#E(){if(!this.#r)return;if(this.#r.innerHTML="",this.multiple?this.#r.setAttribute("aria-multiselectable","true"):this.#r.removeAttribute("aria-multiselectable"),this.multiple&&this.selectAll){let e=document.createElement("div");e.setAttribute("data-select-all","");let i=document.createElement("button-ui");i.setAttribute("variant","ghost"),i.setAttribute("size","xs"),i.dataset.selectAllBtn="",i.setAttribute("text",this.#$()?"Clear":"Select all"),i.addEventListener("click",this.#b),e.appendChild(i),this.#r.appendChild(e)}let t=e=>{if(e.separator){let a=document.createElement("hr");return a.setAttribute("data-separator",""),a}let i=document.createElement("div");i.setAttribute("role","option"),i.setAttribute("data-value",e.value||"");let r=this.multiple?new Set(this.value.split(",").map(a=>a.trim()).filter(Boolean)):null,n=r?r.has(e.value):e.value===this.value,o=s.#A(e);if(e.action){i.setAttribute("data-action-option","");let a=document.createElement("span");a.setAttribute("data-option-label",""),o?a.innerHTML=`${o}${Mt(e.label)}`:a.textContent=e.label,i.appendChild(a)}else if(this.multiple){i.setAttribute("data-multi-option","");let a=document.createElement("span");a.setAttribute("data-checkbox",""),a.innerHTML='<icon-ui name="check" aria-hidden="true"></icon-ui>',i.appendChild(a);let l=document.createElement("span");l.setAttribute("data-option-label",""),o?l.innerHTML=`${o}${Mt(e.label)}`:l.textContent=e.label,i.appendChild(l)}else{i.setAttribute("data-single-option","");let a=document.createElement("span");a.setAttribute("data-radio",""),a.setAttribute("aria-hidden","true"),i.appendChild(a);let l=document.createElement("span");l.setAttribute("data-option-label",""),o?l.innerHTML=`${o}${Mt(e.label)}`:l.textContent=e.label,i.appendChild(l)}return n&&i.setAttribute("aria-selected","true"),e.disabled&&i.setAttribute("aria-disabled","true"),e.action&&(i.dataset.action=e.action),i.__adiaOption=e,i.addEventListener("click",this.#d),i};for(let e of this.#i)if(e.separator)this.#r.appendChild(t(e));else if(e.header){let i=document.createElement("div");i.setAttribute("data-menu-header",""),i.innerHTML=e.avatar?`<img src="${e.avatar}" alt="" /><div><strong>${Mt(e.label)}</strong><span>${Mt(e.description||"")}</span></div>`:`<div><strong>${Mt(e.label)}</strong><span>${Mt(e.description||"")}</span></div>`,this.#r.appendChild(i)}else if(e.options){let i=document.createElement("div");i.setAttribute("role","group"),i.innerHTML=`<div slot="group-label">${Mt(e.label)}</div>`;for(let r of e.options)i.appendChild(t(r));this.#r.appendChild(i)}else this.#r.appendChild(t(e));if(this.#i.length===0){let e=document.createElement("div");e.setAttribute("data-empty",""),e.textContent="No options",this.#r.appendChild(e)}this.#a&&this.#P()}#$(){if(!this.multiple)return!1;let t=this.#i.flatMap(i=>i.options||[i]).filter(i=>!i.disabled&&!i.separator&&!i.header&&i.value!=null);if(t.length===0)return!1;let e=new Set(this.#f());return t.every(i=>e.has(String(i.value)))}#R(){let t=this.querySelector('[slot="trigger"] [data-chips]');if(!t)return;if(this.summaryLabel){for(;t.firstChild;)t.removeChild(t.firstChild);return}let e=this.#f(),i=Number(this.maxChips)||0,r=i>0&&e.length>i?e.slice(0,i):e,n=i>0&&e.length>i?e.length-i:0,o=a=>this.#Q(a);for(;t.firstChild;)t.removeChild(t.firstChild);for(let a of r){let l=document.createElement("tag-ui");l.setAttribute("size","sm"),!this.disabled&&!this.readonly&&l.setAttribute("removable",""),l.dataset.chipValue=String(a),l.setAttribute("text",o(a)),t.appendChild(l)}if(n>0){let a=document.createElement("button-ui");a.setAttribute("variant","ghost"),a.setAttribute("size","xs"),a.dataset.more="",a.setAttribute("text",`+${n} more`),a.addEventListener("click",this.#O),t.appendChild(a)}}#Q(t){let i=this.#i.flatMap(r=>r.options||[r]).filter(r=>!r.separator&&!r.header&&r.value!=null).find(r=>String(r.value)===String(t));return i?i.label:String(t)}#C(){if(this.multiple){if(this.summaryLabel){let i=this.#f();return i.length===0?this.placeholder:i.length===1?this.#Q(i[0]):`${this.summaryLabel} (${i.length})`}return this.value?"":this.placeholder}return this.#i.flatMap(i=>i.options||[i]).find(i=>i.value===this.value||i.header&&i.label===this.value)?.label||this.value||this.placeholder}#D=t=>{this.disabled||this.#r&&t.composedPath().includes(this.#r)||(this.open=!this.open)};#L=t=>{!this.contains(t.target)&&!(this.#r&&t.composedPath().includes(this.#r))&&(this.open=!1)};#M=t=>{if(t.key==="Backspace"&&this.multiple&&!this.disabled&&!this.readonly){let e=t.target,i=e&&e.tagName==="INPUT"&&e.getAttribute("slot")==="display",r=!this.#a||this.#a.length===0;if((!i||r)&&this.#f().length>0){t.preventDefault(),this.#m();return}}if(t.key==="Escape"){if(this.searchable&&this.#a){this.#a="";let e=this.querySelector('input[slot="display"]');e&&(e.value=""),this.#P();return}this.open=!1;return}if(t.key==="Enter"){if(t.preventDefault(),this.open){let e=this.#r?.querySelector('[role="option"][data-focused]:not([data-filtered-out])');if(e)e.click(),this.multiple&&(this.open=!1);else if(this.searchable&&this.freeText&&this.#a){let i=this.#a;this.value=i,this.#a="",this.open=!1,this.syncValue?.(i),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:this.value}}))}else this.open=!1}else this.open=!0;return}if(t.key===" "&&!this.searchable){if(t.preventDefault(),this.open){let e=this.#r?.querySelector('[role="option"][data-focused]');e?e.click():this.multiple||(this.open=!1)}else this.open=!0;return}t.key==="ArrowDown"&&this.open&&(t.preventDefault(),this.#q(1)),t.key==="ArrowUp"&&this.open&&(t.preventDefault(),this.#q(-1))};#I=t=>{this.#a=t.target.value||"",this.open||(this.open=!0),this.#P()};#P(){if(!this.#r)return;let t=this.#a.toLowerCase(),e=this.#r.querySelectorAll('[role="option"]'),i=!1;for(let n of e){let o=(n.textContent||"").toLowerCase();!t||o.includes(t)?(n.removeAttribute("data-filtered-out"),n.style.display="",i=!0):(n.setAttribute("data-filtered-out",""),n.style.display="none")}for(let n of this.#r.querySelectorAll('[role="group"]')){let o=n.querySelectorAll('[role="option"]:not([data-filtered-out])').length;n.style.display=o?"":"none"}let r=this.#r.querySelector('[role="option"][data-focused]');r&&r.hasAttribute("data-filtered-out")&&r.removeAttribute("data-focused")}#q(t){if(!this.#r)return;let e=[...this.#r.querySelectorAll('[role="option"]:not([aria-disabled]):not([data-filtered-out])')];if(!e.length)return;let i=this.#r.querySelector('[role="option"][data-focused]'),r=i?e.indexOf(i):-1,n=e[(r+t+e.length)%e.length];i&&i.removeAttribute("data-focused"),n&&(n.setAttribute("data-focused",""),n.scrollIntoView({block:"nearest"}))}disconnected(){super.disconnected(),this.removeEventListener("click",this.#D),this.removeEventListener("keydown",this.#M),this.removeEventListener("remove",this.#g),this.#h?.disconnect(),this.#l!=null&&(cancelAnimationFrame(this.#l),this.#l=null),document.removeEventListener("pointerdown",this.#L),this.#o&&(this.#o.removeEventListener("input",this.#I),this.#o.removeEventListener("focus",this.#c),this.#o.removeEventListener("click",this.#u),this.#o=null),this.#n?.(),this.#n=null,this.#r?.hidePopover?.(),this.#r=null}};S("select-ui",mr);C();var gr=class extends v{static properties={value:{type:String,default:"",reflect:!0},text:{type:String,default:"",reflect:!0},icon:{type:String,default:"",reflect:!0},disabled:{type:Boolean,default:!1,reflect:!0},selected:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;connected(){this.setAttribute("role","radio"),this.getAttribute("tabindex")||this.setAttribute("tabindex","-1")}render(){if(this.text&&this.setAttribute("aria-label",this.text),this.setAttribute("aria-checked",this.selected?"true":"false"),this.disabled?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled"),this.icon){let t=this.querySelector(":scope > icon-ui");if(!t||t.getAttribute("name")!==this.icon){t?.remove();let e=document.createElement("icon-ui");e.setAttribute("name",this.icon),e.setAttribute("aria-hidden","true"),this.prepend(e)}}else this.querySelector(":scope > icon-ui")?.remove()}};S("segment-ui",gr);var br=class s extends M{static properties={...M.properties,value:{type:String,default:"",reflect:!0}};static template=()=>null;static#t=new WeakSet;#e=null;#i=!1;#s=null;#r=null;#n=null;connected(){if(super.connected(),this.setAttribute("role","radiogroup"),this.#i||(this.#i=!0,this.addEventListener("click",this.#c),this.addEventListener("keydown",this.#u)),!this.value){let t=this.querySelector("segment-ui:not([disabled])");t&&(this.value=t.value||t.getAttribute("value")||"")}typeof ResizeObserver<"u"&&(this.#r=new ResizeObserver(()=>this.#l(this.#a)),this.#r.observe(this)),document.fonts?.ready&&(this.#n=document.fonts.ready.then(()=>{this.#n=null,this.#l(this.#a)}))}disconnected(){super.disconnected(),this.#s!=null&&(cancelAnimationFrame(this.#s),this.#s=null),this.#r?.disconnect(),this.#r=null,this.#n&&(this.#n=null),this.removeEventListener("click",this.#c),this.removeEventListener("keydown",this.#u),this.#e=null,this.#i=!1}get#a(){return[...this.querySelectorAll("segment-ui")]}get#o(){return this.#a.filter(t=>!t.disabled)}render(){if(!s.#t.has(this)){let e=[...this.children].find(i=>i.tagName!=="SEGMENT-UI"&&!i.hasAttribute("data-indicator")&&!(i.tagName==="SPAN"&&i.style.display==="contents"));e&&(s.#t.add(this),console.warn(`[segmented-ui] child <${e.tagName.toLowerCase()}> is not <segment-ui> \u2014 bare <segment> tags render text but receive no sliding indicator or aria-checked state. Use <segment-ui>.`))}let t=this.#a;if(t.length){for(let e of t){let r=(e.value||e.getAttribute("value")||"")===this.value;r?e.setAttribute("selected",""):e.removeAttribute("selected"),e.setAttribute("tabindex",r?"0":"-1")}this.label&&this.setAttribute("aria-label",this.label),this.#l(t)}}#l(t){let e=t.findIndex(r=>(r.value||r.getAttribute("value")||"")===this.value);if(e<0){this.removeAttribute("data-indicator-ready");return}let i=!this.#e||!this.contains(this.#e);if(i){for(let r of this.querySelectorAll(":scope > [data-indicator]"))r.remove();this.#e=document.createElement("span"),this.#e.setAttribute("data-indicator",""),this.prepend(this.#e)}this.style.setProperty("--_segment-count",`${t.length}`),i?(this.#e.style.transition="none",this.#e.style.transform=`translateX(${e*100}%)`,this.setAttribute("data-indicator-ready",""),this.#s=requestAnimationFrame(()=>{this.#s=null,this.#e&&(this.#e.style.transition="")})):(this.#e.style.transform=`translateX(${e*100}%)`,this.setAttribute("data-indicator-ready",""))}#h(t){t.disabled||(this.value=t.value,this.syncValue(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:this.value}})))}#c=t=>{let e=t.target.closest("segment-ui");e&&this.contains(e)&&this.#h(e)};#u=t=>{let e=t.target;if(e.tagName!=="SEGMENT-UI")return;let i=this.#o,r=i.indexOf(e);if(r<0)return;let n;switch(t.key){case"ArrowRight":case"ArrowDown":n=r<i.length-1?r+1:0;break;case"ArrowLeft":case"ArrowUp":n=r>0?r-1:i.length-1;break;case"Home":n=0;break;case"End":n=i.length-1;break;default:return}t.preventDefault(),i[n].focus(),this.#h(i[n])}};S("segmented-ui",br);var Or=class extends M{static labelDeprecated=!1;static properties={...M.properties,value:{type:Number,default:0,reflect:!0},min:{type:Number,default:0,reflect:!0},max:{type:Number,default:100,reflect:!0},step:{type:Number,default:1,reflect:!0},label:{type:String,default:"",reflect:!0},suffix:{type:String,default:"",reflect:!0}};static template=()=>null;#t=null;#e=null;#i=!1;#s=0;#r=0;connected(){if(super.connected(),this.setAttribute("role","spinbutton"),this.setAttribute("tabindex","0"),!this.querySelector('[slot="field"]')){let t=`
143
+ `,this.hint&&this.setAttribute("aria-describedby",n);let a=this.querySelector("[data-clear-all]");a&&(a.removeEventListener("click",this.#y),a.addEventListener("click",this.#y)),this.searchable&&(this.#o&&(this.#o.removeEventListener("input",this.#I),this.#o.removeEventListener("focus",this.#c),this.#o.removeEventListener("click",this.#u)),this.#o=this.querySelector('input[slot="display"]'),this.#o&&(this.#o.addEventListener("input",this.#I),this.#o.addEventListener("focus",this.#c),this.#o.addEventListener("click",this.#u))),e&&this.appendChild(e)}this.#k(),this.multiple&&this.#R();let t=this.querySelector("[data-clear-all]");if(t&&(this.multiple&&this.clearable&&this.#f().length>0&&!this.disabled&&!this.readonly?t.removeAttribute("hidden"):t.setAttribute("hidden","")),this.#r||(this.#r=this.querySelector('[slot="listbox"]'),this.#r||(this.#r=document.createElement("div"),this.#r.setAttribute("slot","listbox"),this.#r.setAttribute("role","listbox"),this.#r.setAttribute("popover","manual"),this.appendChild(this.#r)),this.#E()),this.#r){let e=this.multiple?new Set(this.value.split(",").map(i=>i.trim()).filter(Boolean)):null;for(let i of this.#r.querySelectorAll('[role="option"]')){let r=i.getAttribute("data-value");r!==null&&(e?e.has(r):r===this.value)?i.setAttribute("aria-selected","true"):i.removeAttribute("aria-selected")}}if(this.setAttribute("aria-expanded",String(this.open)),this.open){this.#r?.showPopover?.();let e=this.querySelector('[slot="trigger"]')||this;this.#r.style.minWidth=`${e.getBoundingClientRect().width}px`,this.#r.style.width="max-content",this.#n=ut(e,this.#r,{placement:this.getAttribute("placement")||"bottom-start",gap:4,matchWidth:!1}),this.#l=requestAnimationFrame(()=>{this.#l=null,document.addEventListener("pointerdown",this.#L,{once:!0})})}else this.#n?.(),this.#n=null,this.#r?.hidePopover?.(),this.#l!=null&&(cancelAnimationFrame(this.#l),this.#l=null),document.removeEventListener("pointerdown",this.#L)}#S(){let t=[],e=i=>{for(let r of i.children)if(!r.hasAttribute("slot")){if(r.tagName==="OPTION"||r.tagName==="OPTGROUP"){t.push(r);continue}if(r.matches('[role="presentation"]')||r.style?.display==="contents"){e(r);continue}t.push(r)}};return e(this),t}#w(){this.#i=[];let t=new Set,e=[];for(let i of this.#S())if(i.tagName==="OPTGROUP"){let r={label:i.label||i.getAttribute("label")||"",options:[]};for(let n of i.querySelectorAll("option"))r.options.push({value:n.value,label:n.textContent.trim(),disabled:n.disabled,icon:n.getAttribute("icon")||"",avatar:n.getAttribute("avatar")||"",mark:n.hasAttribute("mark")}),n.hasAttribute("selected")&&e.push(n.value);this.#i.push(r)}else i.tagName==="OPTION"?(this.#i.push({value:i.value,label:i.textContent.trim(),disabled:i.disabled,icon:i.getAttribute("icon")||"",avatar:i.getAttribute("avatar")||"",mark:i.hasAttribute("mark")}),i.hasAttribute("selected")&&e.push(i.value)):i.hasAttribute("slot")||t.add(i.tagName.toLowerCase());for(let i of[...this.querySelectorAll("option, optgroup")])i.remove();!this.value&&e.length&&(this.value=this.multiple?e.join(","):e[0]),t.size>0&&!s.#t.has(this)&&(s.#t.add(this),console.warn(`<select-ui>: ignoring unrecognized child element(s) [${[...t].join(", ")}]. Consumer-authored children must be native <option> or <optgroup>, NOT <select-option> or other <*-ui> shapes. Or set element.options = [...] programmatically. (Once-per-element warn; see select.yaml usage: for details.)`))}set options(t){F(()=>{this.#i=t,this.#r||(this.#r=this.querySelector('[slot="listbox"]'),this.#r||(this.#r=document.createElement("div"),this.#r.setAttribute("slot","listbox"),this.#r.setAttribute("role","listbox"),this.#r.setAttribute("popover","manual"),this.appendChild(this.#r))),this.#E();let e=this.querySelector('[slot="display"]');e&&(e.textContent=this.#C()),this.#k()})}get options(){return this.#i}static#A(t){return t?t.mark?'<adia-mark-ui data-select-mark size="sm"></adia-mark-ui>':t.avatar?`<img data-option-avatar src="${Mt(t.avatar)}" alt="" />`:t.icon?`<icon-ui name="${Mt(t.icon)}"></icon-ui>`:"":""}#k(){if(this.multiple||!this.#s)return;let t=this.querySelector('[slot="trigger"]');if(!t)return;let i=this.#i.flatMap(u=>u.options||[u]).find(u=>!u.header&&!u.separator&&u.value===this.value),r=i&&i.mark||this.mark||!1,n=i&&i.avatar||this.avatar||"",o=i&&i.icon||this.icon||"",a=t.querySelector(":scope > [data-select-leading]"),l="";if(r?l='<adia-mark-ui slot="leading" data-select-leading size="sm"></adia-mark-ui>':n?l=`<img slot="leading" data-select-leading src="${Mt(n)}" alt="" />`:o&&(l=`<icon-ui slot="leading" data-select-leading name="${Mt(o)}"></icon-ui>`),!l){a?.remove();return}let h=document.createElement("template");h.innerHTML=l;let c=h.content.firstElementChild;a?a.tagName===c.tagName?c.tagName==="IMG"?a.getAttribute("src")!==c.getAttribute("src")&&a.setAttribute("src",c.getAttribute("src")):a.getAttribute("name")!==c.getAttribute("name")&&a.setAttribute("name",c.getAttribute("name")):a.replaceWith(c):t.insertBefore(c,t.firstChild)}#E(){if(!this.#r)return;if(this.#r.innerHTML="",this.multiple?this.#r.setAttribute("aria-multiselectable","true"):this.#r.removeAttribute("aria-multiselectable"),this.multiple&&this.selectAll){let e=document.createElement("div");e.setAttribute("data-select-all","");let i=document.createElement("button-ui");i.setAttribute("variant","ghost"),i.setAttribute("size","xs"),i.dataset.selectAllBtn="",i.setAttribute("text",this.#$()?"Clear":"Select all"),i.addEventListener("click",this.#b),e.appendChild(i),this.#r.appendChild(e)}let t=e=>{if(e.separator){let a=document.createElement("hr");return a.setAttribute("data-separator",""),a}let i=document.createElement("div");i.setAttribute("role","option"),e.action||i.setAttribute("data-value",e.value||"");let r=this.multiple?new Set(this.value.split(",").map(a=>a.trim()).filter(Boolean)):null,n=!e.action&&(r?r.has(e.value):e.value===this.value),o=s.#A(e);if(e.action){i.setAttribute("data-action-option","");let a=document.createElement("span");a.setAttribute("data-option-label",""),o?a.innerHTML=`${o}${Mt(e.label)}`:a.textContent=e.label,i.appendChild(a)}else if(this.multiple){i.setAttribute("data-multi-option","");let a=document.createElement("span");a.setAttribute("data-checkbox",""),a.innerHTML='<icon-ui name="check" aria-hidden="true"></icon-ui>',i.appendChild(a);let l=document.createElement("span");l.setAttribute("data-option-label",""),o?l.innerHTML=`${o}${Mt(e.label)}`:l.textContent=e.label,i.appendChild(l)}else{i.setAttribute("data-single-option","");let a=document.createElement("span");a.setAttribute("data-radio",""),a.setAttribute("aria-hidden","true"),i.appendChild(a);let l=document.createElement("span");l.setAttribute("data-option-label",""),o?l.innerHTML=`${o}${Mt(e.label)}`:l.textContent=e.label,i.appendChild(l)}return n&&i.setAttribute("aria-selected","true"),e.disabled&&i.setAttribute("aria-disabled","true"),e.action&&(i.dataset.action=e.action),i.__adiaOption=e,i.addEventListener("click",this.#d),i};for(let e of this.#i)if(e.separator)this.#r.appendChild(t(e));else if(e.header){let i=document.createElement("div");i.setAttribute("data-menu-header",""),i.innerHTML=e.avatar?`<img src="${e.avatar}" alt="" /><div><strong>${Mt(e.label)}</strong><span>${Mt(e.description||"")}</span></div>`:`<div><strong>${Mt(e.label)}</strong><span>${Mt(e.description||"")}</span></div>`,this.#r.appendChild(i)}else if(e.options){let i=document.createElement("div");i.setAttribute("role","group"),i.innerHTML=`<div slot="group-label">${Mt(e.label)}</div>`;for(let r of e.options)i.appendChild(t(r));this.#r.appendChild(i)}else this.#r.appendChild(t(e));if(this.#i.length===0){let e=document.createElement("div");e.setAttribute("data-empty",""),e.textContent="No options",this.#r.appendChild(e)}this.#a&&this.#P()}#$(){if(!this.multiple)return!1;let t=this.#i.flatMap(i=>i.options||[i]).filter(i=>!i.disabled&&!i.separator&&!i.header&&i.value!=null);if(t.length===0)return!1;let e=new Set(this.#f());return t.every(i=>e.has(String(i.value)))}#R(){let t=this.querySelector('[slot="trigger"] [data-chips]');if(!t)return;if(this.summaryLabel){for(;t.firstChild;)t.removeChild(t.firstChild);return}let e=this.#f(),i=Number(this.maxChips)||0,r=i>0&&e.length>i?e.slice(0,i):e,n=i>0&&e.length>i?e.length-i:0,o=a=>this.#Q(a);for(;t.firstChild;)t.removeChild(t.firstChild);for(let a of r){let l=document.createElement("tag-ui");l.setAttribute("size","sm"),!this.disabled&&!this.readonly&&l.setAttribute("removable",""),l.dataset.chipValue=String(a),l.setAttribute("text",o(a)),t.appendChild(l)}if(n>0){let a=document.createElement("button-ui");a.setAttribute("variant","ghost"),a.setAttribute("size","xs"),a.dataset.more="",a.setAttribute("text",`+${n} more`),a.addEventListener("click",this.#O),t.appendChild(a)}}#Q(t){let i=this.#i.flatMap(r=>r.options||[r]).filter(r=>!r.separator&&!r.header&&r.value!=null).find(r=>String(r.value)===String(t));return i?i.label:String(t)}#C(){if(this.multiple){if(this.summaryLabel){let i=this.#f();return i.length===0?this.placeholder:i.length===1?this.#Q(i[0]):`${this.summaryLabel} (${i.length})`}return this.value?"":this.placeholder}return this.#i.flatMap(i=>i.options||[i]).find(i=>i.value===this.value||i.header&&i.label===this.value)?.label||this.value||this.placeholder}#D=t=>{this.disabled||this.#r&&t.composedPath().includes(this.#r)||(this.open=!this.open)};#L=t=>{!this.contains(t.target)&&!(this.#r&&t.composedPath().includes(this.#r))&&(this.open=!1)};#M=t=>{if(t.key==="Backspace"&&this.multiple&&!this.disabled&&!this.readonly){let e=t.target,i=e&&e.tagName==="INPUT"&&e.getAttribute("slot")==="display",r=!this.#a||this.#a.length===0;if((!i||r)&&this.#f().length>0){t.preventDefault(),this.#m();return}}if(t.key==="Escape"){if(this.searchable&&this.#a){this.#a="";let e=this.querySelector('input[slot="display"]');e&&(e.value=""),this.#P();return}this.open=!1;return}if(t.key==="Enter"){if(t.preventDefault(),this.open){let e=this.#r?.querySelector('[role="option"][data-focused]:not([data-filtered-out])');if(e)e.click(),this.multiple&&(this.open=!1);else if(this.searchable&&this.freeText&&this.#a){let i=this.#a;this.value=i,this.#a="",this.open=!1,this.syncValue?.(i),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:this.value}}))}else this.open=!1}else this.open=!0;return}if(t.key===" "&&!this.searchable){if(t.preventDefault(),this.open){let e=this.#r?.querySelector('[role="option"][data-focused]');e?e.click():this.multiple||(this.open=!1)}else this.open=!0;return}t.key==="ArrowDown"&&this.open&&(t.preventDefault(),this.#q(1)),t.key==="ArrowUp"&&this.open&&(t.preventDefault(),this.#q(-1))};#I=t=>{this.#a=t.target.value||"",this.open||(this.open=!0),this.#P()};#P(){if(!this.#r)return;let t=this.#a.toLowerCase(),e=this.#r.querySelectorAll('[role="option"]'),i=!1;for(let n of e){let o=(n.textContent||"").toLowerCase();!t||o.includes(t)?(n.removeAttribute("data-filtered-out"),n.style.display="",i=!0):(n.setAttribute("data-filtered-out",""),n.style.display="none")}for(let n of this.#r.querySelectorAll('[role="group"]')){let o=n.querySelectorAll('[role="option"]:not([data-filtered-out])').length;n.style.display=o?"":"none"}let r=this.#r.querySelector('[role="option"][data-focused]');r&&r.hasAttribute("data-filtered-out")&&r.removeAttribute("data-focused")}#q(t){if(!this.#r)return;let e=[...this.#r.querySelectorAll('[role="option"]:not([aria-disabled]):not([data-filtered-out])')];if(!e.length)return;let i=this.#r.querySelector('[role="option"][data-focused]'),r=i?e.indexOf(i):-1,n=e[(r+t+e.length)%e.length];i&&i.removeAttribute("data-focused"),n&&(n.setAttribute("data-focused",""),n.scrollIntoView({block:"nearest"}))}disconnected(){super.disconnected(),this.removeEventListener("click",this.#D),this.removeEventListener("keydown",this.#M),this.removeEventListener("remove",this.#g),this.#h?.disconnect(),this.#l!=null&&(cancelAnimationFrame(this.#l),this.#l=null),document.removeEventListener("pointerdown",this.#L),this.#o&&(this.#o.removeEventListener("input",this.#I),this.#o.removeEventListener("focus",this.#c),this.#o.removeEventListener("click",this.#u),this.#o=null),this.#n?.(),this.#n=null,this.#r?.hidePopover?.(),this.#r=null}};S("select-ui",mr);C();var gr=class extends v{static properties={value:{type:String,default:"",reflect:!0},text:{type:String,default:"",reflect:!0},icon:{type:String,default:"",reflect:!0},disabled:{type:Boolean,default:!1,reflect:!0},selected:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;connected(){this.setAttribute("role","radio"),this.getAttribute("tabindex")||this.setAttribute("tabindex","-1")}render(){if(this.text&&this.setAttribute("aria-label",this.text),this.setAttribute("aria-checked",this.selected?"true":"false"),this.disabled?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled"),this.icon){let t=this.querySelector(":scope > icon-ui");if(!t||t.getAttribute("name")!==this.icon){t?.remove();let e=document.createElement("icon-ui");e.setAttribute("name",this.icon),e.setAttribute("aria-hidden","true"),this.prepend(e)}}else this.querySelector(":scope > icon-ui")?.remove()}};S("segment-ui",gr);var br=class s extends M{static properties={...M.properties,value:{type:String,default:"",reflect:!0}};static template=()=>null;static#t=new WeakSet;#e=null;#i=!1;#s=null;#r=null;#n=null;connected(){if(super.connected(),this.setAttribute("role","radiogroup"),this.#i||(this.#i=!0,this.addEventListener("click",this.#c),this.addEventListener("keydown",this.#u)),!this.value){let t=this.querySelector("segment-ui:not([disabled])");t&&(this.value=t.value||t.getAttribute("value")||"")}typeof ResizeObserver<"u"&&(this.#r=new ResizeObserver(()=>this.#l(this.#a)),this.#r.observe(this)),document.fonts?.ready&&(this.#n=document.fonts.ready.then(()=>{this.#n=null,this.#l(this.#a)}))}disconnected(){super.disconnected(),this.#s!=null&&(cancelAnimationFrame(this.#s),this.#s=null),this.#r?.disconnect(),this.#r=null,this.#n&&(this.#n=null),this.removeEventListener("click",this.#c),this.removeEventListener("keydown",this.#u),this.#e=null,this.#i=!1}get#a(){return[...this.querySelectorAll("segment-ui")]}get#o(){return this.#a.filter(t=>!t.disabled)}render(){if(!s.#t.has(this)){let e=[...this.children].find(i=>i.tagName!=="SEGMENT-UI"&&!i.hasAttribute("data-indicator")&&!(i.tagName==="SPAN"&&i.style.display==="contents"));e&&(s.#t.add(this),console.warn(`[segmented-ui] child <${e.tagName.toLowerCase()}> is not <segment-ui> \u2014 bare <segment> tags render text but receive no sliding indicator or aria-checked state. Use <segment-ui>.`))}let t=this.#a;if(t.length){for(let e of t){let r=(e.value||e.getAttribute("value")||"")===this.value;r?e.setAttribute("selected",""):e.removeAttribute("selected"),e.setAttribute("tabindex",r?"0":"-1")}this.label&&this.setAttribute("aria-label",this.label),this.#l(t)}}#l(t){let e=t.findIndex(r=>(r.value||r.getAttribute("value")||"")===this.value);if(e<0){this.removeAttribute("data-indicator-ready");return}let i=!this.#e||!this.contains(this.#e);if(i){for(let r of this.querySelectorAll(":scope > [data-indicator]"))r.remove();this.#e=document.createElement("span"),this.#e.setAttribute("data-indicator",""),this.prepend(this.#e)}this.style.setProperty("--_segment-count",`${t.length}`),i?(this.#e.style.transition="none",this.#e.style.transform=`translateX(${e*100}%)`,this.setAttribute("data-indicator-ready",""),this.#s=requestAnimationFrame(()=>{this.#s=null,this.#e&&(this.#e.style.transition="")})):(this.#e.style.transform=`translateX(${e*100}%)`,this.setAttribute("data-indicator-ready",""))}#h(t){t.disabled||(this.value=t.value,this.syncValue(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:this.value}})))}#c=t=>{let e=t.target.closest("segment-ui");e&&this.contains(e)&&this.#h(e)};#u=t=>{let e=t.target;if(e.tagName!=="SEGMENT-UI")return;let i=this.#o,r=i.indexOf(e);if(r<0)return;let n;switch(t.key){case"ArrowRight":case"ArrowDown":n=r<i.length-1?r+1:0;break;case"ArrowLeft":case"ArrowUp":n=r>0?r-1:i.length-1;break;case"Home":n=0;break;case"End":n=i.length-1;break;default:return}t.preventDefault(),i[n].focus(),this.#h(i[n])}};S("segmented-ui",br);var Or=class extends M{static labelDeprecated=!1;static properties={...M.properties,value:{type:Number,default:0,reflect:!0},min:{type:Number,default:0,reflect:!0},max:{type:Number,default:100,reflect:!0},step:{type:Number,default:1,reflect:!0},label:{type:String,default:"",reflect:!0},suffix:{type:String,default:"",reflect:!0}};static template=()=>null;#t=null;#e=null;#i=!1;#s=0;#r=0;connected(){if(super.connected(),this.setAttribute("role","spinbutton"),this.setAttribute("tabindex","0"),!this.querySelector('[slot="field"]')){let t=`
144
144
  <span slot="label">${this.label}</span>
145
145
  <span slot="value">${this.#n(this.value)}</span>
146
146
  ${this.suffix?`<span slot="suffix">${this.suffix}</span>`:""}
@@ -287,7 +287,7 @@ Correct shape for <chart-ui x="label" y="value">:
287
287
  <div data-empty>No matches</div>
288
288
  <div data-footer></div>
289
289
  </div>
290
- `,this.#E(),r.length&&this.querySelector(":scope > [data-field] > [data-prefix]").replaceChildren(...r),n.length&&this.#d.replaceChildren(...n),o.length&&this.#l.replaceChildren(...o),a.length&&this.#h.replaceChildren(...a),l.length&&this.#c.replaceChildren(...l),this.#$()}#E(){this.#n=this.querySelector(":scope > [data-field] > [data-input]"),this.#a=this.querySelector(":scope > [data-label]"),this.#u=this.querySelector(":scope > [data-field] > [data-clear]"),this.#d=this.querySelector(":scope > [data-field] > [data-suffix]"),this.#o=this.querySelector(":scope > [data-listbox]"),this.#h=this.querySelector(":scope > [data-listbox] > [data-loading]"),this.#l=this.querySelector(":scope > [data-listbox] > [data-empty]"),this.#c=this.querySelector(":scope > [data-listbox] > [data-footer]")}#$(){this.#n&&(this.#n.addEventListener("input",this.#g),this.#n.addEventListener("keydown",this.#O),this.#n.addEventListener("focus",this.#y),this.#n.addEventListener("blur",this.#b)),this.#u&&this.#u.addEventListener("click",this.#S),this.#d&&this.#d.addEventListener("click",this.#w)}#R(){this.#n&&(this.#n.removeEventListener("input",this.#g),this.#n.removeEventListener("keydown",this.#O),this.#n.removeEventListener("focus",this.#y),this.#n.removeEventListener("blur",this.#b)),this.#u&&this.#u.removeEventListener("click",this.#S),this.#d&&this.#d.removeEventListener("click",this.#w)}#Q(){let t=[],e="";for(let i of Array.from(this.children))if(i.tagName==="OPTGROUP"){let r={label:i.label||i.getAttribute("label")||"",options:[]};for(let n of i.querySelectorAll("option"))r.options.push({value:n.value,label:n.textContent.trim(),disabled:n.disabled}),n.hasAttribute("selected")&&!e&&(e=n.value);t.push(r)}else i.tagName==="OPTION"&&(t.push({value:i.value,label:i.textContent.trim(),disabled:i.disabled}),i.hasAttribute("selected")&&!e&&(e=i.value));for(let i of[...this.querySelectorAll(":scope > option, :scope > optgroup")])i.remove();this.#t=t,!this.value&&e&&(this.value=e)}set options(t){F(()=>{this.#t=Array.isArray(t)?t:[],this.#o&&this.#L(),this.#U()})}get options(){return this.#t}#C(){let t=[];for(let e of this.#t)if(e&&Array.isArray(e.options))for(let i of e.options)t.push(i);else e&&t.push(e);return t}#D(t){return this.#C().find(e=>e.value===t)||null}#L(){if(!this.#o)return;let t=this.querySelector(":scope > [data-listbox] > [data-options]");if(!t)return;t.replaceChildren();let e=this.#C(),i=this.#q(e).slice(0,Number(this.maxOptions)||100),r=0,n=a=>{r+=1;let l=document.createElement("div");return l.setAttribute("role","option"),l.setAttribute("id",`${this.#m}-opt-${r}`),l.dataset.value=a.value??"",a.disabled&&l.setAttribute("aria-disabled","true"),a.value===this.value&&l.setAttribute("aria-selected","true"),l.innerHTML=`<span data-option-label>${this.#I(a.label??a.value)}</span>`,l.addEventListener("click",this.#x),l.addEventListener("mouseenter",this.#v),l};if(this.#t.some(a=>a&&Array.isArray(a.options)))for(let a of this.#t)if(a&&Array.isArray(a.options)){let l=this.#q(a.options);if(!l.length)continue;let h=document.createElement("div");h.setAttribute("role","group");let c=document.createElement("div");c.setAttribute("data-group-label",""),c.textContent=a.label||"",h.appendChild(c);for(let u of l)h.appendChild(n(u));t.appendChild(h)}else a&&this.#P(a)&&t.appendChild(n(a));else for(let a of i)t.appendChild(n(a));let o=t.querySelectorAll('[role="option"]').length;this.#l&&(this.#l.style.display=o||this.loading?"none":""),this.open&&this.#M(),this.#s=-1,this.#n?.removeAttribute("aria-activedescendant")}#M(){if(!this.#o)return;let t=Number(this.maxVisibleItems),e=this.#o.querySelectorAll('[role="option"]');if(!Number.isFinite(t)||t<=0||e.length<=t){this.#o.style.removeProperty("--combobox-list-max-block");return}let i=e[0].getBoundingClientRect().height;if(!i)return;let r=getComputedStyle(this.#o),n=(parseFloat(r.paddingBlockStart)||0)+(parseFloat(r.paddingBlockEnd)||0)+(parseFloat(r.borderBlockStartWidth)||0)+(parseFloat(r.borderBlockEndWidth)||0);this.#o.style.setProperty("--combobox-list-max-block",`${Math.ceil(i*t+n)}px`)}#I(t){let e=String(t??"");if(!this.highlightMatch||!this.#i)return Fs(e);let i=this.#i,r=new RegExp(y5(i),"i"),n=e.match(r);if(!n)return Fs(e);let o=n.index??0,a=o+n[0].length;return Fs(e.slice(0,o))+"<mark>"+Fs(e.slice(o,a))+"</mark>"+Fs(e.slice(a))}#P(t){if(!this.#i)return!0;let e=this.#i.toLowerCase(),i=String(t.label??t.value??"").toLowerCase();switch(this.filterMode){case"prefix":return i.startsWith(e);case"fuzzy":{let r=0;for(let n of e){if(r=i.indexOf(n,r),r===-1)return!1;r+=1}return!0}default:return i.includes(e)}}#q(t){return this.#i?t.filter(e=>this.#P(e)):t.slice()}#Z(){if(this.#r)return;let t=this.#n.textContent||"";this.#i=t.trim(),this.#n.toggleAttribute("data-empty",!t),this.open||(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"typing"}}))),this.#L();let e=this.#N();this.#i&&e.length&&this.#_(0),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{value:t,query:this.#i.toLowerCase()}}))}#T(t){let e=t.key;if(e==="ArrowDown"){t.preventDefault(),this.open||(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"keyboard"}}))),this.#W(1);return}if(e==="ArrowUp"){if(!this.open)return;t.preventDefault(),this.#W(-1);return}if(e==="Home"&&this.open){t.preventDefault(),this.#_(0);return}if(e==="End"&&this.open){t.preventDefault();let i=this.#N();this.#_(i.length-1);return}if(e==="Enter"){t.preventDefault(),this.#X();return}if(e==="Escape"){this.open&&(t.preventDefault(),this.#st("escape"));return}if(e==="Tab"){this.#Y();return}if(e==="Backspace"){let i=!(this.#n.textContent||"").length;this.clearable&&i&&this.value&&(t.preventDefault(),this.#J("keyboard"));return}}#j(){}#B(t){!this.freeText&&this.#i&&!this.value&&(this.#U(),this.#i="")}#N(){return this.#o?Array.from(this.#o.querySelectorAll('[role="option"]:not([aria-disabled="true"])')):[]}#W(t){let e=this.#N();if(!e.length)return;if(this.#s<0){this.#_(t>0?0:e.length-1);return}let i=(this.#s+t+e.length)%e.length;this.#_(i)}#_(t){let e=this.#N();if(!e.length){this.#s=-1,this.#n?.removeAttribute("aria-activedescendant");return}for(let o of e)o.removeAttribute("data-active");let i=Math.max(0,Math.min(t,e.length-1)),r=e[i];if(!r)return;r.setAttribute("data-active","");let n=this.#o;if(n){let o=r.offsetTop,a=o+r.offsetHeight;o<n.scrollTop?n.scrollTop=o:a>n.scrollTop+n.clientHeight&&(n.scrollTop=a-n.clientHeight)}this.#s=i,this.#n?.setAttribute("aria-activedescendant",r.id)}#F(t){let e=t.currentTarget;if(e.getAttribute("aria-disabled")==="true")return;let i=e.dataset.value||"";this.#H(i,"click")}#z(t){let e=t.currentTarget,r=this.#N().indexOf(e);r>=0&&this.#_(r)}#X(){if(!this.open){this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"keyboard"}}));return}let t=this.#N(),e=this.#s>=0?t[this.#s]:null;if(e){this.#H(e.dataset.value||"","keyboard");return}let i=(this.#n.textContent||"").trim();if(!i){this.#G("select");return}if(this.creatable){this.dispatchEvent(new CustomEvent("create",{bubbles:!0,detail:{value:i}})),this.#K(i,"keyboard");return}if(this.freeText){this.#K(i,"keyboard");return}this.dispatchEvent(new CustomEvent("invalid",{bubbles:!0,detail:{query:i}})),this.#U(),this.#i="",this.#L()}#Y(){if(!this.open)return;let t=this.#N(),e=this.#s>=0?t[this.#s]:null;if(e){this.#H(e.dataset.value||"","keyboard");return}let i=(this.#n.textContent||"").trim();if(i&&(this.freeText||this.creatable)){this.creatable&&!this.#D(i)&&this.dispatchEvent(new CustomEvent("create",{bubbles:!0,detail:{value:i}})),this.#K(i,"keyboard");return}this.#U(),this.#i="",this.#G("blur")}#H(t,e){if(this.readonly){this.#G("select");return}let i=this.#D(t);F(()=>{this.value=t}),this.#e=t,this.#i="",this.syncValue(t),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:t,option:i,source:e}})),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"select"}}))}#K(t,e){if(this.readonly){this.#G("select");return}F(()=>{this.value=t}),this.#e=t,this.#i="",this.syncValue(t),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:t,option:null,source:e}})),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"select"}}))}#tt(t){t.preventDefault(),t.stopPropagation(),this.#J("click"),this.#n?.focus()}#J(t){F(()=>{this.value=""}),this.#e="",this.#i="",this.syncValue(""),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:"",option:null,source:t}}))}clear(){this.#J("programmatic")}#et(t){t.preventDefault(),t.stopPropagation(),!this.disabled&&(this.open?(this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"outside"}}))):(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"click"}})),this.#n?.focus()))}#it(t){let e=this.contains(t.target),i=this.#o&&t.composedPath().includes(this.#o);!e&&!i&&(this.#i&&!this.freeText&&(this.#U(),this.#i=""),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"outside"}})))}#st(t){this.#U(),this.#i="",this.#L(),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:t}}))}#rt(){if(!this.#o)return;this.#o.showPopover?.(),this.#M();let t=this.querySelector(":scope > [data-field]")||this;this.#o.style.minWidth=`${t.getBoundingClientRect().width}px`,this.#f?.(),this.#f=ut(t,this.#o,{placement:this.getAttribute("placement")||"bottom-start",gap:4,matchWidth:!1}),this.#p!=null&&cancelAnimationFrame(this.#p),this.#p=requestAnimationFrame(()=>{this.#p=null,document.addEventListener("pointerdown",this.#A)});let e=this.#N();if(!e.length)return;let i=e.findIndex(r=>r.dataset.value===this.value);this.#_(i>=0?i:0)}#G(t){this.#o&&(this.#f?.(),this.#f=null,this.#o.hidePopover?.(),this.#p!=null&&(cancelAnimationFrame(this.#p),this.#p=null),document.removeEventListener("pointerdown",this.#A),this.#s=-1,this.#n?.removeAttribute("aria-activedescendant"))}#U(){if(!this.#n)return;let t=this.#D(this.value),e=t?t.label??t.value??"":this.value||"";(this.#n.textContent||"")!==e&&(this.#r=!0,this.#n.textContent=e,this.#r=!1),this.#n.toggleAttribute("data-empty",!e)}open$(){this.open=!0}close$(){this.open=!1}focus(){this.#n?.focus()}selectOption(t){return this.#D(t)?(this.#H(t,"programmatic"),!0):!1}syncValue(t){let e=t??this.value??"";super.syncValue(String(e))}};S("combobox-ui",Do);$t();var x5=0;function S5(s){return String(s).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var qo=class extends M{static labelDeprecated=!1;static requiredIcons=["circle-notch"];static get properties(){let{value:t,...e}=M.properties;return{...e,placeholder:{type:String,default:"Add tag\u2026",reflect:!0},delimiter:{type:String,default:",",reflect:!0},pasteSplit:{type:String,default:`,
290
+ `,this.#E(),r.length&&this.querySelector(":scope > [data-field] > [data-prefix]").replaceChildren(...r),n.length&&this.#d.replaceChildren(...n),o.length&&this.#l.replaceChildren(...o),a.length&&this.#h.replaceChildren(...a),l.length&&this.#c.replaceChildren(...l),this.#$()}#E(){this.#n=this.querySelector(":scope > [data-field] > [data-input]"),this.#a=this.querySelector(":scope > [data-label]"),this.#u=this.querySelector(":scope > [data-field] > [data-clear]"),this.#d=this.querySelector(":scope > [data-field] > [data-suffix]"),this.#o=this.querySelector(":scope > [data-listbox]"),this.#h=this.querySelector(":scope > [data-listbox] > [data-loading]"),this.#l=this.querySelector(":scope > [data-listbox] > [data-empty]"),this.#c=this.querySelector(":scope > [data-listbox] > [data-footer]")}#$(){this.#n&&(this.#n.addEventListener("input",this.#g),this.#n.addEventListener("keydown",this.#O),this.#n.addEventListener("focus",this.#y),this.#n.addEventListener("blur",this.#b)),this.#u&&this.#u.addEventListener("click",this.#S),this.#d&&this.#d.addEventListener("click",this.#w)}#R(){this.#n&&(this.#n.removeEventListener("input",this.#g),this.#n.removeEventListener("keydown",this.#O),this.#n.removeEventListener("focus",this.#y),this.#n.removeEventListener("blur",this.#b)),this.#u&&this.#u.removeEventListener("click",this.#S),this.#d&&this.#d.removeEventListener("click",this.#w)}#Q(){let t=[],e="";for(let i of Array.from(this.children))if(i.tagName==="OPTGROUP"){let r={label:i.label||i.getAttribute("label")||"",options:[]};for(let n of i.querySelectorAll("option"))r.options.push({value:n.value,label:n.textContent.trim(),disabled:n.disabled}),n.hasAttribute("selected")&&!e&&(e=n.value);t.push(r)}else i.tagName==="OPTION"&&(t.push({value:i.value,label:i.textContent.trim(),disabled:i.disabled}),i.hasAttribute("selected")&&!e&&(e=i.value));for(let i of[...this.querySelectorAll(":scope > option, :scope > optgroup")])i.remove();this.#t=t,!this.value&&e&&(this.value=e)}set options(t){F(()=>{this.#t=Array.isArray(t)?t:[],this.#o&&this.#L(),this.#U()})}get options(){return this.#t}#C(){let t=[];for(let e of this.#t)if(e&&Array.isArray(e.options))for(let i of e.options)t.push(i);else e&&t.push(e);return t}#D(t){return this.#C().find(e=>e.value===t)||null}#L(){if(!this.#o)return;let t=this.querySelector(":scope > [data-listbox] > [data-options]");if(!t)return;t.replaceChildren();let e=this.#C(),i=this.#q(e).slice(0,Number(this.maxOptions)||100),r=0,n=a=>{r+=1;let l=document.createElement("div");return l.setAttribute("role","option"),l.setAttribute("id",`${this.#m}-opt-${r}`),l.dataset.value=a.value??"",a.disabled&&l.setAttribute("aria-disabled","true"),a.value===this.value&&l.setAttribute("aria-selected","true"),l.setAttribute("data-single-option",""),l.innerHTML=`<span data-radio aria-hidden="true"></span><span data-option-label>${this.#I(a.label??a.value)}</span>`,l.addEventListener("click",this.#x),l.addEventListener("mouseenter",this.#v),l};if(this.#t.some(a=>a&&Array.isArray(a.options)))for(let a of this.#t)if(a&&Array.isArray(a.options)){let l=this.#q(a.options);if(!l.length)continue;let h=document.createElement("div");h.setAttribute("role","group");let c=document.createElement("div");c.setAttribute("data-group-label",""),c.textContent=a.label||"",h.appendChild(c);for(let u of l)h.appendChild(n(u));t.appendChild(h)}else a&&this.#P(a)&&t.appendChild(n(a));else for(let a of i)t.appendChild(n(a));let o=t.querySelectorAll('[role="option"]').length;this.#l&&(this.#l.style.display=o||this.loading?"none":""),this.open&&this.#M(),this.#s=-1,this.#n?.removeAttribute("aria-activedescendant")}#M(){if(!this.#o)return;let t=Number(this.maxVisibleItems),e=this.#o.querySelectorAll('[role="option"]');if(!Number.isFinite(t)||t<=0||e.length<=t){this.#o.style.removeProperty("--combobox-list-max-block");return}let i=e[0].getBoundingClientRect().height;if(!i)return;let r=getComputedStyle(this.#o),n=(parseFloat(r.paddingBlockStart)||0)+(parseFloat(r.paddingBlockEnd)||0)+(parseFloat(r.borderBlockStartWidth)||0)+(parseFloat(r.borderBlockEndWidth)||0);this.#o.style.setProperty("--combobox-list-max-block",`${Math.ceil(i*t+n)}px`)}#I(t){let e=String(t??"");if(!this.highlightMatch||!this.#i)return Fs(e);let i=this.#i,r=new RegExp(y5(i),"i"),n=e.match(r);if(!n)return Fs(e);let o=n.index??0,a=o+n[0].length;return Fs(e.slice(0,o))+"<mark>"+Fs(e.slice(o,a))+"</mark>"+Fs(e.slice(a))}#P(t){if(!this.#i)return!0;let e=this.#i.toLowerCase(),i=String(t.label??t.value??"").toLowerCase();switch(this.filterMode){case"prefix":return i.startsWith(e);case"fuzzy":{let r=0;for(let n of e){if(r=i.indexOf(n,r),r===-1)return!1;r+=1}return!0}default:return i.includes(e)}}#q(t){return this.#i?t.filter(e=>this.#P(e)):t.slice()}#Z(){if(this.#r)return;let t=this.#n.textContent||"";this.#i=t.trim(),this.#n.toggleAttribute("data-empty",!t),this.open||(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"typing"}}))),this.#L();let e=this.#N();this.#i&&e.length&&this.#_(0),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{value:t,query:this.#i.toLowerCase()}}))}#T(t){let e=t.key;if(e==="ArrowDown"){t.preventDefault(),this.open||(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"keyboard"}}))),this.#W(1);return}if(e==="ArrowUp"){if(!this.open)return;t.preventDefault(),this.#W(-1);return}if(e==="Home"&&this.open){t.preventDefault(),this.#_(0);return}if(e==="End"&&this.open){t.preventDefault();let i=this.#N();this.#_(i.length-1);return}if(e==="Enter"){t.preventDefault(),this.#X();return}if(e==="Escape"){this.open&&(t.preventDefault(),this.#st("escape"));return}if(e==="Tab"){this.#Y();return}if(e==="Backspace"){let i=!(this.#n.textContent||"").length;this.clearable&&i&&this.value&&(t.preventDefault(),this.#J("keyboard"));return}}#j(){}#B(t){!this.freeText&&this.#i&&!this.value&&(this.#U(),this.#i="")}#N(){return this.#o?Array.from(this.#o.querySelectorAll('[role="option"]:not([aria-disabled="true"])')):[]}#W(t){let e=this.#N();if(!e.length)return;if(this.#s<0){this.#_(t>0?0:e.length-1);return}let i=(this.#s+t+e.length)%e.length;this.#_(i)}#_(t){let e=this.#N();if(!e.length){this.#s=-1,this.#n?.removeAttribute("aria-activedescendant");return}for(let o of e)o.removeAttribute("data-active");let i=Math.max(0,Math.min(t,e.length-1)),r=e[i];if(!r)return;r.setAttribute("data-active","");let n=this.#o;if(n){let o=r.offsetTop,a=o+r.offsetHeight;o<n.scrollTop?n.scrollTop=o:a>n.scrollTop+n.clientHeight&&(n.scrollTop=a-n.clientHeight)}this.#s=i,this.#n?.setAttribute("aria-activedescendant",r.id)}#F(t){let e=t.currentTarget;if(e.getAttribute("aria-disabled")==="true")return;let i=e.dataset.value||"";this.#H(i,"click")}#z(t){let e=t.currentTarget,r=this.#N().indexOf(e);r>=0&&this.#_(r)}#X(){if(!this.open){this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"keyboard"}}));return}let t=this.#N(),e=this.#s>=0?t[this.#s]:null;if(e){this.#H(e.dataset.value||"","keyboard");return}let i=(this.#n.textContent||"").trim();if(!i){this.#G("select");return}if(this.creatable){this.dispatchEvent(new CustomEvent("create",{bubbles:!0,detail:{value:i}})),this.#K(i,"keyboard");return}if(this.freeText){this.#K(i,"keyboard");return}this.dispatchEvent(new CustomEvent("invalid",{bubbles:!0,detail:{query:i}})),this.#U(),this.#i="",this.#L()}#Y(){if(!this.open)return;let t=this.#N(),e=this.#s>=0?t[this.#s]:null;if(e){this.#H(e.dataset.value||"","keyboard");return}let i=(this.#n.textContent||"").trim();if(i&&(this.freeText||this.creatable)){this.creatable&&!this.#D(i)&&this.dispatchEvent(new CustomEvent("create",{bubbles:!0,detail:{value:i}})),this.#K(i,"keyboard");return}this.#U(),this.#i="",this.#G("blur")}#H(t,e){if(this.readonly){this.#G("select");return}let i=this.#D(t);F(()=>{this.value=t}),this.#e=t,this.#i="",this.syncValue(t),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:t,option:i,source:e}})),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"select"}}))}#K(t,e){if(this.readonly){this.#G("select");return}F(()=>{this.value=t}),this.#e=t,this.#i="",this.syncValue(t),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:t,option:null,source:e}})),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"select"}}))}#tt(t){t.preventDefault(),t.stopPropagation(),this.#J("click"),this.#n?.focus()}#J(t){F(()=>{this.value=""}),this.#e="",this.#i="",this.syncValue(""),this.#U(),this.#L(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{value:"",option:null,source:t}}))}clear(){this.#J("programmatic")}#et(t){t.preventDefault(),t.stopPropagation(),!this.disabled&&(this.open?(this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"outside"}}))):(this.open=!0,this.dispatchEvent(new CustomEvent("open",{bubbles:!0,detail:{trigger:"click"}})),this.#n?.focus()))}#it(t){let e=this.contains(t.target),i=this.#o&&t.composedPath().includes(this.#o);!e&&!i&&(this.#i&&!this.freeText&&(this.#U(),this.#i=""),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:"outside"}})))}#st(t){this.#U(),this.#i="",this.#L(),this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,detail:{reason:t}}))}#rt(){if(!this.#o)return;this.#o.showPopover?.(),this.#M();let t=this.querySelector(":scope > [data-field]")||this;this.#o.style.minWidth=`${t.getBoundingClientRect().width}px`,this.#f?.(),this.#f=ut(t,this.#o,{placement:this.getAttribute("placement")||"bottom-start",gap:4,matchWidth:!1}),this.#p!=null&&cancelAnimationFrame(this.#p),this.#p=requestAnimationFrame(()=>{this.#p=null,document.addEventListener("pointerdown",this.#A)});let e=this.#N();if(!e.length)return;let i=e.findIndex(r=>r.dataset.value===this.value);this.#_(i>=0?i:0)}#G(t){this.#o&&(this.#f?.(),this.#f=null,this.#o.hidePopover?.(),this.#p!=null&&(cancelAnimationFrame(this.#p),this.#p=null),document.removeEventListener("pointerdown",this.#A),this.#s=-1,this.#n?.removeAttribute("aria-activedescendant"))}#U(){if(!this.#n)return;let t=this.#D(this.value),e=t?t.label??t.value??"":this.value||"";(this.#n.textContent||"")!==e&&(this.#r=!0,this.#n.textContent=e,this.#r=!1),this.#n.toggleAttribute("data-empty",!e)}open$(){this.open=!0}close$(){this.open=!1}focus(){this.#n?.focus()}selectOption(t){return this.#D(t)?(this.#H(t,"programmatic"),!0):!1}syncValue(t){let e=t??this.value??"";super.syncValue(String(e))}};S("combobox-ui",Do);$t();var x5=0;function S5(s){return String(s).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var qo=class extends M{static labelDeprecated=!1;static requiredIcons=["circle-notch"];static get properties(){let{value:t,...e}=M.properties;return{...e,placeholder:{type:String,default:"Add tag\u2026",reflect:!0},delimiter:{type:String,default:",",reflect:!0},pasteSplit:{type:String,default:`,
291
291
  `,reflect:!0,attribute:"paste-split"},max:{type:Number,default:0,reflect:!0},min:{type:Number,default:0,reflect:!0},minLength:{type:Number,default:1,reflect:!0,attribute:"min-length"},maxLength:{type:Number,default:0,reflect:!0,attribute:"max-length"},unique:{type:Boolean,default:!0,reflect:!0},transform:{type:String,default:"",reflect:!0},size:{type:String,default:"md",reflect:!0}}}static get observedAttributes(){let t=super.observedAttributes;return t.includes("value")?t:[...t,"value"]}attributeChangedCallback(t,e,i){if(t==="value"){if(i!=null&&e!==i){let r=this.#z(i);r&&(this.value=r)}return}super.attributeChangedCallback(t,e,i)}static template=()=>null;#t=[];#e=[];#i=null;#s=-1;#r=!1;#n=0;#a=null;#o=null;#l=null;#h=null;#c=`tags-input-${++x5}`;#u=()=>this.#R();#d=t=>this.#Q(t);#f=t=>this.#C(t);#p=t=>this.#D(t);#m=t=>this.#L(t);#g=t=>this.#M(t);connected(){if(super.connected(),!this.#t.length&&this.hasAttribute("value")){let t=this.#z(this.getAttribute("value"));t&&(this.#t=t)}this.#O(),this.#v(),this.#E(),this.#$()}disconnected(){super.disconnected(),this.#x(),this.#a=null,this.#o=null,this.#l=null,this.#h=null}render(){this.#o&&(this.disabled||this.readonly?this.#o.contentEditable="false":this.#o.contentEditable="plaintext-only",this.#o.setAttribute("data-placeholder",this.placeholder||""),this.#e.length?(this.setAttribute("role","combobox"),this.setAttribute("aria-haspopup","listbox"),this.setAttribute("aria-expanded",String(!!this.hasAttribute("suggesting")))):(this.setAttribute("role","group"),this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded")),this.hasAttribute("aria-label")||this.setAttribute("aria-label",this.placeholder||"Tags"))}set value(t){F(()=>{let e=Array.isArray(t)?t.map(r=>String(r??"")):typeof t=="string"?this.#z(t)||[]:[],i=this.#t.slice();this.#t=e,this.#v(),this.#E(),this.#$(),this.#j(i,e,"programmatic")})}get value(){return this.#t.slice()}set suggestions(t){F(()=>{this.#e=Array.isArray(t)?t.map(e=>String(e??"")):[],this.#k(),this.render()})}get suggestions(){return this.#e.slice()}set validateFn(t){this.#i=typeof t=="function"?t:null}get validateFn(){return this.#i}addToken(t){return this.#P(String(t??""),"programmatic")}removeToken(t){let e=Number(t);!Number.isInteger(e)||e<0||e>=this.#t.length||this.#T(e,"programmatic")}clear(){if(this.#t.length===0)return;let t=this.#t.slice();this.#t=[],this.#v(),this.#E(),this.#$(),this.#j(t,[],"programmatic")}focus(){this.#o?.focus()}#O(){if(this.querySelector(":scope > [data-chip-list]")){this.#y(),this.#b();return}let t=this.querySelector(':scope > template[slot="chip"]'),e=`${this.#c}-suggestions`,i=`${this.#c}-input`;this.innerHTML=`
292
292
  <div data-chip-list role="list" aria-label="Tags"></div>
293
293
  <span data-inline-input
@@ -395,7 +395,7 @@ Correct shape for <chart-ui x="label" y="value">:
395
395
  `:typeof t=="string"?t:""}#c(t){let e=t.tone||"neutral",i={success:"var(--a-success-strong)",warning:"var(--a-warning-strong)",danger:"var(--a-danger-strong)",info:"var(--a-primary-strong)",neutral:"var(--a-fg-muted)"}[e]||"var(--a-fg-muted)",r=t.dot===!1?"":`<icon-ui name="circle-fill" data-trace-dot style="color:${i}"></icon-ui>`,n=t.label!=null?String(t.label):"",o=t.value!=null?String(t.value):"",a=o?`${o}${n?` ${n}`:""}`:n;return`<span data-trace-pill>${r}<span>${ns(a)}</span></span>`}};function ns(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function lE(s){return String(s).replace(/"/g,"&quot;")}customElements.define("agent-trace-ui",Gl);C();function SO({icon:s,text:t="",title:e=""}){let i=document.createElement("button-ui");return i.setAttribute("icon",s),i.setAttribute("variant","ghost"),i.setAttribute("size","sm"),t&&i.setAttribute("text",t),!t&&e&&i.setAttribute("title",e),i}var ba=class extends v{static properties={saveLabel:{type:String,default:"",reflect:!0,attribute:"save-label"},saveIcon:{type:String,default:"bookmark-simple",reflect:!0,attribute:"save-icon"},disabled:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=null;#e=null;#i=null;#s=null;#r=!1;#n=!1;connected(){this.#u()}disconnected(){this.#t?.removeEventListener("press",this.#a),this.#e?.removeEventListener("press",this.#o),this.#i?.removeEventListener("press",this.#l),this.#t=this.#e=this.#i=this.#s=null}setStatus(t,{lock:e=""}={}){this.#s&&(this.#s.textContent=t||"",(e==="rate"||e==="all")&&(this.#r=!0,this.#t&&(this.#t.disabled=!0),this.#e&&(this.#e.disabled=!0)),(e==="save"||e==="all")&&(this.#n=!0,this.#i&&(this.#i.disabled=!0)))}reset(){this.#r=!1,this.#n=!1,this.#s&&(this.#s.textContent=""),this.#t&&(this.#t.disabled=!1),this.#e&&(this.#e.disabled=!1),this.#i&&(this.#i.disabled=!1)}#a=()=>{!this.#r&&!this.disabled&&this.#h(5)};#o=()=>{!this.#r&&!this.disabled&&this.#h(2)};#l=()=>{!this.#n&&!this.disabled&&this.#c()};#h(t){this.dispatchEvent(new CustomEvent("feedback-rate",{bubbles:!0,detail:{rating:t}})),this.#s?.textContent||this.setStatus(t>=4?"Thanks!":"Noted",{lock:"rate"})}#c(){this.dispatchEvent(new CustomEvent("feedback-save",{bubbles:!0,detail:{}}))}render(){let t=this.saveLabel,e=this.saveIcon;this.#i&&(t?(this.#i.setAttribute("text",t),this.#i.hidden=!1):this.#i.hidden=!0,e&&this.#i.setAttribute("icon",e))}#u(){this.innerHTML="",this.#t=SO({icon:"thumbs-up",title:"Rate this response positively"}),this.#e=SO({icon:"thumbs-down",title:"Rate this response negatively"}),this.#i=SO({icon:this.saveIcon||"bookmark-simple",text:this.saveLabel||"",title:this.saveLabel?"":"Save this response"}),this.saveLabel||(this.#i.hidden=!0),this.#t.addEventListener("press",this.#a),this.#e.addEventListener("press",this.#o),this.#i.addEventListener("press",this.#l),this.#s=document.createElement("span"),this.#s.setAttribute("data-feedback-status",""),this.append(this.#t,this.#e,this.#i,this.#s)}};S("agent-feedback-bar-ui",ba);C();function oD(s,t){return typeof s!="string"?"":s.length>t?s.slice(0,t-1)+"\u2026":s}var Oa=class extends v{static properties={variant:{type:String,default:"outline",reflect:!0},size:{type:String,default:"sm",reflect:!0},disabled:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=[];get suggestions(){return this.#t}set suggestions(t){this.#t=Array.isArray(t)?t.slice():[],this.#e()}connected(){this.#e()}disconnected(){this.innerHTML=""}#e(){this.innerHTML="";for(let t=0;t<this.#t.length;t++){let e=this.#t[t],i=typeof e=="string"?e:e.label||e.prompt||"",r=typeof e=="string"?e:e.prompt||e.label||"",n=typeof e=="object"?e.icon:null,o=document.createElement("button-ui");o.setAttribute("text",oD(i,42)),o.setAttribute("variant",this.variant),o.setAttribute("size",this.size),n&&o.setAttribute("icon",n),this.disabled&&o.setAttribute("disabled",""),o.addEventListener("press",()=>{this.disabled||this.dispatchEvent(new CustomEvent("suggestion-select",{bubbles:!0,detail:{label:i,prompt:r,index:t}}))}),this.appendChild(o)}}};S("agent-suggestions-ui",Oa);C();var ya=class extends v{static properties={multi:{type:Boolean,default:!1,reflect:!0},question:{type:String,default:"",reflect:!0},helper:{type:String,default:"",reflect:!0},submitLabel:{type:String,default:"Continue",reflect:!0,attribute:"submit-label"}};static template=()=>null;#t=[];#e=new Set;#i=!1;#s=null;#r=null;#n=null;#a=null;get options(){return this.#t}set options(t){this.#t=Array.isArray(t)?t.slice():[],this.#e.clear(),this.#i=!1,this.#l()}connected(){this.#o()}disconnected(){this.#a?.removeEventListener("press",this.#f),this.#n?.removeEventListener("change",this.#h),this.#n?.removeEventListener("click",this.#c,!0),this.#n?.removeEventListener("keydown",this.#u,!0),this.#s=this.#r=this.#n=this.#a=null}render(){this.#s&&(this.#s.textContent=this.question||"",this.#s.hidden=!this.question),this.#r&&(this.#r.textContent=this.helper||"",this.#r.hidden=!this.helper),this.#a&&(this.#a.setAttribute("text",this.submitLabel||"Continue"),this.#a.hidden=!this.multi)}#o(){this.innerHTML="",this.#s=document.createElement("div"),this.#s.setAttribute("data-questions-q",""),this.question?this.#s.textContent=this.question:this.#s.hidden=!0,this.#r=document.createElement("div"),this.#r.setAttribute("data-questions-helper",""),this.helper?this.#r.textContent=this.helper:this.#r.hidden=!0,this.#n=document.createElement("div"),this.#n.setAttribute("data-questions-options",""),this.#n.addEventListener("change",this.#h),this.#n.addEventListener("click",this.#c,!0),this.#n.addEventListener("keydown",this.#u,!0),this.#a=document.createElement("button-ui"),this.#a.setAttribute("text",this.submitLabel||"Continue"),this.#a.setAttribute("variant","primary"),this.#a.setAttribute("size","sm"),this.#a.setAttribute("disabled",""),this.multi||(this.#a.hidden=!0),this.#a.addEventListener("press",this.#f),this.append(this.#s,this.#r,this.#n,this.#a),this.#l()}#l(){if(this.#n){this.#n.innerHTML="";for(let t of this.#t){let e=document.createElement("option-card-ui");e.setAttribute("data-questions-option",""),e.setAttribute("data-questions-option-id",t.id),e.name="questions-option",e.value=t.id,e.heading=t.label||"",e.description=t.description||"",e.icon=t.icon||"",this.#n.appendChild(e),this.multi&&e.setAttribute("role","checkbox"),e.checked=this.#e.has(t.id),e.disabled=this.#i}this.#a&&(this.#a.disabled=this.#i||this.#e.size===0)}}#h=t=>{if(this.multi||this.#i)return;let e=t.detail?.value,i=this.#t.find(r=>r.id===e);i&&(this.#e.clear(),this.#e.add(i.id),this.#i=!0,this.#l(),this.dispatchEvent(new CustomEvent("questions-answer",{bubbles:!0,detail:{selected:[i.id],option:i}})))};#c=t=>{if(!this.multi)return;let e=t.target.closest?.("option-card-ui[data-questions-option]");!e||!this.#n.contains(e)||(t.stopPropagation(),this.#d(e))};#u=t=>{if(!this.multi)return;let e=t.target.closest?.("option-card-ui[data-questions-option]");if(!(!e||!this.#n.contains(e))){if(t.key===" "||t.key==="Enter"){t.preventDefault(),t.stopPropagation(),this.#d(e);return}(t.key==="ArrowDown"||t.key==="ArrowUp"||t.key==="ArrowLeft"||t.key==="ArrowRight")&&t.stopPropagation()}};#d(t){if(this.#i)return;let e=t.dataset.questionsOptionId,i=this.#t.find(r=>r.id===e);i&&(this.#e.has(i.id)?this.#e.delete(i.id):this.#e.add(i.id),this.#l())}#f=()=>{if(this.#i||this.#e.size===0)return;this.#i=!0,this.#l();let t=[...this.#e],e=this.#t.find(i=>i.id===t[0])||null;this.dispatchEvent(new CustomEvent("questions-answer",{bubbles:!0,detail:{selected:t,option:e}}))}};S("agent-questions-ui",ya);C();var hE={neutral:"default",accent:"accent",warning:"warning",danger:"danger"},va=class extends v{static properties={title:{type:String,default:"",reflect:!0},kind:{type:String,default:"",reflect:!0},icon:{type:String,default:"",reflect:!0},collapsed:{type:Boolean,default:!1,reflect:!0},tone:{type:String,default:"neutral",reflect:!0}};static requiredIcons=["caret-right","caret-down"];static template=()=>null;#t=null;#e=null;#i=null;#s=null;#r=null;#n=null;connected(){this.#l()}disconnected(){this.#t?.removeEventListener("click",this.#a),this.#t?.removeEventListener("keydown",this.#o),this.#t=this.#e=this.#i=null,this.#s=this.#r=this.#n=null}#a=t=>{t.target.closest('[slot="primary"], [slot="secondary"]')||(this.collapsed=!this.collapsed,this.dispatchEvent(new CustomEvent("artifact-toggle",{bubbles:!0,detail:{collapsed:this.collapsed}})),this.render())};#o=t=>{if(t.key===" "||t.key==="Enter"){if(t.target.closest('[slot="primary"], [slot="secondary"]'))return;t.preventDefault(),this.#a(t)}};render(){this.#t&&(this.#e&&(this.icon?(this.#e.setAttribute("name",this.icon),this.#e.hidden=!1):this.#e.hidden=!0),this.#i&&(this.#i.textContent=this.title||"",this.#i.hidden=!this.title),this.#s&&(this.#s.setAttribute("text",(this.kind||"").toUpperCase()),this.#s.setAttribute("variant",hE[this.tone]||"default"),this.#s.hidden=!this.kind),this.#r&&this.#r.setAttribute("name",this.collapsed?"caret-right":"caret-down"),this.#n&&(this.#n.hidden=this.collapsed),this.#t&&this.#t.setAttribute("aria-expanded",String(!this.collapsed)))}#l(){let t=[],e=[],i=[],r=a=>a.getAttribute("role")==="presentation"||a.style?.display==="contents",n=a=>{for(let l of a){if(l.nodeType===1){let h=l;if(r(h)){n(h.childNodes);continue}let c=h.getAttribute("slot")||"";if(c==="primary"){t.push(h);continue}if(c==="secondary"){e.push(h);continue}}i.push(l)}};n(Array.from(this.childNodes)),this.innerHTML="",this.#t=document.createElement("div"),this.#t.setAttribute("data-artifact-header",""),this.#t.setAttribute("role","button"),this.#t.setAttribute("tabindex","0"),this.#t.setAttribute("aria-expanded",String(!this.collapsed)),this.#t.addEventListener("click",this.#a),this.#t.addEventListener("keydown",this.#o),this.#e=document.createElement("icon-ui"),this.#e.setAttribute("data-artifact-icon",""),this.#e.setAttribute("color","muted"),this.icon?this.#e.setAttribute("name",this.icon):this.#e.hidden=!0,this.#i=document.createElement("span"),this.#i.setAttribute("data-artifact-title",""),this.title?this.#i.textContent=this.title:this.#i.hidden=!0,this.#s=document.createElement("badge-ui"),this.#s.setAttribute("data-artifact-kind",""),this.#s.setAttribute("size","sm"),this.#s.setAttribute("variant",hE[this.tone]||"default"),this.kind?this.#s.setAttribute("text",this.kind.toUpperCase()):this.#s.hidden=!0;let o=document.createElement("span");o.setAttribute("data-artifact-actions","");for(let a of e)o.appendChild(a);for(let a of t)o.appendChild(a);this.#r=document.createElement("icon-ui"),this.#r.setAttribute("color","muted"),this.#r.setAttribute("data-artifact-caret",""),this.#r.setAttribute("name",this.collapsed?"caret-right":"caret-down"),this.#t.append(this.#e,this.#i,this.#s,o,this.#r),this.#n=document.createElement("div"),this.#n.setAttribute("data-artifact-body","");for(let a of i)this.#n.appendChild(a);this.collapsed&&(this.#n.hidden=!0),this.append(this.#t,this.#n)}};S("agent-artifact-ui",va);C();var aD="rounded borderless",Kl=class s extends v{static properties={mode:{type:String,default:"",reflect:!0}};static template=()=>null;connected(){this.hasAttribute("mode")||(this.mode=aD),this.addEventListener("click",this.#e),this.#i()}#t(t){return this.querySelector(`admin-sidebar[slot="${t}"], admin-sidebar[name="${t}"]`)}#e=t=>{let e=t.target.closest("[data-sidebar-toggle]");if(e&&this.contains(e)){let r=e.getAttribute("data-sidebar-toggle"),n=this.#t(r);n&&typeof n.toggle!="function"&&this.#r("admin-sidebar",`slot="${r}"`,"Sidebar toggle"),n?.toggle?.();return}let i=t.target.closest("[data-command-trigger]");if(i&&this.contains(i)){t.stopPropagation();let r=this.querySelector("admin-command");if(!r)return;if(typeof r.show!="function"){this.#r("admin-command","","Command palette");return}r.show()}};#i(){let t=this.querySelector("admin-command"),e=this.querySelector("nav-ui");!t||!e||t.addEventListener("command-select",i=>{let r=e.querySelector(`nav-item-ui[value="${i.detail.value}"]`);r&&e.select(r)})}static#s=new WeakSet;#r(t,e,i){let r=e?this.querySelector(`${t}[${e}], ${t}[${e.replace("slot=","name=")}]`):this.querySelector(t);if(!r||s.#s.has(r))return;s.#s.add(r);let n=t==="admin-sidebar"?"shell/admin-sidebar":"shell/admin-command";console.warn(`[admin-shell] <${t}${e?" "+e:""}> is in the DOM but ${t==="admin-sidebar"?"AdminSidebar":"AdminCommand"} is NOT registered \u2014 ${i} will not work. Import the cluster barrel \`@adia-ai/web-modules/shell\` (which registers all shell elements), OR add \`@adia-ai/web-modules/${n}\` alongside \`@adia-ai/web-modules/shell/admin-shell\` on the per-component path. Closes FB-55 silent-failure trap.`)}};customElements.define("admin-shell",Kl);C();var xa=96,cE=160,Jl=class s extends v{static properties={collapsed:{type:Boolean,default:!1,reflect:!0},resizing:{type:Boolean,default:!1,reflect:!0},resizable:{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!1,reflect:!0},name:{type:String,default:"",reflect:!0},minWidth:{type:String,default:"",reflect:!0,attribute:"min-width"}};static template=()=>null;static#t=new WeakSet;#e="";#i=[];#s=null;connected(){this.#a(),this.resizable&&this.#l(),this.#h(),this.#o()}disconnected(){for(let t of this.#i)t();this.#i=[],this.#s?.disconnect(),this.#s=null}toggle(){return this.collapsed?this.expand():this.collapse(),this.collapsed}collapse(){if(this.collapsed)return;let t=this.style.width||getComputedStyle(this).width;parseFloat(t)>xa&&(this.#e=t);let e=this.minWidth||getComputedStyle(this).minWidth;this.style.width=e,this.#n(e),this.collapsed=!0,this.#c(!1)}expand(){if(!this.collapsed)return;let t=this.#e||"";this.style.width=t,this.#n(t),this.collapsed=!1,this.#c(!0)}#r(){return`adia-sidebar-${this.name||this.getAttribute("slot")||"default"}`}#n(t){try{localStorage.setItem(this.#r(),t)}catch{}}#a(){try{let t=localStorage.getItem(this.#r());if(!t)return;this.style.width=t;let e=parseFloat(t);!isNaN(e)&&e>xa&&(this.#e=t)}catch{}}#o(){let t=this.getBoundingClientRect().width;t!==0&&(this.collapsed=t<=xa)}#l(){let t=this.querySelector(":scope > [data-resize]");if(!t){s.#t.has(this)||(s.#t.add(this),console.warn("[admin-sidebar] `resizable` is set but no `[data-resize]` child was found. Add `<div data-resize></div>` as a direct child to enable drag-to-resize. (Unlike `collapsible`, `resizable` requires this author-supplied handle.)",this));return}let e=this.getAttribute("slot"),i=e==="leading",r=n=>{n.preventDefault(),t.setPointerCapture(n.pointerId);let o=n.clientX,a=this.getBoundingClientRect().width;this.resizing=!0,document.documentElement.style.cursor="col-resize";let l=c=>{let u=c.clientX-o,d=parseInt(getComputedStyle(this).getPropertyValue("max-width"))||480,f=Math.max(48,Math.min(d,a+(i?u:-u)));this.style.width=`${f}px`},h=()=>{this.resizing=!1,document.documentElement.style.cursor="",t.removeEventListener("pointermove",l),t.removeEventListener("pointerup",h);let c=this.getBoundingClientRect().width;c<=xa?this.style.width=this.minWidth||getComputedStyle(this).minWidth:c<cE&&(this.style.width=`${cE}px`),this.#n(this.style.width),this.#o(),this.dispatchEvent(new CustomEvent("sidebar-resize",{bubbles:!0,detail:{name:this.name||e,width:this.getBoundingClientRect().width}}))};t.addEventListener("pointermove",l),t.addEventListener("pointerup",h)};t.addEventListener("pointerdown",r),this.#i.push(()=>t.removeEventListener("pointerdown",r))}#h(){typeof ResizeObserver>"u"||(this.#s=new ResizeObserver(t=>{for(let e of t){let i=e.contentBoxSize[0].inlineSize;i>0&&(this.collapsed=i<=xa);for(let r of this.querySelectorAll("select-ui"))r.setAttribute("placement",i<=xa?"right":"bottom-start")}}),this.#s.observe(this))}#c(t){this.dispatchEvent(new CustomEvent("sidebar-toggle",{bubbles:!0,detail:{name:this.name||this.getAttribute("slot")||"default",expanded:t}}))}};customElements.define("admin-sidebar",Jl);C();var th=class extends v{static properties={open:{type:Boolean,default:!1,reflect:!0},shortcut:{type:String,default:"both",reflect:!0},noShortcut:{type:Boolean,default:!1,reflect:!0,attribute:"no-shortcut"}};static template=()=>null;#t=null;#e=null;#i=null;connected(){if(this.#i=this.querySelector(":scope > dialog"),!this.#i){for(this.#i=document.createElement("dialog");this.firstChild;)this.#i.appendChild(this.firstChild);this.appendChild(this.#i)}this.#e=this.querySelector("command-ui"),this.#s(),this.#r(),this.noShortcut||this.#n()}disconnected(){this.#t&&(document.removeEventListener("keydown",this.#t),this.#t=null)}show(){this.#i&&(this.#i.open||(this.#i.showModal(),this.#e&&(this.#e.open=!0,this.#e.value="",this.#e.focus()),this.open=!0))}hide(){this.#i&&this.#i.open&&(this.#i.close(),this.#e&&(this.#e.open=!1),this.open=!1)}toggle(){return this.open?this.hide():this.show(),this.open}#s(){this.#i&&(this.#i.addEventListener("click",t=>{t.target===this.#i&&this.hide()}),this.#i.addEventListener("close",()=>{this.#e&&(this.#e.open=!1),this.open=!1}))}#r(){this.#e&&(this.#e.addEventListener("dismiss",()=>this.hide()),this.#e.addEventListener("select",t=>{this.dispatchEvent(new CustomEvent("command-select",{bubbles:!0,detail:t.detail})),this.hide()}))}#n(){let t=e=>{let i=e.metaKey,r=e.ctrlKey;return e.key!=="k"?!1:this.shortcut==="cmd+k"?i:this.shortcut==="ctrl+k"?r:i||r};this.#t=e=>{t(e)&&(e.preventDefault(),this.toggle())},document.addEventListener("keydown",this.#t)}};customElements.define("admin-command",th);C();var eh=class extends v{static template=()=>null;connected(){this.addEventListener("click",this.#t),this.addEventListener("embed:open",this.#e),this.addEventListener("keydown",this.#i)}#t=t=>{let e=t.target.closest?.("[opens]");if(e&&this.contains(e)){this.toggle(e.getAttribute("opens"));return}let i=t.target.closest?.("[close]");i&&this.contains(i)&&this.close()};#e=t=>this.toggle(t.detail?.panel);#i=t=>{t.key==="Escape"&&this.panel&&(t.stopPropagation(),this.close())};get panel(){return this.getAttribute("panel")||""}toggle(t){return this.panel===t?this.close():this.open(t)}open(t){if(!t)return;let e=this.querySelector(`:scope > [panel="${CSS.escape(t)}"]`);if(e){for(let i of this.querySelectorAll(":scope > [panel][active]"))i!==e&&i.removeAttribute("active");e.setAttribute("active",""),this.setAttribute("panel",t),requestAnimationFrame(()=>e.querySelector("[autofocus], [close], button-ui, [tabindex]")?.focus?.({preventScroll:!0})),this.#s(t)}}close(){this.panel&&(this.querySelector(":scope > [panel][active]")?.removeAttribute("active"),this.removeAttribute("panel"),this.#s(""))}#s(t){this.dispatchEvent(new CustomEvent("embed:change",{detail:{panel:t},bubbles:!0}))}};customElements.define("embed-shell",eh);vE();C();function $O(s){return s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var gD=0,ih=class extends v{static properties={streaming:{type:Boolean,default:!1,reflect:!0},provider:{type:String,default:"",reflect:!0},model:{type:String,default:"",reflect:!0},system:{type:String,default:"",reflect:!0},proxyUrl:{type:String,default:"",attribute:"proxy-url",reflect:!0},thinking:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=[];#e=null;#i=null;#s=null;#r=null;#n=null;#a="";get messages(){return[...this.#t]}get conversation(){return this.#t.filter(t=>t.role==="user"||t.role==="assistant").map(t=>t.html?{role:t.role,content:t.content,html:!0}:{role:t.role,content:t.content})}set conversation(t){this.clear();for(let e of t)this.appendMessage({role:e.role,content:e.content,render:!e.html,html:!!e.html})}set apiKey(t){this.#a=t}connected(){this.#i=this.querySelector("chat-thread"),this.#s=this.querySelector("chat-composer"),this.#r=this.querySelector("chat-empty"),this.#n=this.querySelector("chat-status"),this.#s?.addEventListener("composer-submit",this.#l)}disconnected(){this.#s?.removeEventListener("composer-submit",this.#l),this.abort()}#o(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}))}#l=t=>{if(this.streaming)return;let{text:e,model:i}=t.detail||{};e&&(this.#s.clear(),this.#o("submit",{text:e,model:i}),(this.proxyUrl||this.#a)&&this.send(e,i?{model:i}:{}))};appendMessage({role:t,content:e="",render:i=!1,html:r=!1}){let n=`msg_${++gD}`;this.#t.push({id:n,role:t,content:e,html:r});let o=document.createElement("div");if(o.setAttribute("data-role",t),o.setAttribute("data-id",n),t==="user")o.innerHTML=`<div data-bubble>${$O(e)}</div>`;else if(t==="assistant"){let a=i||r,l=r?e:i&&e?ui(e):$O(e);o.innerHTML=`
396
396
  <span data-avatar>AI</span>
397
397
  <div data-bubble><div data-content>${l}</div>${a?"":"<span data-cursor></span>"}</div>
398
- `}else t==="error"&&(o.innerHTML=`<icon-ui name="warning"></icon-ui><span>${$O(e)}</span>`);return this.#i?.appendChild(o),this.#h(),this.#o("message",{id:n,role:t,content:e}),o}appendChunk(t){let e=this.#t[this.#t.length-1];if(!e||e.role!=="assistant")return;e.content+=t;let i=this.#i?.querySelector("[data-role]:last-child [data-content]");i&&i.insertAdjacentText("beforeend",t),this.#h()}deleteMessage(t){let e=this.#t.findIndex(i=>i.id===t);e!==-1&&(this.#t.splice(e,1),this.#i?.querySelector(`[data-id="${t}"]`)?.remove())}clear(){if(this.#t.length=0,this.#i){let t=this.#r;this.#i.innerHTML="",t&&this.#i.appendChild(t)}this.#o("clear")}startStreaming(){this.streaming=!0,this.#s&&(this.#s.disabled=!0),this.#n&&(this.#n.textContent="Typing..."),this.#i?.tagName?.toLowerCase()==="chat-thread"&&(this.#i.streaming=!0)}stopStreaming(){this.streaming=!1,this.#s&&(this.#s.disabled=!1),this.#n&&(this.#n.textContent=""),this.#i?.tagName?.toLowerCase()==="chat-thread"&&(this.#i.streaming=!1),this.#i?.querySelector("[data-role]:last-child [data-cursor]")?.remove();let t=this.#t[this.#t.length-1];if(t?.role==="assistant"&&t.content&&!t.html){let e=this.#i?.querySelector("[data-role]:last-child [data-content]");e&&(e.innerHTML=ui(t.content),this.#c(e))}this.#s?.focus()}abort(){this.#e&&(this.#e.abort(),this.#e=null,this.#o("abort")),this.streaming&&this.stopStreaming()}async send(t,e={}){let i=e.model||this.model||this.#s?.model;if(!i)throw new Error("No model specified");this.appendMessage({role:"user",content:t}),this.appendMessage({role:"assistant",content:""}),this.startStreaming(),this.#e=new AbortController;try{let r={provider:this.provider||void 0,apiKey:this.#a||void 0,model:i,system:this.system||void 0,proxyUrl:this.proxyUrl||void 0,thinking:this.thinking||void 0,messages:this.conversation.slice(0,-1),signal:this.#e.signal,...e};for await(let n of kd(r))n.type==="text"?(this.appendChunk(n.text),this.#o("chunk",{text:n.text,snapshot:n.snapshot})):n.type==="thinking"?this.#o("thinking",{text:n.text}):n.type==="done"?this.#o("done",{text:n.text,usage:n.usage,stopReason:n.stopReason}):n.type==="error"&&(this.appendMessage({role:"error",content:n.error.message}),this.#o("error",{error:n.error}))}catch(r){r.name!=="AbortError"&&(this.appendMessage({role:"error",content:r.message}),this.#o("error",{error:r}))}this.#e=null,this.stopStreaming()}export(){return{messages:this.#t.map(t=>({role:t.role,content:t.content})),model:this.model,system:this.system}}import(t){t.model&&(this.model=t.model),t.system&&(this.system=t.system),t.messages&&(this.conversation=t.messages)}#h(){let t=this.#i;t&&requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight})}#c(t){for(let e of t.querySelectorAll("pre")){let i=e.querySelector("code");if(!i)continue;let r=i.getAttribute("data-lang")||"",n=document.createElement("code-ui");r&&n.setAttribute("language",r),n.textContent=i.textContent,e.replaceWith(n)}}};customElements.define("chat-shell",ih);C();var bD=40,sh=class extends v{static properties={streaming:{type:Boolean,default:!1,reflect:!0},empty:{type:Boolean,default:!0,reflect:!0}};static template=()=>null;#t=null;#e=!0;#i=null;connected(){this.#s(),this.#r(),this.#n()}disconnected(){this.#t?.disconnect(),this.#t=null,this.#i&&(this.removeEventListener("scroll",this.#i),this.#i=null)}scrollToBottom(){this.scrollTo({top:this.scrollHeight,behavior:"smooth"})}scrollToBottomInstant(){this.scrollTop=this.scrollHeight}#s(){let t=Array.from(this.children).filter(e=>e.tagName.toLowerCase()!=="chat-empty");this.empty=t.length===0}#r(){typeof MutationObserver>"u"||(this.#t=new MutationObserver(()=>{this.#s(),this.#e&&this.scrollToBottomInstant()}),this.#t.observe(this,{childList:!0}))}#n(){this.#i=()=>{let t=this.scrollHeight-(this.scrollTop+this.clientHeight);this.#e=t<=bD},this.addEventListener("scroll",this.#i,{passive:!0})}};customElements.define("chat-thread",sh);C();var rh=class extends v{static properties={disabled:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=null;#e=null;connected(){this.#t=this.querySelector("chat-input-ui")||this.querySelector("input-ui")||this.querySelector("textarea-ui"),this.#e=t=>{this.dispatchEvent(new CustomEvent("composer-submit",{bubbles:!0,detail:t.detail||{}}))},this.#t?.addEventListener("submit",this.#e),this.#i()}disconnected(){this.#t&&this.#e&&this.#t.removeEventListener("submit",this.#e),this.#t=null,this.#e=null}attributeChangedCallback(t,e,i){super.attributeChangedCallback?.(t,e,i),t==="disabled"&&this.#i()}focus(){this.#t?.focus?.()}clear(){this.#t?.clear?.()}get input(){return this.#t}#i(){this.#t&&(this.disabled?this.#t.setAttribute("disabled",""):this.#t.removeAttribute("disabled"))}};customElements.define("chat-composer",rh);C();var nh=96,xE=160,oh=class extends v{static properties={collapsed:{type:Boolean,default:!1,reflect:!0},resizing:{type:Boolean,default:!1,reflect:!0},resizable:{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!1,reflect:!0},name:{type:String,default:"",reflect:!0},minWidth:{type:String,default:"",reflect:!0,attribute:"min-width"}};static template=()=>null;#t="";#e=[];#i=null;connected(){this.#n(),this.resizable&&this.#o(),this.#l(),this.#a()}disconnected(){for(let t of this.#e)t();this.#e=[],this.#i?.disconnect(),this.#i=null}toggle(){return this.collapsed?this.expand():this.collapse(),this.collapsed}collapse(){if(this.collapsed)return;let t=this.style.width||getComputedStyle(this).width;parseFloat(t)>nh&&(this.#t=t);let e=this.minWidth||getComputedStyle(this).minWidth;this.style.width=e,this.#r(e),this.collapsed=!0,this.#h(!1)}expand(){if(!this.collapsed)return;let t=this.#t||"";this.style.width=t,this.#r(t),this.collapsed=!1,this.#h(!0)}#s(){return`adia-chat-sidebar-${this.name||this.getAttribute("slot")||"default"}`}#r(t){try{localStorage.setItem(this.#s(),t)}catch{}}#n(){try{let t=localStorage.getItem(this.#s());if(!t)return;this.style.width=t;let e=parseFloat(t);!isNaN(e)&&e>nh&&(this.#t=t)}catch{}}#a(){let t=this.getBoundingClientRect().width;this.collapsed=t<=nh}#o(){let t=this.querySelector(":scope > [data-resize]");if(!t)return;let e=this.getAttribute("slot"),i=e==="leading",r=n=>{n.preventDefault(),t.setPointerCapture(n.pointerId);let o=n.clientX,a=this.getBoundingClientRect().width;this.resizing=!0,document.documentElement.style.cursor="col-resize";let l=c=>{let u=c.clientX-o,d=parseInt(getComputedStyle(this).getPropertyValue("max-width"))||480,f=Math.max(48,Math.min(d,a+(i?u:-u)));this.style.width=`${f}px`},h=()=>{this.resizing=!1,document.documentElement.style.cursor="",t.removeEventListener("pointermove",l),t.removeEventListener("pointerup",h);let c=this.getBoundingClientRect().width;c<=nh?this.style.width=this.minWidth||getComputedStyle(this).minWidth:c<xE&&(this.style.width=`${xE}px`),this.#r(this.style.width),this.#a(),this.dispatchEvent(new CustomEvent("sidebar-resize",{bubbles:!0,detail:{name:this.name||e,width:this.getBoundingClientRect().width}}))};t.addEventListener("pointermove",l),t.addEventListener("pointerup",h)};t.addEventListener("pointerdown",r),this.#e.push(()=>t.removeEventListener("pointerdown",r))}#l(){typeof ResizeObserver>"u"||(this.#i=new ResizeObserver(t=>{for(let e of t){let i=e.contentBoxSize[0].inlineSize<=nh;for(let r of this.querySelectorAll("select-ui"))r.setAttribute("placement",i?"right":"bottom-start")}}),this.#i.observe(this))}#h(t){this.dispatchEvent(new CustomEvent("sidebar-toggle",{bubbles:!0,detail:{name:this.name||this.getAttribute("slot")||"default",expanded:t}}))}};customElements.define("chat-sidebar",oh);C();var ah=class extends v{static properties={focusMode:{type:Boolean,default:!1,reflect:!0,attribute:"focus-mode"}};static template=()=>null;#t=null;#e=null;#i=null;connected(){this.#t=this.querySelector("editor-toolbar"),this.#e=this.querySelector("editor-canvas"),this.#s(),this.#i=t=>{let e=t?.detail?.name;e&&(e==="toggle-focus"||e==="full-screen")&&this.toggleFocusMode()},this.addEventListener("toolbar-action",this.#i)}disconnected(){this.#i&&this.removeEventListener("toolbar-action",this.#i),this.#i=null}toggleFocusMode(){this.focusMode=!this.focusMode,this.#t?.tagName?.toLowerCase()==="editor-toolbar"&&(this.#t.fullScreen=this.focusMode),this.#e?.tagName?.toLowerCase()==="editor-canvas"&&(this.focusMode?this.#e.focus?.():this.#e.blur?.()),this.dispatchEvent(new CustomEvent("editor-mode-change",{bubbles:!0,detail:{focusMode:this.focusMode}}))}#s(){for(let t of this.querySelectorAll("select-ui[data-options]"))try{let e=JSON.parse(t.getAttribute("data-options"));t.options=e}catch{}}};customElements.define("editor-shell",ah);C();var lh=class extends v{static properties={fullScreen:{type:Boolean,default:!1,reflect:!0,attribute:"full-screen"}};static template=()=>null;#t=null;connected(){this.#t=t=>{let e=t.target.closest("[data-toolbar-action]");if(!e||!this.contains(e))return;let i=e.getAttribute("data-toolbar-action");this.dispatchEvent(new CustomEvent("toolbar-action",{bubbles:!0,detail:{name:i}}))},this.addEventListener("click",this.#t)}disconnected(){this.#t&&this.removeEventListener("click",this.#t),this.#t=null}};customElements.define("editor-toolbar",lh);C();var hh=class extends v{static properties={empty:{type:Boolean,default:!0,reflect:!0},focused:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=1;#e=null;connected(){this.#i(),this.#s()}disconnected(){this.#e?.disconnect(),this.#e=null}get zoom(){return this.#t}set zoom(t){let e=parseFloat(t);!isFinite(e)||e<=0||(this.#t=e,this.style.setProperty("--editor-canvas-zoom",String(e)))}resetView(){this.zoom=1}focus(){super.focus?.(),this.focused=!0}blur(){super.blur?.(),this.focused=!1}#i(){let t=Array.from(this.children).filter(e=>e.tagName.toLowerCase()!=="editor-canvas-empty");this.empty=t.length===0}#s(){typeof MutationObserver>"u"||(this.#e=new MutationObserver(()=>{this.#i()}),this.#e.observe(this,{childList:!0}))}};customElements.define("editor-canvas",hh);C();var ch=96,OD="adia-editor-sidebar-",uh=class extends v{static properties={collapsed:{type:Boolean,default:!1,reflect:!0},resizing:{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=null;#e=null;#i=null;#s=null;#r=null;#n=null;#a=null;#o=!1;#l=null;connected(){if(this.#t=this.querySelector("pane-ui"),!this.#t)return;let t=this.getAttribute("slot")||"leading",e=this.getAttribute("persist")||this.getAttribute("name")||t;this.#i=`${OD}${e}`,this.#m(),typeof ResizeObserver<"u"&&(this.#e=new ResizeObserver(i=>{if(getComputedStyle(this).display==="none")return;this.#u();let r=this.#t.offsetWidth;r>0&&(this.style.width=`${r}px`)}),this.#e.observe(this.#t)),this.#s=i=>{i.target?.closest?.('[slot="resize"], [data-resize], [class*="handle"]')&&(this.resizing=!0)},this.#t.addEventListener("pointerdown",this.#s),this.#r=()=>{this.resizing&&(this.resizing=!1),this.#f()},document.addEventListener("pointerup",this.#r),this.#n=i=>{i.target!==this.#t||i.propertyName!=="width"||(this.#c(),this.#u())},this.#t.addEventListener("transitionend",this.#n)}disconnected(){this.#a!==null&&(cancelAnimationFrame(this.#a),this.#a=null),this.#l!==null&&(clearTimeout(this.#l),this.#l=null),this.#e?.disconnect(),this.#e=null,this.#s&&this.#t&&(this.#t.removeEventListener("pointerdown",this.#s),this.#s=null),this.#r&&(document.removeEventListener("pointerup",this.#r),this.#r=null),this.#n&&this.#t&&(this.#t.removeEventListener("transitionend",this.#n),this.#n=null)}toggle(){return this.collapsed?this.expand():this.collapse(),this.collapsed}collapse(){this.#t&&(this.collapsed||this.#f(),this.#t.style.width=`${ch}px`,this.collapsed=!0,this.#d())}expand(){if(!this.#t)return;let t=this.#p(),e=t&&t>ch?t:240;this.#t.style.width=`${e}px`,this.collapsed=!1,this.#f(),this.#d(),this.#h()}#h(){this.#l!==null&&(clearTimeout(this.#l),this.#l=null);let t=getComputedStyle(this.#t).transitionDuration.split(",")[0].trim(),e=(parseFloat(t)||0)*(t.endsWith("ms")?1:1e3);e<=0||(this.#o=!0,this.#l=setTimeout(()=>{this.#l=null,this.#c(),this.#u()},e+50))}#c(){this.#o=!1,this.#l!==null&&(clearTimeout(this.#l),this.#l=null)}#u(){if(!this.#t||getComputedStyle(this).display==="none")return;let t=this.#t.getBoundingClientRect();if(t.width!==0){if(t.width>ch){this.#a!==null&&(cancelAnimationFrame(this.#a),this.#a=null),this.collapsed=!1;return}this.#o||this.#a===null&&(this.#a=requestAnimationFrame(()=>{if(this.#a=null,!this.#t||getComputedStyle(this).display==="none"||this.#o)return;let e=this.#t.getBoundingClientRect();e.width>0&&e.width<=ch&&(this.collapsed=!0)}))}}#d(){let t=this.getAttribute("slot")||"leading",e=this.getAttribute("persist")||this.getAttribute("name")||t;this.dispatchEvent(new CustomEvent("sidebar-toggle",{bubbles:!0,detail:{name:e,expanded:!this.collapsed}}))}#f(){if(!(!this.#t||!this.#i))try{let t=this.#t.style.width||"";t&&localStorage.setItem(this.#i,t)}catch{}}#p(){if(!this.#i)return null;try{let t=localStorage.getItem(this.#i);if(!t)return null;let e=parseFloat(t);return isFinite(e)?e:null}catch{return null}}#m(){if(!this.#t)return;let t=this.#p();t&&t>0&&(this.#t.style.width=`${t}px`,this.collapsed=t<=ch)}};customElements.define("editor-sidebar",uh);function yD(){let s=document.activeElement;if(!s)return!1;let t=s.tagName;return!!(t==="INPUT"||t==="TEXTAREA"||s.isContentEditable||t==="INPUT-UI"||t==="TEXTAREA-UI"||t==="OTP-INPUT-UI"||t==="SEARCH-UI")}C();var dh=class extends v{static properties={centered:{type:Boolean,default:!1,reflect:!0},"full-bleed":{type:Boolean,default:!1,reflect:!0}};static template=()=>null};customElements.get("simple-shell")||customElements.define("simple-shell",dh);C();var Ad=class extends v{static properties={mode:{type:String,default:"chat",reflect:!0},inspector:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=!1;#e=null;#i=null;#s=null;connected(){}render(){this.#t||(this.#t=!0,this.#e=document.createElement("chat-thread-ui"),this.#i=document.createElement("canvas-ui"),this.appendChild(this.#e),this.appendChild(this.#i),this.inspector&&(this.#s=document.createElement("inspector-ui"),this.appendChild(this.#s)))}appendMessage(t){this.#e?.appendMessage(t)}appendCoT(t){this.#e?.appendCoT(t)}pushArtifact(t){this.mode==="chat"&&(this.mode="split"),this.#i?.processAll(t)}setSuggestions(t){this.#e?.setSuggestions(t)}appendResultMessage(t){this.#e?.appendResultMessage(t)}showSavePatternBar(t){this.#e?.showSavePatternBar(t)}showFeedbackWidget(t){this.#e?.showFeedbackWidget(t)}showTyping(){this.#e?.showTyping()}hideTyping(){this.#e?.hideTyping()}appendError(t){this.#e?.appendError(t)}startPipelineStatus(){return this.#e?.startPipelineStatus()}updatePipelineStatus(t){this.#e?.updatePipelineStatus(t)}completePipelineStatus(){this.#e?.completePipelineStatus()}reset(){this.#e?.clear(),this.#i?.reset(),this.mode="chat"}get thread(){return this.#e}get canvas(){return this.#i}get inspect(){return this.#s}};customElements.define("gen-root",Ad);vO();C();var vD=["atlas","signal","terrarium","ledger","arcade","meridian","solstice","glacier","ember","botanica","vector","velour"],xD={compact:{density:.85,radius:.75},default:{density:1,radius:1},spacious:{density:1.15,radius:1.25}},PO=["","ui-sm","ui-md","ui-lg","content-sm","content-md","content-lg"],SE=s=>s.length?s[0].toUpperCase()+s.slice(1):s,fh=class extends v{static properties={themes:{type:String,default:vD.join(" "),reflect:!0},parametric:{type:Boolean,default:!1,reflect:!0},presets:{type:Boolean,default:!1,reflect:!0},schemeToggle:{type:Boolean,default:!1,reflect:!0,attribute:"scheme-toggle"},persist:{type:Boolean,default:!1,reflect:!0},storagePrefix:{type:String,default:"adia-theme-",reflect:!0,attribute:"storage-prefix"},target:{type:String,default:":root",reflect:!0},scheme:{type:String,default:"auto",reflect:!0},activeTheme:{type:String,default:"",reflect:!0,attribute:"active-theme"},activeScheme:{type:String,default:"",reflect:!0,attribute:"active-scheme"},activeDensity:{type:String,default:"",reflect:!0,attribute:"active-density"},activeRadius:{type:String,default:"",reflect:!0,attribute:"active-radius"},register:{type:Boolean,default:!1,reflect:!0},activeScale:{type:String,default:"",reflect:!0,attribute:"active-scale"}};static template=()=>null;#t=null;#e=null;#i=[];#s=null;#r=null;#n=null;#a=null;#o=null;#l=null;#h=!1;connected(){this.#h||(this.#c(),this.#h=!0,this.#g(),this.#y())}disconnected(){for(let t of this.#i)t();this.#i=[],this.#x()}apply(t={}){this.#p(t,"programmatic")}reset(){let t=this.#v();if(t.removeAttribute("theme"),t.style.removeProperty("--a-density"),t.style.removeProperty("--a-radius-k"),t.style.removeProperty("color-scheme"),t.removeAttribute("scale"),this.persist)for(let i of["theme","scheme","density","radius","scale"])try{localStorage.removeItem(`${this.storagePrefix}${i}`)}catch{}this.activeTheme="",this.activeDensity="",this.activeRadius="",this.activeScale="";let e=this.#O();this.activeScheme=e,this.#n&&(this.#n.value=e),this.#s&&(this.#s.value=1),this.#r&&(this.#r.value=1),this.#a&&(this.#a.value=""),this.#o&&(this.#o.value=""),this.#m("reset")}#c(){let t=document.createDocumentFragment();if(this.schemeToggle){let o=document.createElement("div");o.setAttribute("part","scheme");let a=document.createElement("segmented-ui");a.id=`${this.#S}-scheme`;let l=document.createElement("segment-ui");l.setAttribute("value","light"),l.setAttribute("text","Light");let h=document.createElement("segment-ui");h.setAttribute("value","dark"),h.setAttribute("text","Dark"),a.append(l,h),o.appendChild(a),t.appendChild(o),this.#n=a}let e=(this.themes||"").trim().split(/\s+/).filter(Boolean);if(e.length){let o=document.createElement("div");o.setAttribute("part","theme-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Theme",o.appendChild(a);let l=document.createElement("select-ui");l.setAttribute("part","themes"),l.setAttribute("size","sm"),l.id=`${this.#S}-theme`;let h=(c,u)=>{let d=document.createElement("option");return d.value=c,d.textContent=u,d};l.append(h("","Default"),...e.map(c=>h(c,SE(c)))),l.setAttribute("value",""),o.appendChild(l),t.appendChild(o),this.#o=l}if(this.parametric){t.appendChild(document.createElement("divider-ui"));let o=document.createElement("text-ui");o.setAttribute("variant","label"),o.textContent="Parametric",t.appendChild(o);let a=document.createElement("slider-ui");a.setAttribute("part","density"),a.setAttribute("label","Density"),a.setAttribute("value","1"),a.setAttribute("min","0.5"),a.setAttribute("max","1.5"),a.setAttribute("step","0.05"),a.setAttribute("suffix","\xD7"),t.appendChild(a),this.#s=a;let l=document.createElement("slider-ui");l.setAttribute("part","radius"),l.setAttribute("label","Radius"),l.setAttribute("value","1"),l.setAttribute("min","0"),l.setAttribute("max","2"),l.setAttribute("step","0.1"),l.setAttribute("suffix","\xD7"),t.appendChild(l),this.#r=l}if(this.presets||this.register){if(t.appendChild(document.createElement("divider-ui")),this.presets){let o=document.createElement("div");o.setAttribute("part","preset-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Preset",o.appendChild(a);let l=document.createElement("div");l.setAttribute("part","presets");for(let h of["compact","default","spacious"]){let c=document.createElement("button-ui");c.setAttribute("data-preset",h),c.setAttribute("text",SE(h)),c.setAttribute("variant","outline"),c.setAttribute("size","sm"),l.appendChild(c)}o.appendChild(l),t.appendChild(o)}if(this.register){let o=document.createElement("div");o.setAttribute("part","preset-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Scale",o.appendChild(a);let l=document.createElement("select-ui");l.setAttribute("part","scale"),l.setAttribute("size","sm"),l.id=`${this.#S}-scale`,l.innerHTML=PO.map(h=>`<option value="${h}">${h||"Default"}</option>`).join(""),l.setAttribute("value",""),o.appendChild(l),t.appendChild(o),this.#a=l}}t.appendChild(document.createElement("divider-ui"));let i=document.createElement("div");i.setAttribute("part","reset-row");let r=document.createElement("button-ui");r.setAttribute("part","reset"),r.setAttribute("text","Reset"),r.setAttribute("variant","ghost"),r.setAttribute("size","sm"),i.appendChild(r),t.appendChild(i),this.#l=r;let n=document.createElement("theme-provider");n.setAttribute("scale","ui-md"),n.appendChild(t),this.appendChild(n),this.#u()}#u(){if(this.#o){let t=e=>{let i=e.detail?.value??this.#o.value;this.#d(i)};this.#o.addEventListener("change",t),this.#i.push(()=>this.#o.removeEventListener("change",t))}if(this.#l){let t=()=>this.reset();this.#l.addEventListener("press",t),this.#l.addEventListener("click",t),this.#i.push(()=>{this.#l.removeEventListener("press",t),this.#l.removeEventListener("click",t)})}if(this.#s){let t=()=>this.#p({density:parseFloat(this.#s.value)},"slider");this.#s.addEventListener("input",t),this.#i.push(()=>this.#s.removeEventListener("input",t))}if(this.#r){let t=()=>this.#p({radius:parseFloat(this.#r.value)},"slider");this.#r.addEventListener("input",t),this.#i.push(()=>this.#r.removeEventListener("input",t))}for(let t of this.querySelectorAll('[part="presets"] button-ui')){let e=t.getAttribute("data-preset"),i=()=>this.#f(e);t.addEventListener("press",i),t.addEventListener("click",i),this.#i.push(()=>{t.removeEventListener("press",i),t.removeEventListener("click",i)})}if(this.#n){let t=e=>{let i=e.detail?.value??this.#n.value;(i==="light"||i==="dark")&&this.#p({scheme:i},"scheme")};this.#n.addEventListener("change",t),this.#i.push(()=>this.#n.removeEventListener("change",t))}if(this.#a){let t=e=>{let i=e.detail?.value??this.#a.value;this.#p({scale:i},"scale")};this.#a.addEventListener("change",t),this.#i.push(()=>this.#a.removeEventListener("change",t))}}#d(t){let e=this.#v();if(e.style.removeProperty("--a-density"),e.style.removeProperty("--a-radius-k"),this.persist)try{localStorage.removeItem(`${this.storagePrefix}density`),localStorage.removeItem(`${this.storagePrefix}radius`)}catch{}this.#p({theme:t},"theme");let i=()=>{let r=getComputedStyle(e),n=parseFloat(r.getPropertyValue("--a-density"))||1,o=parseFloat(r.getPropertyValue("--a-radius-k"))||1;this.#s&&(this.#s.value=n),this.#r&&(this.#r.value=o),this.activeDensity=String(n),this.activeRadius=String(o)};typeof requestAnimationFrame=="function"?requestAnimationFrame(i):i()}#f(t){let e=xD[t];e&&(this.#p({density:e.density,radius:e.radius},"preset"),this.#s&&(this.#s.value=e.density),this.#r&&(this.#r.value=e.radius))}#p(t,e){let i=this.#v();if(t.theme!==void 0){if(t.theme===""||t.theme==="default"?(i.removeAttribute("theme"),this.activeTheme=""):(i.setAttribute("theme",t.theme),this.activeTheme=t.theme),this.persist)try{this.activeTheme?localStorage.setItem(`${this.storagePrefix}theme`,this.activeTheme):localStorage.removeItem(`${this.storagePrefix}theme`)}catch{}this.#o&&(this.#o.value=this.activeTheme)}if(t.density!==void 0&&(i.style.setProperty("--a-density",t.density),this.activeDensity=String(t.density),this.persist))try{localStorage.setItem(`${this.storagePrefix}density`,String(t.density))}catch{}if(t.radius!==void 0&&(i.style.setProperty("--a-radius-k",t.radius),this.activeRadius=String(t.radius),this.persist))try{localStorage.setItem(`${this.storagePrefix}radius`,String(t.radius))}catch{}if(t.scheme!==void 0){let r=t.scheme;if(r==="auto"){if(i.style.removeProperty("color-scheme"),this.activeScheme=this.#O(),this.persist)try{localStorage.removeItem(`${this.storagePrefix}scheme`)}catch{}this.#b()}else if(r==="light"||r==="dark"){if(i.style.setProperty("color-scheme",r),this.activeScheme=r,this.persist)try{localStorage.setItem(`${this.storagePrefix}scheme`,r)}catch{}this.#x()}this.#n&&(this.#n.value=this.activeScheme)}if(t.scale!==void 0){let r=t.scale;if(r&&PO.includes(r)?(i.setAttribute("scale",r),this.activeScale=r):(i.removeAttribute("scale"),this.activeScale=""),this.persist)try{this.activeScale?localStorage.setItem(`${this.storagePrefix}scale`,this.activeScale):localStorage.removeItem(`${this.storagePrefix}scale`)}catch{}this.#a&&(this.#a.value=this.activeScale)}this.#m(e)}#m(t){this.dispatchEvent(new CustomEvent("theme-change",{bubbles:!0,detail:{theme:this.activeTheme,scheme:this.activeScheme,density:this.activeDensity?parseFloat(this.activeDensity):1,radius:this.activeRadius?parseFloat(this.activeRadius):1,scale:this.activeScale,source:t}}))}#g(){let t=this.#v(),e,i,r,n,o;if(this.persist)try{e=localStorage.getItem(`${this.storagePrefix}theme`)||"",i=localStorage.getItem(`${this.storagePrefix}scheme`)||"";let a=localStorage.getItem(`${this.storagePrefix}density`),l=localStorage.getItem(`${this.storagePrefix}radius`);r=a!=null?parseFloat(a):void 0,n=l!=null?parseFloat(l):void 0,o=localStorage.getItem(`${this.storagePrefix}scale`)||""}catch{}if(e?(t.setAttribute("theme",e),this.activeTheme=e):this.activeTheme=t.getAttribute("theme")||"",this.#o&&(this.#o.value=this.activeTheme),i==="light"||i==="dark")t.style.setProperty("color-scheme",i),this.activeScheme=i,this.#n&&(this.#n.value=i);else{let a=this.scheme||"auto";a==="light"||a==="dark"?(t.style.setProperty("color-scheme",a),this.activeScheme=a):this.activeScheme=this.#O(),this.#n&&(this.#n.value=this.activeScheme)}if(r!=null&&!Number.isNaN(r))t.style.setProperty("--a-density",r),this.activeDensity=String(r),this.#s&&(this.#s.value=r);else if(this.#s){let a=getComputedStyle(t),l=parseFloat(a.getPropertyValue("--a-density"))||1;this.#s.value=l,this.activeDensity=String(l)}if(n!=null&&!Number.isNaN(n))t.style.setProperty("--a-radius-k",n),this.activeRadius=String(n),this.#r&&(this.#r.value=n);else if(this.#r){let a=getComputedStyle(t),l=parseFloat(a.getPropertyValue("--a-radius-k"))||1;this.#r.value=l,this.activeRadius=String(l)}if(this.#a){let a=PO.includes(o)?o:t.getAttribute("scale")||"";a&&t.setAttribute("scale",a),this.#a.value=a,this.activeScale=a}}#O(){try{if(typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches)return"dark"}catch{}return"light"}#y(){if(this.scheme==="auto"){if(this.persist)try{let t=localStorage.getItem(`${this.storagePrefix}scheme`);if(t==="light"||t==="dark")return}catch{}this.#b()}}#b(){if(!(this.#t||typeof matchMedia!="function"))try{this.#t=matchMedia("(prefers-color-scheme: dark)"),this.#e=()=>{let t=this.#t.matches?"dark":"light";this.activeScheme=t,this.#n&&(this.#n.value=t),this.#m("scheme")},this.#t.addEventListener("change",this.#e)}catch{}}#x(){if(this.#t&&this.#e)try{this.#t.removeEventListener("change",this.#e)}catch{}this.#t=null,this.#e=null}#v(){let t=this.target||":root";if(t===":root")return document.documentElement;try{return document.querySelector(t)??document.documentElement}catch{return document.documentElement}}get#S(){return this.id||"theme-panel"}};customElements.define("theme-panel",fh);C();var wE=["change","input"],ph=class extends v{static properties={label:{type:String,default:"",reflect:!0},heading:{type:String,default:"",reflect:!0},placement:{type:String,default:"bottom-start",reflect:!0}};static template=()=>null;#t=!1;#e=null;#i=null;#s=()=>this.#o();connected(){this.#t||(this.#r(),this.#t=!0);for(let t of wE)this.addEventListener(t,this.#s);this.#o()}disconnected(){for(let t of wE)this.removeEventListener(t,this.#s)}updated(t){this.#t&&(t.has("label")&&this.#o(),t.has("heading")&&this.#n(),t.has("placement")&&this.querySelector(":scope > popover-ui")?.setAttribute("placement",this.placement))}get summary(){let t=this.#i?this.#i.querySelectorAll("check-ui"):[],e=[];for(let i of t)(i.hasAttribute("checked")||i.checked)&&e.push(i);return{selected:e.length,total:t.length,checked:e}}#r(){let t=document.createDocumentFragment();for(;this.firstChild;)t.appendChild(this.firstChild);let e=document.createElement("popover-ui");e.setAttribute("placement",this.placement);let i=document.createElement("button-ui");i.setAttribute("slot","trigger"),i.setAttribute("data-form-popover-trigger",""),i.setAttribute("icon-trailing","caret-down"),this.#e=i,e.appendChild(i);let r=document.createElement("div");r.setAttribute("slot","content"),r.setAttribute("data-form-popover-body",""),r.appendChild(t),this.#i=r,e.appendChild(r),this.appendChild(e),this.#n()}#n(){if(!this.#i)return;let t=this.#i.querySelector(":scope > [data-form-popover-heading]");if(!this.heading){t?.remove();return}t||(t=document.createElement("div"),t.setAttribute("data-form-popover-heading",""),this.#i.prepend(t)),t.textContent=this.heading}#a(t){return(t.getAttribute("label")||t.label||t.textContent||"").trim()}#o(){if(!this.#e)return;let{selected:t,total:e,checked:i}=this.summary,r=this.label;t===1&&i[0]?r=this.#a(i[0])||r:t>1&&(r=r?`${r} (${t})`:`${t}`),r||(r="Options"),this.#e.setAttribute("text",r),this.dispatchEvent(new CustomEvent("summary-change",{bubbles:!0,detail:{selected:t,total:e}}))}};customElements.get("form-popover-ui")||customElements.define("form-popover-ui",ph);C();var mh=class extends v{static properties={items:{type:Array,default:[]},"storage-key":{type:String,default:"",reflect:!0},storage:{type:String,default:"local",reflect:!0},"dismiss-on-complete":{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!0,reflect:!0},collapsed:{type:Boolean,default:!1,reflect:!0},value:{type:Object,default:{}},title:{type:String,default:"Get started",reflect:!0}};static template=t=>t._renderTemplate();#t=`obc-h-${Math.random().toString(36).slice(2,8)}`;#e=`obc-l-${Math.random().toString(36).slice(2,8)}`;#i=!1;#s=!1;#r=null;#n=null;attributeChangedCallback(t,e,i){if(t==="items"||t==="value"){if(i==null)this[t]=t==="items"?[]:{};else try{let r=JSON.parse(i);this[t]=r}catch{this[t]=t==="items"?[]:{}}return}super.attributeChangedCallback(t,e,i)}connected(){if(this.setAttribute("role","region"),this.setAttribute("aria-labelledby",this.#t),this.hasAttribute("items")&&!Array.isArray(this.items))try{this.items=JSON.parse(this.getAttribute("items"))}catch{this.items=[]}if(this.hasAttribute("value")&&(typeof this.value!="object"||Array.isArray(this.value)))try{this.value=JSON.parse(this.getAttribute("value"))}catch{this.value={}}if(this.#i=this.value&&Object.keys(this.value).length>0,!this.#i){let t=this.#x();t&&(this.value=t)}this.#r=this.#o.bind(this),this.#n=this.#l.bind(this),this.addEventListener("change",this.#r),this.addEventListener("click",this.#n),this.#s=this.#p(),this.#m()}disconnected(){this.#r&&this.removeEventListener("change",this.#r),this.#n&&this.removeEventListener("click",this.#n),this.#r=null,this.#n=null,this.#v()}render(){this.#m(),this.#y(),this.#g()}_renderTemplate(){let t=Array.isArray(this.items)?this.items:[],{done:e,total:i,percent:r}=this.#f(),n=this.collapsed?"Expand":"Collapse",o=this.collapsed?"chevron-down":"chevron-up",a=!!this.collapsible,l=this.title||"Get started",h=i>0&&e===i;return tt`
398
+ `}else t==="error"&&(o.innerHTML=`<icon-ui name="warning"></icon-ui><span>${$O(e)}</span>`);return this.#i?.appendChild(o),this.#h(),this.#o("message",{id:n,role:t,content:e}),o}appendChunk(t){let e=this.#t[this.#t.length-1];if(!e||e.role!=="assistant")return;e.content+=t;let i=this.#i?.querySelector("[data-role]:last-child [data-content]");i&&i.insertAdjacentText("beforeend",t),this.#h()}deleteMessage(t){let e=this.#t.findIndex(i=>i.id===t);e!==-1&&(this.#t.splice(e,1),this.#i?.querySelector(`[data-id="${t}"]`)?.remove())}clear(){if(this.#t.length=0,this.#i){let t=this.#r;this.#i.innerHTML="",t&&this.#i.appendChild(t)}this.#o("clear")}startStreaming(){this.streaming=!0,this.#s&&(this.#s.disabled=!0),this.#n&&(this.#n.textContent="Typing..."),this.#i?.tagName?.toLowerCase()==="chat-thread"&&(this.#i.streaming=!0)}stopStreaming(){this.streaming=!1,this.#s&&(this.#s.disabled=!1),this.#n&&(this.#n.textContent=""),this.#i?.tagName?.toLowerCase()==="chat-thread"&&(this.#i.streaming=!1),this.#i?.querySelector("[data-role]:last-child [data-cursor]")?.remove();let t=this.#t[this.#t.length-1];if(t?.role==="assistant"&&t.content&&!t.html){let e=this.#i?.querySelector("[data-role]:last-child [data-content]");e&&(e.innerHTML=ui(t.content),this.#c(e))}this.#s?.focus()}abort(){this.#e&&(this.#e.abort(),this.#e=null,this.#o("abort")),this.streaming&&this.stopStreaming()}async send(t,e={}){let i=e.model||this.model||this.#s?.model;if(!i)throw new Error("No model specified");this.appendMessage({role:"user",content:t}),this.appendMessage({role:"assistant",content:""}),this.startStreaming(),this.#e=new AbortController;try{let r={provider:this.provider||void 0,apiKey:this.#a||void 0,model:i,system:this.system||void 0,proxyUrl:this.proxyUrl||void 0,thinking:this.thinking||void 0,messages:this.conversation.slice(0,-1),signal:this.#e.signal,...e};for await(let n of kd(r))n.type==="text"?(this.appendChunk(n.text),this.#o("chunk",{text:n.text,snapshot:n.snapshot})):n.type==="thinking"?this.#o("thinking",{text:n.text}):n.type==="done"?this.#o("done",{text:n.text,usage:n.usage,stopReason:n.stopReason}):n.type==="error"&&(this.appendMessage({role:"error",content:n.error.message}),this.#o("error",{error:n.error}))}catch(r){r.name!=="AbortError"&&(this.appendMessage({role:"error",content:r.message}),this.#o("error",{error:r}))}this.#e=null,this.stopStreaming()}export(){return{messages:this.#t.map(t=>({role:t.role,content:t.content})),model:this.model,system:this.system}}import(t){t.model&&(this.model=t.model),t.system&&(this.system=t.system),t.messages&&(this.conversation=t.messages)}#h(){let t=this.#i;t&&requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight})}#c(t){for(let e of t.querySelectorAll("pre")){let i=e.querySelector("code");if(!i)continue;let r=i.getAttribute("data-lang")||"",n=document.createElement("code-ui");r&&n.setAttribute("language",r),n.textContent=i.textContent,e.replaceWith(n)}}};customElements.define("chat-shell",ih);C();var bD=40,sh=class extends v{static properties={streaming:{type:Boolean,default:!1,reflect:!0},empty:{type:Boolean,default:!0,reflect:!0}};static template=()=>null;#t=null;#e=!0;#i=null;connected(){this.#s(),this.#r(),this.#n()}disconnected(){this.#t?.disconnect(),this.#t=null,this.#i&&(this.removeEventListener("scroll",this.#i),this.#i=null)}scrollToBottom(){this.scrollTo({top:this.scrollHeight,behavior:"smooth"})}scrollToBottomInstant(){this.scrollTop=this.scrollHeight}#s(){let t=Array.from(this.children).filter(e=>e.tagName.toLowerCase()!=="chat-empty");this.empty=t.length===0}#r(){typeof MutationObserver>"u"||(this.#t=new MutationObserver(()=>{this.#s(),this.#e&&this.scrollToBottomInstant()}),this.#t.observe(this,{childList:!0}))}#n(){this.#i=()=>{let t=this.scrollHeight-(this.scrollTop+this.clientHeight);this.#e=t<=bD},this.addEventListener("scroll",this.#i,{passive:!0})}};customElements.define("chat-thread",sh);C();var rh=class extends v{static properties={disabled:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=null;#e=null;connected(){this.#t=this.querySelector("chat-input-ui")||this.querySelector("input-ui")||this.querySelector("textarea-ui"),this.#e=t=>{this.dispatchEvent(new CustomEvent("composer-submit",{bubbles:!0,detail:t.detail||{}}))},this.#t?.addEventListener("submit",this.#e),this.#i()}disconnected(){this.#t&&this.#e&&this.#t.removeEventListener("submit",this.#e),this.#t=null,this.#e=null}attributeChangedCallback(t,e,i){super.attributeChangedCallback?.(t,e,i),t==="disabled"&&this.#i()}focus(){this.#t?.focus?.()}clear(){this.#t?.clear?.()}get input(){return this.#t}#i(){this.#t&&(this.disabled?this.#t.setAttribute("disabled",""):this.#t.removeAttribute("disabled"))}};customElements.define("chat-composer",rh);C();var nh=96,xE=160,oh=class extends v{static properties={collapsed:{type:Boolean,default:!1,reflect:!0},resizing:{type:Boolean,default:!1,reflect:!0},resizable:{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!1,reflect:!0},name:{type:String,default:"",reflect:!0},minWidth:{type:String,default:"",reflect:!0,attribute:"min-width"}};static template=()=>null;#t="";#e=[];#i=null;connected(){this.#n(),this.resizable&&this.#o(),this.#l(),this.#a()}disconnected(){for(let t of this.#e)t();this.#e=[],this.#i?.disconnect(),this.#i=null}toggle(){return this.collapsed?this.expand():this.collapse(),this.collapsed}collapse(){if(this.collapsed)return;let t=this.style.width||getComputedStyle(this).width;parseFloat(t)>nh&&(this.#t=t);let e=this.minWidth||getComputedStyle(this).minWidth;this.style.width=e,this.#r(e),this.collapsed=!0,this.#h(!1)}expand(){if(!this.collapsed)return;let t=this.#t||"";this.style.width=t,this.#r(t),this.collapsed=!1,this.#h(!0)}#s(){return`adia-chat-sidebar-${this.name||this.getAttribute("slot")||"default"}`}#r(t){try{localStorage.setItem(this.#s(),t)}catch{}}#n(){try{let t=localStorage.getItem(this.#s());if(!t)return;this.style.width=t;let e=parseFloat(t);!isNaN(e)&&e>nh&&(this.#t=t)}catch{}}#a(){let t=this.getBoundingClientRect().width;this.collapsed=t<=nh}#o(){let t=this.querySelector(":scope > [data-resize]");if(!t)return;let e=this.getAttribute("slot"),i=e==="leading",r=n=>{n.preventDefault(),t.setPointerCapture(n.pointerId);let o=n.clientX,a=this.getBoundingClientRect().width;this.resizing=!0,document.documentElement.style.cursor="col-resize";let l=c=>{let u=c.clientX-o,d=parseInt(getComputedStyle(this).getPropertyValue("max-width"))||480,f=Math.max(48,Math.min(d,a+(i?u:-u)));this.style.width=`${f}px`},h=()=>{this.resizing=!1,document.documentElement.style.cursor="",t.removeEventListener("pointermove",l),t.removeEventListener("pointerup",h);let c=this.getBoundingClientRect().width;c<=nh?this.style.width=this.minWidth||getComputedStyle(this).minWidth:c<xE&&(this.style.width=`${xE}px`),this.#r(this.style.width),this.#a(),this.dispatchEvent(new CustomEvent("sidebar-resize",{bubbles:!0,detail:{name:this.name||e,width:this.getBoundingClientRect().width}}))};t.addEventListener("pointermove",l),t.addEventListener("pointerup",h)};t.addEventListener("pointerdown",r),this.#e.push(()=>t.removeEventListener("pointerdown",r))}#l(){typeof ResizeObserver>"u"||(this.#i=new ResizeObserver(t=>{for(let e of t){let i=e.contentBoxSize[0].inlineSize<=nh;for(let r of this.querySelectorAll("select-ui"))r.setAttribute("placement",i?"right":"bottom-start")}}),this.#i.observe(this))}#h(t){this.dispatchEvent(new CustomEvent("sidebar-toggle",{bubbles:!0,detail:{name:this.name||this.getAttribute("slot")||"default",expanded:t}}))}};customElements.define("chat-sidebar",oh);C();var ah=class extends v{static properties={focusMode:{type:Boolean,default:!1,reflect:!0,attribute:"focus-mode"}};static template=()=>null;#t=null;#e=null;#i=null;connected(){this.#t=this.querySelector("editor-toolbar"),this.#e=this.querySelector("editor-canvas"),this.#s(),this.#i=t=>{let e=t?.detail?.name;e&&(e==="toggle-focus"||e==="full-screen")&&this.toggleFocusMode()},this.addEventListener("toolbar-action",this.#i)}disconnected(){this.#i&&this.removeEventListener("toolbar-action",this.#i),this.#i=null}toggleFocusMode(){this.focusMode=!this.focusMode,this.#t?.tagName?.toLowerCase()==="editor-toolbar"&&(this.#t.fullScreen=this.focusMode),this.#e?.tagName?.toLowerCase()==="editor-canvas"&&(this.focusMode?this.#e.focus?.():this.#e.blur?.()),this.dispatchEvent(new CustomEvent("editor-mode-change",{bubbles:!0,detail:{focusMode:this.focusMode}}))}#s(){for(let t of this.querySelectorAll("select-ui[data-options]"))try{let e=JSON.parse(t.getAttribute("data-options"));t.options=e}catch{}}};customElements.define("editor-shell",ah);C();var lh=class extends v{static properties={fullScreen:{type:Boolean,default:!1,reflect:!0,attribute:"full-screen"}};static template=()=>null;#t=null;connected(){this.#t=t=>{let e=t.target.closest("[data-toolbar-action]");if(!e||!this.contains(e))return;let i=e.getAttribute("data-toolbar-action");this.dispatchEvent(new CustomEvent("toolbar-action",{bubbles:!0,detail:{name:i}}))},this.addEventListener("click",this.#t)}disconnected(){this.#t&&this.removeEventListener("click",this.#t),this.#t=null}};customElements.define("editor-toolbar",lh);C();var hh=class extends v{static properties={empty:{type:Boolean,default:!0,reflect:!0},focused:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=1;#e=null;connected(){this.#i(),this.#s()}disconnected(){this.#e?.disconnect(),this.#e=null}get zoom(){return this.#t}set zoom(t){let e=parseFloat(t);!isFinite(e)||e<=0||(this.#t=e,this.style.setProperty("--editor-canvas-zoom",String(e)))}resetView(){this.zoom=1}focus(){super.focus?.(),this.focused=!0}blur(){super.blur?.(),this.focused=!1}#i(){let t=Array.from(this.children).filter(e=>e.tagName.toLowerCase()!=="editor-canvas-empty");this.empty=t.length===0}#s(){typeof MutationObserver>"u"||(this.#e=new MutationObserver(()=>{this.#i()}),this.#e.observe(this,{childList:!0}))}};customElements.define("editor-canvas",hh);C();var ch=96,OD="adia-editor-sidebar-",uh=class extends v{static properties={collapsed:{type:Boolean,default:!1,reflect:!0},resizing:{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=null;#e=null;#i=null;#s=null;#r=null;#n=null;#a=null;#o=!1;#l=null;connected(){if(this.#t=this.querySelector("pane-ui"),!this.#t)return;let t=this.getAttribute("slot")||"leading",e=this.getAttribute("persist")||this.getAttribute("name")||t;this.#i=`${OD}${e}`,this.#m(),typeof ResizeObserver<"u"&&(this.#e=new ResizeObserver(i=>{if(getComputedStyle(this).display==="none")return;this.#u();let r=this.#t.offsetWidth;r>0&&(this.style.width=`${r}px`)}),this.#e.observe(this.#t)),this.#s=i=>{i.target?.closest?.('[slot="resize"], [data-resize], [class*="handle"]')&&(this.resizing=!0)},this.#t.addEventListener("pointerdown",this.#s),this.#r=()=>{this.resizing&&(this.resizing=!1),this.#f()},document.addEventListener("pointerup",this.#r),this.#n=i=>{i.target!==this.#t||i.propertyName!=="width"||(this.#c(),this.#u())},this.#t.addEventListener("transitionend",this.#n)}disconnected(){this.#a!==null&&(cancelAnimationFrame(this.#a),this.#a=null),this.#l!==null&&(clearTimeout(this.#l),this.#l=null),this.#e?.disconnect(),this.#e=null,this.#s&&this.#t&&(this.#t.removeEventListener("pointerdown",this.#s),this.#s=null),this.#r&&(document.removeEventListener("pointerup",this.#r),this.#r=null),this.#n&&this.#t&&(this.#t.removeEventListener("transitionend",this.#n),this.#n=null)}toggle(){return this.collapsed?this.expand():this.collapse(),this.collapsed}collapse(){this.#t&&(this.collapsed||this.#f(),this.#t.style.width=`${ch}px`,this.collapsed=!0,this.#d())}expand(){if(!this.#t)return;let t=this.#p(),e=t&&t>ch?t:240;this.#t.style.width=`${e}px`,this.collapsed=!1,this.#f(),this.#d(),this.#h()}#h(){this.#l!==null&&(clearTimeout(this.#l),this.#l=null);let t=getComputedStyle(this.#t).transitionDuration.split(",")[0].trim(),e=(parseFloat(t)||0)*(t.endsWith("ms")?1:1e3);e<=0||(this.#o=!0,this.#l=setTimeout(()=>{this.#l=null,this.#c(),this.#u()},e+50))}#c(){this.#o=!1,this.#l!==null&&(clearTimeout(this.#l),this.#l=null)}#u(){if(!this.#t||getComputedStyle(this).display==="none")return;let t=this.#t.getBoundingClientRect();if(t.width!==0){if(t.width>ch){this.#a!==null&&(cancelAnimationFrame(this.#a),this.#a=null),this.collapsed=!1;return}this.#o||this.#a===null&&(this.#a=requestAnimationFrame(()=>{if(this.#a=null,!this.#t||getComputedStyle(this).display==="none"||this.#o)return;let e=this.#t.getBoundingClientRect();e.width>0&&e.width<=ch&&(this.collapsed=!0)}))}}#d(){let t=this.getAttribute("slot")||"leading",e=this.getAttribute("persist")||this.getAttribute("name")||t;this.dispatchEvent(new CustomEvent("sidebar-toggle",{bubbles:!0,detail:{name:e,expanded:!this.collapsed}}))}#f(){if(!(!this.#t||!this.#i))try{let t=this.#t.style.width||"";t&&localStorage.setItem(this.#i,t)}catch{}}#p(){if(!this.#i)return null;try{let t=localStorage.getItem(this.#i);if(!t)return null;let e=parseFloat(t);return isFinite(e)?e:null}catch{return null}}#m(){if(!this.#t)return;let t=this.#p();t&&t>0&&(this.#t.style.width=`${t}px`,this.collapsed=t<=ch)}};customElements.define("editor-sidebar",uh);function yD(){let s=document.activeElement;if(!s)return!1;let t=s.tagName;return!!(t==="INPUT"||t==="TEXTAREA"||s.isContentEditable||t==="INPUT-UI"||t==="TEXTAREA-UI"||t==="OTP-INPUT-UI"||t==="SEARCH-UI")}C();var dh=class extends v{static properties={centered:{type:Boolean,default:!1,reflect:!0},"full-bleed":{type:Boolean,default:!1,reflect:!0}};static template=()=>null};customElements.get("simple-shell")||customElements.define("simple-shell",dh);C();var Ad=class extends v{static properties={mode:{type:String,default:"chat",reflect:!0},inspector:{type:Boolean,default:!1,reflect:!0}};static template=()=>null;#t=!1;#e=null;#i=null;#s=null;connected(){}render(){this.#t||(this.#t=!0,this.#e=document.createElement("chat-thread-ui"),this.#i=document.createElement("canvas-ui"),this.appendChild(this.#e),this.appendChild(this.#i),this.inspector&&(this.#s=document.createElement("inspector-ui"),this.appendChild(this.#s)))}appendMessage(t){this.#e?.appendMessage(t)}appendCoT(t){this.#e?.appendCoT(t)}pushArtifact(t){this.mode==="chat"&&(this.mode="split"),this.#i?.processAll(t)}setSuggestions(t){this.#e?.setSuggestions(t)}appendResultMessage(t){this.#e?.appendResultMessage(t)}showSavePatternBar(t){this.#e?.showSavePatternBar(t)}showFeedbackWidget(t){this.#e?.showFeedbackWidget(t)}showTyping(){this.#e?.showTyping()}hideTyping(){this.#e?.hideTyping()}appendError(t){this.#e?.appendError(t)}startPipelineStatus(){return this.#e?.startPipelineStatus()}updatePipelineStatus(t){this.#e?.updatePipelineStatus(t)}completePipelineStatus(){this.#e?.completePipelineStatus()}reset(){this.#e?.clear(),this.#i?.reset(),this.mode="chat"}get thread(){return this.#e}get canvas(){return this.#i}get inspect(){return this.#s}};customElements.define("gen-root",Ad);vO();C();var vD=["atlas","signal","terrarium","ledger","arcade","meridian","solstice","glacier","ember","botanica","vector","velour"],xD={compact:{density:.85,radius:.75},default:{density:1,radius:1},spacious:{density:1.15,radius:1.25}},PO=["","ui-sm","ui-md","ui-lg","content-sm","content-md","content-lg"],SE=s=>s.length?s[0].toUpperCase()+s.slice(1):s,fh=class extends v{static properties={themes:{type:String,default:vD.join(" "),reflect:!0},parametric:{type:Boolean,default:!1,reflect:!0},presets:{type:Boolean,default:!1,reflect:!0},schemeToggle:{type:Boolean,default:!1,reflect:!0,attribute:"scheme-toggle"},persist:{type:Boolean,default:!1,reflect:!0},storagePrefix:{type:String,default:"adia-theme-",reflect:!0,attribute:"storage-prefix"},target:{type:String,default:":root",reflect:!0},scheme:{type:String,default:"auto",reflect:!0},activeTheme:{type:String,default:"",reflect:!0,attribute:"active-theme"},activeScheme:{type:String,default:"",reflect:!0,attribute:"active-scheme"},activeDensity:{type:String,default:"",reflect:!0,attribute:"active-density"},activeRadius:{type:String,default:"",reflect:!0,attribute:"active-radius"},register:{type:Boolean,default:!1,reflect:!0},activeScale:{type:String,default:"",reflect:!0,attribute:"active-scale"}};static template=()=>null;#t=null;#e=null;#i=[];#s=null;#r=null;#n=null;#a=null;#o=null;#l=null;#h=!1;connected(){this.#h||(this.#c(),this.#h=!0,this.#g(),this.#y())}disconnected(){for(let t of this.#i)t();this.#i=[],this.#x()}apply(t={}){this.#p(t,"programmatic")}reset(){let t=this.#v();if(t.removeAttribute("theme"),t.style.removeProperty("--a-density"),t.style.removeProperty("--a-radius-k"),t.style.removeProperty("color-scheme"),t.removeAttribute("scale"),this.persist)for(let i of["theme","scheme","density","radius","scale"])try{localStorage.removeItem(`${this.storagePrefix}${i}`)}catch{}this.activeTheme="",this.activeDensity="",this.activeRadius="",this.activeScale="";let e=this.#O();this.activeScheme=e,this.#n&&(this.#n.value=e),this.#s&&(this.#s.value=1),this.#r&&(this.#r.value=1),this.#a&&(this.#a.value=""),this.#o&&(this.#o.value=""),this.#m("reset")}#c(){let t=document.createDocumentFragment();if(this.schemeToggle){let o=document.createElement("div");o.setAttribute("part","scheme");let a=document.createElement("segmented-ui");a.id=`${this.#S}-scheme`;let l=document.createElement("segment-ui");l.setAttribute("value","light"),l.setAttribute("text","Light");let h=document.createElement("segment-ui");h.setAttribute("value","dark"),h.setAttribute("text","Dark"),a.append(l,h),o.appendChild(a),t.appendChild(o),this.#n=a}let e=(this.themes||"").trim().split(/\s+/).filter(Boolean);if(e.length){let o=document.createElement("div");o.setAttribute("part","theme-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Theme",o.appendChild(a);let l=document.createElement("select-ui");l.setAttribute("part","themes"),l.setAttribute("size","sm"),l.id=`${this.#S}-theme`;let h=(c,u)=>{let d=document.createElement("option");return d.value=c,d.textContent=u,d};l.append(h("","Default"),...e.map(c=>h(c,SE(c)))),l.setAttribute("value",""),o.appendChild(l),t.appendChild(o),this.#o=l}if(this.parametric){t.appendChild(document.createElement("divider-ui"));let o=document.createElement("text-ui");o.setAttribute("variant","label"),o.textContent="Parametric",t.appendChild(o);let a=document.createElement("slider-ui");a.setAttribute("part","density"),a.setAttribute("label","Density"),a.setAttribute("value","1"),a.setAttribute("min","0.5"),a.setAttribute("max","1.5"),a.setAttribute("step","0.05"),a.setAttribute("suffix","\xD7"),t.appendChild(a),this.#s=a;let l=document.createElement("slider-ui");l.setAttribute("part","radius"),l.setAttribute("label","Radius"),l.setAttribute("value","1"),l.setAttribute("min","0"),l.setAttribute("max","2"),l.setAttribute("step","0.1"),l.setAttribute("suffix","\xD7"),t.appendChild(l),this.#r=l}if(this.presets||this.register){if(t.appendChild(document.createElement("divider-ui")),this.presets){let o=document.createElement("div");o.setAttribute("part","preset-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Preset",o.appendChild(a);let l=document.createElement("div");l.setAttribute("part","presets");for(let h of["compact","default","spacious"]){let c=document.createElement("button-ui");c.setAttribute("data-preset",h),c.setAttribute("text",SE(h)),c.setAttribute("variant","outline"),c.setAttribute("size","sm"),l.appendChild(c)}o.appendChild(l),t.appendChild(o)}if(this.register){let o=document.createElement("div");o.setAttribute("part","preset-row");let a=document.createElement("text-ui");a.setAttribute("variant","label"),a.textContent="Scale",o.appendChild(a);let l=document.createElement("select-ui");l.setAttribute("part","scale"),l.setAttribute("size","sm"),l.id=`${this.#S}-scale`,l.innerHTML=PO.map(h=>`<option value="${h}">${h||"Default"}</option>`).join(""),l.setAttribute("value",""),o.appendChild(l),t.appendChild(o),this.#a=l}}t.appendChild(document.createElement("divider-ui"));let i=document.createElement("div");i.setAttribute("part","reset-row");let r=document.createElement("button-ui");r.setAttribute("part","reset"),r.setAttribute("text","Reset"),r.setAttribute("variant","ghost"),r.setAttribute("size","sm"),i.appendChild(r),t.appendChild(i),this.#l=r;let n=document.createElement("theme-provider");n.setAttribute("scale","ui-md"),n.appendChild(t),this.appendChild(n),this.#u()}#u(){if(this.#o){let t=e=>{let i=e.detail?.value??this.#o.value;this.#d(i)};this.#o.addEventListener("change",t),this.#i.push(()=>this.#o.removeEventListener("change",t))}if(this.#l){let t=()=>this.reset();this.#l.addEventListener("press",t),this.#l.addEventListener("click",t),this.#i.push(()=>{this.#l.removeEventListener("press",t),this.#l.removeEventListener("click",t)})}if(this.#s){let t=()=>this.#p({density:parseFloat(this.#s.value)},"slider");this.#s.addEventListener("input",t),this.#i.push(()=>this.#s.removeEventListener("input",t))}if(this.#r){let t=()=>this.#p({radius:parseFloat(this.#r.value)},"slider");this.#r.addEventListener("input",t),this.#i.push(()=>this.#r.removeEventListener("input",t))}for(let t of this.querySelectorAll('[part="presets"] button-ui')){let e=t.getAttribute("data-preset"),i=()=>this.#f(e);t.addEventListener("press",i),t.addEventListener("click",i),this.#i.push(()=>{t.removeEventListener("press",i),t.removeEventListener("click",i)})}if(this.#n){let t=e=>{let i=e.detail?.value??this.#n.value;(i==="light"||i==="dark")&&this.#p({scheme:i},"scheme")};this.#n.addEventListener("change",t),this.#i.push(()=>this.#n.removeEventListener("change",t))}if(this.#a){let t=e=>{let i=e.detail?.value??this.#a.value;this.#p({scale:i},"scale")};this.#a.addEventListener("change",t),this.#i.push(()=>this.#a.removeEventListener("change",t))}}#d(t){let e=this.#v();if(e.style.removeProperty("--a-density"),e.style.removeProperty("--a-radius-k"),this.persist)try{localStorage.removeItem(`${this.storagePrefix}density`),localStorage.removeItem(`${this.storagePrefix}radius`)}catch{}this.#p({theme:t},"theme");let i=()=>{let r=getComputedStyle(e),n=parseFloat(r.getPropertyValue("--a-density"))||1,o=parseFloat(r.getPropertyValue("--a-radius-k"))||1;this.#s&&(this.#s.value=n),this.#r&&(this.#r.value=o),this.activeDensity=String(n),this.activeRadius=String(o)};typeof requestAnimationFrame=="function"?requestAnimationFrame(i):i()}#f(t){let e=xD[t];e&&(this.#p({density:e.density,radius:e.radius},"preset"),this.#s&&(this.#s.value=e.density),this.#r&&(this.#r.value=e.radius))}#p(t,e){let i=this.#v();if(t.theme!==void 0){if(t.theme===""||t.theme==="default"?(i.removeAttribute("theme"),this.activeTheme=""):(i.setAttribute("theme",t.theme),this.activeTheme=t.theme),this.persist)try{this.activeTheme?localStorage.setItem(`${this.storagePrefix}theme`,this.activeTheme):localStorage.removeItem(`${this.storagePrefix}theme`)}catch{}this.#o&&(this.#o.value=this.activeTheme)}if(t.density!==void 0&&(i.style.setProperty("--a-density",t.density),this.activeDensity=String(t.density),this.persist))try{localStorage.setItem(`${this.storagePrefix}density`,String(t.density))}catch{}if(t.radius!==void 0&&(i.style.setProperty("--a-radius-k",t.radius),this.activeRadius=String(t.radius),this.persist))try{localStorage.setItem(`${this.storagePrefix}radius`,String(t.radius))}catch{}if(t.scheme!==void 0){let r=t.scheme;if(r==="auto"){if(i.style.removeProperty("color-scheme"),this.activeScheme=this.#O(),this.persist)try{localStorage.removeItem(`${this.storagePrefix}scheme`)}catch{}this.#b()}else if(r==="light"||r==="dark"){if(i.style.setProperty("color-scheme",r),this.activeScheme=r,this.persist)try{localStorage.setItem(`${this.storagePrefix}scheme`,r)}catch{}this.#x()}this.#n&&(this.#n.value=this.activeScheme)}if(t.scale!==void 0){let r=t.scale;if(r&&PO.includes(r)?(i.setAttribute("scale",r),this.activeScale=r):(i.removeAttribute("scale"),this.activeScale=""),this.persist)try{this.activeScale?localStorage.setItem(`${this.storagePrefix}scale`,this.activeScale):localStorage.removeItem(`${this.storagePrefix}scale`)}catch{}this.#a&&(this.#a.value=this.activeScale)}this.#m(e)}#m(t){this.dispatchEvent(new CustomEvent("theme-change",{bubbles:!0,detail:{theme:this.activeTheme,scheme:this.activeScheme,density:this.activeDensity?parseFloat(this.activeDensity):1,radius:this.activeRadius?parseFloat(this.activeRadius):1,scale:this.activeScale,source:t}}))}#g(){let t=this.#v(),e,i,r,n,o;if(this.persist)try{e=localStorage.getItem(`${this.storagePrefix}theme`)||"",i=localStorage.getItem(`${this.storagePrefix}scheme`)||"";let a=localStorage.getItem(`${this.storagePrefix}density`),l=localStorage.getItem(`${this.storagePrefix}radius`);r=a!=null?parseFloat(a):void 0,n=l!=null?parseFloat(l):void 0,o=localStorage.getItem(`${this.storagePrefix}scale`)||""}catch{}if(e?(t.setAttribute("theme",e),this.activeTheme=e):this.activeTheme=t.getAttribute("theme")||"",this.#o&&(this.#o.value=this.activeTheme),i==="light"||i==="dark")t.style.setProperty("color-scheme",i),this.activeScheme=i,this.#n&&(this.#n.value=i);else{let a=this.scheme||"auto";a==="light"||a==="dark"?(t.style.setProperty("color-scheme",a),this.activeScheme=a):this.activeScheme=this.#O(),this.#n&&(this.#n.value=this.activeScheme)}if(r!=null&&!Number.isNaN(r))t.style.setProperty("--a-density",r),this.activeDensity=String(r),this.#s&&(this.#s.value=r);else if(this.#s){let a=getComputedStyle(t),l=parseFloat(a.getPropertyValue("--a-density"))||1;this.#s.value=l,this.activeDensity=String(l)}if(n!=null&&!Number.isNaN(n))t.style.setProperty("--a-radius-k",n),this.activeRadius=String(n),this.#r&&(this.#r.value=n);else if(this.#r){let a=getComputedStyle(t),l=parseFloat(a.getPropertyValue("--a-radius-k"))||1;this.#r.value=l,this.activeRadius=String(l)}if(this.#a){let a=PO.includes(o)?o:t.getAttribute("scale")||"";a&&t.setAttribute("scale",a),this.#a.value=a,this.activeScale=a}}#O(){try{if(typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches)return"dark"}catch{}return"light"}#y(){if(this.scheme==="auto"){if(this.persist)try{let t=localStorage.getItem(`${this.storagePrefix}scheme`);if(t==="light"||t==="dark")return}catch{}this.#b()}}#b(){if(!(this.#t||typeof matchMedia!="function"))try{this.#t=matchMedia("(prefers-color-scheme: dark)"),this.#e=()=>{let t=this.#t.matches?"dark":"light";this.activeScheme=t,this.#n&&(this.#n.value=t),this.#m("scheme")},this.#t.addEventListener("change",this.#e)}catch{}}#x(){if(this.#t&&this.#e)try{this.#t.removeEventListener("change",this.#e)}catch{}this.#t=null,this.#e=null}#v(){let t=this.target||":root";if(t===":root")return document.documentElement;try{return document.querySelector(t)??document.documentElement}catch{return document.documentElement}}get#S(){return this.id||"theme-panel"}};customElements.define("theme-panel",fh);C();var wE=["change","input"],ph=class extends v{static properties={label:{type:String,default:"",reflect:!0},heading:{type:String,default:"",reflect:!0},placement:{type:String,default:"bottom-start",reflect:!0}};static template=()=>null;#t=!1;#e=null;#i=null;#s=()=>this.#l();#r=null;connected(){this.#t||(this.#n(),this.#t=!0);for(let t of wE)this.addEventListener(t,this.#s);this.#i&&!this.#r&&(this.#r=new MutationObserver(this.#s),this.#r.observe(this.#i,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["checked"]})),this.#l()}disconnected(){for(let t of wE)this.removeEventListener(t,this.#s);this.#r?.disconnect(),this.#r=null}updated(t){this.#t&&(t.has("label")&&this.#l(),t.has("heading")&&this.#a(),t.has("placement")&&this.querySelector(":scope > popover-ui")?.setAttribute("placement",this.placement))}get summary(){let t=this.#i?this.#i.querySelectorAll("check-ui"):[],e=[];for(let i of t)(i.hasAttribute("checked")||i.checked)&&e.push(i);return{selected:e.length,total:t.length,checked:e}}#n(){let t=document.createDocumentFragment();for(;this.firstChild;)t.appendChild(this.firstChild);let e=document.createElement("popover-ui");e.setAttribute("placement",this.placement);let i=document.createElement("button-ui");i.setAttribute("slot","trigger"),i.setAttribute("data-form-popover-trigger",""),i.setAttribute("icon-trailing","caret-down"),this.#e=i,e.appendChild(i);let r=document.createElement("div");r.setAttribute("slot","content"),r.setAttribute("data-form-popover-body",""),r.appendChild(t),this.#i=r,e.appendChild(r),this.appendChild(e),this.#a()}#a(){if(!this.#i)return;let t=this.#i.querySelector(":scope > [data-form-popover-heading]");if(!this.heading){t?.remove();return}t||(t=document.createElement("div"),t.setAttribute("data-form-popover-heading",""),this.#i.prepend(t)),t.textContent=this.heading}#o(t){return(t.getAttribute("label")||t.label||t.textContent||"").trim()}#l(){if(!this.#e)return;let{selected:t,total:e,checked:i}=this.summary,r=this.label;t===1&&i[0]?r=this.#o(i[0])||r:t>1&&(r=r?`${r} (${t})`:`${t}`),r||(r="Options"),this.#e.setAttribute("text",r),this.dispatchEvent(new CustomEvent("summary-change",{bubbles:!0,detail:{selected:t,total:e}}))}};customElements.get("form-popover-ui")||customElements.define("form-popover-ui",ph);C();var mh=class extends v{static properties={items:{type:Array,default:[]},"storage-key":{type:String,default:"",reflect:!0},storage:{type:String,default:"local",reflect:!0},"dismiss-on-complete":{type:Boolean,default:!1,reflect:!0},collapsible:{type:Boolean,default:!0,reflect:!0},collapsed:{type:Boolean,default:!1,reflect:!0},value:{type:Object,default:{}},title:{type:String,default:"Get started",reflect:!0}};static template=t=>t._renderTemplate();#t=`obc-h-${Math.random().toString(36).slice(2,8)}`;#e=`obc-l-${Math.random().toString(36).slice(2,8)}`;#i=!1;#s=!1;#r=null;#n=null;attributeChangedCallback(t,e,i){if(t==="items"||t==="value"){if(i==null)this[t]=t==="items"?[]:{};else try{let r=JSON.parse(i);this[t]=r}catch{this[t]=t==="items"?[]:{}}return}super.attributeChangedCallback(t,e,i)}connected(){if(this.setAttribute("role","region"),this.setAttribute("aria-labelledby",this.#t),this.hasAttribute("items")&&!Array.isArray(this.items))try{this.items=JSON.parse(this.getAttribute("items"))}catch{this.items=[]}if(this.hasAttribute("value")&&(typeof this.value!="object"||Array.isArray(this.value)))try{this.value=JSON.parse(this.getAttribute("value"))}catch{this.value={}}if(this.#i=this.value&&Object.keys(this.value).length>0,!this.#i){let t=this.#x();t&&(this.value=t)}this.#r=this.#o.bind(this),this.#n=this.#l.bind(this),this.addEventListener("change",this.#r),this.addEventListener("click",this.#n),this.#s=this.#p(),this.#m()}disconnected(){this.#r&&this.removeEventListener("change",this.#r),this.#n&&this.removeEventListener("click",this.#n),this.#r=null,this.#n=null,this.#v()}render(){this.#m(),this.#y(),this.#g()}_renderTemplate(){let t=Array.isArray(this.items)?this.items:[],{done:e,total:i,percent:r}=this.#f(),n=this.collapsed?"Expand":"Collapse",o=this.collapsed?"chevron-down":"chevron-up",a=!!this.collapsible,l=this.title||"Get started",h=i>0&&e===i;return tt`
399
399
  <div data-part="header">
400
400
  <div data-part="title" id=${this.#t}>${l}</div>
401
401
  ${a?tt`<button-ui
@@ -22,7 +22,7 @@
22
22
  "default": ""
23
23
  },
24
24
  "label": {
25
- "description": "Summary-trigger prefix (\"Option items\"). The live count is\nappended after a middle dot; with no count the label renders\nalone. Required — with no label AND no check-ui children the\ntrigger would otherwise be an empty, nameless button; the runtime\nfalls back to \"Options\" in that state as a defensive accessible\nname, but authors must set a real label.\n",
25
+ "description": "Summary-trigger text (gh#474 — same contract as\nselect-ui[summary-label]). With nothing checked it renders alone,\ndoubling as the placeholder; with exactly one check-ui checked the\ntrigger shows that control's own label instead; beyond one it\nrenders as \"{label} (N)\". Required — with no label AND no check-ui\nchildren the trigger would otherwise be an empty, nameless button;\nthe runtime falls back to \"Options\" in that state as a defensive\naccessible name, but authors must set a real label.\n",
26
26
  "type": "string",
27
27
  "default": ""
28
28
  },
@@ -9,7 +9,7 @@
9
9
  * <form-popover-ui …>
10
10
  * <popover-ui placement="…">
11
11
  * <button-ui slot="trigger" data-form-popover-trigger
12
- * icon-trailing="caret-down" text="Option items · 3 selected">
12
+ * icon-trailing="caret-down" text="Option items (3)">
13
13
  * <div slot="content" data-form-popover-body>
14
14
  * [data-form-popover-heading]? ← from [heading]
15
15
  * …the author's fragment, moved, order preserved…
@@ -43,6 +43,14 @@ class FormPopover extends UIElement {
43
43
  // Stable handler ref so disconnected() can remove what connected()
44
44
  // added (lifecycle symmetry — inline arrows can't be removed).
45
45
  #onFragmentChange = () => this.#updateSummary();
46
+ // Programmatic mutations fire no change/input event — `el.checked = true`
47
+ // reflects to the [checked] attribute (check-ui) but bubbles nothing, so
48
+ // an event-only summary goes stale, contradicting the module's own
49
+ // "DOM is the source of truth" rule (reviewer finding, 2026-07-29). The
50
+ // observer covers the non-event paths: reflected [checked] flips and
51
+ // check-ui population changes. Scoped to the BODY element so trigger
52
+ // attribute writes (our own summary text) can't feed back.
53
+ #summaryObserver = null;
46
54
 
47
55
  connected() {
48
56
  if (!this.#stamped) {
@@ -50,11 +58,22 @@ class FormPopover extends UIElement {
50
58
  this.#stamped = true;
51
59
  }
52
60
  for (const type of SUMMARY_EVENTS) this.addEventListener(type, this.#onFragmentChange);
61
+ if (this.#bodyEl && !this.#summaryObserver) {
62
+ this.#summaryObserver = new MutationObserver(this.#onFragmentChange);
63
+ this.#summaryObserver.observe(this.#bodyEl, {
64
+ subtree: true,
65
+ childList: true,
66
+ attributes: true,
67
+ attributeFilter: ['checked'],
68
+ });
69
+ }
53
70
  this.#updateSummary();
54
71
  }
55
72
 
56
73
  disconnected() {
57
74
  for (const type of SUMMARY_EVENTS) this.removeEventListener(type, this.#onFragmentChange);
75
+ this.#summaryObserver?.disconnect();
76
+ this.#summaryObserver = null;
58
77
  }
59
78
 
60
79
  updated(changed) {
@@ -38,12 +38,14 @@ composes:
38
38
  props:
39
39
  label:
40
40
  description: |
41
- Summary-trigger prefix ("Option items"). The live count is
42
- appended after a middle dot; with no count the label renders
43
- alone. Required with no label AND no check-ui children the
44
- trigger would otherwise be an empty, nameless button; the runtime
45
- falls back to "Options" in that state as a defensive accessible
46
- name, but authors must set a real label.
41
+ Summary-trigger text (gh#474 same contract as
42
+ select-ui[summary-label]). With nothing checked it renders alone,
43
+ doubling as the placeholder; with exactly one check-ui checked the
44
+ trigger shows that control's own label instead; beyond one it
45
+ renders as "{label} (N)". Required with no label AND no check-ui
46
+ children the trigger would otherwise be an empty, nameless button;
47
+ the runtime falls back to "Options" in that state as a defensive
48
+ accessible name, but authors must set a real label.
47
49
  type: string
48
50
  required: true
49
51
  default: ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-modules",
3
- "version": "0.8.21",
3
+ "version": "0.8.22",
4
4
  "description": "AdiaUI composite custom elements \u2014 shell, chat, editor, runtime clusters built from @adia-ai/web-components primitives. Subpath exports per cluster.",
5
5
  "type": "module",
6
6
  "exports": {