@mich8060/unified-design-system 0.2.36 → 0.2.38

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),l=require("react"),Ee=require("react-dom"),F=require("../Icon/Icon.cjs"),me=require("../Divider/Divider.cjs"),pe=require("../Key/Key.cjs"),Ne=require("../SearchInput/SearchInput.cjs"),ke=require("../Toggle/Toggle.cjs");;/* empty css */const t="uds-action-menu",Le=new Set(["search","autosuggest"]),W=n=>String(n||"").trim().toLowerCase(),Re=n=>typeof(n==null?void 0:n.label)=="string"?n.label:"",fe=n=>{var p,d;const u=[...n];for(;u.length>0&&((p=u[0])!=null&&p.divider);)u.shift();for(;u.length>0&&((d=u[u.length-1])!=null&&d.divider);)u.pop();return u},ge=(n,u)=>{const p=W(u);if(!p)return n;const d=[];for(const h of n){if(h!=null&&h.divider){d.push(h);continue}const v=W(Re(h)),_=Array.isArray(h==null?void 0:h.items)?ge(h.items,u):null,f=Array.isArray(_)&&_.length>0;(v.includes(p)||f)&&d.push(f?{...h,items:fe(_)}:h)}return fe(d)},he=(n,u,p=!1)=>{const d=W(u);if(!d||!n)return n;const h=W(n),v=p?h.startsWith(d)?0:-1:h.indexOf(d);if(v<0)return n;const _=v+d.length,f=n.slice(0,v),R=n.slice(v,_),q=n.slice(_);return o.jsxs(o.Fragment,{children:[f,o.jsx("span",{className:`${t}__match ${p?`${t}__match--weight`:""}`,children:R}),q]})};function _e({item:n,onItemClick:u}){const[p,d]=l.useState(!1),[h,v]=l.useState(!1),_=l.useRef(null),f=l.useRef(null),R=()=>{clearTimeout(f.current),d(!0)},q=()=>{f.current=setTimeout(()=>{d(!1)},150)},G=()=>{clearTimeout(f.current)},U=()=>{f.current=setTimeout(()=>{d(!1)},150)};return l.useEffect(()=>()=>{clearTimeout(f.current)},[]),l.useLayoutEffect(()=>{if(!p||!_.current)return;const s=_.current.getBoundingClientRect(),C=s.right>window.innerWidth-8,M=s.left<8;if(C&&!M){v(!0);return}if(M&&!C){v(!1);return}C&&M&&v(s.right-window.innerWidth>8)},[p]),o.jsxs("div",{className:`${t}__item-wrapper`,onMouseEnter:R,onMouseLeave:q,children:[o.jsxs("button",{className:`${t}__item ${t}__item--has-submenu ${n.disabled?`${t}__item--disabled`:""}`,role:"menuitem",disabled:n.disabled,"aria-haspopup":"true","aria-expanded":p,"aria-label":n.label,children:[n.icon&&o.jsx(F.default,{name:n.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:n.label}),o.jsx(F.default,{name:"CaretRight",size:12,appearance:"regular",className:`${t}__item-arrow`})]}),p&&n.items&&o.jsx("div",{ref:_,className:`${t}__submenu ${h?`${t}__submenu--left`:""}`,role:"menu","aria-orientation":"vertical",onMouseEnter:G,onMouseLeave:U,children:n.items.map((s,C)=>s.divider?o.jsx("div",{className:`${t}__divider`,children:o.jsx(me.default,{})},`divider-${C}`):s.items&&s.items.length>0?o.jsx(_e,{item:s,onItemClick:u},s.id||C):o.jsxs("button",{className:`${t}__item ${s.disabled?`${t}__item--disabled`:""} ${s.active?`${t}__item--active`:""} ${s.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:s.disabled,onClick:M=>u(s,M),"aria-label":s.label,children:[s.icon&&o.jsx(F.default,{name:s.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:s.label}),s.shortcut&&o.jsx(pe.default,{label:s.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},s.id||C))})]})}function Me({trigger:n,items:u=[],placement:p="bottom-start",variant:d="default",searchPlaceholder:h="Search...",noResultsText:v="No results found",fullWidth:_=!1,disabled:f=!1,onOpenChange:R,className:q="",menuClassName:G="",...U}){const[s,C]=l.useState(!1),[M,$e]=l.useState({}),[I,Y]=l.useState(null),x=l.useRef(null),S=l.useRef(null),T=l.useRef(null),K=l.useRef(null),[Z,ee]=l.useState(""),[be,ve]=l.useState(""),z=d==="search",E=d==="autosuggest",te=Le.has(d),P=z?Z:E?be:"",ne=l.useMemo(()=>te?ge(u,P):u,[te,u,P]),re=e=>{var r;e.key==="Escape"&&(N(!1),(r=S.current)==null||r.focus())},N=e=>{C(e),e||(K.current=null),R&&R(e)};l.useEffect(()=>{const e=r=>{x.current&&S.current&&!x.current.contains(r.target)&&!S.current.contains(r.target)&&N(!1)};return s&&(document.addEventListener("mousedown",e),document.addEventListener("keydown",re)),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",re)}},[s]);const se=()=>{if(!s||!x.current||!S.current)return;const e=S.current.closest(".app-shell__main-content"),r=e instanceof HTMLElement?e:document.body;Y(r);const a=S.current.getBoundingClientRect(),g=x.current.getBoundingClientRect(),j=r===document.body?{top:0,left:0}:r.getBoundingClientRect(),w=r===document.body?0:r.scrollTop,y=r===document.body?0:r.scrollLeft,k=r===document.body?window.innerWidth:r.clientWidth,L=r===document.body?window.innerHeight:r.clientHeight,b=8,c=8,[m="bottom",A="start"]=String(p).split("-"),B=(i,ae)=>{let V=0,Q=0;const ce=a.top-j.top+w,le=a.bottom-j.top+w,ue=a.left-j.left+y,de=a.right-j.left+y;return i==="bottom"&&(V=le+c),i==="top"&&(V=ce-g.height-c),i==="right"&&(Q=de+c),i==="left"&&(Q=ue-g.width-c),(i==="bottom"||i==="top")&&(ae==="end"?Q=de-g.width:Q=ue),(i==="left"||i==="right")&&(ae==="end"?V=le-g.height:V=ce),{top:V,left:Q}},Se=i=>({top:i.top<w+b,bottom:i.top+g.height>w+L-b,left:i.left<y+b,right:i.left+g.width>y+k-b});let $=K.current??m;const H=A;let D=B($,H);if(!K.current){const i=Se(D);$==="bottom"&&i.bottom?($="top",D=B($,H)):$==="top"&&i.top?($="bottom",D=B($,H)):$==="right"&&i.right?($="left",D=B($,H)):$==="left"&&i.left&&($="right",D=B($,H)),K.current=$}let J=D.top,X=D.left;J=Math.max(w+b,Math.min(J,w+L-g.height-b)),X=Math.max(y+b,Math.min(X,y+k-g.width-b));const O={position:r===document.body?"fixed":"absolute",top:`${J}px`,left:`${X}px`,width:_?`${a.width}px`:void 0};$e(i=>i.top===O.top&&i.left===O.left&&i.width===O.width&&i.position===O.position?i:O)};l.useLayoutEffect(()=>{var e;if(s){if(I===null){const r=(e=S.current)==null?void 0:e.closest(".app-shell__main-content");Y(r instanceof HTMLElement?r:document.body)}se()}},[s,p,_,I]),l.useEffect(()=>{if(!s)return;const e=()=>{T.current==null&&(T.current=requestAnimationFrame(()=>{T.current=null,se()}))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),T.current!=null&&(cancelAnimationFrame(T.current),T.current=null)}},[s]),l.useEffect(()=>{if(!s){ee("");return}z&&requestAnimationFrame(()=>{var r;const e=(r=x.current)==null?void 0:r.querySelector('input[type="search"]');e==null||e.focus()})},[s,z]);const we=e=>{var j,w,y,k,L,b,c;if(z&&e.target instanceof HTMLInputElement&&e.target.type==="search"&&((j=x.current)==null?void 0:j.contains(e.target))){if(e.key==="ArrowDown"){e.preventDefault();const m=(w=x.current)==null?void 0:w.querySelector('[role="menuitem"]:not([disabled])');m==null||m.focus()}return}const a=(y=x.current)==null?void 0:y.querySelectorAll('[role="menuitem"]:not([disabled])');if(!a||a.length===0)return;const g=Array.from(a).findIndex(m=>m===document.activeElement);switch(e.key){case"ArrowDown":{e.preventDefault();const m=g<a.length-1?g+1:0;(k=a[m])==null||k.focus();break}case"ArrowUp":{e.preventDefault();const m=g>0?g-1:a.length-1;(L=a[m])==null||L.focus();break}case"Home":e.preventDefault(),(b=a[0])==null||b.focus();break;case"End":e.preventDefault(),(c=a[a.length-1])==null||c.focus();break;case"Enter":case" ":e.preventDefault(),document.activeElement&&document.activeElement.click();break}},oe=()=>{f||N(!s)},ie=(e,r)=>{if(e.disabled){r.preventDefault();return}e.onClick&&e.onClick(e,r),N(!1)},ye=()=>z?o.jsx("div",{className:`${t}__search`,children:o.jsx(Ne.SearchInput,{size:"compact",value:Z,onChange:e=>ee(e.target.value),className:`${t}__search-input`,placeholder:h,"aria-label":h})}):null,xe=()=>{var e,r,a,g,j;if(!n)return null;if(l.isValidElement(n)){const w=(e=n.props)==null?void 0:e.onClick,y=(r=n.props)==null?void 0:r.onChange,k=(a=n.props)==null?void 0:a.onFocus,L=(g=n.props)==null?void 0:g.onKeyDown,b=l.cloneElement(n,{disabled:f||((j=n.props)==null?void 0:j.disabled),"aria-disabled":f||void 0,onClick:c=>{f||(E||(c.preventDefault(),c.stopPropagation()),w&&w(c),E?N(!0):oe())},onFocus:c=>{k&&k(c),!(f||!E)&&N(!0)},onChange:c=>{if(y&&y(c),f||!E)return;const m=c==null?void 0:c.target,A=m&&typeof m=="object"&&"value"in m?String(m.value??""):"";ve(A),N(!0)},onKeyDown:c=>{var m;if(L&&L(c),!(f||!E)){if(c.key==="Escape"){N(!1);return}if(c.key==="ArrowDown"){c.preventDefault();const A=(m=x.current)==null?void 0:m.querySelector('[role="menuitem"]:not([disabled])');A==null||A.focus()}}},"aria-haspopup":"true","aria-expanded":s});return o.jsx("div",{ref:S,className:`${t}__trigger`,children:b})}return o.jsx("div",{ref:S,className:`${t}__trigger`,onClick:oe,children:n})},je=[t,s&&`${t}--open`,_&&`${t}--full-width`,f&&`${t}--disabled`,q].filter(Boolean).join(" "),Ce=[`${t}__menu`,`${t}__menu--portal`,d==="search"&&`${t}__menu--search`,_&&`${t}__menu--full-width`,G].filter(Boolean).join(" ");return o.jsxs("div",{className:je,...U,children:[xe(),s&&!f&&I?Ee.createPortal(o.jsxs("div",{ref:x,className:Ce,style:M,role:"menu","aria-orientation":"vertical",onKeyDown:we,children:[ye(),ne.length===0?o.jsx("div",{className:`${t}__empty`,children:v}):null,ne.map((e,r)=>e.divider?o.jsx("div",{className:`${t}__divider`,children:o.jsx(me.default,{})},`divider-${r}`):e.items&&e.items.length>0?o.jsx(_e,{item:e,onItemClick:ie},e.id||r):e.type==="toggle"?o.jsxs("div",{className:`${t}__item ${t}__item--toggle ${e.disabled?`${t}__item--disabled`:""}`,role:"menuitemcheckbox","aria-checked":!!e.checked,"aria-label":e.label,children:[e.icon&&o.jsx(F.default,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:he(e.label,P,E)}),o.jsx(ke.default,{checked:!!e.checked,size:"small",disabled:e.disabled,onChange:a=>{e.onChange&&e.onChange(a)},className:`${t}__item-toggle`})]},e.id||r):o.jsxs("button",{className:`${t}__item ${e.disabled?`${t}__item--disabled`:""} ${e.active?`${t}__item--active`:""} ${e.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:e.disabled,onClick:a=>ie(e,a),"aria-label":e.label,children:[e.icon&&o.jsx(F.default,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:he(e.label,P,E)}),e.shortcut&&o.jsx(pe.default,{label:e.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},e.id||r))]}),I):null]})}exports.default=Me;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),c=require("react"),Ee=require("react-dom"),Q=require("../Icon/Icon.cjs"),me=require("../Divider/Divider.cjs"),pe=require("../Key/Key.cjs"),Ne=require("../SearchInput/SearchInput.cjs"),ke=require("../Toggle/Toggle.cjs");;/* empty css */const t="uds-action-menu",Le=new Set(["search","autosuggest"]),K=n=>String(n||"").trim().toLowerCase(),Re=n=>typeof(n==null?void 0:n.label)=="string"?n.label:"",fe=n=>{var p,u;const l=[...n];for(;l.length>0&&((p=l[0])!=null&&p.divider);)l.shift();for(;l.length>0&&((u=l[l.length-1])!=null&&u.divider);)l.pop();return l},ge=(n,l)=>{const p=K(l);if(!p)return n;const u=[];for(const h of n){if(h!=null&&h.divider){u.push(h);continue}const $=K(Re(h)),g=Array.isArray(h==null?void 0:h.items)?ge(h.items,l):null,d=Array.isArray(g)&&g.length>0;($.includes(p)||d)&&u.push(d?{...h,items:fe(g)}:h)}return fe(u)},he=(n,l,p=!1)=>{const u=K(l);if(!u||!n)return n;const h=K(n),$=p?h.startsWith(u)?0:-1:h.indexOf(u);if($<0)return n;const g=$+u.length,d=n.slice(0,$),M=n.slice($,g),q=n.slice(g);return o.jsxs(o.Fragment,{children:[d,o.jsx("span",{className:`${t}__match ${p?`${t}__match--weight`:""}`,children:M}),q]})};function _e({item:n,onItemClick:l}){const[p,u]=c.useState(!1),[h,$]=c.useState(!1),g=c.useRef(null),d=c.useRef(null),M=()=>{clearTimeout(d.current),u(!0)},q=()=>{d.current=setTimeout(()=>{u(!1)},150)},P=()=>{clearTimeout(d.current)},W=()=>{d.current=setTimeout(()=>{u(!1)},150)};return c.useEffect(()=>()=>{clearTimeout(d.current)},[]),c.useLayoutEffect(()=>{if(!p||!g.current)return;const r=g.current.getBoundingClientRect(),S=r.right>window.innerWidth-8,A=r.left<8;if(S&&!A){$(!0);return}if(A&&!S){$(!1);return}S&&A&&$(r.right-window.innerWidth>8)},[p]),o.jsxs("div",{className:`${t}__item-wrapper`,onMouseEnter:M,onMouseLeave:q,children:[o.jsxs("button",{className:`${t}__item ${t}__item--has-submenu ${n.disabled?`${t}__item--disabled`:""}`,role:"menuitem",disabled:n.disabled,"aria-haspopup":"true","aria-expanded":p,"aria-label":n.label,children:[n.icon&&o.jsx(Q.default,{name:n.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:n.label}),o.jsx(Q.default,{name:"CaretRight",size:12,appearance:"regular",className:`${t}__item-arrow`})]}),p&&n.items&&o.jsx("div",{ref:g,className:`${t}__submenu ${h?`${t}__submenu--left`:""}`,role:"menu","aria-orientation":"vertical",onMouseEnter:P,onMouseLeave:W,children:n.items.map((r,S)=>r.divider?o.jsx("div",{className:`${t}__divider`,children:o.jsx(me.default,{})},`divider-${S}`):r.items&&r.items.length>0?o.jsx(_e,{item:r,onItemClick:l},r.id||S):o.jsxs("button",{className:`${t}__item ${r.disabled?`${t}__item--disabled`:""} ${r.active?`${t}__item--active`:""} ${r.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:r.disabled,onClick:A=>l(r,A),"aria-label":r.label,children:[r.icon&&o.jsx(Q.default,{name:r.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:r.label}),r.shortcut&&o.jsx(pe.default,{label:r.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},r.id||S))})]})}function Me({trigger:n,items:l=[],placement:p="bottom-start",variant:u="default",searchPlaceholder:h="Search...",noResultsText:$="No results found",fullWidth:g=!1,disabled:d=!1,onOpenChange:M,className:q="",menuClassName:P="",...W}){const[r,S]=c.useState(!1),[A,ve]=c.useState({}),[G,X]=c.useState(typeof document<"u"?document.body:null),j=c.useRef(null),C=c.useRef(null),T=c.useRef(null),F=c.useRef(null),[Y,Z]=c.useState(""),[$e,be]=c.useState(""),z=u==="search",N=u==="autosuggest",ee=Le.has(u),I=z?Y:N?$e:"",te=c.useMemo(()=>ee?ge(l,I):l,[ee,l,I]),ne=()=>{if(!C.current||typeof document>"u")return document.body;const e=C.current.closest(".uds-modal__overlay"),s=C.current.closest(".app-shell__main-content");return e instanceof HTMLElement?e:s instanceof HTMLElement?s:document.body},re=e=>{var s;e.key==="Escape"&&(k(!1),(s=C.current)==null||s.focus())},k=e=>{e&&X(ne()),S(e),e||(F.current=null),M&&M(e)};c.useEffect(()=>{const e=s=>{j.current&&C.current&&!j.current.contains(s.target)&&!C.current.contains(s.target)&&k(!1)};return r&&(document.addEventListener("mousedown",e),document.addEventListener("keydown",re)),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",re)}},[r]);const oe=()=>{if(!r||!j.current||!C.current)return;const e=ne();X(e);const s=C.current.getBoundingClientRect(),a=j.current.getBoundingClientRect(),b=e===document.body?{top:0,left:0}:e.getBoundingClientRect(),w=e===document.body?0:e.scrollTop,y=e===document.body?0:e.scrollLeft,L=e===document.body?window.innerWidth:e.clientWidth,R=e===document.body?window.innerHeight:e.clientHeight,_=8,E=8,[f="bottom",m="start"]=String(p).split("-"),x=(i,ie)=>{let O=0,V=0;const ce=s.top-b.top+w,le=s.bottom-b.top+w,ue=s.left-b.left+y,de=s.right-b.left+y;return i==="bottom"&&(O=le+E),i==="top"&&(O=ce-a.height-E),i==="right"&&(V=de+E),i==="left"&&(V=ue-a.width-E),(i==="bottom"||i==="top")&&(ie==="end"?V=de-a.width:V=ue),(i==="left"||i==="right")&&(ie==="end"?O=le-a.height:O=ce),{top:O,left:V}},Se=i=>({top:i.top<w+_,bottom:i.top+a.height>w+R-_,left:i.left<y+_,right:i.left+a.width>y+L-_});let v=F.current??f;const B=m;let D=x(v,B);if(!F.current){const i=Se(D);v==="bottom"&&i.bottom?(v="top",D=x(v,B)):v==="top"&&i.top?(v="bottom",D=x(v,B)):v==="right"&&i.right?(v="left",D=x(v,B)):v==="left"&&i.left&&(v="right",D=x(v,B)),F.current=v}let U=D.top,J=D.left;U=Math.max(w+_,Math.min(U,w+R-a.height-_)),J=Math.max(y+_,Math.min(J,y+L-a.width-_));const H={position:e===document.body?"fixed":"absolute",top:`${U}px`,left:`${J}px`,width:g?`${s.width}px`:void 0,zIndex:e===modalOverlayContainer?"calc(var(--uds-elevation-modal) + 1)":void 0};ve(i=>i.top===H.top&&i.left===H.left&&i.width===H.width&&i.position===H.position?i:H)};c.useLayoutEffect(()=>{r&&oe()},[r,p,g,G]),c.useEffect(()=>{if(!r)return;const e=()=>{T.current==null&&(T.current=requestAnimationFrame(()=>{T.current=null,oe()}))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),T.current!=null&&(cancelAnimationFrame(T.current),T.current=null)}},[r]),c.useEffect(()=>{if(!r){Z("");return}z&&requestAnimationFrame(()=>{var s;const e=(s=j.current)==null?void 0:s.querySelector('input[type="search"]');e==null||e.focus()})},[r,z]);const we=e=>{var w,y,L,R,_,E,f;if(z&&e.target instanceof HTMLInputElement&&e.target.type==="search"&&((w=j.current)==null?void 0:w.contains(e.target))){if(e.key==="ArrowDown"){e.preventDefault();const m=(y=j.current)==null?void 0:y.querySelector('[role="menuitem"]:not([disabled])');m==null||m.focus()}return}const a=(L=j.current)==null?void 0:L.querySelectorAll('[role="menuitem"]:not([disabled])');if(!a||a.length===0)return;const b=Array.from(a).findIndex(m=>m===document.activeElement);switch(e.key){case"ArrowDown":{e.preventDefault();const m=b<a.length-1?b+1:0;(R=a[m])==null||R.focus();break}case"ArrowUp":{e.preventDefault();const m=b>0?b-1:a.length-1;(_=a[m])==null||_.focus();break}case"Home":e.preventDefault(),(E=a[0])==null||E.focus();break;case"End":e.preventDefault(),(f=a[a.length-1])==null||f.focus();break;case"Enter":case" ":e.preventDefault(),document.activeElement&&document.activeElement.click();break}},se=()=>{d||k(!r)},ae=(e,s)=>{if(e.disabled){s.preventDefault();return}e.onClick&&e.onClick(e,s),k(!1)},ye=()=>z?o.jsx("div",{className:`${t}__search`,children:o.jsx(Ne.SearchInput,{size:"compact",value:Y,onChange:e=>Z(e.target.value),className:`${t}__search-input`,placeholder:h,"aria-label":h})}):null,xe=()=>{var e,s,a,b,w;if(!n)return null;if(c.isValidElement(n)){const y=(e=n.props)==null?void 0:e.onClick,L=(s=n.props)==null?void 0:s.onChange,R=(a=n.props)==null?void 0:a.onFocus,_=(b=n.props)==null?void 0:b.onKeyDown,E=c.cloneElement(n,{disabled:d||((w=n.props)==null?void 0:w.disabled),"aria-disabled":d||void 0,onClick:f=>{d||(N||(f.preventDefault(),f.stopPropagation()),y&&y(f),N?k(!0):se())},onFocus:f=>{R&&R(f),!(d||!N)&&k(!0)},onChange:f=>{if(L&&L(f),d||!N)return;const m=f==null?void 0:f.target,x=m&&typeof m=="object"&&"value"in m?String(m.value??""):"";be(x),k(!0)},onKeyDown:f=>{var m;if(_&&_(f),!(d||!N)){if(f.key==="Escape"){k(!1);return}if(f.key==="ArrowDown"){f.preventDefault();const x=(m=j.current)==null?void 0:m.querySelector('[role="menuitem"]:not([disabled])');x==null||x.focus()}}},"aria-haspopup":"true","aria-expanded":r});return o.jsx("div",{ref:C,className:`${t}__trigger`,children:E})}return o.jsx("div",{ref:C,className:`${t}__trigger`,onClick:se,children:n})},je=[t,r&&`${t}--open`,g&&`${t}--full-width`,d&&`${t}--disabled`,q].filter(Boolean).join(" "),Ce=[`${t}__menu`,`${t}__menu--portal`,u==="search"&&`${t}__menu--search`,g&&`${t}__menu--full-width`,P].filter(Boolean).join(" ");return o.jsxs("div",{className:je,...W,children:[xe(),r&&!d&&G?Ee.createPortal(o.jsxs("div",{ref:j,className:Ce,style:A,role:"menu","aria-orientation":"vertical",onKeyDown:we,children:[ye(),te.length===0?o.jsx("div",{className:`${t}__empty`,children:$}):null,te.map((e,s)=>e.divider?o.jsx("div",{className:`${t}__divider`,children:o.jsx(me.default,{})},`divider-${s}`):e.items&&e.items.length>0?o.jsx(_e,{item:e,onItemClick:ae},e.id||s):e.type==="toggle"?o.jsxs("div",{className:`${t}__item ${t}__item--toggle ${e.disabled?`${t}__item--disabled`:""}`,role:"menuitemcheckbox","aria-checked":!!e.checked,"aria-label":e.label,children:[e.icon&&o.jsx(Q.default,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:he(e.label,I,N)}),o.jsx(ke.default,{checked:!!e.checked,size:"small",disabled:e.disabled,onChange:a=>{e.onChange&&e.onChange(a)},className:`${t}__item-toggle`})]},e.id||s):o.jsxs("button",{className:`${t}__item ${e.disabled?`${t}__item--disabled`:""} ${e.active?`${t}__item--active`:""} ${e.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:e.disabled,onClick:a=>ae(e,a),"aria-label":e.label,children:[e.icon&&o.jsx(Q.default,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),o.jsx("span",{className:`${t}__item-label`,children:he(e.label,I,N)}),e.shortcut&&o.jsx(pe.default,{label:e.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},e.id||s))]}),G):null]})}exports.default=Me;
@@ -1 +1 @@
1
- import{jsxs as A,jsx as i,Fragment as De}from"react/jsx-runtime";import pe,{useState as z,useRef as H,useMemo as Te,useEffect as U,useLayoutEffect as $e}from"react";import{createPortal as xe}from"react-dom";import I from"../Icon/Icon.js";import we from"../Divider/Divider.js";import be from"../Key/Key.js";import{SearchInput as ze}from"../SearchInput/SearchInput.js";import Be from"../Toggle/Toggle.js";/* empty css */const t="uds-action-menu",He=new Set(["search","autosuggest"]),J=n=>String(n||"").trim().toLowerCase(),Ve=n=>typeof(n==null?void 0:n.label)=="string"?n.label:"",ge=n=>{var m,u;const l=[...n];for(;l.length>0&&((m=l[0])!=null&&m.divider);)l.shift();for(;l.length>0&&((u=l[l.length-1])!=null&&u.divider);)l.pop();return l},ve=(n,l)=>{const m=J(l);if(!m)return n;const u=[];for(const f of n){if(f!=null&&f.divider){u.push(f);continue}const w=J(Ve(f)),g=Array.isArray(f==null?void 0:f.items)?ve(f.items,l):null,d=Array.isArray(g)&&g.length>0;(w.includes(m)||d)&&u.push(d?{...f,items:ge(g)}:f)}return ge(u)},_e=(n,l,m=!1)=>{const u=J(l);if(!u||!n)return n;const f=J(n),w=m?f.startsWith(u)?0:-1:f.indexOf(u);if(w<0)return n;const g=w+u.length,d=n.slice(0,w),R=n.slice(w,g),V=n.slice(g);return A(De,{children:[d,i("span",{className:`${t}__match ${m?`${t}__match--weight`:""}`,children:R}),V]})};function ye({item:n,onItemClick:l}){const[m,u]=z(!1),[f,w]=z(!1),g=H(null),d=H(null),R=()=>{clearTimeout(d.current),u(!0)},V=()=>{d.current=setTimeout(()=>{u(!1)},150)},X=()=>{clearTimeout(d.current)},Y=()=>{d.current=setTimeout(()=>{u(!1)},150)};return U(()=>()=>{clearTimeout(d.current)},[]),$e(()=>{if(!m||!g.current)return;const o=g.current.getBoundingClientRect(),N=o.right>window.innerWidth-8,D=o.left<8;if(N&&!D){w(!0);return}if(D&&!N){w(!1);return}N&&D&&w(o.right-window.innerWidth>8)},[m]),A("div",{className:`${t}__item-wrapper`,onMouseEnter:R,onMouseLeave:V,children:[A("button",{className:`${t}__item ${t}__item--has-submenu ${n.disabled?`${t}__item--disabled`:""}`,role:"menuitem",disabled:n.disabled,"aria-haspopup":"true","aria-expanded":m,"aria-label":n.label,children:[n.icon&&i(I,{name:n.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),i("span",{className:`${t}__item-label`,children:n.label}),i(I,{name:"CaretRight",size:12,appearance:"regular",className:`${t}__item-arrow`})]}),m&&n.items&&i("div",{ref:g,className:`${t}__submenu ${f?`${t}__submenu--left`:""}`,role:"menu","aria-orientation":"vertical",onMouseEnter:X,onMouseLeave:Y,children:n.items.map((o,N)=>o.divider?i("div",{className:`${t}__divider`,children:i(we,{})},`divider-${N}`):o.items&&o.items.length>0?i(ye,{item:o,onItemClick:l},o.id||N):A("button",{className:`${t}__item ${o.disabled?`${t}__item--disabled`:""} ${o.active?`${t}__item--active`:""} ${o.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:o.disabled,onClick:D=>l(o,D),"aria-label":o.label,children:[o.icon&&i(I,{name:o.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),i("span",{className:`${t}__item-label`,children:o.label}),o.shortcut&&i(be,{label:o.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},o.id||N))})]})}function Ge({trigger:n,items:l=[],placement:m="bottom-start",variant:u="default",searchPlaceholder:f="Search...",noResultsText:w="No results found",fullWidth:g=!1,disabled:d=!1,onOpenChange:R,className:V="",menuClassName:X="",...Y}){const[o,N]=z(!1),[D,Ce]=z({}),[P,te]=z(null),y=H(null),E=H(null),B=H(null),W=H(null),[ne,re]=z(""),[Ne,Ee]=z(""),O=u==="search",k=u==="autosuggest",oe=He.has(u),G=O?ne:k?Ne:"",ie=Te(()=>oe?ve(l,G):l,[oe,l,G]),ae=e=>{var r;e.key==="Escape"&&(L(!1),(r=E.current)==null||r.focus())},L=e=>{N(e),e||(W.current=null),R&&R(e)};U(()=>{const e=r=>{y.current&&E.current&&!y.current.contains(r.target)&&!E.current.contains(r.target)&&L(!1)};return o&&(document.addEventListener("mousedown",e),document.addEventListener("keydown",ae)),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",ae)}},[o]);const ce=()=>{if(!o||!y.current||!E.current)return;const e=E.current.closest(".app-shell__main-content"),r=e instanceof HTMLElement?e:document.body;te(r);const c=E.current.getBoundingClientRect(),p=y.current.getBoundingClientRect(),C=r===document.body?{top:0,left:0}:r.getBoundingClientRect(),b=r===document.body?0:r.scrollTop,v=r===document.body?0:r.scrollLeft,S=r===document.body?window.innerWidth:r.clientWidth,M=r===document.body?window.innerHeight:r.clientHeight,$=8,s=8,[h="bottom",T="start"]=String(m).split("-"),Q=(a,ue)=>{let K=0,j=0;const de=c.top-C.top+b,fe=c.bottom-C.top+b,he=c.left-C.left+v,me=c.right-C.left+v;return a==="bottom"&&(K=fe+s),a==="top"&&(K=de-p.height-s),a==="right"&&(j=me+s),a==="left"&&(j=he-p.width-s),(a==="bottom"||a==="top")&&(ue==="end"?j=me-p.width:j=he),(a==="left"||a==="right")&&(ue==="end"?K=fe-p.height:K=de),{top:K,left:j}},Re=a=>({top:a.top<b+$,bottom:a.top+p.height>b+M-$,left:a.left<v+$,right:a.left+p.width>v+S-$});let _=W.current??h;const q=T;let x=Q(_,q);if(!W.current){const a=Re(x);_==="bottom"&&a.bottom?(_="top",x=Q(_,q)):_==="top"&&a.top?(_="bottom",x=Q(_,q)):_==="right"&&a.right?(_="left",x=Q(_,q)):_==="left"&&a.left&&(_="right",x=Q(_,q)),W.current=_}let Z=x.top,ee=x.left;Z=Math.max(b+$,Math.min(Z,b+M-p.height-$)),ee=Math.max(v+$,Math.min(ee,v+S-p.width-$));const F={position:r===document.body?"fixed":"absolute",top:`${Z}px`,left:`${ee}px`,width:g?`${c.width}px`:void 0};Ce(a=>a.top===F.top&&a.left===F.left&&a.width===F.width&&a.position===F.position?a:F)};$e(()=>{var e;if(o){if(P===null){const r=(e=E.current)==null?void 0:e.closest(".app-shell__main-content");te(r instanceof HTMLElement?r:document.body)}ce()}},[o,m,g,P]),U(()=>{if(!o)return;const e=()=>{B.current==null&&(B.current=requestAnimationFrame(()=>{B.current=null,ce()}))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),B.current!=null&&(cancelAnimationFrame(B.current),B.current=null)}},[o]),U(()=>{if(!o){re("");return}O&&requestAnimationFrame(()=>{var r;const e=(r=y.current)==null?void 0:r.querySelector('input[type="search"]');e==null||e.focus()})},[o,O]);const ke=e=>{var C,b,v,S,M,$,s;if(O&&e.target instanceof HTMLInputElement&&e.target.type==="search"&&((C=y.current)==null?void 0:C.contains(e.target))){if(e.key==="ArrowDown"){e.preventDefault();const h=(b=y.current)==null?void 0:b.querySelector('[role="menuitem"]:not([disabled])');h==null||h.focus()}return}const c=(v=y.current)==null?void 0:v.querySelectorAll('[role="menuitem"]:not([disabled])');if(!c||c.length===0)return;const p=Array.from(c).findIndex(h=>h===document.activeElement);switch(e.key){case"ArrowDown":{e.preventDefault();const h=p<c.length-1?p+1:0;(S=c[h])==null||S.focus();break}case"ArrowUp":{e.preventDefault();const h=p>0?p-1:c.length-1;(M=c[h])==null||M.focus();break}case"Home":e.preventDefault(),($=c[0])==null||$.focus();break;case"End":e.preventDefault(),(s=c[c.length-1])==null||s.focus();break;case"Enter":case" ":e.preventDefault(),document.activeElement&&document.activeElement.click();break}},se=()=>{d||L(!o)},le=(e,r)=>{if(e.disabled){r.preventDefault();return}e.onClick&&e.onClick(e,r),L(!1)},Le=()=>O?i("div",{className:`${t}__search`,children:i(ze,{size:"compact",value:ne,onChange:e=>re(e.target.value),className:`${t}__search-input`,placeholder:f,"aria-label":f})}):null,Se=()=>{var e,r,c,p,C;if(!n)return null;if(pe.isValidElement(n)){const b=(e=n.props)==null?void 0:e.onClick,v=(r=n.props)==null?void 0:r.onChange,S=(c=n.props)==null?void 0:c.onFocus,M=(p=n.props)==null?void 0:p.onKeyDown,$=pe.cloneElement(n,{disabled:d||((C=n.props)==null?void 0:C.disabled),"aria-disabled":d||void 0,onClick:s=>{d||(k||(s.preventDefault(),s.stopPropagation()),b&&b(s),k?L(!0):se())},onFocus:s=>{S&&S(s),!(d||!k)&&L(!0)},onChange:s=>{if(v&&v(s),d||!k)return;const h=s==null?void 0:s.target,T=h&&typeof h=="object"&&"value"in h?String(h.value??""):"";Ee(T),L(!0)},onKeyDown:s=>{var h;if(M&&M(s),!(d||!k)){if(s.key==="Escape"){L(!1);return}if(s.key==="ArrowDown"){s.preventDefault();const T=(h=y.current)==null?void 0:h.querySelector('[role="menuitem"]:not([disabled])');T==null||T.focus()}}},"aria-haspopup":"true","aria-expanded":o});return i("div",{ref:E,className:`${t}__trigger`,children:$})}return i("div",{ref:E,className:`${t}__trigger`,onClick:se,children:n})},Me=[t,o&&`${t}--open`,g&&`${t}--full-width`,d&&`${t}--disabled`,V].filter(Boolean).join(" "),Ae=[`${t}__menu`,`${t}__menu--portal`,u==="search"&&`${t}__menu--search`,g&&`${t}__menu--full-width`,X].filter(Boolean).join(" ");return A("div",{className:Me,...Y,children:[Se(),o&&!d&&P?xe(A("div",{ref:y,className:Ae,style:D,role:"menu","aria-orientation":"vertical",onKeyDown:ke,children:[Le(),ie.length===0?i("div",{className:`${t}__empty`,children:w}):null,ie.map((e,r)=>e.divider?i("div",{className:`${t}__divider`,children:i(we,{})},`divider-${r}`):e.items&&e.items.length>0?i(ye,{item:e,onItemClick:le},e.id||r):e.type==="toggle"?A("div",{className:`${t}__item ${t}__item--toggle ${e.disabled?`${t}__item--disabled`:""}`,role:"menuitemcheckbox","aria-checked":!!e.checked,"aria-label":e.label,children:[e.icon&&i(I,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),i("span",{className:`${t}__item-label`,children:_e(e.label,G,k)}),i(Be,{checked:!!e.checked,size:"small",disabled:e.disabled,onChange:c=>{e.onChange&&e.onChange(c)},className:`${t}__item-toggle`})]},e.id||r):A("button",{className:`${t}__item ${e.disabled?`${t}__item--disabled`:""} ${e.active?`${t}__item--active`:""} ${e.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:e.disabled,onClick:c=>le(e,c),"aria-label":e.label,children:[e.icon&&i(I,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),i("span",{className:`${t}__item-label`,children:_e(e.label,G,k)}),e.shortcut&&i(be,{label:e.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},e.id||r))]}),P):null]})}export{Ge as default};
1
+ import{jsxs as R,jsx as a,Fragment as De}from"react/jsx-runtime";import pe,{useState as z,useRef as H,useMemo as Te,useEffect as W,useLayoutEffect as $e}from"react";import{createPortal as xe}from"react-dom";import K from"../Icon/Icon.js";import ve from"../Divider/Divider.js";import be from"../Key/Key.js";import{SearchInput as ze}from"../SearchInput/SearchInput.js";import Be from"../Toggle/Toggle.js";/* empty css */const t="uds-action-menu",He=new Set(["search","autosuggest"]),G=n=>String(n||"").trim().toLowerCase(),Oe=n=>typeof(n==null?void 0:n.label)=="string"?n.label:"",ge=n=>{var h,l;const s=[...n];for(;s.length>0&&((h=s[0])!=null&&h.divider);)s.shift();for(;s.length>0&&((l=s[s.length-1])!=null&&l.divider);)s.pop();return s},we=(n,s)=>{const h=G(s);if(!h)return n;const l=[];for(const f of n){if(f!=null&&f.divider){l.push(f);continue}const $=G(Oe(f)),p=Array.isArray(f==null?void 0:f.items)?we(f.items,s):null,u=Array.isArray(p)&&p.length>0;($.includes(h)||u)&&l.push(u?{...f,items:ge(p)}:f)}return ge(l)},_e=(n,s,h=!1)=>{const l=G(s);if(!l||!n)return n;const f=G(n),$=h?f.startsWith(l)?0:-1:f.indexOf(l);if($<0)return n;const p=$+l.length,u=n.slice(0,$),D=n.slice($,p),O=n.slice(p);return R(De,{children:[u,a("span",{className:`${t}__match ${h?`${t}__match--weight`:""}`,children:D}),O]})};function ye({item:n,onItemClick:s}){const[h,l]=z(!1),[f,$]=z(!1),p=H(null),u=H(null),D=()=>{clearTimeout(u.current),l(!0)},O=()=>{u.current=setTimeout(()=>{l(!1)},150)},U=()=>{clearTimeout(u.current)},J=()=>{u.current=setTimeout(()=>{l(!1)},150)};return W(()=>()=>{clearTimeout(u.current)},[]),$e(()=>{if(!h||!p.current)return;const r=p.current.getBoundingClientRect(),E=r.right>window.innerWidth-8,T=r.left<8;if(E&&!T){$(!0);return}if(T&&!E){$(!1);return}E&&T&&$(r.right-window.innerWidth>8)},[h]),R("div",{className:`${t}__item-wrapper`,onMouseEnter:D,onMouseLeave:O,children:[R("button",{className:`${t}__item ${t}__item--has-submenu ${n.disabled?`${t}__item--disabled`:""}`,role:"menuitem",disabled:n.disabled,"aria-haspopup":"true","aria-expanded":h,"aria-label":n.label,children:[n.icon&&a(K,{name:n.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),a("span",{className:`${t}__item-label`,children:n.label}),a(K,{name:"CaretRight",size:12,appearance:"regular",className:`${t}__item-arrow`})]}),h&&n.items&&a("div",{ref:p,className:`${t}__submenu ${f?`${t}__submenu--left`:""}`,role:"menu","aria-orientation":"vertical",onMouseEnter:U,onMouseLeave:J,children:n.items.map((r,E)=>r.divider?a("div",{className:`${t}__divider`,children:a(ve,{})},`divider-${E}`):r.items&&r.items.length>0?a(ye,{item:r,onItemClick:s},r.id||E):R("button",{className:`${t}__item ${r.disabled?`${t}__item--disabled`:""} ${r.active?`${t}__item--active`:""} ${r.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:r.disabled,onClick:T=>s(r,T),"aria-label":r.label,children:[r.icon&&a(K,{name:r.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),a("span",{className:`${t}__item-label`,children:r.label}),r.shortcut&&a(be,{label:r.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},r.id||E))})]})}function Ge({trigger:n,items:s=[],placement:h="bottom-start",variant:l="default",searchPlaceholder:f="Search...",noResultsText:$="No results found",fullWidth:p=!1,disabled:u=!1,onOpenChange:D,className:O="",menuClassName:U="",...J}){const[r,E]=z(!1),[T,Ce]=z({}),[X,ee]=z(typeof document<"u"?document.body:null),C=H(null),N=H(null),B=H(null),j=H(null),[te,ne]=z(""),[Ne,Ee]=z(""),V=l==="search",L=l==="autosuggest",re=He.has(l),P=V?te:L?Ne:"",oe=Te(()=>re?we(s,P):s,[re,s,P]),ie=()=>{if(!N.current||typeof document>"u")return document.body;const e=N.current.closest(".uds-modal__overlay"),o=N.current.closest(".app-shell__main-content");return e instanceof HTMLElement?e:o instanceof HTMLElement?o:document.body},ae=e=>{var o;e.key==="Escape"&&(S(!1),(o=N.current)==null||o.focus())},S=e=>{e&&ee(ie()),E(e),e||(j.current=null),D&&D(e)};W(()=>{const e=o=>{C.current&&N.current&&!C.current.contains(o.target)&&!N.current.contains(o.target)&&S(!1)};return r&&(document.addEventListener("mousedown",e),document.addEventListener("keydown",ae)),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",ae)}},[r]);const ce=()=>{if(!r||!C.current||!N.current)return;const e=ie();ee(e);const o=N.current.getBoundingClientRect(),i=C.current.getBoundingClientRect(),v=e===document.body?{top:0,left:0}:e.getBoundingClientRect(),b=e===document.body?0:e.scrollTop,w=e===document.body?0:e.scrollLeft,M=e===document.body?window.innerWidth:e.clientWidth,A=e===document.body?window.innerHeight:e.clientHeight,g=8,k=8,[d="bottom",m="start"]=String(h).split("-"),y=(c,ue)=>{let F=0,I=0;const de=o.top-v.top+b,fe=o.bottom-v.top+b,me=o.left-v.left+w,he=o.right-v.left+w;return c==="bottom"&&(F=fe+k),c==="top"&&(F=de-i.height-k),c==="right"&&(I=he+k),c==="left"&&(I=me-i.width-k),(c==="bottom"||c==="top")&&(ue==="end"?I=he-i.width:I=me),(c==="left"||c==="right")&&(ue==="end"?F=fe-i.height:F=de),{top:F,left:I}},Re=c=>({top:c.top<b+g,bottom:c.top+i.height>b+A-g,left:c.left<w+g,right:c.left+i.width>w+M-g});let _=j.current??d;const Q=m;let x=y(_,Q);if(!j.current){const c=Re(x);_==="bottom"&&c.bottom?(_="top",x=y(_,Q)):_==="top"&&c.top?(_="bottom",x=y(_,Q)):_==="right"&&c.right?(_="left",x=y(_,Q)):_==="left"&&c.left&&(_="right",x=y(_,Q)),j.current=_}let Y=x.top,Z=x.left;Y=Math.max(b+g,Math.min(Y,b+A-i.height-g)),Z=Math.max(w+g,Math.min(Z,w+M-i.width-g));const q={position:e===document.body?"fixed":"absolute",top:`${Y}px`,left:`${Z}px`,width:p?`${o.width}px`:void 0,zIndex:e===modalOverlayContainer?"calc(var(--uds-elevation-modal) + 1)":void 0};Ce(c=>c.top===q.top&&c.left===q.left&&c.width===q.width&&c.position===q.position?c:q)};$e(()=>{r&&ce()},[r,h,p,X]),W(()=>{if(!r)return;const e=()=>{B.current==null&&(B.current=requestAnimationFrame(()=>{B.current=null,ce()}))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),B.current!=null&&(cancelAnimationFrame(B.current),B.current=null)}},[r]),W(()=>{if(!r){ne("");return}V&&requestAnimationFrame(()=>{var o;const e=(o=C.current)==null?void 0:o.querySelector('input[type="search"]');e==null||e.focus()})},[r,V]);const ke=e=>{var b,w,M,A,g,k,d;if(V&&e.target instanceof HTMLInputElement&&e.target.type==="search"&&((b=C.current)==null?void 0:b.contains(e.target))){if(e.key==="ArrowDown"){e.preventDefault();const m=(w=C.current)==null?void 0:w.querySelector('[role="menuitem"]:not([disabled])');m==null||m.focus()}return}const i=(M=C.current)==null?void 0:M.querySelectorAll('[role="menuitem"]:not([disabled])');if(!i||i.length===0)return;const v=Array.from(i).findIndex(m=>m===document.activeElement);switch(e.key){case"ArrowDown":{e.preventDefault();const m=v<i.length-1?v+1:0;(A=i[m])==null||A.focus();break}case"ArrowUp":{e.preventDefault();const m=v>0?v-1:i.length-1;(g=i[m])==null||g.focus();break}case"Home":e.preventDefault(),(k=i[0])==null||k.focus();break;case"End":e.preventDefault(),(d=i[i.length-1])==null||d.focus();break;case"Enter":case" ":e.preventDefault(),document.activeElement&&document.activeElement.click();break}},se=()=>{u||S(!r)},le=(e,o)=>{if(e.disabled){o.preventDefault();return}e.onClick&&e.onClick(e,o),S(!1)},Le=()=>V?a("div",{className:`${t}__search`,children:a(ze,{size:"compact",value:te,onChange:e=>ne(e.target.value),className:`${t}__search-input`,placeholder:f,"aria-label":f})}):null,Se=()=>{var e,o,i,v,b;if(!n)return null;if(pe.isValidElement(n)){const w=(e=n.props)==null?void 0:e.onClick,M=(o=n.props)==null?void 0:o.onChange,A=(i=n.props)==null?void 0:i.onFocus,g=(v=n.props)==null?void 0:v.onKeyDown,k=pe.cloneElement(n,{disabled:u||((b=n.props)==null?void 0:b.disabled),"aria-disabled":u||void 0,onClick:d=>{u||(L||(d.preventDefault(),d.stopPropagation()),w&&w(d),L?S(!0):se())},onFocus:d=>{A&&A(d),!(u||!L)&&S(!0)},onChange:d=>{if(M&&M(d),u||!L)return;const m=d==null?void 0:d.target,y=m&&typeof m=="object"&&"value"in m?String(m.value??""):"";Ee(y),S(!0)},onKeyDown:d=>{var m;if(g&&g(d),!(u||!L)){if(d.key==="Escape"){S(!1);return}if(d.key==="ArrowDown"){d.preventDefault();const y=(m=C.current)==null?void 0:m.querySelector('[role="menuitem"]:not([disabled])');y==null||y.focus()}}},"aria-haspopup":"true","aria-expanded":r});return a("div",{ref:N,className:`${t}__trigger`,children:k})}return a("div",{ref:N,className:`${t}__trigger`,onClick:se,children:n})},Me=[t,r&&`${t}--open`,p&&`${t}--full-width`,u&&`${t}--disabled`,O].filter(Boolean).join(" "),Ae=[`${t}__menu`,`${t}__menu--portal`,l==="search"&&`${t}__menu--search`,p&&`${t}__menu--full-width`,U].filter(Boolean).join(" ");return R("div",{className:Me,...J,children:[Se(),r&&!u&&X?xe(R("div",{ref:C,className:Ae,style:T,role:"menu","aria-orientation":"vertical",onKeyDown:ke,children:[Le(),oe.length===0?a("div",{className:`${t}__empty`,children:$}):null,oe.map((e,o)=>e.divider?a("div",{className:`${t}__divider`,children:a(ve,{})},`divider-${o}`):e.items&&e.items.length>0?a(ye,{item:e,onItemClick:le},e.id||o):e.type==="toggle"?R("div",{className:`${t}__item ${t}__item--toggle ${e.disabled?`${t}__item--disabled`:""}`,role:"menuitemcheckbox","aria-checked":!!e.checked,"aria-label":e.label,children:[e.icon&&a(K,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),a("span",{className:`${t}__item-label`,children:_e(e.label,P,L)}),a(Be,{checked:!!e.checked,size:"small",disabled:e.disabled,onChange:i=>{e.onChange&&e.onChange(i)},className:`${t}__item-toggle`})]},e.id||o):R("button",{className:`${t}__item ${e.disabled?`${t}__item--disabled`:""} ${e.active?`${t}__item--active`:""} ${e.destructive?`${t}__item--destructive`:""}`,role:"menuitem",disabled:e.disabled,onClick:i=>le(e,i),"aria-label":e.label,children:[e.icon&&a(K,{name:e.icon,size:16,appearance:"regular",className:`${t}__item-icon`}),a("span",{className:`${t}__item-label`,children:_e(e.label,P,L)}),e.shortcut&&a(be,{label:e.shortcut,appearance:"light",className:`${t}__item-shortcut`})]},e.id||o))]}),X):null]})}export{Ge as default};
@@ -1,3 +1,4 @@
1
1
  export { Link } from "./Link";
2
2
  export { default } from "./Link";
3
+ export { Link as UdsLink } from "./Link";
3
4
  export type { LinkProps, LinkAppearance, LinkUnderline } from "./Link.types";
@@ -1168,6 +1168,52 @@ export declare const COMPONENT_API: {
1168
1168
  };
1169
1169
  readonly antiPatterns: readonly [];
1170
1170
  };
1171
+ readonly Link: {
1172
+ readonly name: "Link";
1173
+ readonly source: "src/design-system/components/Link/Link.spec.ts";
1174
+ readonly tier: 1;
1175
+ readonly purpose: "Provides inline navigation and action links using semantic text-link tokens.";
1176
+ readonly props: {
1177
+ readonly appearance: {
1178
+ readonly type: "enum";
1179
+ readonly values: readonly ["primary", "secondary"];
1180
+ readonly default: "primary";
1181
+ };
1182
+ readonly underline: {
1183
+ readonly type: "enum";
1184
+ readonly values: readonly ["always", "hover", "none"];
1185
+ readonly default: "always";
1186
+ };
1187
+ readonly disabled: {
1188
+ readonly type: "boolean";
1189
+ readonly default: false;
1190
+ };
1191
+ };
1192
+ readonly defaults: {
1193
+ readonly appearance: "primary";
1194
+ readonly underline: "always";
1195
+ readonly disabled: false;
1196
+ };
1197
+ readonly states: readonly ["default", "hover", "active", "visited", "focus", "disabled"];
1198
+ readonly tokensUsed: readonly ["--uds-text-link-primary-default", "--uds-text-link-primary-hover", "--uds-text-link-primary-active", "--uds-text-link-primary-visited", "--uds-text-link-secondary-default", "--uds-text-link-secondary-hover", "--uds-text-link-secondary-active", "--uds-text-link-secondary-visited", "--uds-focus-ring-width", "--uds-focus-ring-border", "--uds-focus-ring-offset"];
1199
+ readonly accessibility: {
1200
+ readonly role: "link";
1201
+ readonly keyboard: readonly ["Enter activates link", "Tab/Shift+Tab moves focus"];
1202
+ };
1203
+ readonly composition: {
1204
+ readonly allowedChildren: readonly [];
1205
+ readonly allowedParents: readonly [];
1206
+ readonly disallowedChildren: readonly [];
1207
+ };
1208
+ readonly aliases: {
1209
+ readonly props: {};
1210
+ };
1211
+ readonly ambiguity: {
1212
+ readonly propNameCollisions: readonly [];
1213
+ readonly hadAliasNormalization: false;
1214
+ };
1215
+ readonly antiPatterns: readonly ["Using Link for button-like actions that do not navigate.", "Relying on color only without visible text for meaning."];
1216
+ };
1171
1217
  readonly Menu: {
1172
1218
  readonly name: "Menu";
1173
1219
  readonly source: "src/design-system/components/Menu/Menu.spec.ts";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={Accordion:{name:"Accordion",source:"src/design-system/components/Accordion/Accordion.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ActionMenu:{name:"ActionMenu",source:"src/design-system/components/ActionMenu/ActionMenu.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Menu","Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},AppShell:{name:"AppShell",source:"src/design-system/components/AppShell/AppShell.spec.ts",tier:1,purpose:"Top-level application shell that composes menu, content, and main regions for consistent page architecture.",props:{brand:{type:"enum",values:["default","comphealth","weatherby","connect","locumsmart","modio","gms","wireframe"],default:"default"},theme:{type:"enum",values:["light","dark"],default:"light"}},defaults:{brand:"default",theme:"light"},states:["default"],tokensUsed:["--uds-surface-primary","--uds-text-primary","--uds-border-primary","--uds-spacing-24"],accessibility:{role:"application",keyboard:["Tab"]},composition:{allowedChildren:["Menu","Container","Layout","Text","Button"],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Avatar:{name:"Avatar",source:"src/design-system/components/Avatar/Avatar.spec.ts",props:{size:{type:"string",default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Badge:{name:"Badge",source:"src/design-system/components/Badge/Badge.spec.ts",props:{variant:{type:"enum",values:["blue","cyan","green","magenta","indigo","rose","neutral","orange","purple","red","sky","yellow","inverse","lime"],default:"red"},appearance:{type:"enum",values:["solid","outlined"],default:"solid"},rounded:{type:"boolean",default:!0}},defaults:{variant:"red",appearance:"solid",rounded:!0},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Branding:{name:"Branding",source:"src/design-system/components/Branding/Branding.spec.ts",props:{size:{type:"string",default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Breadcrumb:{name:"Breadcrumb",source:"src/design-system/components/Breadcrumb/Breadcrumb.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Button:{name:"Button",source:"src/design-system/components/Button/Button.spec.ts",props:{layout:{type:"enum",values:["label-only","icon-left","icon-right","icon-only","only"],default:"label-only"},appearance:{type:"enum",values:["primary","soft","outline","text","ghost","disabled","destructive"],default:"primary"},size:{type:"enum",values:["large","default","small","xsmall"],default:"default"}},defaults:{layout:"label-only",appearance:"primary",size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container","Layout","Modal","Table","Tabs"],disallowedChildren:["Button"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ButtonGroup:{name:"ButtonGroup",source:"src/design-system/components/ButtonGroup/ButtonGroup.spec.ts",tier:2,purpose:"Groups related button actions with consistent spacing and orientation.",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},size:{type:"enum",values:["xsmall","small","default","large"],default:"default"}},defaults:{orientation:"horizontal",size:"default"},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16"],accessibility:{role:"group",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not set button appearances in ButtonGroup options; grouped buttons are outline only.","Do not mix unrelated actions in one ButtonGroup."]},Calendar:{name:"Calendar",source:"src/design-system/components/Calendar/Calendar.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Checkbox:{name:"Checkbox",source:"src/design-system/components/Checkbox/Checkbox.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},CheckboxGroup:{name:"CheckboxGroup",source:"src/design-system/components/CheckboxGroup/CheckboxGroup.spec.ts",tier:2,purpose:"Provides grouped multi-select choices using Checkbox controls.",props:{orientation:{type:"enum",values:["vertical","horizontal"],default:"vertical"},disabled:{type:"boolean",default:!1}},defaults:{orientation:"vertical",disabled:!1},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16","--uds-text-primary"],accessibility:{role:"group",keyboard:["Tab","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use CheckboxGroup when only one value may be selected.","Do not hide option labels."]},Checklist:{name:"Checklist",source:"src/design-system/components/Checklist/Checklist.spec.ts",tier:2,purpose:"Sidebar checklist for multi-step flows with completion status.",props:{},defaults:{},states:["default","active","completed","disabled"],tokensUsed:["--uds-surface-primary","--uds-border-primary","--uds-text-primary","--uds-text-secondary","--uds-surface-brand-primary","--uds-spacing-8","--uds-spacing-12","--uds-spacing-20","--uds-spacing-24"],accessibility:{role:"navigation",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Chip:{name:"Chip",source:"src/design-system/components/Chip/Chip.spec.ts",props:{selected:{type:"boolean",default:!1},shape:{type:"enum",values:["pill","rounded"],default:"pill"},size:{type:"enum",values:["default","compact","mini"],default:"default"},iconPlacement:{type:"enum",values:["both","left","right","none"],default:"none"},badgeVariant:{type:"string",default:"sky"}},defaults:{selected:!1,shape:"pill",size:"default",iconPlacement:"none",badgeVariant:"sky"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{iconplacement:"iconPlacement"}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Code:{name:"Code",source:"src/design-system/components/Code/Code.spec.ts",props:{language:{type:"enum",values:["markup","css","clike","javascript","typescript","tsx","jsx","json","bash","sql"],default:"javascript"},inline:{type:"enum",values:[!0,!1],default:!1}},defaults:{language:"javascript",inline:!1},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Container:{name:"Container",source:"src/design-system/components/Container/Container.spec.ts",tier:2,purpose:"Provides a reusable content wrapper with optional filled or transparent surface styles and standardized padding.",props:{appearance:{type:"enum",values:["default","transparent"],default:"transparent"},padding:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"},paddingX:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"},paddingY:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"}},defaults:{appearance:"transparent",padding:"large",paddingX:"large",paddingY:"large"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-border-width-1","--uds-border-primary","--uds-radius-8","--uds-spacing-0","--uds-spacing-8","--uds-spacing-12","--uds-spacing-16","--uds-spacing-24","--uds-spacing-32"],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:["Layout","Table","Text","Button","Field","Divider","Tag"],allowedParents:["AppShell","root"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use Container for semantic landmarks where <section>, <article>, or <aside> is required.","Do not hardcode spacing values on top of Container padding variants."]},CurrencyInput:{name:"CurrencyInput",source:"src/design-system/components/CurrencyInput/CurrencyInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DateInput:{name:"DateInput",source:"src/design-system/components/DateInput/DateInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Datepicker:{name:"Datepicker",source:"src/design-system/components/Datepicker/Datepicker.spec.ts",props:{size:{type:"string",default:"desktop"}},defaults:{size:"desktop"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DateRangeInput:{name:"DateRangeInput",source:"src/design-system/components/DateRangeInput/DateRangeInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Dialog:{name:"Dialog",source:"src/design-system/components/Dialog/Dialog.spec.ts",props:{intent:{type:"string",default:"info"},confirmLabel:{type:"string",default:"Confirm"},cancelLabel:{type:"string",default:"Cancel"}},defaults:{intent:"info",confirmLabel:"Confirm",cancelLabel:"Cancel"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:["Dialog"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Divider:{name:"Divider",source:"src/design-system/components/Divider/Divider.spec.ts",props:{alignment:{type:"enum",values:["left","center","right"],default:"center"},variant:{type:"enum",values:["line","solid"],default:"line"}},defaults:{alignment:"center",variant:"line"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Container","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DotStatus:{name:"DotStatus",source:"src/design-system/components/DotStatus/DotStatus.spec.ts",props:{variant:{type:"enum",values:["red","blue","inverse","orange","sky","indigo","rose","neutral","celery","lime","yellow","green","cyan","purple","fuchsia"],default:"blue"},size:{type:"enum",values:["small","medium","large"],default:"medium"},outline:{type:"boolean",default:!1}},defaults:{variant:"blue",size:"medium",outline:!1},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Dropdown:{name:"Dropdown",source:"src/design-system/components/Dropdown/Dropdown.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},placeholder:{type:"string",default:"Select an option"},placement:{type:"string",default:"bottom-start"}},defaults:{size:"default",state:"default",placeholder:"Select an option",placement:"bottom-start"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Menu","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},EmptyState:{name:"EmptyState",source:"src/design-system/components/EmptyState/EmptyState.spec.ts",tier:2,purpose:"Provide a clear, branded fallback when a section has no content, data, or search results.",props:{align:{type:"enum",values:["left","center"],default:"center"}},defaults:{align:"center"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-border-primary","--uds-radius-8","--uds-text-primary","--uds-text-secondary","--uds-spacing-24"],accessibility:{role:"region",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use EmptyState when content is loading; use a loading indicator instead.","Do not place multiple primary actions inside a single EmptyState."]},EventCard:{name:"EventCard",source:"src/design-system/components/EventCard/EventCard.spec.ts",props:{title:{type:"string",default:"Title"},type:{type:"string",default:"travel"},status:{type:"string",default:"active"}},defaults:{title:"Title",type:"travel",status:"active"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Field:{name:"Field",source:"src/design-system/components/Field/Field.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["TextInput","Input","Dropdown","Datepicker","Textarea","Checkbox","Radio","Toggle","Slider","FileUpload"],allowedParents:["Container","Modal","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},FileUpload:{name:"FileUpload",source:"src/design-system/components/FileUpload/FileUpload.spec.ts",props:{instructionText:{type:"string",default:"Drop files here or click to upload"}},defaults:{instructionText:"Drop files here or click to upload"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Flex:{name:"Flex",source:"src/design-system/components/Flex/Flex.spec.ts",tier:1,purpose:"Creates token-driven flexbox layouts with controlled direction, alignment, wrapping, and spacing.",props:{direction:{type:"enum",values:["row","column"],default:"row"},justifyContent:{type:"enum",values:["flex-start","center","flex-end","space-between","space-around","space-evenly"],default:"flex-start"},alignItems:{type:"enum",values:["stretch","flex-start","center","flex-end","baseline"],default:"stretch"},wrap:{type:"enum",values:["nowrap","wrap","wrap-reverse"],default:"nowrap"}},defaults:{direction:"row",justifyContent:"flex-start",alignItems:"stretch",wrap:"nowrap"},states:["default"],tokensUsed:["--uds-gap-*","--uds-spacing-*"],accessibility:{role:"generic",keyboard:["Tab"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Icon:{name:"Icon",source:"src/design-system/components/Icon/Icon.spec.ts",props:{appearance:{type:"string",default:"regular"}},defaults:{appearance:"regular"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Menu"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ImageAspect:{name:"ImageAspect",source:"src/design-system/components/ImageAspect/ImageAspect.spec.ts",props:{aspectratio:{type:"enum",values:["square","video","4-3","3-2","21-9","portrait","auto"]},ratio:{type:"string",default:"square"}},defaults:{ratio:"square"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Key:{name:"Key",source:"src/design-system/components/Key/Key.spec.ts",props:{appearance:{type:"enum",values:["light","dark"],default:"light"}},defaults:{appearance:"light"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Layout:{name:"Layout",source:"src/design-system/components/Layout/Layout.spec.ts",tier:2,purpose:"Creates token-driven flexbox layouts with controlled direction, alignment, wrapping, and width behavior.",props:{fullWidth:{type:"boolean",default:!1},appearance:{type:"enum",values:["full","equal","right","left"],default:"full"}},defaults:{fullWidth:!1,appearance:"full"},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Menu:{name:"Menu",source:"src/design-system/components/Menu/Menu.spec.ts",props:{identity:{type:"string",default:"design-system"}},defaults:{identity:"design-system"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["ActionMenu","Dropdown","Toggle","Text","Icon"],allowedParents:["AppShell","root"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},MicroCalendar:{name:"MicroCalendar",source:"src/design-system/components/MicroCalendar/MicroCalendar.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Modal:{name:"Modal",source:"src/design-system/components/Modal/Modal.spec.ts",props:{size:{type:"enum",values:["small","default","large","fullscreen"],default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Text","Button","Divider","Field","TextInput","Dropdown","Datepicker","Textarea","Tag"],allowedParents:["AppShell","Container","root"],disallowedChildren:["Modal"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},NumberInput:{name:"NumberInput",source:"src/design-system/components/NumberInput/NumberInput.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},type:{type:"string",default:"number"}},defaults:{size:"default",state:"default",type:"number"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Pagination:{name:"Pagination",source:"src/design-system/components/Pagination/Pagination.spec.ts",props:{variant:{type:"string",default:"default"}},defaults:{variant:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},PasswordInput:{name:"PasswordInput",source:"src/design-system/components/PasswordInput/PasswordInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},PhoneInput:{name:"PhoneInput",source:"src/design-system/components/PhoneInput/PhoneInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProgressCircle:{name:"ProgressCircle",source:"src/design-system/components/ProgressCircle/ProgressCircle.spec.ts",props:{shape:{type:"enum",values:["circle","half-circle"],default:"circle"},size:{type:"enum",values:["xxs","xs","sm","md","lg"],default:"md"}},defaults:{shape:"circle",size:"md"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProgressIndicator:{name:"ProgressIndicator",source:"src/design-system/components/ProgressIndicator/ProgressIndicator.spec.ts",props:{labelPosition:{type:"enum",values:["false","right","bottom","top-floating","bottom-floating"],default:!1},variant:{type:"enum",values:["default","blue","green","success","orange","warning","red","error","purple"],default:"default"},size:{type:"enum",values:["small","medium","large"],default:"medium"}},defaults:{labelPosition:!1,variant:"default",size:"medium"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProvidersCard:{name:"ProvidersCard",source:"src/design-system/components/ProvidersCard/ProvidersCard.spec.ts",tier:3,purpose:"Displays provider identity, status, metadata, tags, and quick actions in a compact card.",props:{statusVariant:{type:"enum",values:["green","orange","red","blue","neutral"],default:"green"}},defaults:{statusVariant:"green"},states:["default"],tokensUsed:["--uds-spacing-16","--uds-spacing-12","--uds-border-width-1","--uds-border-primary","--uds-radius-8","--uds-surface-primary"],accessibility:{role:"group",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use ProvidersCard for tabular datasets where rows and sorting are required.","Do not replace action buttons with non-interactive text when actions are expected."]},Radio:{name:"Radio",source:"src/design-system/components/Radio/Radio.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},RadioGroup:{name:"RadioGroup",source:"src/design-system/components/RadioGroup/RadioGroup.spec.ts",tier:2,purpose:"Provides grouped single-select choices using Radio controls.",props:{orientation:{type:"enum",values:["vertical","horizontal"],default:"vertical"},disabled:{type:"boolean",default:!1}},defaults:{orientation:"vertical",disabled:!1},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16","--uds-text-primary"],accessibility:{role:"radiogroup",keyboard:["Tab","ArrowUp","ArrowDown","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use RadioGroup when users can select more than one option.","Do not omit visible labels when context is unclear."]},ScrollView:{name:"ScrollView",source:"src/design-system/components/ScrollView/ScrollView.spec.ts",tier:2,purpose:"Provides a container with controlled scroll direction.",props:{direction:{type:"enum",values:["vertical","horizontal"],default:"vertical"}},defaults:{direction:"vertical"},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},SearchInput:{name:"SearchInput",source:"src/design-system/components/SearchInput/SearchInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},SectionHeader:{name:"SectionHeader",source:"src/design-system/components/SectionHeader/SectionHeader.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Slider:{name:"Slider",source:"src/design-system/components/Slider/Slider.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Statistics:{name:"Statistics",source:"src/design-system/components/Statistics/Statistics.spec.ts",tier:2,purpose:"Displays a KPI value with optional context, trend, and icon.",props:{trend:{type:"enum",values:["up","down","neutral"],default:"neutral"},iconAccent:{type:"enum",values:["amber","aqua","blue","cyan","emerald","fuchsia","green","indigo","lime","magenta","orange","purple","red","rose","sky","violet","yellow"],default:"blue"}},defaults:{trend:"neutral",iconAccent:"blue"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-surface-primary","--uds-border-primary","--uds-radius-8","--uds-text-secondary","--uds-system-success-primary","--uds-system-destructive-primary"],accessibility:{role:"status",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use Statistics for interactive controls.","Do not place long paragraph content inside helper text."]},Status:{name:"Status",source:"src/design-system/components/Status/Status.spec.ts",props:{appearance:{type:"enum",values:["light-gray","white","transparent"],default:"light-gray"},shape:{type:"enum",values:["pill","rounded"],default:"pill"},variant:{type:"string",default:"blue"}},defaults:{appearance:"light-gray",shape:"pill",variant:"blue"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Steps:{name:"Steps",source:"src/design-system/components/Steps/Steps.spec.ts",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},status:{type:"enum",values:["complete","active","incomplete","disabled","error"]},size:{type:"enum",values:["default","compact"],default:"default"}},defaults:{orientation:"horizontal",size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Table:{name:"Table",source:"src/design-system/components/Table/Table.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Tag","Status","Avatar","Button","ActionMenu","ProgressIndicator","DotStatus"],allowedParents:["Container","Tabs"],disallowedChildren:["Table"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tabs:{name:"Tabs",source:"src/design-system/components/Tabs/Tabs.spec.ts",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},appearance:{type:"string",default:"underline"},tagVariant:{type:"string",default:"red"}},defaults:{orientation:"horizontal",appearance:"underline",tagVariant:"red"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Text","Tag","Button","Table","Field"],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tag:{name:"Tag",source:"src/design-system/components/Tag/Tag.spec.ts",props:{appearance:{type:"enum",values:["label-only","icon-left"],default:"label-only"},size:{type:"enum",values:["compact","default"],default:"compact"},color:{type:"enum",values:["transparent","neutral","red","orange","yellow","emerald","green","sky","cyan","blue","indigo","purple","fuchsia","magenta","inverse"],default:"transparent"},label:{type:"string",default:"Label"}},defaults:{appearance:"label-only",size:"compact",color:"transparent",label:"Label"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Container","Modal","Table","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Text:{name:"Text",source:"src/design-system/components/Text/Text.spec.ts",tier:2,purpose:"Applies UDS typography variants with governed weight and leading options while preserving semantic tags via `as`.",props:{variant:{type:"enum",values:["display-128","display-96","display-72","display-60","display-48","display-36","heading-32","heading-28","heading-24","body-20","body-16","body-14","body-12"],default:"body-16"},weight:{type:"enum",values:["regular","medium","semibold","bold"],default:"regular"},leading:{type:"enum",values:["tight","regular","loose"],default:"regular"}},defaults:{variant:"body-16",weight:"regular",leading:"regular"},states:["default"],tokensUsed:["--uds-font-family","--uds-font-size-*","--uds-line-*","--uds-font-weight*","--uds-type-*"],accessibility:{role:"text",keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container","Layout","Menu","Modal","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not set font-size/line-height directly on consumer elements; use Text variant + leading.","Do not reintroduce tailwind-like typography utilities that bypass semantic tokens."]},Textarea:{name:"Textarea",source:"src/design-system/components/Textarea/Textarea.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"}},defaults:{size:"default",state:"default"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},TextInput:{name:"TextInput",source:"src/design-system/components/TextInput/TextInput.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},type:{type:"string",default:"text"},iconPosition:{type:"string",default:"right"}},defaults:{size:"default",state:"default",type:"text",iconPosition:"right"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},TimeInput:{name:"TimeInput",source:"src/design-system/components/TimeInput/TimeInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toast:{name:"Toast",source:"src/design-system/components/Toast/Toast.spec.ts",props:{variant:{type:"enum",values:["success","error","warning","info"],default:"info"}},defaults:{variant:"info"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:["Modal","Dialog"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toggle:{name:"Toggle",source:"src/design-system/components/Toggle/Toggle.spec.ts",props:{size:{type:"enum",values:["large","small"],default:"large"}},defaults:{size:"large"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Menu"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toolbar:{name:"Toolbar",source:"src/design-system/components/Toolbar/Toolbar.spec.ts",tier:2,purpose:"Top action bar with left and right action regions and centered title/branding.",props:{},defaults:{},states:["default"],tokensUsed:["--uds-surface-primary","--uds-border-primary","--uds-spacing-8","--uds-spacing-12","--uds-spacing-16"],accessibility:{role:"toolbar",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tooltip:{name:"Tooltip",source:"src/design-system/components/Tooltip/Tooltip.spec.ts",props:{placement:{type:"enum",values:["top","bottom","left","right"],default:"top"}},defaults:{placement:"top"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]}};exports.COMPONENT_API=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={Accordion:{name:"Accordion",source:"src/design-system/components/Accordion/Accordion.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ActionMenu:{name:"ActionMenu",source:"src/design-system/components/ActionMenu/ActionMenu.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Menu","Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},AppShell:{name:"AppShell",source:"src/design-system/components/AppShell/AppShell.spec.ts",tier:1,purpose:"Top-level application shell that composes menu, content, and main regions for consistent page architecture.",props:{brand:{type:"enum",values:["default","comphealth","weatherby","connect","locumsmart","modio","gms","wireframe"],default:"default"},theme:{type:"enum",values:["light","dark"],default:"light"}},defaults:{brand:"default",theme:"light"},states:["default"],tokensUsed:["--uds-surface-primary","--uds-text-primary","--uds-border-primary","--uds-spacing-24"],accessibility:{role:"application",keyboard:["Tab"]},composition:{allowedChildren:["Menu","Container","Layout","Text","Button"],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Avatar:{name:"Avatar",source:"src/design-system/components/Avatar/Avatar.spec.ts",props:{size:{type:"string",default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Badge:{name:"Badge",source:"src/design-system/components/Badge/Badge.spec.ts",props:{variant:{type:"enum",values:["blue","cyan","green","magenta","indigo","rose","neutral","orange","purple","red","sky","yellow","inverse","lime"],default:"red"},appearance:{type:"enum",values:["solid","outlined"],default:"solid"},rounded:{type:"boolean",default:!0}},defaults:{variant:"red",appearance:"solid",rounded:!0},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Branding:{name:"Branding",source:"src/design-system/components/Branding/Branding.spec.ts",props:{size:{type:"string",default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Breadcrumb:{name:"Breadcrumb",source:"src/design-system/components/Breadcrumb/Breadcrumb.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Button:{name:"Button",source:"src/design-system/components/Button/Button.spec.ts",props:{layout:{type:"enum",values:["label-only","icon-left","icon-right","icon-only","only"],default:"label-only"},appearance:{type:"enum",values:["primary","soft","outline","text","ghost","disabled","destructive"],default:"primary"},size:{type:"enum",values:["large","default","small","xsmall"],default:"default"}},defaults:{layout:"label-only",appearance:"primary",size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container","Layout","Modal","Table","Tabs"],disallowedChildren:["Button"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ButtonGroup:{name:"ButtonGroup",source:"src/design-system/components/ButtonGroup/ButtonGroup.spec.ts",tier:2,purpose:"Groups related button actions with consistent spacing and orientation.",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},size:{type:"enum",values:["xsmall","small","default","large"],default:"default"}},defaults:{orientation:"horizontal",size:"default"},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16"],accessibility:{role:"group",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not set button appearances in ButtonGroup options; grouped buttons are outline only.","Do not mix unrelated actions in one ButtonGroup."]},Calendar:{name:"Calendar",source:"src/design-system/components/Calendar/Calendar.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Checkbox:{name:"Checkbox",source:"src/design-system/components/Checkbox/Checkbox.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},CheckboxGroup:{name:"CheckboxGroup",source:"src/design-system/components/CheckboxGroup/CheckboxGroup.spec.ts",tier:2,purpose:"Provides grouped multi-select choices using Checkbox controls.",props:{orientation:{type:"enum",values:["vertical","horizontal"],default:"vertical"},disabled:{type:"boolean",default:!1}},defaults:{orientation:"vertical",disabled:!1},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16","--uds-text-primary"],accessibility:{role:"group",keyboard:["Tab","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use CheckboxGroup when only one value may be selected.","Do not hide option labels."]},Checklist:{name:"Checklist",source:"src/design-system/components/Checklist/Checklist.spec.ts",tier:2,purpose:"Sidebar checklist for multi-step flows with completion status.",props:{},defaults:{},states:["default","active","completed","disabled"],tokensUsed:["--uds-surface-primary","--uds-border-primary","--uds-text-primary","--uds-text-secondary","--uds-surface-brand-primary","--uds-spacing-8","--uds-spacing-12","--uds-spacing-20","--uds-spacing-24"],accessibility:{role:"navigation",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Chip:{name:"Chip",source:"src/design-system/components/Chip/Chip.spec.ts",props:{selected:{type:"boolean",default:!1},shape:{type:"enum",values:["pill","rounded"],default:"pill"},size:{type:"enum",values:["default","compact","mini"],default:"default"},iconPlacement:{type:"enum",values:["both","left","right","none"],default:"none"},badgeVariant:{type:"string",default:"sky"}},defaults:{selected:!1,shape:"pill",size:"default",iconPlacement:"none",badgeVariant:"sky"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{iconplacement:"iconPlacement"}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Code:{name:"Code",source:"src/design-system/components/Code/Code.spec.ts",props:{language:{type:"enum",values:["markup","css","clike","javascript","typescript","tsx","jsx","json","bash","sql"],default:"javascript"},inline:{type:"enum",values:[!0,!1],default:!1}},defaults:{language:"javascript",inline:!1},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Container:{name:"Container",source:"src/design-system/components/Container/Container.spec.ts",tier:2,purpose:"Provides a reusable content wrapper with optional filled or transparent surface styles and standardized padding.",props:{appearance:{type:"enum",values:["default","transparent"],default:"transparent"},padding:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"},paddingX:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"},paddingY:{type:"enum",values:["none","xsmall","small","default","large","xlarge"],default:"large"}},defaults:{appearance:"transparent",padding:"large",paddingX:"large",paddingY:"large"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-border-width-1","--uds-border-primary","--uds-radius-8","--uds-spacing-0","--uds-spacing-8","--uds-spacing-12","--uds-spacing-16","--uds-spacing-24","--uds-spacing-32"],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:["Layout","Table","Text","Button","Field","Divider","Tag"],allowedParents:["AppShell","root"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use Container for semantic landmarks where <section>, <article>, or <aside> is required.","Do not hardcode spacing values on top of Container padding variants."]},CurrencyInput:{name:"CurrencyInput",source:"src/design-system/components/CurrencyInput/CurrencyInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DateInput:{name:"DateInput",source:"src/design-system/components/DateInput/DateInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Datepicker:{name:"Datepicker",source:"src/design-system/components/Datepicker/Datepicker.spec.ts",props:{size:{type:"string",default:"desktop"}},defaults:{size:"desktop"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DateRangeInput:{name:"DateRangeInput",source:"src/design-system/components/DateRangeInput/DateRangeInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Dialog:{name:"Dialog",source:"src/design-system/components/Dialog/Dialog.spec.ts",props:{intent:{type:"string",default:"info"},confirmLabel:{type:"string",default:"Confirm"},cancelLabel:{type:"string",default:"Cancel"}},defaults:{intent:"info",confirmLabel:"Confirm",cancelLabel:"Cancel"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:["Dialog"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Divider:{name:"Divider",source:"src/design-system/components/Divider/Divider.spec.ts",props:{alignment:{type:"enum",values:["left","center","right"],default:"center"},variant:{type:"enum",values:["line","solid"],default:"line"}},defaults:{alignment:"center",variant:"line"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Container","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},DotStatus:{name:"DotStatus",source:"src/design-system/components/DotStatus/DotStatus.spec.ts",props:{variant:{type:"enum",values:["red","blue","inverse","orange","sky","indigo","rose","neutral","celery","lime","yellow","green","cyan","purple","fuchsia"],default:"blue"},size:{type:"enum",values:["small","medium","large"],default:"medium"},outline:{type:"boolean",default:!1}},defaults:{variant:"blue",size:"medium",outline:!1},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Dropdown:{name:"Dropdown",source:"src/design-system/components/Dropdown/Dropdown.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},placeholder:{type:"string",default:"Select an option"},placement:{type:"string",default:"bottom-start"}},defaults:{size:"default",state:"default",placeholder:"Select an option",placement:"bottom-start"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Menu","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},EmptyState:{name:"EmptyState",source:"src/design-system/components/EmptyState/EmptyState.spec.ts",tier:2,purpose:"Provide a clear, branded fallback when a section has no content, data, or search results.",props:{align:{type:"enum",values:["left","center"],default:"center"}},defaults:{align:"center"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-border-primary","--uds-radius-8","--uds-text-primary","--uds-text-secondary","--uds-spacing-24"],accessibility:{role:"region",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use EmptyState when content is loading; use a loading indicator instead.","Do not place multiple primary actions inside a single EmptyState."]},EventCard:{name:"EventCard",source:"src/design-system/components/EventCard/EventCard.spec.ts",props:{title:{type:"string",default:"Title"},type:{type:"string",default:"travel"},status:{type:"string",default:"active"}},defaults:{title:"Title",type:"travel",status:"active"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Field:{name:"Field",source:"src/design-system/components/Field/Field.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["TextInput","Input","Dropdown","Datepicker","Textarea","Checkbox","Radio","Toggle","Slider","FileUpload"],allowedParents:["Container","Modal","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},FileUpload:{name:"FileUpload",source:"src/design-system/components/FileUpload/FileUpload.spec.ts",props:{instructionText:{type:"string",default:"Drop files here or click to upload"}},defaults:{instructionText:"Drop files here or click to upload"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Flex:{name:"Flex",source:"src/design-system/components/Flex/Flex.spec.ts",tier:1,purpose:"Creates token-driven flexbox layouts with controlled direction, alignment, wrapping, and spacing.",props:{direction:{type:"enum",values:["row","column"],default:"row"},justifyContent:{type:"enum",values:["flex-start","center","flex-end","space-between","space-around","space-evenly"],default:"flex-start"},alignItems:{type:"enum",values:["stretch","flex-start","center","flex-end","baseline"],default:"stretch"},wrap:{type:"enum",values:["nowrap","wrap","wrap-reverse"],default:"nowrap"}},defaults:{direction:"row",justifyContent:"flex-start",alignItems:"stretch",wrap:"nowrap"},states:["default"],tokensUsed:["--uds-gap-*","--uds-spacing-*"],accessibility:{role:"generic",keyboard:["Tab"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Icon:{name:"Icon",source:"src/design-system/components/Icon/Icon.spec.ts",props:{appearance:{type:"string",default:"regular"}},defaults:{appearance:"regular"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Menu"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ImageAspect:{name:"ImageAspect",source:"src/design-system/components/ImageAspect/ImageAspect.spec.ts",props:{aspectratio:{type:"enum",values:["square","video","4-3","3-2","21-9","portrait","auto"]},ratio:{type:"string",default:"square"}},defaults:{ratio:"square"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Key:{name:"Key",source:"src/design-system/components/Key/Key.spec.ts",props:{appearance:{type:"enum",values:["light","dark"],default:"light"}},defaults:{appearance:"light"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Layout:{name:"Layout",source:"src/design-system/components/Layout/Layout.spec.ts",tier:2,purpose:"Creates token-driven flexbox layouts with controlled direction, alignment, wrapping, and width behavior.",props:{fullWidth:{type:"boolean",default:!1},appearance:{type:"enum",values:["full","equal","right","left"],default:"full"}},defaults:{fullWidth:!1,appearance:"full"},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Link:{name:"Link",source:"src/design-system/components/Link/Link.spec.ts",tier:1,purpose:"Provides inline navigation and action links using semantic text-link tokens.",props:{appearance:{type:"enum",values:["primary","secondary"],default:"primary"},underline:{type:"enum",values:["always","hover","none"],default:"always"},disabled:{type:"boolean",default:!1}},defaults:{appearance:"primary",underline:"always",disabled:!1},states:["default","hover","active","visited","focus","disabled"],tokensUsed:["--uds-text-link-primary-default","--uds-text-link-primary-hover","--uds-text-link-primary-active","--uds-text-link-primary-visited","--uds-text-link-secondary-default","--uds-text-link-secondary-hover","--uds-text-link-secondary-active","--uds-text-link-secondary-visited","--uds-focus-ring-width","--uds-focus-ring-border","--uds-focus-ring-offset"],accessibility:{role:"link",keyboard:["Enter activates link","Tab/Shift+Tab moves focus"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Using Link for button-like actions that do not navigate.","Relying on color only without visible text for meaning."]},Menu:{name:"Menu",source:"src/design-system/components/Menu/Menu.spec.ts",props:{identity:{type:"string",default:"design-system"}},defaults:{identity:"design-system"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["ActionMenu","Dropdown","Toggle","Text","Icon"],allowedParents:["AppShell","root"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},MicroCalendar:{name:"MicroCalendar",source:"src/design-system/components/MicroCalendar/MicroCalendar.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Modal:{name:"Modal",source:"src/design-system/components/Modal/Modal.spec.ts",props:{size:{type:"enum",values:["small","default","large","fullscreen"],default:"default"}},defaults:{size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Text","Button","Divider","Field","TextInput","Dropdown","Datepicker","Textarea","Tag"],allowedParents:["AppShell","Container","root"],disallowedChildren:["Modal"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},NumberInput:{name:"NumberInput",source:"src/design-system/components/NumberInput/NumberInput.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},type:{type:"string",default:"number"}},defaults:{size:"default",state:"default",type:"number"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Pagination:{name:"Pagination",source:"src/design-system/components/Pagination/Pagination.spec.ts",props:{variant:{type:"string",default:"default"}},defaults:{variant:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},PasswordInput:{name:"PasswordInput",source:"src/design-system/components/PasswordInput/PasswordInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},PhoneInput:{name:"PhoneInput",source:"src/design-system/components/PhoneInput/PhoneInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProgressCircle:{name:"ProgressCircle",source:"src/design-system/components/ProgressCircle/ProgressCircle.spec.ts",props:{shape:{type:"enum",values:["circle","half-circle"],default:"circle"},size:{type:"enum",values:["xxs","xs","sm","md","lg"],default:"md"}},defaults:{shape:"circle",size:"md"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProgressIndicator:{name:"ProgressIndicator",source:"src/design-system/components/ProgressIndicator/ProgressIndicator.spec.ts",props:{labelPosition:{type:"enum",values:["false","right","bottom","top-floating","bottom-floating"],default:!1},variant:{type:"enum",values:["default","blue","green","success","orange","warning","red","error","purple"],default:"default"},size:{type:"enum",values:["small","medium","large"],default:"medium"}},defaults:{labelPosition:!1,variant:"default",size:"medium"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},ProvidersCard:{name:"ProvidersCard",source:"src/design-system/components/ProvidersCard/ProvidersCard.spec.ts",tier:3,purpose:"Displays provider identity, status, metadata, tags, and quick actions in a compact card.",props:{statusVariant:{type:"enum",values:["green","orange","red","blue","neutral"],default:"green"}},defaults:{statusVariant:"green"},states:["default"],tokensUsed:["--uds-spacing-16","--uds-spacing-12","--uds-border-width-1","--uds-border-primary","--uds-radius-8","--uds-surface-primary"],accessibility:{role:"group",keyboard:["Tab","Enter","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use ProvidersCard for tabular datasets where rows and sorting are required.","Do not replace action buttons with non-interactive text when actions are expected."]},Radio:{name:"Radio",source:"src/design-system/components/Radio/Radio.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},RadioGroup:{name:"RadioGroup",source:"src/design-system/components/RadioGroup/RadioGroup.spec.ts",tier:2,purpose:"Provides grouped single-select choices using Radio controls.",props:{orientation:{type:"enum",values:["vertical","horizontal"],default:"vertical"},disabled:{type:"boolean",default:!1}},defaults:{orientation:"vertical",disabled:!1},states:["default"],tokensUsed:["--uds-spacing-8","--uds-spacing-16","--uds-text-primary"],accessibility:{role:"radiogroup",keyboard:["Tab","ArrowUp","ArrowDown","Space"]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use RadioGroup when users can select more than one option.","Do not omit visible labels when context is unclear."]},ScrollView:{name:"ScrollView",source:"src/design-system/components/ScrollView/ScrollView.spec.ts",tier:2,purpose:"Provides a container with controlled scroll direction.",props:{direction:{type:"enum",values:["vertical","horizontal"],default:"vertical"}},defaults:{direction:"vertical"},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},SearchInput:{name:"SearchInput",source:"src/design-system/components/SearchInput/SearchInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},SectionHeader:{name:"SectionHeader",source:"src/design-system/components/SectionHeader/SectionHeader.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Slider:{name:"Slider",source:"src/design-system/components/Slider/Slider.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Statistics:{name:"Statistics",source:"src/design-system/components/Statistics/Statistics.spec.ts",tier:2,purpose:"Displays a KPI value with optional context, trend, and icon.",props:{trend:{type:"enum",values:["up","down","neutral"],default:"neutral"},iconAccent:{type:"enum",values:["amber","aqua","blue","cyan","emerald","fuchsia","green","indigo","lime","magenta","orange","purple","red","rose","sky","violet","yellow"],default:"blue"}},defaults:{trend:"neutral",iconAccent:"blue"},states:["default"],tokensUsed:["--uds-surface-secondary","--uds-surface-primary","--uds-border-primary","--uds-radius-8","--uds-text-secondary","--uds-system-success-primary","--uds-system-destructive-primary"],accessibility:{role:"status",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not use Statistics for interactive controls.","Do not place long paragraph content inside helper text."]},Status:{name:"Status",source:"src/design-system/components/Status/Status.spec.ts",props:{appearance:{type:"enum",values:["light-gray","white","transparent"],default:"light-gray"},shape:{type:"enum",values:["pill","rounded"],default:"pill"},variant:{type:"string",default:"blue"}},defaults:{appearance:"light-gray",shape:"pill",variant:"blue"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Table"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Steps:{name:"Steps",source:"src/design-system/components/Steps/Steps.spec.ts",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},status:{type:"enum",values:["complete","active","incomplete","disabled","error"]},size:{type:"enum",values:["default","compact"],default:"default"}},defaults:{orientation:"horizontal",size:"default"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Table:{name:"Table",source:"src/design-system/components/Table/Table.spec.ts",props:{},defaults:{},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Tag","Status","Avatar","Button","ActionMenu","ProgressIndicator","DotStatus"],allowedParents:["Container","Tabs"],disallowedChildren:["Table"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tabs:{name:"Tabs",source:"src/design-system/components/Tabs/Tabs.spec.ts",props:{orientation:{type:"enum",values:["horizontal","vertical"],default:"horizontal"},appearance:{type:"string",default:"underline"},tagVariant:{type:"string",default:"red"}},defaults:{orientation:"horizontal",appearance:"underline",tagVariant:"red"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:["Text","Tag","Button","Table","Field"],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tag:{name:"Tag",source:"src/design-system/components/Tag/Tag.spec.ts",props:{appearance:{type:"enum",values:["label-only","icon-left"],default:"label-only"},size:{type:"enum",values:["compact","default"],default:"compact"},color:{type:"enum",values:["transparent","neutral","red","orange","yellow","emerald","green","sky","cyan","blue","indigo","purple","fuchsia","magenta","inverse"],default:"transparent"},label:{type:"string",default:"Label"}},defaults:{appearance:"label-only",size:"compact",color:"transparent",label:"Label"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Container","Modal","Table","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Text:{name:"Text",source:"src/design-system/components/Text/Text.spec.ts",tier:2,purpose:"Applies UDS typography variants with governed weight and leading options while preserving semantic tags via `as`.",props:{variant:{type:"enum",values:["display-128","display-96","display-72","display-60","display-48","display-36","heading-32","heading-28","heading-24","body-20","body-16","body-14","body-12"],default:"body-16"},weight:{type:"enum",values:["regular","medium","semibold","bold"],default:"regular"},leading:{type:"enum",values:["tight","regular","loose"],default:"regular"}},defaults:{variant:"body-16",weight:"regular",leading:"regular"},states:["default"],tokensUsed:["--uds-font-family","--uds-font-size-*","--uds-line-*","--uds-font-weight*","--uds-type-*"],accessibility:{role:"text",keyboard:[]},composition:{allowedChildren:[],allowedParents:["AppShell","Container","Layout","Menu","Modal","Tabs"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:["Do not set font-size/line-height directly on consumer elements; use Text variant + leading.","Do not reintroduce tailwind-like typography utilities that bypass semantic tokens."]},Textarea:{name:"Textarea",source:"src/design-system/components/Textarea/Textarea.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"}},defaults:{size:"default",state:"default"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},TextInput:{name:"TextInput",source:"src/design-system/components/TextInput/TextInput.spec.ts",props:{size:{type:"enum",values:["compact","default"],default:"default"},state:{type:"enum",values:["default","focused","error","disabled"],default:"default"},type:{type:"string",default:"text"},iconPosition:{type:"string",default:"right"}},defaults:{size:"default",state:"default",type:"text",iconPosition:"right"},states:["default","focused","error","disabled"],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Modal"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},TimeInput:{name:"TimeInput",source:"src/design-system/components/TimeInput/TimeInput.spec.ts",tier:2,purpose:"Describe purpose.",props:{},defaults:{},states:["default"],tokensUsed:[],accessibility:{role:"generic",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toast:{name:"Toast",source:"src/design-system/components/Toast/Toast.spec.ts",props:{variant:{type:"enum",values:["success","error","warning","info"],default:"info"}},defaults:{variant:"info"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:["Modal","Dialog"]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toggle:{name:"Toggle",source:"src/design-system/components/Toggle/Toggle.spec.ts",props:{size:{type:"enum",values:["large","small"],default:"large"}},defaults:{size:"large"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:["Field","Menu"],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Toolbar:{name:"Toolbar",source:"src/design-system/components/Toolbar/Toolbar.spec.ts",tier:2,purpose:"Top action bar with left and right action regions and centered title/branding.",props:{},defaults:{},states:["default"],tokensUsed:["--uds-surface-primary","--uds-border-primary","--uds-spacing-8","--uds-spacing-12","--uds-spacing-16"],accessibility:{role:"toolbar",keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]},Tooltip:{name:"Tooltip",source:"src/design-system/components/Tooltip/Tooltip.spec.ts",props:{placement:{type:"enum",values:["top","bottom","left","right"],default:"top"}},defaults:{placement:"top"},states:[],tokensUsed:[],accessibility:{keyboard:[]},composition:{allowedChildren:[],allowedParents:[],disallowedChildren:[]},aliases:{props:{}},ambiguity:{propNameCollisions:[],hadAliasNormalization:!1},antiPatterns:[]}};exports.COMPONENT_API=e;