tekivex-ui 2.5.7 → 2.5.9

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.
Files changed (41) hide show
  1. package/README.md +15 -1
  2. package/dist/TkxForm-2tGLCPH6.js +326 -0
  3. package/dist/TkxForm-C2VqR2wC.cjs +12 -0
  4. package/dist/charts.cjs +1 -1
  5. package/dist/charts.js +264 -251
  6. package/dist/headless.cjs +1 -1
  7. package/dist/headless.js +21 -20
  8. package/dist/index-BgHMZe4Z.js +66 -0
  9. package/dist/index-Bt5y50Qa.cjs +1 -0
  10. package/dist/index-DnqXtpwV.cjs +2 -0
  11. package/dist/{index-CAXjeKoK.js → index-iUUHRxqJ.js} +77 -75
  12. package/dist/index.cjs +21 -21
  13. package/dist/index.js +24 -25
  14. package/dist/quantum.cjs +2 -2
  15. package/dist/quantum.js +4 -4
  16. package/dist/realtime.cjs +8 -4
  17. package/dist/realtime.js +391 -377
  18. package/dist/{security-loRa1HyV.js → security-C-ZPGoyG.js} +1 -1
  19. package/dist/{security-DMqZVW5d.cjs → security-Uf0mjv8o.cjs} +1 -1
  20. package/dist/src/charts/TkxDonutChart.d.ts.map +1 -1
  21. package/dist/src/charts/TkxPieChart.d.ts.map +1 -1
  22. package/dist/src/components/TkxForm.d.ts +17 -16
  23. package/dist/src/components/TkxForm.d.ts.map +1 -1
  24. package/dist/src/components/TkxLiveMetrics.d.ts.map +1 -1
  25. package/dist/src/components/TkxPlayground.d.ts.map +1 -1
  26. package/dist/src/components/TkxProgress.d.ts.map +1 -1
  27. package/dist/src/themes/index.d.ts.map +1 -1
  28. package/dist/{tkx-C_AlpMt4.js → tkx-BtHzWKTl.js} +1 -1
  29. package/dist/{tkx-69KQ0myA.cjs → tkx-C7GvVUE9.cjs} +1 -1
  30. package/package.json +5 -5
  31. package/src/charts/TkxDonutChart.tsx +6 -2
  32. package/src/charts/TkxPieChart.tsx +7 -3
  33. package/src/charts/shared.ts +4 -4
  34. package/src/components/TkxForm.tsx +35 -32
  35. package/src/components/TkxLiveMetrics.tsx +24 -2
  36. package/src/components/TkxPlayground.tsx +40 -5
  37. package/src/components/TkxProgress.tsx +0 -2
  38. package/src/themes/index.ts +8 -1
  39. package/dist/TkxForm-BK5Sq7oj.cjs +0 -12
  40. package/dist/TkxForm-br3i_vo8.js +0 -388
  41. package/dist/index-DB_m7X7e.cjs +0 -2
package/dist/headless.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("./TkxForm-BK5Sq7oj.cjs"),J=require("./tkx-69KQ0myA.cjs"),q=require("./index-DB_m7X7e.cjs"),B=require("./security-DMqZVW5d.cjs"),e=require("react");function Y(t=!1){const[c,n]=e.useState(t),s=e.useCallback(()=>n(!0),[]),r=e.useCallback(()=>n(!1),[]),o=e.useCallback(()=>n(u=>!u),[]);return{isOpen:c,open:s,close:r,toggle:o}}function Z({count:t,initialIndex:c=0,orientation:n="horizontal",loop:s=!0}){const[r,o]=e.useState(c),u=e.useRef([]),l=e.useCallback(i=>{o(d=>{let y=d+i;return s?y=(y%t+t)%t:y=Math.max(0,Math.min(t-1,y)),requestAnimationFrame(()=>{var w;(w=u.current[y])==null||w.focus()}),y})},[t,s]),S=e.useCallback(i=>({tabIndex:i===r?0:-1,"data-focused":i===r,onFocus:()=>o(i),onKeyDown:d=>{const y=n==="horizontal"||n==="both",w=n==="vertical"||n==="both";y&&d.key==="ArrowRight"&&(d.preventDefault(),l(1)),y&&d.key==="ArrowLeft"&&(d.preventDefault(),l(-1)),w&&d.key==="ArrowDown"&&(d.preventDefault(),l(1)),w&&d.key==="ArrowUp"&&(d.preventDefault(),l(-1)),d.key==="Home"&&(d.preventDefault(),o(0),requestAnimationFrame(()=>{var m;return(m=u.current[0])==null?void 0:m.focus()})),d.key==="End"&&(d.preventDefault(),o(t-1),requestAnimationFrame(()=>{var m;return(m=u.current[t-1])==null?void 0:m.focus()}))}}),[r,l,n,t]);return{focusedIndex:r,setFocusedIndex:o,getItemProps:S}}function _({initialValues:t,validate:c}){const[n,s]=e.useState({...t}),[r,o]=e.useState({}),[u,l]=e.useState({}),S=e.useRef(t),i=e.useCallback((f,b)=>{s(x=>({...x,[f]:b}))},[]),d=e.useCallback(f=>{s(b=>({...b,...f}))},[]),y=e.useCallback(f=>{l(b=>({...b,[f]:!0}))},[]),w=e.useCallback(()=>{if(!c)return!0;const f=c(n),b=Object.fromEntries(Object.entries(f).filter(([,A])=>A!=null));o(b);const x=Object.fromEntries(Object.keys(n).map(A=>[A,!0]));return l(x),Object.keys(b).length===0},[n,c]),m=e.useCallback(()=>{s({...S.current}),o({}),l({})},[]),g=Object.keys(n).some(f=>n[f]!==S.current[f]),k=Object.keys(r).length===0,a=e.useCallback(f=>({value:n[f],onChange:b=>{i(f,b.target.value)},onBlur:()=>y(f),"aria-invalid":u[f]&&r[f]?!0:void 0,"aria-describedby":r[f]?`${String(f)}-error`:void 0}),[n,r,u,i,y]);return{values:n,errors:r,touched:u,dirty:g,isValid:k,setValue:i,setValues:d,touchField:y,validate:w,reset:m,getFieldProps:a}}function ee({items:t,initialSelected:c=[],multiple:n=!0}){const[s,r]=e.useState(()=>new Set(c)),o=e.useCallback(g=>{r(k=>{const a=new Set(k);return a.has(g)?a.delete(g):(n||a.clear(),a.add(g)),a})},[n]),u=e.useCallback(g=>{r(k=>{if(k.has(g))return k;const a=n?new Set(k):new Set;return a.add(g),a})},[n]),l=e.useCallback(g=>{r(k=>{if(!k.has(g))return k;const a=new Set(k);return a.delete(g),a})},[]),S=e.useCallback(()=>{n&&r(new Set(t))},[t,n]),i=e.useCallback(()=>r(new Set),[]),d=e.useCallback(()=>{r(g=>t.every(a=>g.has(a))?new Set:new Set(t))},[t]),y=t.length>0&&t.every(g=>s.has(g)),w=t.some(g=>s.has(g)),m=e.useMemo(()=>Array.from(s),[s]);return{selected:s,isSelected:e.useCallback(g=>s.has(g),[s]),toggle:o,select:u,deselect:l,selectAll:S,deselectAll:i,toggleAll:d,allSelected:y,someSelected:w,selectedCount:s.size,selectedArray:m}}function te(t,c){const[n,s]=e.useState(t);return e.useEffect(()=>{const r=setTimeout(()=>s(t),c);return()=>clearTimeout(r)},[t,c]),n}function ne(t,c){const[n,s]=e.useState(t),r=e.useRef(Date.now());return e.useEffect(()=>{const o=Date.now(),u=c-(o-r.current);if(u<=0)r.current=o,s(t);else{const l=setTimeout(()=>{r.current=Date.now(),s(t)},u);return()=>clearTimeout(l)}},[t,c]),n}function re({value:t,onChange:c,defaultValue:n}){const s=t!==void 0,[r,o]=e.useState(n),u=e.useRef(c);u.current=c;const l=e.useCallback(S=>{var i;s||o(S),(i=u.current)==null||i.call(u,S)},[s]);return[s?t:r,l]}function se(t){const[c,n]=e.useState(()=>typeof window>"u"?!1:window.matchMedia(t).matches);return e.useEffect(()=>{if(typeof window>"u")return;const s=window.matchMedia(t);n(s.matches);const r=o=>n(o.matches);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[t]),c}function ce(t,c){const[n,s]=e.useState(()=>{if(typeof window>"u")return c;try{const u=window.localStorage.getItem(t);return u!==null?JSON.parse(u):c}catch{return c}}),r=e.useCallback(u=>{s(l=>{const S=typeof u=="function"?u(l):u;if(typeof window<"u")try{window.localStorage.setItem(t,JSON.stringify(S))}catch{}return S})},[t]),o=e.useCallback(()=>{if(s(c),typeof window<"u")try{window.localStorage.removeItem(t)}catch{}},[t,c]);return[n,r,o]}function ue({threshold:t=0,rootMargin:c="0px",root:n=null,once:s=!1}={}){const r=e.useRef(null),[o,u]=e.useState(null),l=e.useRef(null);return e.useEffect(()=>{const S=r.current;if(!(!S||typeof IntersectionObserver>"u"))return l.current=new IntersectionObserver(([i])=>{var d;u(i),s&&i.isIntersecting&&((d=l.current)==null||d.unobserve(S))},{threshold:t,rootMargin:c,root:n}),l.current.observe(S),()=>{var i;return(i=l.current)==null?void 0:i.disconnect()}},[t,c,n,s]),{ref:r,isIntersecting:(o==null?void 0:o.isIntersecting)??!1,entry:o}}function oe(t){const{url:c,protocols:n,reconnect:s=!0,reconnectDelay:r=1e3,reconnectAttempts:o=10,heartbeatInterval:u=3e4,heartbeatMessage:l="ping",onOpen:S,onClose:i,onError:d,onMessage:y}=t,[w,m]=e.useState("disconnected"),[g,k]=e.useState(null),[a,f]=e.useState([]),[b,x]=e.useState(0),[A,F]=e.useState(null),h=e.useRef(null),O=e.useRef(0),V=e.useRef(null),D=e.useRef(null),L=e.useRef(null),p=e.useRef([]),R=e.useRef(!0),T=e.useRef(!1),C=e.useRef(S),M=e.useRef(i),P=e.useRef(d),Q=e.useRef(y);C.current=S,M.current=i,P.current=d,Q.current=y;const z=e.useCallback(()=>{V.current&&(clearTimeout(V.current),V.current=null),D.current&&(clearInterval(D.current),D.current=null)},[]),U=e.useCallback(E=>{for(;p.current.length>0;){const I=p.current.shift();I!==void 0&&E.send(typeof I=="string"?I:JSON.stringify(I))}},[]),K=e.useCallback(()=>{if(h.current&&h.current.readyState===WebSocket.OPEN)return;T.current=!1,z(),R.current&&m("connecting");const E=new WebSocket(c,n);h.current=E,E.onopen=I=>{var v;R.current&&(m("connected"),O.current=0,x(0),(v=C.current)==null||v.call(C,I),U(E),D.current=setInterval(()=>{if(E.readyState===WebSocket.OPEN){L.current=Date.now();try{E.send(JSON.stringify({type:"ping",t:L.current}))}catch{}}},u))},E.onmessage=I=>{var W;if(!R.current)return;let v;try{v=JSON.parse(I.data)}catch{v=I.data}const j=v;if(j&&typeof j=="object"&&j.type==="pong"&&typeof j.t=="number"){F(Date.now()-j.t);return}if(v===l&&L.current!==null){F(Date.now()-L.current),L.current=null;return}k(v),f(X=>{const H=[...X,v];return H.length>100?H.slice(H.length-100):H}),(W=Q.current)==null||W.call(Q,v)},E.onerror=I=>{var v;R.current&&(m("error"),(v=P.current)==null||v.call(P,I))},E.onclose=I=>{var v;if(R.current&&(z(),m("disconnected"),(v=M.current)==null||v.call(M,I),!T.current&&s&&O.current<o)){const j=O.current,W=r*Math.pow(1.5,j);O.current+=1,x(O.current),V.current=setTimeout(()=>{R.current&&K()},W)}}},[c,n,s,r,o,u,l,z,U]),$=e.useCallback(()=>{T.current=!0,z(),h.current&&(h.current.close(),h.current=null),R.current&&m("disconnected")},[z]),G=e.useCallback(E=>{h.current&&h.current.readyState===WebSocket.OPEN?h.current.send(typeof E=="string"?E:JSON.stringify(E)):p.current.push(E)},[]);return e.useEffect(()=>(R.current=!0,K(),()=>{R.current=!1,T.current=!0,z(),h.current&&(h.current.close(),h.current=null)}),[]),{status:w,lastMessage:g,messages:a,send:G,connect:K,disconnect:$,reconnectCount:b,latency:A}}function ae(t){const{url:c,events:n=["message"],withCredentials:s=!1,reconnect:r=!0,reconnectDelay:o=3e3,onOpen:u,onError:l}=t,[S,i]=e.useState("connecting"),[d,y]=e.useState(null),[w,m]=e.useState([]),[g,k]=e.useState(0),a=e.useRef(null),f=e.useRef(null),b=e.useRef(!0),x=e.useRef(!1),A=e.useRef(u),F=e.useRef(l);A.current=u,F.current=l;const h=e.useCallback(()=>{f.current&&(clearTimeout(f.current),f.current=null)},[]),O=e.useCallback(()=>{if(typeof EventSource>"u"){b.current&&i("error");return}x.current=!1,h(),a.current&&(a.current.close(),a.current=null),b.current&&i("connecting");const D=new EventSource(c,{withCredentials:s});a.current=D,D.onopen=()=>{var p;b.current&&(i("connected"),(p=A.current)==null||p.call(A))},D.onerror=p=>{var R;b.current&&(i("error"),(R=F.current)==null||R.call(F,p),!x.current&&r&&(h(),f.current=setTimeout(()=>{b.current&&O()},o)))};const L=p=>R=>{if(!b.current)return;let T;try{T=JSON.parse(R.data)}catch{T=R.data}const C={type:p,data:T,timestamp:Date.now(),...R.lastEventId?{id:R.lastEventId}:{}};y({type:C.type,data:C.data,id:C.id}),m(M=>{const P=[...M,C];return P.length>200?P.slice(P.length-200):P}),k(M=>M+1)};for(const p of n)D.addEventListener(p,L(p))},[c,s,r,o,h]),V=e.useCallback(()=>{x.current=!0,h(),a.current&&(a.current.close(),a.current=null),b.current&&i("closed")},[h]);return e.useEffect(()=>(b.current=!0,O(),()=>{b.current=!1,x.current=!0,h(),a.current&&(a.current.close(),a.current=null)}),[]),{status:S,lastEvent:d,events:w,connect:O,disconnect:V,eventCount:g}}function le(t){const{queryFn:c,initialCursor:n=null,enabled:s=!0,dedupKey:r}=t,[o,u]=e.useState([]),[l,S]=e.useState("idle"),[i,d]=e.useState(null),[y,w]=e.useState(!1),[m,g]=e.useState(0),k=e.useRef(n??null),a=e.useRef(!1),f=e.useRef(!0),b=e.useRef(void 0),x=e.useRef(c);x.current=c;const A=e.useCallback(async(L,p,R)=>{if(a.current||r!==void 0&&r===b.current)return;a.current=!0;let T=!1;f.current&&(S(R?"loading":"fetching-more"),d(null));try{const C=await x.current(L,p);if(T||!f.current)return;r!==void 0&&(b.current=r),k.current=C.nextCursor,u(M=>R?[C.data]:[...M,C.data]),w(C.hasMore),g(p),S("success")}catch(C){if(T||!f.current)return;d(C instanceof Error?C:new Error(String(C))),S("error")}finally{T||(a.current=!1)}return()=>{T=!0}},[r]),F=e.useCallback(()=>{!y||a.current||A(k.current,m+1,!1)},[y,m,A]),h=e.useCallback(()=>{a.current=!1,b.current=void 0,k.current=n??null,u([]),S("idle"),d(null),w(!1),g(0)},[n]);e.useEffect(()=>(f.current=!0,s&&A(n??null,0,!0),()=>{f.current=!1}),[s]);const O=o.flat(),V=l==="fetching-more",D=O.length;return{data:O,pages:o,status:l,error:i,hasMore:y,isFetchingMore:V,fetchMore:F,reset:h,pageIndex:m,totalLoaded:D}}exports.useAnnounce=N.useAnnounce;exports.useClickOutside=N.useClickOutside;exports.useEscapeKey=N.useEscapeKey;exports.useFocusTrap=N.useFocusTrap;exports.useHighContrast=N.useHighContrast;exports.useReducedMotion=N.useReducedMotion;exports.useTkxForm=N.useTkxForm;exports.cx=J.cx;exports.extractAtomicCSS=J.extractAtomicCSS;exports.resetAtomicCSS=J.resetAtomicCSS;exports.tkxListPlugins=J.tkxListPlugins;exports.tkxPlugin=J.tkxPlugin;exports.tkxRemovePlugin=J.tkxRemovePlugin;exports.contrastRatio=q.contrastRatio;exports.cssVar=q.cssVar;exports.extractCSS=q.extractCSS;exports.injectStyles=q.injectStyles;exports.meetsAA=q.meetsAA;exports.meetsAAA=q.meetsAAA;exports.resetStyles=q.resetStyles;exports.sanitizeProps=B.sanitizeProps;exports.sanitizeString=B.sanitizeString;exports.useControllable=re;exports.useDebounce=te;exports.useDisclosure=Y;exports.useFormState=_;exports.useInfiniteQuery=le;exports.useIntersectionObserver=ue;exports.useListSelection=ee;exports.useLocalStorage=ce;exports.useMediaQuery=se;exports.useRovingTabIndex=Z;exports.useSSE=ae;exports.useThrottle=ne;exports.useWebSocket=oe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("./index-Bt5y50Qa.cjs"),Y=require("./TkxForm-C2VqR2wC.cjs"),J=require("./tkx-C7GvVUE9.cjs"),q=require("./index-DnqXtpwV.cjs"),$=require("./security-Uf0mjv8o.cjs"),e=require("react");function Z(t=!1){const[c,n]=e.useState(t),s=e.useCallback(()=>n(!0),[]),r=e.useCallback(()=>n(!1),[]),o=e.useCallback(()=>n(u=>!u),[]);return{isOpen:c,open:s,close:r,toggle:o}}function _({count:t,initialIndex:c=0,orientation:n="horizontal",loop:s=!0}){const[r,o]=e.useState(c),u=e.useRef([]),l=e.useCallback(i=>{o(d=>{let y=d+i;return s?y=(y%t+t)%t:y=Math.max(0,Math.min(t-1,y)),requestAnimationFrame(()=>{var w;(w=u.current[y])==null||w.focus()}),y})},[t,s]),S=e.useCallback(i=>({tabIndex:i===r?0:-1,"data-focused":i===r,onFocus:()=>o(i),onKeyDown:d=>{const y=n==="horizontal"||n==="both",w=n==="vertical"||n==="both";y&&d.key==="ArrowRight"&&(d.preventDefault(),l(1)),y&&d.key==="ArrowLeft"&&(d.preventDefault(),l(-1)),w&&d.key==="ArrowDown"&&(d.preventDefault(),l(1)),w&&d.key==="ArrowUp"&&(d.preventDefault(),l(-1)),d.key==="Home"&&(d.preventDefault(),o(0),requestAnimationFrame(()=>{var m;return(m=u.current[0])==null?void 0:m.focus()})),d.key==="End"&&(d.preventDefault(),o(t-1),requestAnimationFrame(()=>{var m;return(m=u.current[t-1])==null?void 0:m.focus()}))}}),[r,l,n,t]);return{focusedIndex:r,setFocusedIndex:o,getItemProps:S}}function ee({initialValues:t,validate:c}){const[n,s]=e.useState({...t}),[r,o]=e.useState({}),[u,l]=e.useState({}),S=e.useRef(t),i=e.useCallback((f,b)=>{s(x=>({...x,[f]:b}))},[]),d=e.useCallback(f=>{s(b=>({...b,...f}))},[]),y=e.useCallback(f=>{l(b=>({...b,[f]:!0}))},[]),w=e.useCallback(()=>{if(!c)return!0;const f=c(n),b=Object.fromEntries(Object.entries(f).filter(([,A])=>A!=null));o(b);const x=Object.fromEntries(Object.keys(n).map(A=>[A,!0]));return l(x),Object.keys(b).length===0},[n,c]),m=e.useCallback(()=>{s({...S.current}),o({}),l({})},[]),g=Object.keys(n).some(f=>n[f]!==S.current[f]),k=Object.keys(r).length===0,a=e.useCallback(f=>({value:n[f],onChange:b=>{i(f,b.target.value)},onBlur:()=>y(f),"aria-invalid":u[f]&&r[f]?!0:void 0,"aria-describedby":r[f]?`${String(f)}-error`:void 0}),[n,r,u,i,y]);return{values:n,errors:r,touched:u,dirty:g,isValid:k,setValue:i,setValues:d,touchField:y,validate:w,reset:m,getFieldProps:a}}function te({items:t,initialSelected:c=[],multiple:n=!0}){const[s,r]=e.useState(()=>new Set(c)),o=e.useCallback(g=>{r(k=>{const a=new Set(k);return a.has(g)?a.delete(g):(n||a.clear(),a.add(g)),a})},[n]),u=e.useCallback(g=>{r(k=>{if(k.has(g))return k;const a=n?new Set(k):new Set;return a.add(g),a})},[n]),l=e.useCallback(g=>{r(k=>{if(!k.has(g))return k;const a=new Set(k);return a.delete(g),a})},[]),S=e.useCallback(()=>{n&&r(new Set(t))},[t,n]),i=e.useCallback(()=>r(new Set),[]),d=e.useCallback(()=>{r(g=>t.every(a=>g.has(a))?new Set:new Set(t))},[t]),y=t.length>0&&t.every(g=>s.has(g)),w=t.some(g=>s.has(g)),m=e.useMemo(()=>Array.from(s),[s]);return{selected:s,isSelected:e.useCallback(g=>s.has(g),[s]),toggle:o,select:u,deselect:l,selectAll:S,deselectAll:i,toggleAll:d,allSelected:y,someSelected:w,selectedCount:s.size,selectedArray:m}}function ne(t,c){const[n,s]=e.useState(t);return e.useEffect(()=>{const r=setTimeout(()=>s(t),c);return()=>clearTimeout(r)},[t,c]),n}function re(t,c){const[n,s]=e.useState(t),r=e.useRef(Date.now());return e.useEffect(()=>{const o=Date.now(),u=c-(o-r.current);if(u<=0)r.current=o,s(t);else{const l=setTimeout(()=>{r.current=Date.now(),s(t)},u);return()=>clearTimeout(l)}},[t,c]),n}function se({value:t,onChange:c,defaultValue:n}){const s=t!==void 0,[r,o]=e.useState(n),u=e.useRef(c);u.current=c;const l=e.useCallback(S=>{var i;s||o(S),(i=u.current)==null||i.call(u,S)},[s]);return[s?t:r,l]}function ce(t){const[c,n]=e.useState(()=>typeof window>"u"?!1:window.matchMedia(t).matches);return e.useEffect(()=>{if(typeof window>"u")return;const s=window.matchMedia(t);n(s.matches);const r=o=>n(o.matches);return s.addEventListener("change",r),()=>s.removeEventListener("change",r)},[t]),c}function ue(t,c){const[n,s]=e.useState(()=>{if(typeof window>"u")return c;try{const u=window.localStorage.getItem(t);return u!==null?JSON.parse(u):c}catch{return c}}),r=e.useCallback(u=>{s(l=>{const S=typeof u=="function"?u(l):u;if(typeof window<"u")try{window.localStorage.setItem(t,JSON.stringify(S))}catch{}return S})},[t]),o=e.useCallback(()=>{if(s(c),typeof window<"u")try{window.localStorage.removeItem(t)}catch{}},[t,c]);return[n,r,o]}function oe({threshold:t=0,rootMargin:c="0px",root:n=null,once:s=!1}={}){const r=e.useRef(null),[o,u]=e.useState(null),l=e.useRef(null);return e.useEffect(()=>{const S=r.current;if(!(!S||typeof IntersectionObserver>"u"))return l.current=new IntersectionObserver(([i])=>{var d;u(i),s&&i.isIntersecting&&((d=l.current)==null||d.unobserve(S))},{threshold:t,rootMargin:c,root:n}),l.current.observe(S),()=>{var i;return(i=l.current)==null?void 0:i.disconnect()}},[t,c,n,s]),{ref:r,isIntersecting:(o==null?void 0:o.isIntersecting)??!1,entry:o}}function ae(t){const{url:c,protocols:n,reconnect:s=!0,reconnectDelay:r=1e3,reconnectAttempts:o=10,heartbeatInterval:u=3e4,heartbeatMessage:l="ping",onOpen:S,onClose:i,onError:d,onMessage:y}=t,[w,m]=e.useState("disconnected"),[g,k]=e.useState(null),[a,f]=e.useState([]),[b,x]=e.useState(0),[A,F]=e.useState(null),h=e.useRef(null),O=e.useRef(0),V=e.useRef(null),D=e.useRef(null),L=e.useRef(null),p=e.useRef([]),R=e.useRef(!0),T=e.useRef(!1),C=e.useRef(S),M=e.useRef(i),P=e.useRef(d),Q=e.useRef(y);C.current=S,M.current=i,P.current=d,Q.current=y;const N=e.useCallback(()=>{V.current&&(clearTimeout(V.current),V.current=null),D.current&&(clearInterval(D.current),D.current=null)},[]),U=e.useCallback(E=>{for(;p.current.length>0;){const I=p.current.shift();I!==void 0&&E.send(typeof I=="string"?I:JSON.stringify(I))}},[]),K=e.useCallback(()=>{if(h.current&&h.current.readyState===WebSocket.OPEN)return;T.current=!1,N(),R.current&&m("connecting");const E=new WebSocket(c,n);h.current=E,E.onopen=I=>{var v;R.current&&(m("connected"),O.current=0,x(0),(v=C.current)==null||v.call(C,I),U(E),D.current=setInterval(()=>{if(E.readyState===WebSocket.OPEN){L.current=Date.now();try{E.send(JSON.stringify({type:"ping",t:L.current}))}catch{}}},u))},E.onmessage=I=>{var W;if(!R.current)return;let v;try{v=JSON.parse(I.data)}catch{v=I.data}const j=v;if(j&&typeof j=="object"&&j.type==="pong"&&typeof j.t=="number"){F(Date.now()-j.t);return}if(v===l&&L.current!==null){F(Date.now()-L.current),L.current=null;return}k(v),f(X=>{const H=[...X,v];return H.length>100?H.slice(H.length-100):H}),(W=Q.current)==null||W.call(Q,v)},E.onerror=I=>{var v;R.current&&(m("error"),(v=P.current)==null||v.call(P,I))},E.onclose=I=>{var v;if(R.current&&(N(),m("disconnected"),(v=M.current)==null||v.call(M,I),!T.current&&s&&O.current<o)){const j=O.current,W=r*Math.pow(1.5,j);O.current+=1,x(O.current),V.current=setTimeout(()=>{R.current&&K()},W)}}},[c,n,s,r,o,u,l,N,U]),B=e.useCallback(()=>{T.current=!0,N(),h.current&&(h.current.close(),h.current=null),R.current&&m("disconnected")},[N]),G=e.useCallback(E=>{h.current&&h.current.readyState===WebSocket.OPEN?h.current.send(typeof E=="string"?E:JSON.stringify(E)):p.current.push(E)},[]);return e.useEffect(()=>(R.current=!0,K(),()=>{R.current=!1,T.current=!0,N(),h.current&&(h.current.close(),h.current=null)}),[]),{status:w,lastMessage:g,messages:a,send:G,connect:K,disconnect:B,reconnectCount:b,latency:A}}function le(t){const{url:c,events:n=["message"],withCredentials:s=!1,reconnect:r=!0,reconnectDelay:o=3e3,onOpen:u,onError:l}=t,[S,i]=e.useState("connecting"),[d,y]=e.useState(null),[w,m]=e.useState([]),[g,k]=e.useState(0),a=e.useRef(null),f=e.useRef(null),b=e.useRef(!0),x=e.useRef(!1),A=e.useRef(u),F=e.useRef(l);A.current=u,F.current=l;const h=e.useCallback(()=>{f.current&&(clearTimeout(f.current),f.current=null)},[]),O=e.useCallback(()=>{if(typeof EventSource>"u"){b.current&&i("error");return}x.current=!1,h(),a.current&&(a.current.close(),a.current=null),b.current&&i("connecting");const D=new EventSource(c,{withCredentials:s});a.current=D,D.onopen=()=>{var p;b.current&&(i("connected"),(p=A.current)==null||p.call(A))},D.onerror=p=>{var R;b.current&&(i("error"),(R=F.current)==null||R.call(F,p),!x.current&&r&&(h(),f.current=setTimeout(()=>{b.current&&O()},o)))};const L=p=>R=>{if(!b.current)return;let T;try{T=JSON.parse(R.data)}catch{T=R.data}const C={type:p,data:T,timestamp:Date.now(),...R.lastEventId?{id:R.lastEventId}:{}};y({type:C.type,data:C.data,id:C.id}),m(M=>{const P=[...M,C];return P.length>200?P.slice(P.length-200):P}),k(M=>M+1)};for(const p of n)D.addEventListener(p,L(p))},[c,s,r,o,h]),V=e.useCallback(()=>{x.current=!0,h(),a.current&&(a.current.close(),a.current=null),b.current&&i("closed")},[h]);return e.useEffect(()=>(b.current=!0,O(),()=>{b.current=!1,x.current=!0,h(),a.current&&(a.current.close(),a.current=null)}),[]),{status:S,lastEvent:d,events:w,connect:O,disconnect:V,eventCount:g}}function ie(t){const{queryFn:c,initialCursor:n=null,enabled:s=!0,dedupKey:r}=t,[o,u]=e.useState([]),[l,S]=e.useState("idle"),[i,d]=e.useState(null),[y,w]=e.useState(!1),[m,g]=e.useState(0),k=e.useRef(n??null),a=e.useRef(!1),f=e.useRef(!0),b=e.useRef(void 0),x=e.useRef(c);x.current=c;const A=e.useCallback(async(L,p,R)=>{if(a.current||r!==void 0&&r===b.current)return;a.current=!0;let T=!1;f.current&&(S(R?"loading":"fetching-more"),d(null));try{const C=await x.current(L,p);if(T||!f.current)return;r!==void 0&&(b.current=r),k.current=C.nextCursor,u(M=>R?[C.data]:[...M,C.data]),w(C.hasMore),g(p),S("success")}catch(C){if(T||!f.current)return;d(C instanceof Error?C:new Error(String(C))),S("error")}finally{T||(a.current=!1)}return()=>{T=!0}},[r]),F=e.useCallback(()=>{!y||a.current||A(k.current,m+1,!1)},[y,m,A]),h=e.useCallback(()=>{a.current=!1,b.current=void 0,k.current=n??null,u([]),S("idle"),d(null),w(!1),g(0)},[n]);e.useEffect(()=>(f.current=!0,s&&A(n??null,0,!0),()=>{f.current=!1}),[s]);const O=o.flat(),V=l==="fetching-more",D=O.length;return{data:O,pages:o,status:l,error:i,hasMore:y,isFetchingMore:V,fetchMore:F,reset:h,pageIndex:m,totalLoaded:D}}exports.useAnnounce=z.useAnnounce;exports.useClickOutside=z.useClickOutside;exports.useEscapeKey=z.useEscapeKey;exports.useFocusTrap=z.useFocusTrap;exports.useHighContrast=z.useHighContrast;exports.useReducedMotion=z.useReducedMotion;exports.useTkxForm=Y.useTkxForm;exports.cx=J.cx;exports.extractAtomicCSS=J.extractAtomicCSS;exports.resetAtomicCSS=J.resetAtomicCSS;exports.tkxListPlugins=J.tkxListPlugins;exports.tkxPlugin=J.tkxPlugin;exports.tkxRemovePlugin=J.tkxRemovePlugin;exports.contrastRatio=q.contrastRatio;exports.cssVar=q.cssVar;exports.extractCSS=q.extractCSS;exports.injectStyles=q.injectStyles;exports.meetsAA=q.meetsAA;exports.meetsAAA=q.meetsAAA;exports.resetStyles=q.resetStyles;exports.sanitizeProps=$.sanitizeProps;exports.sanitizeString=$.sanitizeString;exports.useControllable=se;exports.useDebounce=ne;exports.useDisclosure=Z;exports.useFormState=ee;exports.useInfiniteQuery=ie;exports.useIntersectionObserver=oe;exports.useListSelection=te;exports.useLocalStorage=ue;exports.useMediaQuery=ce;exports.useRovingTabIndex=_;exports.useSSE=le;exports.useThrottle=re;exports.useWebSocket=ae;
package/dist/headless.js CHANGED
@@ -1,7 +1,8 @@
1
- import { a as ge, d as me, c as he, b as ye, f as Se, u as pe, g as we } from "./TkxForm-br3i_vo8.js";
2
- import { c as be, e as Ee, r as xe, b as Ie, d as Oe, f as De } from "./tkx-C_AlpMt4.js";
3
- import { f as Te, l as Ae, m as Ce, q as Me, s as ke, t as Fe, F as Le } from "./index-CAXjeKoK.js";
4
- import { b as Pe, s as Ne } from "./security-loRa1HyV.js";
1
+ import { a as ge, d as me, c as he, b as ye, e as Se, u as pe } from "./index-BgHMZe4Z.js";
2
+ import { u as ve } from "./TkxForm-2tGLCPH6.js";
3
+ import { c as Ee, e as xe, r as Ie, b as Oe, d as De, f as Re } from "./tkx-BtHzWKTl.js";
4
+ import { f as Ae, l as Ce, m as Me, q as ke, s as Fe, t as Le, F as Ve } from "./index-iUUHRxqJ.js";
5
+ import { b as Ne, s as je } from "./security-C-ZPGoyG.js";
5
6
  import { useState as S, useCallback as a, useRef as g, useMemo as X, useEffect as z } from "react";
6
7
  function Z(e = !1) {
7
8
  const [c, t] = S(e), r = a(() => t(!0), []), n = a(() => t(!1), []), o = a(() => t((s) => !s), []);
@@ -421,21 +422,21 @@ function ie(e) {
421
422
  };
422
423
  }
423
424
  export {
424
- Te as contrastRatio,
425
- Ae as cssVar,
426
- be as cx,
427
- Ee as extractAtomicCSS,
428
- Ce as extractCSS,
429
- Me as injectStyles,
430
- ke as meetsAA,
431
- Fe as meetsAAA,
432
- xe as resetAtomicCSS,
433
- Le as resetStyles,
434
- Pe as sanitizeProps,
435
- Ne as sanitizeString,
436
- Ie as tkxListPlugins,
437
- Oe as tkxPlugin,
438
- De as tkxRemovePlugin,
425
+ Ae as contrastRatio,
426
+ Ce as cssVar,
427
+ Ee as cx,
428
+ xe as extractAtomicCSS,
429
+ Me as extractCSS,
430
+ ke as injectStyles,
431
+ Fe as meetsAA,
432
+ Le as meetsAAA,
433
+ Ie as resetAtomicCSS,
434
+ Ve as resetStyles,
435
+ Ne as sanitizeProps,
436
+ je as sanitizeString,
437
+ Oe as tkxListPlugins,
438
+ De as tkxPlugin,
439
+ Re as tkxRemovePlugin,
439
440
  ge as useAnnounce,
440
441
  me as useClickOutside,
441
442
  ce as useControllable,
@@ -454,6 +455,6 @@ export {
454
455
  _ as useRovingTabIndex,
455
456
  le as useSSE,
456
457
  re as useThrottle,
457
- we as useTkxForm,
458
+ ve as useTkxForm,
458
459
  ae as useWebSocket
459
460
  };
@@ -0,0 +1,66 @@
1
+ import { useRef as c, useEffect as o, useCallback as d, useState as s } from "react";
2
+ import { G as i, i as a, w as f, x as m } from "./index-iUUHRxqJ.js";
3
+ function h() {
4
+ const [n, e] = s(() => typeof window > "u" ? !1 : m());
5
+ return o(() => {
6
+ if (typeof window > "u") return;
7
+ const t = window.matchMedia("(prefers-reduced-motion: reduce)"), r = (u) => e(u.matches);
8
+ return t.addEventListener("change", r), () => t.removeEventListener("change", r);
9
+ }, []), n;
10
+ }
11
+ function l() {
12
+ const [n, e] = s(() => typeof window > "u" ? !1 : f());
13
+ return o(() => {
14
+ if (typeof window > "u") return;
15
+ const t = window.matchMedia("(forced-colors: active)"), r = (u) => e(u.matches);
16
+ return t.addEventListener("change", r), () => t.removeEventListener("change", r);
17
+ }, []), n;
18
+ }
19
+ function v(n) {
20
+ const e = c(null);
21
+ return o(() => {
22
+ if (!n || !e.current) return;
23
+ const t = a(e.current);
24
+ return t.activate(), () => t.deactivate();
25
+ }, [n]), e;
26
+ }
27
+ function y() {
28
+ const n = c(null);
29
+ return o(() => {
30
+ if (!(typeof document > "u"))
31
+ return n.current = i(), () => {
32
+ var e;
33
+ (e = n.current) == null || e.destroy();
34
+ };
35
+ }, []), d((e, t = "polite") => {
36
+ var r;
37
+ (r = n.current) == null || r.announce(e, t);
38
+ }, []);
39
+ }
40
+ function E(n, e = !0) {
41
+ const t = c(n);
42
+ t.current = n, o(() => {
43
+ if (!e || typeof document > "u") return;
44
+ const r = (u) => {
45
+ u.key === "Escape" && t.current();
46
+ };
47
+ return document.addEventListener("keydown", r), () => document.removeEventListener("keydown", r);
48
+ }, [e]);
49
+ }
50
+ function g(n, e) {
51
+ const t = c(e);
52
+ t.current = e, o(() => {
53
+ const r = (u) => {
54
+ !n.current || n.current.contains(u.target) || t.current();
55
+ };
56
+ return document.addEventListener("pointerdown", r), () => document.removeEventListener("pointerdown", r);
57
+ }, [n]);
58
+ }
59
+ export {
60
+ y as a,
61
+ v as b,
62
+ E as c,
63
+ g as d,
64
+ l as e,
65
+ h as u
66
+ };
@@ -0,0 +1 @@
1
+ "use strict";const u=require("react"),s=require("./index-DnqXtpwV.cjs");function o(){const[n,e]=u.useState(()=>typeof window>"u"?!1:s.prefersReducedMotion());return u.useEffect(()=>{if(typeof window>"u")return;const t=window.matchMedia("(prefers-reduced-motion: reduce)"),r=c=>e(c.matches);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[]),n}function i(){const[n,e]=u.useState(()=>typeof window>"u"?!1:s.prefersHighContrast());return u.useEffect(()=>{if(typeof window>"u")return;const t=window.matchMedia("(forced-colors: active)"),r=c=>e(c.matches);return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[]),n}function d(n){const e=u.useRef(null);return u.useEffect(()=>{if(!n||!e.current)return;const t=s.createFocusTrap(e.current);return t.activate(),()=>t.deactivate()},[n]),e}function f(){const n=u.useRef(null);return u.useEffect(()=>{if(!(typeof document>"u"))return n.current=s.createAnnouncer(),()=>{var e;(e=n.current)==null||e.destroy()}},[]),u.useCallback((e,t="polite")=>{var r;(r=n.current)==null||r.announce(e,t)},[])}function a(n,e=!0){const t=u.useRef(n);t.current=n,u.useEffect(()=>{if(!e||typeof document>"u")return;const r=c=>{c.key==="Escape"&&t.current()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e])}function p(n,e){const t=u.useRef(e);t.current=e,u.useEffect(()=>{const r=c=>{!n.current||n.current.contains(c.target)||t.current()};return document.addEventListener("pointerdown",r),()=>document.removeEventListener("pointerdown",r)},[n])}exports.useAnnounce=f;exports.useClickOutside=p;exports.useEscapeKey=a;exports.useFocusTrap=d;exports.useHighContrast=i;exports.useReducedMotion=o;
@@ -0,0 +1,2 @@
1
+ "use strict";const u=require("react"),I=2166136261,W=16777619;function v(n){let e=I;for(let t=0;t<n.length;t++)e^=n.charCodeAt(t),e=Math.imul(e,W)>>>0;return e.toString(16).padStart(8,"0")}class ${constructor(e=512){this.cache=new Map,this.hits=0,this.misses=0,this.ceiling=Math.min(e,512)}get(e){if(!this.cache.has(e)){this.misses++;return}this.hits++;const t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size>=this.ceiling&&this.cache.delete(this.cache.keys().next().value),this.cache.set(e,t)}has(e){return this.cache.has(e)}invalidate(e){e!==void 0?this.cache.delete(e):this.cache.clear()}get size(){return this.cache.size}get cacheHitRate(){const e=this.hits+this.misses;return e===0?0:this.hits/e*100}}const f=new $(512);function C(n,e){const t=f.get(n);if(t!==void 0)return t;const s=e();return f.set(n,s),s}const H=[];let b=!1;const m=[];let y=0,l=0;function _(){const n=H.splice(0),e=performance.now();for(const s of n)try{s()}catch{}const t=performance.now()-e;y+=t,l++,m.push({duration:t,timestamp:Date.now()}),m.length>100&&m.shift()}function R(n){H.push(n),b||(b=!0,queueMicrotask(()=>{_(),b=!1}))}function X(n){const e=n!==void 0?m.slice(-n):m.slice();return{avgRenderTime:l===0?0:y/l,cacheHitRate:f.cacheHitRate,renderCount:l,recent:e}}function Q(n){n!==void 0?f.invalidate(n):f.invalidate()}const Z={hash:v,memoize:C,batchUpdate:R,invalidate:Q,get avgRenderTime(){return l===0?0:y/l},get cacheHitRate(){return f.cacheHitRate},getMetrics:X},x=new Map;function j(n){return n.replace(/([A-Z])/g,"-$1").toLowerCase()}function J(n){return"tkx-"+v(n)}function D(n){const e=J(n);return x.has(e)||x.set(e,n),e}function z(n,...e){const t=n.reduce((r,a,i)=>r+a+(e[i]!==void 0?String(e[i]):""),"");return{className:D(t.trim()),styles:t.trim()}}function N(n){const e=Object.entries(n).map(([s,r])=>`${j(s)}: ${r};`).join(" ");return{className:D(e),styles:e}}const Y={xs:"480px",sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"};function L(n,e){return`@media (min-width: ${Y[n]}) { ${e} }`}function F(n,e){const t=Object.entries(e).map(([s,r])=>{const a=Object.entries(r).map(([i,o])=>`${j(i)}: ${o};`).join(" ");return`${s} { ${a} }`}).join(" ");return`@keyframes ${n} { ${t} }`}function w(n,e){return e!==void 0?`--tkx-${n}: ${e};`:`var(--tkx-${n})`}function A(){return Array.from(x.entries()).map(([n,e])=>`.${n} { ${e} }`).join(`
2
+ `)}function O(){x.clear()}function B(){if(typeof document>"u")return;let n=document.getElementById("tkx-styles");n||(n=document.createElement("style"),n.id="tkx-styles",document.head.appendChild(n)),n.textContent=A()}const ee={css:z,fromObject:N,responsive:L,keyframes:F,cssVar:w,extractCSS:A,injectStyles:B,resetStyles:O};function te(n){if(!n||typeof n!="string")return[0,0,0];const e=n.replace("#",""),t=e.length===3?e.split("").map(i=>i+i).join(""):e,s=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),a=parseInt(t.slice(4,6),16);return[isNaN(s)?0:s,isNaN(r)?0:r,isNaN(a)?0:a]}function M(n){const[e,t,s]=te(n).map(r=>{const a=r/255;return a<=.03928?a/12.92:((a+.055)/1.055)**2.4});return .2126*e+.7152*t+.0722*s}function d(n,e){const t=M(n),s=M(e),r=Math.max(t,s),a=Math.min(t,s);return(r+.05)/(a+.05)}function g(n,e,t=!1){return d(n,e)>=(t?3:4.5)}function E(n,e,t=!1){return d(n,e)>=(t?4.5:7)}function P(n,e){const s=e??["#ffffff","#000000"];return s.reduce((r,a)=>d(a,n)>d(r,n)?a:r,s[0])}function V(){const n=document.createElement("div"),e=document.createElement("div");for(const t of[n,e])t.setAttribute("aria-atomic","true"),t.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;",document.body.appendChild(t);return n.setAttribute("aria-live","polite"),e.setAttribute("aria-live","assertive"),{announce(t,s="polite"){const r=s==="assertive"?e:n;r.textContent="",setTimeout(()=>{r.textContent=t},0)},destroy(){n.remove(),e.remove()}}}const ne=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])',"details > summary"].join(", ");function K(n){let e=null,t=null;function s(){return Array.from(n.querySelectorAll(ne)).filter(r=>!r.closest("[hidden]")&&!r.closest('[aria-hidden="true"]'))}return{activate(){e=document.activeElement;const r=s();r.length>0&&r[0].focus(),t=a=>{if(a.key!=="Tab")return;const i=s();if(i.length===0)return;const o=i[0],p=i[i.length-1];a.shiftKey?document.activeElement===o&&(a.preventDefault(),p.focus()):document.activeElement===p&&(a.preventDefault(),o.focus())},n.addEventListener("keydown",t)},deactivate(){t&&n.removeEventListener("keydown",t),e instanceof HTMLElement&&e.focus(),e=null,t=null}}}function U(n,e,t,s){let r=e;switch(n.key){case"ArrowLeft":case"ArrowUp":n.preventDefault(),r=e===0?t-1:e-1;break;case"ArrowRight":case"ArrowDown":n.preventDefault(),r=e===t-1?0:e+1;break;case"Home":n.preventDefault(),r=0;break;case"End":n.preventDefault(),r=t-1;break;case"Enter":case" ":n.preventDefault(),s(e);return;default:return}s(r)}function re(n,e,t,s,r){let a=e;switch(n.key){case"ArrowUp":n.preventDefault(),a=e===0?t-1:e-1;break;case"ArrowDown":n.preventDefault(),a=e===t-1?0:e+1;break;case"Home":n.preventDefault(),a=0;break;case"End":n.preventDefault(),a=t-1;break;case"Enter":case" ":n.preventDefault(),s(e);return;case"Escape":n.preventDefault(),r==null||r();return;default:return}s(a)}function q(){return typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function G(){return typeof window>"u"?!1:window.matchMedia("(forced-colors: active)").matches}function se(n,e="polite"){if(typeof document>"u")return;let t=document.getElementById("tkx-live-region");t||(t=document.createElement("div"),t.id="tkx-live-region",t.setAttribute("aria-live",e),t.setAttribute("aria-atomic","true"),t.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;",document.body.appendChild(t)),t.textContent="",setTimeout(()=>{t&&(t.textContent=n)},0)}const ae={contrastRatio:d,meetsAA:g,meetsAAA:E,getAccessibleForeground:P,createAnnouncer:V,createFocusTrap:K,handleTabsKeyboard:U,handleMenuKeyboard:re,prefersReducedMotion:q,prefersHighContrast:G,announce:se},ie=typeof window<"u"?u.useLayoutEffect:u.useEffect,k={bg:"#0a0a0f",surface:"#12121a",surfaceAlt:"#1a1a2e",border:"#2a2a3e",text:"#e8e8f4",textMuted:"#8888aa",primary:"#00f5d4",secondary:"#7b2ff7",danger:"#f72585",warning:"#ffbe0b",success:"#06d6a0",info:"#3a86ff"},oe={bg:"#f8f6f1",surface:"#ffffff",surfaceAlt:"#f0ede6",border:"#ddd8cc",text:"#1a1815",textMuted:"#6b6560",primary:"#0d7c5f",secondary:"#6930c3",danger:"#c1121f",warning:"#d4a017",success:"#0d7c5f",info:"#1d4ed8"},ce=/^#[0-9a-fA-F]{3,8}$/;function le(n,e){const t={...n,...e};for(const[s,r]of Object.entries(t))if(!ce.test(r))throw new Error(`Invalid hex color for theme token '${s}': ${r}`);return g(t.text,t.bg)||console.warn(`[TekiVex] Theme contrast warning: text (${t.text}) vs bg (${t.bg}) does not meet WCAG AA minimum (4.5:1)`),g(t.primary,t.bg)||console.warn(`[TekiVex] Theme contrast warning: primary (${t.primary}) vs bg (${t.bg}) does not meet WCAG AA minimum`),E(t.text,t.bg)||console.warn(`[TekiVex] Theme contrast warning: text (${t.text}) vs bg (${t.bg}) does not meet WCAG AAA minimum (7:1)`),t}const T=u.createContext(k);function ue({theme:n=k,children:e}){ie(()=>{const s=Object.entries(n).map(([a,i])=>w(a,i)).join(" ");let r=document.getElementById("tkx-theme");if(!r){r=document.createElement("style"),r.id="tkx-theme";const a=document.head.querySelector("style");a?document.head.insertBefore(r,a):document.head.appendChild(r)}r.textContent=`:root { ${s} }`},[n]);const t=Object.fromEntries(Object.entries(n).map(([s,r])=>[`--tkx-${s}`,r]));return u.createElement(T.Provider,{value:n},u.createElement("div",{style:{display:"contents",...t}},e))}function fe(){return u.useContext(T)}function de(n){const e=n.replace("#",""),t=parseInt(e.slice(0,2),16)/255,s=parseInt(e.slice(2,4),16)/255,r=parseInt(e.slice(4,6),16)/255,a=Math.max(t,s,r),i=Math.min(t,s,r);let o=0,p=0;const S=(a+i)/2;if(a!==i){const h=a-i;switch(p=S>.5?h/(2-a-i):h/(a+i),a){case t:o=((s-r)/h+(s<r?6:0))/6;break;case s:o=((r-t)/h+2)/6;break;case r:o=((t-s)/h+4)/6;break}}return[Math.round(o*360),Math.round(p*100),Math.round(S*100)]}function c(n,e,t){e/=100,t/=100;const s=e*Math.min(t,1-t),r=a=>{const i=(a+n/30)%12,o=t-s*Math.max(Math.min(i-3,9-i,1),-1);return Math.round(255*o).toString(16).padStart(2,"0")};return`#${r(0)}${r(8)}${r(4)}`}function pe(n){const[e,t]=de(n);return{50:c(e,Math.min(t,30),96),100:c(e,Math.min(t,40),90),200:c(e,Math.min(t,50),80),300:c(e,t,70),400:c(e,t,60),500:n,600:c(e,t,45),700:c(e,t,35),800:c(e,t,25),900:c(e,t,15)}}const he={xs:{fontSize:"0.75rem",lineHeight:"1rem"},sm:{fontSize:"0.875rem",lineHeight:"1.25rem"},base:{fontSize:"1rem",lineHeight:"1.5rem"},lg:{fontSize:"1.125rem",lineHeight:"1.75rem"},xl:{fontSize:"1.25rem",lineHeight:"1.75rem"},"2xl":{fontSize:"1.5rem",lineHeight:"2rem"},"3xl":{fontSize:"1.875rem",lineHeight:"2.25rem"},"4xl":{fontSize:"2.25rem",lineHeight:"2.5rem"},"5xl":{fontSize:"3rem",lineHeight:"1.15"}},me={0:"0px",.5:"2px",1:"4px",1.5:"6px",2:"8px",2.5:"10px",3:"12px",4:"16px",5:"20px",6:"24px",8:"32px",10:"40px",12:"48px",16:"64px",20:"80px",24:"96px"},xe={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},ge={none:"none",xs:"0 1px 2px 0 rgba(0,0,0,0.05)",sm:"0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)",md:"0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",lg:"0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)",xl:"0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)","2xl":"0 25px 50px -12px rgba(0,0,0,0.25)",inner:"inset 0 2px 4px 0 rgba(0,0,0,0.06)"},be={hide:-1,base:0,dropdown:1e3,sticky:1100,fixed:1200,overlay:1300,modal:1400,popover:1500,tooltip:1600,toast:1700,max:9999},ve={none:"0",sm:"4px",md:"6px",lg:"8px",xl:"12px","2xl":"16px",full:"9999px"};exports.LRUCache=$;exports.Quantum=Z;exports.TKX=ee;exports.ThemeContext=T;exports.ThemeProvider=ue;exports.WCAGEngine=ae;exports.auroraLight=oe;exports.batchUpdate=R;exports.breakpoints=xe;exports.contrastRatio=d;exports.createAnnouncer=V;exports.createFocusTrap=K;exports.createTheme=le;exports.css=z;exports.cssVar=w;exports.extractCSS=A;exports.fnv1aHash=v;exports.fromObject=N;exports.generatePalette=pe;exports.getAccessibleForeground=P;exports.handleTabsKeyboard=U;exports.injectStyles=B;exports.keyframes=F;exports.meetsAA=g;exports.meetsAAA=E;exports.memoize=C;exports.prefersHighContrast=G;exports.prefersReducedMotion=q;exports.quantumDark=k;exports.radii=ve;exports.resetStyles=O;exports.responsive=L;exports.shadows=ge;exports.spacing=me;exports.typography=he;exports.useTheme=fe;exports.zIndex=be;
@@ -1,12 +1,12 @@
1
- import { createContext as C, createElement as y, useContext as D, useLayoutEffect as R, useEffect as j } from "react";
2
- const N = 2166136261, z = 16777619;
3
- function E(n) {
4
- let e = N;
1
+ import { createContext as D, createElement as y, useContext as R, useLayoutEffect as j, useEffect as N } from "react";
2
+ const z = 2166136261, L = 16777619;
3
+ function A(n) {
4
+ let e = z;
5
5
  for (let t = 0; t < n.length; t++)
6
- e ^= n.charCodeAt(t), e = Math.imul(e, z) >>> 0;
6
+ e ^= n.charCodeAt(t), e = Math.imul(e, L) >>> 0;
7
7
  return e.toString(16).padStart(8, "0");
8
8
  }
9
- class L {
9
+ class F {
10
10
  constructor(e = 512) {
11
11
  this.cache = /* @__PURE__ */ new Map(), this.hits = 0, this.misses = 0, this.ceiling = Math.min(e, 512);
12
12
  }
@@ -36,19 +36,19 @@ class L {
36
36
  return e === 0 ? 0 : this.hits / e * 100;
37
37
  }
38
38
  }
39
- const u = new L(512);
40
- function F(n, e) {
39
+ const u = new F(512);
40
+ function O(n, e) {
41
41
  const t = u.get(n);
42
42
  if (t !== void 0) return t;
43
43
  const a = e();
44
44
  return u.set(n, a), a;
45
45
  }
46
- const A = [];
46
+ const E = [];
47
47
  let x = !1;
48
48
  const p = [];
49
49
  let b = 0, l = 0;
50
- function O() {
51
- const n = A.splice(0), e = performance.now();
50
+ function B() {
51
+ const n = E.splice(0), e = performance.now();
52
52
  for (const a of n)
53
53
  try {
54
54
  a();
@@ -57,9 +57,9 @@ function O() {
57
57
  const t = performance.now() - e;
58
58
  b += t, l++, p.push({ duration: t, timestamp: Date.now() }), p.length > 100 && p.shift();
59
59
  }
60
- function B(n) {
61
- A.push(n), x || (x = !0, queueMicrotask(() => {
62
- O(), x = !1;
60
+ function V(n) {
61
+ E.push(n), x || (x = !0, queueMicrotask(() => {
62
+ B(), x = !1;
63
63
  }));
64
64
  }
65
65
  function P(n) {
@@ -71,14 +71,14 @@ function P(n) {
71
71
  recent: e
72
72
  };
73
73
  }
74
- function V(n) {
74
+ function q(n) {
75
75
  n !== void 0 ? u.invalidate(n) : u.invalidate();
76
76
  }
77
77
  const fe = {
78
- hash: E,
79
- memoize: F,
80
- batchUpdate: B,
81
- invalidate: V,
78
+ hash: A,
79
+ memoize: O,
80
+ batchUpdate: V,
81
+ invalidate: q,
82
82
  get avgRenderTime() {
83
83
  return l === 0 ? 0 : b / l;
84
84
  },
@@ -86,16 +86,16 @@ const fe = {
86
86
  return u.cacheHitRate;
87
87
  },
88
88
  getMetrics: P
89
- }, m = /* @__PURE__ */ new Map();
89
+ }, h = /* @__PURE__ */ new Map();
90
90
  function k(n) {
91
91
  return n.replace(/([A-Z])/g, "-$1").toLowerCase();
92
92
  }
93
- function q(n) {
94
- return "tkx-" + E(n);
93
+ function G(n) {
94
+ return "tkx-" + A(n);
95
95
  }
96
96
  function T(n) {
97
- const e = q(n);
98
- return m.has(e) || m.set(e, n), e;
97
+ const e = G(n);
98
+ return h.has(e) || h.set(e, n), e;
99
99
  }
100
100
  function K(n, ...e) {
101
101
  const t = n.reduce((s, r, i) => s + r + (e[i] !== void 0 ? String(e[i]) : ""), "");
@@ -105,7 +105,7 @@ function U(n) {
105
105
  const e = Object.entries(n).map(([a, s]) => `${k(a)}: ${s};`).join(" ");
106
106
  return { className: T(e), styles: e };
107
107
  }
108
- const G = {
108
+ const W = {
109
109
  xs: "480px",
110
110
  sm: "640px",
111
111
  md: "768px",
@@ -114,65 +114,65 @@ const G = {
114
114
  "2xl": "1536px"
115
115
  };
116
116
  function I(n, e) {
117
- return `@media (min-width: ${G[n]}) { ${e} }`;
117
+ return `@media (min-width: ${W[n]}) { ${e} }`;
118
118
  }
119
- function W(n, e) {
119
+ function _(n, e) {
120
120
  const t = Object.entries(e).map(([a, s]) => {
121
121
  const r = Object.entries(s).map(([i, o]) => `${k(i)}: ${o};`).join(" ");
122
122
  return `${a} { ${r} }`;
123
123
  }).join(" ");
124
124
  return `@keyframes ${n} { ${t} }`;
125
125
  }
126
- function M(n, e) {
126
+ function $(n, e) {
127
127
  return e !== void 0 ? `--tkx-${n}: ${e};` : `var(--tkx-${n})`;
128
128
  }
129
- function $() {
130
- return Array.from(m.entries()).map(([n, e]) => `.${n} { ${e} }`).join(`
129
+ function M() {
130
+ return Array.from(h.entries()).map(([n, e]) => `.${n} { ${e} }`).join(`
131
131
  `);
132
132
  }
133
- function _() {
134
- m.clear();
135
- }
136
133
  function Q() {
134
+ h.clear();
135
+ }
136
+ function X() {
137
137
  if (typeof document > "u") return;
138
138
  let n = document.getElementById("tkx-styles");
139
- n || (n = document.createElement("style"), n.id = "tkx-styles", document.head.appendChild(n)), n.textContent = $();
139
+ n || (n = document.createElement("style"), n.id = "tkx-styles", document.head.appendChild(n)), n.textContent = M();
140
140
  }
141
141
  const de = {
142
142
  css: K,
143
143
  fromObject: U,
144
144
  responsive: I,
145
- keyframes: W,
146
- cssVar: M,
147
- extractCSS: $,
148
- injectStyles: Q,
149
- resetStyles: _
145
+ keyframes: _,
146
+ cssVar: $,
147
+ extractCSS: M,
148
+ injectStyles: X,
149
+ resetStyles: Q
150
150
  };
151
- function X(n) {
151
+ function Z(n) {
152
152
  if (!n || typeof n != "string") return [0, 0, 0];
153
153
  const e = n.replace("#", ""), t = e.length === 3 ? e.split("").map((i) => i + i).join("") : e, a = parseInt(t.slice(0, 2), 16), s = parseInt(t.slice(2, 4), 16), r = parseInt(t.slice(4, 6), 16);
154
154
  return [isNaN(a) ? 0 : a, isNaN(s) ? 0 : s, isNaN(r) ? 0 : r];
155
155
  }
156
156
  function w(n) {
157
- const [e, t, a] = X(n).map((s) => {
157
+ const [e, t, a] = Z(n).map((s) => {
158
158
  const r = s / 255;
159
159
  return r <= 0.03928 ? r / 12.92 : ((r + 0.055) / 1.055) ** 2.4;
160
160
  });
161
161
  return 0.2126 * e + 0.7152 * t + 0.0722 * a;
162
162
  }
163
- function h(n, e) {
163
+ function m(n, e) {
164
164
  const t = w(n), a = w(e), s = Math.max(t, a), r = Math.min(t, a);
165
165
  return (s + 0.05) / (r + 0.05);
166
166
  }
167
167
  function g(n, e, t = !1) {
168
- return h(n, e) >= (t ? 3 : 4.5);
168
+ return m(n, e) >= (t ? 3 : 4.5);
169
169
  }
170
- function Z(n, e, t = !1) {
171
- return h(n, e) >= (t ? 4.5 : 7);
170
+ function S(n, e, t = !1) {
171
+ return m(n, e) >= (t ? 4.5 : 7);
172
172
  }
173
173
  function J(n, e) {
174
174
  const a = e ?? ["#ffffff", "#000000"];
175
- return a.reduce((s, r) => h(r, n) > h(s, n) ? r : s, a[0]);
175
+ return a.reduce((s, r) => m(r, n) > m(s, n) ? r : s, a[0]);
176
176
  }
177
177
  function Y() {
178
178
  const n = document.createElement("div"), e = document.createElement("div");
@@ -290,9 +290,9 @@ function ie(n, e = "polite") {
290
290
  }, 0);
291
291
  }
292
292
  const pe = {
293
- contrastRatio: h,
293
+ contrastRatio: m,
294
294
  meetsAA: g,
295
- meetsAAA: Z,
295
+ meetsAAA: S,
296
296
  getAccessibleForeground: J,
297
297
  createAnnouncer: Y,
298
298
  createFocusTrap: te,
@@ -301,7 +301,7 @@ const pe = {
301
301
  prefersReducedMotion: ae,
302
302
  prefersHighContrast: re,
303
303
  announce: ie
304
- }, oe = typeof window < "u" ? R : j, S = {
304
+ }, oe = typeof window < "u" ? j : N, H = {
305
305
  bg: "#0a0a0f",
306
306
  surface: "#12121a",
307
307
  surfaceAlt: "#1a1a2e",
@@ -314,7 +314,7 @@ const pe = {
314
314
  warning: "#ffbe0b",
315
315
  success: "#06d6a0",
316
316
  info: "#3a86ff"
317
- }, he = {
317
+ }, me = {
318
318
  bg: "#f8f6f1",
319
319
  surface: "#ffffff",
320
320
  surfaceAlt: "#f0ede6",
@@ -328,7 +328,7 @@ const pe = {
328
328
  success: "#0d7c5f",
329
329
  info: "#1d4ed8"
330
330
  }, ce = /^#[0-9a-fA-F]{3,8}$/;
331
- function me(n, e) {
331
+ function he(n, e) {
332
332
  const t = { ...n, ...e };
333
333
  for (const [a, s] of Object.entries(t))
334
334
  if (!ce.test(s))
@@ -337,12 +337,14 @@ function me(n, e) {
337
337
  `[TekiVex] Theme contrast warning: text (${t.text}) vs bg (${t.bg}) does not meet WCAG AA minimum (4.5:1)`
338
338
  ), g(t.primary, t.bg) || console.warn(
339
339
  `[TekiVex] Theme contrast warning: primary (${t.primary}) vs bg (${t.bg}) does not meet WCAG AA minimum`
340
+ ), S(t.text, t.bg) || console.warn(
341
+ `[TekiVex] Theme contrast warning: text (${t.text}) vs bg (${t.bg}) does not meet WCAG AAA minimum (7:1)`
340
342
  ), t;
341
343
  }
342
- const H = C(S);
343
- function xe({ theme: n = S, children: e }) {
344
+ const C = D(H);
345
+ function xe({ theme: n = H, children: e }) {
344
346
  oe(() => {
345
- const a = Object.entries(n).map(([r, i]) => M(r, i)).join(" ");
347
+ const a = Object.entries(n).map(([r, i]) => $(r, i)).join(" ");
346
348
  let s = document.getElementById("tkx-theme");
347
349
  if (!s) {
348
350
  s = document.createElement("style"), s.id = "tkx-theme";
@@ -358,13 +360,13 @@ function xe({ theme: n = S, children: e }) {
358
360
  ])
359
361
  );
360
362
  return y(
361
- H.Provider,
363
+ C.Provider,
362
364
  { value: n },
363
365
  y("div", { style: { display: "contents", ...t } }, e)
364
366
  );
365
367
  }
366
368
  function ge() {
367
- return D(H);
369
+ return R(C);
368
370
  }
369
371
  function le(n) {
370
372
  const e = n.replace("#", ""), t = parseInt(e.slice(0, 2), 16) / 255, a = parseInt(e.slice(2, 4), 16) / 255, s = parseInt(e.slice(4, 6), 16) / 255, r = Math.max(t, a, s), i = Math.min(t, a, s);
@@ -442,7 +444,7 @@ const ve = {
442
444
  lg: 1024,
443
445
  xl: 1280,
444
446
  "2xl": 1536
445
- }, Ee = {
447
+ }, Ae = {
446
448
  none: "none",
447
449
  xs: "0 1px 2px 0 rgba(0,0,0,0.05)",
448
450
  sm: "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)",
@@ -451,7 +453,7 @@ const ve = {
451
453
  xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)",
452
454
  "2xl": "0 25px 50px -12px rgba(0,0,0,0.25)",
453
455
  inner: "inset 0 2px 4px 0 rgba(0,0,0,0.06)"
454
- }, Ae = {
456
+ }, Ee = {
455
457
  hide: -1,
456
458
  base: 0,
457
459
  dropdown: 1e3,
@@ -474,40 +476,40 @@ const ve = {
474
476
  };
475
477
  export {
476
478
  I as A,
477
- Ee as B,
479
+ Ae as B,
478
480
  ye as C,
479
481
  ve as D,
480
- Ae as E,
481
- _ as F,
482
+ Ee as E,
483
+ Q as F,
482
484
  Y as G,
483
- L,
485
+ F as L,
484
486
  fe as Q,
485
487
  de as T,
486
488
  pe as W,
487
- H as a,
489
+ C as a,
488
490
  xe as b,
489
- he as c,
490
- B as d,
491
+ me as c,
492
+ V as d,
491
493
  we as e,
492
- h as f,
494
+ m as f,
493
495
  J as g,
494
496
  ne as h,
495
497
  te as i,
496
- me as j,
498
+ he as j,
497
499
  K as k,
498
- M as l,
499
- $ as m,
500
- E as n,
500
+ $ as l,
501
+ M as m,
502
+ A as n,
501
503
  U as o,
502
504
  be as p,
503
- Q as q,
504
- W as r,
505
+ X as q,
506
+ _ as r,
505
507
  g as s,
506
- Z as t,
508
+ S as t,
507
509
  ge as u,
508
- F as v,
510
+ O as v,
509
511
  re as w,
510
512
  ae as x,
511
- S as y,
513
+ H as y,
512
514
  ke as z
513
515
  };