@compa11y/react 0.1.8 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +679 -2
- package/dist/index.d.ts +679 -2
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{k as Dialog,j as DialogActions,d as DialogBase,h as DialogClose,i as DialogContent,g as DialogDescription,f as DialogTitle,e as DialogTrigger,c as useDialogContext,a as useFocusTrap,b as useFocusTrapControls}from'./chunk-32AW37KT.js';export{i as ActionMenu,c as ActionMenuBase,e as ActionMenuContent,f as ActionMenuItem,h as ActionMenuLabel,g as ActionMenuSeparator,d as ActionMenuTrigger,a as useActionMenuContext}from'./chunk-QOY5G3EC.js';export{d as Tab,c as TabList,e as TabPanel,f as Tabs,b as TabsBase,a as useTabsContext}from'./chunk-L6H47IF4.js';export{b as ToastProvider,c as ToastViewport,a as useToast,d as useToastHelpers}from'./chunk-IFZVKAUZ.js';export{e as Combobox,a as ComboboxBase,b as ComboboxInput,c as ComboboxListbox,d as ComboboxOption}from'./chunk-HEA4NAOM.js';import {a}from'./chunk-MD4AVTLT.js';export{c as useAnnounceLoading,b as useAnnounceOnChange,a as useAnnouncer}from'./chunk-MD4AVTLT.js';import {e,a as a$1}from'./chunk-VMM4K2K4.js';export{d as useGridKeyboard,f as useKeyPressed,a as useKeyboard,b as useMenuKeyboard,c as useTabsKeyboard,e as useTypeAhead}from'./chunk-VMM4K2K4.js';import {a as a$2}from'./chunk-IZ7LLPPV.js';export{a as useId,c as useIdScope,b as useIds}from'./chunk-IZ7LLPPV.js';import tr,{createContext,forwardRef,useCallback,useRef,useState,useEffect,useLayoutEffect,useMemo,useContext,Children}from'react';import {createComponentWarnings,initFocusVisible,isFocusVisible,focusWithVisibleRing,findFocusNeighbor,createFocusReturn}from'@compa11y/core';export{announce,announceAssertive,announceError,announcePolite,announceProgress,announceStatus,aria,buildAriaProps,checks,createComponentWarnings,hasAccessibleName,isAndroid,isBrowser,isIOS,isMac,mergeAriaIds,prefersDarkMode,prefersHighContrast,prefersReducedMotion,setWarningHandler,warn}from'@compa11y/core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function oe(){let[p,t]=useState(false);useEffect(()=>initFocusVisible(),[]);let i=useCallback(()=>{t(isFocusVisible());},[]),r=useCallback(()=>{t(false);},[]);return {isFocusVisible:p,focusProps:{onFocus:i,onBlur:r}}}function Dt(p={}){let{autoFocus:t=false,restoreFocus:i=false,focusVisible:r=true}=p,e=useCallback(n=>{n&&t&&requestAnimationFrame(()=>{r?focusWithVisibleRing(n):n.focus();});},[t,r]);return useEffect(()=>{if(!i)return;let n=document.activeElement;return ()=>{n&&n.focus&&n.focus();}},[i]),e}function Bt(){let p=useCallback(i=>{},[]),t=useCallback(i=>{let r=p;r.current&&(i?.visible?focusWithVisibleRing(r.current):r.current.focus());},[]);return {ref:p,focus:t}}function zt(){let[p,t]=useState(false),i=useCallback(n=>{},[]),r=useCallback(()=>{t(true);},[]),e=useCallback(n=>{let s=n.currentTarget,c=n.relatedTarget;(!c||!s.contains(c))&&t(false);},[]);return {ref:i,hasFocus:p,focusWithinProps:{onFocus:r,onBlur:e}}}function ot(p){let{itemCount:t,initialIndex:i=0,wrap:r=true,orientation:e="both",onChange:n}=p,[s,c]=useState(i),o=useRef([]);useEffect(()=>{s>=t&&c(Math.max(0,t-1));},[t,s]);let a=useCallback(f=>{let u=f;u<0?u=r?t-1:0:u>=t&&(u=r?0:t-1),c(u),n?.(u),o.current[u]?.focus();},[t,r,n]),b=useCallback((f,u)=>{let x=false;switch(f.key){case "ArrowRight":(e==="horizontal"||e==="both")&&(a(u+1),x=true);break;case "ArrowLeft":(e==="horizontal"||e==="both")&&(a(u-1),x=true);break;case "ArrowDown":(e==="vertical"||e==="both")&&(a(u+1),x=true);break;case "ArrowUp":(e==="vertical"||e==="both")&&(a(u-1),x=true);break;case "Home":a(0),x=true;break;case "End":a(t-1),x=true;break}x&&(f.preventDefault(),f.stopPropagation());},[e,a,t]),l=useCallback(f=>({ref:u=>{o.current[f]=u;},tabIndex:f===s?0:-1,onKeyDown:u=>b(u,f),onFocus:()=>{f!==s&&(c(f),n?.(f));}}),[s,b,n]);return {activeIndex:s,setActiveIndex:a,getItemProps:l,first:()=>a(0),last:()=>a(t-1),next:()=>a(s+1),previous:()=>a(s-1)}}function Gt(p,t={}){let i=ot({...t,itemCount:p.length}),r=useCallback(n=>{let s=p.indexOf(n);if(s===-1)throw new Error(`Unknown item ID: ${n}`);return i.getItemProps(s)},[p,i]),e=p[i.activeIndex];return {...i,activeId:e,getItemProps:r,setActiveId:n=>{let s=p.indexOf(n);s!==-1&&i.setActiveIndex(s);}}}function $t(p){let t=useRef(null),i=useRef(p);i.current=p;let r=useCallback(()=>t.current?findFocusNeighbor(t.current,i.current):null,[]),e=useCallback(()=>{r()?.focus();},[r]);return {ref:t,getNeighbor:r,focusNeighbor:e}}function Kt(){let p=useRef(createFocusReturn()),t=useCallback(e=>{p.current.save(e);},[]),i=useCallback(e=>{p.current.return(e);},[]),r=useCallback(()=>{p.current.clear();},[]);return {save:t,returnFocus:i,clear:r}}var vn=createComponentWarnings("Select"),qt=createContext(null);function st(){let p=useContext(qt);if(!p)throw new Error("Select compound components must be used within a Select component");return p}function jt(p,t,i){let r=p.length,e=t+i;e<0&&(e=r-1),e>=r&&(e=0);let n=e;for(;p[e]?.disabled;)if(e+=i,e<0&&(e=r-1),e>=r&&(e=0),e===n)return -1;return e}function Wt(p){return p.findIndex(t=>!t.disabled)}function Ut(p){for(let t=p.length-1;t>=0;t--)if(!p[t]?.disabled)return t;return -1}function lt({options:p,value:t,defaultValue:i,onValueChange:r,disabled:e=false,placeholder:n="Select an option...","aria-label":s,"aria-labelledby":c,children:o}){let[a,b]=useState(i??null),[l,f]=useState(false),[u,x]=useState(-1),d=useRef(null),T=t!==void 0?t:a,R=a$2("select-trigger"),S=a$2("select-listbox"),I=a$2("select-option"),m=useCallback(P=>{t===void 0&&b(P),r?.(P);},[t,r]),y=useCallback(P=>`${I}-${P}`,[I]),H=useCallback(P=>{m(P.value),f(false),x(-1),d.current?.focus();},[m]);useEffect(()=>{!s&&!c&&vn.warning("Select has no accessible label.","Add aria-label or aria-labelledby prop.");},[s,c]);let C={selectedValue:T,setSelectedValue:m,isOpen:l,setIsOpen:f,highlightedIndex:u,setHighlightedIndex:x,options:p,triggerId:R,listboxId:S,getOptionId:y,onSelect:H,triggerRef:d,placeholder:n,disabled:e};return jsx(qt.Provider,{value:C,children:jsx("div",{"data-compa11y-select":true,"data-disabled":e||void 0,children:o})})}var ct=forwardRef(function({onKeyDown:t,onClick:i,onBlur:r,...e$1},n){let{selectedValue:s,isOpen:c,setIsOpen:o,highlightedIndex:a$2,setHighlightedIndex:b,options:l,triggerId:f,listboxId:u,getOptionId:x,onSelect:d,triggerRef:T,placeholder:R,disabled:S}=st(),{announce:I}=a(),m=e(l.map(h=>h.label),h=>{let k=l.findIndex(F=>F.label===h&&!F.disabled);k>=0&&(c||o(true),b(k));},{disabled:S}),y=useCallback((h=false)=>{o(true);let k=l.findIndex(F=>F.value===s);k>=0?b(k):b(h?Ut(l):Wt(l));},[l,s,o,b]),H=a$1({ArrowDown:()=>{if(!c)y();else {let h=jt(l,a$2,1);h>=0&&b(h);}},ArrowUp:()=>{if(!c)y(true);else {let h=jt(l,a$2,-1);h>=0&&b(h);}},Enter:()=>{if(c&&a$2>=0){let h=l[a$2];h&&!h.disabled&&(d(h),I(`${h.label} selected`));}else c||y();},Space:()=>{if(c&&a$2>=0){let h=l[a$2];h&&!h.disabled&&(d(h),I(`${h.label} selected`));}else c||y();},Escape:()=>{c&&(o(false),b(-1));},Home:()=>{c&&b(Wt(l));},End:()=>{c&&b(Ut(l));},Tab:()=>(c&&(o(false),b(-1)),false)},{preventDefault:true,stopPropagation:false}),C=h=>{t?.(h),h.defaultPrevented||H.onKeyDown(h),h.defaultPrevented||m.onKeyDown(h);},P=h=>{i?.(h),!h.defaultPrevented&&!S&&(c?(o(false),b(-1)):y());},A=h=>{r?.(h),setTimeout(()=>{o(false),b(-1);},150);},V=c&&a$2>=0?x(a$2):void 0,O=l.find(h=>h.value===s),$=O?.label??R,g=useCallback(h=>{T.current=h,typeof n=="function"?n(h):n&&(n.current=h);},[n,T]);return jsxs("button",{ref:g,id:f,type:"button",role:"combobox","aria-expanded":c,"aria-controls":u,"aria-haspopup":"listbox","aria-activedescendant":V,disabled:S,onKeyDown:C,onClick:P,onBlur:A,"data-compa11y-select-trigger":true,"data-placeholder":!O||void 0,...e$1,children:[jsx("span",{"data-compa11y-select-value":true,children:$}),jsx("span",{"aria-hidden":"true","data-compa11y-select-chevron":true,children:"\u25BC"})]})}),ut=forwardRef(function({children:t,style:i,...r},e){let{isOpen:n,options:s,listboxId:c,triggerId:o}=st(),{announce:a$1}=a(),b=useRef(null),[l,f]=useState("bottom");useEffect(()=>{n&&a$1(`${s.length} option${s.length===1?"":"s"} available`);},[n,s.length,a$1]),useLayoutEffect(()=>{if(n&&b.current){let R=b.current.getBoundingClientRect(),I=window.innerHeight-R.top,m=R.top,y=Math.min(R.height,200);I<y+50&&m>I?f("top"):f("bottom");}},[n]);let u=T=>{T.preventDefault();},x=useCallback(T=>{b.current=T,typeof e=="function"?e(T):e&&(e.current=T);},[e]);return n?jsx("ul",{ref:x,id:c,role:"listbox","aria-labelledby":o,style:{...i,...l==="top"?{bottom:"100%",top:"auto",marginBottom:"4px",marginTop:0}:{}},onMouseDown:u,"data-compa11y-select-listbox":true,"data-position":l,...r,children:t??s.map((T,R)=>jsx(we,{option:T,index:R},T.value))}):null}),we=forwardRef(function({option:t,index:i,onClick:r,onMouseEnter:e,...n},s){let{selectedValue:c,highlightedIndex:o,setHighlightedIndex:a$1,getOptionId:b,onSelect:l}=st(),{announce:f}=a(),u=useRef(null),x=c===t.value,d=o===i,T=b(i);useEffect(()=>{d&&u.current&&u.current.scrollIntoView({block:"nearest",behavior:"smooth"});},[d]);let R=m=>{r?.(m),!m.defaultPrevented&&!t.disabled&&(l(t),f(`${t.label} selected`));},S=m=>{e?.(m),t.disabled||a$1(i);},I=useCallback(m=>{u.current=m,typeof s=="function"?s(m):s&&(s.current=m);},[s]);return jsxs("li",{ref:I,id:T,role:"option","aria-selected":x,"aria-disabled":t.disabled,"data-highlighted":d,"data-selected":x,"data-disabled":t.disabled,onClick:R,onMouseEnter:S,"data-compa11y-select-option":true,...n,children:[jsx("span",{"data-compa11y-select-option-text":true,children:t.label}),x&&jsx("span",{"aria-hidden":"true","data-compa11y-select-check":true,children:"\u2713"})]})}),_t=Object.assign(lt,{Trigger:ct,Listbox:ut,Option:we});var Zt=createComponentWarnings("Checkbox"),In=()=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsx("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),En=()=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsx("path",{d:"M3 6H9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),Jt=createContext(null);function bt(){return useContext(Jt)}var Fe=forwardRef(function({value:t,defaultValue:i=[],onValueChange:r,disabled:e=false,legend:n,error:s,orientation:c="vertical",name:o,unstyled:a=false,className:b="",children:l,"aria-label":f,"aria-labelledby":u},x){let d=a$2("checkbox-group"),T=o||d,R=a$2("checkbox-group-error"),[S,I]=useState(i),m=t!==void 0,y=m?t:S;useEffect(()=>{!n&&!f&&!u&&Zt.warning("CheckboxGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[n,f,u]);let H=useCallback((g,h)=>{let k=m?t:S,F=h?[...k,g]:k.filter(K=>K!==g);m||I(F),r?.(F);},[m,t,S,r]),C={name:T,value:y,disabled:e,unstyled:a,onCheckboxChange:H},P=!!s,A={border:"none",margin:0,padding:0,minWidth:0},V=a?{padding:0,marginBottom:"0.5rem"}:{padding:0,marginBottom:"0.5rem",fontWeight:600},O={display:"flex",flexDirection:c==="horizontal"?"row":"column",flexWrap:c==="horizontal"?"wrap":void 0,gap:"var(--compa11y-checkbox-group-gap, 0.75rem)"},$=a?{marginTop:"0.25rem"}:{color:"var(--compa11y-checkbox-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"};return jsx(Jt.Provider,{value:C,children:jsxs("fieldset",{ref:x,className:b,"aria-label":f,"aria-labelledby":u,"aria-describedby":P?R:void 0,disabled:e,"data-compa11y-checkbox-group":"","data-orientation":c,"data-disabled":e?"true":void 0,style:A,children:[n&&jsx("legend",{"data-compa11y-checkbox-group-legend":"",style:V,children:n}),jsx("div",{style:O,children:l}),P&&jsx("div",{id:R,role:"alert","data-compa11y-checkbox-group-error":"",style:$,children:s})]})})});Fe.displayName="CheckboxGroup";var Ae=forwardRef(function({checked:t,defaultChecked:i=false,onCheckedChange:r,indeterminate:e=false,label:n,hint:s,error:c,disabled:o=false,value:a$1,required:b=false,unstyled:l,className:f="",size:u="md",name:x,"aria-label":d,"aria-labelledby":T,"aria-describedby":R,onClick:S,onFocus:I,onBlur:m,...y},H){let C=bt(),P=a$2("checkbox"),A=`${P}-input`,V=`${P}-label`,O=`${P}-hint`,$=`${P}-error`,{announce:g}=a(),{isFocusVisible:h,focusProps:k}=oe(),F=C!==null,K=F&&C.disabled||o,D=l??(F?C.unstyled:false),B=F?C.name:x,[q,w]=useState(i),U=F?C.value.includes(a$1||""):t!==void 0?t:q,j=useRef(null),W=useCallback(ue=>{j.current=ue,typeof H=="function"?H(ue):H&&(H.current=ue);},[H]);useEffect(()=>{j.current&&(j.current.indeterminate=e);},[e]),useEffect(()=>{!n&&!d&&!T&&Zt.warning("Checkbox has no accessible label. Screen readers need this to identify the checkbox.",'Add label="...", aria-label="...", or aria-labelledby="..."');},[n,d,T]);let z=useCallback(ue=>{let ke=ue.target.checked;F?C.onCheckboxChange(a$1||"",ke):(t===void 0&&w(ke),r?.(ke)),g(`${typeof n=="string"?n:d||"Checkbox"} ${ke?"checked":"unchecked"}`);},[F,C,a$1,t,r,n,d,g]),Z=useCallback(ue=>{k.onFocus(),I?.(ue);},[k,I]),ne=useCallback(ue=>{k.onBlur(),m?.(ue);},[k,m]),J=!!n,Q=!!s,re=!!c,Y=[];R&&Y.push(R),Q&&Y.push(O),re&&Y.push($);let be=Y.length?Y.join(" "):void 0,E={sm:{box:16},md:{box:20},lg:{box:24}}[u],L={display:"inline-flex",alignItems:"flex-start",gap:"0.5rem",cursor:K?"not-allowed":"pointer",userSelect:"none",...K&&!D?{opacity:.5}:{}},M={position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},N={position:"absolute",opacity:0,width:"100%",height:"100%",margin:0,cursor:"inherit",zIndex:1},_=D?{}:{width:E.box,height:E.box,minWidth:24,minHeight:24,border:U||e?"var(--compa11y-checkbox-checked-border, 2px solid #0066cc)":"var(--compa11y-checkbox-border, 2px solid #666)",borderRadius:"var(--compa11y-checkbox-radius, 3px)",background:U||e?"var(--compa11y-checkbox-checked-bg, #0066cc)":"var(--compa11y-checkbox-bg, white)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.15s ease",pointerEvents:"none",color:"var(--compa11y-checkbox-check-color, white)",...h?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}},ge={display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},Lo=D?{cursor:"inherit"}:{cursor:"inherit",color:"var(--compa11y-checkbox-label-color, inherit)"},Ho=D?{}:{color:"var(--compa11y-checkbox-hint-color, #666)",fontSize:"0.8125rem"},ko=D?{}:{color:"var(--compa11y-checkbox-error-color, #ef4444)",fontSize:"0.8125rem"};return jsxs("div",{className:f,"data-compa11y-checkbox":"","data-checked":U?"true":"false","data-indeterminate":e?"true":void 0,"data-disabled":K?"true":void 0,"data-size":u,style:L,children:[jsxs("div",{style:M,children:[jsx("input",{ref:W,type:"checkbox",id:A,name:B,value:a$1,checked:U,onChange:z,onClick:S,onFocus:Z,onBlur:ne,disabled:K,required:b,"aria-required":b||void 0,"aria-invalid":re||void 0,"aria-label":!J&&!T?d:void 0,"aria-labelledby":T||(J?V:void 0),"aria-describedby":be,"aria-checked":e?"mixed":U,tabIndex:K?-1:0,style:N,...y}),!D&&jsxs("div",{"data-compa11y-checkbox-indicator":"","aria-hidden":"true",style:_,children:[U&&!e&&jsx(In,{}),e&&jsx(En,{})]})]}),(J||Q||re)&&jsxs("div",{style:ge,children:[J&&jsxs("label",{htmlFor:A,id:V,"data-compa11y-checkbox-label":"",style:Lo,children:[n,b&&jsx("span",{"aria-hidden":"true",style:{color:"var(--compa11y-checkbox-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),Q&&jsx("div",{id:O,"data-compa11y-checkbox-hint":"",style:Ho,children:s}),re&&jsx("div",{id:$,role:"alert","data-compa11y-checkbox-error":"",style:ko,children:c})]})]})});Ae.displayName="Checkbox";var Oe=forwardRef(function({children:t,className:i},r){return jsx("div",{ref:r,className:i,"data-compa11y-checkbox-indicator":"","aria-hidden":"true",children:t})});Oe.displayName="CheckboxIndicator";var Qt=Object.assign(Ae,{Group:Fe,Indicator:Oe});var Mn=createComponentWarnings("RadioGroup"),xt=createContext(null);function yt(){let p=useContext(xt);if(!p)throw new Error("[Compa11y RadioGroup]: Radio must be used within a RadioGroup.");return p}var Ve=forwardRef(function({value:t,defaultValue:i,onValueChange:r,disabled:e=false,discoverable:n=true,required:s=false,orientation:c="vertical",name:o,legend:a,hint:b,error:l,unstyled:f=false,className:u="",children:x,"aria-label":d,"aria-labelledby":T},R){let S=a$2("radiogroup"),I=o||S,m=a$2("radiogroup-hint"),y=a$2("radiogroup-error"),[H,C]=useState(i??null),P=t!==void 0,A=P?t:H,V=useRef(new Map);useEffect(()=>{!a&&!d&&!T&&Mn.warning("RadioGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[a,d,T]);let O=useCallback(W=>{e||(P||C(W),r?.(W));},[e,P,r]),$=useCallback((W,z)=>{V.current.set(W,z);},[]),g=useCallback(W=>{V.current.delete(W);},[]),h=useCallback((W,z)=>{V.current.set(W,z);},[]),k=useCallback(()=>{let W=[];return V.current.forEach((z,Z)=>{!z&&!e&&W.push(Z);}),W},[e]),F=useRef(null),K=R||F,D=useCallback(W=>{let z=k();if(z.length===0)return;let Z=A?z.indexOf(A):-1,ne;switch(W){case "next":ne=Z<0?0:(Z+1)%z.length;break;case "prev":ne=Z<0?z.length-1:(Z-1+z.length)%z.length;break;case "first":ne=0;break;case "last":ne=z.length-1;break}let J=z[ne];if(J!==void 0){O(J);let Q=typeof K=="object"&&K?K.current:null;Q&&Q.querySelector(`input[type="radio"][value="${CSS.escape(J)}"]`)?.focus();}},[k,A,O,K]),B=a$1({ArrowDown:()=>D("next"),ArrowRight:()=>D("next"),ArrowUp:()=>D("prev"),ArrowLeft:()=>D("prev"),Home:()=>D("first"),End:()=>D("last")},{preventDefault:true,stopPropagation:true,disabled:e}),q={name:I,value:A??null,disabled:e,discoverable:n,required:s,unstyled:f,orientation:c,onValueChange:O,registerRadio:$,unregisterRadio:g,updateRadioDisabled:h},w=[];b&&w.push(m),l&&w.push(y);let U=w.length>0?w.join(" "):void 0,j=jsxs(Fragment,{children:[jsx("div",{style:f?{display:"flex",flexDirection:c==="horizontal"?"row":"column"}:{display:"flex",flexDirection:c==="horizontal"?"row":"column",gap:"var(--compa11y-radio-gap, 0.75rem)"},children:x}),b&&jsx("div",{id:m,style:f?{}:{color:"var(--compa11y-radio-group-hint-color, #666)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:b}),l&&jsx("div",{id:y,role:"alert",style:f?{}:{color:"var(--compa11y-radio-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:l})]});return a?jsx(xt.Provider,{value:q,children:jsxs("fieldset",{ref:K,role:"radiogroup","aria-label":d,"aria-labelledby":T,"aria-orientation":c,"aria-required":s||void 0,"aria-disabled":e||void 0,"aria-invalid":l?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${u}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":l?"true":void 0,onKeyDown:B.onKeyDown,style:f?{border:"none",margin:0,padding:0,minWidth:0}:{border:"none",margin:0,padding:0,minWidth:0},children:[jsxs("legend",{style:f?{}:{padding:0,marginBottom:"var(--compa11y-radio-group-legend-gap, 0.5rem)",fontWeight:"var(--compa11y-radio-group-legend-weight, 600)",color:"var(--compa11y-radio-group-legend-color, inherit)",fontSize:"var(--compa11y-radio-group-legend-size, 1rem)"},children:[a,s&&!f&&jsxs("span",{"aria-hidden":"true",style:{color:"var(--compa11y-radio-group-required-color, #ef4444)",marginLeft:"0.125rem"},children:[" ","*"]})]}),j]})}):jsx(xt.Provider,{value:q,children:jsx("div",{ref:K,role:"radiogroup","aria-label":d,"aria-labelledby":T,"aria-orientation":c,"aria-required":s||void 0,"aria-disabled":e||void 0,"aria-invalid":l?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${u}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":l?"true":void 0,onKeyDown:B.onKeyDown,children:j})})});Ve.displayName="RadioGroup";var Ne=forwardRef(function({value:t,disabled:i=false,discoverable:r,label:e,hint:n,unstyled:s,className:c="",children:o,"aria-label":a$1},b){let l=yt(),f=a$2("radio"),u=a$2("radio-hint"),x=l.disabled||i,d=r??l.discoverable,T=s??l.unstyled,R=l.value===t,{announce:S}=a(),{isFocusVisible:I,focusProps:m}=oe(),y=useRef(null),H=useCallback(B=>{y.current=B,typeof b=="function"?b(B):b&&(b.current=B);},[b]);useEffect(()=>(l.registerRadio(t,x),()=>l.unregisterRadio(t)),[t]),useEffect(()=>{l.updateRadioDisabled(t,x);},[x,t]);let C=useCallback(B=>{if(x){B.preventDefault();return}l.onValueChange(t),S(`${e||(typeof o=="string"?o:null)||t} selected`,{politeness:"polite"});},[x,l,t,e,o,S]),P=useCallback(B=>{x&&B.preventDefault();},[x]),A=useCallback(B=>{m.onFocus(),!R&&!x&&l.onValueChange(t);},[m,R,x,l,t]),V=useCallback(()=>{m.onBlur();},[m]),O=!!(o||e),$=o||e,g=`${f}-label`,h=!!n,k=(()=>{if(l.value!==null)return false;let B=Array.from(y.current?.closest('[role="radiogroup"]')?.querySelectorAll('input[type="radio"]')??[]);for(let q of B){let w=q;if(!w.disabled&&w.getAttribute("aria-disabled")!=="true")return w.value===t}return false})(),F=x&&!d?-1:R||l.value===null&&k?0:-1,K=x&&!d,D=h?u:void 0;return jsxs("label",{htmlFor:f,className:`compa11y-radio-wrapper ${c}`.trim(),"data-compa11y-radio":"","data-value":t,"data-checked":R?"true":"false","data-disabled":x?"true":void 0,style:T?{display:"inline-flex",alignItems:"flex-start",cursor:x?"not-allowed":"pointer",gap:"0.5rem"}:{display:"inline-flex",alignItems:"flex-start",gap:"var(--compa11y-radio-gap, 0.5rem)",cursor:x?"not-allowed":"pointer",userSelect:"none",opacity:x?.5:1},children:[jsxs("div",{style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[jsx("input",{ref:H,type:"radio",id:f,name:l.name,value:t,checked:R,onChange:C,onClick:P,onFocus:A,onBlur:V,disabled:K,tabIndex:F,"aria-disabled":x?"true":void 0,"aria-label":O?void 0:a$1,"aria-labelledby":O?g:void 0,"aria-describedby":D,required:l.required,className:"compa11y-radio-input",style:{position:"absolute",opacity:0,width:"var(--compa11y-radio-size, 1.25rem)",height:"var(--compa11y-radio-size, 1.25rem)",margin:0,cursor:x?"not-allowed":"pointer"}}),!T&&jsx("div",{className:"compa11y-radio-circle",style:{width:"var(--compa11y-radio-size, 1.25rem)",height:"var(--compa11y-radio-size, 1.25rem)",minWidth:"24px",minHeight:"24px",border:R?"var(--compa11y-radio-checked-border, 2px solid #0066cc)":"var(--compa11y-radio-border, 2px solid #666)",borderRadius:"50%",background:R?"var(--compa11y-radio-checked-bg, #0066cc)":"var(--compa11y-radio-bg, white)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.15s ease",pointerEvents:"none",...I?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}},children:jsx("div",{"aria-hidden":"true",style:{width:"var(--compa11y-radio-dot-size, 0.5rem)",height:"var(--compa11y-radio-dot-size, 0.5rem)",borderRadius:"50%",background:"var(--compa11y-radio-dot-color, white)",opacity:R?1:0,transform:R?"scale(1)":"scale(0)",transition:"all 0.15s ease"}})})]}),(O||h)&&jsxs("div",{style:T?{}:{display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},children:[O&&jsx("span",{id:g,className:"compa11y-radio-label",style:T?{}:{color:"var(--compa11y-radio-label-color, inherit)",fontSize:"var(--compa11y-radio-label-size, 1rem)"},children:$}),h&&jsx("span",{id:u,className:"compa11y-radio-hint",style:T?{}:{color:"var(--compa11y-radio-hint-color, #666)",fontSize:"var(--compa11y-radio-hint-size, 0.8125rem)"},children:n})]})]})});Ne.displayName="Radio";var to=Object.assign(Ve,{Radio:Ne});var Nn=createComponentWarnings("Switch"),ht=forwardRef(function({checked:t,defaultChecked:i=false,onCheckedChange:r,label:e,disabled:n=false,unstyled:s=false,className:c,size:o="md","aria-label":a$3,"aria-labelledby":b,onClick:l,...f},u){let d=`${a$2("switch")}-label`,{announce:T}=a(),{isFocusVisible:R,focusProps:S}=oe(),[I,m]=useState(i),y=t!==void 0,H=y?t:I;useEffect(()=>{!e&&!a$3&&!b&&Nn.warning("Switch has no accessible label. Screen readers need this to identify the switch.",'Add label="Description", aria-label="...", or aria-labelledby="..."');},[e,a$3,b]);let C=useCallback(()=>{if(n)return;let w=!H;y||m(w),r?.(w),T(`${e||a$3||"Switch"} ${w?"on":"off"}`);},[H,n,y,r,e,a$3,T]),P=useCallback(w=>{l?.(w),w.defaultPrevented||C();},[l,C]),A=a$1({Space:()=>{C();},Enter:()=>{C();}},{preventDefault:true}),V=w=>{f.onKeyDown?.(w),w.defaultPrevented||A.onKeyDown(w);},O=a$3,$=b||(e?d:void 0),g={display:"inline-flex",alignItems:"center"},k={sm:{width:32,height:18,thumb:14,translate:14},md:{width:44,height:24,thumb:20,translate:20},lg:{width:56,height:30,thumb:26,translate:26}}[o],F={position:"relative",display:"inline-flex",alignItems:"center",flexShrink:0,width:k.width,height:k.height,border:"none",padding:2,cursor:n?"not-allowed":"pointer"},K=s?{}:{backgroundColor:H?"#0066cc":"#d1d5db",borderRadius:k.height/2,transition:"background-color 0.2s ease",opacity:n?.5:1},D={position:"absolute",left:2,width:k.thumb,height:k.thumb,pointerEvents:"none",transform:H?`translateX(${k.translate}px)`:"translateX(0)"},B=s?{}:{backgroundColor:"white",borderRadius:"50%",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)",transition:"transform 0.2s ease"},q=s?{marginLeft:8,userSelect:"none",cursor:n?"not-allowed":"pointer"}:{marginLeft:8,userSelect:"none",cursor:n?"not-allowed":"pointer",opacity:n?.5:1};return jsxs("div",{style:g,"data-compa11y-switch-wrapper":true,"data-size":o,children:[jsx("button",{ref:u,type:"button",role:"switch","aria-checked":H,"aria-label":O,"aria-labelledby":$,disabled:n,onClick:P,onKeyDown:V,className:c,style:{...F,...K,...!s&&R&&!n?{outline:"2px solid #0066cc",outlineOffset:"2px"}:{outline:"none"}},tabIndex:n?-1:0,"data-compa11y-switch":true,"data-checked":H,"data-disabled":n||void 0,"data-size":o,...f,onFocus:w=>{S.onFocus(),f.onFocus?.(w);},onBlur:w=>{S.onBlur(),f.onBlur?.(w);},children:jsx("span",{style:{...D,...B},"data-compa11y-switch-thumb":true,"aria-hidden":"true"})}),e&&jsx("label",{id:d,onClick:n?void 0:()=>C(),style:q,"data-compa11y-switch-label":true,children:e})]})});ht.displayName="Switch";var zn=createComponentWarnings("Listbox"),ao=createContext(null);function ze(){let p=useContext(ao);if(!p)throw new Error("[Compa11y Listbox]: Option/Group must be used within a Listbox.");return p}var io=createContext({groupDisabled:false}),Ge=forwardRef(function({value:t,defaultValue:i,onValueChange:r,multiple:e$1=false,disabled:n=false,discoverable:s=true,orientation:c="vertical",unstyled:o=false,className:a$3="",children:b,"aria-label":l,"aria-labelledby":f},u){let x=a$2("listbox"),{announce:d}=a(),[T,R]=useState(()=>i??(e$1?[]:"")),S=t!==void 0,I=S?t:T,m=useMemo(()=>e$1?new Set(Array.isArray(I)?I:[]):new Set(I?[String(I)]:[]),[I,e$1]),[y,H]=useState(null),C=useRef(new Map),[P,A]=useState(0),V=useCallback((v,E,L)=>{C.current.set(v,{disabled:E,label:L}),A(M=>M+1);},[]),O=useCallback(v=>{C.current.delete(v),A(E=>E+1);},[]),$=useCallback((v,E)=>{let L=C.current.get(v);L&&C.current.set(v,{...L,disabled:E});},[]),g=useMemo(()=>{let v=[];return C.current.forEach((E,L)=>{!E.disabled&&!n&&v.push(L);}),v},[P,n]);useEffect(()=>{!l&&!f&&zn.warning("Listbox has no accessible label. Screen readers need this.",'Add aria-label="..." or aria-labelledby="..."');},[l,f]);let h=useCallback(v=>m.has(v),[m]),k=useCallback(v=>{if(n)return;let E=C.current.get(v);if(E?.disabled)return;let L,M=E?.label||v;if(e$1){let N=new Set(m);N.has(v)?(N.delete(v),d(`${M} deselected`,{politeness:"polite"})):(N.add(v),d(`${M} selected`,{politeness:"polite"})),L=Array.from(N);}else L=v,d(`${M} selected`,{politeness:"polite"});S||R(L),r?.(L);},[n,e$1,m,S,r,d]),F=useCallback(v=>{if(g.length===0)return;let E=y?g.indexOf(y):-1,L;switch(v){case "next":L=E<0?0:Math.min(E+1,g.length-1);break;case "prev":L=E<0?g.length-1:Math.max(E-1,0);break;case "first":L=0;break;case "last":L=g.length-1;break}let M=g[L];if(M!==void 0)if(H(M),e$1){let _=C.current.get(M)?.label||M,ge=m.has(M);d(`${_}${ge?", selected":""}`,{politeness:"polite"});}else {let _=C.current.get(M)?.label||M,ge=M;S||R(ge),r?.(ge),d(`${_} selected`,{politeness:"polite"});}},[g,y,e$1,S,r,d,m]),K=useCallback(()=>{y&&e$1&&k(y);},[y,e$1,k]),D=useCallback(v=>{if(g.length===0)return;let E=y?g.indexOf(y):-1,L;v==="next"?L=E<0?0:Math.min(E+1,g.length-1):L=E<0?g.length-1:Math.max(E-1,0);let M=g[L];M!==void 0&&(H(M),k(M));},[g,y,k]),B=useCallback(()=>{if(!e$1||!y)return;let v=g.indexOf(y);if(v<0)return;let E=g.slice(0,v+1),L=new Set(m);E.forEach(N=>L.add(N));let M=Array.from(L);S||R(M),r?.(M),H(g[0]??null),d(`${E.length} items selected`,{politeness:"polite"});},[e$1,y,g,m,S,r,d]),q=useCallback(()=>{if(!e$1||!y)return;let v=g.indexOf(y);if(v<0)return;let E=g.slice(v),L=new Set(m);E.forEach(N=>L.add(N));let M=Array.from(L);S||R(M),r?.(M),H(g[g.length-1]??null),d(`${E.length} items selected`,{politeness:"polite"});},[e$1,y,g,m,S,r,d]),w=useCallback(()=>{if(!e$1)return;let v=g.every(L=>m.has(L)),E;v?(E=[],d("All deselected",{politeness:"polite"})):(E=[...g],d("All selected",{politeness:"polite"})),S||R(E),r?.(E);},[e$1,g,m,S,r,d]),U=useMemo(()=>{let v={ArrowDown:()=>F("next"),ArrowUp:()=>F("prev"),Home:()=>F("first"),End:()=>F("last")};return e$1&&(v.Space=()=>K(),v["Shift+ArrowDown"]=()=>D("next"),v["Shift+ArrowUp"]=()=>D("prev"),v["Ctrl+Shift+Home"]=()=>B(),v["Ctrl+Shift+End"]=()=>q(),v["Ctrl+a"]=()=>w(),v["Meta+a"]=()=>w()),v},[e$1,F,K,D,B,q,w]),j=a$1(U,{preventDefault:true,stopPropagation:true,disabled:n}),W=useMemo(()=>Array.from(C.current.values()).map(v=>v.label),[P]),z=e(W,v=>{for(let[E,L]of C.current.entries())if(L.label===v&&!L.disabled){if(H(E),!e$1){let M=E;S||R(M),r?.(M),d(`${v} selected`,{politeness:"polite"});}break}},{disabled:n}),Z=useCallback(v=>{j.onKeyDown(v),v.defaultPrevented||z.onKeyDown(v);},[j,z]),ne=useCallback(()=>{if(!y){if(!e$1&&I&&typeof I=="string"){H(I);return}if(e$1&&Array.isArray(I)&&I.length>0){H(I[0]??null);return}g.length>0&&H(g[0]??null);}},[y,e$1,I,g]),J=useCallback(()=>{},[]),Q=useRef(null);useEffect(()=>{y&&Q.current&&Q.current.querySelector(`[data-value="${CSS.escape(y)}"]`)?.scrollIntoView({block:"nearest"});},[y]);let re=useMemo(()=>({multiple:e$1,disabled:n,discoverable:s,unstyled:o,orientation:c,selectedValues:m,focusedValue:y,onSelect:k,onFocusOption:H,registerOption:V,unregisterOption:O,updateOptionDisabled:$,isSelected:h,listboxId:x}),[e$1,n,s,o,c,m,y,k,V,O,$,h,x]),Y=useCallback(v=>{Q.current=v,typeof u=="function"?u(v):u&&(u.current=v);},[u]),be=y?`${x}-option-${y}`:void 0;return jsx(ao.Provider,{value:re,children:jsx("div",{ref:Y,role:"listbox","aria-label":l,"aria-labelledby":f,"aria-orientation":c,"aria-multiselectable":e$1||void 0,"aria-disabled":n||void 0,"aria-activedescendant":be,tabIndex:n&&!s?-1:0,className:`compa11y-listbox ${a$3}`.trim(),"data-compa11y-listbox":"","data-orientation":c,"data-disabled":n?"true":void 0,"data-multiple":e$1?"true":void 0,onKeyDown:Z,onFocus:ne,onBlur:J,style:o?{}:{width:"var(--compa11y-listbox-width, 250px)",maxHeight:"var(--compa11y-listbox-max-height, 300px)",overflowY:"auto",border:"var(--compa11y-listbox-border, 1px solid #e0e0e0)",borderRadius:"var(--compa11y-listbox-radius, 4px)",background:"var(--compa11y-listbox-bg, white)",padding:"var(--compa11y-listbox-padding, 0.25rem 0)",...n?{opacity:"var(--compa11y-listbox-disabled-opacity, 0.5)",cursor:"not-allowed"}:{}},children:b})})});Ge.displayName="Listbox";var $e=forwardRef(function({value:t,disabled:i=false,discoverable:r,unstyled:e,className:n="",children:s,"aria-label":c},o){let a=ze(),{groupDisabled:b}=useContext(io),l=a.disabled||b||i,f=e??a.unstyled,u=a.isSelected(t),x=a.focusedValue===t,d=`${a.listboxId}-option-${t}`,T=useRef(""),R=useRef(null),S=useCallback(m=>{R.current=m,typeof o=="function"?o(m):o&&(o.current=m);},[o]);useEffect(()=>{let m=typeof s=="string"?s:R.current?.textContent?.trim()||t;return T.current=m,a.registerOption(t,l,m),()=>a.unregisterOption(t)},[t]),useEffect(()=>{a.updateOptionDisabled(t,l);},[l,t]);let I=useCallback(m=>{if(l){m.preventDefault();return}a.onFocusOption(t),a.onSelect(t);},[l,a,t]);return jsxs("div",{ref:S,id:d,role:"option","aria-selected":u,"aria-disabled":l||void 0,"aria-label":c,className:`compa11y-listbox-option ${n}`.trim(),"data-compa11y-listbox-option":"","data-value":t,"data-selected":u?"true":"false","data-focused":x?"true":"false","data-disabled":l?"true":void 0,onClick:I,style:f?{cursor:l?"not-allowed":"pointer"}:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--compa11y-listbox-option-padding, 0.5rem 0.75rem)",cursor:l?"not-allowed":"pointer",userSelect:"none",transition:"background 0.1s ease",background:x?u?"var(--compa11y-listbox-option-selected-hover-bg, #cce0ff)":"var(--compa11y-listbox-option-hover-bg, #f5f5f5)":u?"var(--compa11y-listbox-option-selected-bg, #e6f0ff)":"transparent",fontWeight:u?500:"normal",opacity:l?.5:1},children:[jsx("span",{style:{flex:1},children:s}),u&&!f&&jsx("span",{"aria-hidden":"true",style:{fontSize:"0.875rem",color:"var(--compa11y-listbox-check-color, #0066cc)",marginLeft:"0.5rem"},children:"\u2713"})]})});$e.displayName="ListboxOption";var Ke=forwardRef(function({label:t,disabled:i=false,unstyled:r,className:e="",children:n},s){let c=ze(),o=r??c.unstyled,a=a$2("listbox-group"),b=useMemo(()=>({groupDisabled:c.disabled||i}),[c.disabled,i]);return jsx(io.Provider,{value:b,children:jsxs("div",{ref:s,role:"group","aria-labelledby":a,"aria-disabled":i||void 0,className:`compa11y-listbox-group ${e}`.trim(),"data-compa11y-listbox-group":"","data-disabled":i?"true":void 0,style:o?{}:{opacity:i?.5:1},children:[jsx("div",{id:a,role:"presentation",style:o?{}:{padding:"var(--compa11y-listbox-group-label-padding, 0.5rem 0.75rem 0.25rem)",fontSize:"var(--compa11y-listbox-group-label-size, 0.75rem)",fontWeight:600,color:"var(--compa11y-listbox-group-label-color, #666)",textTransform:"uppercase",letterSpacing:"0.05em"},children:t}),n]})})});Ke.displayName="ListboxGroup";var so=Object.assign(Ge,{Option:$e,Group:Ke});var fo=createContext(null);function Ce(){let p=useContext(fo);if(!p)throw new Error("[Compa11y Input]: Input sub-components (Input.Label, Input.Field, etc.) must be used within <Input>.");return p}var je=forwardRef(function({children:t,className:i},r){let e=Ce();return jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-input-label":"",className:i,style:e.unstyled?{}:{display:"block",color:e.disabled?"var(--compa11y-input-disabled-color, #999)":"var(--compa11y-input-label-color, inherit)",fontSize:"var(--compa11y-input-label-size, 0.875rem)",fontWeight:"var(--compa11y-input-label-weight, 500)"},children:[t,e.required&&jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:e.unstyled?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]})});je.displayName="InputLabel";var We=forwardRef(function({type:t="text",onFocus:i,onBlur:r,className:e,style:n,...s},c){let o=Ce(),a=useRef(null),b=useCallback(d=>{a.current=d,typeof c=="function"?c(d):c&&(c.current=d);},[c]),l=useCallback(d=>{o.setValue(d.target.value);},[o.setValue]),f=useCallback(d=>{o.focusProps.onFocus(),i?.(d);},[o.focusProps,i]),u=useCallback(d=>{o.focusProps.onBlur(),r?.(d);},[o.focusProps,r]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsx("input",{ref:b,id:o.fieldId,type:t,value:o.value,onChange:l,onFocus:f,onBlur:u,disabled:o.disabled,readOnly:o.readOnly,"aria-describedby":x.join(" ")||void 0,"aria-invalid":o.hasError?"true":void 0,"aria-required":o.required?"true":void 0,"data-compa11y-input-field":"",className:e,style:o.unstyled?n:{width:"100%",padding:"var(--compa11y-input-padding, 0.5rem 0.75rem)",border:o.hasError?"1px solid var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border, 1px solid #ccc)",borderRadius:"var(--compa11y-input-radius, 4px)",fontSize:"var(--compa11y-input-font-size, 0.875rem)",fontFamily:"inherit",background:o.disabled?"var(--compa11y-input-disabled-bg, #f5f5f5)":o.readOnly?"var(--compa11y-input-readonly-bg, #f9f9f9)":"var(--compa11y-input-bg, white)",color:"inherit",cursor:o.disabled?"not-allowed":void 0,opacity:o.disabled?"var(--compa11y-input-disabled-opacity, 0.7)":void 0,...o.isFocusVisible&&!o.disabled?{outline:o.hasError?"2px solid var(--compa11y-input-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:o.hasError?"var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border-focus, #0066cc)"}:{},...n},...s})});We.displayName="InputField";var Ue=forwardRef(function({children:t,className:i},r){let e=Ce();return useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsx("div",{ref:r,id:e.hintId,"data-compa11y-input-hint":"",className:i,style:e.unstyled?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:t})});Ue.displayName="InputHint";var qe=forwardRef(function({children:t,className:i},r){let e=Ce();return t?jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-input-error":"",className:i,style:e.unstyled?{}:{color:"var(--compa11y-input-error-color, #ef4444)",fontSize:"var(--compa11y-input-error-size, 0.8125rem)"},children:t}):null});qe.displayName="InputError";var _e=forwardRef(function({value:t,defaultValue:i="",onValueChange:r,type:e="text",label:n,hint:s,error:c,required:o=false,disabled:a=false,readOnly:b=false,"aria-label":l,"aria-labelledby":f,placeholder:u,name:x,autoComplete:d,maxLength:T,minLength:R,pattern:S,inputMode:I,id:m,unstyled:y=false,className:H,onFocus:C,onBlur:P,children:A},V){let O=a$2("input"),$=m||O,g=`${$}-field`,h=`${$}-label`,k=`${$}-hint`,F=`${$}-error`,[K,D]=useState(i),B=t!==void 0,q=B?t:K,[w,U]=useState(false),j=useCallback(_=>{B||D(_),r?.(_);},[B,r]),{isFocusVisible:W,focusProps:z}=oe(),Z=useRef(null),ne=useCallback(_=>{Z.current=_,typeof V=="function"?V(_):V&&(V.current=_);},[V]),J=useCallback(_=>{j(_.target.value);},[j]),Q=useCallback(_=>{z.onFocus(),C?.(_);},[z,C]),re=useCallback(_=>{z.onBlur(),P?.(_);},[z,P]);useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(A)>0)&&!n&&!l&&!f&&console.warn("[Compa11y Input]: Input has no accessible label. Screen readers need this to identify the input. Use label prop, aria-label, or aria-labelledby.");},[A,n,l,f]);let Y=!!c,be=Children.count(A)>0,v={fieldId:g,labelId:h,hintId:k,errorId:F,value:q,setValue:j,hasError:Y,hasHint:be?w:!!s,setHasHint:U,disabled:a,readOnly:b,required:o,isFocusVisible:W,focusProps:z,unstyled:y},E={"data-compa11y-input":"","data-error":Y?"true":"false","data-disabled":a?"true":"false","data-required":o?"true":"false","data-readonly":b?"true":"false"},L=y?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"};if(be)return jsx(fo.Provider,{value:v,children:jsx("div",{...E,className:H,style:L,children:A})});let M=[];s&&M.push(k),Y&&M.push(F);let N=M.length>0?M.join(" "):void 0;return jsxs("div",{...E,className:H,style:L,children:[n&&jsxs("label",{id:h,htmlFor:g,"data-compa11y-input-label":"",style:y?{}:{display:"block",color:a?"var(--compa11y-input-disabled-color, #999)":"var(--compa11y-input-label-color, inherit)",fontSize:"var(--compa11y-input-label-size, 0.875rem)",fontWeight:"var(--compa11y-input-label-weight, 500)"},children:[n,o&&jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:y?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsx("input",{ref:ne,id:g,type:e,value:q,onChange:J,onFocus:Q,onBlur:re,disabled:a,readOnly:b,required:o,placeholder:u,name:x,autoComplete:d,maxLength:T,minLength:R,pattern:S,inputMode:I,"aria-label":n?void 0:l,"aria-labelledby":!n&&f?f:n?h:void 0,"aria-describedby":N,"aria-invalid":Y?"true":void 0,"aria-required":o?"true":void 0,"data-compa11y-input-field":"",style:y?{}:{width:"100%",padding:"var(--compa11y-input-padding, 0.5rem 0.75rem)",border:Y?"1px solid var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border, 1px solid #ccc)",borderRadius:"var(--compa11y-input-radius, 4px)",fontSize:"var(--compa11y-input-font-size, 0.875rem)",fontFamily:"inherit",background:a?"var(--compa11y-input-disabled-bg, #f5f5f5)":b?"var(--compa11y-input-readonly-bg, #f9f9f9)":"var(--compa11y-input-bg, white)",color:"inherit",cursor:a?"not-allowed":void 0,opacity:a?"var(--compa11y-input-disabled-opacity, 0.7)":void 0,...W&&!a?{outline:Y?"2px solid var(--compa11y-input-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:Y?"var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border-focus, #0066cc)"}:{}}}),s&&jsx("div",{id:k,"data-compa11y-input-hint":"",style:y?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:s}),Y&&jsx("div",{id:F,role:"alert","data-compa11y-input-error":"",style:y?{}:{color:"var(--compa11y-input-error-color, #ef4444)",fontSize:"var(--compa11y-input-error-size, 0.8125rem)"},children:c})]})});_e.displayName="Input";var mo=Object.assign(_e,{Label:je,Field:We,Hint:Ue,Error:qe});var Un={primary:{background:"var(--compa11y-button-primary-bg, #0066cc)",color:"var(--compa11y-button-primary-color, white)",border:"var(--compa11y-button-primary-border, 1px solid #0066cc)"},secondary:{background:"var(--compa11y-button-secondary-bg, white)",color:"var(--compa11y-button-secondary-color, #333)",border:"var(--compa11y-button-secondary-border, 1px solid #ccc)"},danger:{background:"var(--compa11y-button-danger-bg, #ef4444)",color:"var(--compa11y-button-danger-color, white)",border:"var(--compa11y-button-danger-border, 1px solid #ef4444)"},outline:{background:"var(--compa11y-button-outline-bg, transparent)",color:"var(--compa11y-button-outline-color, #0066cc)",border:"var(--compa11y-button-outline-border, 1px solid #0066cc)"},ghost:{background:"var(--compa11y-button-ghost-bg, transparent)",color:"var(--compa11y-button-ghost-color, #333)",border:"var(--compa11y-button-ghost-border, 1px solid transparent)"}},qn={sm:{padding:"var(--compa11y-button-padding-sm, 0.25rem 0.5rem)",fontSize:"var(--compa11y-button-font-size-sm, 0.75rem)"},md:{padding:"var(--compa11y-button-padding-md, 0.5rem 1rem)",fontSize:"var(--compa11y-button-font-size-md, 0.875rem)"},lg:{padding:"var(--compa11y-button-padding-lg, 0.75rem 1.5rem)",fontSize:"var(--compa11y-button-font-size-lg, 1rem)"}},Ct=forwardRef(function({variant:t="secondary",size:i="md",type:r="button",disabled:e=false,discoverable:n=false,loading:s=false,unstyled:c=false,"aria-label":o,className:a,style:b,onClick:l,onFocus:f,onBlur:u,children:x,...d},T){let R=a$2("button"),S=useRef(null),I=useCallback(g=>{S.current=g,typeof T=="function"?T(g):T&&(T.current=g);},[T]),{isFocusVisible:m,focusProps:y}=oe();useEffect(()=>{process.env.NODE_ENV!=="production"&&!x&&!o&&!d["aria-labelledby"]&&console.warn("[Compa11y Button]: Button has no accessible label. Screen readers need this to identify the button. Add text content, aria-label, or aria-labelledby.");},[x,o,d["aria-labelledby"]]);let H=e&&!n,C=e||s,P=useCallback(g=>{if(C){g.preventDefault();return}l?.(g);},[C,l]),A=useCallback(g=>{y.onFocus(),f?.(g);},[y,f]),V=useCallback(g=>{y.onBlur(),u?.(g);},[y,u]),O={"data-compa11y-button":"","data-variant":t,"data-size":i,"data-disabled":e?"true":"false","data-loading":s?"true":"false"},$=c?{}:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",borderRadius:"var(--compa11y-button-radius, 4px)",fontFamily:"inherit",fontWeight:"var(--compa11y-button-font-weight, 500)",lineHeight:"1.5",cursor:C?"not-allowed":"pointer",opacity:e?"var(--compa11y-button-disabled-opacity, 0.5)":void 0,transition:"background-color 0.15s ease, border-color 0.15s ease",...Un[t],...qn[i],...m&&!H?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}};return jsxs("button",{ref:I,id:R,type:r,disabled:H,tabIndex:e&&!n?void 0:0,"aria-disabled":C?"true":void 0,"aria-busy":s?"true":void 0,"aria-label":o,onClick:P,onFocus:A,onBlur:V,className:a,style:{...$,...b},...O,...d,children:[s&&jsx("span",{"data-compa11y-button-spinner":"","aria-hidden":"true",style:c?{}:{display:"inline-block",width:"1em",height:"1em",border:"2px solid currentColor",borderRightColor:"transparent",borderRadius:"50%",animation:"compa11y-spin 0.6s linear infinite"}}),x]})});Ct.displayName="Button";var vo=createContext(null);function Se(){let p=useContext(vo);if(!p)throw new Error("[Compa11y Textarea]: Textarea sub-components (Textarea.Label, Textarea.Field, etc.) must be used within <Textarea>.");return p}var Xe=forwardRef(function({children:t,className:i},r){let e=Se();return jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-textarea-label":"",className:i,style:e.unstyled?{}:{display:"block",color:e.disabled?"var(--compa11y-textarea-disabled-color, #999)":"var(--compa11y-textarea-label-color, inherit)",fontSize:"var(--compa11y-textarea-label-size, 0.875rem)",fontWeight:"var(--compa11y-textarea-label-weight, 500)"},children:[t,e.required&&jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:e.unstyled?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]})});Xe.displayName="TextareaLabel";var Ze=forwardRef(function({onFocus:t,onBlur:i,className:r,style:e,rows:n,...s},c){let o=Se(),a=useRef(null),b=useCallback(d=>{a.current=d,typeof c=="function"?c(d):c&&(c.current=d);},[c]),l=useCallback(d=>{o.setValue(d.target.value);},[o.setValue]),f=useCallback(d=>{o.focusProps.onFocus(),t?.(d);},[o.focusProps,t]),u=useCallback(d=>{o.focusProps.onBlur(),i?.(d);},[o.focusProps,i]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsx("textarea",{ref:b,id:o.fieldId,rows:n??o.rows,value:o.value,onChange:l,onFocus:f,onBlur:u,disabled:o.disabled,readOnly:o.readOnly,"aria-describedby":x.join(" ")||void 0,"aria-invalid":o.hasError?"true":void 0,"aria-required":o.required?"true":void 0,"data-compa11y-textarea-field":"",className:r,style:o.unstyled?e:{width:"100%",padding:"var(--compa11y-textarea-padding, 0.5rem 0.75rem)",border:o.hasError?"1px solid var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border, 1px solid #ccc)",borderRadius:"var(--compa11y-textarea-radius, 4px)",fontSize:"var(--compa11y-textarea-font-size, 0.875rem)",fontFamily:"inherit",lineHeight:"1.5",resize:o.resize,background:o.disabled?"var(--compa11y-textarea-disabled-bg, #f5f5f5)":o.readOnly?"var(--compa11y-textarea-readonly-bg, #f9f9f9)":"var(--compa11y-textarea-bg, white)",color:"inherit",cursor:o.disabled?"not-allowed":void 0,opacity:o.disabled?"var(--compa11y-textarea-disabled-opacity, 0.7)":void 0,...o.isFocusVisible&&!o.disabled?{outline:o.hasError?"2px solid var(--compa11y-textarea-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:o.hasError?"var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border-focus, #0066cc)"}:{},...e},...s})});Ze.displayName="TextareaField";var Je=forwardRef(function({children:t,className:i},r){let e=Se();return useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsx("div",{ref:r,id:e.hintId,"data-compa11y-textarea-hint":"",className:i,style:e.unstyled?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:t})});Je.displayName="TextareaHint";var Qe=forwardRef(function({children:t,className:i},r){let e=Se();return t?jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-textarea-error":"",className:i,style:e.unstyled?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:t}):null});Qe.displayName="TextareaError";var et=forwardRef(function({value:t,defaultValue:i="",onValueChange:r,rows:e=3,resize:n="vertical",label:s,hint:c,error:o,required:a=false,disabled:b=false,readOnly:l=false,"aria-label":f,"aria-labelledby":u,placeholder:x,name:d,autoComplete:T,maxLength:R,minLength:S,id:I,unstyled:m=false,className:y,onFocus:H,onBlur:C,children:P},A){let V=a$2("textarea"),O=I||V,$=`${O}-field`,g=`${O}-label`,h=`${O}-hint`,k=`${O}-error`,[F,K]=useState(i),D=t!==void 0,B=D?t:F,q=useCallback(N=>{D||K(N),r?.(N);},[D,r]),{isFocusVisible:w,focusProps:U}=oe();useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(P)>0)&&!s&&!f&&!u&&console.warn("[Compa11y Textarea]: Textarea has no accessible label. Screen readers need this to identify the textarea. Use label prop, aria-label, or aria-labelledby.");},[P,s,f,u]);let j=!!o,[W,z]=useState(false),Z=Children.count(P)>0,ne={fieldId:$,labelId:g,hintId:h,errorId:k,value:B,setValue:q,hasError:j,hasHint:Z?W:!!c,setHasHint:z,disabled:b,readOnly:l,required:a,rows:e,resize:n,isFocusVisible:w,focusProps:U,unstyled:m},J={"data-compa11y-textarea":"","data-error":j?"true":"false","data-disabled":b?"true":"false","data-required":a?"true":"false","data-readonly":l?"true":"false"},Q=m?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"},re=useRef(null),Y=useCallback(N=>{re.current=N,typeof A=="function"?A(N):A&&(A.current=N);},[A]),be=useCallback(N=>{q(N.target.value);},[q]),v=useCallback(N=>{U.onFocus(),H?.(N);},[U,H]),E=useCallback(N=>{U.onBlur(),C?.(N);},[U,C]);if(Z)return jsx(vo.Provider,{value:ne,children:jsx("div",{...J,className:y,style:Q,children:P})});let L=[];c&&L.push(h),j&&L.push(k);let M=L.length>0?L.join(" "):void 0;return jsxs("div",{...J,className:y,style:Q,children:[s&&jsxs("label",{id:g,htmlFor:$,"data-compa11y-textarea-label":"",style:m?{}:{display:"block",color:b?"var(--compa11y-textarea-disabled-color, #999)":"var(--compa11y-textarea-label-color, inherit)",fontSize:"var(--compa11y-textarea-label-size, 0.875rem)",fontWeight:"var(--compa11y-textarea-label-weight, 500)"},children:[s,a&&jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:m?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsx("textarea",{ref:Y,id:$,rows:e,value:B,onChange:be,onFocus:v,onBlur:E,disabled:b,readOnly:l,required:a,placeholder:x,name:d,autoComplete:T,maxLength:R,minLength:S,"aria-label":s?void 0:f,"aria-labelledby":!s&&u?u:s?g:void 0,"aria-describedby":M,"aria-invalid":j?"true":void 0,"aria-required":a?"true":void 0,"data-compa11y-textarea-field":"",style:m?{}:{width:"100%",padding:"var(--compa11y-textarea-padding, 0.5rem 0.75rem)",border:j?"1px solid var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border, 1px solid #ccc)",borderRadius:"var(--compa11y-textarea-radius, 4px)",fontSize:"var(--compa11y-textarea-font-size, 0.875rem)",fontFamily:"inherit",lineHeight:"1.5",resize:n,background:b?"var(--compa11y-textarea-disabled-bg, #f5f5f5)":l?"var(--compa11y-textarea-readonly-bg, #f9f9f9)":"var(--compa11y-textarea-bg, white)",color:"inherit",cursor:b?"not-allowed":void 0,opacity:b?"var(--compa11y-textarea-disabled-opacity, 0.7)":void 0,...w&&!b?{outline:j?"2px solid var(--compa11y-textarea-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:j?"var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border-focus, #0066cc)"}:{}}}),c&&jsx("div",{id:h,"data-compa11y-textarea-hint":"",style:m?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:c}),j&&jsx("div",{id:k,role:"alert","data-compa11y-textarea-error":"",style:m?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:o})]})});et.displayName="Textarea";var To=Object.assign(et,{Label:Xe,Field:Ze,Hint:Je,Error:Qe});var Qn={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},Ro=forwardRef(function({focusable:t=false,style:i,children:r,...e},n){return jsx("span",{ref:n,"data-compa11y-visually-hidden":true,"data-focusable":t||void 0,style:t?void 0:{...Qn,...i},...e,children:r})});var rr={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},ar={position:"fixed",top:"0.5rem",left:"0.5rem",zIndex:99999,width:"auto",height:"auto",padding:"0.75rem 1.5rem",margin:0,overflow:"visible",clip:"auto",whiteSpace:"normal",background:"#0066cc",color:"white",fontSize:"1rem",fontWeight:600,borderRadius:"4px",border:"2px solid transparent",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.2)",outline:"2px solid #0066cc",outlineOffset:"2px",textDecoration:"none"},Co=forwardRef(function({target:t="#main-content",unstyled:i=false,children:r,style:e,onClick:n,...s},c){let[o,a]=tr.useState(false),b=useCallback(f=>{let u=document.querySelector(t);u&&(f.preventDefault(),!u.hasAttribute("tabindex")&&u.tabIndex<0&&u.setAttribute("tabindex","-1"),u.focus(),u.scrollIntoView({behavior:"smooth",block:"start"})),n?.(f);},[t,n]),l=i?e:o?{...ar,...e}:{...rr,...e};return jsx("a",{ref:c,href:t,"data-compa11y-skip-link":true,"data-focused":o||void 0,style:l,onFocus:()=>a(true),onBlur:()=>a(false),onClick:b,...s,children:r||"Skip to main content"})});var cr={info:"\u2139\uFE0F",success:"\u2705",warning:"\u26A0\uFE0F",error:"\u274C"},So={info:"#3b82f6",success:"#22c55e",warning:"#f59e0b",error:"#ef4444"},ur={display:"flex",alignItems:"flex-start",gap:"0.75rem",padding:"0.75rem 1rem",background:"white",border:"1px solid #e0e0e0",borderRadius:"6px"},dr={flexShrink:0,fontSize:"1.25rem",lineHeight:1,marginTop:"0.125rem"},pr={flex:1,minWidth:0},br={fontWeight:600,fontSize:"0.875rem",marginBottom:"0.125rem"},fr={color:"#555",fontSize:"0.8125rem"},mr={appearance:"none",background:"none",border:"none",padding:0,margin:0,font:"inherit",cursor:"pointer",flexShrink:0,width:"1.5rem",height:"1.5rem",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px",color:"#999",fontSize:"1.125rem",lineHeight:1},Eo=forwardRef(function({type:t="info",title:i,dismissible:r=false,onDismiss:e,unstyled:n=false,children:s,style:c,...o},a){let b=t==="error"||t==="warning"?"alert":"status",l=useCallback(()=>{e?.();},[e]),f=n?c:{...ur,borderLeft:`4px solid ${So[t]}`,...c};return jsxs("div",{ref:a,role:b,"aria-live":b==="alert"?"assertive":"polite","data-compa11y-alert":true,"data-type":t,"data-dismissible":r||void 0,style:f,...o,children:[!n&&jsx("span",{"data-compa11y-alert-icon":true,"aria-hidden":"true",style:{...dr,color:So[t]},children:cr[t]}),jsxs("div",{"data-compa11y-alert-content":true,style:n?void 0:pr,children:[i&&jsx("div",{"data-compa11y-alert-title":true,style:n?void 0:br,children:i}),jsx("div",{"data-compa11y-alert-description":true,style:n?void 0:fr,children:s})]}),r&&jsx("button",{type:"button",onClick:l,"aria-label":"Dismiss alert","data-compa11y-alert-close":true,style:n?void 0:mr,children:"\xD7"})]})});export{Eo as Alert,Ct as Button,Qt as Checkbox,Ae as CheckboxBase,Fe as CheckboxGroup,Oe as CheckboxIndicator,mo as Input,_e as InputBase,qe as InputError,We as InputField,Ue as InputHint,je as InputLabel,so as Listbox,Ge as ListboxBase,Ke as ListboxGroup,$e as ListboxOption,Ne as Radio,to as RadioGroup,Ve as RadioGroupBase,_t as Select,lt as SelectBase,ut as SelectListbox,we as SelectOptionItem,ct as SelectTrigger,Co as SkipLink,ht as Switch,To as Textarea,et as TextareaBase,Qe as TextareaError,Ze as TextareaField,Je as TextareaHint,Xe as TextareaLabel,Ro as VisuallyHidden,bt as useCheckboxGroupContext,Bt as useFocusControl,Dt as useFocusManager,$t as useFocusNeighbor,Kt as useFocusReturn,oe as useFocusVisible,zt as useFocusWithin,Ce as useInputContext,ze as useListboxContext,yt as useRadioGroupContext,ot as useRovingTabindex,Gt as useRovingTabindexMap,Se as useTextareaContext};
|
|
1
|
+
export{k as Dialog,j as DialogActions,d as DialogBase,h as DialogClose,i as DialogContent,g as DialogDescription,f as DialogTitle,e as DialogTrigger,c as useDialogContext,a as useFocusTrap,b as useFocusTrapControls}from'./chunk-32AW37KT.js';export{i as ActionMenu,c as ActionMenuBase,e as ActionMenuContent,f as ActionMenuItem,h as ActionMenuLabel,g as ActionMenuSeparator,d as ActionMenuTrigger,a as useActionMenuContext}from'./chunk-QOY5G3EC.js';export{d as Tab,c as TabList,e as TabPanel,f as Tabs,b as TabsBase,a as useTabsContext}from'./chunk-L6H47IF4.js';export{b as ToastProvider,c as ToastViewport,a as useToast,d as useToastHelpers}from'./chunk-IFZVKAUZ.js';export{e as Combobox,a as ComboboxBase,b as ComboboxInput,c as ComboboxListbox,d as ComboboxOption}from'./chunk-HEA4NAOM.js';import {a}from'./chunk-MD4AVTLT.js';export{c as useAnnounceLoading,b as useAnnounceOnChange,a as useAnnouncer}from'./chunk-MD4AVTLT.js';import {e,a as a$1}from'./chunk-VMM4K2K4.js';export{d as useGridKeyboard,f as useKeyPressed,a as useKeyboard,b as useMenuKeyboard,c as useTabsKeyboard,e as useTypeAhead}from'./chunk-VMM4K2K4.js';import {a as a$2}from'./chunk-IZ7LLPPV.js';export{a as useId,c as useIdScope,b as useIds}from'./chunk-IZ7LLPPV.js';import ka,{createContext,forwardRef,useCallback,useRef,useState,useEffect,useLayoutEffect,useMemo,useContext,Children,useId}from'react';import {createComponentWarnings,initFocusVisible,isFocusVisible,focusWithVisibleRing,findFocusNeighbor,createFocusReturn}from'@compa11y/core';export{announce,announceAssertive,announceError,announcePolite,announceProgress,announceStatus,aria,buildAriaProps,checks,createComponentWarnings,hasAccessibleName,isAndroid,isBrowser,isIOS,isMac,mergeAriaIds,prefersDarkMode,prefersHighContrast,prefersReducedMotion,setWarningHandler,warn}from'@compa11y/core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {createPortal}from'react-dom';function ne(){let[s,e]=useState(false);useEffect(()=>initFocusVisible(),[]);let a=useCallback(()=>{e(isFocusVisible());},[]),o=useCallback(()=>{e(false);},[]);return {isFocusVisible:s,focusProps:{onFocus:a,onBlur:o}}}function wo(s={}){let{autoFocus:e=false,restoreFocus:a=false,focusVisible:o=true}=s,t=useCallback(r=>{r&&e&&requestAnimationFrame(()=>{o?focusWithVisibleRing(r):r.focus();});},[e,o]);return useEffect(()=>{if(!a)return;let r=document.activeElement;return ()=>{r&&r.focus&&r.focus();}},[a]),t}function Fo(){let s=useCallback(a=>{},[]),e=useCallback(a=>{let o=s;o.current&&(a?.visible?focusWithVisibleRing(o.current):o.current.focus());},[]);return {ref:s,focus:e}}function Ao(){let[s,e]=useState(false),a=useCallback(r=>{},[]),o=useCallback(()=>{e(true);},[]),t=useCallback(r=>{let i=r.currentTarget,d=r.relatedTarget;(!d||!i.contains(d))&&e(false);},[]);return {ref:a,hasFocus:s,focusWithinProps:{onFocus:o,onBlur:t}}}function Tt(s){let{itemCount:e,initialIndex:a=0,wrap:o=true,orientation:t="both",onChange:r}=s,[i,d]=useState(a),n=useRef([]);useEffect(()=>{i>=e&&d(Math.max(0,e-1));},[e,i]);let c=useCallback(u=>{let p=u;p<0?p=o?e-1:0:p>=e&&(p=o?0:e-1),d(p),r?.(p),n.current[p]?.focus();},[e,o,r]),b=useCallback((u,p)=>{let m=false;switch(u.key){case "ArrowRight":(t==="horizontal"||t==="both")&&(c(p+1),m=true);break;case "ArrowLeft":(t==="horizontal"||t==="both")&&(c(p-1),m=true);break;case "ArrowDown":(t==="vertical"||t==="both")&&(c(p+1),m=true);break;case "ArrowUp":(t==="vertical"||t==="both")&&(c(p-1),m=true);break;case "Home":c(0),m=true;break;case "End":c(e-1),m=true;break}m&&(u.preventDefault(),u.stopPropagation());},[t,c,e]),l=useCallback(u=>({ref:p=>{n.current[u]=p;},tabIndex:u===i?0:-1,onKeyDown:p=>b(p,u),onFocus:()=>{u!==i&&(d(u),r?.(u));}}),[i,b,r]);return {activeIndex:i,setActiveIndex:c,getItemProps:l,first:()=>c(0),last:()=>c(e-1),next:()=>c(i+1),previous:()=>c(i-1)}}function ko(s,e={}){let a=Tt({...e,itemCount:s.length}),o=useCallback(r=>{let i=s.indexOf(r);if(i===-1)throw new Error(`Unknown item ID: ${r}`);return a.getItemProps(i)},[s,a]),t=s[a.activeIndex];return {...a,activeId:t,getItemProps:o,setActiveId:r=>{let i=s.indexOf(r);i!==-1&&a.setActiveIndex(i);}}}function Oo(s){let e=useRef(null),a=useRef(s);a.current=s;let o=useCallback(()=>e.current?findFocusNeighbor(e.current,a.current):null,[]),t=useCallback(()=>{o()?.focus();},[o]);return {ref:e,getNeighbor:o,focusNeighbor:t}}function Vo(){let s=useRef(createFocusReturn()),e=useCallback(t=>{s.current.save(t);},[]),a=useCallback(t=>{s.current.return(t);},[]),o=useCallback(()=>{s.current.clear();},[]);return {save:e,returnFocus:a,clear:o}}var Qr=createComponentWarnings("Select"),zo=createContext(null);function Ht(){let s=useContext(zo);if(!s)throw new Error("Select compound components must be used within a Select component");return s}function Do(s,e,a){let o=s.length,t=e+a;t<0&&(t=o-1),t>=o&&(t=0);let r=t;for(;s[t]?.disabled;)if(t+=a,t<0&&(t=o-1),t>=o&&(t=0),t===r)return -1;return t}function No(s){return s.findIndex(e=>!e.disabled)}function Bo(s){for(let e=s.length-1;e>=0;e--)if(!s[e]?.disabled)return e;return -1}function Et({options:s,value:e,defaultValue:a,onValueChange:o,disabled:t=false,placeholder:r="Select an option...","aria-label":i,"aria-labelledby":d,children:n}){let[c,b]=useState(a??null),[l,u]=useState(false),[p,m]=useState(-1),f=useRef(null),R=e!==void 0?e:c,T=a$2("select-trigger"),P=a$2("select-listbox"),v=a$2("select-option"),x=useCallback(H=>{e===void 0&&b(H),o?.(H);},[e,o]),h=useCallback(H=>`${v}-${H}`,[v]),I=useCallback(H=>{x(H.value),u(false),m(-1),f.current?.focus();},[x]);useEffect(()=>{!i&&!d&&Qr.warning("Select has no accessible label.","Add aria-label or aria-labelledby prop.");},[i,d]);let C={selectedValue:R,setSelectedValue:x,isOpen:l,setIsOpen:u,highlightedIndex:p,setHighlightedIndex:m,options:s,triggerId:T,listboxId:P,getOptionId:h,onSelect:I,triggerRef:f,placeholder:r,disabled:t};return jsx(zo.Provider,{value:C,children:jsx("div",{"data-compa11y-select":true,"data-disabled":t||void 0,children:n})})}var It=forwardRef(function({placeholder:e$1,onKeyDown:a$2,onClick:o,onBlur:t,...r},i){let{selectedValue:d,isOpen:n,setIsOpen:c,highlightedIndex:b,setHighlightedIndex:l,options:u,triggerId:p,listboxId:m,getOptionId:f,onSelect:R,triggerRef:T,placeholder:P,disabled:v}=Ht(),x=e$1??P,{announce:h}=a(),I=e(u.map(g=>g.label),g=>{let A=u.findIndex(O=>O.label===g&&!O.disabled);A>=0&&(n||c(true),l(A));},{disabled:v}),C=useCallback((g=false)=>{c(true);let A=u.findIndex(O=>O.value===d);A>=0?l(A):l(g?Bo(u):No(u));},[u,d,c,l]),H=a$1({ArrowDown:()=>{if(!n)C();else {let g=Do(u,b,1);g>=0&&l(g);}},ArrowUp:()=>{if(!n)C(true);else {let g=Do(u,b,-1);g>=0&&l(g);}},Enter:()=>{if(n&&b>=0){let g=u[b];g&&!g.disabled&&(R(g),h(`${g.label} selected`));}else n||C();},Space:()=>{if(n&&b>=0){let g=u[b];g&&!g.disabled&&(R(g),h(`${g.label} selected`));}else n||C();},Escape:()=>{n&&(c(false),l(-1));},Home:()=>{n&&l(No(u));},End:()=>{n&&l(Bo(u));},Tab:()=>(n&&(c(false),l(-1)),false)},{preventDefault:true,stopPropagation:false}),F=g=>{a$2?.(g),g.defaultPrevented||H.onKeyDown(g),g.defaultPrevented||I.onKeyDown(g);},w=g=>{o?.(g),!g.defaultPrevented&&!v&&(n?(c(false),l(-1)):C());},D=g=>{t?.(g),setTimeout(()=>{c(false),l(-1);},150);},z=n&&b>=0?f(b):void 0,y=u.find(g=>g.value===d),k=y?.label??x,S=useCallback(g=>{T.current=g,typeof i=="function"?i(g):i&&(i.current=g);},[i,T]);return jsxs("button",{ref:S,id:p,type:"button",role:"combobox","aria-expanded":n,"aria-controls":m,"aria-haspopup":"listbox","aria-activedescendant":z,disabled:v,onKeyDown:F,onClick:w,onBlur:D,"data-compa11y-select-trigger":true,"data-placeholder":!y||void 0,...r,children:[jsx("span",{"data-compa11y-select-value":true,children:k}),jsx("span",{"aria-hidden":"true","data-compa11y-select-chevron":true,children:"\u25BC"})]})}),Lt=forwardRef(function({children:e,style:a$1,...o},t){let{isOpen:r,options:i,listboxId:d,triggerId:n}=Ht(),{announce:c}=a(),b=useRef(null),[l,u]=useState("bottom");useEffect(()=>{r&&c(`${i.length} option${i.length===1?"":"s"} available`);},[r,i.length,c]),useLayoutEffect(()=>{if(r&&b.current){let T=b.current.getBoundingClientRect(),v=window.innerHeight-T.top,x=T.top,h=Math.min(T.height,200);v<h+50&&x>v?u("top"):u("bottom");}},[r]);let p=R=>{R.preventDefault();},m=useCallback(R=>{b.current=R,typeof t=="function"?t(R):t&&(t.current=R);},[t]);return r?jsx("ul",{ref:m,id:d,role:"listbox","aria-labelledby":n,style:{...a$1,...l==="top"?{bottom:"100%",top:"auto",marginBottom:"4px",marginTop:0}:{}},onMouseDown:p,"data-compa11y-select-listbox":true,"data-position":l,...o,children:e??i.map((R,T)=>jsx(We,{option:R,index:T},R.value))}):null}),We=forwardRef(function({option:e,index:a$1,onClick:o,onMouseEnter:t,...r},i){let{selectedValue:d,highlightedIndex:n,setHighlightedIndex:c,getOptionId:b,onSelect:l}=Ht(),{announce:u}=a(),p=useRef(null),m=d===e.value,f=n===a$1,R=b(a$1);useEffect(()=>{f&&p.current&&p.current.scrollIntoView({block:"nearest",behavior:"smooth"});},[f]);let T=x=>{o?.(x),!x.defaultPrevented&&!e.disabled&&(l(e),u(`${e.label} selected`));},P=x=>{t?.(x),e.disabled||c(a$1);},v=useCallback(x=>{p.current=x,typeof i=="function"?i(x):i&&(i.current=x);},[i]);return jsxs("li",{ref:v,id:R,role:"option","aria-selected":m,"aria-disabled":e.disabled,"data-highlighted":f,"data-selected":m,"data-disabled":e.disabled,onClick:T,onMouseEnter:P,"data-compa11y-select-option":true,...r,children:[jsx("span",{"data-compa11y-select-option-text":true,children:e.label}),m&&jsx("span",{"aria-hidden":"true","data-compa11y-select-check":true,children:"\u2713"})]})}),$o=Object.assign(Et,{Trigger:It,Listbox:Lt,Option:We});var Ko=createComponentWarnings("Checkbox"),ra=()=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsx("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),aa=()=>jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsx("path",{d:"M3 6H9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),qo=createContext(null);function Ft(){return useContext(qo)}var Ke=forwardRef(function({value:e,defaultValue:a=[],onValueChange:o,disabled:t=false,legend:r,error:i,orientation:d="vertical",name:n,unstyled:c=false,className:b="",children:l,"aria-label":u,"aria-labelledby":p},m){let f=a$2("checkbox-group"),R=n||f,T=a$2("checkbox-group-error"),[P,v]=useState(a),x=e!==void 0,h=x?e:P;useEffect(()=>{!r&&!u&&!p&&Ko.warning("CheckboxGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[r,u,p]);let I=useCallback((y,k)=>{let S=x?e:P,g=k?[...S,y]:S.filter(A=>A!==y);x||v(g),o?.(g);},[x,e,P,o]),C={name:R,value:h,disabled:t,unstyled:c,onCheckboxChange:I},H=!!i,F={border:"none",margin:0,padding:0,minWidth:0},w=c?{padding:0,marginBottom:"0.5rem"}:{padding:0,marginBottom:"0.5rem",fontWeight:600},D={display:"flex",flexDirection:d==="horizontal"?"row":"column",flexWrap:d==="horizontal"?"wrap":void 0,gap:"var(--compa11y-checkbox-group-gap, 0.75rem)"},z=c?{marginTop:"0.25rem"}:{color:"var(--compa11y-checkbox-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"};return jsx(qo.Provider,{value:C,children:jsxs("fieldset",{ref:m,className:b,"aria-label":u,"aria-labelledby":p,"aria-describedby":H?T:void 0,disabled:t,"data-compa11y-checkbox-group":"","data-orientation":d,"data-disabled":t?"true":void 0,style:F,children:[r&&jsx("legend",{"data-compa11y-checkbox-group-legend":"",style:w,children:r}),jsx("div",{style:D,children:l}),H&&jsx("div",{id:T,role:"alert","data-compa11y-checkbox-group-error":"",style:z,children:i})]})})});Ke.displayName="CheckboxGroup";var qe=forwardRef(function({checked:e,defaultChecked:a$1=false,onCheckedChange:o,indeterminate:t=false,label:r,hint:i,error:d,disabled:n=false,value:c,required:b=false,unstyled:l,className:u="",size:p="md",name:m,"aria-label":f,"aria-labelledby":R,"aria-describedby":T,onClick:P,onFocus:v,onBlur:x,...h},I){let C=Ft(),H=a$2("checkbox"),F=`${H}-input`,w=`${H}-label`,D=`${H}-hint`,z=`${H}-error`,{announce:y}=a(),{isFocusVisible:k,focusProps:S}=ne(),g=C!==null,A=g&&C.disabled||n,O=l??(g?C.unstyled:false),G=g?C.name:m,[_,N]=useState(a$1),U=g?C.value.includes(c||""):e!==void 0?e:_,K=useRef(null),q=useCallback(pe=>{K.current=pe,typeof I=="function"?I(pe):I&&(I.current=pe);},[I]);useEffect(()=>{K.current&&(K.current.indeterminate=t);},[t]),useEffect(()=>{!r&&!f&&!R&&Ko.warning("Checkbox has no accessible label. Screen readers need this to identify the checkbox.",'Add label="...", aria-label="...", or aria-labelledby="..."');},[r,f,R]);let W=useCallback(pe=>{let ze=pe.target.checked;g?C.onCheckboxChange(c||"",ze):(e===void 0&&N(ze),o?.(ze)),y(`${typeof r=="string"?r:f||"Checkbox"} ${ze?"checked":"unchecked"}`);},[g,C,c,e,o,r,f,y]),Q=useCallback(pe=>{S.onFocus(),v?.(pe);},[S,v]),re=useCallback(pe=>{S.onBlur(),x?.(pe);},[S,x]),ee=!!r,te=!!i,ae=!!d,Z=[];T&&Z.push(T),te&&Z.push(D),ae&&Z.push(z);let fe=Z.length?Z.join(" "):void 0,L={sm:{box:16},md:{box:20},lg:{box:24}}[p],M={display:"inline-flex",alignItems:"flex-start",gap:"0.5rem",cursor:A?"not-allowed":"pointer",userSelect:"none",...A&&!O?{opacity:.5}:{}},V={position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},$={position:"absolute",opacity:0,width:"100%",height:"100%",margin:0,cursor:"inherit",zIndex:1},Y=O?{}:{width:L.box,height:L.box,minWidth:24,minHeight:24,border:U||t?"var(--compa11y-checkbox-checked-border, 2px solid #0066cc)":"var(--compa11y-checkbox-border, 2px solid #666)",borderRadius:"var(--compa11y-checkbox-radius, 3px)",background:U||t?"var(--compa11y-checkbox-checked-bg, #0066cc)":"var(--compa11y-checkbox-bg, white)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.15s ease",pointerEvents:"none",color:"var(--compa11y-checkbox-check-color, white)",...k?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}},Se={display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},sr=O?{cursor:"inherit"}:{cursor:"inherit",color:"var(--compa11y-checkbox-label-color, inherit)"},lr=O?{}:{color:"var(--compa11y-checkbox-hint-color, #666)",fontSize:"0.8125rem"},cr=O?{}:{color:"var(--compa11y-checkbox-error-color, #ef4444)",fontSize:"0.8125rem"};return jsxs("div",{className:u,"data-compa11y-checkbox":"","data-checked":U?"true":"false","data-indeterminate":t?"true":void 0,"data-disabled":A?"true":void 0,"data-size":p,style:M,children:[jsxs("div",{style:V,children:[jsx("input",{ref:q,type:"checkbox",id:F,name:G,value:c,checked:U,onChange:W,onClick:P,onFocus:Q,onBlur:re,disabled:A,required:b,"aria-required":b||void 0,"aria-invalid":ae||void 0,"aria-label":!ee&&!R?f:void 0,"aria-labelledby":R||(ee?w:void 0),"aria-describedby":fe,"aria-checked":t?"mixed":U,tabIndex:A?-1:0,style:$,...h}),!O&&jsxs("div",{"data-compa11y-checkbox-indicator":"","aria-hidden":"true",style:Y,children:[U&&!t&&jsx(ra,{}),t&&jsx(aa,{})]})]}),(ee||te||ae)&&jsxs("div",{style:Se,children:[ee&&jsxs("label",{htmlFor:F,id:w,"data-compa11y-checkbox-label":"",style:sr,children:[r,b&&jsx("span",{"aria-hidden":"true",style:{color:"var(--compa11y-checkbox-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),te&&jsx("div",{id:D,"data-compa11y-checkbox-hint":"",style:lr,children:i}),ae&&jsx("div",{id:z,role:"alert","data-compa11y-checkbox-error":"",style:cr,children:d})]})]})});qe.displayName="Checkbox";var je=forwardRef(function({children:e,className:a},o){return jsx("div",{ref:o,className:a,"data-compa11y-checkbox-indicator":"","aria-hidden":"true",children:e})});je.displayName="CheckboxIndicator";var jo=Object.assign(qe,{Group:Ke,Indicator:je});var da=createComponentWarnings("RadioGroup"),Ot=createContext(null);function Vt(){let s=useContext(Ot);if(!s)throw new Error("[Compa11y RadioGroup]: Radio must be used within a RadioGroup.");return s}var Ue=forwardRef(function({value:e,defaultValue:a,onValueChange:o,disabled:t=false,discoverable:r=true,required:i=false,orientation:d="vertical",name:n,legend:c,hint:b,error:l,unstyled:u=false,className:p="",children:m,"aria-label":f,"aria-labelledby":R},T){let P=a$2("radiogroup"),v=n||P,x=a$2("radiogroup-hint"),h=a$2("radiogroup-error"),[I,C]=useState(a??null),H=e!==void 0,F=H?e:I,w=useRef(new Map);useEffect(()=>{!c&&!f&&!R&&da.warning("RadioGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[c,f,R]);let D=useCallback(q=>{t||(H||C(q),o?.(q));},[t,H,o]),z=useCallback((q,W)=>{w.current.set(q,W);},[]),y=useCallback(q=>{w.current.delete(q);},[]),k=useCallback((q,W)=>{w.current.set(q,W);},[]),S=useCallback(()=>{let q=[];return w.current.forEach((W,Q)=>{!W&&!t&&q.push(Q);}),q},[t]),g=useRef(null),A=T||g,O=useCallback(q=>{let W=S();if(W.length===0)return;let Q=F?W.indexOf(F):-1,re;switch(q){case "next":re=Q<0?0:(Q+1)%W.length;break;case "prev":re=Q<0?W.length-1:(Q-1+W.length)%W.length;break;case "first":re=0;break;case "last":re=W.length-1;break}let ee=W[re];if(ee!==void 0){D(ee);let te=typeof A=="object"&&A?A.current:null;te&&te.querySelector(`input[type="radio"][value="${CSS.escape(ee)}"]`)?.focus();}},[S,F,D,A]),G=a$1({ArrowDown:()=>O("next"),ArrowRight:()=>O("next"),ArrowUp:()=>O("prev"),ArrowLeft:()=>O("prev"),Home:()=>O("first"),End:()=>O("last")},{preventDefault:true,stopPropagation:true,disabled:t}),_={name:v,value:F??null,disabled:t,discoverable:r,required:i,unstyled:u,orientation:d,onValueChange:D,registerRadio:z,unregisterRadio:y,updateRadioDisabled:k},N=[];b&&N.push(x),l&&N.push(h);let U=N.length>0?N.join(" "):void 0,K=jsxs(Fragment,{children:[jsx("div",{style:u?{display:"flex",flexDirection:d==="horizontal"?"row":"column"}:{display:"flex",flexDirection:d==="horizontal"?"row":"column",gap:"var(--compa11y-radio-gap, 0.75rem)"},children:m}),b&&jsx("div",{id:x,style:u?{}:{color:"var(--compa11y-radio-group-hint-color, #666)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:b}),l&&jsx("div",{id:h,role:"alert",style:u?{}:{color:"var(--compa11y-radio-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:l})]});return c?jsx(Ot.Provider,{value:_,children:jsxs("fieldset",{ref:A,role:"radiogroup","aria-label":f,"aria-labelledby":R,"aria-orientation":d,"aria-required":i||void 0,"aria-disabled":t||void 0,"aria-invalid":l?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${p}`.trim(),"data-compa11y-radiogroup":"","data-orientation":d,"data-disabled":t?"true":void 0,"data-error":l?"true":void 0,onKeyDown:G.onKeyDown,style:u?{border:"none",margin:0,padding:0,minWidth:0}:{border:"none",margin:0,padding:0,minWidth:0},children:[jsxs("legend",{style:u?{}:{padding:0,marginBottom:"var(--compa11y-radio-group-legend-gap, 0.5rem)",fontWeight:"var(--compa11y-radio-group-legend-weight, 600)",color:"var(--compa11y-radio-group-legend-color, inherit)",fontSize:"var(--compa11y-radio-group-legend-size, 1rem)"},children:[c,i&&!u&&jsxs("span",{"aria-hidden":"true",style:{color:"var(--compa11y-radio-group-required-color, #ef4444)",marginLeft:"0.125rem"},children:[" ","*"]})]}),K]})}):jsx(Ot.Provider,{value:_,children:jsx("div",{ref:A,role:"radiogroup","aria-label":f,"aria-labelledby":R,"aria-orientation":d,"aria-required":i||void 0,"aria-disabled":t||void 0,"aria-invalid":l?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${p}`.trim(),"data-compa11y-radiogroup":"","data-orientation":d,"data-disabled":t?"true":void 0,"data-error":l?"true":void 0,onKeyDown:G.onKeyDown,children:K})})});Ue.displayName="RadioGroup";var _e=forwardRef(function({value:e,disabled:a$1=false,discoverable:o,label:t,hint:r,unstyled:i,className:d="",children:n,"aria-label":c},b){let l=Vt(),u=a$2("radio"),p=a$2("radio-hint"),m=l.disabled||a$1,f=o??l.discoverable,R=i??l.unstyled,T=l.value===e,{announce:P}=a(),{isFocusVisible:v,focusProps:x}=ne(),h=useRef(null),I=useCallback(G=>{h.current=G,typeof b=="function"?b(G):b&&(b.current=G);},[b]);useEffect(()=>(l.registerRadio(e,m),()=>l.unregisterRadio(e)),[e]),useEffect(()=>{l.updateRadioDisabled(e,m);},[m,e]);let C=useCallback(G=>{if(m){G.preventDefault();return}l.onValueChange(e),P(`${t||(typeof n=="string"?n:null)||e} selected`,{politeness:"polite"});},[m,l,e,t,n,P]),H=useCallback(G=>{m&&G.preventDefault();},[m]),F=useCallback(G=>{x.onFocus(),!T&&!m&&l.onValueChange(e);},[x,T,m,l,e]),w=useCallback(()=>{x.onBlur();},[x]),D=!!(n||t),z=n||t,y=`${u}-label`,k=!!r,S=(()=>{if(l.value!==null)return false;let G=Array.from(h.current?.closest('[role="radiogroup"]')?.querySelectorAll('input[type="radio"]')??[]);for(let _ of G){let N=_;if(!N.disabled&&N.getAttribute("aria-disabled")!=="true")return N.value===e}return false})(),g=m&&!f?-1:T||l.value===null&&S?0:-1,A=m&&!f,O=k?p:void 0;return jsxs("label",{htmlFor:u,className:`compa11y-radio-wrapper ${d}`.trim(),"data-compa11y-radio":"","data-value":e,"data-checked":T?"true":"false","data-disabled":m?"true":void 0,style:R?{display:"inline-flex",alignItems:"flex-start",cursor:m?"not-allowed":"pointer",gap:"0.5rem"}:{display:"inline-flex",alignItems:"flex-start",gap:"var(--compa11y-radio-gap, 0.5rem)",cursor:m?"not-allowed":"pointer",userSelect:"none",opacity:m?.5:1},children:[jsxs("div",{style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[jsx("input",{ref:I,type:"radio",id:u,name:l.name,value:e,checked:T,onChange:C,onClick:H,onFocus:F,onBlur:w,disabled:A,tabIndex:g,"aria-disabled":m?"true":void 0,"aria-label":D?void 0:c,"aria-labelledby":D?y:void 0,"aria-describedby":O,required:l.required,className:"compa11y-radio-input",style:{position:"absolute",opacity:0,width:"var(--compa11y-radio-size, 1.25rem)",height:"var(--compa11y-radio-size, 1.25rem)",margin:0,cursor:m?"not-allowed":"pointer"}}),!R&&jsx("div",{className:"compa11y-radio-circle",style:{width:"var(--compa11y-radio-size, 1.25rem)",height:"var(--compa11y-radio-size, 1.25rem)",minWidth:"24px",minHeight:"24px",border:T?"var(--compa11y-radio-checked-border, 2px solid #0066cc)":"var(--compa11y-radio-border, 2px solid #666)",borderRadius:"50%",background:T?"var(--compa11y-radio-checked-bg, #0066cc)":"var(--compa11y-radio-bg, white)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.15s ease",pointerEvents:"none",...v?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}},children:jsx("div",{"aria-hidden":"true",style:{width:"var(--compa11y-radio-dot-size, 0.5rem)",height:"var(--compa11y-radio-dot-size, 0.5rem)",borderRadius:"50%",background:"var(--compa11y-radio-dot-color, white)",opacity:T?1:0,transform:T?"scale(1)":"scale(0)",transition:"all 0.15s ease"}})})]}),(D||k)&&jsxs("div",{style:R?{}:{display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},children:[D&&jsx("span",{id:y,className:"compa11y-radio-label",style:R?{}:{color:"var(--compa11y-radio-label-color, inherit)",fontSize:"var(--compa11y-radio-label-size, 1rem)"},children:z}),k&&jsx("span",{id:p,className:"compa11y-radio-hint",style:R?{}:{color:"var(--compa11y-radio-hint-color, #666)",fontSize:"var(--compa11y-radio-hint-size, 0.8125rem)"},children:r})]})]})});_e.displayName="Radio";var _o=Object.assign(Ue,{Radio:_e});var xa=createComponentWarnings("Switch"),Nt=forwardRef(function({checked:e,defaultChecked:a$3=false,onCheckedChange:o,label:t,disabled:r=false,unstyled:i=false,className:d,size:n="md","aria-label":c,"aria-labelledby":b,onClick:l,...u},p){let f=`${a$2("switch")}-label`,{announce:R}=a(),{isFocusVisible:T,focusProps:P}=ne(),[v,x]=useState(a$3),h=e!==void 0,I=h?e:v;useEffect(()=>{!t&&!c&&!b&&xa.warning("Switch has no accessible label. Screen readers need this to identify the switch.",'Add label="Description", aria-label="...", or aria-labelledby="..."');},[t,c,b]);let C=useCallback(()=>{if(r)return;let N=!I;h||x(N),o?.(N),R(`${t||c||"Switch"} ${N?"on":"off"}`);},[I,r,h,o,t,c,R]),H=useCallback(N=>{l?.(N),N.defaultPrevented||C();},[l,C]),F=a$1({Space:()=>{C();},Enter:()=>{C();}},{preventDefault:true}),w=N=>{u.onKeyDown?.(N),N.defaultPrevented||F.onKeyDown(N);},D=c,z=b||(t?f:void 0),y={display:"inline-flex",alignItems:"center"},S={sm:{width:32,height:18,thumb:14,translate:14},md:{width:44,height:24,thumb:20,translate:20},lg:{width:56,height:30,thumb:26,translate:26}}[n],g={position:"relative",display:"inline-flex",alignItems:"center",flexShrink:0,width:S.width,height:S.height,border:"none",padding:2,cursor:r?"not-allowed":"pointer"},A=i?{}:{backgroundColor:I?"#0066cc":"#d1d5db",borderRadius:S.height/2,transition:"background-color 0.2s ease",opacity:r?.5:1},O={position:"absolute",left:2,width:S.thumb,height:S.thumb,pointerEvents:"none",transform:I?`translateX(${S.translate}px)`:"translateX(0)"},G=i?{}:{backgroundColor:"white",borderRadius:"50%",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)",transition:"transform 0.2s ease"},_=i?{marginLeft:8,userSelect:"none",cursor:r?"not-allowed":"pointer"}:{marginLeft:8,userSelect:"none",cursor:r?"not-allowed":"pointer",opacity:r?.5:1};return jsxs("div",{style:y,"data-compa11y-switch-wrapper":true,"data-size":n,children:[jsx("button",{ref:p,type:"button",role:"switch","aria-checked":I,"aria-label":D,"aria-labelledby":z,disabled:r,onClick:H,onKeyDown:w,className:d,style:{...g,...A,...!i&&T&&!r?{outline:"2px solid #0066cc",outlineOffset:"2px"}:{outline:"none"}},tabIndex:r?-1:0,"data-compa11y-switch":true,"data-checked":I,"data-disabled":r||void 0,"data-size":n,...u,onFocus:N=>{P.onFocus(),u.onFocus?.(N);},onBlur:N=>{P.onBlur(),u.onBlur?.(N);},children:jsx("span",{style:{...O,...G},"data-compa11y-switch-thumb":true,"aria-hidden":"true"})}),t&&jsx("label",{id:f,onClick:r?void 0:()=>C(),style:_,"data-compa11y-switch-label":true,children:t})]})});Nt.displayName="Switch";var ha=createComponentWarnings("Listbox"),Jo=createContext(null);function Xe(){let s=useContext(Jo);if(!s)throw new Error("[Compa11y Listbox]: Option/Group must be used within a Listbox.");return s}var Qo=createContext({groupDisabled:false}),Je=forwardRef(function({value:e$1,defaultValue:a$3,onValueChange:o,multiple:t=false,disabled:r=false,discoverable:i=true,orientation:d="vertical",unstyled:n=false,className:c="",children:b,"aria-label":l,"aria-labelledby":u},p){let m=a$2("listbox"),{announce:f}=a(),[R,T]=useState(()=>a$3??(t?[]:"")),P=e$1!==void 0,v=P?e$1:R,x=useMemo(()=>t?new Set(Array.isArray(v)?v:[]):new Set(v?[String(v)]:[]),[v,t]),[h,I]=useState(null),C=useRef(new Map),[H,F]=useState(0),w=useCallback((E,L,M)=>{C.current.set(E,{disabled:L,label:M}),F(V=>V+1);},[]),D=useCallback(E=>{C.current.delete(E),F(L=>L+1);},[]),z=useCallback((E,L)=>{let M=C.current.get(E);M&&C.current.set(E,{...M,disabled:L});},[]),y=useMemo(()=>{let E=[];return C.current.forEach((L,M)=>{!L.disabled&&!r&&E.push(M);}),E},[H,r]);useEffect(()=>{!l&&!u&&ha.warning("Listbox has no accessible label. Screen readers need this.",'Add aria-label="..." or aria-labelledby="..."');},[l,u]);let k=useCallback(E=>x.has(E),[x]),S=useCallback(E=>{if(r)return;let L=C.current.get(E);if(L?.disabled)return;let M,V=L?.label||E;if(t){let $=new Set(x);$.has(E)?($.delete(E),f(`${V} deselected`,{politeness:"polite"})):($.add(E),f(`${V} selected`,{politeness:"polite"})),M=Array.from($);}else M=E,f(`${V} selected`,{politeness:"polite"});P||T(M),o?.(M);},[r,t,x,P,o,f]),g=useCallback(E=>{if(y.length===0)return;let L=h?y.indexOf(h):-1,M;switch(E){case "next":M=L<0?0:Math.min(L+1,y.length-1);break;case "prev":M=L<0?y.length-1:Math.max(L-1,0);break;case "first":M=0;break;case "last":M=y.length-1;break}let V=y[M];if(V!==void 0)if(I(V),t){let Y=C.current.get(V)?.label||V,Se=x.has(V);f(`${Y}${Se?", selected":""}`,{politeness:"polite"});}else {let Y=C.current.get(V)?.label||V,Se=V;P||T(Se),o?.(Se),f(`${Y} selected`,{politeness:"polite"});}},[y,h,t,P,o,f,x]),A=useCallback(()=>{h&&t&&S(h);},[h,t,S]),O=useCallback(E=>{if(y.length===0)return;let L=h?y.indexOf(h):-1,M;E==="next"?M=L<0?0:Math.min(L+1,y.length-1):M=L<0?y.length-1:Math.max(L-1,0);let V=y[M];V!==void 0&&(I(V),S(V));},[y,h,S]),G=useCallback(()=>{if(!t||!h)return;let E=y.indexOf(h);if(E<0)return;let L=y.slice(0,E+1),M=new Set(x);L.forEach($=>M.add($));let V=Array.from(M);P||T(V),o?.(V),I(y[0]??null),f(`${L.length} items selected`,{politeness:"polite"});},[t,h,y,x,P,o,f]),_=useCallback(()=>{if(!t||!h)return;let E=y.indexOf(h);if(E<0)return;let L=y.slice(E),M=new Set(x);L.forEach($=>M.add($));let V=Array.from(M);P||T(V),o?.(V),I(y[y.length-1]??null),f(`${L.length} items selected`,{politeness:"polite"});},[t,h,y,x,P,o,f]),N=useCallback(()=>{if(!t)return;let E=y.every(M=>x.has(M)),L;E?(L=[],f("All deselected",{politeness:"polite"})):(L=[...y],f("All selected",{politeness:"polite"})),P||T(L),o?.(L);},[t,y,x,P,o,f]),U=useMemo(()=>{let E={ArrowDown:()=>g("next"),ArrowUp:()=>g("prev"),Home:()=>g("first"),End:()=>g("last")};return t&&(E.Space=()=>A(),E["Shift+ArrowDown"]=()=>O("next"),E["Shift+ArrowUp"]=()=>O("prev"),E["Ctrl+Shift+Home"]=()=>G(),E["Ctrl+Shift+End"]=()=>_(),E["Ctrl+a"]=()=>N(),E["Meta+a"]=()=>N()),E},[t,g,A,O,G,_,N]),K=a$1(U,{preventDefault:true,stopPropagation:true,disabled:r}),q=useMemo(()=>Array.from(C.current.values()).map(E=>E.label),[H]),W=e(q,E=>{for(let[L,M]of C.current.entries())if(M.label===E&&!M.disabled){if(I(L),!t){let V=L;P||T(V),o?.(V),f(`${E} selected`,{politeness:"polite"});}break}},{disabled:r}),Q=useCallback(E=>{K.onKeyDown(E),E.defaultPrevented||W.onKeyDown(E);},[K,W]),re=useCallback(()=>{if(!h){if(!t&&v&&typeof v=="string"){I(v);return}if(t&&Array.isArray(v)&&v.length>0){I(v[0]??null);return}y.length>0&&I(y[0]??null);}},[h,t,v,y]),ee=useCallback(()=>{},[]),te=useRef(null);useEffect(()=>{h&&te.current&&te.current.querySelector(`[data-value="${CSS.escape(h)}"]`)?.scrollIntoView({block:"nearest"});},[h]);let ae=useMemo(()=>({multiple:t,disabled:r,discoverable:i,unstyled:n,orientation:d,selectedValues:x,focusedValue:h,onSelect:S,onFocusOption:I,registerOption:w,unregisterOption:D,updateOptionDisabled:z,isSelected:k,listboxId:m}),[t,r,i,n,d,x,h,S,w,D,z,k,m]),Z=useCallback(E=>{te.current=E,typeof p=="function"?p(E):p&&(p.current=E);},[p]),fe=h?`${m}-option-${h}`:void 0;return jsx(Jo.Provider,{value:ae,children:jsx("div",{ref:Z,role:"listbox","aria-label":l,"aria-labelledby":u,"aria-orientation":d,"aria-multiselectable":t||void 0,"aria-disabled":r||void 0,"aria-activedescendant":fe,tabIndex:r&&!i?-1:0,className:`compa11y-listbox ${c}`.trim(),"data-compa11y-listbox":"","data-orientation":d,"data-disabled":r?"true":void 0,"data-multiple":t?"true":void 0,onKeyDown:Q,onFocus:re,onBlur:ee,style:n?{}:{width:"var(--compa11y-listbox-width, 250px)",maxHeight:"var(--compa11y-listbox-max-height, 300px)",overflowY:"auto",border:"var(--compa11y-listbox-border, 1px solid #e0e0e0)",borderRadius:"var(--compa11y-listbox-radius, 4px)",background:"var(--compa11y-listbox-bg, white)",padding:"var(--compa11y-listbox-padding, 0.25rem 0)",...r?{opacity:"var(--compa11y-listbox-disabled-opacity, 0.5)",cursor:"not-allowed"}:{}},children:b})})});Je.displayName="Listbox";var Qe=forwardRef(function({value:e,disabled:a=false,discoverable:o,unstyled:t,className:r="",children:i,"aria-label":d},n){let c=Xe(),{groupDisabled:b}=useContext(Qo),l=c.disabled||b||a,u=t??c.unstyled,p=c.isSelected(e),m=c.focusedValue===e,f=`${c.listboxId}-option-${e}`,R=useRef(""),T=useRef(null),P=useCallback(x=>{T.current=x,typeof n=="function"?n(x):n&&(n.current=x);},[n]);useEffect(()=>{let x=typeof i=="string"?i:T.current?.textContent?.trim()||e;return R.current=x,c.registerOption(e,l,x),()=>c.unregisterOption(e)},[e]),useEffect(()=>{c.updateOptionDisabled(e,l);},[l,e]);let v=useCallback(x=>{if(l){x.preventDefault();return}c.onFocusOption(e),c.onSelect(e);},[l,c,e]);return jsxs("div",{ref:P,id:f,role:"option","aria-selected":p,"aria-disabled":l||void 0,"aria-label":d,className:`compa11y-listbox-option ${r}`.trim(),"data-compa11y-listbox-option":"","data-value":e,"data-selected":p?"true":"false","data-focused":m?"true":"false","data-disabled":l?"true":void 0,onClick:v,style:u?{cursor:l?"not-allowed":"pointer"}:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--compa11y-listbox-option-padding, 0.5rem 0.75rem)",cursor:l?"not-allowed":"pointer",userSelect:"none",transition:"background 0.1s ease",background:m?p?"var(--compa11y-listbox-option-selected-hover-bg, #cce0ff)":"var(--compa11y-listbox-option-hover-bg, #f5f5f5)":p?"var(--compa11y-listbox-option-selected-bg, #e6f0ff)":"transparent",fontWeight:p?500:"normal",opacity:l?.5:1},children:[jsx("span",{style:{flex:1},children:i}),p&&!u&&jsx("span",{"aria-hidden":"true",style:{fontSize:"0.875rem",color:"var(--compa11y-listbox-check-color, #0066cc)",marginLeft:"0.5rem"},children:"\u2713"})]})});Qe.displayName="ListboxOption";var et=forwardRef(function({label:e,disabled:a=false,unstyled:o,className:t="",children:r},i){let d=Xe(),n=o??d.unstyled,c=a$2("listbox-group"),b=useMemo(()=>({groupDisabled:d.disabled||a}),[d.disabled,a]);return jsx(Qo.Provider,{value:b,children:jsxs("div",{ref:i,role:"group","aria-labelledby":c,"aria-disabled":a||void 0,className:`compa11y-listbox-group ${t}`.trim(),"data-compa11y-listbox-group":"","data-disabled":a?"true":void 0,style:n?{}:{opacity:a?.5:1},children:[jsx("div",{id:c,role:"presentation",style:n?{}:{padding:"var(--compa11y-listbox-group-label-padding, 0.5rem 0.75rem 0.25rem)",fontSize:"var(--compa11y-listbox-group-label-size, 0.75rem)",fontWeight:600,color:"var(--compa11y-listbox-group-label-color, #666)",textTransform:"uppercase",letterSpacing:"0.05em"},children:e}),r]})})});et.displayName="ListboxGroup";var en=Object.assign(Je,{Option:Qe,Group:et});var sn=createContext(null);function Le(){let s=useContext(sn);if(!s)throw new Error("[Compa11y Input]: Input sub-components (Input.Label, Input.Field, etc.) must be used within <Input>.");return s}var tt=forwardRef(function({children:e,className:a},o){let t=Le();return jsxs("label",{ref:o,id:t.labelId,htmlFor:t.fieldId,"data-compa11y-input-label":"",className:a,style:t.unstyled?{}:{display:"block",color:t.disabled?"var(--compa11y-input-disabled-color, #999)":"var(--compa11y-input-label-color, inherit)",fontSize:"var(--compa11y-input-label-size, 0.875rem)",fontWeight:"var(--compa11y-input-label-weight, 500)"},children:[e,t.required&&jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:t.unstyled?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]})});tt.displayName="InputLabel";var ot=forwardRef(function({type:e="text",onFocus:a,onBlur:o,className:t,style:r,...i},d){let n=Le(),c=useRef(null),b=useCallback(f=>{c.current=f,typeof d=="function"?d(f):d&&(d.current=f);},[d]),l=useCallback(f=>{n.setValue(f.target.value);},[n.setValue]),u=useCallback(f=>{n.focusProps.onFocus(),a?.(f);},[n.focusProps,a]),p=useCallback(f=>{n.focusProps.onBlur(),o?.(f);},[n.focusProps,o]),m=[];return n.hasHint&&m.push(n.hintId),n.hasError&&m.push(n.errorId),jsx("input",{ref:b,id:n.fieldId,type:e,value:n.value,onChange:l,onFocus:u,onBlur:p,disabled:n.disabled,readOnly:n.readOnly,"aria-describedby":m.join(" ")||void 0,"aria-invalid":n.hasError?"true":void 0,"aria-required":n.required?"true":void 0,"data-compa11y-input-field":"",className:t,style:n.unstyled?r:{width:"100%",padding:"var(--compa11y-input-padding, 0.5rem 0.75rem)",border:n.hasError?"1px solid var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border, 1px solid #ccc)",borderRadius:"var(--compa11y-input-radius, 4px)",fontSize:"var(--compa11y-input-font-size, 0.875rem)",fontFamily:"inherit",background:n.disabled?"var(--compa11y-input-disabled-bg, #f5f5f5)":n.readOnly?"var(--compa11y-input-readonly-bg, #f9f9f9)":"var(--compa11y-input-bg, white)",color:"inherit",cursor:n.disabled?"not-allowed":void 0,opacity:n.disabled?"var(--compa11y-input-disabled-opacity, 0.7)":void 0,...n.isFocusVisible&&!n.disabled?{outline:n.hasError?"2px solid var(--compa11y-input-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:n.hasError?"var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border-focus, #0066cc)"}:{},...r},...i})});ot.displayName="InputField";var nt=forwardRef(function({children:e,className:a},o){let t=Le();return useEffect(()=>(t.setHasHint(true),()=>t.setHasHint(false)),[]),jsx("div",{ref:o,id:t.hintId,"data-compa11y-input-hint":"",className:a,style:t.unstyled?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:e})});nt.displayName="InputHint";var rt=forwardRef(function({children:e,className:a},o){let t=Le();return e?jsx("div",{ref:o,id:t.errorId,role:"alert","data-compa11y-input-error":"",className:a,style:t.unstyled?{}:{color:"var(--compa11y-input-error-color, #ef4444)",fontSize:"var(--compa11y-input-error-size, 0.8125rem)"},children:e}):null});rt.displayName="InputError";var at=forwardRef(function({value:e,defaultValue:a="",onValueChange:o,type:t="text",label:r,hint:i,error:d,required:n=false,disabled:c=false,readOnly:b=false,"aria-label":l,"aria-labelledby":u,placeholder:p,name:m,autoComplete:f,maxLength:R,minLength:T,pattern:P,inputMode:v,id:x,unstyled:h=false,className:I,onFocus:C,onBlur:H,children:F},w){let D=a$2("input"),z=x||D,y=`${z}-field`,k=`${z}-label`,S=`${z}-hint`,g=`${z}-error`,[A,O]=useState(a),G=e!==void 0,_=G?e:A,[N,U]=useState(false),K=useCallback(Y=>{G||O(Y),o?.(Y);},[G,o]),{isFocusVisible:q,focusProps:W}=ne(),Q=useRef(null),re=useCallback(Y=>{Q.current=Y,typeof w=="function"?w(Y):w&&(w.current=Y);},[w]),ee=useCallback(Y=>{K(Y.target.value);},[K]),te=useCallback(Y=>{W.onFocus(),C?.(Y);},[W,C]),ae=useCallback(Y=>{W.onBlur(),H?.(Y);},[W,H]);useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(F)>0)&&!r&&!l&&!u&&console.warn("[Compa11y Input]: Input has no accessible label. Screen readers need this to identify the input. Use label prop, aria-label, or aria-labelledby.");},[F,r,l,u]);let Z=!!d,fe=Children.count(F)>0,E={fieldId:y,labelId:k,hintId:S,errorId:g,value:_,setValue:K,hasError:Z,hasHint:fe?N:!!i,setHasHint:U,disabled:c,readOnly:b,required:n,isFocusVisible:q,focusProps:W,unstyled:h},L={"data-compa11y-input":"","data-error":Z?"true":"false","data-disabled":c?"true":"false","data-required":n?"true":"false","data-readonly":b?"true":"false"},M=h?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"};if(fe)return jsx(sn.Provider,{value:E,children:jsx("div",{...L,className:I,style:M,children:F})});let V=[];i&&V.push(S),Z&&V.push(g);let $=V.length>0?V.join(" "):void 0;return jsxs("div",{...L,className:I,style:M,children:[r&&jsxs("label",{id:k,htmlFor:y,"data-compa11y-input-label":"",style:h?{}:{display:"block",color:c?"var(--compa11y-input-disabled-color, #999)":"var(--compa11y-input-label-color, inherit)",fontSize:"var(--compa11y-input-label-size, 0.875rem)",fontWeight:"var(--compa11y-input-label-weight, 500)"},children:[r,n&&jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:h?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsx("input",{ref:re,id:y,type:t,value:_,onChange:ee,onFocus:te,onBlur:ae,disabled:c,readOnly:b,required:n,placeholder:p,name:m,autoComplete:f,maxLength:R,minLength:T,pattern:P,inputMode:v,"aria-label":r?void 0:l,"aria-labelledby":!r&&u?u:r?k:void 0,"aria-describedby":$,"aria-invalid":Z?"true":void 0,"aria-required":n?"true":void 0,"data-compa11y-input-field":"",style:h?{}:{width:"100%",padding:"var(--compa11y-input-padding, 0.5rem 0.75rem)",border:Z?"1px solid var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border, 1px solid #ccc)",borderRadius:"var(--compa11y-input-radius, 4px)",fontSize:"var(--compa11y-input-font-size, 0.875rem)",fontFamily:"inherit",background:c?"var(--compa11y-input-disabled-bg, #f5f5f5)":b?"var(--compa11y-input-readonly-bg, #f9f9f9)":"var(--compa11y-input-bg, white)",color:"inherit",cursor:c?"not-allowed":void 0,opacity:c?"var(--compa11y-input-disabled-opacity, 0.7)":void 0,...q&&!c?{outline:Z?"2px solid var(--compa11y-input-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:Z?"var(--compa11y-input-border-error, #ef4444)":"var(--compa11y-input-border-focus, #0066cc)"}:{}}}),i&&jsx("div",{id:S,"data-compa11y-input-hint":"",style:h?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:i}),Z&&jsx("div",{id:g,role:"alert","data-compa11y-input-error":"",style:h?{}:{color:"var(--compa11y-input-error-color, #ef4444)",fontSize:"var(--compa11y-input-error-size, 0.8125rem)"},children:d})]})});at.displayName="Input";var ln=Object.assign(at,{Label:tt,Field:ot,Hint:nt,Error:rt});var Pa={primary:{background:"var(--compa11y-button-primary-bg, #0066cc)",color:"var(--compa11y-button-primary-color, white)",border:"var(--compa11y-button-primary-border, 1px solid #0066cc)"},secondary:{background:"var(--compa11y-button-secondary-bg, white)",color:"var(--compa11y-button-secondary-color, #333)",border:"var(--compa11y-button-secondary-border, 1px solid #ccc)"},danger:{background:"var(--compa11y-button-danger-bg, #ef4444)",color:"var(--compa11y-button-danger-color, white)",border:"var(--compa11y-button-danger-border, 1px solid #ef4444)"},outline:{background:"var(--compa11y-button-outline-bg, transparent)",color:"var(--compa11y-button-outline-color, #0066cc)",border:"var(--compa11y-button-outline-border, 1px solid #0066cc)"},ghost:{background:"var(--compa11y-button-ghost-bg, transparent)",color:"var(--compa11y-button-ghost-color, #333)",border:"var(--compa11y-button-ghost-border, 1px solid transparent)"}},Ha={sm:{padding:"var(--compa11y-button-padding-sm, 0.25rem 0.5rem)",fontSize:"var(--compa11y-button-font-size-sm, 0.75rem)"},md:{padding:"var(--compa11y-button-padding-md, 0.5rem 1rem)",fontSize:"var(--compa11y-button-font-size-md, 0.875rem)"},lg:{padding:"var(--compa11y-button-padding-lg, 0.75rem 1.5rem)",fontSize:"var(--compa11y-button-font-size-lg, 1rem)"}},Gt=forwardRef(function({variant:e="secondary",size:a="md",type:o="button",disabled:t=false,discoverable:r=false,loading:i=false,unstyled:d=false,"aria-label":n,className:c,style:b,onClick:l,onFocus:u,onBlur:p,children:m,...f},R){let T=a$2("button"),P=useRef(null),v=useCallback(y=>{P.current=y,typeof R=="function"?R(y):R&&(R.current=y);},[R]),{isFocusVisible:x,focusProps:h}=ne();useEffect(()=>{process.env.NODE_ENV!=="production"&&!m&&!n&&!f["aria-labelledby"]&&console.warn("[Compa11y Button]: Button has no accessible label. Screen readers need this to identify the button. Add text content, aria-label, or aria-labelledby.");},[m,n,f["aria-labelledby"]]);let I=t&&!r,C=t||i,H=useCallback(y=>{if(C){y.preventDefault();return}l?.(y);},[C,l]),F=useCallback(y=>{h.onFocus(),u?.(y);},[h,u]),w=useCallback(y=>{h.onBlur(),p?.(y);},[h,p]),D={"data-compa11y-button":"","data-variant":e,"data-size":a,"data-disabled":t?"true":"false","data-loading":i?"true":"false"},z=d?{}:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"0.5rem",borderRadius:"var(--compa11y-button-radius, 4px)",fontFamily:"inherit",fontWeight:"var(--compa11y-button-font-weight, 500)",lineHeight:"1.5",cursor:C?"not-allowed":"pointer",opacity:t?"var(--compa11y-button-disabled-opacity, 0.5)":void 0,transition:"background-color 0.15s ease, border-color 0.15s ease",...Pa[e],...Ha[a],...x&&!I?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}};return jsxs("button",{ref:v,id:T,type:o,disabled:I,tabIndex:t&&!r?void 0:0,"aria-disabled":C?"true":void 0,"aria-busy":i?"true":void 0,"aria-label":n,onClick:H,onFocus:F,onBlur:w,className:c,style:{...z,...b},...D,...f,children:[i&&jsx("span",{"data-compa11y-button-spinner":"","aria-hidden":"true",style:d?{}:{display:"inline-block",width:"1em",height:"1em",border:"2px solid currentColor",borderRightColor:"transparent",borderRadius:"50%",animation:"compa11y-spin 0.6s linear infinite"}}),m]})});Gt.displayName="Button";var bn=createContext(null);function Me(){let s=useContext(bn);if(!s)throw new Error("[Compa11y Textarea]: Textarea sub-components (Textarea.Label, Textarea.Field, etc.) must be used within <Textarea>.");return s}var st=forwardRef(function({children:e,className:a},o){let t=Me();return jsxs("label",{ref:o,id:t.labelId,htmlFor:t.fieldId,"data-compa11y-textarea-label":"",className:a,style:t.unstyled?{}:{display:"block",color:t.disabled?"var(--compa11y-textarea-disabled-color, #999)":"var(--compa11y-textarea-label-color, inherit)",fontSize:"var(--compa11y-textarea-label-size, 0.875rem)",fontWeight:"var(--compa11y-textarea-label-weight, 500)"},children:[e,t.required&&jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:t.unstyled?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]})});st.displayName="TextareaLabel";var lt=forwardRef(function({onFocus:e,onBlur:a,className:o,style:t,rows:r,...i},d){let n=Me(),c=useRef(null),b=useCallback(f=>{c.current=f,typeof d=="function"?d(f):d&&(d.current=f);},[d]),l=useCallback(f=>{n.setValue(f.target.value);},[n.setValue]),u=useCallback(f=>{n.focusProps.onFocus(),e?.(f);},[n.focusProps,e]),p=useCallback(f=>{n.focusProps.onBlur(),a?.(f);},[n.focusProps,a]),m=[];return n.hasHint&&m.push(n.hintId),n.hasError&&m.push(n.errorId),jsx("textarea",{ref:b,id:n.fieldId,rows:r??n.rows,value:n.value,onChange:l,onFocus:u,onBlur:p,disabled:n.disabled,readOnly:n.readOnly,"aria-describedby":m.join(" ")||void 0,"aria-invalid":n.hasError?"true":void 0,"aria-required":n.required?"true":void 0,"data-compa11y-textarea-field":"",className:o,style:n.unstyled?t:{width:"100%",padding:"var(--compa11y-textarea-padding, 0.5rem 0.75rem)",border:n.hasError?"1px solid var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border, 1px solid #ccc)",borderRadius:"var(--compa11y-textarea-radius, 4px)",fontSize:"var(--compa11y-textarea-font-size, 0.875rem)",fontFamily:"inherit",lineHeight:"1.5",resize:n.resize,background:n.disabled?"var(--compa11y-textarea-disabled-bg, #f5f5f5)":n.readOnly?"var(--compa11y-textarea-readonly-bg, #f9f9f9)":"var(--compa11y-textarea-bg, white)",color:"inherit",cursor:n.disabled?"not-allowed":void 0,opacity:n.disabled?"var(--compa11y-textarea-disabled-opacity, 0.7)":void 0,...n.isFocusVisible&&!n.disabled?{outline:n.hasError?"2px solid var(--compa11y-textarea-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:n.hasError?"var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border-focus, #0066cc)"}:{},...t},...i})});lt.displayName="TextareaField";var ct=forwardRef(function({children:e,className:a},o){let t=Me();return useEffect(()=>(t.setHasHint(true),()=>t.setHasHint(false)),[]),jsx("div",{ref:o,id:t.hintId,"data-compa11y-textarea-hint":"",className:a,style:t.unstyled?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:e})});ct.displayName="TextareaHint";var dt=forwardRef(function({children:e,className:a},o){let t=Me();return e?jsx("div",{ref:o,id:t.errorId,role:"alert","data-compa11y-textarea-error":"",className:a,style:t.unstyled?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:e}):null});dt.displayName="TextareaError";var ut=forwardRef(function({value:e,defaultValue:a="",onValueChange:o,rows:t=3,resize:r="vertical",label:i,hint:d,error:n,required:c=false,disabled:b=false,readOnly:l=false,"aria-label":u,"aria-labelledby":p,placeholder:m,name:f,autoComplete:R,maxLength:T,minLength:P,id:v,unstyled:x=false,className:h,onFocus:I,onBlur:C,children:H},F){let w=a$2("textarea"),D=v||w,z=`${D}-field`,y=`${D}-label`,k=`${D}-hint`,S=`${D}-error`,[g,A]=useState(a),O=e!==void 0,G=O?e:g,_=useCallback($=>{O||A($),o?.($);},[O,o]),{isFocusVisible:N,focusProps:U}=ne();useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(H)>0)&&!i&&!u&&!p&&console.warn("[Compa11y Textarea]: Textarea has no accessible label. Screen readers need this to identify the textarea. Use label prop, aria-label, or aria-labelledby.");},[H,i,u,p]);let K=!!n,[q,W]=useState(false),Q=Children.count(H)>0,re={fieldId:z,labelId:y,hintId:k,errorId:S,value:G,setValue:_,hasError:K,hasHint:Q?q:!!d,setHasHint:W,disabled:b,readOnly:l,required:c,rows:t,resize:r,isFocusVisible:N,focusProps:U,unstyled:x},ee={"data-compa11y-textarea":"","data-error":K?"true":"false","data-disabled":b?"true":"false","data-required":c?"true":"false","data-readonly":l?"true":"false"},te=x?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"},ae=useRef(null),Z=useCallback($=>{ae.current=$,typeof F=="function"?F($):F&&(F.current=$);},[F]),fe=useCallback($=>{_($.target.value);},[_]),E=useCallback($=>{U.onFocus(),I?.($);},[U,I]),L=useCallback($=>{U.onBlur(),C?.($);},[U,C]);if(Q)return jsx(bn.Provider,{value:re,children:jsx("div",{...ee,className:h,style:te,children:H})});let M=[];d&&M.push(k),K&&M.push(S);let V=M.length>0?M.join(" "):void 0;return jsxs("div",{...ee,className:h,style:te,children:[i&&jsxs("label",{id:y,htmlFor:z,"data-compa11y-textarea-label":"",style:x?{}:{display:"block",color:b?"var(--compa11y-textarea-disabled-color, #999)":"var(--compa11y-textarea-label-color, inherit)",fontSize:"var(--compa11y-textarea-label-size, 0.875rem)",fontWeight:"var(--compa11y-textarea-label-weight, 500)"},children:[i,c&&jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:x?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsx("textarea",{ref:Z,id:z,rows:t,value:G,onChange:fe,onFocus:E,onBlur:L,disabled:b,readOnly:l,required:c,placeholder:m,name:f,autoComplete:R,maxLength:T,minLength:P,"aria-label":i?void 0:u,"aria-labelledby":!i&&p?p:i?y:void 0,"aria-describedby":V,"aria-invalid":K?"true":void 0,"aria-required":c?"true":void 0,"data-compa11y-textarea-field":"",style:x?{}:{width:"100%",padding:"var(--compa11y-textarea-padding, 0.5rem 0.75rem)",border:K?"1px solid var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border, 1px solid #ccc)",borderRadius:"var(--compa11y-textarea-radius, 4px)",fontSize:"var(--compa11y-textarea-font-size, 0.875rem)",fontFamily:"inherit",lineHeight:"1.5",resize:r,background:b?"var(--compa11y-textarea-disabled-bg, #f5f5f5)":l?"var(--compa11y-textarea-readonly-bg, #f9f9f9)":"var(--compa11y-textarea-bg, white)",color:"inherit",cursor:b?"not-allowed":void 0,opacity:b?"var(--compa11y-textarea-disabled-opacity, 0.7)":void 0,...N&&!b?{outline:K?"2px solid var(--compa11y-textarea-border-error, #ef4444)":"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"-1px",borderColor:K?"var(--compa11y-textarea-border-error, #ef4444)":"var(--compa11y-textarea-border-focus, #0066cc)"}:{}}}),d&&jsx("div",{id:k,"data-compa11y-textarea-hint":"",style:x?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:d}),K&&jsx("div",{id:S,role:"alert","data-compa11y-textarea-error":"",style:x?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:n})]})});ut.displayName="Textarea";var mn=Object.assign(ut,{Label:st,Field:lt,Hint:ct,Error:dt});var Fa={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},fn=forwardRef(function({focusable:e=false,style:a,children:o,...t},r){return jsx("span",{ref:r,"data-compa11y-visually-hidden":true,"data-focusable":e||void 0,style:e?void 0:{...Fa,...a},...t,children:o})});var Da={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},Na={position:"fixed",top:"0.5rem",left:"0.5rem",zIndex:99999,width:"auto",height:"auto",padding:"0.75rem 1.5rem",margin:0,overflow:"visible",clip:"auto",whiteSpace:"normal",background:"#0066cc",color:"white",fontSize:"1rem",fontWeight:600,borderRadius:"4px",border:"2px solid transparent",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.2)",outline:"2px solid #0066cc",outlineOffset:"2px",textDecoration:"none"},xn=forwardRef(function({target:e="#main-content",unstyled:a=false,children:o,style:t,onClick:r,...i},d){let[n,c]=ka.useState(false),b=useCallback(u=>{let p=document.querySelector(e);p&&(u.preventDefault(),!p.hasAttribute("tabindex")&&p.tabIndex<0&&p.setAttribute("tabindex","-1"),p.focus(),p.scrollIntoView({behavior:"smooth",block:"start"})),r?.(u);},[e,r]),l=a?t:n?{...Na,...t}:{...Da,...t};return jsx("a",{ref:d,href:e,"data-compa11y-skip-link":true,"data-focused":n||void 0,style:l,onFocus:()=>c(true),onBlur:()=>c(false),onClick:b,...i,children:o||"Skip to main content"})});var Ga={info:"\u2139\uFE0F",success:"\u2705",warning:"\u26A0\uFE0F",error:"\u274C"},gn={info:"#3b82f6",success:"#22c55e",warning:"#f59e0b",error:"#ef4444"},Wa={display:"flex",alignItems:"flex-start",gap:"0.75rem",padding:"0.75rem 1rem",background:"white",border:"1px solid #e0e0e0",borderRadius:"6px"},Ka={flexShrink:0,fontSize:"1.25rem",lineHeight:1,marginTop:"0.125rem"},qa={flex:1,minWidth:0},ja={fontWeight:600,fontSize:"0.875rem",marginBottom:"0.125rem"},Ua={color:"#555",fontSize:"0.8125rem"},_a={appearance:"none",background:"none",border:"none",padding:0,margin:0,font:"inherit",cursor:"pointer",flexShrink:0,width:"1.5rem",height:"1.5rem",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px",color:"#999",fontSize:"1.125rem",lineHeight:1},hn=forwardRef(function({type:e="info",title:a,dismissible:o=false,onDismiss:t,unstyled:r=false,children:i,style:d,...n},c){let b=e==="error"||e==="warning"?"alert":"status",l=useCallback(()=>{t?.();},[t]),u=r?d:{...Wa,borderLeft:`4px solid ${gn[e]}`,...d};return jsxs("div",{ref:c,role:b,"aria-live":b==="alert"?"assertive":"polite","data-compa11y-alert":true,"data-type":e,"data-dismissible":o||void 0,style:u,...n,children:[!r&&jsx("span",{"data-compa11y-alert-icon":true,"aria-hidden":"true",style:{...Ka,color:gn[e]},children:Ga[e]}),jsxs("div",{"data-compa11y-alert-content":true,style:r?void 0:qa,children:[a&&jsx("div",{"data-compa11y-alert-title":true,style:r?void 0:ja,children:a}),jsx("div",{"data-compa11y-alert-description":true,style:r?void 0:Ua,children:i})]}),o&&jsx("button",{type:"button",onClick:l,"aria-label":"Dismiss alert","data-compa11y-alert-close":true,style:r?void 0:_a,children:"\xD7"})]})});var Za={color:"#0066cc",textDecoration:"underline",cursor:"pointer",borderRadius:"2px"},Xa={color:"#999",cursor:"not-allowed",textDecoration:"none"},Ja={display:"inline-block",width:"0.75em",height:"0.75em",marginLeft:"0.25em",verticalAlign:"baseline"},Qa={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},vn=forwardRef(function({external:e=false,current:a,disabled:o=false,unstyled:t=false,children:r,style:i,href:d,target:n,rel:c,tabIndex:b,onClick:l,...u},p){let m=t?i:{...Za,...o?Xa:void 0,...i};return jsxs("a",{ref:p,"aria-current":a===true?"true":a||void 0,"data-compa11y-link":true,"data-external":e||void 0,"data-disabled":o||void 0,style:m,onClick:P=>{if(o){P.preventDefault();return}l?.(P);},...o?{role:"link","aria-disabled":true,tabIndex:-1}:{href:d,target:e?n??"_blank":n,rel:e?c??"noopener noreferrer":c,tabIndex:b},...u,children:[r,e&&jsxs(Fragment,{children:[jsxs("svg",{"data-compa11y-link-external-icon":true,"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",style:t?void 0:Ja,children:[jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),jsx("polyline",{points:"15 3 21 3 21 9"}),jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]}),jsx("span",{style:Qa,children:"(opens in new tab)"})]})]})});var Rn={xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem"},Sn={xs:1.5,sm:1.5,md:1.5,lg:1.5,xl:1.4,"2xl":1.3,"3xl":1.25},Pn={default:"inherit",muted:"#666",accent:"#0066cc",error:"#dc2626",success:"#16a34a",warning:"#d97706"},Hn={normal:400,medium:500,semibold:600,bold:700},Tn={1:{fontSize:"2.25rem",lineHeight:1.2,fontWeight:700},2:{fontSize:"1.875rem",lineHeight:1.25,fontWeight:700},3:{fontSize:"1.5rem",lineHeight:1.3,fontWeight:600},4:{fontSize:"1.25rem",lineHeight:1.35,fontWeight:600},5:{fontSize:"1.125rem",lineHeight:1.4,fontWeight:600},6:{fontSize:"1rem",lineHeight:1.5,fontWeight:600}},En=forwardRef(function({level:e=2,size:a,color:o="default",weight:t,align:r,truncate:i=false,unstyled:d=false,style:n,children:c,...b},l){let u=`h${e}`,p=Tn[e]??Tn[2],m=d?n:{margin:0,fontSize:a?Rn[a]:p.fontSize,lineHeight:a?Sn[a]:p.lineHeight,fontWeight:t?Hn[t]:p.fontWeight,color:Pn[o],textAlign:r,...i?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:void 0,...n};return jsx(u,{ref:l,"data-compa11y-heading":true,"data-level":e,style:m,...b,children:c})}),In=forwardRef(function({as:e="p",size:a="md",color:o="default",weight:t,align:r,truncate:i=false,unstyled:d=false,style:n,children:c,...b},l){let u=d?n:{margin:0,fontSize:Rn[a],lineHeight:Sn[a],color:Pn[o],...t?{fontWeight:Hn[t]}:void 0,...r?{textAlign:r}:void 0,...i?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:void 0,...n};return jsx(e,{ref:l,"data-compa11y-text":true,style:u,...b,children:c})});var Mn=createContext(null);function we(){let s=useContext(Mn);if(!s)throw new Error("Popover sub-components must be used within a <Popover> component");return s}var wn=Mn.Provider;var ii=createComponentWarnings("Popover");function si(s,e,a,o){let t=window.innerWidth,r=window.innerHeight,i=e.offsetWidth,d=e.offsetHeight,n=a.indexOf("-"),c=n===-1?a:a.slice(0,n),b=n===-1?"center":a.slice(n+1),l=0,u=0;switch(c){case "top":l=s.top-d-o;break;case "bottom":l=s.bottom+o;break;case "left":u=s.left-i-o;break;case "right":u=s.right+o;break}if(c==="top"||c==="bottom")switch(b){case "start":u=s.left;break;case "end":u=s.right-i;break;default:u=s.left+(s.width-i)/2;}else switch(b){case "start":l=s.top;break;case "end":l=s.bottom-d;break;default:l=s.top+(s.height-d)/2;}c==="bottom"&&l+d>r&&s.top-d-o>0?l=s.top-d-o:c==="top"&&l<0&&s.bottom+o+d<r?l=s.bottom+o:c==="right"&&u+i>t&&s.left-i-o>0?u=s.left-i-o:c==="left"&&u<0&&s.right+o+i<t&&(u=s.right+o);let p=8;return u=Math.max(p,Math.min(u,t-i-p)),l=Math.max(p,Math.min(l,r-d-p)),{top:l,left:u}}var li='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), details > summary';function ci({open:s,defaultOpen:e=false,onOpenChange:a,disabled:o=false,children:t}){let i=useId().replace(/:/g,"-"),[d,n]=useState(e),c=s??d,[b,l]=useState(false),u=useRef(null),p=useCallback(m=>{s===void 0&&n(m),a?.(m);},[s,a]);return jsx(wn,{value:{isOpen:c,onOpenChange:p,triggerId:`${i}-trigger`,contentId:`${i}-content`,triggerRef:u,disabled:o,contentMounted:b,setContentMounted:l},children:t})}var di=forwardRef(function({onClick:e,children:a,haspopup:o="dialog",disabled:t,...r},i){let{isOpen:d,onOpenChange:n,triggerId:c,contentId:b,triggerRef:l,disabled:u,contentMounted:p}=we(),m=t??u,f=T=>{m||(e?.(T),n(!d));},R=useCallback(T=>{l.current=T,typeof i=="function"?i(T):i&&(i.current=T);},[i,l]);return jsx("button",{ref:R,id:c,type:"button","aria-haspopup":o===false?void 0:o,"aria-expanded":d,"aria-controls":p?b:void 0,disabled:m,onClick:f,"data-compa11y-popover-trigger":true,"data-open":d,...r,children:a})}),ui=forwardRef(function({placement:e="bottom",offset:a=8,role:o="dialog",focusPolicy:t="first",container:r,unstyled:i=false,style:d,className:n="",children:c,"aria-label":b,"aria-labelledby":l,...u},p){let{isOpen:m,onOpenChange:f,contentId:R,triggerId:T,triggerRef:P,setContentMounted:v}=we(),x=useRef(null),[h,I]=useState({top:0,left:0}),[C,H]=useState(false),F=useRef(false);useEffect(()=>(v(true),()=>v(false)),[v]);let w=useCallback(()=>{let S=P.current,g=x.current;if(!S||!g)return;let A=S.getBoundingClientRect(),O=si(A,g,e,a);I(O);},[P,e,a]);useEffect(()=>{if(!m){H(false),F.current=false;return}requestAnimationFrame(()=>{w(),H(true);let S=x.current;if(S){let A=b||l,O=!!S.querySelector('h1, h2, h3, h4, h5, h6, [role="heading"]');!A&&!O&&ii.warning('Popover.Content has no accessible name. Add aria-label="..." or aria-labelledby, or place a heading inside the content.','Example: <Popover.Content aria-label="Filter options">...</Popover.Content>');}if(t==="none"||!S)return;let g=null;t==="first"&&(g=S.querySelector(li)),g||(g=S),F.current=true,g.focus();});},[m,w,t,b,l]),useEffect(()=>{if(!m)return;let S=()=>w();return window.addEventListener("scroll",S,{passive:true,capture:true}),window.addEventListener("resize",S,{passive:true}),()=>{window.removeEventListener("scroll",S,true),window.removeEventListener("resize",S);}},[m,w]),useEffect(()=>{if(!m)return;let S=g=>{let A=g.composedPath();x.current&&A.includes(x.current)||P.current&&A.includes(P.current)||f(false);};return document.addEventListener("pointerdown",S,true),()=>document.removeEventListener("pointerdown",S,true)},[m,f,P]),useEffect(()=>{if(!m)return;let S=g=>{g.key==="Escape"&&(g.stopPropagation(),f(false),x.current?.contains(document.activeElement)&&P.current?.focus(),F.current=false);};return document.addEventListener("keydown",S,true),()=>document.removeEventListener("keydown",S,true)},[m,f,P]);let D=useCallback(S=>{x.current=S,typeof p=="function"?p(S):p&&(p.current=S);},[p]);if(!m)return null;let z=i?{}:{background:"var(--compa11y-popover-bg, #fff)",color:"var(--compa11y-popover-color, inherit)",border:"var(--compa11y-popover-border, 1px solid rgba(0,0,0,.15))",borderRadius:"var(--compa11y-popover-radius, 0.375rem)",boxShadow:"var(--compa11y-popover-shadow, 0 4px 16px rgba(0,0,0,.12))",padding:"var(--compa11y-popover-padding, 1rem)",maxWidth:"var(--compa11y-popover-max-width, 320px)",minWidth:"100px",transition:"opacity 0.15s ease, transform 0.15s ease",opacity:C?1:0,transform:C?"scale(1) translateY(0)":"scale(0.96) translateY(-2px)"},y=jsx("div",{ref:D,id:R,role:o,"aria-modal":"false","aria-labelledby":l??(b?void 0:T),"aria-label":b,tabIndex:-1,className:n,"data-compa11y-popover-content":true,"data-placement":e,"data-open":m,style:{position:"fixed",zIndex:1e3,top:h.top,left:h.left,...z,...d},...u,children:c}),k=r??(typeof document<"u"?document.body:null);return k?createPortal(y,k):y}),pi=forwardRef(function({onClick:e,children:a,...o},t){let{onOpenChange:r,triggerRef:i}=we();return jsx("button",{ref:t,type:"button",onClick:n=>{e?.(n),r(false),i.current?.focus();},"data-compa11y-popover-close":true,...o,children:a??"Close"})}),Ut=Object.assign(ci,{Trigger:di,Content:ui,Close:pi}),Fn=Ut;var On=createContext(null);function Fe(){let s=useContext(On);if(!s)throw new Error("Accordion compound components must be used within an Accordion component");return s}var Vn=On.Provider,Dn=createContext(null);function Ne(){let s=useContext(Dn);if(!s)throw new Error("Accordion.Trigger and Accordion.Content must be used within an Accordion.Item");return s}var Nn=Dn.Provider;var xi=createComponentWarnings("Accordion"),_t=forwardRef(function({type:e="single",collapsible:a=false,value:o,defaultValue:t,onValueChange:r,headingLevel:i=3,children:d,onKeyDown:n,...c},b){let l=a$2("accordion"),u=useMemo(()=>t?Array.isArray(t)?t:[t]:[],[]),[p,m]=useState(u),f=useMemo(()=>o===void 0?p:Array.isArray(o)?o:o?[o]:[],[o,p]),R=useCallback(v=>{let x=f.includes(v),h=[];e==="single"?x&&a?h=[v]:x||(h=[...f]):x&&(h=[v]);let I=document.activeElement,C=h.find(w=>{let D=document.getElementById(`${l}-content-${w}`);return D&&D.contains(I)}),H;e==="single"?x?H=a?[]:[v]:H=[v]:H=x?f.filter(w=>w!==v):[...f,v],o===void 0&&m(H);let F=e==="single"?H[0]??"":H;r?.(F),C&&requestAnimationFrame(()=>{document.getElementById(`${l}-trigger-${C}`)?.focus();});},[f,e,a,o,r,l]),T=useCallback(v=>{n?.(v);let x=v.target;if(!x.hasAttribute("data-compa11y-accordion-trigger"))return;let h=v.currentTarget,I=Array.from(h.querySelectorAll("[data-compa11y-accordion-trigger]:not([disabled])")),C=I.indexOf(x);if(C===-1)return;let H=null;switch(v.key){case "ArrowDown":v.preventDefault(),H=(C+1)%I.length;break;case "ArrowUp":v.preventDefault(),H=(C-1+I.length)%I.length;break;case "Home":v.preventDefault(),H=0;break;case "End":v.preventDefault(),H=I.length-1;break}H!==null&&I[H]?.focus();},[n]);return jsx(Vn,{value:{openItems:f,toggleItem:R,type:e,collapsible:a,baseId:l,headingLevel:i},children:jsx("div",{ref:b,"data-compa11y-accordion":true,"data-type":e,onKeyDown:T,...c,children:d})})}),Yt=forwardRef(function({value:e,disabled:a=false,children:o,...t},r){let{baseId:i,openItems:d}=Fe(),n=d.includes(e),c=`${i}-trigger-${e}`,b=`${i}-content-${e}`;return jsx(Nn,{value:{value:e,isOpen:n,isDisabled:a,triggerId:c,contentId:b},children:jsx("div",{ref:r,"data-compa11y-accordion-item":true,"data-open":n,"data-disabled":a,...t,children:o})})}),Zt=forwardRef(function({level:e,children:a,style:o,...t},r){let{headingLevel:i}=Fe(),n=`h${e??i}`;return jsx(n,{ref:r,"data-compa11y-accordion-header":true,style:{margin:0,...o},...t,children:a})}),Xt=forwardRef(function({children:e,onClick:a$1,...o},t){let{toggleItem:r}=Fe(),{value:i,isOpen:d,isDisabled:n,triggerId:c,contentId:b}=Ne(),{announce:l}=a();return useEffect(()=>{let p=document.getElementById(c);p&&xi.checks.accessibleLabel(p,"Accordion.Trigger");},[c]),jsx("button",{ref:t,id:c,type:"button","aria-expanded":d,"aria-controls":b,disabled:n,onClick:p=>{a$1?.(p),!(p.defaultPrevented||n)&&(r(i),l(d?"Collapsed":"Expanded"));},"data-compa11y-accordion-trigger":true,"data-open":d,"data-disabled":n,...o,children:e})}),Jt=forwardRef(function({children:e,forceMount:a=false,...o},t){let{isOpen:r,contentId:i,triggerId:d}=Ne();return !r&&!a?null:jsx("div",{ref:t,id:i,role:"region","aria-labelledby":d,hidden:!r,"data-compa11y-accordion-content":true,"data-open":r,...o,children:e})}),$n=Object.assign(_t,{Item:Yt,Header:Zt,Trigger:Xt,Content:Jt});var Gn=createContext(null);function Ce(){let s=useContext(Gn);if(!s)throw new Error("Table compound components must be used within a <Table> component");return s}var Wn=Gn.Provider,Kn=createContext(null);function gt(){return useContext(Kn)}var yt=Kn.Provider,qn=createContext(null);function ht(){return useContext(qn)}var jn=qn.Provider;var Zn=createComponentWarnings("Table"),no=forwardRef(function({caption:e,captionHidden:a$1=false,sortKey:o,sortDirection:t,onSortChange:r,selectedRows:i,defaultSelectedRows:d,onSelectionChange:n,isLoading:c=false,children:b,...l},u){let p=a$2("table"),{announce:m}=a(),[f,R]=useState(null),[T,P]=useState("none"),v=o!==void 0?o:f,x=t!==void 0?t:T,h=useCallback(y=>{let k;v!==y?k="ascending":x==="ascending"?k="descending":x==="descending"?k="none":k="ascending";let S=k==="none"?null:y;o===void 0&&(R(S),P(k)),r?.(S,k);let g=k==="none"?"sort cleared":`sorted ${k}`;m(`${y} ${g}`);},[v,x,o,r,m]),I=useMemo(()=>new Set(d??[]),[]),[C,H]=useState(I),F=useMemo(()=>i!==void 0?new Set(i):C,[i,C]),w=useCallback(y=>{i===void 0&&H(new Set(y)),n?.(y),y.length===0?m("Selection cleared"):m(`${y.length} row${y.length===1?"":"s"} selected`);},[i,n,m]);return useEffect(()=>{!e&&!l["aria-label"]&&!l["aria-labelledby"]&&Zn.warning("Table must have an accessible name. Provide a caption prop, aria-label, or aria-labelledby.");},[]),jsx(Wn,{value:{baseId:p,sortKey:v??null,sortDirection:x,onSort:h,selectedRows:F,onSelectionChange:w,isLoading:c},children:jsxs("table",{ref:u,"data-compa11y-table":true,"aria-busy":c||void 0,...l,children:[e&&jsx("caption",{style:a$1?{position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:0}:{},children:e}),b]})})}),ro=forwardRef(function({children:e,...a},o){return jsx(yt,{value:{section:"head"},children:jsx("thead",{ref:o,"data-compa11y-table-head":true,...a,children:e})})}),ao=forwardRef(function({children:e,...a},o){return jsx(yt,{value:{section:"body"},children:jsx("tbody",{ref:o,"data-compa11y-table-body":true,...a,children:e})})}),io=forwardRef(function({children:e,...a},o){return jsx(yt,{value:{section:"foot"},children:jsx("tfoot",{ref:o,"data-compa11y-table-foot":true,...a,children:e})})}),so=forwardRef(function({rowId:e,children:a,...o},t){let{selectedRows:r}=Ce(),i=e?r.has(e):false;return jsx(jn,{value:{rowId:e??null,isSelected:i},children:jsx("tr",{ref:t,"data-compa11y-table-row":true,"data-selected":i,"aria-selected":e!==void 0?i:void 0,...o,children:a})})}),Yn={ascending:"\u2191",descending:"\u2193",none:"\u2195"},lo=forwardRef(function({sortKey:e,scope:a,children:o,...t},r){let{sortKey:i,sortDirection:d,onSort:n}=Ce(),c=gt(),b=a??(c?.section==="head"||c?.section==="foot"?"col":"row"),l=e!==void 0&&n!==null,u=l&&i===e,p=l?u?d:"none":void 0;if(l){let m=u?Yn[d]:Yn.none;return jsx("th",{ref:r,scope:b,"aria-sort":p,"data-compa11y-table-header":true,"data-sortable":"true","data-sort-key":e,...t,children:jsxs("button",{type:"button","data-compa11y-sort-key":e,onClick:()=>n(e),style:{display:"inline-flex",alignItems:"center",gap:"0.25em",background:"none",border:"none",padding:0,margin:0,font:"inherit",color:"inherit",cursor:"pointer",textAlign:"inherit",width:"100%"},children:[o,jsx("span",{"aria-hidden":"true",style:{fontSize:"0.75em",opacity:.7},children:m})]})})}return jsx("th",{ref:r,scope:b,"data-compa11y-table-header":true,...t,children:o})}),co=forwardRef(function({children:e,...a},o){return jsx("td",{ref:o,"data-compa11y-table-cell":true,...a,children:e})}),uo=forwardRef(function({rowIds:e,...a},o){let{baseId:t,selectedRows:r,onSelectionChange:i}=Ce(),d=useRef(null),n=e.length,c=e.filter(p=>r.has(p)).length,b=n>0&&c===n,l=c>0&&c<n;useEffect(()=>{d.current&&(d.current.indeterminate=l);},[l]);let u=p=>{i&&i(p.target.checked?e:[]);};return jsx("th",{ref:o,scope:"col","data-compa11y-table-select-all":true,...a,children:jsx("input",{ref:d,type:"checkbox",id:`${t}-select-all`,checked:b,"aria-label":"Select all rows",onChange:u,style:{cursor:"pointer"}})})}),po=forwardRef(function({label:e,...a},o){let{baseId:t,selectedRows:r,onSelectionChange:i}=Ce(),d=ht(),n=d?.rowId??null,c=d?.isSelected??false;useEffect(()=>{e||Zn.warning('Table.SelectCell requires a label prop for accessibility, e.g. label="Select Alice"');},[]);let b=l=>{if(!i||!n)return;let u=Array.from(r),p=l.target.checked?[...u,n]:u.filter(m=>m!==n);i(p);};return jsx("td",{ref:o,"data-compa11y-table-select-cell":true,...a,children:jsx("input",{type:"checkbox",id:n?`${t}-select-${n}`:void 0,checked:c,"aria-label":e,onChange:b,style:{cursor:"pointer"}})})}),bo=forwardRef(function({colSpan:e,children:a,...o},t){return jsx("tr",{ref:t,"data-compa11y-table-empty":true,...o,children:jsx("td",{colSpan:e,"data-compa11y-table-empty-cell":true,style:{textAlign:"center",padding:"2rem 1rem"},children:a??"No results found"})})}),mo=forwardRef(function({colSpan:e,children:a,...o},t){return jsx("tr",{ref:t,"aria-busy":"true","data-compa11y-table-loading":true,...o,children:jsx("td",{colSpan:e,style:{textAlign:"center",padding:"2rem 1rem"},children:a??"Loading\u2026"})})}),Xn=Object.assign(no,{Head:ro,Body:ao,Foot:io,Row:so,Header:lo,Cell:co,SelectAllCell:uo,SelectCell:po,EmptyState:bo,LoadingState:mo});var fo=createContext(null);function Re(){let s=useContext(fo);if(!s)throw new Error("[Compa11y FormField]: FormField sub-components must be used within <FormField>.");return s}var Pi={display:"flex",flexDirection:"column",gap:"0.25rem"},Hi={display:"block",fontSize:"0.875rem",fontWeight:500},Ei={color:"#999"},Ii={color:"#ef4444",marginLeft:"0.125rem"},Qn={color:"#666",fontSize:"0.8125rem"},er={color:"#ef4444",fontSize:"0.8125rem"},xo=forwardRef(function({children:e,style:a,...o},t){let r=Re();return jsxs("label",{ref:t,id:r.labelId,htmlFor:r.controlId,"data-compa11y-form-field-label":true,style:r.unstyled?a:{...Hi,...r.disabled?Ei:void 0,...a},...o,children:[e,r.required&&jsx("span",{"aria-hidden":"true","data-compa11y-form-field-required":true,style:r.unstyled?void 0:Ii,children:"*"})]})});xo.displayName="FormField.Label";var tr=forwardRef(function({children:e,style:a,...o},t){let r=Re();return useEffect(()=>(r.setHasHint(true),()=>r.setHasHint(false)),[]),e?jsx("div",{ref:t,id:r.hintId,"data-compa11y-form-field-hint":true,style:r.unstyled?a:{...Qn,...a},...o,children:e}):null});tr.displayName="FormField.Hint";var or=forwardRef(function({children:e,style:a,...o},t){let r=Re();return e?jsx("div",{ref:t,id:r.errorId,role:"alert","data-compa11y-form-field-error":true,style:r.unstyled?a:{...er,...a},...o,children:e}):null});or.displayName="FormField.Error";function nr({children:s}){let e=Re(),a=[];e.hasHint&&a.push(e.hintId),e.hasError&&a.push(e.errorId);let o={"aria-labelledby":e.labelId,...a.length?{"aria-describedby":a.join(" ")}:void 0,...e.hasError?{"aria-invalid":true}:void 0,...e.required?{"aria-required":true}:void 0,...e.disabled?{"aria-disabled":true}:void 0};return jsx(Fragment,{children:s({controlId:e.controlId,ariaProps:o})})}nr.displayName="FormField.Control";var rr=forwardRef(function({label:e,hint:a,error:o,required:t=false,disabled:r=false,unstyled:i=false,children:d,className:n,style:c,id:b},l){let u=useId(),p=b??u,m=`${p}-control`,f=`${p}-label`,R=`${p}-hint`,T=`${p}-error`,P=!!o,[v,x]=useState(false),h=!!a||v,I=useCallback(H=>{x(H);},[]),C={controlId:m,labelId:f,hintId:R,errorId:T,hasError:P,hasHint:h,setHasHint:I,required:t,disabled:r,unstyled:i};return jsx(fo.Provider,{value:C,children:jsxs("div",{ref:l,"data-compa11y-form-field":true,"data-error":P||void 0,"data-required":t||void 0,"data-disabled":r||void 0,className:n,style:i?c:{...Pi,...c},children:[e&&jsx(xo,{children:e}),d,a&&!v&&jsx("div",{id:R,"data-compa11y-form-field-hint":true,style:i?void 0:Qn,children:a}),o&&jsx("div",{id:T,role:"alert","data-compa11y-form-field-error":true,style:i?void 0:er,children:o})]})})});rr.displayName="FormField";var go=Object.assign(rr,{Label:xo,Hint:tr,Error:or,Control:nr}),ar=go;export{$n as Accordion,_t as AccordionBase,Jt as AccordionContent,Zt as AccordionHeader,Yt as AccordionItem,Xt as AccordionTrigger,hn as Alert,Gt as Button,jo as Checkbox,qe as CheckboxBase,Ke as CheckboxGroup,je as CheckboxIndicator,go as FormField,ar as FormFieldCompound,En as Heading,ln as Input,at as InputBase,rt as InputError,ot as InputField,nt as InputHint,tt as InputLabel,vn as Link,en as Listbox,Je as ListboxBase,et as ListboxGroup,Qe as ListboxOption,Ut as Popover,Fn as PopoverCompound,_e as Radio,_o as RadioGroup,Ue as RadioGroupBase,$o as Select,Et as SelectBase,Lt as SelectListbox,We as SelectOptionItem,It as SelectTrigger,xn as SkipLink,Nt as Switch,Xn as Table,no as TableBase,ao as TableBody,co as TableCell,bo as TableEmptyState,io as TableFoot,ro as TableHead,lo as TableHeader,mo as TableLoadingState,so as TableRow,uo as TableSelectAllCell,po as TableSelectCell,In as Text,mn as Textarea,ut as TextareaBase,dt as TextareaError,lt as TextareaField,ct as TextareaHint,st as TextareaLabel,fn as VisuallyHidden,Fe as useAccordionContext,Ne as useAccordionItemContext,Ft as useCheckboxGroupContext,Fo as useFocusControl,wo as useFocusManager,Oo as useFocusNeighbor,Vo as useFocusReturn,ne as useFocusVisible,Ao as useFocusWithin,Re as useFormFieldContext,Le as useInputContext,Xe as useListboxContext,we as usePopoverContext,Vt as useRadioGroupContext,Tt as useRovingTabindex,ko as useRovingTabindexMap,Ce as useTableContext,ht as useTableRowContext,gt as useTableSectionContext,Me as useTextareaContext};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compa11y/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Accessible React components that just work",
|
|
5
5
|
"author": "Ivan Trajkovski",
|
|
6
6
|
"license": "MIT",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"LICENSE"
|
|
94
94
|
],
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"@compa11y/core": "0.1.
|
|
96
|
+
"@compa11y/core": "0.1.11"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
99
|
"react": ">=18.0.0",
|