UNPKG

@wikimedia/codex

Version:

Codex Design System for Wikimedia

2 lines (1 loc) 3.79 kB
import{d as w,ad as j,C as q,c as p,b5 as z,b3 as F,b6 as H,az as m,r,a8 as O,af as P,_ as B,a as f,aq as T,Z as U,b as k,o as v,f as R,g as Z,e as x,h as b,n as S,t as g,x as G,v as y,y as J,z as L,j as h,w as I,D as $,E as Q}from"./DemoBaseLayout.vue_vue_type_style_index_0_lang-CWG_HZgx.js";import{C as X}from"./Tooltip-DvwCv0ek.js";import{C as Y}from"./TypeaheadSearch.vue_vue_type_style_index_0_lang-guaG63gZ.js";import{C as ee,u as te}from"./useFloatingMenu-DS6iyMuY.js";const ne={subtle:m,notice:m,progressive:m,error:H,warning:F,success:z},oe=w({name:"CdxInfoChip",components:{CdxIcon:q},directives:{tooltip:X},props:{status:{type:String,default:"notice",validator:j},icon:{type:[String,Object],default:null}},setup(e,{slots:t}){const i=p(()=>({["cdx-info-chip--".concat(e.status)]:!0})),n=p(()=>["notice","subtle","progressive"].includes(e.status)?e.icon:ne[e.status]),a=r(),l=r(!1),s=p(()=>l.value&&a.value&&a.value.scrollWidth>a.value.clientWidth?O(t==null?void 0:t.default)[0]:null);return P(()=>{l.value=!0}),{rootClasses:i,computedIcon:n,tooltipContent:s,textElement:a}}}),ae={ref:"textElement",class:"cdx-info-chip__text"};function se(e,t,i,n,a,l){const s=f("cdx-icon"),o=T("tooltip");return U((v(),k("div",{class:S(["cdx-info-chip",e.rootClasses])},[e.computedIcon?(v(),R(s,{key:0,class:"cdx-info-chip__icon--vue",icon:e.computedIcon},null,8,["icon"])):Z("v-if",!0),x("span",ae,[b(e.$slots,"default")],512)],2)),[[o,e.tooltipContent]])}const me=B(oe,[["render",se]]),de=w({name:"CdxMenuButton",components:{CdxButton:Y,CdxMenu:ee},inheritAttrs:!1,props:{selected:{type:[String,Number,Array,null],required:!0},menuItems:{type:Array,required:!0},menuConfig:{type:Object,default:()=>({})},action:{type:String,default:"default"},weight:{type:String,default:"quiet"},disabled:{type:Boolean,default:!1},footer:{type:Object,default:null}},emits:["update:selected"],setup(e,{emit:t,attrs:i}){const n=r(),a=r(),l=g(e,"selected"),s=G(l,t,"update:selected"),o=r(!1),d=y(),M=y(),{computedDisabled:C}=J(g(e,"disabled")),{rootClasses:A,rootStyle:K,otherAttrs:_}=L(i);let c=!1;function D(u){if(!(!n.value||C.value||e.menuItems.length===0||u.key===" ")){if(u.key==="Enter"){const V=n.value.getHighlightedMenuItem(),E=n.value.getHighlightedViaKeyboard();o.value&&V&&E?n.value.delegateKeyNavigation(u):(u.preventDefault(),o.value=!o.value),c=!0;return}n.value.delegateKeyNavigation(u)}}function W(){if(c){c=!1;return}o.value=!o.value}function N(){o.value=!1}return te(a,n,{useAvailableWidth:!0,placement:"bottom-start",offset:4}),{computedDisabled:C,expanded:o,menu:n,menuId:M,modelWrapper:s,onKeydown:D,onClick:W,onBlur:N,button:a,buttonId:d,rootClasses:A,rootStyle:K,otherAttrs:_}}}),le={class:"cdx-menu-button__menu-wrapper"};function ie(e,t,i,n,a,l){const s=f("cdx-button"),o=f("cdx-menu");return v(),k("div",{class:S(["cdx-menu-button",e.rootClasses]),style:Q(e.rootStyle)},[h(s,$({id:e.buttonId,ref:"button"},e.otherAttrs,{disabled:e.computedDisabled,weight:e.weight,action:e.action,"aria-haspopup":"menu","aria-controls":e.menuId,"aria-expanded":e.expanded,onClick:e.onClick,onBlur:e.onBlur,onKeydown:e.onKeydown}),{default:I(()=>[b(e.$slots,"default")]),_:3},16,["id","disabled","weight","action","aria-controls","aria-expanded","onClick","onBlur","onKeydown"]),x("div",le,[h(o,$({id:e.menuId,ref:"menu",selected:e.modelWrapper,"onUpdate:selected":t[0]||(t[0]=d=>e.modelWrapper=d),expanded:e.expanded,"onUpdate:expanded":t[1]||(t[1]=d=>e.expanded=d),class:"cdx-menu-button__menu","menu-items":e.menuItems},e.menuConfig,{role:"menu","aria-labelledby":e.buttonId,footer:e.footer}),{default:I(({menuItem:d})=>[b(e.$slots,"menu-item",{menuItem:d})]),_:3},16,["id","selected","expanded","menu-items","aria-labelledby","footer"])])],6)}const fe=B(de,[["render",ie]]);export{fe as C,me as a};