monochrome 0.9.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 · 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
 
@@ -52,7 +52,8 @@ The React and Vue wrappers generate the same HTML and ARIA; all interactivity co
52
52
 
53
53
  ## Browser support
54
54
 
55
- Baseline 2024. Uses the Popover API. No polyfills shipped.
55
+ Baseline 2024. Uses the Popover API and the native `<dialog>`
56
+ element. No polyfills shipped.
56
57
 
57
58
  ## Contributing
58
59
 
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- if(typeof document<"u"){let b=null,w=null,A=null,N=null,R=[],r=[],d=null,s=null,C=null,F=null,h=null,o=null,y=null,p=null,m=null,P=null,f=(e)=>e instanceof HTMLElement,E=(e,n)=>e instanceof HTMLButtonElement&&(!n||e.id.startsWith(n)),D=(e)=>f(e)&&e.role?.startsWith("menuitem")===!0&&e.ariaDisabled!=="true",T=(e,n)=>{let t=e.getAttribute(n);return t?document.getElementById(t):null},L=(e,n)=>{while(e){if(e.id.startsWith(n))return e;e=e.parentElement}return null},$=(e,n)=>{let t=e.getBoundingClientRect();return n.style.setProperty("--top",`${t.top}px`),n.style.setProperty("--right",`${t.right}px`),n.style.setProperty("--bottom",`${t.bottom}px`),n.style.setProperty("--left",`${t.left}px`),n.style.setProperty("--pw",`${n.offsetWidth}px`),n.style.setProperty("--ph",`${n.offsetHeight}px`),t},S=(e)=>{let n=(i)=>i?e(i.nextElementSibling||i.parentElement?.firstElementChild,n):null,t=(i)=>i?e(i.previousElementSibling||i.parentElement?.lastElementChild,t):null;return[n,t]},k=(e,n)=>{if(f(e)){let t=e.firstElementChild;if(A){if(f(t)){if(t===A){for(let i of R)i.ariaChecked="false";return t}if(t.role==="menuitemradio"){if(!N)t.ariaChecked="false";else R.push(t);return n(e)}}return N=!0,R=[],n(e)}if(D(t)&&(!w||t.textContent?.toLowerCase().startsWith(w)))return t.focus(),b=!0,t;else if(d!==e){if(!d)d=e;return n(e)}else d=null}return null},O=(e,n)=>{if(f(e)){if(d===e)return null;if(!d)d=e;let t=e.firstElementChild?.firstElementChild;if(E(t,"mct:a")){if(t.ariaDisabled==="true")return n(e);return b=!0,t.focus(),t}}return n(e)},B=(e,n)=>{if(E(e,"mct:ta")){if(d===e)return null;if(!d)d=e;if(e.ariaDisabled==="true")return n(e);return b=!0,e.focus(),e}else return n(e)},[H,v]=S(k),[X,Y]=S(O),[I,U]=S(B),W=(e)=>{let n=T(e,"aria-controls");if(n){let t=e.ariaExpanded!=="true";e.ariaExpanded=t?"true":"false",n.ariaHidden=t?"false":"true",t?n.removeAttribute("hidden"):n.setAttribute("hidden","")}},G=(e)=>{if(e.ariaDisabled==="true")return;if(e.ariaExpanded==="true")W(e);else{let n=L(e,"mcr:a");if(!n||n.getAttribute("data-mode")!=="single")W(e);else{let t=n.firstElementChild;while(t){let i=t.firstElementChild?.firstElementChild;if(f(i)&&(i===e||i.ariaExpanded==="true"))W(i);t=t.nextElementSibling}}}},K=(e)=>{if(e.ariaDisabled!=="true"&&e.ariaSelected!=="true"){let n=e.parentElement?.firstElementChild;while(f(n)){if(n===e||n.ariaSelected==="true"){let t=T(n,"aria-controls");if(t){let i=n.ariaSelected!=="true";if(n.ariaSelected=i?"true":"false",n.tabIndex=i?0:-1,t.ariaHidden=i?"false":"true",t.hasAttribute("tabindex"))t.tabIndex=i?0:-1;i?t.removeAttribute("hidden"):t.setAttribute("hidden","")}}n=n.nextElementSibling}}},c=(e,n=0)=>{if(e?.id.startsWith("mct:m")){let t=T(e,"aria-controls");if(t)if(e.ariaExpanded==="true"){if(s)s.removeAttribute("data-safe");if(s=null,F=null,h=null,n!==3)e.focus();t.hidePopover(),e.ariaExpanded="false",t.ariaHidden="true"}else{r.push(e),t.showPopover(),e.ariaExpanded="true",t.ariaHidden="false";let i=$(e,t),a=e.parentElement;if(a)s=a,C=i,F=t,h=null;if(n===0)e.focus();else if(n===1)k(t.firstElementChild,H);else if(n===2)k(t.lastElementChild,v)}}},g=(e=0)=>{while(r[e])c(r.pop(),3)},Z=(e)=>{if(e.role==="menuitemcheckbox")e.ariaChecked=e.ariaChecked==="true"?"false":"true";else if(e.role==="menuitemradio")A=e,N=null,R=[],H(e.parentElement),A=null,e.ariaChecked="true";else g()},x=(e,n)=>{if(e.ariaExpanded==="true"===n)return;let t=T(e,"aria-controls");if(t){if(n){if(o&&o!==e)x(o,!1);t.showPopover(),e.ariaExpanded="true",t.ariaHidden="false",$(e,t),o=e}else if(t.hidePopover(),e.ariaExpanded="false",t.ariaHidden="true",o===e)o=null}},z=(e,n)=>{let t=T(e,"aria-describedby");if(t)if(n)t.showPopover(),$(e,t);else t.hidePopover()},M=()=>{if(P&&P!==y&&P!==p)P=null;let e=y??p,n=e&&e!==P?e:null;if(n!==m){if(m)z(m,!1);if(n)z(n,!0);m=n}};addEventListener("click",(e)=>{b=null;let n=e.detail===0,t=f(e.target)?e.target:e.target instanceof Element?e.target.parentElement:null;if(t){let i=t;while(i){let a=i.id;if(a.startsWith("mct:")){if(a.startsWith("mct:m")){if(o)x(o,!1);let l=n?1:3;if(L(i.parentElement,"mcc:m")){if(!r.includes(i))c(i,l)}else if(r[0]){let j=i!==r[0];if(g(),j)c(i,l)}else c(i,l)}else{if(r[0])g();if(a.startsWith("mct:a"))G(i);else if(a.startsWith("mct:c"))W(i);else if(a.startsWith("mct:ta"))K(i);else if(a.startsWith("mct:p")&&i.ariaDisabled!=="true"){let l=i.ariaExpanded==="true";x(i,!l),l?i.focus():T(i,"aria-controls")?.focus()}else if(a.startsWith("mct:to")&&m)P=m,M()}break}else if(a.startsWith("mcc:m")&&r[0]){let l=t;while(l&&l!==i){if(D(l)&&!E(l,"mct:m")){Z(l);break}l=l.parentElement}break}else if(a.startsWith("mcc:p"))break;else if(a.startsWith("mcc:to"))break;i=i.parentElement}if(!i){if(r[0])g();if(o)x(o,!1)}}if(b)e.preventDefault()}),addEventListener("pointermove",(e)=>{if(e.pointerType==="touch")return;if(f(e.target)&&!L(e.target,"mcc:to")){let n=L(e.target,"mct:to");if(n!==y)y=n,M()}if(r[0]){if(r[1]&&s&&C&&F){if(e.clientX>=C.left&&e.clientX<=C.right&&e.clientY>=C.top&&e.clientY<=C.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-C.right)*e.movementX<0))s.removeAttribute("data-safe")}let n=e.target;if(f(n)){let t=[],i=n,a=!1,l=!1;while(i){if(D(i))l=!0;if(!l&&i.id.startsWith("mcc:")){a=!0;break}let u=i.firstElementChild;if(E(u,"mct:m"))t.unshift(u);i=i.parentElement}if(!a&&t[0]){let u=0;while(r[u]&&r[u]===t[u])u++;if(u===0&&(t[0].role!=="menuitem"||t[0].parentElement?.parentElement!==r[0].parentElement?.parentElement))return;g(u),c(t[u],3)}}}}),addEventListener("keydown",(e)=>{b=null,w=null,d=null;let n=e.target;if(E(n,"mct:a")){let t=n.parentElement?.parentElement;if(t)switch(e.key){case"ArrowDown":X(t);break;case"ArrowUp":Y(t);break;case"Home":{let i=t.parentElement;if(i)O(i.firstElementChild,X);break}case"End":{let i=t.parentElement;if(i)O(i.lastElementChild,Y);break}}}else if(E(n,"mct:ta")){let t=n.parentElement?.ariaOrientation==="vertical";switch(e.key){case"ArrowDown":if(t)I(n);break;case"ArrowUp":if(t)U(n);break;case"ArrowRight":if(!t)I(n);break;case"ArrowLeft":if(!t)U(n);break;case"Home":B(n.parentElement?.firstElementChild,I);break;case"End":B(n.parentElement?.lastElementChild,U);break}}else{if(E(n,"mct:m")){let t=L(n,"mcc:m")===null;switch(e.key){case"ArrowDown":if(t)if(n.ariaExpanded!=="true")c(n,1);else{let i=T(n,"aria-controls");if(i)k(i.firstElementChild,H)}break;case"ArrowUp":if(t)if(n.ariaExpanded!=="true")c(n,2);else{let i=T(n,"aria-controls");if(i)k(i.lastElementChild,v)}break;case"ArrowRight":if(!t)c(n,1);break}}if(!b&&f(n)&&n.role?.startsWith("menuitem")&&n.parentElement){let t=n.parentElement,i=r[0]?.parentElement||t,a=L(n.parentElement,"mcc:m");switch(e.key){case"Tab":if(r[0])r[0].focus();g();break;case"ArrowDown":if(a)H(t);break;case"ArrowUp":if(a)v(t);break;case"ArrowRight":{let l=H(i);if(l){let u=r[0];if(g(),u&&E(l,"mct:m"))c(l,3)}break}case"ArrowLeft":if(r[1])c(r.pop(),0);else{let l=v(i);if(l){let u=r[0];if(g(),u&&E(l,"mct:m"))c(l,3)}}break;case"Home":k(t.parentElement?.firstElementChild,H);break;case"End":k(t.parentElement?.lastElementChild,v);break;default:if(/^[a-zA-Z]$/.test(e.key))w=e.key.toLowerCase(),H(t);break}}}if(e.key==="Escape"){if(r[0])c(r.pop(),0);if(o){let t=o;x(t,!1),t.focus()}if(m)P=m,M()}if(b)e.preventDefault()}),addEventListener("scroll",(e)=>{if(r[0]&&(!f(e.target)||!e.target.id.startsWith("mcc:m")))g();if(o&&!(f(e.target)&&L(e.target,"mcc:p")))x(o,!1);if(m)y=null,p=null,M()},!0),addEventListener("resize",()=>{if(r[0])g();if(o)x(o,!1);if(m)y=null,p=null,M()}),addEventListener("focusin",(e)=>{let n=e.target;if(E(n,"mct:to")){if(p!==n)p=n,M()}else if(p)p=null,M()}),addEventListener("focusout",(e)=>{if(o&&f(e.relatedTarget)&&o!==e.relatedTarget&&!T(o,"aria-controls")?.contains(e.relatedTarget))x(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()})}
@@ -0,0 +1,19 @@
1
+ import { type ReactElement } from "react";
2
+ import type { BaseProps } from "./shared.js";
3
+ declare function Root({ children, ...props }: BaseProps): ReactElement;
4
+ declare function Trigger({ children, ...props }: BaseProps): ReactElement;
5
+ declare function Content({ children, ...props }: BaseProps): ReactElement;
6
+ declare function Title({ children, as, ...props }: BaseProps & {
7
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
8
+ }): ReactElement;
9
+ declare function Description({ children, ...props }: BaseProps): ReactElement;
10
+ declare function Close({ children, ...props }: BaseProps): ReactElement;
11
+ export declare const Dialog: {
12
+ Root: typeof Root;
13
+ Trigger: typeof Trigger;
14
+ Content: typeof Content;
15
+ Title: typeof Title;
16
+ Description: typeof Description;
17
+ Close: typeof Close;
18
+ };
19
+ export {};
@@ -1,6 +1,8 @@
1
1
  export * from "./accordion.js";
2
2
  export * from "./collapsible.js";
3
+ export * from "./dialog.js";
3
4
  export * from "./menu.js";
5
+ export * from "./menubar.js";
4
6
  export * from "./popover.js";
5
7
  export * from "./tabs.js";
6
8
  export * from "./tooltip.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{createContext as A,createElement as l,useContext as k,useId as C}from"react";var R=A(null);function v(){let e=k(R);if(!e)throw Error("Accordion components must be used within Accordion.Item");return e}function j({children:e,type:o,...t}){let n=C();return l("div",{...t,"data-mode":o??"single",id:`mcr:accordion:${n}`},e)}function F({children:e,open:o,disabled:t,...n}){let r=C();return l(R.Provider,{value:{baseId:r,open:o??!1,disabled:t??!1}},l("div",n,e))}function L({children:e,as:o,...t}){return l(o??"h3",t,e)}function O({children:e,...o}){let t=v(),n=t.baseId,r=t.open;return l("button",{...o,type:"button",id:`mct:accordion:${n}`,"aria-expanded":r,"aria-controls":`mcc:accordion:${n}`,"aria-disabled":t.disabled||void 0},e)}function H({children:e,...o}){let t=v(),n=t.baseId,r=t.open;return l("div",{...o,id:`mcc:accordion:${n}`,role:"region","aria-labelledby":`mct:accordion:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var he={Root:j,Item:F,Header:L,Trigger:O,Panel:H};import{createContext as z,createElement as d,useContext as S,useId as N}from"react";var E=z(null);function h(){let e=S(E);if(!e)throw Error("Collapsible components must be used within Collapsible.Root");return e}function G({children:e,open:o,...t}){let n=N();return d(E.Provider,{value:{baseId:n,open:o??!1}},d("div",t,e))}function q({children:e,...o}){let t=h(),n=t.baseId,r=t.open;return d("button",{...o,type:"button",id:`mct:collapsible:${n}`,"aria-expanded":r,"aria-controls":`mcc:collapsible:${n}`},e)}function D({children:e,...o}){let t=h(),n=t.baseId,r=t.open;return d("div",{...o,id:`mcc:collapsible:${n}`,"aria-labelledby":`mct:collapsible:${n}`,"aria-hidden":!r,hidden:r?void 0:!0},e)}var Be={Root:G,Trigger:q,Panel:D};import{createContext as I,createElement as a,useContext as y,useId as B,useRef as J}from"react";var b=I(null),$=I(null);function x(){let e=y(b);if(!e)throw Error("Menu components must be used within Menu.Root");return e}function K(){let e=y($);if(!e)throw Error("Menu components must be used within Menu.Popover");return e}function Q({children:e,menubar:o,...t}){let n=B();return a(b.Provider,{value:{id:n,root:!0,menubar:o}},a("div",{...t,id:`mcr:menu:${n}`},e))}function U({children:e,...o}){let t=x();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 W({children:e,...o}){let t=x(),n=J(!1);n.current=!1;let r=a($.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 X({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 Y({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 Z({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 _({children:e,...o}){return a("li",{...o,role:"presentation"},e)}function ee(e){return a("li",{...e,role:"separator"})}function te({children:e,...o}){let t=x(),r=K().claimFirst(),i=B(),s=r&&t.menubar&&!t.submenu;return a(b.Provider,{value:{id:i,submenu:!0,first:s}},a("li",{...o,role:"none"},e))}var Te={Root:Q,Trigger:U,Popover:W,Item:X,CheckboxItem:Y,RadioItem:Z,Label:_,Separator:ee,Group:te};import{createContext as oe,createElement as p,useContext as ne,useId as re}from"react";var g=oe(null);function T(){let e=ne(g);if(!e)throw Error("Popover components must be used within Popover.Root");return e}function ae({children:e,...o}){let t=re();return p(g.Provider,{value:{id:t}},p("div",o,e))}function ie({children:e,...o}){let t=T();return p("button",{...o,type:"button",id:`mct:popover:${t.id}`,"aria-controls":`mcc:popover:${t.id}`,"aria-expanded":"false"},e)}function se({children:e,...o}){let t=T();return p("div",{...o,id:`mcc:popover:${t.id}`,"aria-labelledby":`mct:popover:${t.id}`,"aria-hidden":"true",popover:"manual",tabIndex:-1},e)}var Ve={Root:ae,Trigger:ie,Content:se};import{createContext as ce,createElement as u,useContext as le,useId as ue}from"react";var f=(e,o)=>o?`${e}:${o}`:e;var w=ce(null);function P(){let e=le(w);if(!e)throw Error("Tabs components must be used within Tabs.Root");return e}function de({children:e,defaultValue:o,orientation:t,...n}){let r=ue(),i=t??"horizontal";return u(w.Provider,{value:{baseId:r,selected:o,orientation:i}},u("div",{...n,id:`mcr:tabs:${r}`},e))}function pe({children:e,...o}){let t=P();return u("div",{...o,role:"tablist","aria-orientation":t.orientation},e)}function me({children:e,value:o,selected:t,disabled:n,...r}){let i=P(),s=f(i.baseId,o),c=t??o===i.selected;return u("button",{...r,type:"button",role:"tab",id:`mct:tabs:${s}`,"aria-selected":c,"aria-controls":`mcc:tabs:${s}`,tabIndex:c?0:-1,"aria-disabled":n||void 0},e)}function be({children:e,value:o,selected:t,focusable:n=!0,...r}){let i=P(),s=f(i.baseId,o),c=t??o===i.selected;return u("div",{...r,role:"tabpanel",id:`mcc:tabs:${s}`,"aria-labelledby":`mct:tabs:${s}`,"aria-hidden":!c,hidden:c?void 0:!0,tabIndex:n?c?0:-1:void 0},e)}var Le={Root:de,List:pe,Tab:me,Panel:be};import{createContext as xe,createElement as m,useContext as fe,useId as Pe}from"react";var M=xe(null);function V(){let e=fe(M);if(!e)throw Error("Tooltip components must be used within Tooltip.Root");return e}function Ce({children:e,...o}){let t=Pe();return m(M.Provider,{value:{id:t}},m("div",o,e))}function Re({children:e,...o}){let t=V();return m("button",{...o,type:"button",id:`mct:tooltip:${t.id}`,"aria-describedby":`mcc:tooltip:${t.id}`},e)}function ve({children:e,...o}){let t=V();return m("div",{...o,id:`mcc:tooltip:${t.id}`,role:"tooltip",popover:"manual"},e)}var ze={Root:Ce,Trigger:Re,Content:ve};export{ze as Tooltip,Le as Tabs,Ve as Popover,Te as Menu,Be as Collapsible,he 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 {};
@@ -3,9 +3,15 @@ import type { BaseProps } from "./shared.js";
3
3
  declare function Root({ children, ...props }: BaseProps): ReactElement;
4
4
  declare function Trigger({ children, ...props }: BaseProps): ReactElement;
5
5
  declare function Content({ children, ...props }: BaseProps): ReactElement;
6
+ declare function Title({ children, as, ...props }: BaseProps & {
7
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
8
+ }): ReactElement;
9
+ declare function Description({ children, ...props }: BaseProps): ReactElement;
6
10
  export declare const Popover: {
7
11
  Root: typeof Root;
8
12
  Trigger: typeof Trigger;
9
13
  Content: typeof Content;
14
+ Title: typeof Title;
15
+ Description: typeof Description;
10
16
  };
11
17
  export {};
@@ -0,0 +1,32 @@
1
+ export declare const Dialog: {
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
+ Trigger: 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
+ Content: 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
+ Title: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
+ as: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
+ [key: string]: any;
18
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
19
+ as: {
20
+ type: StringConstructor;
21
+ default: string;
22
+ };
23
+ }>> & Readonly<{}>, {
24
+ as: string;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
26
+ Description: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
29
+ Close: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
30
+ [key: string]: any;
31
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
32
+ };
@@ -1,6 +1,8 @@
1
1
  export * from "./accordion.js";
2
2
  export * from "./collapsible.js";
3
+ export * from "./dialog.js";
3
4
  export * from "./menu.js";
5
+ export * from "./menubar.js";
4
6
  export * from "./popover.js";
5
7
  export * from "./tabs.js";
6
8
  export * from "./tooltip.js";
package/dist/vue/index.js CHANGED
@@ -1 +1 @@
1
- import{defineComponent as c,h as s,provide as R,reactive as q,toRef as S,useId as M}from"vue";import{inject as A}from"vue";function n(o,t){let e=A(o);if(!e)throw Error(`${t} must be used within its parent provider`);return e}var I=(o,t)=>t?`${o}:${t}`:o,p=Symbol("CollapsibleContext"),b=Symbol("AccordionContext"),u=Symbol("TabsContext"),d=Symbol("MenuContext"),g=Symbol("MenuPopupContext"),m=Symbol("PopoverContext"),f=Symbol("TooltipContext");var F=c({props:{type:{type:String,default:"single"}},setup(o,{slots:t}){let e=M();return()=>s("div",{"data-mode":o.type,id:`mcr:accordion:${e}`},t.default?.())}}),L=c({props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=M();return R(b,q({baseId:e,open:S(o,"open"),disabled:S(o,"disabled")})),()=>s("div",null,t.default?.())}}),w=c({props:{as:{type:String,default:"h3"}},setup(o,{slots:t}){return()=>s(o.as,null,t.default?.())}}),z=c({setup(o,{slots:t}){let e=n(b,"Accordion.Trigger/Panel");return()=>s("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?.())}}),G=c({setup(o,{slots:t}){let e=n(b,"Accordion.Trigger/Panel");return()=>s("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?.())}}),Me={Root:F,Item:L,Header:w,Trigger:z,Panel:G};import{defineComponent as C,h,provide as V,reactive as E,toRef as H,useId as U}from"vue";var D=C({props:{open:{type:Boolean,default:!1}},setup(o,{slots:t}){let e=U();return V(p,E({baseId:e,open:H(o,"open")})),()=>h("div",null,t.default?.())}}),J=C({setup(o,{slots:t}){let e=n(p,"Collapsible.Trigger/Panel");return()=>h("button",{type:"button",id:`mct:collapsible:${e.baseId}`,"aria-expanded":e.open,"aria-controls":`mcc:collapsible:${e.baseId}`},t.default?.())}}),N=C({setup(o,{slots:t}){let e=n(p,"Collapsible.Trigger/Panel");return()=>h("div",{id:`mcc:collapsible:${e.baseId}`,"aria-labelledby":`mct:collapsible:${e.baseId}`,"aria-hidden":!e.open,hidden:e.open?void 0:!0},t.default?.())}}),Ae={Root:D,Trigger:J,Panel:N};import{defineComponent as i,h as r,onBeforeUpdate as O,provide as T,reactive as Q,ref as W,toRef as X,useId as _}from"vue";var Y=i({props:{menubar:Boolean},setup(o,{slots:t}){let e=_();return T(d,Q({id:e,root:!0,menubar:X(o,"menubar")})),()=>r("div",{id:`mcr:menu:${e}`},t.default?.())}}),Z=i({setup(o,{slots:t}){let e=n(d,"Menu.Trigger");return()=>r("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?.())}}),ee=i({setup(o,{slots:t}){let e=n(d,"Menu.Popover"),a=W(!1);return O(()=>{a.value=!1}),T(g,{claimFirst:()=>{if(!a.value)return a.value=!0,!0;return!1}}),()=>e.menubar?r("ul",{role:"menubar"},t.default?.()):r("ul",{role:"menu",id:`mcc:menu:${e.id}`,"aria-labelledby":`mct:menu:${e.id}`,"aria-hidden":"true",popover:"manual"},t.default?.())}}),te=i({inheritAttrs:!1,props:{disabled:Boolean,href:String},setup(o,{slots:t,attrs:e}){return()=>{let a=o.disabled?r("span",{...e,role:"menuitem","aria-disabled":"true",tabindex:-1},t.default?.()):o.href?r("a",{...e,role:"menuitem",href:o.href,tabindex:-1},t.default?.()):r("button",{...e,type:"button",role:"menuitem",tabindex:-1},t.default?.());return r("li",{role:"none"},[a])}}}),oe=i({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let a=o.disabled?r("span",{...e,role:"menuitemcheckbox","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):r("button",{...e,type:"button",role:"menuitemcheckbox","aria-checked":o.checked,tabindex:-1},t.default?.());return r("li",{role:"none"},[a])}}}),ne=i({inheritAttrs:!1,props:{checked:{type:Boolean,default:!1},disabled:Boolean},setup(o,{slots:t,attrs:e}){return()=>{let a=o.disabled?r("span",{...e,role:"menuitemradio","aria-checked":o.checked,"aria-disabled":"true",tabindex:-1},t.default?.()):r("button",{...e,type:"button",role:"menuitemradio","aria-checked":o.checked,tabindex:-1},t.default?.());return r("li",{role:"none"},[a])}}}),re=i({setup(o,{slots:t}){return()=>r("li",{role:"presentation"},t.default?.())}}),ae=i({setup(){return()=>r("li",{role:"separator"})}}),ie=i({setup(o,{slots:t}){let e=n(d,"Menu.Group"),l=n(g,"Menu.Group").claimFirst(),B=_(),k=l&&e.menubar&&!e.submenu;return T(d,{id:B,submenu:!0,first:k}),()=>r("li",{role:"none"},t.default?.())}}),Le={Root:Y,Trigger:Z,Popover:ee,Item:te,CheckboxItem:oe,RadioItem:ne,Label:re,Separator:ae,Group:ie};import{defineComponent as $,h as P,provide as le,useId as de}from"vue";var ue=$({setup(o,{slots:t}){let e=de();return le(m,{id:e}),()=>P("div",null,t.default?.())}}),ce=$({setup(o,{slots:t}){let e=n(m,"Popover.Trigger");return()=>P("button",{type:"button",id:`mct:popover:${e.id}`,"aria-controls":`mcc:popover:${e.id}`,"aria-expanded":"false"},t.default?.())}}),se=$({setup(o,{slots:t}){let e=n(m,"Popover.Content");return()=>P("div",{id:`mcc:popover:${e.id}`,"aria-labelledby":`mct:popover:${e.id}`,"aria-hidden":"true",popover:"manual",tabindex:-1},t.default?.())}}),Ve={Root:ue,Trigger:ce,Content:se};import{computed as x,defineComponent as y,h as v,provide as pe,reactive as be,toRef as me,useId as fe}from"vue";var xe=y({props:{defaultValue:{type:String,required:!0},orientation:{type:String,default:"horizontal"}},setup(o,{slots:t}){let e=fe();return pe(u,be({baseId:e,selected:o.defaultValue,orientation:me(o,"orientation")})),()=>v("div",{id:`mcr:tabs:${e}`},t.default?.())}}),ye=y({setup(o,{slots:t}){let e=n(u,"Tabs.List/Tab/Panel");return()=>v("div",{role:"tablist","aria-orientation":e.orientation},t.default?.())}}),ve=y({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},disabled:Boolean},setup(o,{slots:t}){let e=n(u,"Tabs.List/Tab/Panel"),a=x(()=>I(e.baseId,o.value)),l=x(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>v("button",{type:"button",role:"tab",id:`mct:tabs:${a.value}`,"aria-selected":l.value,"aria-controls":`mcc:tabs:${a.value}`,tabindex:l.value?0:-1,"aria-disabled":o.disabled||void 0},t.default?.())}}),Ie=y({props:{value:{type:String,required:!0},selected:{type:[Boolean,null],default:null},focusable:{type:Boolean,default:!0}},setup(o,{slots:t}){let e=n(u,"Tabs.List/Tab/Panel"),a=x(()=>I(e.baseId,o.value)),l=x(()=>o.selected!==null?o.selected:o.value===e.selected);return()=>v("div",{role:"tabpanel",id:`mcc:tabs:${a.value}`,"aria-labelledby":`mct:tabs:${a.value}`,"aria-hidden":!l.value,hidden:l.value?void 0:!0,tabindex:o.focusable?l.value?0:-1:void 0},t.default?.())}}),De={Root:xe,List:ye,Tab:ve,Panel:Ie};import{defineComponent as K,h as j,provide as ge,useId as Ce}from"vue";var he=K({setup(o,{slots:t}){let e=Ce();return ge(f,{id:e}),()=>j("div",null,t.default?.())}}),Te=K({setup(o,{slots:t}){let e=n(f,"Tooltip.Trigger");return()=>j("button",{type:"button",id:`mct:tooltip:${e.id}`,"aria-describedby":`mcc:tooltip:${e.id}`},t.default?.())}}),$e=K({setup(o,{slots:t}){let e=n(f,"Tooltip.Content");return()=>j("div",{id:`mcc:tooltip:${e.id}`,role:"tooltip",popover:"manual"},t.default?.())}}),Qe={Root:he,Trigger:Te,Content:$e};export{Qe as Tooltip,De as Tabs,Ve as Popover,Le as Menu,Ae as Collapsible,Me 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
+ };
@@ -8,4 +8,22 @@ export declare const Popover: {
8
8
  Content: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
9
9
  [key: string]: any;
10
10
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
11
+ Title: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
+ as: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
+ [key: string]: any;
18
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
19
+ as: {
20
+ type: StringConstructor;
21
+ default: string;
22
+ };
23
+ }>> & Readonly<{}>, {
24
+ as: string;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
26
+ Description: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
27
+ [key: string]: any;
28
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
11
29
  };
@@ -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
  };
@@ -38,3 +41,7 @@ export type TooltipContext = {
38
41
  id: string;
39
42
  };
40
43
  export declare const TooltipKey: InjectionKey<TooltipContext>;
44
+ export type DialogContext = {
45
+ id: string;
46
+ };
47
+ export declare const DialogKey: InjectionKey<DialogContext>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monochrome",
3
- "version": "0.9.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",
@@ -30,6 +30,7 @@
30
30
  "typescript",
31
31
  "accordion",
32
32
  "collapsible",
33
+ "dialog",
33
34
  "menu",
34
35
  "tabs"
35
36
  ],
@@ -98,17 +99,22 @@
98
99
  "vue": "3.5.32"
99
100
  },
100
101
  "versionMeta": {
101
- "gzipSize": 2561,
102
+ "gzipSize": 2697,
102
103
  "routerGzipSize": 1057,
104
+ "wrappersGzipSize": {
105
+ "react": 2165,
106
+ "vue": 2326
107
+ },
103
108
  "tests": {
104
- "total": 423,
109
+ "total": 468,
105
110
  "collapsible": 37,
106
111
  "router": 28,
107
112
  "accordion": 60,
108
- "menu": 179,
113
+ "menu": 184,
109
114
  "tooltip": 24,
110
115
  "tabs": 66,
111
- "popover": 29
116
+ "dialog": 36,
117
+ "popover": 33
112
118
  }
113
119
  }
114
120
  }