@compa11y/react 0.1.6 → 0.1.8
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 +100 -1
- package/dist/index.d.ts +100 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkPO5IUVYY_cjs=require('./chunk-PO5IUVYY.cjs'),chunkASK7XTJD_cjs=require('./chunk-ASK7XTJD.cjs'),chunkBFN4HW4Y_cjs=require('./chunk-BFN4HW4Y.cjs'),chunkROFBF3PJ_cjs=require('./chunk-ROFBF3PJ.cjs'),chunkFOVHQAY5_cjs=require('./chunk-FOVHQAY5.cjs'),chunkJS3UD7KS_cjs=require('./chunk-JS3UD7KS.cjs'),chunkAJ7JSWUT_cjs=require('./chunk-AJ7JSWUT.cjs'),chunkMAR6RBHF_cjs=require('./chunk-MAR6RBHF.cjs'),react=require('react'),core=require('@compa11y/core'),jsxRuntime=require('react/jsx-runtime');function oe(){let[d,t]=react.useState(false);react.useEffect(()=>core.initFocusVisible(),[]);let l=react.useCallback(()=>{t(core.isFocusVisible());},[]),r=react.useCallback(()=>{t(false);},[]);return {isFocusVisible:d,focusProps:{onFocus:l,onBlur:r}}}function Vt(d={}){let{autoFocus:t=false,restoreFocus:l=false,focusVisible:r=true}=d,e=react.useCallback(n=>{n&&t&&requestAnimationFrame(()=>{r?core.focusWithVisibleRing(n):n.focus();});},[t,r]);return react.useEffect(()=>{if(!l)return;let n=document.activeElement;return ()=>{n&&n.focus&&n.focus();}},[l]),e}function Dt(){let d=react.useCallback(l=>{},[]),t=react.useCallback(l=>{let r=d;r.current&&(l?.visible?core.focusWithVisibleRing(r.current):r.current.focus());},[]);return {ref:d,focus:t}}function Bt(){let[d,t]=react.useState(false),l=react.useCallback(n=>{},[]),r=react.useCallback(()=>{t(true);},[]),e=react.useCallback(n=>{let i=n.currentTarget,c=n.relatedTarget;(!c||!i.contains(c))&&t(false);},[]);return {ref:l,hasFocus:d,focusWithinProps:{onFocus:r,onBlur:e}}}function tt(d){let{itemCount:t,initialIndex:l=0,wrap:r=true,orientation:e="both",onChange:n}=d,[i,c]=react.useState(l),o=react.useRef([]);react.useEffect(()=>{i>=t&&c(Math.max(0,t-1));},[t,i]);let a=react.useCallback(f=>{let m=f;m<0?m=r?t-1:0:m>=t&&(m=r?0:t-1),c(m),n?.(m),o.current[m]?.focus();},[t,r,n]),b=react.useCallback((f,m)=>{let x=false;switch(f.key){case "ArrowRight":(e==="horizontal"||e==="both")&&(a(m+1),x=true);break;case "ArrowLeft":(e==="horizontal"||e==="both")&&(a(m-1),x=true);break;case "ArrowDown":(e==="vertical"||e==="both")&&(a(m+1),x=true);break;case "ArrowUp":(e==="vertical"||e==="both")&&(a(m-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]),s=react.useCallback(f=>({ref:m=>{o.current[f]=m;},tabIndex:f===i?0:-1,onKeyDown:m=>b(m,f),onFocus:()=>{f!==i&&(c(f),n?.(f));}}),[i,b,n]);return {activeIndex:i,setActiveIndex:a,getItemProps:s,first:()=>a(0),last:()=>a(t-1),next:()=>a(i+1),previous:()=>a(i-1)}}function zt(d,t={}){let l=tt({...t,itemCount:d.length}),r=react.useCallback(n=>{let i=d.indexOf(n);if(i===-1)throw new Error(`Unknown item ID: ${n}`);return l.getItemProps(i)},[d,l]),e=d[l.activeIndex];return {...l,activeId:e,getItemProps:r,setActiveId:n=>{let i=d.indexOf(n);i!==-1&&l.setActiveIndex(i);}}}function Gt(d){let t=react.useRef(null),l=react.useRef(d);l.current=d;let r=react.useCallback(()=>t.current?core.findFocusNeighbor(t.current,l.current):null,[]),e=react.useCallback(()=>{r()?.focus();},[r]);return {ref:t,getNeighbor:r,focusNeighbor:e}}function $t(){let d=react.useRef(core.createFocusReturn()),t=react.useCallback(e=>{d.current.save(e);},[]),l=react.useCallback(e=>{d.current.return(e);},[]),r=react.useCallback(()=>{d.current.clear();},[]);return {save:t,returnFocus:l,clear:r}}var fn=core.createComponentWarnings("Select"),Ut=react.createContext(null);function it(){let d=react.useContext(Ut);if(!d)throw new Error("Select compound components must be used within a Select component");return d}function Kt(d,t,l){let r=d.length,e=t+l;e<0&&(e=r-1),e>=r&&(e=0);let n=e;for(;d[e]?.disabled;)if(e+=l,e<0&&(e=r-1),e>=r&&(e=0),e===n)return -1;return e}function jt(d){return d.findIndex(t=>!t.disabled)}function Wt(d){for(let t=d.length-1;t>=0;t--)if(!d[t]?.disabled)return t;return -1}function st({options:d,value:t,defaultValue:l,onValueChange:r,disabled:e=false,placeholder:n="Select an option...","aria-label":i,"aria-labelledby":c,children:o}){let[a,b]=react.useState(l??null),[s,f]=react.useState(false),[m,x]=react.useState(-1),u=react.useRef(null),T=t!==void 0?t:a,C=chunkMAR6RBHF_cjs.a("select-trigger"),I=chunkMAR6RBHF_cjs.a("select-listbox"),E=chunkMAR6RBHF_cjs.a("select-option"),p=react.useCallback(P=>{t===void 0&&b(P),r?.(P);},[t,r]),y=react.useCallback(P=>`${E}-${P}`,[E]),H=react.useCallback(P=>{p(P.value),f(false),x(-1),u.current?.focus();},[p]);react.useEffect(()=>{!i&&!c&&fn.warning("Select has no accessible label.","Add aria-label or aria-labelledby prop.");},[i,c]);let R={selectedValue:T,setSelectedValue:p,isOpen:s,setIsOpen:f,highlightedIndex:m,setHighlightedIndex:x,options:d,triggerId:C,listboxId:I,getOptionId:y,onSelect:H,triggerRef:u,placeholder:n,disabled:e};return jsxRuntime.jsx(Ut.Provider,{value:R,children:jsxRuntime.jsx("div",{"data-compa11y-select":true,"data-disabled":e||void 0,children:o})})}var lt=react.forwardRef(function({onKeyDown:t,onClick:l,onBlur:r,...e},n){let{selectedValue:i,isOpen:c,setIsOpen:o,highlightedIndex:a,setHighlightedIndex:b,options:s,triggerId:f,listboxId:m,getOptionId:x,onSelect:u,triggerRef:T,placeholder:C,disabled:I}=it(),{announce:E}=chunkJS3UD7KS_cjs.a(),p=chunkAJ7JSWUT_cjs.e(s.map(h=>h.label),h=>{let M=s.findIndex(F=>F.label===h&&!F.disabled);M>=0&&(c||o(true),b(M));},{disabled:I}),y=react.useCallback((h=false)=>{o(true);let M=s.findIndex(F=>F.value===i);M>=0?b(M):b(h?Wt(s):jt(s));},[s,i,o,b]),H=chunkAJ7JSWUT_cjs.a({ArrowDown:()=>{if(!c)y();else {let h=Kt(s,a,1);h>=0&&b(h);}},ArrowUp:()=>{if(!c)y(true);else {let h=Kt(s,a,-1);h>=0&&b(h);}},Enter:()=>{if(c&&a>=0){let h=s[a];h&&!h.disabled&&(u(h),E(`${h.label} selected`));}else c||y();},Space:()=>{if(c&&a>=0){let h=s[a];h&&!h.disabled&&(u(h),E(`${h.label} selected`));}else c||y();},Escape:()=>{c&&(o(false),b(-1));},Home:()=>{c&&b(jt(s));},End:()=>{c&&b(Wt(s));},Tab:()=>(c&&(o(false),b(-1)),false)},{preventDefault:true,stopPropagation:false}),R=h=>{t?.(h),h.defaultPrevented||H.onKeyDown(h),h.defaultPrevented||p.onKeyDown(h);},P=h=>{l?.(h),!h.defaultPrevented&&!I&&(c?(o(false),b(-1)):y());},O=h=>{r?.(h),setTimeout(()=>{o(false),b(-1);},150);},N=c&&a>=0?x(a):void 0,A=s.find(h=>h.value===i),$=A?.label??C,g=react.useCallback(h=>{T.current=h,typeof n=="function"?n(h):n&&(n.current=h);},[n,T]);return jsxRuntime.jsxs("button",{ref:g,id:f,type:"button",role:"combobox","aria-expanded":c,"aria-controls":m,"aria-haspopup":"listbox","aria-activedescendant":N,disabled:I,onKeyDown:R,onClick:P,onBlur:O,"data-compa11y-select-trigger":true,"data-placeholder":!A||void 0,...e,children:[jsxRuntime.jsx("span",{"data-compa11y-select-value":true,children:$}),jsxRuntime.jsx("span",{"aria-hidden":"true","data-compa11y-select-chevron":true,children:"\u25BC"})]})}),ct=react.forwardRef(function({children:t,style:l,...r},e){let{isOpen:n,options:i,listboxId:c,triggerId:o}=it(),{announce:a}=chunkJS3UD7KS_cjs.a(),b=react.useRef(null),[s,f]=react.useState("bottom");react.useEffect(()=>{n&&a(`${i.length} option${i.length===1?"":"s"} available`);},[n,i.length,a]),react.useLayoutEffect(()=>{if(n&&b.current){let C=b.current.getBoundingClientRect(),E=window.innerHeight-C.top,p=C.top,y=Math.min(C.height,200);E<y+50&&p>E?f("top"):f("bottom");}},[n]);let m=T=>{T.preventDefault();},x=react.useCallback(T=>{b.current=T,typeof e=="function"?e(T):e&&(e.current=T);},[e]);return n?jsxRuntime.jsx("ul",{ref:x,id:c,role:"listbox","aria-labelledby":o,style:{...l,...s==="top"?{bottom:"100%",top:"auto",marginBottom:"4px",marginTop:0}:{}},onMouseDown:m,"data-compa11y-select-listbox":true,"data-position":s,...r,children:t??i.map((T,C)=>jsxRuntime.jsx(we,{option:T,index:C},T.value))}):null}),we=react.forwardRef(function({option:t,index:l,onClick:r,onMouseEnter:e,...n},i){let{selectedValue:c,highlightedIndex:o,setHighlightedIndex:a,getOptionId:b,onSelect:s}=it(),{announce:f}=chunkJS3UD7KS_cjs.a(),m=react.useRef(null),x=c===t.value,u=o===l,T=b(l);react.useEffect(()=>{u&&m.current&&m.current.scrollIntoView({block:"nearest",behavior:"smooth"});},[u]);let C=p=>{r?.(p),!p.defaultPrevented&&!t.disabled&&(s(t),f(`${t.label} selected`));},I=p=>{e?.(p),t.disabled||a(l);},E=react.useCallback(p=>{m.current=p,typeof i=="function"?i(p):i&&(i.current=p);},[i]);return jsxRuntime.jsxs("li",{ref:E,id:T,role:"option","aria-selected":x,"aria-disabled":t.disabled,"data-highlighted":u,"data-selected":x,"data-disabled":t.disabled,onClick:C,onMouseEnter:I,"data-compa11y-select-option":true,...n,children:[jsxRuntime.jsx("span",{"data-compa11y-select-option-text":true,children:t.label}),x&&jsxRuntime.jsx("span",{"aria-hidden":"true","data-compa11y-select-check":true,children:"\u2713"})]})}),qt=Object.assign(st,{Trigger:lt,Listbox:ct,Option:we});var Xt=core.createComponentWarnings("Checkbox"),hn=()=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),vn=()=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("path",{d:"M3 6H9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),Zt=react.createContext(null);function pt(){return react.useContext(Zt)}var Fe=react.forwardRef(function({value:t,defaultValue:l=[],onValueChange:r,disabled:e=false,legend:n,error:i,orientation:c="vertical",name:o,unstyled:a=false,className:b="",children:s,"aria-label":f,"aria-labelledby":m},x){let u=chunkMAR6RBHF_cjs.a("checkbox-group"),T=o||u,C=chunkMAR6RBHF_cjs.a("checkbox-group-error"),[I,E]=react.useState(l),p=t!==void 0,y=p?t:I;react.useEffect(()=>{!n&&!f&&!m&&Xt.warning("CheckboxGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[n,f,m]);let H=react.useCallback((g,h)=>{let M=p?t:I,F=h?[...M,g]:M.filter(K=>K!==g);p||E(F),r?.(F);},[p,t,I,r]),R={name:T,value:y,disabled:e,unstyled:a,onCheckboxChange:H},P=!!i,O={border:"none",margin:0,padding:0,minWidth:0},N=a?{padding:0,marginBottom:"0.5rem"}:{padding:0,marginBottom:"0.5rem",fontWeight:600},A={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 jsxRuntime.jsx(Zt.Provider,{value:R,children:jsxRuntime.jsxs("fieldset",{ref:x,className:b,"aria-label":f,"aria-labelledby":m,"aria-describedby":P?C:void 0,disabled:e,"data-compa11y-checkbox-group":"","data-orientation":c,"data-disabled":e?"true":void 0,style:O,children:[n&&jsxRuntime.jsx("legend",{"data-compa11y-checkbox-group-legend":"",style:N,children:n}),jsxRuntime.jsx("div",{style:A,children:s}),P&&jsxRuntime.jsx("div",{id:C,role:"alert","data-compa11y-checkbox-group-error":"",style:$,children:i})]})})});Fe.displayName="CheckboxGroup";var Oe=react.forwardRef(function({checked:t,defaultChecked:l=false,onCheckedChange:r,indeterminate:e=false,label:n,hint:i,error:c,disabled:o=false,value:a,required:b=false,unstyled:s,className:f="",size:m="md",name:x,"aria-label":u,"aria-labelledby":T,"aria-describedby":C,onClick:I,onFocus:E,onBlur:p,...y},H){let R=pt(),P=chunkMAR6RBHF_cjs.a("checkbox"),O=`${P}-input`,N=`${P}-label`,A=`${P}-hint`,$=`${P}-error`,{announce:g}=chunkJS3UD7KS_cjs.a(),{isFocusVisible:h,focusProps:M}=oe(),F=R!==null,K=F&&R.disabled||o,D=s??(F?R.unstyled:false),B=F?R.name:x,[q,w]=react.useState(l),U=F?R.value.includes(a||""):t!==void 0?t:q,j=react.useRef(null),W=react.useCallback(ue=>{j.current=ue,typeof H=="function"?H(ue):H&&(H.current=ue);},[H]);react.useEffect(()=>{j.current&&(j.current.indeterminate=e);},[e]),react.useEffect(()=>{!n&&!u&&!T&&Xt.warning("Checkbox has no accessible label. Screen readers need this to identify the checkbox.",'Add label="...", aria-label="...", or aria-labelledby="..."');},[n,u,T]);let z=react.useCallback(ue=>{let Me=ue.target.checked;F?R.onCheckboxChange(a||"",Me):(t===void 0&&w(Me),r?.(Me)),g(`${typeof n=="string"?n:u||"Checkbox"} ${Me?"checked":"unchecked"}`);},[F,R,a,t,r,n,u,g]),Z=react.useCallback(ue=>{M.onFocus(),E?.(ue);},[M,E]),ne=react.useCallback(ue=>{M.onBlur(),p?.(ue);},[M,p]),J=!!n,Q=!!i,re=!!c,Y=[];C&&Y.push(C),Q&&Y.push(A),re&&Y.push($);let be=Y.length?Y.join(" "):void 0,S={sm:{box:16},md:{box:20},lg:{box:24}}[m],L={display:"inline-flex",alignItems:"flex-start",gap:"0.5rem",cursor:K?"not-allowed":"pointer",userSelect:"none",...K&&!D?{opacity:.5}:{}},k={position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},V={position:"absolute",opacity:0,width:"100%",height:"100%",margin:0,cursor:"inherit",zIndex:1},_=D?{}:{width:S.box,height:S.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"},To=D?{cursor:"inherit"}:{cursor:"inherit",color:"var(--compa11y-checkbox-label-color, inherit)"},Co=D?{}:{color:"var(--compa11y-checkbox-hint-color, #666)",fontSize:"0.8125rem"},Ro=D?{}:{color:"var(--compa11y-checkbox-error-color, #ef4444)",fontSize:"0.8125rem"};return jsxRuntime.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":m,style:L,children:[jsxRuntime.jsxs("div",{style:k,children:[jsxRuntime.jsx("input",{ref:W,type:"checkbox",id:O,name:B,value:a,checked:U,onChange:z,onClick:I,onFocus:Z,onBlur:ne,disabled:K,required:b,"aria-required":b||void 0,"aria-invalid":re||void 0,"aria-label":!J&&!T?u:void 0,"aria-labelledby":T||(J?N:void 0),"aria-describedby":be,"aria-checked":e?"mixed":U,tabIndex:K?-1:0,style:V,...y}),!D&&jsxRuntime.jsxs("div",{"data-compa11y-checkbox-indicator":"","aria-hidden":"true",style:_,children:[U&&!e&&jsxRuntime.jsx(hn,{}),e&&jsxRuntime.jsx(vn,{})]})]}),(J||Q||re)&&jsxRuntime.jsxs("div",{style:ge,children:[J&&jsxRuntime.jsxs("label",{htmlFor:O,id:N,"data-compa11y-checkbox-label":"",style:To,children:[n,b&&jsxRuntime.jsx("span",{"aria-hidden":"true",style:{color:"var(--compa11y-checkbox-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),Q&&jsxRuntime.jsx("div",{id:A,"data-compa11y-checkbox-hint":"",style:Co,children:i}),re&&jsxRuntime.jsx("div",{id:$,role:"alert","data-compa11y-checkbox-error":"",style:Ro,children:c})]})]})});Oe.displayName="Checkbox";var Ae=react.forwardRef(function({children:t,className:l},r){return jsxRuntime.jsx("div",{ref:r,className:l,"data-compa11y-checkbox-indicator":"","aria-hidden":"true",children:t})});Ae.displayName="CheckboxIndicator";var Jt=Object.assign(Oe,{Group:Fe,Indicator:Ae});var En=core.createComponentWarnings("RadioGroup"),mt=react.createContext(null);function xt(){let d=react.useContext(mt);if(!d)throw new Error("[Compa11y RadioGroup]: Radio must be used within a RadioGroup.");return d}var Ne=react.forwardRef(function({value:t,defaultValue:l,onValueChange:r,disabled:e=false,discoverable:n=true,required:i=false,orientation:c="vertical",name:o,legend:a,hint:b,error:s,unstyled:f=false,className:m="",children:x,"aria-label":u,"aria-labelledby":T},C){let I=chunkMAR6RBHF_cjs.a("radiogroup"),E=o||I,p=chunkMAR6RBHF_cjs.a("radiogroup-hint"),y=chunkMAR6RBHF_cjs.a("radiogroup-error"),[H,R]=react.useState(l??null),P=t!==void 0,O=P?t:H,N=react.useRef(new Map);react.useEffect(()=>{!a&&!u&&!T&&En.warning("RadioGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[a,u,T]);let A=react.useCallback(W=>{e||(P||R(W),r?.(W));},[e,P,r]),$=react.useCallback((W,z)=>{N.current.set(W,z);},[]),g=react.useCallback(W=>{N.current.delete(W);},[]),h=react.useCallback((W,z)=>{N.current.set(W,z);},[]),M=react.useCallback(()=>{let W=[];return N.current.forEach((z,Z)=>{!z&&!e&&W.push(Z);}),W},[e]),F=react.useRef(null),K=C||F,D=react.useCallback(W=>{let z=M();if(z.length===0)return;let Z=O?z.indexOf(O):-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){A(J);let Q=typeof K=="object"&&K?K.current:null;Q&&Q.querySelector(`input[type="radio"][value="${CSS.escape(J)}"]`)?.focus();}},[M,O,A,K]),B=chunkAJ7JSWUT_cjs.a({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:E,value:O??null,disabled:e,discoverable:n,required:i,unstyled:f,orientation:c,onValueChange:A,registerRadio:$,unregisterRadio:g,updateRadioDisabled:h},w=[];b&&w.push(p),s&&w.push(y);let U=w.length>0?w.join(" "):void 0,j=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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&&jsxRuntime.jsx("div",{id:p,style:f?{}:{color:"var(--compa11y-radio-group-hint-color, #666)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:b}),s&&jsxRuntime.jsx("div",{id:y,role:"alert",style:f?{}:{color:"var(--compa11y-radio-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:s})]});return a?jsxRuntime.jsx(mt.Provider,{value:q,children:jsxRuntime.jsxs("fieldset",{ref:K,role:"radiogroup","aria-label":u,"aria-labelledby":T,"aria-orientation":c,"aria-required":i||void 0,"aria-disabled":e||void 0,"aria-invalid":s?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${m}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":s?"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:[jsxRuntime.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,i&&!f&&jsxRuntime.jsxs("span",{"aria-hidden":"true",style:{color:"var(--compa11y-radio-group-required-color, #ef4444)",marginLeft:"0.125rem"},children:[" ","*"]})]}),j]})}):jsxRuntime.jsx(mt.Provider,{value:q,children:jsxRuntime.jsx("div",{ref:K,role:"radiogroup","aria-label":u,"aria-labelledby":T,"aria-orientation":c,"aria-required":i||void 0,"aria-disabled":e||void 0,"aria-invalid":s?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${m}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":s?"true":void 0,onKeyDown:B.onKeyDown,children:j})})});Ne.displayName="RadioGroup";var Ve=react.forwardRef(function({value:t,disabled:l=false,discoverable:r,label:e,hint:n,unstyled:i,className:c="",children:o,"aria-label":a},b){let s=xt(),f=chunkMAR6RBHF_cjs.a("radio"),m=chunkMAR6RBHF_cjs.a("radio-hint"),x=s.disabled||l,u=r??s.discoverable,T=i??s.unstyled,C=s.value===t,{announce:I}=chunkJS3UD7KS_cjs.a(),{isFocusVisible:E,focusProps:p}=oe(),y=react.useRef(null),H=react.useCallback(B=>{y.current=B,typeof b=="function"?b(B):b&&(b.current=B);},[b]);react.useEffect(()=>(s.registerRadio(t,x),()=>s.unregisterRadio(t)),[t]),react.useEffect(()=>{s.updateRadioDisabled(t,x);},[x,t]);let R=react.useCallback(B=>{if(x){B.preventDefault();return}s.onValueChange(t),I(`${e||(typeof o=="string"?o:null)||t} selected`,{politeness:"polite"});},[x,s,t,e,o,I]),P=react.useCallback(B=>{x&&B.preventDefault();},[x]),O=react.useCallback(B=>{p.onFocus(),!C&&!x&&s.onValueChange(t);},[p,C,x,s,t]),N=react.useCallback(()=>{p.onBlur();},[p]),A=!!(o||e),$=o||e,g=`${f}-label`,h=!!n,M=(()=>{if(s.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&&!u?-1:C||s.value===null&&M?0:-1,K=x&&!u,D=h?m:void 0;return jsxRuntime.jsxs("label",{htmlFor:f,className:`compa11y-radio-wrapper ${c}`.trim(),"data-compa11y-radio":"","data-value":t,"data-checked":C?"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:[jsxRuntime.jsxs("div",{style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[jsxRuntime.jsx("input",{ref:H,type:"radio",id:f,name:s.name,value:t,checked:C,onChange:R,onClick:P,onFocus:O,onBlur:N,disabled:K,tabIndex:F,"aria-disabled":x?"true":void 0,"aria-label":A?void 0:a,"aria-labelledby":A?g:void 0,"aria-describedby":D,required:s.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&&jsxRuntime.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:C?"var(--compa11y-radio-checked-border, 2px solid #0066cc)":"var(--compa11y-radio-border, 2px solid #666)",borderRadius:"50%",background:C?"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",...E?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}},children:jsxRuntime.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:C?1:0,transform:C?"scale(1)":"scale(0)",transition:"all 0.15s ease"}})})]}),(A||h)&&jsxRuntime.jsxs("div",{style:T?{}:{display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},children:[A&&jsxRuntime.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&&jsxRuntime.jsx("span",{id:m,className:"compa11y-radio-hint",style:T?{}:{color:"var(--compa11y-radio-hint-color, #666)",fontSize:"var(--compa11y-radio-hint-size, 0.8125rem)"},children:n})]})]})});Ve.displayName="Radio";var eo=Object.assign(Ne,{Radio:Ve});var kn=core.createComponentWarnings("Switch"),gt=react.forwardRef(function({checked:t,defaultChecked:l=false,onCheckedChange:r,label:e,disabled:n=false,unstyled:i=false,className:c,size:o="md","aria-label":a,"aria-labelledby":b,onClick:s,...f},m){let u=`${chunkMAR6RBHF_cjs.a("switch")}-label`,{announce:T}=chunkJS3UD7KS_cjs.a(),{isFocusVisible:C,focusProps:I}=oe(),[E,p]=react.useState(l),y=t!==void 0,H=y?t:E;react.useEffect(()=>{!e&&!a&&!b&&kn.warning("Switch has no accessible label. Screen readers need this to identify the switch.",'Add label="Description", aria-label="...", or aria-labelledby="..."');},[e,a,b]);let R=react.useCallback(()=>{if(n)return;let w=!H;y||p(w),r?.(w),T(`${e||a||"Switch"} ${w?"on":"off"}`);},[H,n,y,r,e,a,T]),P=react.useCallback(w=>{s?.(w),w.defaultPrevented||R();},[s,R]),O=chunkAJ7JSWUT_cjs.a({Space:()=>{R();},Enter:()=>{R();}},{preventDefault:true}),N=w=>{f.onKeyDown?.(w),w.defaultPrevented||O.onKeyDown(w);},A=a,$=b||(e?u:void 0),g={display:"inline-flex",alignItems:"center"},M={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:M.width,height:M.height,border:"none",padding:2,cursor:n?"not-allowed":"pointer"},K=i?{}:{backgroundColor:H?"#0066cc":"#d1d5db",borderRadius:M.height/2,transition:"background-color 0.2s ease",opacity:n?.5:1},D={position:"absolute",left:2,width:M.thumb,height:M.thumb,pointerEvents:"none",transform:H?`translateX(${M.translate}px)`:"translateX(0)"},B=i?{}:{backgroundColor:"white",borderRadius:"50%",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)",transition:"transform 0.2s ease"},q=i?{marginLeft:8,userSelect:"none",cursor:n?"not-allowed":"pointer"}:{marginLeft:8,userSelect:"none",cursor:n?"not-allowed":"pointer",opacity:n?.5:1};return jsxRuntime.jsxs("div",{style:g,"data-compa11y-switch-wrapper":true,"data-size":o,children:[jsxRuntime.jsx("button",{ref:m,type:"button",role:"switch","aria-checked":H,"aria-label":A,"aria-labelledby":$,disabled:n,onClick:P,onKeyDown:N,className:c,style:{...F,...K,...!i&&C&&!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=>{I.onFocus(),f.onFocus?.(w);},onBlur:w=>{I.onBlur(),f.onBlur?.(w);},children:jsxRuntime.jsx("span",{style:{...D,...B},"data-compa11y-switch-thumb":true,"aria-hidden":"true"})}),e&&jsxRuntime.jsx("label",{id:u,onClick:n?void 0:()=>R(),style:q,"data-compa11y-switch-label":true,children:e})]})});gt.displayName="Switch";var On=core.createComponentWarnings("Listbox"),ro=react.createContext(null);function ze(){let d=react.useContext(ro);if(!d)throw new Error("[Compa11y Listbox]: Option/Group must be used within a Listbox.");return d}var ao=react.createContext({groupDisabled:false}),Ge=react.forwardRef(function({value:t,defaultValue:l,onValueChange:r,multiple:e=false,disabled:n=false,discoverable:i=true,orientation:c="vertical",unstyled:o=false,className:a="",children:b,"aria-label":s,"aria-labelledby":f},m){let x=chunkMAR6RBHF_cjs.a("listbox"),{announce:u}=chunkJS3UD7KS_cjs.a(),[T,C]=react.useState(()=>l??(e?[]:"")),I=t!==void 0,E=I?t:T,p=react.useMemo(()=>e?new Set(Array.isArray(E)?E:[]):new Set(E?[String(E)]:[]),[E,e]),[y,H]=react.useState(null),R=react.useRef(new Map),[P,O]=react.useState(0),N=react.useCallback((v,S,L)=>{R.current.set(v,{disabled:S,label:L}),O(k=>k+1);},[]),A=react.useCallback(v=>{R.current.delete(v),O(S=>S+1);},[]),$=react.useCallback((v,S)=>{let L=R.current.get(v);L&&R.current.set(v,{...L,disabled:S});},[]),g=react.useMemo(()=>{let v=[];return R.current.forEach((S,L)=>{!S.disabled&&!n&&v.push(L);}),v},[P,n]);react.useEffect(()=>{!s&&!f&&On.warning("Listbox has no accessible label. Screen readers need this.",'Add aria-label="..." or aria-labelledby="..."');},[s,f]);let h=react.useCallback(v=>p.has(v),[p]),M=react.useCallback(v=>{if(n)return;let S=R.current.get(v);if(S?.disabled)return;let L,k=S?.label||v;if(e){let V=new Set(p);V.has(v)?(V.delete(v),u(`${k} deselected`,{politeness:"polite"})):(V.add(v),u(`${k} selected`,{politeness:"polite"})),L=Array.from(V);}else L=v,u(`${k} selected`,{politeness:"polite"});I||C(L),r?.(L);},[n,e,p,I,r,u]),F=react.useCallback(v=>{if(g.length===0)return;let S=y?g.indexOf(y):-1,L;switch(v){case "next":L=S<0?0:Math.min(S+1,g.length-1);break;case "prev":L=S<0?g.length-1:Math.max(S-1,0);break;case "first":L=0;break;case "last":L=g.length-1;break}let k=g[L];if(k!==void 0)if(H(k),e){let _=R.current.get(k)?.label||k,ge=p.has(k);u(`${_}${ge?", selected":""}`,{politeness:"polite"});}else {let _=R.current.get(k)?.label||k,ge=k;I||C(ge),r?.(ge),u(`${_} selected`,{politeness:"polite"});}},[g,y,e,I,r,u,p]),K=react.useCallback(()=>{y&&e&&M(y);},[y,e,M]),D=react.useCallback(v=>{if(g.length===0)return;let S=y?g.indexOf(y):-1,L;v==="next"?L=S<0?0:Math.min(S+1,g.length-1):L=S<0?g.length-1:Math.max(S-1,0);let k=g[L];k!==void 0&&(H(k),M(k));},[g,y,M]),B=react.useCallback(()=>{if(!e||!y)return;let v=g.indexOf(y);if(v<0)return;let S=g.slice(0,v+1),L=new Set(p);S.forEach(V=>L.add(V));let k=Array.from(L);I||C(k),r?.(k),H(g[0]??null),u(`${S.length} items selected`,{politeness:"polite"});},[e,y,g,p,I,r,u]),q=react.useCallback(()=>{if(!e||!y)return;let v=g.indexOf(y);if(v<0)return;let S=g.slice(v),L=new Set(p);S.forEach(V=>L.add(V));let k=Array.from(L);I||C(k),r?.(k),H(g[g.length-1]??null),u(`${S.length} items selected`,{politeness:"polite"});},[e,y,g,p,I,r,u]),w=react.useCallback(()=>{if(!e)return;let v=g.every(L=>p.has(L)),S;v?(S=[],u("All deselected",{politeness:"polite"})):(S=[...g],u("All selected",{politeness:"polite"})),I||C(S),r?.(S);},[e,g,p,I,r,u]),U=react.useMemo(()=>{let v={ArrowDown:()=>F("next"),ArrowUp:()=>F("prev"),Home:()=>F("first"),End:()=>F("last")};return e&&(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,F,K,D,B,q,w]),j=chunkAJ7JSWUT_cjs.a(U,{preventDefault:true,stopPropagation:true,disabled:n}),W=react.useMemo(()=>Array.from(R.current.values()).map(v=>v.label),[P]),z=chunkAJ7JSWUT_cjs.e(W,v=>{for(let[S,L]of R.current.entries())if(L.label===v&&!L.disabled){if(H(S),!e){let k=S;I||C(k),r?.(k),u(`${v} selected`,{politeness:"polite"});}break}},{disabled:n}),Z=react.useCallback(v=>{j.onKeyDown(v),v.defaultPrevented||z.onKeyDown(v);},[j,z]),ne=react.useCallback(()=>{if(!y){if(!e&&E&&typeof E=="string"){H(E);return}if(e&&Array.isArray(E)&&E.length>0){H(E[0]??null);return}g.length>0&&H(g[0]??null);}},[y,e,E,g]),J=react.useCallback(()=>{},[]),Q=react.useRef(null);react.useEffect(()=>{y&&Q.current&&Q.current.querySelector(`[data-value="${CSS.escape(y)}"]`)?.scrollIntoView({block:"nearest"});},[y]);let re=react.useMemo(()=>({multiple:e,disabled:n,discoverable:i,unstyled:o,orientation:c,selectedValues:p,focusedValue:y,onSelect:M,onFocusOption:H,registerOption:N,unregisterOption:A,updateOptionDisabled:$,isSelected:h,listboxId:x}),[e,n,i,o,c,p,y,M,N,A,$,h,x]),Y=react.useCallback(v=>{Q.current=v,typeof m=="function"?m(v):m&&(m.current=v);},[m]),be=y?`${x}-option-${y}`:void 0;return jsxRuntime.jsx(ro.Provider,{value:re,children:jsxRuntime.jsx("div",{ref:Y,role:"listbox","aria-label":s,"aria-labelledby":f,"aria-orientation":c,"aria-multiselectable":e||void 0,"aria-disabled":n||void 0,"aria-activedescendant":be,tabIndex:n&&!i?-1:0,className:`compa11y-listbox ${a}`.trim(),"data-compa11y-listbox":"","data-orientation":c,"data-disabled":n?"true":void 0,"data-multiple":e?"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=react.forwardRef(function({value:t,disabled:l=false,discoverable:r,unstyled:e,className:n="",children:i,"aria-label":c},o){let a=ze(),{groupDisabled:b}=react.useContext(ao),s=a.disabled||b||l,f=e??a.unstyled,m=a.isSelected(t),x=a.focusedValue===t,u=`${a.listboxId}-option-${t}`,T=react.useRef(""),C=react.useRef(null),I=react.useCallback(p=>{C.current=p,typeof o=="function"?o(p):o&&(o.current=p);},[o]);react.useEffect(()=>{let p=typeof i=="string"?i:C.current?.textContent?.trim()||t;return T.current=p,a.registerOption(t,s,p),()=>a.unregisterOption(t)},[t]),react.useEffect(()=>{a.updateOptionDisabled(t,s);},[s,t]);let E=react.useCallback(p=>{if(s){p.preventDefault();return}a.onFocusOption(t),a.onSelect(t);},[s,a,t]);return jsxRuntime.jsxs("div",{ref:I,id:u,role:"option","aria-selected":m,"aria-disabled":s||void 0,"aria-label":c,className:`compa11y-listbox-option ${n}`.trim(),"data-compa11y-listbox-option":"","data-value":t,"data-selected":m?"true":"false","data-focused":x?"true":"false","data-disabled":s?"true":void 0,onClick:E,style:f?{cursor:s?"not-allowed":"pointer"}:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--compa11y-listbox-option-padding, 0.5rem 0.75rem)",cursor:s?"not-allowed":"pointer",userSelect:"none",transition:"background 0.1s ease",background:x?m?"var(--compa11y-listbox-option-selected-hover-bg, #cce0ff)":"var(--compa11y-listbox-option-hover-bg, #f5f5f5)":m?"var(--compa11y-listbox-option-selected-bg, #e6f0ff)":"transparent",fontWeight:m?500:"normal",opacity:s?.5:1},children:[jsxRuntime.jsx("span",{style:{flex:1},children:i}),m&&!f&&jsxRuntime.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=react.forwardRef(function({label:t,disabled:l=false,unstyled:r,className:e="",children:n},i){let c=ze(),o=r??c.unstyled,a=chunkMAR6RBHF_cjs.a("listbox-group"),b=react.useMemo(()=>({groupDisabled:c.disabled||l}),[c.disabled,l]);return jsxRuntime.jsx(ao.Provider,{value:b,children:jsxRuntime.jsxs("div",{ref:i,role:"group","aria-labelledby":a,"aria-disabled":l||void 0,className:`compa11y-listbox-group ${e}`.trim(),"data-compa11y-listbox-group":"","data-disabled":l?"true":void 0,style:o?{}:{opacity:l?.5:1},children:[jsxRuntime.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 io=Object.assign(Ge,{Option:$e,Group:Ke});var bo=react.createContext(null);function Re(){let d=react.useContext(bo);if(!d)throw new Error("[Compa11y Input]: Input sub-components (Input.Label, Input.Field, etc.) must be used within <Input>.");return d}var je=react.forwardRef(function({children:t,className:l},r){let e=Re();return jsxRuntime.jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-input-label":"",className:l,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&&jsxRuntime.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=react.forwardRef(function({type:t="text",onFocus:l,onBlur:r,className:e,style:n,...i},c){let o=Re(),a=react.useRef(null),b=react.useCallback(u=>{a.current=u,typeof c=="function"?c(u):c&&(c.current=u);},[c]),s=react.useCallback(u=>{o.setValue(u.target.value);},[o.setValue]),f=react.useCallback(u=>{o.focusProps.onFocus(),l?.(u);},[o.focusProps,l]),m=react.useCallback(u=>{o.focusProps.onBlur(),r?.(u);},[o.focusProps,r]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsxRuntime.jsx("input",{ref:b,id:o.fieldId,type:t,value:o.value,onChange:s,onFocus:f,onBlur:m,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},...i})});We.displayName="InputField";var Ue=react.forwardRef(function({children:t,className:l},r){let e=Re();return react.useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsxRuntime.jsx("div",{ref:r,id:e.hintId,"data-compa11y-input-hint":"",className:l,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=react.forwardRef(function({children:t,className:l},r){let e=Re();return t?jsxRuntime.jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-input-error":"",className:l,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=react.forwardRef(function({value:t,defaultValue:l="",onValueChange:r,type:e="text",label:n,hint:i,error:c,required:o=false,disabled:a=false,readOnly:b=false,"aria-label":s,"aria-labelledby":f,placeholder:m,name:x,autoComplete:u,maxLength:T,minLength:C,pattern:I,inputMode:E,id:p,unstyled:y=false,className:H,onFocus:R,onBlur:P,children:O},N){let A=chunkMAR6RBHF_cjs.a("input"),$=p||A,g=`${$}-field`,h=`${$}-label`,M=`${$}-hint`,F=`${$}-error`,[K,D]=react.useState(l),B=t!==void 0,q=B?t:K,[w,U]=react.useState(false),j=react.useCallback(_=>{B||D(_),r?.(_);},[B,r]),{isFocusVisible:W,focusProps:z}=oe(),Z=react.useRef(null),ne=react.useCallback(_=>{Z.current=_,typeof N=="function"?N(_):N&&(N.current=_);},[N]),J=react.useCallback(_=>{j(_.target.value);},[j]),Q=react.useCallback(_=>{z.onFocus(),R?.(_);},[z,R]),re=react.useCallback(_=>{z.onBlur(),P?.(_);},[z,P]);react.useEffect(()=>{process.env.NODE_ENV!=="production"&&!(react.Children.count(O)>0)&&!n&&!s&&!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.");},[O,n,s,f]);let Y=!!c,be=react.Children.count(O)>0,v={fieldId:g,labelId:h,hintId:M,errorId:F,value:q,setValue:j,hasError:Y,hasHint:be?w:!!i,setHasHint:U,disabled:a,readOnly:b,required:o,isFocusVisible:W,focusProps:z,unstyled:y},S={"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 jsxRuntime.jsx(bo.Provider,{value:v,children:jsxRuntime.jsx("div",{...S,className:H,style:L,children:O})});let k=[];i&&k.push(M),Y&&k.push(F);let V=k.length>0?k.join(" "):void 0;return jsxRuntime.jsxs("div",{...S,className:H,style:L,children:[n&&jsxRuntime.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&&jsxRuntime.jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:y?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsxRuntime.jsx("input",{ref:ne,id:g,type:e,value:q,onChange:J,onFocus:Q,onBlur:re,disabled:a,readOnly:b,required:o,placeholder:m,name:x,autoComplete:u,maxLength:T,minLength:C,pattern:I,inputMode:E,"aria-label":n?void 0:s,"aria-labelledby":!n&&f?f:n?h:void 0,"aria-describedby":V,"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)"}:{}}}),i&&jsxRuntime.jsx("div",{id:M,"data-compa11y-input-hint":"",style:y?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:i}),Y&&jsxRuntime.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 fo=Object.assign(_e,{Label:je,Field:We,Hint:Ue,Error:qe});var zn={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)"}},Gn={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=react.forwardRef(function({variant:t="secondary",size:l="md",type:r="button",disabled:e=false,discoverable:n=false,loading:i=false,unstyled:c=false,"aria-label":o,className:a,style:b,onClick:s,onFocus:f,onBlur:m,children:x,...u},T){let C=chunkMAR6RBHF_cjs.a("button"),I=react.useRef(null),E=react.useCallback(g=>{I.current=g,typeof T=="function"?T(g):T&&(T.current=g);},[T]),{isFocusVisible:p,focusProps:y}=oe();react.useEffect(()=>{process.env.NODE_ENV!=="production"&&!x&&!o&&!u["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,u["aria-labelledby"]]);let H=e&&!n,R=e||i,P=react.useCallback(g=>{if(R){g.preventDefault();return}s?.(g);},[R,s]),O=react.useCallback(g=>{y.onFocus(),f?.(g);},[y,f]),N=react.useCallback(g=>{y.onBlur(),m?.(g);},[y,m]),A={"data-compa11y-button":"","data-variant":t,"data-size":l,"data-disabled":e?"true":"false","data-loading":i?"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:R?"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",...zn[t],...Gn[l],...p&&!H?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}};return jsxRuntime.jsxs("button",{ref:E,id:C,type:r,disabled:H,tabIndex:e&&!n?void 0:0,"aria-disabled":R?"true":void 0,"aria-busy":i?"true":void 0,"aria-label":o,onClick:P,onFocus:O,onBlur:N,className:a,style:{...$,...b},...A,...u,children:[i&&jsxRuntime.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 ho=react.createContext(null);function Ie(){let d=react.useContext(ho);if(!d)throw new Error("[Compa11y Textarea]: Textarea sub-components (Textarea.Label, Textarea.Field, etc.) must be used within <Textarea>.");return d}var Xe=react.forwardRef(function({children:t,className:l},r){let e=Ie();return jsxRuntime.jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-textarea-label":"",className:l,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&&jsxRuntime.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=react.forwardRef(function({onFocus:t,onBlur:l,className:r,style:e,rows:n,...i},c){let o=Ie(),a=react.useRef(null),b=react.useCallback(u=>{a.current=u,typeof c=="function"?c(u):c&&(c.current=u);},[c]),s=react.useCallback(u=>{o.setValue(u.target.value);},[o.setValue]),f=react.useCallback(u=>{o.focusProps.onFocus(),t?.(u);},[o.focusProps,t]),m=react.useCallback(u=>{o.focusProps.onBlur(),l?.(u);},[o.focusProps,l]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsxRuntime.jsx("textarea",{ref:b,id:o.fieldId,rows:n??o.rows,value:o.value,onChange:s,onFocus:f,onBlur:m,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},...i})});Ze.displayName="TextareaField";var Je=react.forwardRef(function({children:t,className:l},r){let e=Ie();return react.useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsxRuntime.jsx("div",{ref:r,id:e.hintId,"data-compa11y-textarea-hint":"",className:l,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=react.forwardRef(function({children:t,className:l},r){let e=Ie();return t?jsxRuntime.jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-textarea-error":"",className:l,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=react.forwardRef(function({value:t,defaultValue:l="",onValueChange:r,rows:e=3,resize:n="vertical",label:i,hint:c,error:o,required:a=false,disabled:b=false,readOnly:s=false,"aria-label":f,"aria-labelledby":m,placeholder:x,name:u,autoComplete:T,maxLength:C,minLength:I,id:E,unstyled:p=false,className:y,onFocus:H,onBlur:R,children:P},O){let N=chunkMAR6RBHF_cjs.a("textarea"),A=E||N,$=`${A}-field`,g=`${A}-label`,h=`${A}-hint`,M=`${A}-error`,[F,K]=react.useState(l),D=t!==void 0,B=D?t:F,q=react.useCallback(V=>{D||K(V),r?.(V);},[D,r]),{isFocusVisible:w,focusProps:U}=oe();react.useEffect(()=>{process.env.NODE_ENV!=="production"&&!(react.Children.count(P)>0)&&!i&&!f&&!m&&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,i,f,m]);let j=!!o,[W,z]=react.useState(false),Z=react.Children.count(P)>0,ne={fieldId:$,labelId:g,hintId:h,errorId:M,value:B,setValue:q,hasError:j,hasHint:Z?W:!!c,setHasHint:z,disabled:b,readOnly:s,required:a,rows:e,resize:n,isFocusVisible:w,focusProps:U,unstyled:p},J={"data-compa11y-textarea":"","data-error":j?"true":"false","data-disabled":b?"true":"false","data-required":a?"true":"false","data-readonly":s?"true":"false"},Q=p?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"},re=react.useRef(null),Y=react.useCallback(V=>{re.current=V,typeof O=="function"?O(V):O&&(O.current=V);},[O]),be=react.useCallback(V=>{q(V.target.value);},[q]),v=react.useCallback(V=>{U.onFocus(),H?.(V);},[U,H]),S=react.useCallback(V=>{U.onBlur(),R?.(V);},[U,R]);if(Z)return jsxRuntime.jsx(ho.Provider,{value:ne,children:jsxRuntime.jsx("div",{...J,className:y,style:Q,children:P})});let L=[];c&&L.push(h),j&&L.push(M);let k=L.length>0?L.join(" "):void 0;return jsxRuntime.jsxs("div",{...J,className:y,style:Q,children:[i&&jsxRuntime.jsxs("label",{id:g,htmlFor:$,"data-compa11y-textarea-label":"",style:p?{}:{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,a&&jsxRuntime.jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:p?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsxRuntime.jsx("textarea",{ref:Y,id:$,rows:e,value:B,onChange:be,onFocus:v,onBlur:S,disabled:b,readOnly:s,required:a,placeholder:x,name:u,autoComplete:T,maxLength:C,minLength:I,"aria-label":i?void 0:f,"aria-labelledby":!i&&m?m:i?g:void 0,"aria-describedby":k,"aria-invalid":j?"true":void 0,"aria-required":a?"true":void 0,"data-compa11y-textarea-field":"",style:p?{}:{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)":s?"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&&jsxRuntime.jsx("div",{id:h,"data-compa11y-textarea-hint":"",style:p?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:c}),j&&jsxRuntime.jsx("div",{id:M,role:"alert","data-compa11y-textarea-error":"",style:p?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:o})]})});et.displayName="Textarea";var vo=Object.assign(et,{Label:Xe,Field:Ze,Hint:Je,Error:Qe});Object.defineProperty(exports,"Dialog",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.k}});Object.defineProperty(exports,"DialogActions",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.j}});Object.defineProperty(exports,"DialogBase",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.d}});Object.defineProperty(exports,"DialogClose",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.h}});Object.defineProperty(exports,"DialogContent",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.i}});Object.defineProperty(exports,"DialogDescription",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.g}});Object.defineProperty(exports,"DialogTitle",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.f}});Object.defineProperty(exports,"DialogTrigger",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.e}});Object.defineProperty(exports,"useDialogContext",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.c}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.a}});Object.defineProperty(exports,"useFocusTrapControls",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.b}});Object.defineProperty(exports,"ActionMenu",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.i}});Object.defineProperty(exports,"ActionMenuBase",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.c}});Object.defineProperty(exports,"ActionMenuContent",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.e}});Object.defineProperty(exports,"ActionMenuItem",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.f}});Object.defineProperty(exports,"ActionMenuLabel",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.h}});Object.defineProperty(exports,"ActionMenuSeparator",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.g}});Object.defineProperty(exports,"ActionMenuTrigger",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.d}});Object.defineProperty(exports,"useActionMenuContext",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.a}});Object.defineProperty(exports,"Tab",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.d}});Object.defineProperty(exports,"TabList",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.c}});Object.defineProperty(exports,"TabPanel",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.e}});Object.defineProperty(exports,"Tabs",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.f}});Object.defineProperty(exports,"TabsBase",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.b}});Object.defineProperty(exports,"useTabsContext",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.a}});Object.defineProperty(exports,"ToastProvider",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.b}});Object.defineProperty(exports,"ToastViewport",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.c}});Object.defineProperty(exports,"useToast",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.a}});Object.defineProperty(exports,"useToastHelpers",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.d}});Object.defineProperty(exports,"Combobox",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.e}});Object.defineProperty(exports,"ComboboxBase",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.a}});Object.defineProperty(exports,"ComboboxInput",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.b}});Object.defineProperty(exports,"ComboboxListbox",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.c}});Object.defineProperty(exports,"ComboboxOption",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.d}});Object.defineProperty(exports,"useAnnounceLoading",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.c}});Object.defineProperty(exports,"useAnnounceOnChange",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.b}});Object.defineProperty(exports,"useAnnouncer",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.a}});Object.defineProperty(exports,"useGridKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.d}});Object.defineProperty(exports,"useKeyPressed",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.f}});Object.defineProperty(exports,"useKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.a}});Object.defineProperty(exports,"useMenuKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.b}});Object.defineProperty(exports,"useTabsKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.c}});Object.defineProperty(exports,"useTypeAhead",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.e}});Object.defineProperty(exports,"useId",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.a}});Object.defineProperty(exports,"useIdScope",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.c}});Object.defineProperty(exports,"useIds",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.b}});Object.defineProperty(exports,"announce",{enumerable:true,get:function(){return core.announce}});Object.defineProperty(exports,"announceAssertive",{enumerable:true,get:function(){return core.announceAssertive}});Object.defineProperty(exports,"announceError",{enumerable:true,get:function(){return core.announceError}});Object.defineProperty(exports,"announcePolite",{enumerable:true,get:function(){return core.announcePolite}});Object.defineProperty(exports,"announceProgress",{enumerable:true,get:function(){return core.announceProgress}});Object.defineProperty(exports,"announceStatus",{enumerable:true,get:function(){return core.announceStatus}});Object.defineProperty(exports,"aria",{enumerable:true,get:function(){return core.aria}});Object.defineProperty(exports,"buildAriaProps",{enumerable:true,get:function(){return core.buildAriaProps}});Object.defineProperty(exports,"checks",{enumerable:true,get:function(){return core.checks}});Object.defineProperty(exports,"createComponentWarnings",{enumerable:true,get:function(){return core.createComponentWarnings}});Object.defineProperty(exports,"hasAccessibleName",{enumerable:true,get:function(){return core.hasAccessibleName}});Object.defineProperty(exports,"isAndroid",{enumerable:true,get:function(){return core.isAndroid}});Object.defineProperty(exports,"isBrowser",{enumerable:true,get:function(){return core.isBrowser}});Object.defineProperty(exports,"isIOS",{enumerable:true,get:function(){return core.isIOS}});Object.defineProperty(exports,"isMac",{enumerable:true,get:function(){return core.isMac}});Object.defineProperty(exports,"mergeAriaIds",{enumerable:true,get:function(){return core.mergeAriaIds}});Object.defineProperty(exports,"prefersDarkMode",{enumerable:true,get:function(){return core.prefersDarkMode}});Object.defineProperty(exports,"prefersHighContrast",{enumerable:true,get:function(){return core.prefersHighContrast}});Object.defineProperty(exports,"prefersReducedMotion",{enumerable:true,get:function(){return core.prefersReducedMotion}});Object.defineProperty(exports,"setWarningHandler",{enumerable:true,get:function(){return core.setWarningHandler}});Object.defineProperty(exports,"warn",{enumerable:true,get:function(){return core.warn}});exports.Button=Ct;exports.Checkbox=Jt;exports.CheckboxBase=Oe;exports.CheckboxGroup=Fe;exports.CheckboxIndicator=Ae;exports.Input=fo;exports.InputBase=_e;exports.InputError=qe;exports.InputField=We;exports.InputHint=Ue;exports.InputLabel=je;exports.Listbox=io;exports.ListboxBase=Ge;exports.ListboxGroup=Ke;exports.ListboxOption=$e;exports.Radio=Ve;exports.RadioGroup=eo;exports.RadioGroupBase=Ne;exports.Select=qt;exports.SelectBase=st;exports.SelectListbox=ct;exports.SelectOptionItem=we;exports.SelectTrigger=lt;exports.Switch=gt;exports.Textarea=vo;exports.TextareaBase=et;exports.TextareaError=Qe;exports.TextareaField=Ze;exports.TextareaHint=Je;exports.TextareaLabel=Xe;exports.useCheckboxGroupContext=pt;exports.useFocusControl=Dt;exports.useFocusManager=Vt;exports.useFocusNeighbor=Gt;exports.useFocusReturn=$t;exports.useFocusVisible=oe;exports.useFocusWithin=Bt;exports.useInputContext=Re;exports.useListboxContext=ze;exports.useRadioGroupContext=xt;exports.useRovingTabindex=tt;exports.useRovingTabindexMap=zt;exports.useTextareaContext=Ie;
|
|
1
|
+
'use strict';var chunkPO5IUVYY_cjs=require('./chunk-PO5IUVYY.cjs'),chunkASK7XTJD_cjs=require('./chunk-ASK7XTJD.cjs'),chunkBFN4HW4Y_cjs=require('./chunk-BFN4HW4Y.cjs'),chunkROFBF3PJ_cjs=require('./chunk-ROFBF3PJ.cjs'),chunkFOVHQAY5_cjs=require('./chunk-FOVHQAY5.cjs'),chunkJS3UD7KS_cjs=require('./chunk-JS3UD7KS.cjs'),chunkAJ7JSWUT_cjs=require('./chunk-AJ7JSWUT.cjs'),chunkMAR6RBHF_cjs=require('./chunk-MAR6RBHF.cjs'),tr=require('react'),core=require('@compa11y/core'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var tr__default=/*#__PURE__*/_interopDefault(tr);function oe(){let[p,t]=tr.useState(false);tr.useEffect(()=>core.initFocusVisible(),[]);let i=tr.useCallback(()=>{t(core.isFocusVisible());},[]),r=tr.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=tr.useCallback(n=>{n&&t&&requestAnimationFrame(()=>{r?core.focusWithVisibleRing(n):n.focus();});},[t,r]);return tr.useEffect(()=>{if(!i)return;let n=document.activeElement;return ()=>{n&&n.focus&&n.focus();}},[i]),e}function Bt(){let p=tr.useCallback(i=>{},[]),t=tr.useCallback(i=>{let r=p;r.current&&(i?.visible?core.focusWithVisibleRing(r.current):r.current.focus());},[]);return {ref:p,focus:t}}function zt(){let[p,t]=tr.useState(false),i=tr.useCallback(n=>{},[]),r=tr.useCallback(()=>{t(true);},[]),e=tr.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]=tr.useState(i),o=tr.useRef([]);tr.useEffect(()=>{s>=t&&c(Math.max(0,t-1));},[t,s]);let a=tr.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=tr.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=tr.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=tr.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=tr.useRef(null),i=tr.useRef(p);i.current=p;let r=tr.useCallback(()=>t.current?core.findFocusNeighbor(t.current,i.current):null,[]),e=tr.useCallback(()=>{r()?.focus();},[r]);return {ref:t,getNeighbor:r,focusNeighbor:e}}function Kt(){let p=tr.useRef(core.createFocusReturn()),t=tr.useCallback(e=>{p.current.save(e);},[]),i=tr.useCallback(e=>{p.current.return(e);},[]),r=tr.useCallback(()=>{p.current.clear();},[]);return {save:t,returnFocus:i,clear:r}}var vn=core.createComponentWarnings("Select"),qt=tr.createContext(null);function st(){let p=tr.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]=tr.useState(i??null),[l,f]=tr.useState(false),[u,x]=tr.useState(-1),d=tr.useRef(null),T=t!==void 0?t:a,R=chunkMAR6RBHF_cjs.a("select-trigger"),S=chunkMAR6RBHF_cjs.a("select-listbox"),I=chunkMAR6RBHF_cjs.a("select-option"),m=tr.useCallback(P=>{t===void 0&&b(P),r?.(P);},[t,r]),y=tr.useCallback(P=>`${I}-${P}`,[I]),H=tr.useCallback(P=>{m(P.value),f(false),x(-1),d.current?.focus();},[m]);tr.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 jsxRuntime.jsx(qt.Provider,{value:C,children:jsxRuntime.jsx("div",{"data-compa11y-select":true,"data-disabled":e||void 0,children:o})})}var ct=tr.forwardRef(function({onKeyDown:t,onClick:i,onBlur:r,...e},n){let{selectedValue:s,isOpen:c,setIsOpen:o,highlightedIndex:a,setHighlightedIndex:b,options:l,triggerId:f,listboxId:u,getOptionId:x,onSelect:d,triggerRef:T,placeholder:R,disabled:S}=st(),{announce:I}=chunkJS3UD7KS_cjs.a(),m=chunkAJ7JSWUT_cjs.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=tr.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=chunkAJ7JSWUT_cjs.a({ArrowDown:()=>{if(!c)y();else {let h=jt(l,a,1);h>=0&&b(h);}},ArrowUp:()=>{if(!c)y(true);else {let h=jt(l,a,-1);h>=0&&b(h);}},Enter:()=>{if(c&&a>=0){let h=l[a];h&&!h.disabled&&(d(h),I(`${h.label} selected`));}else c||y();},Space:()=>{if(c&&a>=0){let h=l[a];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>=0?x(a):void 0,O=l.find(h=>h.value===s),$=O?.label??R,g=tr.useCallback(h=>{T.current=h,typeof n=="function"?n(h):n&&(n.current=h);},[n,T]);return jsxRuntime.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,children:[jsxRuntime.jsx("span",{"data-compa11y-select-value":true,children:$}),jsxRuntime.jsx("span",{"aria-hidden":"true","data-compa11y-select-chevron":true,children:"\u25BC"})]})}),ut=tr.forwardRef(function({children:t,style:i,...r},e){let{isOpen:n,options:s,listboxId:c,triggerId:o}=st(),{announce:a}=chunkJS3UD7KS_cjs.a(),b=tr.useRef(null),[l,f]=tr.useState("bottom");tr.useEffect(()=>{n&&a(`${s.length} option${s.length===1?"":"s"} available`);},[n,s.length,a]),tr.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=tr.useCallback(T=>{b.current=T,typeof e=="function"?e(T):e&&(e.current=T);},[e]);return n?jsxRuntime.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)=>jsxRuntime.jsx(we,{option:T,index:R},T.value))}):null}),we=tr.forwardRef(function({option:t,index:i,onClick:r,onMouseEnter:e,...n},s){let{selectedValue:c,highlightedIndex:o,setHighlightedIndex:a,getOptionId:b,onSelect:l}=st(),{announce:f}=chunkJS3UD7KS_cjs.a(),u=tr.useRef(null),x=c===t.value,d=o===i,T=b(i);tr.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(i);},I=tr.useCallback(m=>{u.current=m,typeof s=="function"?s(m):s&&(s.current=m);},[s]);return jsxRuntime.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:[jsxRuntime.jsx("span",{"data-compa11y-select-option-text":true,children:t.label}),x&&jsxRuntime.jsx("span",{"aria-hidden":"true","data-compa11y-select-check":true,children:"\u2713"})]})}),_t=Object.assign(lt,{Trigger:ct,Listbox:ut,Option:we});var Zt=core.createComponentWarnings("Checkbox"),In=()=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),En=()=>jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("path",{d:"M3 6H9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),Jt=tr.createContext(null);function bt(){return tr.useContext(Jt)}var Fe=tr.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=chunkMAR6RBHF_cjs.a("checkbox-group"),T=o||d,R=chunkMAR6RBHF_cjs.a("checkbox-group-error"),[S,I]=tr.useState(i),m=t!==void 0,y=m?t:S;tr.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=tr.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 jsxRuntime.jsx(Jt.Provider,{value:C,children:jsxRuntime.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&&jsxRuntime.jsx("legend",{"data-compa11y-checkbox-group-legend":"",style:V,children:n}),jsxRuntime.jsx("div",{style:O,children:l}),P&&jsxRuntime.jsx("div",{id:R,role:"alert","data-compa11y-checkbox-group-error":"",style:$,children:s})]})})});Fe.displayName="CheckboxGroup";var Ae=tr.forwardRef(function({checked:t,defaultChecked:i=false,onCheckedChange:r,indeterminate:e=false,label:n,hint:s,error:c,disabled:o=false,value:a,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=chunkMAR6RBHF_cjs.a("checkbox"),A=`${P}-input`,V=`${P}-label`,O=`${P}-hint`,$=`${P}-error`,{announce:g}=chunkJS3UD7KS_cjs.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]=tr.useState(i),U=F?C.value.includes(a||""):t!==void 0?t:q,j=tr.useRef(null),W=tr.useCallback(ue=>{j.current=ue,typeof H=="function"?H(ue):H&&(H.current=ue);},[H]);tr.useEffect(()=>{j.current&&(j.current.indeterminate=e);},[e]),tr.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=tr.useCallback(ue=>{let ke=ue.target.checked;F?C.onCheckboxChange(a||"",ke):(t===void 0&&w(ke),r?.(ke)),g(`${typeof n=="string"?n:d||"Checkbox"} ${ke?"checked":"unchecked"}`);},[F,C,a,t,r,n,d,g]),Z=tr.useCallback(ue=>{k.onFocus(),I?.(ue);},[k,I]),ne=tr.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 jsxRuntime.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:[jsxRuntime.jsxs("div",{style:M,children:[jsxRuntime.jsx("input",{ref:W,type:"checkbox",id:A,name:B,value:a,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&&jsxRuntime.jsxs("div",{"data-compa11y-checkbox-indicator":"","aria-hidden":"true",style:_,children:[U&&!e&&jsxRuntime.jsx(In,{}),e&&jsxRuntime.jsx(En,{})]})]}),(J||Q||re)&&jsxRuntime.jsxs("div",{style:ge,children:[J&&jsxRuntime.jsxs("label",{htmlFor:A,id:V,"data-compa11y-checkbox-label":"",style:Lo,children:[n,b&&jsxRuntime.jsx("span",{"aria-hidden":"true",style:{color:"var(--compa11y-checkbox-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),Q&&jsxRuntime.jsx("div",{id:O,"data-compa11y-checkbox-hint":"",style:Ho,children:s}),re&&jsxRuntime.jsx("div",{id:$,role:"alert","data-compa11y-checkbox-error":"",style:ko,children:c})]})]})});Ae.displayName="Checkbox";var Oe=tr.forwardRef(function({children:t,className:i},r){return jsxRuntime.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=core.createComponentWarnings("RadioGroup"),xt=tr.createContext(null);function yt(){let p=tr.useContext(xt);if(!p)throw new Error("[Compa11y RadioGroup]: Radio must be used within a RadioGroup.");return p}var Ve=tr.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=chunkMAR6RBHF_cjs.a("radiogroup"),I=o||S,m=chunkMAR6RBHF_cjs.a("radiogroup-hint"),y=chunkMAR6RBHF_cjs.a("radiogroup-error"),[H,C]=tr.useState(i??null),P=t!==void 0,A=P?t:H,V=tr.useRef(new Map);tr.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=tr.useCallback(W=>{e||(P||C(W),r?.(W));},[e,P,r]),$=tr.useCallback((W,z)=>{V.current.set(W,z);},[]),g=tr.useCallback(W=>{V.current.delete(W);},[]),h=tr.useCallback((W,z)=>{V.current.set(W,z);},[]),k=tr.useCallback(()=>{let W=[];return V.current.forEach((z,Z)=>{!z&&!e&&W.push(Z);}),W},[e]),F=tr.useRef(null),K=R||F,D=tr.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=chunkAJ7JSWUT_cjs.a({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=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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&&jsxRuntime.jsx("div",{id:m,style:f?{}:{color:"var(--compa11y-radio-group-hint-color, #666)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:b}),l&&jsxRuntime.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?jsxRuntime.jsx(xt.Provider,{value:q,children:jsxRuntime.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:[jsxRuntime.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&&jsxRuntime.jsxs("span",{"aria-hidden":"true",style:{color:"var(--compa11y-radio-group-required-color, #ef4444)",marginLeft:"0.125rem"},children:[" ","*"]})]}),j]})}):jsxRuntime.jsx(xt.Provider,{value:q,children:jsxRuntime.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=tr.forwardRef(function({value:t,disabled:i=false,discoverable:r,label:e,hint:n,unstyled:s,className:c="",children:o,"aria-label":a},b){let l=yt(),f=chunkMAR6RBHF_cjs.a("radio"),u=chunkMAR6RBHF_cjs.a("radio-hint"),x=l.disabled||i,d=r??l.discoverable,T=s??l.unstyled,R=l.value===t,{announce:S}=chunkJS3UD7KS_cjs.a(),{isFocusVisible:I,focusProps:m}=oe(),y=tr.useRef(null),H=tr.useCallback(B=>{y.current=B,typeof b=="function"?b(B):b&&(b.current=B);},[b]);tr.useEffect(()=>(l.registerRadio(t,x),()=>l.unregisterRadio(t)),[t]),tr.useEffect(()=>{l.updateRadioDisabled(t,x);},[x,t]);let C=tr.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=tr.useCallback(B=>{x&&B.preventDefault();},[x]),A=tr.useCallback(B=>{m.onFocus(),!R&&!x&&l.onValueChange(t);},[m,R,x,l,t]),V=tr.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 jsxRuntime.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:[jsxRuntime.jsxs("div",{style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:[jsxRuntime.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,"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&&jsxRuntime.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:jsxRuntime.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)&&jsxRuntime.jsxs("div",{style:T?{}:{display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},children:[O&&jsxRuntime.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&&jsxRuntime.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=core.createComponentWarnings("Switch"),ht=tr.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,"aria-labelledby":b,onClick:l,...f},u){let d=`${chunkMAR6RBHF_cjs.a("switch")}-label`,{announce:T}=chunkJS3UD7KS_cjs.a(),{isFocusVisible:R,focusProps:S}=oe(),[I,m]=tr.useState(i),y=t!==void 0,H=y?t:I;tr.useEffect(()=>{!e&&!a&&!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,b]);let C=tr.useCallback(()=>{if(n)return;let w=!H;y||m(w),r?.(w),T(`${e||a||"Switch"} ${w?"on":"off"}`);},[H,n,y,r,e,a,T]),P=tr.useCallback(w=>{l?.(w),w.defaultPrevented||C();},[l,C]),A=chunkAJ7JSWUT_cjs.a({Space:()=>{C();},Enter:()=>{C();}},{preventDefault:true}),V=w=>{f.onKeyDown?.(w),w.defaultPrevented||A.onKeyDown(w);},O=a,$=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 jsxRuntime.jsxs("div",{style:g,"data-compa11y-switch-wrapper":true,"data-size":o,children:[jsxRuntime.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:jsxRuntime.jsx("span",{style:{...D,...B},"data-compa11y-switch-thumb":true,"aria-hidden":"true"})}),e&&jsxRuntime.jsx("label",{id:d,onClick:n?void 0:()=>C(),style:q,"data-compa11y-switch-label":true,children:e})]})});ht.displayName="Switch";var zn=core.createComponentWarnings("Listbox"),ao=tr.createContext(null);function ze(){let p=tr.useContext(ao);if(!p)throw new Error("[Compa11y Listbox]: Option/Group must be used within a Listbox.");return p}var io=tr.createContext({groupDisabled:false}),Ge=tr.forwardRef(function({value:t,defaultValue:i,onValueChange:r,multiple:e=false,disabled:n=false,discoverable:s=true,orientation:c="vertical",unstyled:o=false,className:a="",children:b,"aria-label":l,"aria-labelledby":f},u){let x=chunkMAR6RBHF_cjs.a("listbox"),{announce:d}=chunkJS3UD7KS_cjs.a(),[T,R]=tr.useState(()=>i??(e?[]:"")),S=t!==void 0,I=S?t:T,m=tr.useMemo(()=>e?new Set(Array.isArray(I)?I:[]):new Set(I?[String(I)]:[]),[I,e]),[y,H]=tr.useState(null),C=tr.useRef(new Map),[P,A]=tr.useState(0),V=tr.useCallback((v,E,L)=>{C.current.set(v,{disabled:E,label:L}),A(M=>M+1);},[]),O=tr.useCallback(v=>{C.current.delete(v),A(E=>E+1);},[]),$=tr.useCallback((v,E)=>{let L=C.current.get(v);L&&C.current.set(v,{...L,disabled:E});},[]),g=tr.useMemo(()=>{let v=[];return C.current.forEach((E,L)=>{!E.disabled&&!n&&v.push(L);}),v},[P,n]);tr.useEffect(()=>{!l&&!f&&zn.warning("Listbox has no accessible label. Screen readers need this.",'Add aria-label="..." or aria-labelledby="..."');},[l,f]);let h=tr.useCallback(v=>m.has(v),[m]),k=tr.useCallback(v=>{if(n)return;let E=C.current.get(v);if(E?.disabled)return;let L,M=E?.label||v;if(e){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,m,S,r,d]),F=tr.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){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,S,r,d,m]),K=tr.useCallback(()=>{y&&e&&k(y);},[y,e,k]),D=tr.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=tr.useCallback(()=>{if(!e||!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,y,g,m,S,r,d]),q=tr.useCallback(()=>{if(!e||!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,y,g,m,S,r,d]),w=tr.useCallback(()=>{if(!e)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,g,m,S,r,d]),U=tr.useMemo(()=>{let v={ArrowDown:()=>F("next"),ArrowUp:()=>F("prev"),Home:()=>F("first"),End:()=>F("last")};return e&&(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,F,K,D,B,q,w]),j=chunkAJ7JSWUT_cjs.a(U,{preventDefault:true,stopPropagation:true,disabled:n}),W=tr.useMemo(()=>Array.from(C.current.values()).map(v=>v.label),[P]),z=chunkAJ7JSWUT_cjs.e(W,v=>{for(let[E,L]of C.current.entries())if(L.label===v&&!L.disabled){if(H(E),!e){let M=E;S||R(M),r?.(M),d(`${v} selected`,{politeness:"polite"});}break}},{disabled:n}),Z=tr.useCallback(v=>{j.onKeyDown(v),v.defaultPrevented||z.onKeyDown(v);},[j,z]),ne=tr.useCallback(()=>{if(!y){if(!e&&I&&typeof I=="string"){H(I);return}if(e&&Array.isArray(I)&&I.length>0){H(I[0]??null);return}g.length>0&&H(g[0]??null);}},[y,e,I,g]),J=tr.useCallback(()=>{},[]),Q=tr.useRef(null);tr.useEffect(()=>{y&&Q.current&&Q.current.querySelector(`[data-value="${CSS.escape(y)}"]`)?.scrollIntoView({block:"nearest"});},[y]);let re=tr.useMemo(()=>({multiple:e,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,n,s,o,c,m,y,k,V,O,$,h,x]),Y=tr.useCallback(v=>{Q.current=v,typeof u=="function"?u(v):u&&(u.current=v);},[u]),be=y?`${x}-option-${y}`:void 0;return jsxRuntime.jsx(ao.Provider,{value:re,children:jsxRuntime.jsx("div",{ref:Y,role:"listbox","aria-label":l,"aria-labelledby":f,"aria-orientation":c,"aria-multiselectable":e||void 0,"aria-disabled":n||void 0,"aria-activedescendant":be,tabIndex:n&&!s?-1:0,className:`compa11y-listbox ${a}`.trim(),"data-compa11y-listbox":"","data-orientation":c,"data-disabled":n?"true":void 0,"data-multiple":e?"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=tr.forwardRef(function({value:t,disabled:i=false,discoverable:r,unstyled:e,className:n="",children:s,"aria-label":c},o){let a=ze(),{groupDisabled:b}=tr.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=tr.useRef(""),R=tr.useRef(null),S=tr.useCallback(m=>{R.current=m,typeof o=="function"?o(m):o&&(o.current=m);},[o]);tr.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]),tr.useEffect(()=>{a.updateOptionDisabled(t,l);},[l,t]);let I=tr.useCallback(m=>{if(l){m.preventDefault();return}a.onFocusOption(t),a.onSelect(t);},[l,a,t]);return jsxRuntime.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:[jsxRuntime.jsx("span",{style:{flex:1},children:s}),u&&!f&&jsxRuntime.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=tr.forwardRef(function({label:t,disabled:i=false,unstyled:r,className:e="",children:n},s){let c=ze(),o=r??c.unstyled,a=chunkMAR6RBHF_cjs.a("listbox-group"),b=tr.useMemo(()=>({groupDisabled:c.disabled||i}),[c.disabled,i]);return jsxRuntime.jsx(io.Provider,{value:b,children:jsxRuntime.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:[jsxRuntime.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=tr.createContext(null);function Ce(){let p=tr.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=tr.forwardRef(function({children:t,className:i},r){let e=Ce();return jsxRuntime.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&&jsxRuntime.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=tr.forwardRef(function({type:t="text",onFocus:i,onBlur:r,className:e,style:n,...s},c){let o=Ce(),a=tr.useRef(null),b=tr.useCallback(d=>{a.current=d,typeof c=="function"?c(d):c&&(c.current=d);},[c]),l=tr.useCallback(d=>{o.setValue(d.target.value);},[o.setValue]),f=tr.useCallback(d=>{o.focusProps.onFocus(),i?.(d);},[o.focusProps,i]),u=tr.useCallback(d=>{o.focusProps.onBlur(),r?.(d);},[o.focusProps,r]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsxRuntime.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=tr.forwardRef(function({children:t,className:i},r){let e=Ce();return tr.useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsxRuntime.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=tr.forwardRef(function({children:t,className:i},r){let e=Ce();return t?jsxRuntime.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=tr.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=chunkMAR6RBHF_cjs.a("input"),$=m||O,g=`${$}-field`,h=`${$}-label`,k=`${$}-hint`,F=`${$}-error`,[K,D]=tr.useState(i),B=t!==void 0,q=B?t:K,[w,U]=tr.useState(false),j=tr.useCallback(_=>{B||D(_),r?.(_);},[B,r]),{isFocusVisible:W,focusProps:z}=oe(),Z=tr.useRef(null),ne=tr.useCallback(_=>{Z.current=_,typeof V=="function"?V(_):V&&(V.current=_);},[V]),J=tr.useCallback(_=>{j(_.target.value);},[j]),Q=tr.useCallback(_=>{z.onFocus(),C?.(_);},[z,C]),re=tr.useCallback(_=>{z.onBlur(),P?.(_);},[z,P]);tr.useEffect(()=>{process.env.NODE_ENV!=="production"&&!(tr.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=tr.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 jsxRuntime.jsx(fo.Provider,{value:v,children:jsxRuntime.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 jsxRuntime.jsxs("div",{...E,className:H,style:L,children:[n&&jsxRuntime.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&&jsxRuntime.jsx("span",{"data-compa11y-input-required":"","aria-hidden":"true",style:y?{}:{color:"var(--compa11y-input-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsxRuntime.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&&jsxRuntime.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&&jsxRuntime.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=tr.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=chunkMAR6RBHF_cjs.a("button"),S=tr.useRef(null),I=tr.useCallback(g=>{S.current=g,typeof T=="function"?T(g):T&&(T.current=g);},[T]),{isFocusVisible:m,focusProps:y}=oe();tr.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=tr.useCallback(g=>{if(C){g.preventDefault();return}l?.(g);},[C,l]),A=tr.useCallback(g=>{y.onFocus(),f?.(g);},[y,f]),V=tr.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 jsxRuntime.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&&jsxRuntime.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=tr.createContext(null);function Se(){let p=tr.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=tr.forwardRef(function({children:t,className:i},r){let e=Se();return jsxRuntime.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&&jsxRuntime.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=tr.forwardRef(function({onFocus:t,onBlur:i,className:r,style:e,rows:n,...s},c){let o=Se(),a=tr.useRef(null),b=tr.useCallback(d=>{a.current=d,typeof c=="function"?c(d):c&&(c.current=d);},[c]),l=tr.useCallback(d=>{o.setValue(d.target.value);},[o.setValue]),f=tr.useCallback(d=>{o.focusProps.onFocus(),t?.(d);},[o.focusProps,t]),u=tr.useCallback(d=>{o.focusProps.onBlur(),i?.(d);},[o.focusProps,i]),x=[];return o.hasHint&&x.push(o.hintId),o.hasError&&x.push(o.errorId),jsxRuntime.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=tr.forwardRef(function({children:t,className:i},r){let e=Se();return tr.useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsxRuntime.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=tr.forwardRef(function({children:t,className:i},r){let e=Se();return t?jsxRuntime.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=tr.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=chunkMAR6RBHF_cjs.a("textarea"),O=I||V,$=`${O}-field`,g=`${O}-label`,h=`${O}-hint`,k=`${O}-error`,[F,K]=tr.useState(i),D=t!==void 0,B=D?t:F,q=tr.useCallback(N=>{D||K(N),r?.(N);},[D,r]),{isFocusVisible:w,focusProps:U}=oe();tr.useEffect(()=>{process.env.NODE_ENV!=="production"&&!(tr.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]=tr.useState(false),Z=tr.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=tr.useRef(null),Y=tr.useCallback(N=>{re.current=N,typeof A=="function"?A(N):A&&(A.current=N);},[A]),be=tr.useCallback(N=>{q(N.target.value);},[q]),v=tr.useCallback(N=>{U.onFocus(),H?.(N);},[U,H]),E=tr.useCallback(N=>{U.onBlur(),C?.(N);},[U,C]);if(Z)return jsxRuntime.jsx(vo.Provider,{value:ne,children:jsxRuntime.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 jsxRuntime.jsxs("div",{...J,className:y,style:Q,children:[s&&jsxRuntime.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&&jsxRuntime.jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:m?{}:{color:"var(--compa11y-textarea-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),jsxRuntime.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&&jsxRuntime.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&&jsxRuntime.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=tr.forwardRef(function({focusable:t=false,style:i,children:r,...e},n){return jsxRuntime.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=tr.forwardRef(function({target:t="#main-content",unstyled:i=false,children:r,style:e,onClick:n,...s},c){let[o,a]=tr__default.default.useState(false),b=tr.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 jsxRuntime.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=tr.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=tr.useCallback(()=>{e?.();},[e]),f=n?c:{...ur,borderLeft:`4px solid ${So[t]}`,...c};return jsxRuntime.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&&jsxRuntime.jsx("span",{"data-compa11y-alert-icon":true,"aria-hidden":"true",style:{...dr,color:So[t]},children:cr[t]}),jsxRuntime.jsxs("div",{"data-compa11y-alert-content":true,style:n?void 0:pr,children:[i&&jsxRuntime.jsx("div",{"data-compa11y-alert-title":true,style:n?void 0:br,children:i}),jsxRuntime.jsx("div",{"data-compa11y-alert-description":true,style:n?void 0:fr,children:s})]}),r&&jsxRuntime.jsx("button",{type:"button",onClick:l,"aria-label":"Dismiss alert","data-compa11y-alert-close":true,style:n?void 0:mr,children:"\xD7"})]})});Object.defineProperty(exports,"Dialog",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.k}});Object.defineProperty(exports,"DialogActions",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.j}});Object.defineProperty(exports,"DialogBase",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.d}});Object.defineProperty(exports,"DialogClose",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.h}});Object.defineProperty(exports,"DialogContent",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.i}});Object.defineProperty(exports,"DialogDescription",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.g}});Object.defineProperty(exports,"DialogTitle",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.f}});Object.defineProperty(exports,"DialogTrigger",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.e}});Object.defineProperty(exports,"useDialogContext",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.c}});Object.defineProperty(exports,"useFocusTrap",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.a}});Object.defineProperty(exports,"useFocusTrapControls",{enumerable:true,get:function(){return chunkPO5IUVYY_cjs.b}});Object.defineProperty(exports,"ActionMenu",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.i}});Object.defineProperty(exports,"ActionMenuBase",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.c}});Object.defineProperty(exports,"ActionMenuContent",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.e}});Object.defineProperty(exports,"ActionMenuItem",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.f}});Object.defineProperty(exports,"ActionMenuLabel",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.h}});Object.defineProperty(exports,"ActionMenuSeparator",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.g}});Object.defineProperty(exports,"ActionMenuTrigger",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.d}});Object.defineProperty(exports,"useActionMenuContext",{enumerable:true,get:function(){return chunkASK7XTJD_cjs.a}});Object.defineProperty(exports,"Tab",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.d}});Object.defineProperty(exports,"TabList",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.c}});Object.defineProperty(exports,"TabPanel",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.e}});Object.defineProperty(exports,"Tabs",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.f}});Object.defineProperty(exports,"TabsBase",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.b}});Object.defineProperty(exports,"useTabsContext",{enumerable:true,get:function(){return chunkBFN4HW4Y_cjs.a}});Object.defineProperty(exports,"ToastProvider",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.b}});Object.defineProperty(exports,"ToastViewport",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.c}});Object.defineProperty(exports,"useToast",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.a}});Object.defineProperty(exports,"useToastHelpers",{enumerable:true,get:function(){return chunkROFBF3PJ_cjs.d}});Object.defineProperty(exports,"Combobox",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.e}});Object.defineProperty(exports,"ComboboxBase",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.a}});Object.defineProperty(exports,"ComboboxInput",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.b}});Object.defineProperty(exports,"ComboboxListbox",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.c}});Object.defineProperty(exports,"ComboboxOption",{enumerable:true,get:function(){return chunkFOVHQAY5_cjs.d}});Object.defineProperty(exports,"useAnnounceLoading",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.c}});Object.defineProperty(exports,"useAnnounceOnChange",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.b}});Object.defineProperty(exports,"useAnnouncer",{enumerable:true,get:function(){return chunkJS3UD7KS_cjs.a}});Object.defineProperty(exports,"useGridKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.d}});Object.defineProperty(exports,"useKeyPressed",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.f}});Object.defineProperty(exports,"useKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.a}});Object.defineProperty(exports,"useMenuKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.b}});Object.defineProperty(exports,"useTabsKeyboard",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.c}});Object.defineProperty(exports,"useTypeAhead",{enumerable:true,get:function(){return chunkAJ7JSWUT_cjs.e}});Object.defineProperty(exports,"useId",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.a}});Object.defineProperty(exports,"useIdScope",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.c}});Object.defineProperty(exports,"useIds",{enumerable:true,get:function(){return chunkMAR6RBHF_cjs.b}});Object.defineProperty(exports,"announce",{enumerable:true,get:function(){return core.announce}});Object.defineProperty(exports,"announceAssertive",{enumerable:true,get:function(){return core.announceAssertive}});Object.defineProperty(exports,"announceError",{enumerable:true,get:function(){return core.announceError}});Object.defineProperty(exports,"announcePolite",{enumerable:true,get:function(){return core.announcePolite}});Object.defineProperty(exports,"announceProgress",{enumerable:true,get:function(){return core.announceProgress}});Object.defineProperty(exports,"announceStatus",{enumerable:true,get:function(){return core.announceStatus}});Object.defineProperty(exports,"aria",{enumerable:true,get:function(){return core.aria}});Object.defineProperty(exports,"buildAriaProps",{enumerable:true,get:function(){return core.buildAriaProps}});Object.defineProperty(exports,"checks",{enumerable:true,get:function(){return core.checks}});Object.defineProperty(exports,"createComponentWarnings",{enumerable:true,get:function(){return core.createComponentWarnings}});Object.defineProperty(exports,"hasAccessibleName",{enumerable:true,get:function(){return core.hasAccessibleName}});Object.defineProperty(exports,"isAndroid",{enumerable:true,get:function(){return core.isAndroid}});Object.defineProperty(exports,"isBrowser",{enumerable:true,get:function(){return core.isBrowser}});Object.defineProperty(exports,"isIOS",{enumerable:true,get:function(){return core.isIOS}});Object.defineProperty(exports,"isMac",{enumerable:true,get:function(){return core.isMac}});Object.defineProperty(exports,"mergeAriaIds",{enumerable:true,get:function(){return core.mergeAriaIds}});Object.defineProperty(exports,"prefersDarkMode",{enumerable:true,get:function(){return core.prefersDarkMode}});Object.defineProperty(exports,"prefersHighContrast",{enumerable:true,get:function(){return core.prefersHighContrast}});Object.defineProperty(exports,"prefersReducedMotion",{enumerable:true,get:function(){return core.prefersReducedMotion}});Object.defineProperty(exports,"setWarningHandler",{enumerable:true,get:function(){return core.setWarningHandler}});Object.defineProperty(exports,"warn",{enumerable:true,get:function(){return core.warn}});exports.Alert=Eo;exports.Button=Ct;exports.Checkbox=Qt;exports.CheckboxBase=Ae;exports.CheckboxGroup=Fe;exports.CheckboxIndicator=Oe;exports.Input=mo;exports.InputBase=_e;exports.InputError=qe;exports.InputField=We;exports.InputHint=Ue;exports.InputLabel=je;exports.Listbox=so;exports.ListboxBase=Ge;exports.ListboxGroup=Ke;exports.ListboxOption=$e;exports.Radio=Ne;exports.RadioGroup=to;exports.RadioGroupBase=Ve;exports.Select=_t;exports.SelectBase=lt;exports.SelectListbox=ut;exports.SelectOptionItem=we;exports.SelectTrigger=ct;exports.SkipLink=Co;exports.Switch=ht;exports.Textarea=To;exports.TextareaBase=et;exports.TextareaError=Qe;exports.TextareaField=Ze;exports.TextareaHint=Je;exports.TextareaLabel=Xe;exports.VisuallyHidden=Ro;exports.useCheckboxGroupContext=bt;exports.useFocusControl=Bt;exports.useFocusManager=Dt;exports.useFocusNeighbor=$t;exports.useFocusReturn=Kt;exports.useFocusVisible=oe;exports.useFocusWithin=zt;exports.useInputContext=Ce;exports.useListboxContext=ze;exports.useRadioGroupContext=yt;exports.useRovingTabindex=ot;exports.useRovingTabindexMap=Gt;exports.useTextareaContext=Se;
|
package/dist/index.d.cts
CHANGED
|
@@ -1182,4 +1182,103 @@ declare const TextareaCompound: React$1.ForwardRefExoticComponent<TextareaProps
|
|
|
1182
1182
|
Error: React$1.ForwardRefExoticComponent<TextareaErrorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1183
1183
|
};
|
|
1184
1184
|
|
|
1185
|
-
|
|
1185
|
+
/**
|
|
1186
|
+
* Accessible VisuallyHidden component.
|
|
1187
|
+
*
|
|
1188
|
+
* Hides content visually while keeping it accessible to screen readers.
|
|
1189
|
+
*
|
|
1190
|
+
* @example
|
|
1191
|
+
* ```tsx
|
|
1192
|
+
* // Screen-reader-only text
|
|
1193
|
+
* <VisuallyHidden>Loading, please wait</VisuallyHidden>
|
|
1194
|
+
*
|
|
1195
|
+
* // Focusable (becomes visible on focus, e.g. skip links)
|
|
1196
|
+
* <VisuallyHidden focusable>
|
|
1197
|
+
* <a href="#main-content">Skip to main content</a>
|
|
1198
|
+
* </VisuallyHidden>
|
|
1199
|
+
* ```
|
|
1200
|
+
*/
|
|
1201
|
+
|
|
1202
|
+
interface VisuallyHiddenProps extends React__default.HTMLAttributes<HTMLSpanElement> {
|
|
1203
|
+
/** When true, content becomes visible when a child receives focus (useful for skip links) */
|
|
1204
|
+
focusable?: boolean;
|
|
1205
|
+
}
|
|
1206
|
+
declare const VisuallyHidden: React__default.ForwardRefExoticComponent<VisuallyHiddenProps & React__default.RefAttributes<HTMLSpanElement>>;
|
|
1207
|
+
|
|
1208
|
+
/**
|
|
1209
|
+
* Accessible SkipLink component.
|
|
1210
|
+
*
|
|
1211
|
+
* A navigation aid that allows keyboard users to skip repetitive content
|
|
1212
|
+
* (like navigation menus) and jump directly to the main content area.
|
|
1213
|
+
*
|
|
1214
|
+
* Must be rendered as the FIRST focusable element on the page.
|
|
1215
|
+
* Visually hidden until focused, then appears prominently.
|
|
1216
|
+
*
|
|
1217
|
+
* @example
|
|
1218
|
+
* ```tsx
|
|
1219
|
+
* // Place at the very top of your layout
|
|
1220
|
+
* <SkipLink target="#main-content" />
|
|
1221
|
+
*
|
|
1222
|
+
* // Custom label
|
|
1223
|
+
* <SkipLink target="#main-content">Skip navigation</SkipLink>
|
|
1224
|
+
*
|
|
1225
|
+
* // Multiple skip links
|
|
1226
|
+
* <SkipLink target="#main-content">Skip to content</SkipLink>
|
|
1227
|
+
* <SkipLink target="#search">Skip to search</SkipLink>
|
|
1228
|
+
* ```
|
|
1229
|
+
*
|
|
1230
|
+
* Keyboard: Tab to reveal, Enter to activate.
|
|
1231
|
+
*/
|
|
1232
|
+
|
|
1233
|
+
interface SkipLinkProps extends Omit<React__default.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
|
|
1234
|
+
/** CSS selector of the target element to skip to (e.g. "#main-content") */
|
|
1235
|
+
target?: string;
|
|
1236
|
+
/** Remove default styles */
|
|
1237
|
+
unstyled?: boolean;
|
|
1238
|
+
}
|
|
1239
|
+
declare const SkipLink: React__default.ForwardRefExoticComponent<SkipLinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
* Accessible Alert component.
|
|
1243
|
+
*
|
|
1244
|
+
* A static feedback element for communicating important messages.
|
|
1245
|
+
* Uses `role="alert"` for urgent messages (error/warning) and
|
|
1246
|
+
* `role="status"` for informational messages (info/success).
|
|
1247
|
+
*
|
|
1248
|
+
* @example
|
|
1249
|
+
* ```tsx
|
|
1250
|
+
* // Error alert (assertive)
|
|
1251
|
+
* <Alert type="error" title="Payment failed">
|
|
1252
|
+
* Your card was declined. Please try a different payment method.
|
|
1253
|
+
* </Alert>
|
|
1254
|
+
*
|
|
1255
|
+
* // Success alert
|
|
1256
|
+
* <Alert type="success" title="Saved!">
|
|
1257
|
+
* Your changes have been saved successfully.
|
|
1258
|
+
* </Alert>
|
|
1259
|
+
*
|
|
1260
|
+
* // Dismissible alert
|
|
1261
|
+
* <Alert type="info" dismissible onDismiss={() => setVisible(false)}>
|
|
1262
|
+
* This alert can be closed by the user.
|
|
1263
|
+
* </Alert>
|
|
1264
|
+
* ```
|
|
1265
|
+
*
|
|
1266
|
+
* Keyboard: Tab to dismiss button, Enter/Space to dismiss.
|
|
1267
|
+
*/
|
|
1268
|
+
|
|
1269
|
+
type AlertType = 'info' | 'success' | 'warning' | 'error';
|
|
1270
|
+
interface AlertProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
1271
|
+
/** Alert variant */
|
|
1272
|
+
type?: AlertType;
|
|
1273
|
+
/** Optional title displayed prominently */
|
|
1274
|
+
title?: string;
|
|
1275
|
+
/** Whether the alert can be dismissed */
|
|
1276
|
+
dismissible?: boolean;
|
|
1277
|
+
/** Called when the alert is dismissed */
|
|
1278
|
+
onDismiss?: () => void;
|
|
1279
|
+
/** Remove default styles */
|
|
1280
|
+
unstyled?: boolean;
|
|
1281
|
+
}
|
|
1282
|
+
declare const Alert: React__default.ForwardRefExoticComponent<AlertProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
1283
|
+
|
|
1284
|
+
export { Alert, type AlertProps, type AlertType, Button, type ButtonProps, CheckboxCompound as Checkbox, Checkbox as CheckboxBase, CheckboxGroup, type CheckboxGroupContextValue, type CheckboxGroupProps, CheckboxIndicator, type CheckboxIndicatorProps, type CheckboxProps, InputCompound as Input, Input as InputBase, type InputContextValue, InputError, type InputErrorProps, InputField, type InputFieldProps, InputHint, type InputHintProps, InputLabel, type InputLabelProps, type InputProps, ListboxCompound as Listbox, Listbox as ListboxBase, type ListboxContextValue, ListboxGroup, type ListboxGroupProps, ListboxOption, type ListboxOptionProps, type ListboxProps, Radio, RadioGroupCompound as RadioGroup, RadioGroup as RadioGroupBase, type RadioGroupContextValue, type RadioGroupProps, type RadioProps, type RovingTabindexItem, SelectCompound as Select, Select as SelectBase, SelectListbox, type SelectListboxProps, SelectOptionItem, type SelectOptionProps, type SelectOption as SelectOptionType, type SelectProps, SelectTrigger, type SelectTriggerProps, SkipLink, type SkipLinkProps, Switch, type SwitchProps, TextareaCompound as Textarea, Textarea as TextareaBase, type TextareaContextValue, TextareaError, type TextareaErrorProps, TextareaField, type TextareaFieldProps, TextareaHint, type TextareaHintProps, TextareaLabel, type TextareaLabelProps, type TextareaProps, type UseFocusTrapOptions, type UseRovingTabindexOptions, VisuallyHidden, type VisuallyHiddenProps, useAnnounceLoading, useAnnounceOnChange, useAnnouncer, useCheckboxGroupContext, useFocusControl, useFocusManager, useFocusNeighbor, useFocusReturn, useFocusTrap, useFocusTrapControls, useFocusVisible, useFocusWithin, useGridKeyboard, useId, useIdScope, useIds, useInputContext, useKeyPressed, useKeyboard, useListboxContext, useMenuKeyboard, useRadioGroupContext, useRovingTabindex, useRovingTabindexMap, useTabsKeyboard, useTextareaContext, useTypeAhead };
|
package/dist/index.d.ts
CHANGED
|
@@ -1182,4 +1182,103 @@ declare const TextareaCompound: React$1.ForwardRefExoticComponent<TextareaProps
|
|
|
1182
1182
|
Error: React$1.ForwardRefExoticComponent<TextareaErrorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1183
1183
|
};
|
|
1184
1184
|
|
|
1185
|
-
|
|
1185
|
+
/**
|
|
1186
|
+
* Accessible VisuallyHidden component.
|
|
1187
|
+
*
|
|
1188
|
+
* Hides content visually while keeping it accessible to screen readers.
|
|
1189
|
+
*
|
|
1190
|
+
* @example
|
|
1191
|
+
* ```tsx
|
|
1192
|
+
* // Screen-reader-only text
|
|
1193
|
+
* <VisuallyHidden>Loading, please wait</VisuallyHidden>
|
|
1194
|
+
*
|
|
1195
|
+
* // Focusable (becomes visible on focus, e.g. skip links)
|
|
1196
|
+
* <VisuallyHidden focusable>
|
|
1197
|
+
* <a href="#main-content">Skip to main content</a>
|
|
1198
|
+
* </VisuallyHidden>
|
|
1199
|
+
* ```
|
|
1200
|
+
*/
|
|
1201
|
+
|
|
1202
|
+
interface VisuallyHiddenProps extends React__default.HTMLAttributes<HTMLSpanElement> {
|
|
1203
|
+
/** When true, content becomes visible when a child receives focus (useful for skip links) */
|
|
1204
|
+
focusable?: boolean;
|
|
1205
|
+
}
|
|
1206
|
+
declare const VisuallyHidden: React__default.ForwardRefExoticComponent<VisuallyHiddenProps & React__default.RefAttributes<HTMLSpanElement>>;
|
|
1207
|
+
|
|
1208
|
+
/**
|
|
1209
|
+
* Accessible SkipLink component.
|
|
1210
|
+
*
|
|
1211
|
+
* A navigation aid that allows keyboard users to skip repetitive content
|
|
1212
|
+
* (like navigation menus) and jump directly to the main content area.
|
|
1213
|
+
*
|
|
1214
|
+
* Must be rendered as the FIRST focusable element on the page.
|
|
1215
|
+
* Visually hidden until focused, then appears prominently.
|
|
1216
|
+
*
|
|
1217
|
+
* @example
|
|
1218
|
+
* ```tsx
|
|
1219
|
+
* // Place at the very top of your layout
|
|
1220
|
+
* <SkipLink target="#main-content" />
|
|
1221
|
+
*
|
|
1222
|
+
* // Custom label
|
|
1223
|
+
* <SkipLink target="#main-content">Skip navigation</SkipLink>
|
|
1224
|
+
*
|
|
1225
|
+
* // Multiple skip links
|
|
1226
|
+
* <SkipLink target="#main-content">Skip to content</SkipLink>
|
|
1227
|
+
* <SkipLink target="#search">Skip to search</SkipLink>
|
|
1228
|
+
* ```
|
|
1229
|
+
*
|
|
1230
|
+
* Keyboard: Tab to reveal, Enter to activate.
|
|
1231
|
+
*/
|
|
1232
|
+
|
|
1233
|
+
interface SkipLinkProps extends Omit<React__default.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
|
|
1234
|
+
/** CSS selector of the target element to skip to (e.g. "#main-content") */
|
|
1235
|
+
target?: string;
|
|
1236
|
+
/** Remove default styles */
|
|
1237
|
+
unstyled?: boolean;
|
|
1238
|
+
}
|
|
1239
|
+
declare const SkipLink: React__default.ForwardRefExoticComponent<SkipLinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
* Accessible Alert component.
|
|
1243
|
+
*
|
|
1244
|
+
* A static feedback element for communicating important messages.
|
|
1245
|
+
* Uses `role="alert"` for urgent messages (error/warning) and
|
|
1246
|
+
* `role="status"` for informational messages (info/success).
|
|
1247
|
+
*
|
|
1248
|
+
* @example
|
|
1249
|
+
* ```tsx
|
|
1250
|
+
* // Error alert (assertive)
|
|
1251
|
+
* <Alert type="error" title="Payment failed">
|
|
1252
|
+
* Your card was declined. Please try a different payment method.
|
|
1253
|
+
* </Alert>
|
|
1254
|
+
*
|
|
1255
|
+
* // Success alert
|
|
1256
|
+
* <Alert type="success" title="Saved!">
|
|
1257
|
+
* Your changes have been saved successfully.
|
|
1258
|
+
* </Alert>
|
|
1259
|
+
*
|
|
1260
|
+
* // Dismissible alert
|
|
1261
|
+
* <Alert type="info" dismissible onDismiss={() => setVisible(false)}>
|
|
1262
|
+
* This alert can be closed by the user.
|
|
1263
|
+
* </Alert>
|
|
1264
|
+
* ```
|
|
1265
|
+
*
|
|
1266
|
+
* Keyboard: Tab to dismiss button, Enter/Space to dismiss.
|
|
1267
|
+
*/
|
|
1268
|
+
|
|
1269
|
+
type AlertType = 'info' | 'success' | 'warning' | 'error';
|
|
1270
|
+
interface AlertProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
1271
|
+
/** Alert variant */
|
|
1272
|
+
type?: AlertType;
|
|
1273
|
+
/** Optional title displayed prominently */
|
|
1274
|
+
title?: string;
|
|
1275
|
+
/** Whether the alert can be dismissed */
|
|
1276
|
+
dismissible?: boolean;
|
|
1277
|
+
/** Called when the alert is dismissed */
|
|
1278
|
+
onDismiss?: () => void;
|
|
1279
|
+
/** Remove default styles */
|
|
1280
|
+
unstyled?: boolean;
|
|
1281
|
+
}
|
|
1282
|
+
declare const Alert: React__default.ForwardRefExoticComponent<AlertProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
1283
|
+
|
|
1284
|
+
export { Alert, type AlertProps, type AlertType, Button, type ButtonProps, CheckboxCompound as Checkbox, Checkbox as CheckboxBase, CheckboxGroup, type CheckboxGroupContextValue, type CheckboxGroupProps, CheckboxIndicator, type CheckboxIndicatorProps, type CheckboxProps, InputCompound as Input, Input as InputBase, type InputContextValue, InputError, type InputErrorProps, InputField, type InputFieldProps, InputHint, type InputHintProps, InputLabel, type InputLabelProps, type InputProps, ListboxCompound as Listbox, Listbox as ListboxBase, type ListboxContextValue, ListboxGroup, type ListboxGroupProps, ListboxOption, type ListboxOptionProps, type ListboxProps, Radio, RadioGroupCompound as RadioGroup, RadioGroup as RadioGroupBase, type RadioGroupContextValue, type RadioGroupProps, type RadioProps, type RovingTabindexItem, SelectCompound as Select, Select as SelectBase, SelectListbox, type SelectListboxProps, SelectOptionItem, type SelectOptionProps, type SelectOption as SelectOptionType, type SelectProps, SelectTrigger, type SelectTriggerProps, SkipLink, type SkipLinkProps, Switch, type SwitchProps, TextareaCompound as Textarea, Textarea as TextareaBase, type TextareaContextValue, TextareaError, type TextareaErrorProps, TextareaField, type TextareaFieldProps, TextareaHint, type TextareaHintProps, TextareaLabel, type TextareaLabelProps, type TextareaProps, type UseFocusTrapOptions, type UseRovingTabindexOptions, VisuallyHidden, type VisuallyHiddenProps, useAnnounceLoading, useAnnounceOnChange, useAnnouncer, useCheckboxGroupContext, useFocusControl, useFocusManager, useFocusNeighbor, useFocusReturn, useFocusTrap, useFocusTrapControls, useFocusVisible, useFocusWithin, useGridKeyboard, useId, useIdScope, useIds, useInputContext, useKeyPressed, useKeyboard, useListboxContext, useMenuKeyboard, useRadioGroupContext, useRovingTabindex, useRovingTabindexMap, useTabsKeyboard, useTextareaContext, useTypeAhead };
|
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 {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[d,t]=useState(false);useEffect(()=>initFocusVisible(),[]);let l=useCallback(()=>{t(isFocusVisible());},[]),r=useCallback(()=>{t(false);},[]);return {isFocusVisible:d,focusProps:{onFocus:l,onBlur:r}}}function Vt(d={}){let{autoFocus:t=false,restoreFocus:l=false,focusVisible:r=true}=d,e=useCallback(n=>{n&&t&&requestAnimationFrame(()=>{r?focusWithVisibleRing(n):n.focus();});},[t,r]);return useEffect(()=>{if(!l)return;let n=document.activeElement;return ()=>{n&&n.focus&&n.focus();}},[l]),e}function Dt(){let d=useCallback(l=>{},[]),t=useCallback(l=>{let r=d;r.current&&(l?.visible?focusWithVisibleRing(r.current):r.current.focus());},[]);return {ref:d,focus:t}}function Bt(){let[d,t]=useState(false),l=useCallback(n=>{},[]),r=useCallback(()=>{t(true);},[]),e=useCallback(n=>{let i=n.currentTarget,c=n.relatedTarget;(!c||!i.contains(c))&&t(false);},[]);return {ref:l,hasFocus:d,focusWithinProps:{onFocus:r,onBlur:e}}}function tt(d){let{itemCount:t,initialIndex:l=0,wrap:r=true,orientation:e="both",onChange:n}=d,[i,c]=useState(l),o=useRef([]);useEffect(()=>{i>=t&&c(Math.max(0,t-1));},[t,i]);let a=useCallback(f=>{let m=f;m<0?m=r?t-1:0:m>=t&&(m=r?0:t-1),c(m),n?.(m),o.current[m]?.focus();},[t,r,n]),b=useCallback((f,m)=>{let x=false;switch(f.key){case "ArrowRight":(e==="horizontal"||e==="both")&&(a(m+1),x=true);break;case "ArrowLeft":(e==="horizontal"||e==="both")&&(a(m-1),x=true);break;case "ArrowDown":(e==="vertical"||e==="both")&&(a(m+1),x=true);break;case "ArrowUp":(e==="vertical"||e==="both")&&(a(m-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]),s=useCallback(f=>({ref:m=>{o.current[f]=m;},tabIndex:f===i?0:-1,onKeyDown:m=>b(m,f),onFocus:()=>{f!==i&&(c(f),n?.(f));}}),[i,b,n]);return {activeIndex:i,setActiveIndex:a,getItemProps:s,first:()=>a(0),last:()=>a(t-1),next:()=>a(i+1),previous:()=>a(i-1)}}function zt(d,t={}){let l=tt({...t,itemCount:d.length}),r=useCallback(n=>{let i=d.indexOf(n);if(i===-1)throw new Error(`Unknown item ID: ${n}`);return l.getItemProps(i)},[d,l]),e=d[l.activeIndex];return {...l,activeId:e,getItemProps:r,setActiveId:n=>{let i=d.indexOf(n);i!==-1&&l.setActiveIndex(i);}}}function Gt(d){let t=useRef(null),l=useRef(d);l.current=d;let r=useCallback(()=>t.current?findFocusNeighbor(t.current,l.current):null,[]),e=useCallback(()=>{r()?.focus();},[r]);return {ref:t,getNeighbor:r,focusNeighbor:e}}function $t(){let d=useRef(createFocusReturn()),t=useCallback(e=>{d.current.save(e);},[]),l=useCallback(e=>{d.current.return(e);},[]),r=useCallback(()=>{d.current.clear();},[]);return {save:t,returnFocus:l,clear:r}}var fn=createComponentWarnings("Select"),Ut=createContext(null);function it(){let d=useContext(Ut);if(!d)throw new Error("Select compound components must be used within a Select component");return d}function Kt(d,t,l){let r=d.length,e=t+l;e<0&&(e=r-1),e>=r&&(e=0);let n=e;for(;d[e]?.disabled;)if(e+=l,e<0&&(e=r-1),e>=r&&(e=0),e===n)return -1;return e}function jt(d){return d.findIndex(t=>!t.disabled)}function Wt(d){for(let t=d.length-1;t>=0;t--)if(!d[t]?.disabled)return t;return -1}function st({options:d,value:t,defaultValue:l,onValueChange:r,disabled:e=false,placeholder:n="Select an option...","aria-label":i,"aria-labelledby":c,children:o}){let[a,b]=useState(l??null),[s,f]=useState(false),[m,x]=useState(-1),u=useRef(null),T=t!==void 0?t:a,C=a$2("select-trigger"),I=a$2("select-listbox"),E=a$2("select-option"),p=useCallback(P=>{t===void 0&&b(P),r?.(P);},[t,r]),y=useCallback(P=>`${E}-${P}`,[E]),H=useCallback(P=>{p(P.value),f(false),x(-1),u.current?.focus();},[p]);useEffect(()=>{!i&&!c&&fn.warning("Select has no accessible label.","Add aria-label or aria-labelledby prop.");},[i,c]);let R={selectedValue:T,setSelectedValue:p,isOpen:s,setIsOpen:f,highlightedIndex:m,setHighlightedIndex:x,options:d,triggerId:C,listboxId:I,getOptionId:y,onSelect:H,triggerRef:u,placeholder:n,disabled:e};return jsx(Ut.Provider,{value:R,children:jsx("div",{"data-compa11y-select":true,"data-disabled":e||void 0,children:o})})}var lt=forwardRef(function({onKeyDown:t,onClick:l,onBlur:r,...e$1},n){let{selectedValue:i,isOpen:c,setIsOpen:o,highlightedIndex:a$2,setHighlightedIndex:b,options:s,triggerId:f,listboxId:m,getOptionId:x,onSelect:u,triggerRef:T,placeholder:C,disabled:I}=it(),{announce:E}=a(),p=e(s.map(h=>h.label),h=>{let M=s.findIndex(F=>F.label===h&&!F.disabled);M>=0&&(c||o(true),b(M));},{disabled:I}),y=useCallback((h=false)=>{o(true);let M=s.findIndex(F=>F.value===i);M>=0?b(M):b(h?Wt(s):jt(s));},[s,i,o,b]),H=a$1({ArrowDown:()=>{if(!c)y();else {let h=Kt(s,a$2,1);h>=0&&b(h);}},ArrowUp:()=>{if(!c)y(true);else {let h=Kt(s,a$2,-1);h>=0&&b(h);}},Enter:()=>{if(c&&a$2>=0){let h=s[a$2];h&&!h.disabled&&(u(h),E(`${h.label} selected`));}else c||y();},Space:()=>{if(c&&a$2>=0){let h=s[a$2];h&&!h.disabled&&(u(h),E(`${h.label} selected`));}else c||y();},Escape:()=>{c&&(o(false),b(-1));},Home:()=>{c&&b(jt(s));},End:()=>{c&&b(Wt(s));},Tab:()=>(c&&(o(false),b(-1)),false)},{preventDefault:true,stopPropagation:false}),R=h=>{t?.(h),h.defaultPrevented||H.onKeyDown(h),h.defaultPrevented||p.onKeyDown(h);},P=h=>{l?.(h),!h.defaultPrevented&&!I&&(c?(o(false),b(-1)):y());},O=h=>{r?.(h),setTimeout(()=>{o(false),b(-1);},150);},N=c&&a$2>=0?x(a$2):void 0,A=s.find(h=>h.value===i),$=A?.label??C,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":m,"aria-haspopup":"listbox","aria-activedescendant":N,disabled:I,onKeyDown:R,onClick:P,onBlur:O,"data-compa11y-select-trigger":true,"data-placeholder":!A||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"})]})}),ct=forwardRef(function({children:t,style:l,...r},e){let{isOpen:n,options:i,listboxId:c,triggerId:o}=it(),{announce:a$1}=a(),b=useRef(null),[s,f]=useState("bottom");useEffect(()=>{n&&a$1(`${i.length} option${i.length===1?"":"s"} available`);},[n,i.length,a$1]),useLayoutEffect(()=>{if(n&&b.current){let C=b.current.getBoundingClientRect(),E=window.innerHeight-C.top,p=C.top,y=Math.min(C.height,200);E<y+50&&p>E?f("top"):f("bottom");}},[n]);let m=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:{...l,...s==="top"?{bottom:"100%",top:"auto",marginBottom:"4px",marginTop:0}:{}},onMouseDown:m,"data-compa11y-select-listbox":true,"data-position":s,...r,children:t??i.map((T,C)=>jsx(we,{option:T,index:C},T.value))}):null}),we=forwardRef(function({option:t,index:l,onClick:r,onMouseEnter:e,...n},i){let{selectedValue:c,highlightedIndex:o,setHighlightedIndex:a$1,getOptionId:b,onSelect:s}=it(),{announce:f}=a(),m=useRef(null),x=c===t.value,u=o===l,T=b(l);useEffect(()=>{u&&m.current&&m.current.scrollIntoView({block:"nearest",behavior:"smooth"});},[u]);let C=p=>{r?.(p),!p.defaultPrevented&&!t.disabled&&(s(t),f(`${t.label} selected`));},I=p=>{e?.(p),t.disabled||a$1(l);},E=useCallback(p=>{m.current=p,typeof i=="function"?i(p):i&&(i.current=p);},[i]);return jsxs("li",{ref:E,id:T,role:"option","aria-selected":x,"aria-disabled":t.disabled,"data-highlighted":u,"data-selected":x,"data-disabled":t.disabled,onClick:C,onMouseEnter:I,"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"})]})}),qt=Object.assign(st,{Trigger:lt,Listbox:ct,Option:we});var Xt=createComponentWarnings("Checkbox"),hn=()=>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"})}),vn=()=>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"})}),Zt=createContext(null);function pt(){return useContext(Zt)}var Fe=forwardRef(function({value:t,defaultValue:l=[],onValueChange:r,disabled:e=false,legend:n,error:i,orientation:c="vertical",name:o,unstyled:a=false,className:b="",children:s,"aria-label":f,"aria-labelledby":m},x){let u=a$2("checkbox-group"),T=o||u,C=a$2("checkbox-group-error"),[I,E]=useState(l),p=t!==void 0,y=p?t:I;useEffect(()=>{!n&&!f&&!m&&Xt.warning("CheckboxGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[n,f,m]);let H=useCallback((g,h)=>{let M=p?t:I,F=h?[...M,g]:M.filter(K=>K!==g);p||E(F),r?.(F);},[p,t,I,r]),R={name:T,value:y,disabled:e,unstyled:a,onCheckboxChange:H},P=!!i,O={border:"none",margin:0,padding:0,minWidth:0},N=a?{padding:0,marginBottom:"0.5rem"}:{padding:0,marginBottom:"0.5rem",fontWeight:600},A={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(Zt.Provider,{value:R,children:jsxs("fieldset",{ref:x,className:b,"aria-label":f,"aria-labelledby":m,"aria-describedby":P?C:void 0,disabled:e,"data-compa11y-checkbox-group":"","data-orientation":c,"data-disabled":e?"true":void 0,style:O,children:[n&&jsx("legend",{"data-compa11y-checkbox-group-legend":"",style:N,children:n}),jsx("div",{style:A,children:s}),P&&jsx("div",{id:C,role:"alert","data-compa11y-checkbox-group-error":"",style:$,children:i})]})})});Fe.displayName="CheckboxGroup";var Oe=forwardRef(function({checked:t,defaultChecked:l=false,onCheckedChange:r,indeterminate:e=false,label:n,hint:i,error:c,disabled:o=false,value:a$1,required:b=false,unstyled:s,className:f="",size:m="md",name:x,"aria-label":u,"aria-labelledby":T,"aria-describedby":C,onClick:I,onFocus:E,onBlur:p,...y},H){let R=pt(),P=a$2("checkbox"),O=`${P}-input`,N=`${P}-label`,A=`${P}-hint`,$=`${P}-error`,{announce:g}=a(),{isFocusVisible:h,focusProps:M}=oe(),F=R!==null,K=F&&R.disabled||o,D=s??(F?R.unstyled:false),B=F?R.name:x,[q,w]=useState(l),U=F?R.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&&!u&&!T&&Xt.warning("Checkbox has no accessible label. Screen readers need this to identify the checkbox.",'Add label="...", aria-label="...", or aria-labelledby="..."');},[n,u,T]);let z=useCallback(ue=>{let Me=ue.target.checked;F?R.onCheckboxChange(a$1||"",Me):(t===void 0&&w(Me),r?.(Me)),g(`${typeof n=="string"?n:u||"Checkbox"} ${Me?"checked":"unchecked"}`);},[F,R,a$1,t,r,n,u,g]),Z=useCallback(ue=>{M.onFocus(),E?.(ue);},[M,E]),ne=useCallback(ue=>{M.onBlur(),p?.(ue);},[M,p]),J=!!n,Q=!!i,re=!!c,Y=[];C&&Y.push(C),Q&&Y.push(A),re&&Y.push($);let be=Y.length?Y.join(" "):void 0,S={sm:{box:16},md:{box:20},lg:{box:24}}[m],L={display:"inline-flex",alignItems:"flex-start",gap:"0.5rem",cursor:K?"not-allowed":"pointer",userSelect:"none",...K&&!D?{opacity:.5}:{}},k={position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},V={position:"absolute",opacity:0,width:"100%",height:"100%",margin:0,cursor:"inherit",zIndex:1},_=D?{}:{width:S.box,height:S.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"},To=D?{cursor:"inherit"}:{cursor:"inherit",color:"var(--compa11y-checkbox-label-color, inherit)"},Co=D?{}:{color:"var(--compa11y-checkbox-hint-color, #666)",fontSize:"0.8125rem"},Ro=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":m,style:L,children:[jsxs("div",{style:k,children:[jsx("input",{ref:W,type:"checkbox",id:O,name:B,value:a$1,checked:U,onChange:z,onClick:I,onFocus:Z,onBlur:ne,disabled:K,required:b,"aria-required":b||void 0,"aria-invalid":re||void 0,"aria-label":!J&&!T?u:void 0,"aria-labelledby":T||(J?N:void 0),"aria-describedby":be,"aria-checked":e?"mixed":U,tabIndex:K?-1:0,style:V,...y}),!D&&jsxs("div",{"data-compa11y-checkbox-indicator":"","aria-hidden":"true",style:_,children:[U&&!e&&jsx(hn,{}),e&&jsx(vn,{})]})]}),(J||Q||re)&&jsxs("div",{style:ge,children:[J&&jsxs("label",{htmlFor:O,id:N,"data-compa11y-checkbox-label":"",style:To,children:[n,b&&jsx("span",{"aria-hidden":"true",style:{color:"var(--compa11y-checkbox-required-color, #ef4444)",marginLeft:"0.125rem"},children:"*"})]}),Q&&jsx("div",{id:A,"data-compa11y-checkbox-hint":"",style:Co,children:i}),re&&jsx("div",{id:$,role:"alert","data-compa11y-checkbox-error":"",style:Ro,children:c})]})]})});Oe.displayName="Checkbox";var Ae=forwardRef(function({children:t,className:l},r){return jsx("div",{ref:r,className:l,"data-compa11y-checkbox-indicator":"","aria-hidden":"true",children:t})});Ae.displayName="CheckboxIndicator";var Jt=Object.assign(Oe,{Group:Fe,Indicator:Ae});var En=createComponentWarnings("RadioGroup"),mt=createContext(null);function xt(){let d=useContext(mt);if(!d)throw new Error("[Compa11y RadioGroup]: Radio must be used within a RadioGroup.");return d}var Ne=forwardRef(function({value:t,defaultValue:l,onValueChange:r,disabled:e=false,discoverable:n=true,required:i=false,orientation:c="vertical",name:o,legend:a,hint:b,error:s,unstyled:f=false,className:m="",children:x,"aria-label":u,"aria-labelledby":T},C){let I=a$2("radiogroup"),E=o||I,p=a$2("radiogroup-hint"),y=a$2("radiogroup-error"),[H,R]=useState(l??null),P=t!==void 0,O=P?t:H,N=useRef(new Map);useEffect(()=>{!a&&!u&&!T&&En.warning("RadioGroup has no accessible label. Screen readers need this to identify the group.",'Add legend="...", aria-label="...", or aria-labelledby="..."');},[a,u,T]);let A=useCallback(W=>{e||(P||R(W),r?.(W));},[e,P,r]),$=useCallback((W,z)=>{N.current.set(W,z);},[]),g=useCallback(W=>{N.current.delete(W);},[]),h=useCallback((W,z)=>{N.current.set(W,z);},[]),M=useCallback(()=>{let W=[];return N.current.forEach((z,Z)=>{!z&&!e&&W.push(Z);}),W},[e]),F=useRef(null),K=C||F,D=useCallback(W=>{let z=M();if(z.length===0)return;let Z=O?z.indexOf(O):-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){A(J);let Q=typeof K=="object"&&K?K.current:null;Q&&Q.querySelector(`input[type="radio"][value="${CSS.escape(J)}"]`)?.focus();}},[M,O,A,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:E,value:O??null,disabled:e,discoverable:n,required:i,unstyled:f,orientation:c,onValueChange:A,registerRadio:$,unregisterRadio:g,updateRadioDisabled:h},w=[];b&&w.push(p),s&&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:p,style:f?{}:{color:"var(--compa11y-radio-group-hint-color, #666)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:b}),s&&jsx("div",{id:y,role:"alert",style:f?{}:{color:"var(--compa11y-radio-group-error-color, #ef4444)",fontSize:"0.8125rem",marginTop:"0.25rem"},children:s})]});return a?jsx(mt.Provider,{value:q,children:jsxs("fieldset",{ref:K,role:"radiogroup","aria-label":u,"aria-labelledby":T,"aria-orientation":c,"aria-required":i||void 0,"aria-disabled":e||void 0,"aria-invalid":s?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${m}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":s?"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,i&&!f&&jsxs("span",{"aria-hidden":"true",style:{color:"var(--compa11y-radio-group-required-color, #ef4444)",marginLeft:"0.125rem"},children:[" ","*"]})]}),j]})}):jsx(mt.Provider,{value:q,children:jsx("div",{ref:K,role:"radiogroup","aria-label":u,"aria-labelledby":T,"aria-orientation":c,"aria-required":i||void 0,"aria-disabled":e||void 0,"aria-invalid":s?true:void 0,"aria-describedby":U,className:`compa11y-radiogroup ${m}`.trim(),"data-compa11y-radiogroup":"","data-orientation":c,"data-disabled":e?"true":void 0,"data-error":s?"true":void 0,onKeyDown:B.onKeyDown,children:j})})});Ne.displayName="RadioGroup";var Ve=forwardRef(function({value:t,disabled:l=false,discoverable:r,label:e,hint:n,unstyled:i,className:c="",children:o,"aria-label":a$1},b){let s=xt(),f=a$2("radio"),m=a$2("radio-hint"),x=s.disabled||l,u=r??s.discoverable,T=i??s.unstyled,C=s.value===t,{announce:I}=a(),{isFocusVisible:E,focusProps:p}=oe(),y=useRef(null),H=useCallback(B=>{y.current=B,typeof b=="function"?b(B):b&&(b.current=B);},[b]);useEffect(()=>(s.registerRadio(t,x),()=>s.unregisterRadio(t)),[t]),useEffect(()=>{s.updateRadioDisabled(t,x);},[x,t]);let R=useCallback(B=>{if(x){B.preventDefault();return}s.onValueChange(t),I(`${e||(typeof o=="string"?o:null)||t} selected`,{politeness:"polite"});},[x,s,t,e,o,I]),P=useCallback(B=>{x&&B.preventDefault();},[x]),O=useCallback(B=>{p.onFocus(),!C&&!x&&s.onValueChange(t);},[p,C,x,s,t]),N=useCallback(()=>{p.onBlur();},[p]),A=!!(o||e),$=o||e,g=`${f}-label`,h=!!n,M=(()=>{if(s.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&&!u?-1:C||s.value===null&&M?0:-1,K=x&&!u,D=h?m:void 0;return jsxs("label",{htmlFor:f,className:`compa11y-radio-wrapper ${c}`.trim(),"data-compa11y-radio":"","data-value":t,"data-checked":C?"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:s.name,value:t,checked:C,onChange:R,onClick:P,onFocus:O,onBlur:N,disabled:K,tabIndex:F,"aria-disabled":x?"true":void 0,"aria-label":A?void 0:a$1,"aria-labelledby":A?g:void 0,"aria-describedby":D,required:s.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:C?"var(--compa11y-radio-checked-border, 2px solid #0066cc)":"var(--compa11y-radio-border, 2px solid #666)",borderRadius:"50%",background:C?"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",...E?{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:C?1:0,transform:C?"scale(1)":"scale(0)",transition:"all 0.15s ease"}})})]}),(A||h)&&jsxs("div",{style:T?{}:{display:"flex",flexDirection:"column",gap:"0.125rem",paddingTop:"0.125rem"},children:[A&&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:m,className:"compa11y-radio-hint",style:T?{}:{color:"var(--compa11y-radio-hint-color, #666)",fontSize:"var(--compa11y-radio-hint-size, 0.8125rem)"},children:n})]})]})});Ve.displayName="Radio";var eo=Object.assign(Ne,{Radio:Ve});var kn=createComponentWarnings("Switch"),gt=forwardRef(function({checked:t,defaultChecked:l=false,onCheckedChange:r,label:e,disabled:n=false,unstyled:i=false,className:c,size:o="md","aria-label":a$3,"aria-labelledby":b,onClick:s,...f},m){let u=`${a$2("switch")}-label`,{announce:T}=a(),{isFocusVisible:C,focusProps:I}=oe(),[E,p]=useState(l),y=t!==void 0,H=y?t:E;useEffect(()=>{!e&&!a$3&&!b&&kn.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 R=useCallback(()=>{if(n)return;let w=!H;y||p(w),r?.(w),T(`${e||a$3||"Switch"} ${w?"on":"off"}`);},[H,n,y,r,e,a$3,T]),P=useCallback(w=>{s?.(w),w.defaultPrevented||R();},[s,R]),O=a$1({Space:()=>{R();},Enter:()=>{R();}},{preventDefault:true}),N=w=>{f.onKeyDown?.(w),w.defaultPrevented||O.onKeyDown(w);},A=a$3,$=b||(e?u:void 0),g={display:"inline-flex",alignItems:"center"},M={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:M.width,height:M.height,border:"none",padding:2,cursor:n?"not-allowed":"pointer"},K=i?{}:{backgroundColor:H?"#0066cc":"#d1d5db",borderRadius:M.height/2,transition:"background-color 0.2s ease",opacity:n?.5:1},D={position:"absolute",left:2,width:M.thumb,height:M.thumb,pointerEvents:"none",transform:H?`translateX(${M.translate}px)`:"translateX(0)"},B=i?{}:{backgroundColor:"white",borderRadius:"50%",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.2)",transition:"transform 0.2s ease"},q=i?{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:m,type:"button",role:"switch","aria-checked":H,"aria-label":A,"aria-labelledby":$,disabled:n,onClick:P,onKeyDown:N,className:c,style:{...F,...K,...!i&&C&&!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=>{I.onFocus(),f.onFocus?.(w);},onBlur:w=>{I.onBlur(),f.onBlur?.(w);},children:jsx("span",{style:{...D,...B},"data-compa11y-switch-thumb":true,"aria-hidden":"true"})}),e&&jsx("label",{id:u,onClick:n?void 0:()=>R(),style:q,"data-compa11y-switch-label":true,children:e})]})});gt.displayName="Switch";var On=createComponentWarnings("Listbox"),ro=createContext(null);function ze(){let d=useContext(ro);if(!d)throw new Error("[Compa11y Listbox]: Option/Group must be used within a Listbox.");return d}var ao=createContext({groupDisabled:false}),Ge=forwardRef(function({value:t,defaultValue:l,onValueChange:r,multiple:e$1=false,disabled:n=false,discoverable:i=true,orientation:c="vertical",unstyled:o=false,className:a$3="",children:b,"aria-label":s,"aria-labelledby":f},m){let x=a$2("listbox"),{announce:u}=a(),[T,C]=useState(()=>l??(e$1?[]:"")),I=t!==void 0,E=I?t:T,p=useMemo(()=>e$1?new Set(Array.isArray(E)?E:[]):new Set(E?[String(E)]:[]),[E,e$1]),[y,H]=useState(null),R=useRef(new Map),[P,O]=useState(0),N=useCallback((v,S,L)=>{R.current.set(v,{disabled:S,label:L}),O(k=>k+1);},[]),A=useCallback(v=>{R.current.delete(v),O(S=>S+1);},[]),$=useCallback((v,S)=>{let L=R.current.get(v);L&&R.current.set(v,{...L,disabled:S});},[]),g=useMemo(()=>{let v=[];return R.current.forEach((S,L)=>{!S.disabled&&!n&&v.push(L);}),v},[P,n]);useEffect(()=>{!s&&!f&&On.warning("Listbox has no accessible label. Screen readers need this.",'Add aria-label="..." or aria-labelledby="..."');},[s,f]);let h=useCallback(v=>p.has(v),[p]),M=useCallback(v=>{if(n)return;let S=R.current.get(v);if(S?.disabled)return;let L,k=S?.label||v;if(e$1){let V=new Set(p);V.has(v)?(V.delete(v),u(`${k} deselected`,{politeness:"polite"})):(V.add(v),u(`${k} selected`,{politeness:"polite"})),L=Array.from(V);}else L=v,u(`${k} selected`,{politeness:"polite"});I||C(L),r?.(L);},[n,e$1,p,I,r,u]),F=useCallback(v=>{if(g.length===0)return;let S=y?g.indexOf(y):-1,L;switch(v){case "next":L=S<0?0:Math.min(S+1,g.length-1);break;case "prev":L=S<0?g.length-1:Math.max(S-1,0);break;case "first":L=0;break;case "last":L=g.length-1;break}let k=g[L];if(k!==void 0)if(H(k),e$1){let _=R.current.get(k)?.label||k,ge=p.has(k);u(`${_}${ge?", selected":""}`,{politeness:"polite"});}else {let _=R.current.get(k)?.label||k,ge=k;I||C(ge),r?.(ge),u(`${_} selected`,{politeness:"polite"});}},[g,y,e$1,I,r,u,p]),K=useCallback(()=>{y&&e$1&&M(y);},[y,e$1,M]),D=useCallback(v=>{if(g.length===0)return;let S=y?g.indexOf(y):-1,L;v==="next"?L=S<0?0:Math.min(S+1,g.length-1):L=S<0?g.length-1:Math.max(S-1,0);let k=g[L];k!==void 0&&(H(k),M(k));},[g,y,M]),B=useCallback(()=>{if(!e$1||!y)return;let v=g.indexOf(y);if(v<0)return;let S=g.slice(0,v+1),L=new Set(p);S.forEach(V=>L.add(V));let k=Array.from(L);I||C(k),r?.(k),H(g[0]??null),u(`${S.length} items selected`,{politeness:"polite"});},[e$1,y,g,p,I,r,u]),q=useCallback(()=>{if(!e$1||!y)return;let v=g.indexOf(y);if(v<0)return;let S=g.slice(v),L=new Set(p);S.forEach(V=>L.add(V));let k=Array.from(L);I||C(k),r?.(k),H(g[g.length-1]??null),u(`${S.length} items selected`,{politeness:"polite"});},[e$1,y,g,p,I,r,u]),w=useCallback(()=>{if(!e$1)return;let v=g.every(L=>p.has(L)),S;v?(S=[],u("All deselected",{politeness:"polite"})):(S=[...g],u("All selected",{politeness:"polite"})),I||C(S),r?.(S);},[e$1,g,p,I,r,u]),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(R.current.values()).map(v=>v.label),[P]),z=e(W,v=>{for(let[S,L]of R.current.entries())if(L.label===v&&!L.disabled){if(H(S),!e$1){let k=S;I||C(k),r?.(k),u(`${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&&E&&typeof E=="string"){H(E);return}if(e$1&&Array.isArray(E)&&E.length>0){H(E[0]??null);return}g.length>0&&H(g[0]??null);}},[y,e$1,E,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:i,unstyled:o,orientation:c,selectedValues:p,focusedValue:y,onSelect:M,onFocusOption:H,registerOption:N,unregisterOption:A,updateOptionDisabled:$,isSelected:h,listboxId:x}),[e$1,n,i,o,c,p,y,M,N,A,$,h,x]),Y=useCallback(v=>{Q.current=v,typeof m=="function"?m(v):m&&(m.current=v);},[m]),be=y?`${x}-option-${y}`:void 0;return jsx(ro.Provider,{value:re,children:jsx("div",{ref:Y,role:"listbox","aria-label":s,"aria-labelledby":f,"aria-orientation":c,"aria-multiselectable":e$1||void 0,"aria-disabled":n||void 0,"aria-activedescendant":be,tabIndex:n&&!i?-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:l=false,discoverable:r,unstyled:e,className:n="",children:i,"aria-label":c},o){let a=ze(),{groupDisabled:b}=useContext(ao),s=a.disabled||b||l,f=e??a.unstyled,m=a.isSelected(t),x=a.focusedValue===t,u=`${a.listboxId}-option-${t}`,T=useRef(""),C=useRef(null),I=useCallback(p=>{C.current=p,typeof o=="function"?o(p):o&&(o.current=p);},[o]);useEffect(()=>{let p=typeof i=="string"?i:C.current?.textContent?.trim()||t;return T.current=p,a.registerOption(t,s,p),()=>a.unregisterOption(t)},[t]),useEffect(()=>{a.updateOptionDisabled(t,s);},[s,t]);let E=useCallback(p=>{if(s){p.preventDefault();return}a.onFocusOption(t),a.onSelect(t);},[s,a,t]);return jsxs("div",{ref:I,id:u,role:"option","aria-selected":m,"aria-disabled":s||void 0,"aria-label":c,className:`compa11y-listbox-option ${n}`.trim(),"data-compa11y-listbox-option":"","data-value":t,"data-selected":m?"true":"false","data-focused":x?"true":"false","data-disabled":s?"true":void 0,onClick:E,style:f?{cursor:s?"not-allowed":"pointer"}:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"var(--compa11y-listbox-option-padding, 0.5rem 0.75rem)",cursor:s?"not-allowed":"pointer",userSelect:"none",transition:"background 0.1s ease",background:x?m?"var(--compa11y-listbox-option-selected-hover-bg, #cce0ff)":"var(--compa11y-listbox-option-hover-bg, #f5f5f5)":m?"var(--compa11y-listbox-option-selected-bg, #e6f0ff)":"transparent",fontWeight:m?500:"normal",opacity:s?.5:1},children:[jsx("span",{style:{flex:1},children:i}),m&&!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:l=false,unstyled:r,className:e="",children:n},i){let c=ze(),o=r??c.unstyled,a=a$2("listbox-group"),b=useMemo(()=>({groupDisabled:c.disabled||l}),[c.disabled,l]);return jsx(ao.Provider,{value:b,children:jsxs("div",{ref:i,role:"group","aria-labelledby":a,"aria-disabled":l||void 0,className:`compa11y-listbox-group ${e}`.trim(),"data-compa11y-listbox-group":"","data-disabled":l?"true":void 0,style:o?{}:{opacity:l?.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 io=Object.assign(Ge,{Option:$e,Group:Ke});var bo=createContext(null);function Re(){let d=useContext(bo);if(!d)throw new Error("[Compa11y Input]: Input sub-components (Input.Label, Input.Field, etc.) must be used within <Input>.");return d}var je=forwardRef(function({children:t,className:l},r){let e=Re();return jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-input-label":"",className:l,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:l,onBlur:r,className:e,style:n,...i},c){let o=Re(),a=useRef(null),b=useCallback(u=>{a.current=u,typeof c=="function"?c(u):c&&(c.current=u);},[c]),s=useCallback(u=>{o.setValue(u.target.value);},[o.setValue]),f=useCallback(u=>{o.focusProps.onFocus(),l?.(u);},[o.focusProps,l]),m=useCallback(u=>{o.focusProps.onBlur(),r?.(u);},[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:s,onFocus:f,onBlur:m,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},...i})});We.displayName="InputField";var Ue=forwardRef(function({children:t,className:l},r){let e=Re();return useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsx("div",{ref:r,id:e.hintId,"data-compa11y-input-hint":"",className:l,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:l},r){let e=Re();return t?jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-input-error":"",className:l,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:l="",onValueChange:r,type:e="text",label:n,hint:i,error:c,required:o=false,disabled:a=false,readOnly:b=false,"aria-label":s,"aria-labelledby":f,placeholder:m,name:x,autoComplete:u,maxLength:T,minLength:C,pattern:I,inputMode:E,id:p,unstyled:y=false,className:H,onFocus:R,onBlur:P,children:O},N){let A=a$2("input"),$=p||A,g=`${$}-field`,h=`${$}-label`,M=`${$}-hint`,F=`${$}-error`,[K,D]=useState(l),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 N=="function"?N(_):N&&(N.current=_);},[N]),J=useCallback(_=>{j(_.target.value);},[j]),Q=useCallback(_=>{z.onFocus(),R?.(_);},[z,R]),re=useCallback(_=>{z.onBlur(),P?.(_);},[z,P]);useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(O)>0)&&!n&&!s&&!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.");},[O,n,s,f]);let Y=!!c,be=Children.count(O)>0,v={fieldId:g,labelId:h,hintId:M,errorId:F,value:q,setValue:j,hasError:Y,hasHint:be?w:!!i,setHasHint:U,disabled:a,readOnly:b,required:o,isFocusVisible:W,focusProps:z,unstyled:y},S={"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(bo.Provider,{value:v,children:jsx("div",{...S,className:H,style:L,children:O})});let k=[];i&&k.push(M),Y&&k.push(F);let V=k.length>0?k.join(" "):void 0;return jsxs("div",{...S,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:m,name:x,autoComplete:u,maxLength:T,minLength:C,pattern:I,inputMode:E,"aria-label":n?void 0:s,"aria-labelledby":!n&&f?f:n?h:void 0,"aria-describedby":V,"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)"}:{}}}),i&&jsx("div",{id:M,"data-compa11y-input-hint":"",style:y?{}:{color:"var(--compa11y-input-hint-color, #666)",fontSize:"var(--compa11y-input-hint-size, 0.8125rem)"},children:i}),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 fo=Object.assign(_e,{Label:je,Field:We,Hint:Ue,Error:qe});var zn={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)"}},Gn={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:l="md",type:r="button",disabled:e=false,discoverable:n=false,loading:i=false,unstyled:c=false,"aria-label":o,className:a,style:b,onClick:s,onFocus:f,onBlur:m,children:x,...u},T){let C=a$2("button"),I=useRef(null),E=useCallback(g=>{I.current=g,typeof T=="function"?T(g):T&&(T.current=g);},[T]),{isFocusVisible:p,focusProps:y}=oe();useEffect(()=>{process.env.NODE_ENV!=="production"&&!x&&!o&&!u["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,u["aria-labelledby"]]);let H=e&&!n,R=e||i,P=useCallback(g=>{if(R){g.preventDefault();return}s?.(g);},[R,s]),O=useCallback(g=>{y.onFocus(),f?.(g);},[y,f]),N=useCallback(g=>{y.onBlur(),m?.(g);},[y,m]),A={"data-compa11y-button":"","data-variant":t,"data-size":l,"data-disabled":e?"true":"false","data-loading":i?"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:R?"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",...zn[t],...Gn[l],...p&&!H?{outline:"2px solid var(--compa11y-focus-color, #0066cc)",outlineOffset:"2px"}:{}};return jsxs("button",{ref:E,id:C,type:r,disabled:H,tabIndex:e&&!n?void 0:0,"aria-disabled":R?"true":void 0,"aria-busy":i?"true":void 0,"aria-label":o,onClick:P,onFocus:O,onBlur:N,className:a,style:{...$,...b},...A,...u,children:[i&&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 ho=createContext(null);function Ie(){let d=useContext(ho);if(!d)throw new Error("[Compa11y Textarea]: Textarea sub-components (Textarea.Label, Textarea.Field, etc.) must be used within <Textarea>.");return d}var Xe=forwardRef(function({children:t,className:l},r){let e=Ie();return jsxs("label",{ref:r,id:e.labelId,htmlFor:e.fieldId,"data-compa11y-textarea-label":"",className:l,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:l,className:r,style:e,rows:n,...i},c){let o=Ie(),a=useRef(null),b=useCallback(u=>{a.current=u,typeof c=="function"?c(u):c&&(c.current=u);},[c]),s=useCallback(u=>{o.setValue(u.target.value);},[o.setValue]),f=useCallback(u=>{o.focusProps.onFocus(),t?.(u);},[o.focusProps,t]),m=useCallback(u=>{o.focusProps.onBlur(),l?.(u);},[o.focusProps,l]),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:s,onFocus:f,onBlur:m,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},...i})});Ze.displayName="TextareaField";var Je=forwardRef(function({children:t,className:l},r){let e=Ie();return useEffect(()=>(e.setHasHint(true),()=>e.setHasHint(false)),[]),jsx("div",{ref:r,id:e.hintId,"data-compa11y-textarea-hint":"",className:l,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:l},r){let e=Ie();return t?jsx("div",{ref:r,id:e.errorId,role:"alert","data-compa11y-textarea-error":"",className:l,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:l="",onValueChange:r,rows:e=3,resize:n="vertical",label:i,hint:c,error:o,required:a=false,disabled:b=false,readOnly:s=false,"aria-label":f,"aria-labelledby":m,placeholder:x,name:u,autoComplete:T,maxLength:C,minLength:I,id:E,unstyled:p=false,className:y,onFocus:H,onBlur:R,children:P},O){let N=a$2("textarea"),A=E||N,$=`${A}-field`,g=`${A}-label`,h=`${A}-hint`,M=`${A}-error`,[F,K]=useState(l),D=t!==void 0,B=D?t:F,q=useCallback(V=>{D||K(V),r?.(V);},[D,r]),{isFocusVisible:w,focusProps:U}=oe();useEffect(()=>{process.env.NODE_ENV!=="production"&&!(Children.count(P)>0)&&!i&&!f&&!m&&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,i,f,m]);let j=!!o,[W,z]=useState(false),Z=Children.count(P)>0,ne={fieldId:$,labelId:g,hintId:h,errorId:M,value:B,setValue:q,hasError:j,hasHint:Z?W:!!c,setHasHint:z,disabled:b,readOnly:s,required:a,rows:e,resize:n,isFocusVisible:w,focusProps:U,unstyled:p},J={"data-compa11y-textarea":"","data-error":j?"true":"false","data-disabled":b?"true":"false","data-required":a?"true":"false","data-readonly":s?"true":"false"},Q=p?{}:{display:"flex",flexDirection:"column",gap:"0.25rem"},re=useRef(null),Y=useCallback(V=>{re.current=V,typeof O=="function"?O(V):O&&(O.current=V);},[O]),be=useCallback(V=>{q(V.target.value);},[q]),v=useCallback(V=>{U.onFocus(),H?.(V);},[U,H]),S=useCallback(V=>{U.onBlur(),R?.(V);},[U,R]);if(Z)return jsx(ho.Provider,{value:ne,children:jsx("div",{...J,className:y,style:Q,children:P})});let L=[];c&&L.push(h),j&&L.push(M);let k=L.length>0?L.join(" "):void 0;return jsxs("div",{...J,className:y,style:Q,children:[i&&jsxs("label",{id:g,htmlFor:$,"data-compa11y-textarea-label":"",style:p?{}:{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,a&&jsx("span",{"data-compa11y-textarea-required":"","aria-hidden":"true",style:p?{}:{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:S,disabled:b,readOnly:s,required:a,placeholder:x,name:u,autoComplete:T,maxLength:C,minLength:I,"aria-label":i?void 0:f,"aria-labelledby":!i&&m?m:i?g:void 0,"aria-describedby":k,"aria-invalid":j?"true":void 0,"aria-required":a?"true":void 0,"data-compa11y-textarea-field":"",style:p?{}:{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)":s?"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:p?{}:{color:"var(--compa11y-textarea-hint-color, #666)",fontSize:"var(--compa11y-textarea-hint-size, 0.8125rem)"},children:c}),j&&jsx("div",{id:M,role:"alert","data-compa11y-textarea-error":"",style:p?{}:{color:"var(--compa11y-textarea-error-color, #ef4444)",fontSize:"var(--compa11y-textarea-error-size, 0.8125rem)"},children:o})]})});et.displayName="Textarea";var vo=Object.assign(et,{Label:Xe,Field:Ze,Hint:Je,Error:Qe});export{Ct as Button,Jt as Checkbox,Oe as CheckboxBase,Fe as CheckboxGroup,Ae as CheckboxIndicator,fo as Input,_e as InputBase,qe as InputError,We as InputField,Ue as InputHint,je as InputLabel,io as Listbox,Ge as ListboxBase,Ke as ListboxGroup,$e as ListboxOption,Ve as Radio,eo as RadioGroup,Ne as RadioGroupBase,qt as Select,st as SelectBase,ct as SelectListbox,we as SelectOptionItem,lt as SelectTrigger,gt as Switch,vo as Textarea,et as TextareaBase,Qe as TextareaError,Ze as TextareaField,Je as TextareaHint,Xe as TextareaLabel,pt as useCheckboxGroupContext,Dt as useFocusControl,Vt as useFocusManager,Gt as useFocusNeighbor,$t as useFocusReturn,oe as useFocusVisible,Bt as useFocusWithin,Re as useInputContext,ze as useListboxContext,xt as useRadioGroupContext,tt as useRovingTabindex,zt as useRovingTabindexMap,Ie 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 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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compa11y/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
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.8"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
99
|
"react": ">=18.0.0",
|