monochrome 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@ If you write accessible HTML, monochrome makes it interactive. The DOM is the st
11
11
 
12
12
  ## Components
13
13
 
14
- Accordion · Collapsible · Dialog · Menu · Popover · Tabs · Tooltip.
14
+ Accordion · Collapsible · Dialog · Menu · Menubar · Popover · Tabs · Tooltip.
15
15
 
16
16
  Plus an optional client-side router and thin React and Vue wrappers.
17
17
 
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- if(typeof document<"u"){let C=null,A=null,R=null,$=null,D=[],r=[],m=null,s=null,L=null,F=null,h=null,o=null,y=null,W=null,v=null,p=null,c=null,x=null,f=(e)=>e instanceof HTMLElement,E=(e,t)=>e instanceof HTMLButtonElement&&(!t||e.id.startsWith(t)),j=(e)=>e instanceof HTMLDialogElement,S=(e)=>f(e)&&e.role?.startsWith("menuitem")===!0&&e.ariaDisabled!=="true",g=(e,t)=>{let n=e.getAttribute(t);return n?document.getElementById(n):null},H=(e,t)=>{while(e){if(e.id.startsWith(t))return e;e=e.parentElement}return null},O=(e,t)=>{let n=e.getBoundingClientRect();return t.style.setProperty("--top",`${n.top}px`),t.style.setProperty("--right",`${n.right}px`),t.style.setProperty("--bottom",`${n.bottom}px`),t.style.setProperty("--left",`${n.left}px`),t.style.setProperty("--pw",`${t.offsetWidth}px`),t.style.setProperty("--ph",`${t.offsetHeight}px`),n},B=(e)=>{let t=(i)=>i?e(i.nextElementSibling||i.parentElement?.firstElementChild,t):null,n=(i)=>i?e(i.previousElementSibling||i.parentElement?.lastElementChild,n):null;return[t,n]},P=(e,t)=>{if(f(e)){let n=e.firstElementChild;if(R){if(f(n)){if(n===R){for(let i of D)i.ariaChecked="false";return n}if(n.role==="menuitemradio"){if(!$)n.ariaChecked="false";else D.push(n);return t(e)}}return $=!0,D=[],t(e)}if(S(n)&&(!A||n.textContent?.toLowerCase().startsWith(A)))return n.focus(),C=!0,n;else if(m!==e){if(!m)m=e;return t(e)}else m=null}return null},I=(e,t)=>{if(f(e)){if(m===e)return null;if(!m)m=e;let n=e.firstElementChild?.firstElementChild;if(E(n,"mct:a")){if(n.ariaDisabled==="true")return t(e);return C=!0,n.focus(),n}}return t(e)},U=(e,t)=>{if(E(e,"mct:ta")){if(m===e)return null;if(!m)m=e;if(e.ariaDisabled==="true")return t(e);return C=!0,e.focus(),e}else return t(e)},[k,w]=B(P),[z,G]=B(I),[X,Y]=B(U),N=(e)=>{let t=g(e,"aria-controls");if(t){let n=e.ariaExpanded!=="true";e.ariaExpanded=n?"true":"false",t.ariaHidden=n?"false":"true",n?t.removeAttribute("hidden"):t.setAttribute("hidden","")}},q=(e)=>{if(e.ariaDisabled==="true")return;if(e.ariaExpanded==="true")N(e);else{let t=H(e,"mcr:a");if(!t||t.getAttribute("data-mode")!=="single")N(e);else{let n=t.firstElementChild;while(n){let i=n.firstElementChild?.firstElementChild;if(f(i)&&(i===e||i.ariaExpanded==="true"))N(i);n=n.nextElementSibling}}}},J=(e)=>{if(e.ariaDisabled!=="true"&&e.ariaSelected!=="true"){let t=e.parentElement?.firstElementChild;while(f(t)){if(t===e||t.ariaSelected==="true"){let n=g(t,"aria-controls");if(n){let i=t.ariaSelected!=="true";if(t.ariaSelected=i?"true":"false",t.tabIndex=i?0:-1,n.ariaHidden=i?"false":"true",n.hasAttribute("tabindex"))n.tabIndex=i?0:-1;i?n.removeAttribute("hidden"):n.setAttribute("hidden","")}}t=t.nextElementSibling}}},d=(e,t=0)=>{if(e?.id.startsWith("mct:m")){let n=g(e,"aria-controls");if(n)if(e.ariaExpanded==="true"){if(s)s.removeAttribute("data-safe");if(s=null,F=null,h=null,t!==3)e.focus();n.hidePopover(),e.ariaExpanded="false",n.ariaHidden="true"}else{r.push(e),n.showPopover(),e.ariaExpanded="true",n.ariaHidden="false";let i=O(e,n),a=e.parentElement;if(a)s=a,L=i,F=n,h=null;if(t===0)e.focus();else if(t===1)P(n.firstElementChild,k);else if(t===2)P(n.lastElementChild,w)}}},T=(e=0)=>{while(r[e])d(r.pop(),3)},Q=(e)=>{if(e.role==="menuitemcheckbox")e.ariaChecked=e.ariaChecked==="true"?"false":"true";else if(e.role==="menuitemradio")R=e,$=null,D=[],k(e.parentElement),R=null,e.ariaChecked="true";else T()},b=(e,t)=>{if(e.ariaExpanded==="true"===t)return;let n=g(e,"aria-controls");if(n){if(t){if(o&&o!==e)b(o,!1);n.showPopover(),e.ariaExpanded="true",n.ariaHidden="false",O(e,n),o=e}else if(n.hidePopover(),e.ariaExpanded="false",n.ariaHidden="true",o===e)o=null}},K=(e,t)=>{let n=g(e,"aria-describedby");if(n)if(t)n.showPopover(),O(e,n);else n.hidePopover()},M=()=>{if(x&&x!==v&&x!==p)x=null;let e=v??p,t=e&&e!==x?e:null;if(t!==c){if(c)K(c,!1);if(t)K(t,!0);c=t}},V=(e)=>{if(y)return;let t=g(e,"aria-controls");if(!j(t))return;y=t,W=e,t.showModal()},Z=()=>{if(!y||!W)return;let e=y,t=W;y=null,W=null,e.close(),t.focus()};addEventListener("click",(e)=>{C=null;let t=e.detail===0,n=f(e.target)?e.target:e.target instanceof Element?e.target.parentElement:null;if(n){let i=n;while(i){let a=i.id;if(a.startsWith("mct:")){if(a.startsWith("mct:m")){if(o)b(o,!1);let l=t?1:3;if(H(i.parentElement,"mcc:m")){if(!r.includes(i))d(i,l)}else if(r[0]){let _=i!==r[0];if(T(),_)d(i,l)}else d(i,l)}else{if(r[0])T();if(a.startsWith("mct:a"))q(i);else if(a.startsWith("mct:c"))N(i);else if(a.startsWith("mct:ta"))J(i);else if(a.startsWith("mct:dialog-c"))Z();else if(a.startsWith("mct:dialog-o")&&i.ariaDisabled!=="true"){if(o)b(o,!1);if(c)x=c,M();V(i)}else if(a.startsWith("mct:p")&&i.ariaDisabled!=="true"){let l=i.ariaExpanded==="true";b(i,!l),l?i.focus():g(i,"aria-controls")?.focus()}else if(a.startsWith("mct:to")&&c)x=c,M()}break}else if(a.startsWith("mcc:m")&&r[0]){let l=n;while(l&&l!==i){if(S(l)&&!E(l,"mct:m")){Q(l);break}l=l.parentElement}break}else if(a.startsWith("mcc:p"))break;else if(a.startsWith("mcc:to"))break;else if(a.startsWith("mcc:d"))break;i=i.parentElement}if(!i){if(r[0])T();if(o)b(o,!1)}}if(C)e.preventDefault()}),addEventListener("pointermove",(e)=>{if(e.pointerType==="touch")return;if(f(e.target)&&!H(e.target,"mcc:to")){let t=H(e.target,"mct:to");if(t!==v)v=t,M()}if(r[0]){if(r[1]&&s&&L&&F){if(e.clientX>=L.left&&e.clientX<=L.right&&e.clientY>=L.top&&e.clientY<=L.bottom){if(h=F.getBoundingClientRect(),s.style.setProperty("--left",`${h.left}px`),s.style.setProperty("--right",`${h.right}px`),s.style.setProperty("--top",`${h.top}px`),s.style.setProperty("--bottom",`${h.bottom}px`),s.style.setProperty("--x",`${e.clientX}px`),s.style.setProperty("--y",`${e.clientY}px`),!s.hasAttribute("data-safe"))s.setAttribute("data-safe","")}else if(s.hasAttribute("data-safe")&&h&&(e.target!==s||(h.left-L.right)*e.movementX<0))s.removeAttribute("data-safe")}let t=e.target;if(f(t)){let n=[],i=t,a=!1,l=!1;while(i){if(S(i))l=!0;if(!l&&i.id.startsWith("mcc:")){a=!0;break}let u=i.firstElementChild;if(E(u,"mct:m"))n.unshift(u);i=i.parentElement}if(!a&&n[0]){let u=0;while(r[u]&&r[u]===n[u])u++;if(u===0&&(n[0].role!=="menuitem"||n[0].parentElement?.parentElement!==r[0].parentElement?.parentElement))return;T(u),d(n[u],3)}}}}),addEventListener("keydown",(e)=>{C=null,A=null,m=null;let t=e.target;if(E(t,"mct:a")){let n=t.parentElement?.parentElement;if(n)switch(e.key){case"ArrowDown":z(n);break;case"ArrowUp":G(n);break;case"Home":{let i=n.parentElement;if(i)I(i.firstElementChild,z);break}case"End":{let i=n.parentElement;if(i)I(i.lastElementChild,G);break}}}else if(E(t,"mct:ta")){let n=t.parentElement?.ariaOrientation==="vertical";switch(e.key){case"ArrowDown":if(n)X(t);break;case"ArrowUp":if(n)Y(t);break;case"ArrowRight":if(!n)X(t);break;case"ArrowLeft":if(!n)Y(t);break;case"Home":U(t.parentElement?.firstElementChild,X);break;case"End":U(t.parentElement?.lastElementChild,Y);break}}else{if(E(t,"mct:m")){let n=H(t,"mcc:m")===null;switch(e.key){case"ArrowDown":if(n)if(t.ariaExpanded!=="true")d(t,1);else{let i=g(t,"aria-controls");if(i)P(i.firstElementChild,k)}break;case"ArrowUp":if(n)if(t.ariaExpanded!=="true")d(t,2);else{let i=g(t,"aria-controls");if(i)P(i.lastElementChild,w)}break;case"ArrowRight":if(!n)d(t,1);break}}if(!C&&f(t)&&t.role?.startsWith("menuitem")&&t.parentElement){let n=t.parentElement,i=r[0]?.parentElement||n,a=H(t.parentElement,"mcc:m");switch(e.key){case"Tab":if(r[0])r[0].focus();T();break;case"ArrowDown":if(a)k(n);break;case"ArrowUp":if(a)w(n);break;case"ArrowRight":{let l=k(i);if(l){let u=r[0];if(T(),u&&E(l,"mct:m"))d(l,3)}break}case"ArrowLeft":if(r[1])d(r.pop(),0);else{let l=w(i);if(l){let u=r[0];if(T(),u&&E(l,"mct:m"))d(l,3)}}break;case"Home":P(n.parentElement?.firstElementChild,k);break;case"End":P(n.parentElement?.lastElementChild,w);break;default:if(/^[a-zA-Z]$/.test(e.key))A=e.key.toLowerCase(),k(n);break}}}if(e.key==="Escape"){if(r[0])d(r.pop(),0);if(o){let n=o;b(n,!1),n.focus()}if(y)Z();if(c)x=c,M()}if(C)e.preventDefault()}),addEventListener("scroll",(e)=>{if(r[0]&&(!f(e.target)||!e.target.id.startsWith("mcc:m")))T();if(o&&!(f(e.target)&&H(e.target,"mcc:p")))b(o,!1);if(c)v=null,p=null,M()},!0),addEventListener("resize",()=>{if(r[0])T();if(o)b(o,!1);if(c)v=null,p=null,M()}),addEventListener("focusin",(e)=>{let t=e.target;if(E(t,"mct:to")){if(p!==t)p=t,M()}else if(p)p=null,M()}),addEventListener("focusout",(e)=>{if(o&&f(e.relatedTarget)&&o!==e.relatedTarget&&!g(o,"aria-controls")?.contains(e.relatedTarget))b(o,!1);if(p&&e.target===p&&!e.relatedTarget)p=null,M()})}
1
+ if(typeof document<"u"){let x=null,A=null,R=null,$=null,D=[],r=[],m=null,s=null,L=null,W=null,h=null,o=null,y=null,F=null,v=null,p=null,c=null,C=null,f=(e)=>e instanceof HTMLElement,E=(e,t)=>e instanceof HTMLButtonElement&&(!t||e.id.startsWith(t)),j=(e)=>e instanceof HTMLDialogElement,S=(e)=>f(e)&&e.role?.startsWith("menuitem")===!0&&e.ariaDisabled!=="true",g=(e,t)=>{let n=e.getAttribute(t);return n?document.getElementById(n):null},H=(e,t)=>{while(e){if(e.id.startsWith(t))return e;e=e.parentElement}return null},O=(e,t)=>{let n=e.getBoundingClientRect();return t.style.setProperty("--top",`${n.top}px`),t.style.setProperty("--right",`${n.right}px`),t.style.setProperty("--bottom",`${n.bottom}px`),t.style.setProperty("--left",`${n.left}px`),t.style.setProperty("--pw",`${t.offsetWidth}px`),t.style.setProperty("--ph",`${t.offsetHeight}px`),n},B=(e)=>{let t=(i)=>i?e(i.nextElementSibling||i.parentElement?.firstElementChild,t):null,n=(i)=>i?e(i.previousElementSibling||i.parentElement?.lastElementChild,n):null;return[t,n]},P=(e,t)=>{if(f(e)){let n=e.firstElementChild;if(R){if(f(n)){if(n===R){for(let i of D)i.ariaChecked="false";return n}if(n.role==="menuitemradio"){if(!$)n.ariaChecked="false";else D.push(n);return t(e)}}return $=!0,D=[],t(e)}if(S(n)&&(!A||n.textContent?.toLowerCase().startsWith(A)))return n.focus(),x=!0,n;else if(m!==e){if(!m)m=e;return t(e)}else m=null}return null},I=(e,t)=>{if(f(e)){if(m===e)return null;if(!m)m=e;let n=e.firstElementChild?.firstElementChild;if(E(n,"mct:a")){if(n.ariaDisabled==="true")return t(e);return x=!0,n.focus(),n}}return t(e)},U=(e,t)=>{if(E(e,"mct:ta")){if(m===e)return null;if(!m)m=e;if(e.ariaDisabled==="true")return t(e);return x=!0,e.focus(),e}else return t(e)},[k,w]=B(P),[z,G]=B(I),[X,Y]=B(U),N=(e)=>{let t=g(e,"aria-controls");if(t){let n=e.ariaExpanded!=="true";e.ariaExpanded=n?"true":"false",t.ariaHidden=n?"false":"true",n?t.removeAttribute("hidden"):t.setAttribute("hidden","")}},q=(e)=>{if(e.ariaDisabled==="true")return;if(e.ariaExpanded==="true")N(e);else{let t=H(e,"mcr:a");if(!t||t.getAttribute("data-mode")!=="single")N(e);else{let n=t.firstElementChild;while(n){let i=n.firstElementChild?.firstElementChild;if(f(i)&&(i===e||i.ariaExpanded==="true"))N(i);n=n.nextElementSibling}}}},J=(e)=>{if(e.ariaDisabled!=="true"&&e.ariaSelected!=="true"){let t=e.parentElement?.firstElementChild;while(f(t)){if(t===e||t.ariaSelected==="true"){let n=g(t,"aria-controls");if(n){let i=t.ariaSelected!=="true";if(t.ariaSelected=i?"true":"false",t.tabIndex=i?0:-1,n.ariaHidden=i?"false":"true",n.hasAttribute("tabindex"))n.tabIndex=i?0:-1;i?n.removeAttribute("hidden"):n.setAttribute("hidden","")}}t=t.nextElementSibling}}},d=(e,t=0)=>{if(e?.id.startsWith("mct:m")){let n=g(e,"aria-controls");if(n)if(e.ariaExpanded==="true"){if(s)s.removeAttribute("data-safe");if(s=null,W=null,h=null,t!==3)e.focus();n.hidePopover(),e.ariaExpanded="false",n.ariaHidden="true"}else{r.push(e),n.showPopover(),e.ariaExpanded="true",n.ariaHidden="false";let i=O(e,n),a=e.parentElement;if(a)s=a,L=i,W=n,h=null;if(t===0)e.focus();else if(t===1)P(n.firstElementChild,k);else if(t===2)P(n.lastElementChild,w)}}},T=(e=0)=>{while(r[e])d(r.pop(),3)},Q=(e)=>{if(e.role==="menuitemcheckbox")e.ariaChecked=e.ariaChecked==="true"?"false":"true";else if(e.role==="menuitemradio")R=e,$=null,D=[],k(e.parentElement),R=null,e.ariaChecked="true";else T()},b=(e,t)=>{if(e.ariaExpanded==="true"===t)return;let n=g(e,"aria-controls");if(n){if(t){if(o&&o!==e)b(o,!1);n.showPopover(),e.ariaExpanded="true",n.ariaHidden="false",O(e,n),o=e}else if(n.hidePopover(),e.ariaExpanded="false",n.ariaHidden="true",o===e)o=null}},K=(e,t)=>{let n=g(e,"aria-describedby");if(n)if(t)n.showPopover(),O(e,n);else n.hidePopover()},M=()=>{if(C&&C!==v&&C!==p)C=null;let e=v??p,t=e&&e!==C?e:null;if(t!==c){if(c)K(c,!1);if(t)K(t,!0);c=t}},V=(e)=>{if(y)return;let t=g(e,"aria-controls");if(!j(t))return;y=t,F=e,t.showModal()},Z=()=>{if(!y||!F)return;let e=y,t=F;y=null,F=null,e.close(),t.focus()};addEventListener("click",(e)=>{x=null;let t=e.detail===0,n=f(e.target)?e.target:e.target instanceof Element?e.target.parentElement:null;if(n){let i=n;while(i){let a=i.id;if(a.startsWith("mct:")){if(a.startsWith("mct:m")){if(o)b(o,!1);let l=t?1:3;if(H(i.parentElement,"mcc:m")){if(!r.includes(i))d(i,l)}else if(r[0]){let _=i!==r[0];if(T(),_)d(i,l)}else d(i,l)}else{if(r[0])T();if(a.startsWith("mct:a"))q(i);else if(a.startsWith("mct:c"))N(i);else if(a.startsWith("mct:ta"))J(i);else if(a.startsWith("mct:dialog-c"))Z();else if(a.startsWith("mct:dialog-o")&&i.ariaDisabled!=="true"){if(o)b(o,!1);if(c)C=c,M();V(i)}else if(a.startsWith("mct:p")&&i.ariaDisabled!=="true"){let l=i.ariaExpanded==="true";b(i,!l),l?i.focus():g(i,"aria-controls")?.focus()}else if(a.startsWith("mct:to")&&c)C=c,M()}break}else if(a.startsWith("mcc:m")&&r[0]){let l=n;while(l&&l!==i){if(S(l)&&!E(l,"mct:m")){Q(l);break}l=l.parentElement}break}else if(a.startsWith("mcc:p"))break;else if(a.startsWith("mcc:to"))break;else if(a.startsWith("mcc:d"))break;i=i.parentElement}if(!i){if(r[0])T();if(o)b(o,!1)}}if(x)e.preventDefault()}),addEventListener("pointermove",(e)=>{if(e.pointerType==="touch")return;if(f(e.target)&&!H(e.target,"mcc:to")){let t=H(e.target,"mct:to");if(t!==v)v=t,M()}if(r[0]){if(r[1]&&s&&L&&W){if(e.clientX>=L.left&&e.clientX<=L.right&&e.clientY>=L.top&&e.clientY<=L.bottom){if(h=W.getBoundingClientRect(),s.style.setProperty("--left",`${h.left}px`),s.style.setProperty("--right",`${h.right}px`),s.style.setProperty("--top",`${h.top}px`),s.style.setProperty("--bottom",`${h.bottom}px`),s.style.setProperty("--x",`${e.clientX}px`),s.style.setProperty("--y",`${e.clientY}px`),!s.hasAttribute("data-safe"))s.setAttribute("data-safe","")}else if(s.hasAttribute("data-safe")&&h&&(e.target!==s||(h.left-L.right)*e.movementX<0))s.removeAttribute("data-safe")}let t=e.target;if(f(t)){let n=[],i=t,a=!1,l=!1;while(i){if(S(i))l=!0;if(!l&&i.id.startsWith("mcc:")){a=!0;break}if(E(i,"mct:m"))n.unshift(i);else if(i.id.startsWith("mcc:m")){let u=g(i,"aria-labelledby");if(E(u,"mct:m"))n.unshift(u)}i=i.parentElement}if(!a&&n[0]){let u=0;while(r[u]&&r[u]===n[u])u++;if(u===0&&(n[0].role!=="menuitem"||n[0].parentElement?.parentElement!==r[0].parentElement?.parentElement))return;T(u),d(n[u],3)}}}}),addEventListener("keydown",(e)=>{x=null,A=null,m=null;let t=e.target;if(E(t,"mct:a")){let n=t.parentElement?.parentElement;if(n)switch(e.key){case"ArrowDown":z(n);break;case"ArrowUp":G(n);break;case"Home":{let i=n.parentElement;if(i)I(i.firstElementChild,z);break}case"End":{let i=n.parentElement;if(i)I(i.lastElementChild,G);break}}}else if(E(t,"mct:ta")){let n=t.parentElement?.ariaOrientation==="vertical";switch(e.key){case"ArrowDown":if(n)X(t);break;case"ArrowUp":if(n)Y(t);break;case"ArrowRight":if(!n)X(t);break;case"ArrowLeft":if(!n)Y(t);break;case"Home":U(t.parentElement?.firstElementChild,X);break;case"End":U(t.parentElement?.lastElementChild,Y);break}}else{if(E(t,"mct:m")){let n=H(t,"mcc:m")===null;switch(e.key){case"ArrowDown":if(n)if(t.ariaExpanded!=="true")d(t,1);else{let i=g(t,"aria-controls");if(i)P(i.firstElementChild,k)}break;case"ArrowUp":if(n)if(t.ariaExpanded!=="true")d(t,2);else{let i=g(t,"aria-controls");if(i)P(i.lastElementChild,w)}break;case"ArrowRight":if(!n)d(t,1);break}}if(!x&&f(t)&&t.role?.startsWith("menuitem")&&t.parentElement){let n=t.parentElement,i=r[0]?.parentElement||n,a=H(t.parentElement,"mcc:m");switch(e.key){case"Tab":if(r[0])r[0].focus();T();break;case"ArrowDown":if(a)k(n);break;case"ArrowUp":if(a)w(n);break;case"ArrowRight":{let l=k(i);if(l){let u=r[0];if(T(),u&&E(l,"mct:m"))d(l,3)}break}case"ArrowLeft":if(r[1])d(r.pop(),0);else{let l=w(i);if(l){let u=r[0];if(T(),u&&E(l,"mct:m"))d(l,3)}}break;case"Home":P(n.parentElement?.firstElementChild,k);break;case"End":P(n.parentElement?.lastElementChild,w);break;default:if(/^[a-zA-Z]$/.test(e.key))A=e.key.toLowerCase(),k(n);break}}}if(e.key==="Escape"){if(r[0])d(r.pop(),0);if(o){let n=o;b(n,!1),n.focus()}if(y)Z();if(c)C=c,M()}if(x)e.preventDefault()}),addEventListener("scroll",(e)=>{if(r[0]&&(!f(e.target)||!e.target.id.startsWith("mcc:m")))T();if(o&&!(f(e.target)&&H(e.target,"mcc:p")))b(o,!1);if(c)v=null,p=null,M()},!0),addEventListener("resize",()=>{if(r[0])T();if(o)b(o,!1);if(c)v=null,p=null,M()}),addEventListener("focusin",(e)=>{let t=e.target;if(E(t,"mct:to")){if(p!==t)p=t,M()}else if(p)p=null,M()}),addEventListener("focusout",(e)=>{if(o&&f(e.relatedTarget)&&o!==e.relatedTarget&&!g(o,"aria-controls")?.contains(e.relatedTarget))b(o,!1);if(p&&e.target===p&&!e.relatedTarget)p=null,M()})}
@@ -2,6 +2,7 @@ export * from "./accordion.js";
2
2
  export * from "./collapsible.js";
3
3
  export * from "./dialog.js";
4
4
  export * from "./menu.js";
5
+ export * from "./menubar.js";
5
6
  export * from "./popover.js";
6
7
  export * from "./tabs.js";
7
8
  export * from "./tooltip.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{createContext as L,createElement as u,useContext as j,useId as E}from"react";var v=L(null);function g(){let e=j(v);if(!e)throw Error("Accordion components must be used within Accordion.Item");return e}function F({children:e,type:o,...t}){let n=E();return u("div",{...t,"data-mode":o??"single",id:`mcr:accordion:${n}`},e)}function O({children:e,open:o,disabled:t,...n}){let r=E();return u(v.Provider,{value:{baseId:r,open:o??!1,disabled:t??!1}},u("div",n,e))}function H({children:e,as:o,...t}){return u(o??"h3",t,e)}function z({children:e,...o}){let t=g(),n=t.baseId,r=t.open;return u("button",{...o,type:"button",id:`mct:accordion:${n}`,"aria-expanded":r,"aria-controls":`mcc:accordion:${n}`,"aria-disabled":t.disabled||void 0},e)}function S({children:e,...o}){let t=g(),n=t.baseId,r=t.open;return u("div",{...o,id:`mcc:accordion:${n}`,role:"region","aria-labelledby":`mct:accordion:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var je={Root:F,Item:O,Header:H,Trigger:z,Panel:S};import{createContext as N,createElement as b,useContext as G,useId as q}from"react";var y=N(null);function I(){let e=G(y);if(!e)throw Error("Collapsible components must be used within Collapsible.Root");return e}function J({children:e,open:o,...t}){let n=q();return b(y.Provider,{value:{baseId:n,open:o??!1}},b("div",t,e))}function K({children:e,...o}){let t=I(),n=t.baseId,r=t.open;return b("button",{...o,type:"button",id:`mct:collapsible:${n}`,"aria-expanded":r,"aria-controls":`mcc:collapsible:${n}`},e)}function Q({children:e,...o}){let t=I(),n=t.baseId,r=t.open;return b("div",{...o,id:`mcc:collapsible:${n}`,"aria-labelledby":`mct:collapsible:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var He={Root:J,Trigger:K,Panel:Q};import{createContext as U,createElement as c,useContext as W,useId as X}from"react";var B=U(null);function p(){let e=W(B);if(!e)throw Error("Dialog components must be used within Dialog.Root");return e}function Y({children:e,...o}){let t=X();return c(B.Provider,{value:{id:t}},c("div",o,e))}function Z({children:e,...o}){let t=p();return c("button",{...o,type:"button",id:`mct:dialog-open:${t.id}`,"aria-haspopup":"dialog","aria-controls":`mcc:dialog:${t.id}`},e)}function _({children:e,...o}){let t=p(),n="aria-label"in o,r="aria-description"in o;return c("dialog",{...n?{}:{"aria-labelledby":`mcc:dialog-title:${t.id}`},...r?{}:{"aria-describedby":`mcc:dialog-description:${t.id}`},...o,id:`mcc:dialog:${t.id}`,tabIndex:-1},e)}function ee({children:e,as:o,...t}){let n=p();return c(o??"h2",{...t,id:`mcc:dialog-title:${n.id}`},e)}function te({children:e,...o}){let t=p();return c("p",{...o,id:`mcc:dialog-description:${t.id}`},e)}function oe({children:e,...o}){let t=p();return c("button",{...o,type:"button",id:`mct:dialog-close:${t.id}`},e)}var Ne={Root:Y,Trigger:Z,Content:_,Title:ee,Description:te,Close:oe};import{createContext as $,createElement as a,useContext as T,useId as w,useRef as ne}from"react";var P=$(null),M=$(null);function h(){let e=T(P);if(!e)throw Error("Menu components must be used within Menu.Root");return e}function re(){let e=T(M);if(!e)throw Error("Menu components must be used within Menu.Popover");return e}function ae({children:e,menubar:o,...t}){let n=w();return a(P.Provider,{value:{id:n,root:!0,menubar:o}},a("div",{...t,id:`mcr:menu:${n}`},e))}function ie({children:e,...o}){let t=h();return a("button",{...o,type:"button",id:`mct:menu:${t.id}`,"aria-controls":`mcc:menu:${t.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabIndex:t.root||t.first?0:-1,role:t.submenu?"menuitem":"button"},e)}function se({children:e,...o}){let t=h(),n=ne(!1);n.current=!1;let r=a(M.Provider,{value:{claimFirst:()=>{if(!n.current)return n.current=!0,!0;return!1}}},e);return t.menubar?a("ul",{...o,role:"menubar"},r):a("ul",{...o,role:"menu",id:`mcc:menu:${t.id}`,"aria-labelledby":`mct:menu:${t.id}`,"aria-hidden":"true",popover:"manual"},r)}function ce({children:e,disabled:o,href:t,...n}){let r=o?a("span",{...n,role:"menuitem","aria-disabled":"true",tabIndex:-1},e):t?a("a",{...n,role:"menuitem",href:t,tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitem",tabIndex:-1},e);return a("li",{role:"none"},r)}function le({children:e,checked:o,disabled:t,...n}){let r=t?a("span",{...n,role:"menuitemcheckbox","aria-checked":o??!1,"aria-disabled":"true",tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitemcheckbox","aria-checked":o??!1,tabIndex:-1},e);return a("li",{role:"none"},r)}function ue({children:e,checked:o,disabled:t,...n}){let r=t?a("span",{...n,role:"menuitemradio","aria-checked":o??!1,"aria-disabled":"true",tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitemradio","aria-checked":o??!1,tabIndex:-1},e);return a("li",{role:"none"},r)}function de({children:e,...o}){return a("li",{...o,role:"presentation"},e)}function pe(e){return a("li",{...e,role:"separator"})}function me({children:e,...o}){let t=h(),r=re().claimFirst(),i=w(),s=r&&t.menubar&&!t.submenu;return a(P.Provider,{value:{id:i,submenu:!0,first:s}},a("li",{...o,role:"none"},e))}var Je={Root:ae,Trigger:ie,Popover:se,Item:ce,CheckboxItem:le,RadioItem:ue,Label:de,Separator:pe,Group:me};import{createContext as be,createElement as d,useContext as xe,useId as fe}from"react";var V=be(null);function x(){let e=xe(V);if(!e)throw Error("Popover components must be used within Popover.Root");return e}function Pe({children:e,...o}){let t=fe();return d(V.Provider,{value:{id:t}},d("div",o,e))}function he({children:e,...o}){let t=x();return d("button",{...o,type:"button",id:`mct:popover:${t.id}`,"aria-controls":`mcc:popover:${t.id}`,"aria-expanded":"false"},e)}function Ce({children:e,...o}){let t=x(),n="aria-label"in o,r="aria-description"in o;return d("div",{...n?{}:{"aria-labelledby":`mct:popover:${t.id}`},...r?{}:{"aria-describedby":`mcc:popover-description:${t.id}`},...o,id:`mcc:popover:${t.id}`,"aria-hidden":"true",popover:"manual",tabIndex:-1},e)}function Re({children:e,as:o,...t}){let n=x();return d(o??"h2",{...t,id:`mcc:popover-title:${n.id}`},e)}function Ee({children:e,...o}){let t=x();return d("p",{...o,id:`mcc:popover-description:${t.id}`},e)}var Ue={Root:Pe,Trigger:he,Content:Ce,Title:Re,Description:Ee};import{createContext as ve,createElement as m,useContext as ge,useId as ye}from"react";var C=(e,o)=>o?`${e}:${o}`:e;var D=ve(null);function R(){let e=ge(D);if(!e)throw Error("Tabs components must be used within Tabs.Root");return e}function Ie({children:e,defaultValue:o,orientation:t,...n}){let r=ye(),i=t??"horizontal";return m(D.Provider,{value:{baseId:r,selected:o,orientation:i}},m("div",{...n,id:`mcr:tabs:${r}`},e))}function Be({children:e,...o}){let t=R();return m("div",{...o,role:"tablist","aria-orientation":t.orientation},e)}function $e({children:e,value:o,selected:t,disabled:n,...r}){let i=R(),s=C(i.baseId,o),l=t??o===i.selected;return m("button",{...r,type:"button",role:"tab",id:`mct:tabs:${s}`,"aria-selected":l,"aria-controls":`mcc:tabs:${s}`,tabIndex:l?0:-1,"aria-disabled":n||void 0},e)}function Te({children:e,value:o,selected:t,focusable:n=!0,...r}){let i=R(),s=C(i.baseId,o),l=t??o===i.selected;return m("div",{...r,role:"tabpanel",id:`mcc:tabs:${s}`,"aria-labelledby":`mct:tabs:${s}`,"aria-hidden":!l,hidden:l?void 0:!0,tabIndex:n?l?0:-1:void 0},e)}var _e={Root:Ie,List:Be,Tab:$e,Panel:Te};import{createContext as we,createElement as f,useContext as Me,useId as Ve}from"react";var A=we(null);function k(){let e=Me(A);if(!e)throw Error("Tooltip components must be used within Tooltip.Root");return e}function De({children:e,...o}){let t=Ve();return f(A.Provider,{value:{id:t}},f("div",o,e))}function Ae({children:e,...o}){let t=k();return f("button",{...o,type:"button",id:`mct:tooltip:${t.id}`,"aria-describedby":`mcc:tooltip:${t.id}`},e)}function ke({children:e,...o}){let t=k();return f("div",{...o,id:`mcc:tooltip:${t.id}`,role:"tooltip",popover:"manual"},e)}var ot={Root:De,Trigger:Ae,Content:ke};export{ot as Tooltip,_e as Tabs,Ue as Popover,Je as Menu,Ne as Dialog,He as Collapsible,je as Accordion};
2
+ import{createContext as H,createElement as u,useContext as N,useId as I}from"react";var g=H(null);function y(){let e=N(g);if(!e)throw Error("Accordion components must be used within Accordion.Item");return e}function z({children:e,type:o,...t}){let n=I();return u("div",{...t,"data-mode":o??"single",id:`mcr:accordion:${n}`},e)}function G({children:e,open:o,disabled:t,...n}){let r=I();return u(g.Provider,{value:{baseId:r,open:o??!1,disabled:t??!1}},u("div",n,e))}function q({children:e,as:o,...t}){return u(o??"h3",t,e)}function J({children:e,...o}){let t=y(),n=t.baseId,r=t.open;return u("button",{...o,type:"button",id:`mct:accordion:${n}`,"aria-expanded":r,"aria-controls":`mcc:accordion:${n}`,"aria-disabled":t.disabled||void 0},e)}function K({children:e,...o}){let t=y(),n=t.baseId,r=t.open;return u("div",{...o,id:`mcc:accordion:${n}`,role:"region","aria-labelledby":`mct:accordion:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var Ue={Root:z,Item:G,Header:q,Trigger:J,Panel:K};import{createContext as Q,createElement as f,useContext as U,useId as W}from"react";var B=Q(null);function $(){let e=U(B);if(!e)throw Error("Collapsible components must be used within Collapsible.Root");return e}function X({children:e,open:o,...t}){let n=W();return f(B.Provider,{value:{baseId:n,open:o??!1}},f("div",t,e))}function Y({children:e,...o}){let t=$(),n=t.baseId,r=t.open;return f("button",{...o,type:"button",id:`mct:collapsible:${n}`,"aria-expanded":r,"aria-controls":`mcc:collapsible:${n}`},e)}function Z({children:e,...o}){let t=$(),n=t.baseId,r=t.open;return f("div",{...o,id:`mcc:collapsible:${n}`,"aria-labelledby":`mct:collapsible:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var Ye={Root:X,Trigger:Y,Panel:Z};import{createContext as _,createElement as s,useContext as ee,useId as te}from"react";var M=_(null);function b(){let e=ee(M);if(!e)throw Error("Dialog components must be used within Dialog.Root");return e}function oe({children:e,...o}){let t=te();return s(M.Provider,{value:{id:t}},s("div",o,e))}function ne({children:e,...o}){let t=b();return s("button",{...o,type:"button",id:`mct:dialog-open:${t.id}`,"aria-haspopup":"dialog","aria-controls":`mcc:dialog:${t.id}`},e)}function re({children:e,...o}){let t=b(),n="aria-label"in o,r="aria-description"in o;return s("dialog",{...n?{}:{"aria-labelledby":`mcc:dialog-title:${t.id}`},...r?{}:{"aria-describedby":`mcc:dialog-description:${t.id}`},...o,id:`mcc:dialog:${t.id}`,tabIndex:-1},e)}function ae({children:e,as:o,...t}){let n=b();return s(o??"h2",{...t,id:`mcc:dialog-title:${n.id}`},e)}function ie({children:e,...o}){let t=b();return s("p",{...o,id:`mcc:dialog-description:${t.id}`},e)}function ce({children:e,...o}){let t=b();return s("button",{...o,type:"button",id:`mct:dialog-close:${t.id}`},e)}var et={Root:oe,Trigger:ne,Content:re,Title:ae,Description:ie,Close:ce};import{createContext as se,createElement as a,useContext as le,useId as T}from"react";var R=se(null);function w(){let e=le(R);if(!e)throw Error("Menu components must be used within Menu.Root");return e}function ue({children:e}){let o=T();return a(R.Provider,{value:{id:o,root:!0}},e)}function de({children:e,...o}){let t=w();return a("button",{...o,type:"button",id:`mct:menu:${t.id}`,"aria-controls":`mcc:menu:${t.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabIndex:t.root?0:-1,role:t.submenu?"menuitem":"button"},e)}function pe({children:e,...o}){let t=w();return a("ul",{...o,role:"menu",id:`mcc:menu:${t.id}`,"aria-labelledby":`mct:menu:${t.id}`,"aria-hidden":"true",popover:"manual"},e)}function me({children:e,disabled:o,href:t,...n}){let r=o?a("span",{...n,role:"menuitem","aria-disabled":"true",tabIndex:-1},e):t?a("a",{...n,role:"menuitem",href:t,tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitem",tabIndex:-1},e);return a("li",{role:"none"},r)}function be({children:e,checked:o,disabled:t,...n}){let r=t?a("span",{...n,role:"menuitemcheckbox","aria-checked":o??!1,"aria-disabled":"true",tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitemcheckbox","aria-checked":o??!1,tabIndex:-1},e);return a("li",{role:"none"},r)}function xe({children:e,checked:o,disabled:t,...n}){let r=t?a("span",{...n,role:"menuitemradio","aria-checked":o??!1,"aria-disabled":"true",tabIndex:-1},e):a("button",{...n,type:"button",role:"menuitemradio","aria-checked":o??!1,tabIndex:-1},e);return a("li",{role:"none"},r)}function fe({children:e,...o}){return a("li",{...o,role:"presentation"},e)}function he(e){return a("li",{...e,role:"separator"})}function Pe({children:e,...o}){let t=T();return a(R.Provider,{value:{id:t,submenu:!0}},a("li",{...o,role:"none"},e))}var d={Root:ue,Trigger:de,Popover:pe,Item:me,CheckboxItem:be,RadioItem:xe,Label:fe,Separator:he,Group:Pe};import{createContext as V,createElement as i,useContext as D,useId as k,useRef as Re}from"react";var C=V(null),A=V(null);function L(){let e=D(C);if(!e)throw Error("Menubar.Trigger and Menubar.Popover must be used within Menubar.Menu or Menubar.Group");return e}function Ce(){let e=D(A);if(!e)throw Error("Menubar.Menu must be used within Menubar.Root");return e}function Ee({children:e,...o}){let t=Re(!1);return t.current=!1,i(A.Provider,{value:{claimFirst:()=>{if(!t.current)return t.current=!0,!0;return!1}}},i("ul",{...o,role:"menubar"},e))}function ve({children:e,...o}){let n=Ce().claimFirst(),r=k();return i(C.Provider,{value:{id:r,first:n}},i("li",{...o,role:"none"},e))}function Ie({children:e,...o}){let t=k();return i(C.Provider,{value:{id:t,first:!1}},i("li",{...o,role:"none"},e))}function ge({children:e,...o}){let t=L();return i("button",{...o,type:"button",id:`mct:menu:${t.id}`,"aria-controls":`mcc:menu:${t.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabIndex:t.first?0:-1,role:"menuitem"},e)}function ye({children:e,...o}){let t=L();return i("ul",{...o,role:"menu",id:`mcc:menu:${t.id}`,"aria-labelledby":`mct:menu:${t.id}`,"aria-hidden":"true",popover:"manual"},e)}var it={Root:Ee,Menu:ve,Group:Ie,Trigger:ge,Popover:ye,Item:d.Item,CheckboxItem:d.CheckboxItem,RadioItem:d.RadioItem,Label:d.Label,Separator:d.Separator};import{createContext as Be,createElement as p,useContext as $e,useId as Me}from"react";var S=Be(null);function h(){let e=$e(S);if(!e)throw Error("Popover components must be used within Popover.Root");return e}function Te({children:e,...o}){let t=Me();return p(S.Provider,{value:{id:t}},p("div",o,e))}function we({children:e,...o}){let t=h();return p("button",{...o,type:"button",id:`mct:popover:${t.id}`,"aria-controls":`mcc:popover:${t.id}`,"aria-expanded":"false"},e)}function Ve({children:e,...o}){let t=h(),n="aria-label"in o,r="aria-description"in o;return p("div",{...n?{}:{"aria-labelledby":`mct:popover:${t.id}`},...r?{}:{"aria-describedby":`mcc:popover-description:${t.id}`},...o,id:`mcc:popover:${t.id}`,"aria-hidden":"true",popover:"manual",tabIndex:-1},e)}function De({children:e,as:o,...t}){let n=h();return p(o??"h2",{...t,id:`mcc:popover-title:${n.id}`},e)}function ke({children:e,...o}){let t=h();return p("p",{...o,id:`mcc:popover-description:${t.id}`},e)}var lt={Root:Te,Trigger:we,Content:Ve,Title:De,Description:ke};import{createContext as Ae,createElement as x,useContext as Le,useId as Se}from"react";var E=(e,o)=>o?`${e}:${o}`:e;var j=Ae(null);function v(){let e=Le(j);if(!e)throw Error("Tabs components must be used within Tabs.Root");return e}function je({children:e,defaultValue:o,orientation:t,...n}){let r=Se(),c=t??"horizontal";return x(j.Provider,{value:{baseId:r,selected:o,orientation:c}},x("div",{...n,id:`mcr:tabs:${r}`},e))}function Oe({children:e,...o}){let t=v();return x("div",{...o,role:"tablist","aria-orientation":t.orientation},e)}function Fe({children:e,value:o,selected:t,disabled:n,...r}){let c=v(),m=E(c.baseId,o),l=t??o===c.selected;return x("button",{...r,type:"button",role:"tab",id:`mct:tabs:${m}`,"aria-selected":l,"aria-controls":`mcc:tabs:${m}`,tabIndex:l?0:-1,"aria-disabled":n||void 0},e)}function He({children:e,value:o,selected:t,focusable:n=!0,...r}){let c=v(),m=E(c.baseId,o),l=t??o===c.selected;return x("div",{...r,role:"tabpanel",id:`mcc:tabs:${m}`,"aria-labelledby":`mct:tabs:${m}`,"aria-hidden":!l,hidden:l?void 0:!0,tabIndex:n?l?0:-1:void 0},e)}var bt={Root:je,List:Oe,Tab:Fe,Panel:He};import{createContext as Ne,createElement as P,useContext as ze,useId as Ge}from"react";var O=Ne(null);function F(){let e=ze(O);if(!e)throw Error("Tooltip components must be used within Tooltip.Root");return e}function qe({children:e,...o}){let t=Ge();return P(O.Provider,{value:{id:t}},P("div",o,e))}function Je({children:e,...o}){let t=F();return P("button",{...o,type:"button",id:`mct:tooltip:${t.id}`,"aria-describedby":`mcc:tooltip:${t.id}`},e)}function Ke({children:e,...o}){let t=F();return P("div",{...o,id:`mcc:tooltip:${t.id}`,role:"tooltip",popover:"manual"},e)}var ht={Root:qe,Trigger:Je,Content:Ke};export{ht as Tooltip,bt as Tabs,lt as Popover,it as Menubar,d as Menu,et as Dialog,Ye as Collapsible,Ue as Accordion};
@@ -1,7 +1,7 @@
1
- import { type ReactElement } from "react";
1
+ import { type ReactElement, type ReactNode } from "react";
2
2
  import type { BaseProps } from "./shared.js";
3
- declare function Root({ children, menubar, ...props }: BaseProps & {
4
- menubar?: boolean;
3
+ declare function Root({ children }: {
4
+ children: ReactNode;
5
5
  }): ReactElement;
6
6
  declare function Trigger({ children, ...props }: BaseProps): ReactElement;
7
7
  declare function Popover({ children, ...props }: BaseProps): ReactElement;
@@ -0,0 +1,29 @@
1
+ import { type ReactElement } from "react";
2
+ import type { BaseProps } from "./shared.js";
3
+ declare function Root({ children, ...props }: BaseProps): ReactElement;
4
+ declare function MenubarMenu({ children, ...props }: BaseProps): ReactElement;
5
+ declare function Group({ children, ...props }: BaseProps): ReactElement;
6
+ declare function Trigger({ children, ...props }: BaseProps): ReactElement;
7
+ declare function Popover({ children, ...props }: BaseProps): ReactElement;
8
+ export declare const Menubar: {
9
+ Root: typeof Root;
10
+ Menu: typeof MenubarMenu;
11
+ Group: typeof Group;
12
+ Trigger: typeof Trigger;
13
+ Popover: typeof Popover;
14
+ Item: ({ children, disabled, href, ...props }: BaseProps & {
15
+ disabled?: boolean;
16
+ href?: string;
17
+ }) => ReactElement;
18
+ CheckboxItem: ({ children, checked, disabled, ...props }: BaseProps & {
19
+ checked?: boolean;
20
+ disabled?: boolean;
21
+ }) => ReactElement;
22
+ RadioItem: ({ children, checked, disabled, ...props }: BaseProps & {
23
+ checked?: boolean;
24
+ disabled?: boolean;
25
+ }) => ReactElement;
26
+ Label: ({ children, ...props }: BaseProps) => ReactElement;
27
+ Separator: (props: Omit<BaseProps, "children">) => ReactElement;
28
+ };
29
+ export {};
@@ -2,6 +2,7 @@ export * from "./accordion.js";
2
2
  export * from "./collapsible.js";
3
3
  export * from "./dialog.js";
4
4
  export * from "./menu.js";
5
+ export * from "./menubar.js";
5
6
  export * from "./popover.js";
6
7
  export * from "./tabs.js";
7
8
  export * from "./tooltip.js";
package/dist/vue/index.js CHANGED
@@ -1 +1 @@
1
- import{defineComponent as f,h as x,provide as L,reactive as F,toRef as B,useId as k}from"vue";import{inject as q}from"vue";function n(o,t){let e=q(o);if(!e)throw Error(`${t} must be used within its parent provider`);return e}var P=(o,t)=>t?`${o}:${t}`:o,v=Symbol("CollapsibleContext"),h=Symbol("AccordionContext"),m=Symbol("TabsContext"),u=Symbol("MenuContext"),K=Symbol("MenuPopupContext"),c=Symbol("PopoverContext"),C=Symbol("TooltipContext"),d=Symbol("DialogContext");var w=f({props:{type:{type:String,default:"single"}},setup(o,{slots:t}){let e=k();return()=>x("div",{"data-mode":o.type,id:`mcr:accordion:${e}`},t.default?.())}}),z=f({props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=k();return L(h,F({baseId:e,open:B(o,"open"),disabled:B(o,"disabled")})),()=>x("div",null,t.default?.())}}),G=f({props:{as:{type:String,default:"h3"}},setup(o,{slots:t}){return()=>x(o.as,null,t.default?.())}}),V=f({setup(o,{slots:t}){let e=n(h,"Accordion.Trigger/Panel");return()=>x("button",{type:"button",id:`mct:accordion:${e.baseId}`,"aria-expanded":e.open,"aria-controls":`mcc:accordion:${e.baseId}`,"aria-disabled":e.disabled||void 0},t.default?.())}}),E=f({setup(o,{slots:t}){let e=n(h,"Accordion.Trigger/Panel");return()=>x("div",{id:`mcc:accordion:${e.baseId}`,role:"region","aria-labelledby":`mct:accordion:${e.baseId}`,"aria-hidden":!e.open,hidden:e.open?void 0:!0},t.default?.())}}),Ve={Root:w,Item:z,Header:G,Trigger:V,Panel:E};import{defineComponent as _,h as S,provide as H,reactive as U,toRef as J,useId as N}from"vue";var O=_({props:{open:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=N();return H(v,U({baseId:e,open:J(o,"open")})),()=>S("div",null,t.default?.())}}),Q=_({setup(o,{slots:t}){let e=n(v,"Collapsible.Trigger/Panel");return()=>S("button",{type:"button",id:`mct:collapsible:${e.baseId}`,"aria-expanded":e.open,"aria-controls":`mcc:collapsible:${e.baseId}`},t.default?.())}}),W=_({setup(o,{slots:t}){let e=n(v,"Collapsible.Trigger/Panel");return()=>S("div",{id:`mcc:collapsible:${e.baseId}`,"aria-labelledby":`mct:collapsible:${e.baseId}`,"aria-hidden":!e.open,hidden:e.open?void 0:!0},t.default?.())}}),Je={Root:O,Trigger:Q,Panel:W};import{defineComponent as s,h as p,provide as X,useId as Y}from"vue";var Z=s({setup(o,{slots:t}){let e=Y();return X(d,{id:e}),()=>p("div",null,t.default?.())}}),ee=s({setup(o,{slots:t}){let e=n(d,"Dialog.Trigger");return()=>p("button",{type:"button",id:`mct:dialog-open:${e.id}`,"aria-haspopup":"dialog","aria-controls":`mcc:dialog:${e.id}`},t.default?.())}}),te=s({inheritAttrs:!1,setup(o,{slots:t,attrs:e}){let r=n(d,"Dialog.Content");return()=>{let a="aria-label"in e,b="aria-description"in e;return p("dialog",{...a?{}:{"aria-labelledby":`mcc:dialog-title:${r.id}`},...b?{}:{"aria-describedby":`mcc:dialog-description:${r.id}`},...e,id:`mcc:dialog:${r.id}`,tabindex:-1},t.default?.())}}}),oe=s({props:{as:{type:String,default:"h2"}},setup(o,{slots:t}){let e=n(d,"Dialog.Title");return()=>p(o.as,{id:`mcc:dialog-title:${e.id}`},t.default?.())}}),ne=s({setup(o,{slots:t}){let e=n(d,"Dialog.Description");return()=>p("p",{id:`mcc:dialog-description:${e.id}`},t.default?.())}}),re=s({setup(o,{slots:t}){let e=n(d,"Dialog.Close");return()=>p("button",{type:"button",id:`mct:dialog-close:${e.id}`},t.default?.())}}),We={Root:Z,Trigger:ee,Content:te,Title:oe,Description:ne,Close:re};import{defineComponent as l,h as i,onBeforeUpdate as ie,provide as j,reactive as ae,ref as le,toRef as de,useId as A}from"vue";var ue=l({props:{menubar:Boolean},setup(o,{slots:t}){let e=A();return j(u,ae({id:e,root:!0,menubar:de(o,"menubar")})),()=>i("div",{id:`mcr:menu:${e}`},t.default?.())}}),ce=l({setup(o,{slots:t}){let e=n(u,"Menu.Trigger");return()=>i("button",{type:"button",id:`mct:menu:${e.id}`,"aria-controls":`mcc:menu:${e.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabindex:e.root||e.first?0:-1,role:e.submenu?"menuitem":"button"},t.default?.())}}),se=l({setup(o,{slots:t}){let e=n(u,"Menu.Popover"),r=le(!1);return ie(()=>{r.value=!1}),j(K,{claimFirst:()=>{if(!r.value)return r.value=!0,!0;return!1}}),()=>e.menubar?i("ul",{role:"menubar"},t.default?.()):i("ul",{role:"menu",id:`mcc:menu:${e.id}`,"aria-labelledby":`mct:menu:${e.id}`,"aria-hidden":"true",popover:"manual"},t.default?.())}}),pe=l({inheritAttrs:!1,props:{disabled:Boolean,href:String},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitem","aria-disabled":"true",tabindex:-1},t.default?.()):o.href?i("a",{...e,role:"menuitem",href:o.href,tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitem",tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),be=l({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitemcheckbox","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitemcheckbox","aria-checked":o.checked,tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),me=l({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitemradio","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitemradio","aria-checked":o.checked,tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),fe=l({setup(o,{slots:t}){return()=>i("li",{role:"presentation"},t.default?.())}}),xe=l({setup(){return()=>i("li",{role:"separator"})}}),ye=l({setup(o,{slots:t}){let e=n(u,"Menu.Group"),a=n(K,"Menu.Group").claimFirst(),b=A(),R=a&&e.menubar&&!e.submenu;return j(u,{id:b,submenu:!0,first:R}),()=>i("li",{role:"none"},t.default?.())}}),et={Root:ue,Trigger:ce,Popover:se,Item:pe,CheckboxItem:be,RadioItem:me,Label:fe,Separator:xe,Group:ye};import{defineComponent as y,h as g,provide as ge,useId as ve}from"vue";var he=y({setup(o,{slots:t}){let e=ve();return ge(c,{id:e}),()=>g("div",null,t.default?.())}}),Ce=y({setup(o,{slots:t}){let e=n(c,"Popover.Trigger");return()=>g("button",{type:"button",id:`mct:popover:${e.id}`,"aria-controls":`mcc:popover:${e.id}`,"aria-expanded":"false"},t.default?.())}}),Ie=y({inheritAttrs:!1,setup(o,{slots:t,attrs:e}){let r=n(c,"Popover.Content");return()=>{let a="aria-label"in e,b="aria-description"in e;return g("div",{...a?{}:{"aria-labelledby":`mct:popover:${r.id}`},...b?{}:{"aria-describedby":`mcc:popover-description:${r.id}`},...e,id:`mcc:popover:${r.id}`,"aria-hidden":"true",popover:"manual",tabindex:-1},t.default?.())}}}),Te=y({props:{as:{type:String,default:"h2"}},setup(o,{slots:t}){let e=n(c,"Popover.Title");return()=>g(o.as,{id:`mcc:popover-title:${e.id}`},t.default?.())}}),$e=y({setup(o,{slots:t}){let e=n(c,"Popover.Description");return()=>g("p",{id:`mcc:popover-description:${e.id}`},t.default?.())}}),rt={Root:he,Trigger:Ce,Content:Ie,Title:Te,Description:$e};import{computed as I,defineComponent as T,h as $,provide as Pe,reactive as Ke,toRef as _e,useId as Se}from"vue";var je=T({props:{defaultValue:{type:String,required:!0},orientation:{type:String,default:"horizontal"}},setup(o,{slots:t}){let e=Se();return Pe(m,Ke({baseId:e,selected:o.defaultValue,orientation:_e(o,"orientation")})),()=>$("div",{id:`mcr:tabs:${e}`},t.default?.())}}),De=T({setup(o,{slots:t}){let e=n(m,"Tabs.List/Tab/Panel");return()=>$("div",{role:"tablist","aria-orientation":e.orientation},t.default?.())}}),Me=T({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},disabled:Boolean},setup(o,{slots:t}){let e=n(m,"Tabs.List/Tab/Panel"),r=I(()=>P(e.baseId,o.value)),a=I(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>$("button",{type:"button",role:"tab",id:`mct:tabs:${r.value}`,"aria-selected":a.value,"aria-controls":`mcc:tabs:${r.value}`,tabindex:a.value?0:-1,"aria-disabled":o.disabled||void 0},t.default?.())}}),Be=T({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},focusable:{type:Boolean,default:!0}},setup(o,{slots:t}){let e=n(m,"Tabs.List/Tab/Panel"),r=I(()=>P(e.baseId,o.value)),a=I(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>$("div",{role:"tabpanel",id:`mcc:tabs:${r.value}`,"aria-labelledby":`mct:tabs:${r.value}`,"aria-hidden":!a.value,hidden:a.value?void 0:!0,tabindex:o.focusable?a.value?0:-1:void 0},t.default?.())}}),dt={Root:je,List:De,Tab:Me,Panel:Be};import{defineComponent as D,h as M,provide as ke,useId as Ae}from"vue";var Re=D({setup(o,{slots:t}){let e=Ae();return ke(C,{id:e}),()=>M("div",null,t.default?.())}}),qe=D({setup(o,{slots:t}){let e=n(C,"Tooltip.Trigger");return()=>M("button",{type:"button",id:`mct:tooltip:${e.id}`,"aria-describedby":`mcc:tooltip:${e.id}`},t.default?.())}}),Le=D({setup(o,{slots:t}){let e=n(C,"Tooltip.Content");return()=>M("div",{id:`mcc:tooltip:${e.id}`,role:"tooltip",popover:"manual"},t.default?.())}}),pt={Root:Re,Trigger:qe,Content:Le};export{pt as Tooltip,dt as Tabs,rt as Popover,et as Menu,We as Dialog,Je as Collapsible,Ve as Accordion};
1
+ import{defineComponent as x,h as y,provide as V,reactive as E,toRef as q,useId as L}from"vue";import{inject as G}from"vue";function n(o,t){let e=G(o);if(!e)throw Error(`${t} must be used within its parent provider`);return e}var _=(o,t)=>t?`${o}:${t}`:o,h=Symbol("CollapsibleContext"),T=Symbol("AccordionContext"),b=Symbol("TabsContext"),m=Symbol("MenuContext"),f=Symbol("MenubarSlotContext"),j=Symbol("MenubarClaimContext"),u=Symbol("PopoverContext"),$=Symbol("TooltipContext"),d=Symbol("DialogContext");var H=x({props:{type:{type:String,default:"single"}},setup(o,{slots:t}){let e=L();return()=>y("div",{"data-mode":o.type,id:`mcr:accordion:${e}`},t.default?.())}}),U=x({props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=L();return V(T,E({baseId:e,open:q(o,"open"),disabled:q(o,"disabled")})),()=>y("div",null,t.default?.())}}),J=x({props:{as:{type:String,default:"h3"}},setup(o,{slots:t}){return()=>y(o.as,null,t.default?.())}}),N=x({setup(o,{slots:t}){let e=n(T,"Accordion.Trigger/Panel");return()=>y("button",{type:"button",id:`mct:accordion:${e.baseId}`,"aria-expanded":e.open,"aria-controls":`mcc:accordion:${e.baseId}`,"aria-disabled":e.disabled||void 0},t.default?.())}}),O=x({setup(o,{slots:t}){let e=n(T,"Accordion.Trigger/Panel");return()=>y("div",{id:`mcc:accordion:${e.baseId}`,role:"region","aria-labelledby":`mct:accordion:${e.baseId}`,"aria-hidden":!e.open,hidden:e.open?void 0:!0},t.default?.())}}),We={Root:H,Item:U,Header:J,Trigger:N,Panel:O};import{defineComponent as D,h as k,provide as Q,reactive as W,toRef as X,useId as Y}from"vue";var Z=D({props:{open:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=Y();return Q(h,W({baseId:e,open:X(o,"open")})),()=>k("div",null,t.default?.())}}),ee=D({setup(o,{slots:t}){let e=n(h,"Collapsible.Trigger/Panel");return()=>k("button",{type:"button",id:`mct:collapsible:${e.baseId}`,"aria-expanded":e.open,"aria-controls":`mcc:collapsible:${e.baseId}`},t.default?.())}}),te=D({setup(o,{slots:t}){let e=n(h,"Collapsible.Trigger/Panel");return()=>k("div",{id:`mcc:collapsible:${e.baseId}`,"aria-labelledby":`mct:collapsible:${e.baseId}`,"aria-hidden":!e.open,hidden:e.open?void 0:!0},t.default?.())}}),et={Root:Z,Trigger:ee,Panel:te};import{defineComponent as c,h as s,provide as oe,useId as ne}from"vue";var re=c({setup(o,{slots:t}){let e=ne();return oe(d,{id:e}),()=>s("div",null,t.default?.())}}),ie=c({setup(o,{slots:t}){let e=n(d,"Dialog.Trigger");return()=>s("button",{type:"button",id:`mct:dialog-open:${e.id}`,"aria-haspopup":"dialog","aria-controls":`mcc:dialog:${e.id}`},t.default?.())}}),ae=c({inheritAttrs:!1,setup(o,{slots:t,attrs:e}){let r=n(d,"Dialog.Content");return()=>{let a="aria-label"in e,P="aria-description"in e;return s("dialog",{...a?{}:{"aria-labelledby":`mcc:dialog-title:${r.id}`},...P?{}:{"aria-describedby":`mcc:dialog-description:${r.id}`},...e,id:`mcc:dialog:${r.id}`,tabindex:-1},t.default?.())}}}),le=c({props:{as:{type:String,default:"h2"}},setup(o,{slots:t}){let e=n(d,"Dialog.Title");return()=>s(o.as,{id:`mcc:dialog-title:${e.id}`},t.default?.())}}),de=c({setup(o,{slots:t}){let e=n(d,"Dialog.Description");return()=>s("p",{id:`mcc:dialog-description:${e.id}`},t.default?.())}}),ue=c({setup(o,{slots:t}){let e=n(d,"Dialog.Close");return()=>s("button",{type:"button",id:`mct:dialog-close:${e.id}`},t.default?.())}}),rt={Root:re,Trigger:ie,Content:ae,Title:le,Description:de,Close:ue};import{defineComponent as l,h as i,provide as F,useId as w}from"vue";var ce=l({setup(o,{slots:t}){let e=w();return F(m,{id:e,root:!0}),()=>t.default?.()}}),se=l({setup(o,{slots:t}){let e=n(m,"Menu.Trigger");return()=>i("button",{type:"button",id:`mct:menu:${e.id}`,"aria-controls":`mcc:menu:${e.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabindex:e.root?0:-1,role:e.submenu?"menuitem":"button"},t.default?.())}}),pe=l({setup(o,{slots:t}){let e=n(m,"Menu.Popover");return()=>i("ul",{role:"menu",id:`mcc:menu:${e.id}`,"aria-labelledby":`mct:menu:${e.id}`,"aria-hidden":"true",popover:"manual"},t.default?.())}}),be=l({inheritAttrs:!1,props:{disabled:Boolean,href:String},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitem","aria-disabled":"true",tabindex:-1},t.default?.()):o.href?i("a",{...e,role:"menuitem",href:o.href,tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitem",tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),me=l({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitemcheckbox","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitemcheckbox","aria-checked":o.checked,tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),fe=l({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let r=o.disabled?i("span",{...e,role:"menuitemradio","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):i("button",{...e,type:"button",role:"menuitemradio","aria-checked":o.checked,tabindex:-1},t.default?.());return i("li",{role:"none"},[r])}}}),xe=l({setup(o,{slots:t}){return()=>i("li",{role:"presentation"},t.default?.())}}),ye=l({setup(){return()=>i("li",{role:"separator"})}}),ge=l({setup(o,{slots:t}){let e=w();return F(m,{id:e,submenu:!0}),()=>i("li",{role:"none"},t.default?.())}}),p={Root:ce,Trigger:se,Popover:pe,Item:be,CheckboxItem:me,RadioItem:fe,Label:xe,Separator:ye,Group:ge};import{defineComponent as g,h as v,onBeforeUpdate as ve,provide as R,ref as Ce,useId as z}from"vue";var Ie=g({setup(o,{slots:t}){let e=Ce(!1);return ve(()=>{e.value=!1}),R(j,{claimFirst:()=>{if(!e.value)return e.value=!0,!0;return!1}}),()=>v("ul",{role:"menubar"},t.default?.())}}),he=g({setup(o,{slots:t}){let r=n(j,"Menubar.Menu").claimFirst(),a=z();return R(f,{id:a,first:r}),()=>v("li",{role:"none"},t.default?.())}}),Te=g({setup(o,{slots:t}){let e=z();return R(f,{id:e,first:!1}),()=>v("li",{role:"none"},t.default?.())}}),$e=g({setup(o,{slots:t}){let e=n(f,"Menubar.Trigger");return()=>v("button",{type:"button",id:`mct:menu:${e.id}`,"aria-controls":`mcc:menu:${e.id}`,"aria-expanded":"false","aria-haspopup":"menu",tabindex:e.first?0:-1,role:"menuitem"},t.default?.())}}),Ke=g({setup(o,{slots:t}){let e=n(f,"Menubar.Popover");return()=>v("ul",{role:"menu",id:`mcc:menu:${e.id}`,"aria-labelledby":`mct:menu:${e.id}`,"aria-hidden":"true",popover:"manual"},t.default?.())}}),pt={Root:Ie,Menu:he,Group:Te,Trigger:$e,Popover:Ke,Item:p.Item,CheckboxItem:p.CheckboxItem,RadioItem:p.RadioItem,Label:p.Label,Separator:p.Separator};import{defineComponent as C,h as I,provide as Se,useId as Me}from"vue";var Pe=C({setup(o,{slots:t}){let e=Me();return Se(u,{id:e}),()=>I("div",null,t.default?.())}}),_e=C({setup(o,{slots:t}){let e=n(u,"Popover.Trigger");return()=>I("button",{type:"button",id:`mct:popover:${e.id}`,"aria-controls":`mcc:popover:${e.id}`,"aria-expanded":"false"},t.default?.())}}),je=C({inheritAttrs:!1,setup(o,{slots:t,attrs:e}){let r=n(u,"Popover.Content");return()=>{let a="aria-label"in e,P="aria-description"in e;return I("div",{...a?{}:{"aria-labelledby":`mct:popover:${r.id}`},...P?{}:{"aria-describedby":`mcc:popover-description:${r.id}`},...e,id:`mcc:popover:${r.id}`,"aria-hidden":"true",popover:"manual",tabindex:-1},t.default?.())}}}),De=C({props:{as:{type:String,default:"h2"}},setup(o,{slots:t}){let e=n(u,"Popover.Title");return()=>I(o.as,{id:`mcc:popover-title:${e.id}`},t.default?.())}}),ke=C({setup(o,{slots:t}){let e=n(u,"Popover.Description");return()=>I("p",{id:`mcc:popover-description:${e.id}`},t.default?.())}}),xt={Root:Pe,Trigger:_e,Content:je,Title:De,Description:ke};import{computed as K,defineComponent as S,h as M,provide as Re,reactive as Ae,toRef as Be,useId as qe}from"vue";var Le=S({props:{defaultValue:{type:String,required:!0},orientation:{type:String,default:"horizontal"}},setup(o,{slots:t}){let e=qe();return Re(b,Ae({baseId:e,selected:o.defaultValue,orientation:Be(o,"orientation")})),()=>M("div",{id:`mcr:tabs:${e}`},t.default?.())}}),Fe=S({setup(o,{slots:t}){let e=n(b,"Tabs.List/Tab/Panel");return()=>M("div",{role:"tablist","aria-orientation":e.orientation},t.default?.())}}),we=S({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},disabled:Boolean},setup(o,{slots:t}){let e=n(b,"Tabs.List/Tab/Panel"),r=K(()=>_(e.baseId,o.value)),a=K(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>M("button",{type:"button",role:"tab",id:`mct:tabs:${r.value}`,"aria-selected":a.value,"aria-controls":`mcc:tabs:${r.value}`,tabindex:a.value?0:-1,"aria-disabled":o.disabled||void 0},t.default?.())}}),ze=S({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},focusable:{type:Boolean,default:!0}},setup(o,{slots:t}){let e=n(b,"Tabs.List/Tab/Panel"),r=K(()=>_(e.baseId,o.value)),a=K(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>M("div",{role:"tabpanel",id:`mcc:tabs:${r.value}`,"aria-labelledby":`mct:tabs:${r.value}`,"aria-hidden":!a.value,hidden:a.value?void 0:!0,tabindex:o.focusable?a.value?0:-1:void 0},t.default?.())}}),Ct={Root:Le,List:Fe,Tab:we,Panel:ze};import{defineComponent as A,h as B,provide as Ge,useId as Ve}from"vue";var Ee=A({setup(o,{slots:t}){let e=Ve();return Ge($,{id:e}),()=>B("div",null,t.default?.())}}),He=A({setup(o,{slots:t}){let e=n($,"Tooltip.Trigger");return()=>B("button",{type:"button",id:`mct:tooltip:${e.id}`,"aria-describedby":`mcc:tooltip:${e.id}`},t.default?.())}}),Ue=A({setup(o,{slots:t}){let e=n($,"Tooltip.Content");return()=>B("div",{id:`mcc:tooltip:${e.id}`,role:"tooltip",popover:"manual"},t.default?.())}}),$t={Root:Ee,Trigger:He,Content:Ue};export{$t as Tooltip,Ct as Tabs,xt as Popover,pt as Menubar,p as Menu,rt as Dialog,et as Collapsible,We as Accordion};
@@ -1,13 +1,7 @@
1
1
  export declare const Menu: {
2
- Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
- menubar: BooleanConstructor;
4
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
2
+ Root: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
5
3
  [key: string]: any;
6
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7
- menubar: BooleanConstructor;
8
- }>> & Readonly<{}>, {
9
- menubar: boolean;
10
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
11
5
  Trigger: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
12
6
  [key: string]: any;
13
7
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,70 @@
1
+ export declare const Menubar: {
2
+ Root: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
3
+ [key: string]: any;
4
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
5
+ Menu: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
6
+ [key: string]: any;
7
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
+ Group: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
9
+ [key: string]: any;
10
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
11
+ Trigger: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
12
+ [key: string]: any;
13
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
14
+ Popover: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
15
+ [key: string]: any;
16
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
17
+ Item: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
18
+ disabled: BooleanConstructor;
19
+ href: StringConstructor;
20
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
21
+ [key: string]: any;
22
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
+ disabled: BooleanConstructor;
24
+ href: StringConstructor;
25
+ }>> & Readonly<{}>, {
26
+ disabled: boolean;
27
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
28
+ CheckboxItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
29
+ checked: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ disabled: BooleanConstructor;
34
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
35
+ [key: string]: any;
36
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
37
+ checked: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ disabled: BooleanConstructor;
42
+ }>> & Readonly<{}>, {
43
+ disabled: boolean;
44
+ checked: boolean;
45
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
46
+ RadioItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
47
+ checked: {
48
+ type: BooleanConstructor;
49
+ default: boolean;
50
+ };
51
+ disabled: BooleanConstructor;
52
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
53
+ [key: string]: any;
54
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
55
+ checked: {
56
+ type: BooleanConstructor;
57
+ default: boolean;
58
+ };
59
+ disabled: BooleanConstructor;
60
+ }>> & Readonly<{}>, {
61
+ disabled: boolean;
62
+ checked: boolean;
63
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
64
+ Label: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
65
+ [key: string]: any;
66
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
67
+ Separator: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
68
+ [key: string]: any;
69
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
70
+ };
@@ -21,15 +21,18 @@ export declare const TabsKey: InjectionKey<TabsContext>;
21
21
  export type MenuContext = {
22
22
  id: string;
23
23
  root?: boolean;
24
- menubar?: boolean;
25
24
  submenu?: boolean;
26
- first?: boolean;
27
25
  };
28
26
  export declare const MenuKey: InjectionKey<MenuContext>;
29
- export type MenuPopupContext = {
27
+ export type MenubarSlotContext = {
28
+ id: string;
29
+ first: boolean;
30
+ };
31
+ export declare const MenubarSlotKey: InjectionKey<MenubarSlotContext>;
32
+ export type MenubarClaimContext = {
30
33
  claimFirst: () => boolean;
31
34
  };
32
- export declare const MenuPopupKey: InjectionKey<MenuPopupContext>;
35
+ export declare const MenubarClaimKey: InjectionKey<MenubarClaimContext>;
33
36
  export type PopoverContext = {
34
37
  id: string;
35
38
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monochrome",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Accessible UI component library. Best-in-class performance. HTML-first, React and Vue supported.",
5
5
  "author": "Colin van Eenige",
6
6
  "license": "MIT",
@@ -63,9 +63,9 @@
63
63
  "scripts": {
64
64
  "build": "NODE_ENV=production bun build.ts",
65
65
  "test": "playwright test",
66
- "lint": "biome check src tests skill",
67
- "lint:fix": "biome check --write src tests skill",
68
- "format": "biome format --write src tests skill",
66
+ "lint": "biome check src tests",
67
+ "lint:fix": "biome check --write src tests",
68
+ "format": "biome format --write src tests",
69
69
  "typecheck": "tsc --noEmit",
70
70
  "prepare": "git config core.hooksPath scripts/git-hooks",
71
71
  "prepublishOnly": "bun run typecheck && bun run build && bun run test"
@@ -99,18 +99,18 @@
99
99
  "vue": "3.5.32"
100
100
  },
101
101
  "versionMeta": {
102
- "gzipSize": 2668,
102
+ "gzipSize": 2697,
103
103
  "routerGzipSize": 1057,
104
104
  "wrappersGzipSize": {
105
- "react": 2038,
106
- "vue": 2237
105
+ "react": 2165,
106
+ "vue": 2326
107
107
  },
108
108
  "tests": {
109
- "total": 463,
109
+ "total": 468,
110
110
  "collapsible": 37,
111
111
  "router": 28,
112
112
  "accordion": 60,
113
- "menu": 179,
113
+ "menu": 184,
114
114
  "tooltip": 24,
115
115
  "tabs": 66,
116
116
  "dialog": 36,